diff --git a/apps/backend/src/modules/schedule/controller.ts b/apps/backend/src/modules/schedule/controller.ts index cf7e36cbd..13da2a023 100644 --- a/apps/backend/src/modules/schedule/controller.ts +++ b/apps/backend/src/modules/schedule/controller.ts @@ -3,7 +3,7 @@ import { IClassItem, ScheduleModel, SectionModel, - TermModel, + TermModel } from "@repo/common"; import { @@ -12,6 +12,8 @@ import { Semester, UpdateScheduleInput, } from "../../generated-types/graphql"; + +import {getSecondarySections} from "../class/controller" import { formatClass } from "../class/formatter"; import { ClassModule } from "../class/generated-types/module-types"; import { formatSchedule } from "./formatter"; @@ -139,3 +141,5 @@ export const getClasses = async ( return classes; }; + + diff --git a/apps/backend/src/modules/schedule/resolver.ts b/apps/backend/src/modules/schedule/resolver.ts index 84707a89c..89beeb78e 100644 --- a/apps/backend/src/modules/schedule/resolver.ts +++ b/apps/backend/src/modules/schedule/resolver.ts @@ -6,7 +6,7 @@ import { getClasses, getSchedule, getSchedules, - updateSchedule, + updateSchedule } from "./controller"; import { IntermediateSchedule } from "./formatter"; import { ScheduleModule } from "./generated-types/module-types"; @@ -24,6 +24,8 @@ const resolvers: ScheduleModule.Resolvers = { return schedule as unknown as ScheduleModule.Schedule; }, + + }, Schedule: { @@ -53,6 +55,7 @@ const resolvers: ScheduleModule.Resolvers = { }, }, + Mutation: { deleteSchedule: async (_, { id }, context) => { return await deleteSchedule(context, id); diff --git a/apps/backend/src/modules/schedule/typedefs/schedule.ts b/apps/backend/src/modules/schedule/typedefs/schedule.ts index 73b880c62..f88a2f2a8 100644 --- a/apps/backend/src/modules/schedule/typedefs/schedule.ts +++ b/apps/backend/src/modules/schedule/typedefs/schedule.ts @@ -29,6 +29,7 @@ const typedef = gql` events: [Event!]! } + type Query { schedules: [Schedule] @auth schedule(id: ID!): Schedule diff --git a/apps/frontend/src/App.tsx b/apps/frontend/src/App.tsx index 117adfcbb..da94a4d56 100644 --- a/apps/frontend/src/App.tsx +++ b/apps/frontend/src/App.tsx @@ -311,9 +311,7 @@ export default function App() { return ( - {/* */} - - {/* */} + ); diff --git a/apps/frontend/src/app/Catalog/index.tsx b/apps/frontend/src/app/Catalog/index.tsx index b4f9fc8f7..0a28038ac 100644 --- a/apps/frontend/src/app/Catalog/index.tsx +++ b/apps/frontend/src/app/Catalog/index.tsx @@ -12,6 +12,7 @@ import ClassBrowser from "@/components/ClassBrowser"; import { useReadTerms } from "@/hooks/api"; import { useReadClass } from "@/hooks/api/classes/useReadClass"; import { Semester, TemporalPosition } from "@/lib/api"; +import { useReadSchedules } from "@/hooks/api"; import styles from "./Catalog.module.scss"; import Dashboard from "./Dashboard"; @@ -96,6 +97,8 @@ export default function Catalog() { [navigate, location, term] ); + const { data: schedules = [] } = useReadSchedules(); + // TODO: Loading state if (termsLoading) { return <>; @@ -129,6 +132,7 @@ export default function Catalog() { semester={term.semester} year={term.year} persistent + allSchedules={schedules} /> diff --git a/apps/frontend/src/app/Schedule/Editor/SideBar/Class/Section/index.tsx b/apps/frontend/src/app/Schedule/Editor/SideBar/Class/Section/index.tsx index 02e9ce842..44cc7761c 100644 --- a/apps/frontend/src/app/Schedule/Editor/SideBar/Class/Section/index.tsx +++ b/apps/frontend/src/app/Schedule/Editor/SideBar/Class/Section/index.tsx @@ -5,6 +5,7 @@ import Time from "@/components/Time"; import { ISection } from "@/lib/api"; import styles from "./Section.module.scss"; +import useSchedule from "@/hooks/useSchedule"; interface SectionProps { onSectionSelect?: () => void; @@ -22,6 +23,7 @@ export default function Section({ number, meetings: [{ startTime, endTime, days }], }: SectionProps & ISection) { + return (
(arr: T[]): T[] { return [arr[arr.length - 1], ...arr.slice(0, arr.length - 1)]; } +// Need to add alarm when users dont choose days export default function Week({ selectedSections, currentSection, @@ -83,9 +84,15 @@ export default function Week({ const positions: Record = {}; const minutes: string[][] = [...Array(60 * 18)].map(() => []); - const relevantEvents = events + const relevantEvents = (events ?? []) // Filter events for the current day - .filter((event) => event.days[day]) + .filter((event) => { + if (!Array.isArray(event.days)) { + console.warn("Invalid event.days:", event); + return false; + } + return event.days[day]; + }) .map( (event) => ({ diff --git a/apps/frontend/src/app/Schedule/schedule.ts b/apps/frontend/src/app/Schedule/schedule.ts index f14a8fc6c..48ae16935 100644 --- a/apps/frontend/src/app/Schedule/schedule.ts +++ b/apps/frontend/src/app/Schedule/schedule.ts @@ -21,9 +21,20 @@ export type ScheduleEvent = SectionEvent | CustomEvent; const defaultUnits = [0, 0]; +// motify the function to give boundaries +// need to fix bug --> if time out of bounds, webpage should jump out alarm export const getY = (time: string) => { const [hour, minute] = time.split(":"); - return (parseInt(hour) - 6) * 60 + parseInt(minute); + const hour1 = parseInt(hour, 10); + const minute1 = parseInt(minute, 10); + + if (isNaN(hour1) || isNaN(minute1)) { + console.warn("Invalid time string:", time); + return -1; + } + const offset = (hour1 - 6) * 60 + minute1; + + return Math.max(0, Math.min(1079, offset)); }; export const getUnits = (schedule?: ISchedule) => { diff --git a/apps/frontend/src/components/Class/Sections/Sections.module.scss b/apps/frontend/src/components/Class/Sections/Sections.module.scss index aa805531c..98e5a0330 100644 --- a/apps/frontend/src/components/Class/Sections/Sections.module.scss +++ b/apps/frontend/src/components/Class/Sections/Sections.module.scss @@ -37,6 +37,7 @@ align-items: flex-start; } + .view { flex-grow: 1; @@ -51,6 +52,10 @@ margin-bottom: 24px; border: 1px solid var(--border-color); + &.conflict { + border: 2px solid var(--red-500); + } + .header { display: flex; margin-bottom: 24px; diff --git a/apps/frontend/src/components/Class/Sections/index.tsx b/apps/frontend/src/components/Class/Sections/index.tsx index 1c42390e2..086a578e3 100644 --- a/apps/frontend/src/components/Class/Sections/index.tsx +++ b/apps/frontend/src/components/Class/Sections/index.tsx @@ -11,10 +11,14 @@ import Details from "@/components/Details"; import useClass from "@/hooks/useClass"; import { Component, componentMap } from "@/lib/api"; import { getExternalLink } from "@/lib/section"; +import useScheduleTimeSlots from "@/hooks/useScheduleTimeSlots"; +import { hasTimeConflict } from "@/components/ClassBrowser/browser"; import styles from "./Sections.module.scss"; export default function Sections() { + const timeSlots = useScheduleTimeSlots(); + const { class: _class } = useClass(); const viewRef = useRef(null); @@ -85,8 +89,9 @@ export default function Sections() { viewRef.current?.children[index].scrollIntoView({ behavior: "smooth" }); }; - return _class.sections.length === 0 ? ( -
+ if (_class.sections.length === 0) { + return ( +

No associated sections

@@ -94,7 +99,11 @@ export default function Sections() { information regarding class attendance requirements.

- ) : ( + ); + } + + + return (
{Object.keys(groups).map((component, index) => ( @@ -116,48 +125,54 @@ export default function Sections() {
{Object.values(groups).map((sections) => (
- {sections.map((section) => ( -
-
-
-

- {componentMap[section.component]} {section.number} -

- + {sections.map((section) => { + const { conflictingSectionIds } = hasTimeConflict(section, timeSlots); + console.log("14", conflictingSectionIds.includes(section.sectionId)); + return ( +
+
+
+

+ {componentMap[section.component]} {section.number} +

+ +
+ + + + + + + +
- - - - - - - -
-
-
- ))} + ); + + })}
))}
diff --git a/apps/frontend/src/components/ClassBrowser/Filters/Filters.module.scss b/apps/frontend/src/components/ClassBrowser/Filters/Filters.module.scss index 891902cdc..0332d44ec 100644 --- a/apps/frontend/src/components/ClassBrowser/Filters/Filters.module.scss +++ b/apps/frontend/src/components/ClassBrowser/Filters/Filters.module.scss @@ -36,6 +36,46 @@ } } + .filterVertical { + display: flex; + flex-direction: column; + gap: 8px; + margin-top: 12px; + + .text { + font-size: 14px; + color: var(--label-color); + line-height: 1; + font-weight: 500; + + .value { + color: var(--paragraph-color); + } + } + + .select { + font-size: 14px; + color: var(--paragraph-color); + font-weight: 500; + border: 2px solid var(--paragraph-color); + border-radius: 4px; + padding: 4px 8px; + background-color: white; + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='8'%20height='5'%3E%3Cpath%20fill='black'%20d='M0,0L4,5L8,0'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 8px center; + background-size: 8px 5px; + + &:focus { + outline: none; + border-color: var(--blue-500); + } + } + } + + + .filter { display: flex; align-items: center; diff --git a/apps/frontend/src/components/ClassBrowser/Filters/index.tsx b/apps/frontend/src/components/ClassBrowser/Filters/index.tsx index 99d99acd4..9458b1728 100644 --- a/apps/frontend/src/components/ClassBrowser/Filters/index.tsx +++ b/apps/frontend/src/components/ClassBrowser/Filters/index.tsx @@ -3,8 +3,10 @@ import { Dispatch, useMemo } from "react"; import classNames from "classnames"; import { Check } from "iconoir-react"; import { Checkbox, RadioGroup } from "radix-ui"; +import { useQuery } from "@apollo/client"; +import { READ_USER, ReadUserResponse } from "@/lib/api/users"; -import { Component, componentMap } from "@/lib/api"; +import { Component, componentMap, } from "@/lib/api"; import Header from "../Header"; import { @@ -36,7 +38,10 @@ export default function Filters() { updateOnline, sortBy, updateSortBy, + selectedSchedule, + updateSelectedSchedule, responsive, + allSchedules } = useBrowser(); const filteredLevels = useMemo(() => { @@ -50,7 +55,7 @@ export default function Filters() { [], days, open, - online + online, ).includedClasses; return classes.reduce( @@ -81,6 +86,10 @@ export default function Filters() { open, online, ]); + + const { data: userData } = useQuery(READ_USER); + const user = userData?.user; + const isLoggedIn = !!user; const filteredComponents = useMemo(() => { const filteredComponents = Object.keys(componentMap).reduce( @@ -101,7 +110,7 @@ export default function Filters() { levels, days, open, - online + online, ).includedClasses; for (const _class of classes) { @@ -141,7 +150,7 @@ export default function Filters() { levels, [], open, - online + online, ).includedClasses; for (const _class of classes) { @@ -185,7 +194,7 @@ export default function Filters() { levels, days, open, - online + online, ).includedClasses; for (const _class of classes) { @@ -437,6 +446,33 @@ export default function Filters() {
); })} + +

Schedule

+
+ +
); diff --git a/apps/frontend/src/components/ClassBrowser/List/Class/Class.module.scss b/apps/frontend/src/components/ClassBrowser/List/Class/Class.module.scss index dea0a78e1..95093fc9a 100644 --- a/apps/frontend/src/components/ClassBrowser/List/Class/Class.module.scss +++ b/apps/frontend/src/components/ClassBrowser/List/Class/Class.module.scss @@ -26,6 +26,10 @@ } } + &.conflict { + border: 2px solid var(--red-500); + } + .text { flex-grow: 1; font-size: 14px; diff --git a/apps/frontend/src/components/ClassBrowser/List/Class/index.tsx b/apps/frontend/src/components/ClassBrowser/List/Class/index.tsx index b9feb1140..1736c8f82 100644 --- a/apps/frontend/src/components/ClassBrowser/List/Class/index.tsx +++ b/apps/frontend/src/components/ClassBrowser/List/Class/index.tsx @@ -6,12 +6,15 @@ import { AverageGrade } from "@/components/AverageGrade"; import Capacity from "@/components/Capacity"; import Units from "@/components/Units"; import { IClass } from "@/lib/api"; +import { ConflictResult } from "@/components/ClassBrowser/browser"; + import styles from "./Class.module.scss"; interface Props { index: number; onClick: MouseEventHandler; + conflict?: ConflictResult; } type ClassProps = Props & IClass; @@ -32,7 +35,10 @@ export default function Class({ ...props }: ClassProps & Omit, keyof ClassProps>) { return ( -
+

{subject} {courseNumber} #{number} diff --git a/apps/frontend/src/components/ClassBrowser/List/index.tsx b/apps/frontend/src/components/ClassBrowser/List/index.tsx index a2b92e53a..918999467 100644 --- a/apps/frontend/src/components/ClassBrowser/List/index.tsx +++ b/apps/frontend/src/components/ClassBrowser/List/index.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef } from "react"; +import { useEffect, useRef, useMemo} from "react"; import { useVirtualizer } from "@tanstack/react-virtual"; import { FrameAltEmpty } from "iconoir-react"; @@ -10,6 +10,8 @@ import Header from "../Header"; import useBrowser from "../useBrowser"; import Class from "./Class"; import styles from "./List.module.scss"; +import { hasTimeConflict } from "../browser" +import useScheduleTimeSlots from "@/hooks/useScheduleTimeSlots"; interface ListProps { onSelect: (subject: string, courseNumber: string, number: string) => void; @@ -37,6 +39,7 @@ export default function List({ onSelect }: ListProps) { }, [searchParams]); const items = virtualizer.getVirtualItems(); + const timeSlots = useScheduleTimeSlots(); return (

@@ -71,6 +74,7 @@ export default function List({ onSelect }: ListProps) { > {items.map(({ key, index }) => { const _class = classes[index]; + const conflict = hasTimeConflict(_class, timeSlots); return ( onSelect( _class.course.subject, diff --git a/apps/frontend/src/components/ClassBrowser/browser.ts b/apps/frontend/src/components/ClassBrowser/browser.ts index 42e3ed71c..033465a5c 100644 --- a/apps/frontend/src/components/ClassBrowser/browser.ts +++ b/apps/frontend/src/components/ClassBrowser/browser.ts @@ -1,8 +1,9 @@ import Fuse from "fuse.js"; -import { AcademicCareer, Component, IClass, academicCareers } from "@/lib/api"; +import { AcademicCareer, Component, IClass, academicCareers, ISchedule, ISection } from "@/lib/api"; import { subjects } from "@/lib/course"; + export enum SortBy { Relevance = "Relevance", Units = "Units", @@ -45,6 +46,7 @@ export const getLevel = (academicCareer: AcademicCareer, number: string) => { : (academicCareers[academicCareer] as Level); }; + export const getFilteredClasses = ( classes: IClass[], currentComponents: Component[], @@ -52,7 +54,7 @@ export const getFilteredClasses = ( currentLevels: Level[], currentDays: Day[], currentOpen: boolean, - currentOnline: boolean + currentOnline: boolean, ) => { return classes.reduce( (acc, _class) => { @@ -137,13 +139,65 @@ export const getFilteredClasses = ( return acc; }, - { includedClasses: [], excludedClasses: [] } as { - includedClasses: IClass[]; - excludedClasses: IClass[]; - } + { includedClasses: [] as IClass[], excludedClasses: [] as IClass[]} ); }; + +export interface TimeSlot { + day: number[]; + start: number; + end: number; +} + +export interface ConflictResult { + hasConflict: boolean; + conflictingSectionIds: string[]; +} + + +function timeToMinutes(time: string): number { + const [h, m] = time.split(":").map(Number); + return h * 60 + m; +} + +export function hasTimeConflict( + cls: IClass | ISection, + timeSlots: TimeSlot[] +): ConflictResult { + const conflictingIds = new Set(); + const sec = "primarySection" in cls ? cls.primarySection : cls; + // console.log("new1:", timeSlots); + + for (const meeting of sec.meetings ?? []) { + const mStart = timeToMinutes(meeting.startTime); + const mEnd = timeToMinutes(meeting.endTime); + + const meetingDays = meeting.days + .map((has, idx) => has ? idx : -1) + .filter(d => d > 0); + // console.log("new2:", sec.sectionId, meetingDays); + for (const slot of timeSlots) { + + const common = meetingDays.filter(d => slot.day.includes(d)); + if (common.length === 0) continue; + // console.log("new5:", sec.sectionId, common); + + if (Math.max(mStart, slot.start) < Math.min(mEnd, slot.end)) { + conflictingIds.add(sec.sectionId); + break; + } + } + } + + return { + hasConflict: conflictingIds.size > 0, + conflictingSectionIds: Array.from(conflictingIds), + }; +} + + + export const getIndex = (classes: IClass[]) => { const list = classes.map((_class) => { const { title, subject, number } = _class.course; diff --git a/apps/frontend/src/components/ClassBrowser/browserContext.ts b/apps/frontend/src/components/ClassBrowser/browserContext.ts index 3ea520d32..16c17bb71 100644 --- a/apps/frontend/src/components/ClassBrowser/browserContext.ts +++ b/apps/frontend/src/components/ClassBrowser/browserContext.ts @@ -4,6 +4,9 @@ import { Component, IClass, Semester } from "@/lib/api"; import { Day, Level, SortBy, Unit } from "./browser"; + +import { ISchedule } from "@/lib/api"; + export interface BrowserContextType { responsive: boolean; expanded: boolean; @@ -21,6 +24,8 @@ export interface BrowserContextType { online: boolean; sortBy: SortBy; open: boolean; + selectedSchedule: ISchedule | null; + allSchedules: ISchedule[]; updateComponents: Dispatch; updateUnits: Dispatch; updateLevels: Dispatch; @@ -30,8 +35,10 @@ export interface BrowserContextType { updateOpen: Dispatch; updateOnline: Dispatch; loading: boolean; + updateSelectedSchedule: Dispatch; } const BrowserContext = createContext(null); + export default BrowserContext; diff --git a/apps/frontend/src/components/ClassBrowser/index.tsx b/apps/frontend/src/components/ClassBrowser/index.tsx index 1de706c79..b58ac20b0 100644 --- a/apps/frontend/src/components/ClassBrowser/index.tsx +++ b/apps/frontend/src/components/ClassBrowser/index.tsx @@ -3,6 +3,8 @@ import { useMemo, useState } from "react"; import { useQuery } from "@apollo/client"; import classNames from "classnames"; import { useSearchParams } from "react-router-dom"; +import { ISchedule } from "@/lib/api"; + import { Component, @@ -10,6 +12,8 @@ import { GetCatalogResponse, IClass, Semester, + READ_SCHEDULE, + ReadScheduleResponse } from "@/lib/api"; import styles from "./ClassBrowser.module.scss"; @@ -31,6 +35,7 @@ interface ClassBrowserProps { semester: Semester; year: number; persistent?: boolean; + allSchedules: ISchedule[]; } export default function ClassBrowser({ @@ -39,6 +44,7 @@ export default function ClassBrowser({ semester: currentSemester, year: currentYear, persistent, + allSchedules, }: ClassBrowserProps) { const [expanded, setExpanded] = useState(false); const [searchParams, setSearchParams] = useSearchParams(); @@ -51,6 +57,7 @@ export default function ClassBrowser({ const [localSortBy, setLocalSortBy] = useState(SortBy.Relevance); const [localOpen, setLocalOpen] = useState(false); const [localOnline, setLocalOnline] = useState(false); + const [selectedSchedule, setSelectedSchedule] = useState(null); const { data, loading } = useQuery(GET_CATALOG, { variables: { @@ -137,6 +144,35 @@ export default function ClassBrowser({ [searchParams, localOnline, persistent] ); + const scheduleId = searchParams.get("selectedSchedule"); + +// 2. 用 Apollo 去拉取那张完整的 schedule + const { data: scheduleData } = useQuery( + READ_SCHEDULE, + { + variables: { id: scheduleId! }, + skip: !scheduleId, + } + ); + + const selectedScheduleMemo = useMemo( + () => scheduleData?.schedule ?? null, + [scheduleData] + ); + + + const updateSelectedSchedule = (schedule: ISchedule | null) => { + if (persistent) { + if (schedule) { + searchParams.set("selectedSchedule", schedule._id); + } else { + searchParams.delete("selectedSchedule"); + } + setSearchParams(searchParams); + } + setSelectedSchedule(schedule); + }; + const { includedClasses, excludedClasses } = useMemo( () => getFilteredClasses( @@ -146,9 +182,9 @@ export default function ClassBrowser({ levels, days, open, - online + online, ), - [classes, components, units, levels, days, open, online] + [classes, components, units, levels, days, open, online, ] ); const index = useMemo(() => getIndex(includedClasses), [includedClasses]); @@ -272,8 +308,9 @@ export default function ClassBrowser({ setLocalQuery(query); }; + return ( - updateArray("components", setLocalComponents, components), @@ -302,6 +341,7 @@ export default function ClassBrowser({ updateBoolean("online", setLocalOnline, online), setExpanded, loading, + updateSelectedSchedule }} >
-
+ ); } diff --git a/apps/frontend/src/components/ScheduleDrawer/Schedule/index.tsx b/apps/frontend/src/components/ScheduleDrawer/Schedule/index.tsx index 5de6d11c6..def6ba3c6 100644 --- a/apps/frontend/src/components/ScheduleDrawer/Schedule/index.tsx +++ b/apps/frontend/src/components/ScheduleDrawer/Schedule/index.tsx @@ -2,7 +2,7 @@ import { useMemo } from "react"; import { useQuery } from "@apollo/client"; -import { READ_SCHEDULES, ReadSchedulesResponse, Semester } from "@/lib/api"; +import { READ_SCHEDULE, READ_SCHEDULES, ReadSchedulesResponse, Semester } from "@/lib/api"; interface ScheduleProps { year: number; @@ -22,7 +22,7 @@ export default function Schedule({ const { data } = useQuery(READ_SCHEDULES); const schedules = useMemo(() => data?.schedules ?? [], [data]); - + const filteredSchedules = useMemo( () => schedules.filter( diff --git a/apps/frontend/src/hooks/api/schedules/useCreateSchedule.ts b/apps/frontend/src/hooks/api/schedules/useCreateSchedule.ts index c09c15b37..0ef78e4e5 100644 --- a/apps/frontend/src/hooks/api/schedules/useCreateSchedule.ts +++ b/apps/frontend/src/hooks/api/schedules/useCreateSchedule.ts @@ -12,6 +12,7 @@ export const useCreateSchedule = () => { const mutation = useMutation(CREATE_SCHEDULE, { update(cache, { data }) { const schedule = data?.createSchedule; + if (!schedule) return; diff --git a/apps/frontend/src/lib/api/classes.ts b/apps/frontend/src/lib/api/classes.ts index df92f9f27..39b0f7115 100644 --- a/apps/frontend/src/lib/api/classes.ts +++ b/apps/frontend/src/lib/api/classes.ts @@ -375,6 +375,7 @@ export const GET_CATALOG = gql` finalExam gradingBasis primarySection { + sectionId component online instructionMode @@ -391,6 +392,8 @@ export const GET_CATALOG = gql` } meetings { days + startTime + endTime } } course { diff --git a/package-lock.json b/package-lock.json index 59846e222..a0b7be83b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,9 +11,11 @@ "packages/*" ], "dependencies": { + "@radix-ui/themes": "^3.2.1", "@trivago/prettier-plugin-sort-imports": "^5.2.2", "patch-package": "^8.0.0", "prettier": "^3.5.3", + "radix-ui": "^1.2.0", "react-select": "^5.10.0", "turbo": "^2.4.4" }, @@ -768,24 +770,24 @@ } }, "node_modules/@aws-sdk/client-athena": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-athena/-/client-athena-3.787.0.tgz", - "integrity": "sha512-RmQwfTfi4O7kMljbbWDvVMtuuGmj1+WnYm1//1+yWUPupNqRES7tzaWLclALtTDgZIT1Z+LZxrfFf4m6crH6jg==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-athena/-/client-athena-3.796.0.tgz", + "integrity": "sha512-4S0i/+O6tlcAxNPBo5VtmciLa6lLGGZDpt1RY5XOTQJVuE3KLebNLLp87VhJBE32KSxSp/HKlpl3nqCzP4zIcQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.775.0", - "@aws-sdk/credential-provider-node": "3.787.0", + "@aws-sdk/core": "3.796.0", + "@aws-sdk/credential-provider-node": "3.796.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", - "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/middleware-user-agent": "3.796.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.787.0", "@aws-sdk/util-user-agent-browser": "3.775.0", - "@aws-sdk/util-user-agent-node": "3.787.0", + "@aws-sdk/util-user-agent-node": "3.796.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", @@ -820,32 +822,32 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.787.0.tgz", - "integrity": "sha512-eGLCWkN0NlntJ9yPU6OKUggVS4cFvuZJog+cFg1KD5hniLqz7Y0YRtB4uBxW212fK3XCfddgyscEOEeHaTQQTw==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.796.0.tgz", + "integrity": "sha512-zRQhrj80atJX5mxC6MPH261iIMIc+RQmkDe+rZVm/61waUm/1ZFn1hSyi5i2Azor/2V2FnS9WVeWp57Sd0TahQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.775.0", - "@aws-sdk/credential-provider-node": "3.787.0", + "@aws-sdk/core": "3.796.0", + "@aws-sdk/credential-provider-node": "3.796.0", "@aws-sdk/middleware-bucket-endpoint": "3.775.0", "@aws-sdk/middleware-expect-continue": "3.775.0", - "@aws-sdk/middleware-flexible-checksums": "3.787.0", + "@aws-sdk/middleware-flexible-checksums": "3.796.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-location-constraint": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", - "@aws-sdk/middleware-sdk-s3": "3.775.0", + "@aws-sdk/middleware-sdk-s3": "3.796.0", "@aws-sdk/middleware-ssec": "3.775.0", - "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/middleware-user-agent": "3.796.0", "@aws-sdk/region-config-resolver": "3.775.0", - "@aws-sdk/signature-v4-multi-region": "3.775.0", + "@aws-sdk/signature-v4-multi-region": "3.796.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.787.0", "@aws-sdk/util-user-agent-browser": "3.775.0", - "@aws-sdk/util-user-agent-node": "3.787.0", + "@aws-sdk/util-user-agent-node": "3.796.0", "@aws-sdk/xml-builder": "3.775.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", @@ -887,23 +889,23 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.787.0.tgz", - "integrity": "sha512-L8R+Mh258G0DC73ktpSVrG4TT9i2vmDLecARTDR/4q5sRivdDQSL5bUp3LKcK80Bx+FRw3UETIlX6mYMLL9PJQ==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.796.0.tgz", + "integrity": "sha512-EJExg8mbwqP0VG+RNFV4ZPuUo7QsDsUfTnuFQY51V8iXrbOdV+PDLRr4psXj2fxvrLxc9AlGUMNqd/j4VZtQzA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", - "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/middleware-user-agent": "3.796.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.787.0", "@aws-sdk/util-user-agent-browser": "3.775.0", - "@aws-sdk/util-user-agent-node": "3.787.0", + "@aws-sdk/util-user-agent-node": "3.796.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", @@ -936,9 +938,9 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.775.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.775.0.tgz", - "integrity": "sha512-8vpW4WihVfz0DX+7WnnLGm3GuQER++b0IwQG35JlQMlgqnc44M//KbJPsIHA0aJUJVwJAEShgfr5dUbY8WUzaA==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.796.0.tgz", + "integrity": "sha512-tH8Sp7lCxISVoLnkyv4AouuXs2CDlMhTuesWa0lq2NX1f+DXsMwSBtN37ttZdpFMw3F8mWdsJt27X9h2Oq868A==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.775.0", @@ -946,7 +948,7 @@ "@smithy/node-config-provider": "^4.0.2", "@smithy/property-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", - "@smithy/signature-v4": "^5.0.2", + "@smithy/signature-v4": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/util-middleware": "^4.0.2", @@ -958,12 +960,12 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.775.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.775.0.tgz", - "integrity": "sha512-6ESVxwCbGm7WZ17kY1fjmxQud43vzJFoLd4bmlR+idQSWdqlzGDYdcfzpjDKTcivdtNrVYmFvcH1JBUwCRAZhw==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.796.0.tgz", + "integrity": "sha512-kQzGKm4IOYYO6vUrai2JocNwhJm4Aml2BsAV+tBhFhhkutE7khf9PUucoVjB78b0J48nF+kdSacqzY+gB81/Uw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", @@ -974,12 +976,12 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.775.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.775.0.tgz", - "integrity": "sha512-PjDQeDH/J1S0yWV32wCj2k5liRo0ssXMseCBEkCsD3SqsU8o5cU82b0hMX4sAib/RkglCSZqGO0xMiN0/7ndww==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.796.0.tgz", + "integrity": "sha512-wWOT6VAHIKOuHdKFGm1iyKvx7f6+Kc/YTzFWJPuT+l+CPlXR6ylP1UMIDsHHLKpMzsrh3CH77QDsjkhQrnKkfg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/node-http-handler": "^4.0.4", @@ -995,18 +997,18 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.787.0.tgz", - "integrity": "sha512-hc2taRoDlXn2uuNuHWDJljVWYrp3r9JF1a/8XmOAZhVUNY+ImeeStylHXhXXKEA4JOjW+5PdJj0f1UDkVCHJiQ==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.796.0.tgz", + "integrity": "sha512-qGWBDn9aO8avFfYU7daps7Sy6OglF1x0q0w48slt0KMXbHd2/LvKVIiYwyofYCXed0yzcEOF2IYm9FjXdcn+ug==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.775.0", - "@aws-sdk/credential-provider-env": "3.775.0", - "@aws-sdk/credential-provider-http": "3.775.0", - "@aws-sdk/credential-provider-process": "3.775.0", - "@aws-sdk/credential-provider-sso": "3.787.0", - "@aws-sdk/credential-provider-web-identity": "3.787.0", - "@aws-sdk/nested-clients": "3.787.0", + "@aws-sdk/core": "3.796.0", + "@aws-sdk/credential-provider-env": "3.796.0", + "@aws-sdk/credential-provider-http": "3.796.0", + "@aws-sdk/credential-provider-process": "3.796.0", + "@aws-sdk/credential-provider-sso": "3.796.0", + "@aws-sdk/credential-provider-web-identity": "3.796.0", + "@aws-sdk/nested-clients": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", @@ -1019,17 +1021,17 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.787.0.tgz", - "integrity": "sha512-JioVi44B1vDMaK2CdzqimwvJD3uzvzbQhaEWXsGMBcMcNHajXAXf08EF50JG3ZhLrhhUsT1ObXpbTaPINOhh+g==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.796.0.tgz", + "integrity": "sha512-WeNK7OWPrsOvhO3DAgpUO0FtmVghMaZ/IpPJHJ4Y0nBIsWOBXLrbZ2Y1mdT8N2bGGUaM91tJaV8Yf8COc3gvmA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.775.0", - "@aws-sdk/credential-provider-http": "3.775.0", - "@aws-sdk/credential-provider-ini": "3.787.0", - "@aws-sdk/credential-provider-process": "3.775.0", - "@aws-sdk/credential-provider-sso": "3.787.0", - "@aws-sdk/credential-provider-web-identity": "3.787.0", + "@aws-sdk/credential-provider-env": "3.796.0", + "@aws-sdk/credential-provider-http": "3.796.0", + "@aws-sdk/credential-provider-ini": "3.796.0", + "@aws-sdk/credential-provider-process": "3.796.0", + "@aws-sdk/credential-provider-sso": "3.796.0", + "@aws-sdk/credential-provider-web-identity": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", @@ -1042,12 +1044,12 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.775.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.775.0.tgz", - "integrity": "sha512-A6k68H9rQp+2+7P7SGO90Csw6nrUEm0Qfjpn9Etc4EboZhhCLs9b66umUsTsSBHus4FDIe5JQxfCUyt1wgNogg==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.796.0.tgz", + "integrity": "sha512-r4e8/4AdKn/qQbRVocW7oXkpoiuXdTv0qty8AASNLnbQnT1vjD1bvmP6kp4fbHPWgwY8I9h0Dqjp49uy9Bqyuw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -1059,14 +1061,14 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.787.0.tgz", - "integrity": "sha512-fHc08bsvwm4+dEMEQKnQ7c1irEQmmxbgS+Fq41y09pPvPh31nAhoMcjBSTWAaPHvvsRbTYvmP4Mf12ZGr8/nfg==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.796.0.tgz", + "integrity": "sha512-RUYsQ1t6UdzkpZ7pocUt1l/9l9GCYCaopIhv0DU6CipA8rkWtoweKsLHKdv+8wE4p6gqDfDIHGam1ivswiCIzg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.787.0", - "@aws-sdk/core": "3.775.0", - "@aws-sdk/token-providers": "3.787.0", + "@aws-sdk/client-sso": "3.796.0", + "@aws-sdk/core": "3.796.0", + "@aws-sdk/token-providers": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -1078,13 +1080,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.787.0.tgz", - "integrity": "sha512-SobmCwNbk6TfEsF283mZPQEI5vV2j6eY5tOCj8Er4Lzraxu9fBPADV+Bib2A8F6jlB1lMPJzOuDCbEasSt/RIw==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.796.0.tgz", + "integrity": "sha512-dpmFJT4IyjT09vruvMu/rWQQjVreqdxAe8pLPpGhoeKyA1O6+PS73b+VNXKvD31rQT8e4g6dVpA6KMxNW63aag==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.775.0", - "@aws-sdk/nested-clients": "3.787.0", + "@aws-sdk/core": "3.796.0", + "@aws-sdk/nested-clients": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", @@ -1128,15 +1130,15 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.787.0.tgz", - "integrity": "sha512-X71qEwWoixFmwowWzlPoZUR3u1CWJ7iAzU0EzIxqmPhQpQJLFmdL1+SRjqATynDPZQzLs1a5HBtPT++EnZ+Quw==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.796.0.tgz", + "integrity": "sha512-JTqnyzGlbvXDcEnBtd5LFNrCFKUHnGyp/V9+BkvzNP02WXABLWzYvj1TCaf5pQySwK/b4kVn5lvbpTi0rXqjZw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/is-array-buffer": "^4.0.0", "@smithy/node-config-provider": "^4.0.2", @@ -1210,18 +1212,18 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.775.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.775.0.tgz", - "integrity": "sha512-zsvcu7cWB28JJ60gVvjxPCI7ZU7jWGcpNACPiZGyVtjYXwcxyhXbYEVDSWKsSA6ERpz9XrpLYod8INQWfW3ECg==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.796.0.tgz", + "integrity": "sha512-5o78oE79sGOtYkL7Up02h2nmr9UhGQZJgxE29EBdTw4dZ1EaA46L+C8oA+fBCmAB5xPQsjQqvhRrsr4Lcp+jZQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-arn-parser": "3.723.0", "@smithy/core": "^3.2.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", - "@smithy/signature-v4": "^5.0.2", + "@smithy/signature-v4": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/util-config-provider": "^4.0.0", @@ -1249,12 +1251,12 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.787.0.tgz", - "integrity": "sha512-Lnfj8SmPLYtrDFthNIaNj66zZsBCam+E4XiUDr55DIHTGstH6qZ/q6vg0GfbukxwSmUcGMwSR4Qbn8rb8yd77g==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.796.0.tgz", + "integrity": "sha512-IeNg+3jNWT37J45opi5Jx89hGF0lOnZjiNwlMp3rKq7PlOqy8kWq5J1Gxk0W3tIkPpuf68CtBs/QFrRXWOjsZw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.787.0", "@smithy/core": "^3.2.0", @@ -1267,23 +1269,23 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.787.0.tgz", - "integrity": "sha512-xk03q1xpKNHgbuo+trEf1dFrI239kuMmjKKsqLEsHlAZbuFq4yRGMlHBrVMnKYOPBhVFDS/VineM991XI52fKg==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.796.0.tgz", + "integrity": "sha512-jJ8a0ldWtXh/ice7nldUjTqja7KYlSYk1pwfIIvJLIqEn2SvQHK/pyCINTmmOmFAWXMKBQBeWUMxo1pPYNytzQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.775.0", + "@aws-sdk/core": "3.796.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", - "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/middleware-user-agent": "3.796.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.787.0", "@aws-sdk/util-user-agent-browser": "3.775.0", - "@aws-sdk/util-user-agent-node": "3.787.0", + "@aws-sdk/util-user-agent-node": "3.796.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", @@ -1333,15 +1335,15 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.775.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.775.0.tgz", - "integrity": "sha512-cnGk8GDfTMJ8p7+qSk92QlIk2bmTmFJqhYxcXZ9PysjZtx0xmfCMxnG3Hjy1oU2mt5boPCVSOptqtWixayM17g==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.796.0.tgz", + "integrity": "sha512-JAOLdvazTc9HlTFslSrIOrKRMuOruuM3FeGw0hyfLP/RIbjd9bqe/xLIzDSJr3wpCpJs0sXoofwJgXtgTipvjA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.775.0", + "@aws-sdk/middleware-sdk-s3": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/protocol-http": "^5.1.0", - "@smithy/signature-v4": "^5.0.2", + "@smithy/signature-v4": "^5.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" }, @@ -1350,12 +1352,12 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.787.0.tgz", - "integrity": "sha512-d7/NIqxq308Zg0RPMNrmn0QvzniL4Hx8Qdwzr6YZWLYAbUSvZYS2ppLR3BFWSkV6SsTJUx8BuDaj3P8vttkrog==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.796.0.tgz", + "integrity": "sha512-Sxr/EqJBxOwLsXHv8C91N/Aao8Rgjn5bcpzplrTZ7wrfDrzqQfSCvjh7apCxdLYMKPBV+an75blCAd7JD4/bAg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/nested-clients": "3.787.0", + "@aws-sdk/nested-clients": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", @@ -1431,12 +1433,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.787.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.787.0.tgz", - "integrity": "sha512-mG7Lz8ydfG4SF9e8WSXiPQ/Lsn3n8A5B5jtPROidafi06I3ckV2WxyMLdwG14m919NoS6IOfWHyRGSqWIwbVKA==", + "version": "3.796.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.796.0.tgz", + "integrity": "sha512-9fQpNcHgVFitf1tbTT8V1xGRoRHSmOAWjrhevo6Tc0WoINMAKz+4JNqfVGWRE5Tmtpq0oHKo1RmvxXQQtJYciA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/middleware-user-agent": "3.796.0", "@aws-sdk/types": "3.775.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/types": "^4.2.0", @@ -3321,9 +3323,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", - "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", "cpu": [ "ppc64" ], @@ -3338,9 +3340,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", - "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", "cpu": [ "arm" ], @@ -3355,9 +3357,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", - "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", "cpu": [ "arm64" ], @@ -3372,9 +3374,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", - "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", "cpu": [ "x64" ], @@ -3389,9 +3391,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", - "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", "cpu": [ "arm64" ], @@ -3406,9 +3408,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", - "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", "cpu": [ "x64" ], @@ -3423,9 +3425,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", - "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", "cpu": [ "arm64" ], @@ -3440,9 +3442,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", - "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", "cpu": [ "x64" ], @@ -3457,9 +3459,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", - "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", "cpu": [ "arm" ], @@ -3474,9 +3476,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", - "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", "cpu": [ "arm64" ], @@ -3491,9 +3493,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", - "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", "cpu": [ "ia32" ], @@ -3508,9 +3510,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", - "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", "cpu": [ "loong64" ], @@ -3525,9 +3527,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", - "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", "cpu": [ "mips64el" ], @@ -3542,9 +3544,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", - "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", "cpu": [ "ppc64" ], @@ -3559,9 +3561,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", - "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", "cpu": [ "riscv64" ], @@ -3576,9 +3578,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", - "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", "cpu": [ "s390x" ], @@ -3593,9 +3595,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", - "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", "cpu": [ "x64" ], @@ -3610,9 +3612,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", - "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", "cpu": [ "arm64" ], @@ -3627,9 +3629,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", - "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", "cpu": [ "x64" ], @@ -3644,9 +3646,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", - "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", "cpu": [ "arm64" ], @@ -3661,9 +3663,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", - "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", "cpu": [ "x64" ], @@ -3678,9 +3680,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", - "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", "cpu": [ "x64" ], @@ -3695,9 +3697,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", - "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", "cpu": [ "arm64" ], @@ -3712,9 +3714,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", - "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", "cpu": [ "ia32" ], @@ -3729,9 +3731,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", - "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", "cpu": [ "x64" ], @@ -8007,9 +8009,9 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.0.2.tgz", - "integrity": "sha512-Mz+mc7okA73Lyz8zQKJNyr7lIcHLiPYp0+oiqiMNc/t7/Kf2BENs5d63pEj7oPqdjaum6g0Fc8wC78dY1TgtXw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.1.0.tgz", + "integrity": "sha512-4t5WX60sL3zGJF/CtZsUQTs3UrZEDO2P7pEaElrekbLqkWPYkgqNW1oeiNYC6xXifBnT9dVBOnNQRvOE9riU9w==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^4.0.0", @@ -8614,9 +8616,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.14.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", - "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", + "version": "22.15.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.1.tgz", + "integrity": "sha512-gSZyd0Qmv7qvbd2fJ9HGdYmv1yhNdelIA4YOtN6vkcmSwFhthxSEsBgU/JYZcXjWT6DFzoATcHrc52Ckh8SeRA==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -11072,9 +11074,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.140", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.140.tgz", - "integrity": "sha512-o82Rj+ONp4Ip7Cl1r7lrqx/pXhbp/lh9DpKcMNscFJdh8ebyRofnc7Sh01B4jx403RI0oqTBvlZ7OBIZLMr2+Q==", + "version": "1.5.142", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.142.tgz", + "integrity": "sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w==", "dev": true, "license": "ISC" }, @@ -11179,9 +11181,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", - "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -11192,31 +11194,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.2", - "@esbuild/android-arm": "0.25.2", - "@esbuild/android-arm64": "0.25.2", - "@esbuild/android-x64": "0.25.2", - "@esbuild/darwin-arm64": "0.25.2", - "@esbuild/darwin-x64": "0.25.2", - "@esbuild/freebsd-arm64": "0.25.2", - "@esbuild/freebsd-x64": "0.25.2", - "@esbuild/linux-arm": "0.25.2", - "@esbuild/linux-arm64": "0.25.2", - "@esbuild/linux-ia32": "0.25.2", - "@esbuild/linux-loong64": "0.25.2", - "@esbuild/linux-mips64el": "0.25.2", - "@esbuild/linux-ppc64": "0.25.2", - "@esbuild/linux-riscv64": "0.25.2", - "@esbuild/linux-s390x": "0.25.2", - "@esbuild/linux-x64": "0.25.2", - "@esbuild/netbsd-arm64": "0.25.2", - "@esbuild/netbsd-x64": "0.25.2", - "@esbuild/openbsd-arm64": "0.25.2", - "@esbuild/openbsd-x64": "0.25.2", - "@esbuild/sunos-x64": "0.25.2", - "@esbuild/win32-arm64": "0.25.2", - "@esbuild/win32-ia32": "0.25.2", - "@esbuild/win32-x64": "0.25.2" + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" } }, "node_modules/escalade": { @@ -13680,9 +13682,9 @@ } }, "node_modules/mapbox-gl": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.11.0.tgz", - "integrity": "sha512-0bJoYMgwn/z0RSJH7j/kYq3xlTX8Vt4dBkWAKJFneB49PAiq+rAAZRAeUhMxCr8PoGLRaDBagF3fTsA/WK6Q4A==", + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.11.1.tgz", + "integrity": "sha512-OcXSBQU+q50YH7zVzsfOgCMSgYD1tyN3kObwsxnLEBOeceIFg46Yp+/I2AUhIGsq8VufgfeGzWKipPow/M7gww==", "license": "SEE LICENSE IN LICENSE.txt", "workspaces": [ "src/style-spec", @@ -13980,9 +13982,9 @@ } }, "node_modules/mongodb": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.16.0.tgz", - "integrity": "sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.15.0.tgz", + "integrity": "sha512-ifBhQ0rRzHDzqp9jAQP6OwHSH7dbYIQjD3SbJs9YYk9AikKEettW/9s/tbSFDTpXcRbF+u1aLrhHxDFaYtZpFQ==", "license": "Apache-2.0", "dependencies": { "@mongodb-js/saslprep": "^1.1.9", @@ -14036,9 +14038,9 @@ } }, "node_modules/mongoose": { - "version": "8.13.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.13.2.tgz", - "integrity": "sha512-riCBqZmNkYBWjXpM3qWLDQw7QmTKsVZDPhLXFJqC87+OjocEVpvS3dA2BPPUiLAu+m0/QmEj5pSXKhH+/DgerQ==", + "version": "8.13.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.13.3.tgz", + "integrity": "sha512-85S6AOABJcgn77ZKFZKOQkWID69vvtv0YFOk+mMOUrq/7+ziIyybWGZSGQRxN9M41Ehe6a9ug41nV13uJFB9Pw==", "license": "MIT", "dependencies": { "bson": "^6.10.3", @@ -14057,52 +14059,6 @@ "url": "https://opencollective.com/mongoose" } }, - "node_modules/mongoose/node_modules/mongodb": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.15.0.tgz", - "integrity": "sha512-ifBhQ0rRzHDzqp9jAQP6OwHSH7dbYIQjD3SbJs9YYk9AikKEettW/9s/tbSFDTpXcRbF+u1aLrhHxDFaYtZpFQ==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.3", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, "node_modules/mpath": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", @@ -15603,9 +15559,9 @@ } }, "node_modules/react-router": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.1.tgz", - "integrity": "sha512-/jjU3fcYNd2bwz9Q0xt5TwyiyoO8XjSEFXJY4O/lMAlkGTHWuHRAbR9Etik+lSDqMC7A7mz3UlXzgYT6Vl58sA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.2.tgz", + "integrity": "sha512-9Rw8r199klMnlGZ8VAsV/I8WrIF6IyJ90JQUdboupx1cdkgYqwnrYjH+I/nY/7cA1X5zia4mDJqH36npP7sxGQ==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", @@ -15626,12 +15582,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.1.tgz", - "integrity": "sha512-5DPSPc7ENrt2tlKPq0FtpG80ZbqA9aIKEyqX6hSNJDlol/tr6iqCK4crqdsusmOSSotq6zDsn0y3urX9TuTNmA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.2.tgz", + "integrity": "sha512-yk1XW8Fj7gK7flpYBXF3yzd2NbX6P7Kxjvs2b5nu1M04rb5pg/Zc4fGdBNTeT4eDYL2bvzWNyKaIMJX/RKHTTg==", "license": "MIT", "dependencies": { - "react-router": "7.5.1" + "react-router": "7.5.2" }, "engines": { "node": ">=20.0.0" @@ -17571,26 +17527,26 @@ } }, "node_modules/turbo": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.5.0.tgz", - "integrity": "sha512-PvSRruOsitjy6qdqwIIyolv99+fEn57gP6gn4zhsHTEcCYgXPhv6BAxzAjleS8XKpo+Y582vTTA9nuqYDmbRuA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.5.1.tgz", + "integrity": "sha512-LT0wYyT+HY4StvmGMq1k2tHCIwauaWSXwyP+tCUked9vja5xEisW8b8NIJGi9BWH5HYH9Og1DysaQFTf8BiydQ==", "license": "MIT", "bin": { "turbo": "bin/turbo" }, "optionalDependencies": { - "turbo-darwin-64": "2.5.0", - "turbo-darwin-arm64": "2.5.0", - "turbo-linux-64": "2.5.0", - "turbo-linux-arm64": "2.5.0", - "turbo-windows-64": "2.5.0", - "turbo-windows-arm64": "2.5.0" + "turbo-darwin-64": "2.5.1", + "turbo-darwin-arm64": "2.5.1", + "turbo-linux-64": "2.5.1", + "turbo-linux-arm64": "2.5.1", + "turbo-windows-64": "2.5.1", + "turbo-windows-arm64": "2.5.1" } }, "node_modules/turbo-darwin-64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.5.0.tgz", - "integrity": "sha512-fP1hhI9zY8hv0idym3hAaXdPi80TLovmGmgZFocVAykFtOxF+GlfIgM/l4iLAV9ObIO4SUXPVWHeBZQQ+Hpjag==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.5.1.tgz", + "integrity": "sha512-U9lT1rZ20PQjEYDiNE0aZrU6K+StAE8rood9xn3pV1w+CSby56HkdR2AffzMdFf8iPTeZfcY1qL62rDcCeRPTw==", "cpu": [ "x64" ], @@ -17601,9 +17557,9 @@ ] }, "node_modules/turbo-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-p9sYq7kXH7qeJwIQE86cOWv/xNqvow846l6c/qWc26Ib1ci5W7V0sI5thsrP3eH+VA0d+SHalTKg5SQXgNQBWA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-1Mp0LeP9JENqHnurGNyD557sndPt2BYUbgzUX87tYIdu/26dHyqlobiRzPpEfkOGB/sV4exhJUJGXB1h72szLQ==", "cpu": [ "arm64" ], @@ -17614,9 +17570,9 @@ ] }, "node_modules/turbo-linux-64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.5.0.tgz", - "integrity": "sha512-1iEln2GWiF3iPPPS1HQJT6ZCFXynJPd89gs9SkggH2EJsj3eRUSVMmMC8y6d7bBbhBFsiGGazwFIYrI12zs6uQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.5.1.tgz", + "integrity": "sha512-Cl2yKumJQAlNG5UA7vjCU6SPBLrcKaGhOjTaUjGHeD9WLL8vh4FwOlhOD2wk7zCUlhpJaM73WHY+oOZGMqmzOg==", "cpu": [ "x64" ], @@ -17627,9 +17583,9 @@ ] }, "node_modules/turbo-linux-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.5.0.tgz", - "integrity": "sha512-bKBcbvuQHmsX116KcxHJuAcppiiBOfivOObh2O5aXNER6mce7YDDQJy00xQQNp1DhEfcSV2uOsvb3O3nN2cbcA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.5.1.tgz", + "integrity": "sha512-OFpb/9YZJG8v3nttD4K5dxW3bwsZp++oxAykpYsPhp552EX6r+dJrt2dzX3C0azls2JLf/UzTpA83fRoM8mC4g==", "cpu": [ "arm64" ], @@ -17646,9 +17602,9 @@ "license": "ISC" }, "node_modules/turbo-windows-64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.5.0.tgz", - "integrity": "sha512-9BCo8oQ7BO7J0K913Czbc3tw8QwLqn2nTe4E47k6aVYkM12ASTScweXPTuaPFP5iYXAT6z5Dsniw704Ixa5eGg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.5.1.tgz", + "integrity": "sha512-6XnfSxE8xPETVAlAwfMqCuVuZbq9gXTj8H/Eggv/i3Tjoh2l5xMVTOmg3/zV4RlDtTcwhnvXgXx8LEXrSRZmQQ==", "cpu": [ "x64" ], @@ -17659,9 +17615,9 @@ ] }, "node_modules/turbo-windows-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.5.0.tgz", - "integrity": "sha512-OUHCV+ueXa3UzfZ4co/ueIHgeq9B2K48pZwIxKSm5VaLVuv8M13MhM7unukW09g++dpdrrE1w4IOVgxKZ0/exg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.5.1.tgz", + "integrity": "sha512-Nc9abxTCpRL8ejzzIm5j6jze3jFi23ZtU83Fwz2N9StquYHGEi72isyeCkrhzCiUvZZEPlFyFaXOSShcJUK58Q==", "cpu": [ "arm64" ], diff --git a/package.json b/package.json index ce3099bf9..f15fee098 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,11 @@ "packages/*" ], "dependencies": { + "@radix-ui/themes": "^3.2.1", "@trivago/prettier-plugin-sort-imports": "^5.2.2", "patch-package": "^8.0.0", "prettier": "^3.5.3", + "radix-ui": "^1.2.0", "react-select": "^5.10.0", "turbo": "^2.4.4" },