From c71bd5f278bd496aa27569276c33802b3e91f9a2 Mon Sep 17 00:00:00 2001 From: Carsten Koch Date: Sat, 26 Oct 2024 23:22:49 +0200 Subject: [PATCH 1/7] fix: update deps --- api/ContextAccounts.tsx | 2 +- api/useActivity.ts | 2 +- api/usePerson.ts | 4 +- .../combo-box/popover-content-combo-box.tsx | 4 +- components/crm/compare-data.tsx | 4 +- components/crm/useCrmProjectsFilter.tsx | 6 +- .../interactions/useInteractionFilter.tsx | 2 +- .../people/PersonContactDetailsForm.tsx | 8 +- .../planning/usePlanAccountProjects.tsx | 6 +- components/planning/useWeekPlanContext.tsx | 2 +- components/projects/useProjectFilter.tsx | 4 +- components/search/useSearch.tsx | 21 +- .../accordion/DefaultAccordionItem.tsx | 16 +- .../account-updates-helpers.ts | 2 +- .../editors/extensions/tasks/task-item.ts | 4 +- .../editors/helpers/text-generation.ts | 38 +- .../ui-elements/editors/helpers/todos-cud.ts | 2 +- .../editors/helpers/transform-v3.ts | 17 +- .../editors/helpers/transformers.ts | 4 +- components/ui-elements/editors/meta-data.tsx | 4 +- components/ui/command.tsx | 2 + components/ui/form.tsx | 4 +- components/ui/input.tsx | 2 + components/ui/textarea.tsx | 2 + components/ui/use-toast.ts | 4 +- docs/releases/next.md | 15 +- helpers/account-people.ts | 2 +- helpers/person/sub-relationships.ts | 308 +- helpers/projects.ts | 2 +- package-lock.json | 12136 +++++++++------- package.json | 24 +- 31 files changed, 7110 insertions(+), 5543 deletions(-) diff --git a/api/ContextAccounts.tsx b/api/ContextAccounts.tsx index 0c032f9cd..7623149c7 100644 --- a/api/ContextAccounts.tsx +++ b/api/ContextAccounts.tsx @@ -177,7 +177,7 @@ const addOrderNumberToAccounts = ( [] ); -export const fetchAccounts = async () => { +const fetchAccounts = async () => { const { data, errors } = await client.models.Account.list({ limit: 500, selectionSet, diff --git a/api/useActivity.ts b/api/useActivity.ts index adffdb0d1..5c2af053a 100644 --- a/api/useActivity.ts +++ b/api/useActivity.ts @@ -23,7 +23,7 @@ export type TempIdMapping = { id: string; }; -export type ProjectLinkData = { +type ProjectLinkData = { id: string; projectsId: string; }; diff --git a/api/usePerson.ts b/api/usePerson.ts index a01afe806..89701bbcf 100644 --- a/api/usePerson.ts +++ b/api/usePerson.ts @@ -24,7 +24,7 @@ import useSWR from "swr"; import { handleApiErrors } from "./globals"; const client = generateClient(); -export const selectionSet = [ +const selectionSet = [ "id", "name", "howToSay", @@ -103,7 +103,7 @@ export type Person = { updatedAt: Date; }; -export const mapPerson = ({ +const mapPerson = ({ id, name, howToSay, diff --git a/components/combo-box/popover-content-combo-box.tsx b/components/combo-box/popover-content-combo-box.tsx index 35e66a905..c30ca29b3 100644 --- a/components/combo-box/popover-content-combo-box.tsx +++ b/components/combo-box/popover-content-combo-box.tsx @@ -48,8 +48,8 @@ const PopoverContentComboBox: FC = ({ val.toLowerCase().includes(search.toLowerCase()) ? 1 : val === "create-new-record" - ? 1 - : 0 + ? 1 + : 0 } > = ({ {!originalValue ? "empty" : originalValue instanceof Date - ? format(originalValue, "PP") - : originalValue} + ? format(originalValue, "PP") + : originalValue} ) ); diff --git a/components/crm/useCrmProjectsFilter.tsx b/components/crm/useCrmProjectsFilter.tsx index 543443ee1..15708b7ae 100644 --- a/components/crm/useCrmProjectsFilter.tsx +++ b/components/crm/useCrmProjectsFilter.tsx @@ -38,7 +38,7 @@ interface CrmProjectsFilterProviderProps { const PROJECT_FILTERS = ["All", "Hygiene", "By Partner", "By Account"] as const; -export type TProjectFilters = (typeof PROJECT_FILTERS)[number]; +type TProjectFilters = (typeof PROJECT_FILTERS)[number]; const isValidProjectFilter = ( crmFilter: string @@ -97,8 +97,8 @@ const CrmProjectsFilterProvider: FC = ({ newFilter === "More" ? setSelectedMore(true) : newFilter === "Back" - ? setSelectedMore(false) - : isValidProjectFilter(newFilter) && setCrmFilter(newFilter); + ? setSelectedMore(false) + : isValidProjectFilter(newFilter) && setCrmFilter(newFilter); return ( = ({ +const InteractionFilterProvider: FC = ({ children, }) => { const [weeks, setWeeks] = useState("13"); diff --git a/components/people/PersonContactDetailsForm.tsx b/components/people/PersonContactDetailsForm.tsx index 7327e9951..30eb4c737 100644 --- a/components/people/PersonContactDetailsForm.tsx +++ b/components/people/PersonContactDetailsForm.tsx @@ -58,10 +58,10 @@ const validationSchemaMap: TValidationSchemaMap = personDetailsLabels.reduce( rest.type === "url" ? makeUrlValidation(rest.formLabel) : rest.type === "email" - ? emailValidation - : rest.type === "phone" - ? phoneValidation - : stringValidation, + ? emailValidation + : rest.type === "phone" + ? phoneValidation + : stringValidation, }), }), {} as TValidationSchemaMap diff --git a/components/planning/usePlanAccountProjects.tsx b/components/planning/usePlanAccountProjects.tsx index 68a4f2a8c..3f528ee66 100644 --- a/components/planning/usePlanAccountProjects.tsx +++ b/components/planning/usePlanAccountProjects.tsx @@ -42,9 +42,9 @@ interface PlanAccountProjectsProviderProps { children: React.ReactNode; } -export const PlanAccountProjectsProvider: FC< - PlanAccountProjectsProviderProps -> = ({ children }) => { +const PlanAccountProjectsProvider: FC = ({ + children, +}) => { const { accounts, loadingAccounts, errorAccounts } = useAccountsContext(); const { projects, saveProjectDates } = usePlanningProjectFilter(); const [accountsProjects, setAccountsProjects] = useState( diff --git a/components/planning/useWeekPlanContext.tsx b/components/planning/useWeekPlanContext.tsx index 2c13a6452..d846cf64b 100644 --- a/components/planning/useWeekPlanContext.tsx +++ b/components/planning/useWeekPlanContext.tsx @@ -32,7 +32,7 @@ interface WeekPlanProviderProps { children: React.ReactNode; } -export const WeekPlanProvider: FC = ({ children }) => { +const WeekPlanProvider: FC = ({ children }) => { const { weekPlan, createWeekPlan, diff --git a/components/projects/useProjectFilter.tsx b/components/projects/useProjectFilter.tsx index ba9dbb2da..f7d82f08e 100644 --- a/components/projects/useProjectFilter.tsx +++ b/components/projects/useProjectFilter.tsx @@ -15,9 +15,7 @@ export const PROJECT_FILTERS = ["WIP", "On Hold", "Done"]; const PROJECT_FILTERS_CONST = ["WIP", "On Hold", "Done"] as const; export type ProjectFilters = (typeof PROJECT_FILTERS_CONST)[number]; -export const isValidProjectFilter = ( - filter: string -): filter is ProjectFilters => +const isValidProjectFilter = (filter: string): filter is ProjectFilters => PROJECT_FILTERS_CONST.includes(filter as ProjectFilters); interface ProjectFilterType { diff --git a/components/search/useSearch.tsx b/components/search/useSearch.tsx index 8a65acd05..d2dded67b 100644 --- a/components/search/useSearch.tsx +++ b/components/search/useSearch.tsx @@ -1,11 +1,4 @@ -import { - ComponentType, - createContext, - FC, - useContext, - useEffect, - useState, -} from "react"; +import { createContext, FC, useContext, useEffect, useState } from "react"; interface SearchType { searchText: string; @@ -46,15 +39,3 @@ export const SearchProvider: FC = ({ children }) => { ); }; - -export function isSearchable( - Component: ComponentType -) { - return function WrappedProvider(componentProps: Props) { - return ( - - - - ); - }; -} diff --git a/components/ui-elements/accordion/DefaultAccordionItem.tsx b/components/ui-elements/accordion/DefaultAccordionItem.tsx index de69fe67b..325f2e8c3 100644 --- a/components/ui-elements/accordion/DefaultAccordionItem.tsx +++ b/components/ui-elements/accordion/DefaultAccordionItem.tsx @@ -79,14 +79,14 @@ const DefaultAccordionItem = forwardRef< {typeof triggerSubTitle === "string" ? triggerSubTitle : typeof triggerSubTitle === "boolean" - ? "" - : flow( - filter( - (t: string | undefined | boolean) => - typeof t === "string" && t !== "" - ), - join(", ") - )(triggerSubTitle)} + ? "" + : flow( + filter( + (t: string | undefined | boolean) => + typeof t === "string" && t !== "" + ), + join(", ") + )(triggerSubTitle)} diff --git a/components/ui-elements/account-details/account-updates-helpers.ts b/components/ui-elements/account-details/account-updates-helpers.ts index 51f7378c7..5d8e0af51 100644 --- a/components/ui-elements/account-details/account-updates-helpers.ts +++ b/components/ui-elements/account-details/account-updates-helpers.ts @@ -24,7 +24,7 @@ export const debouncedUpdateAccountDetails = debounce( ...props, introduction: editor?.getJSON(), }); - updateSavedState && updateSavedState(true); + updateSavedState?.(true); }, 1500 ); diff --git a/components/ui-elements/editors/extensions/tasks/task-item.ts b/components/ui-elements/editors/extensions/tasks/task-item.ts index 12713e1dd..95f3ebad8 100644 --- a/components/ui-elements/editors/extensions/tasks/task-item.ts +++ b/components/ui-elements/editors/extensions/tasks/task-item.ts @@ -6,7 +6,7 @@ import { } from "@tiptap/core"; import { Node as ProseMirrorNode } from "@tiptap/pm/model"; -export interface TaskItemOptions { +interface TaskItemOptions { /** * A callback function that is called when the checkbox is clicked while the editor is in readonly mode. * @param node The prosemirror node of the task item @@ -40,7 +40,7 @@ export interface TaskItemOptions { /** * Matches a task item to a - [ ] on input. */ -export const inputRegex = /^\s*(\[([( |x])?\])\s$/; +const inputRegex = /^\s*(\[([( |x])?\])\s$/; /** * This extension allows you to create task items. diff --git a/components/ui-elements/editors/helpers/text-generation.ts b/components/ui-elements/editors/helpers/text-generation.ts index 43d32d580..cc8035593 100644 --- a/components/ui-elements/editors/helpers/text-generation.ts +++ b/components/ui-elements/editors/helpers/text-generation.ts @@ -33,8 +33,8 @@ const transformMentionsToText = (json: JSONContent): JSONContent => }), } : !json.attrs?.label - ? {} - : { type: "text", text: `@${json.attrs?.label}` }; + ? {} + : { type: "text", text: `@${json.attrs?.label}` }; const transformTasksToText = (json: JSONContent): JSONContent => json.type !== "taskList" @@ -85,23 +85,23 @@ export const getTextFromJsonContent = (json?: JSONContent | string) => !json ? "" : typeof json === "string" - ? json - : generateText( - { - ...json, - ...(!json.content - ? {} - : { - content: flow( - get("content"), - filterS3ImageNodes, - map(transformMentionsToText), - map(transformTasksToText) - )(json), - }), - }, - MyExtensions - ); + ? json + : generateText( + { + ...json, + ...(!json.content + ? {} + : { + content: flow( + get("content"), + filterS3ImageNodes, + map(transformMentionsToText), + map(transformTasksToText) + )(json), + }), + }, + MyExtensions + ); export const getTopicTodos = ( topicProjectIds: string[], diff --git a/components/ui-elements/editors/helpers/todos-cud.ts b/components/ui-elements/editors/helpers/todos-cud.ts index 2a4af8ffa..d0c777504 100644 --- a/components/ui-elements/editors/helpers/todos-cud.ts +++ b/components/ui-elements/editors/helpers/todos-cud.ts @@ -87,7 +87,7 @@ const mapTodoToCreationSet = (block: JSONContent): TTodoCreationSet => { }; }; -export const getTodos = (content: JSONContent): JSONContent[] => +const getTodos = (content: JSONContent): JSONContent[] => flow( get("content"), filter((c: JSONContent) => c.type === "taskList"), diff --git a/components/ui-elements/editors/helpers/transform-v3.ts b/components/ui-elements/editors/helpers/transform-v3.ts index bf4fdcd58..45a7d1825 100644 --- a/components/ui-elements/editors/helpers/transform-v3.ts +++ b/components/ui-elements/editors/helpers/transform-v3.ts @@ -11,14 +11,15 @@ const mapPeople = ...mapContentPeople(content.content, block), } : !content.attrs?.id - ? {} - : { - attrs: { - ...content.attrs, - recordId: block.people.find((p) => p.personId === content.attrs?.id) - ?.id, - }, - }), + ? {} + : { + attrs: { + ...content.attrs, + recordId: block.people.find( + (p) => p.personId === content.attrs?.id + )?.id, + }, + }), }); const mapListItem = ( diff --git a/components/ui-elements/editors/helpers/transformers.ts b/components/ui-elements/editors/helpers/transformers.ts index 8a409db41..298db5d24 100644 --- a/components/ui-elements/editors/helpers/transformers.ts +++ b/components/ui-elements/editors/helpers/transformers.ts @@ -25,8 +25,8 @@ const createDocument = ({ formatVersion === 3 ? transformNotesVersion3(noteBlocks, noteBlockIds) : formatVersion === 2 - ? transformNotesVersion2(notesJson) - : transformNotesVersion1(notes); + ? transformNotesVersion2(notesJson) + : transformNotesVersion1(notes); const createAttrs = ( content: JSONContent, diff --git a/components/ui-elements/editors/meta-data.tsx b/components/ui-elements/editors/meta-data.tsx index 7035d4087..f6a9b1da3 100644 --- a/components/ui-elements/editors/meta-data.tsx +++ b/components/ui-elements/editors/meta-data.tsx @@ -20,8 +20,8 @@ const getUpdatedAtTime = ({ created, updated }: MetaDataProps) => !updated ? "" : updated.getTime() - created.getTime() < 1000 * 60 - ? "" - : ` – Updated on: ${makeLocaleString(updated)}` + ? "" + : ` – Updated on: ${makeLocaleString(updated)}` }`; const MetaData: FC> = ({ created, updated }) => { diff --git a/components/ui/command.tsx b/components/ui/command.tsx index 8d9945bd7..cfa688e77 100644 --- a/components/ui/command.tsx +++ b/components/ui/command.tsx @@ -21,7 +21,9 @@ const Command = React.forwardRef< )); Command.displayName = CommandPrimitive.displayName; +/* eslint-disable @typescript-eslint/no-empty-object-type */ interface CommandDialogProps extends DialogProps {} +/* eslint-enable @typescript-eslint/no-empty-object-type */ const CommandDialog = ({ children, ...props }: CommandDialogProps) => { return ( diff --git a/components/ui/form.tsx b/components/ui/form.tsx index d2eb5b09c..67201ddf8 100644 --- a/components/ui/form.tsx +++ b/components/ui/form.tsx @@ -17,7 +17,7 @@ const Form = FormProvider; type FormFieldContextValue< TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath + TName extends FieldPath = FieldPath, > = { name: TName; }; @@ -28,7 +28,7 @@ const FormFieldContext = React.createContext( const FormField = < TFieldValues extends FieldValues = FieldValues, - TName extends FieldPath = FieldPath + TName extends FieldPath = FieldPath, >({ ...props }: ControllerProps) => { diff --git a/components/ui/input.tsx b/components/ui/input.tsx index 644632d07..64e10da57 100644 --- a/components/ui/input.tsx +++ b/components/ui/input.tsx @@ -2,8 +2,10 @@ import * as React from "react"; import { cn } from "@/lib/utils"; +/* eslint-disable @typescript-eslint/no-empty-object-type */ export interface InputProps extends React.InputHTMLAttributes {} +/* eslint-enable @typescript-eslint/no-empty-object-type */ const Input = React.forwardRef( ({ className, type, ...props }, ref) => { diff --git a/components/ui/textarea.tsx b/components/ui/textarea.tsx index 0f3eac653..406bbb4d1 100644 --- a/components/ui/textarea.tsx +++ b/components/ui/textarea.tsx @@ -2,8 +2,10 @@ import * as React from "react"; import { cn } from "@/lib/utils"; +/* eslint-disable @typescript-eslint/no-empty-object-type */ export interface TextareaProps extends React.TextareaHTMLAttributes {} +/* eslint-enable @typescript-eslint/no-empty-object-type */ const Textarea = React.forwardRef( ({ className, ...props }, ref) => { diff --git a/components/ui/use-toast.ts b/components/ui/use-toast.ts index 83b217000..f5e38e874 100644 --- a/components/ui/use-toast.ts +++ b/components/ui/use-toast.ts @@ -13,7 +13,7 @@ type ToasterToast = ToastProps & { action?: ToastActionElement; }; -const actionTypes = { +const _actionTypes = { ADD_TOAST: "ADD_TOAST", UPDATE_TOAST: "UPDATE_TOAST", DISMISS_TOAST: "DISMISS_TOAST", @@ -27,7 +27,7 @@ function genId() { return count.toString(); } -type ActionType = typeof actionTypes; +type ActionType = typeof _actionTypes; type Action = | { diff --git a/docs/releases/next.md b/docs/releases/next.md index d50734200..caca738af 100644 --- a/docs/releases/next.md +++ b/docs/releases/next.md @@ -1,9 +1,22 @@ # Monatliche Umsätze der Kunden abbilden (Version :VERSION) -- Datenbankschema ist erweitert, um das Hochladen von Kundenumsätzen zu unterstützen. +## Packages aktualisiert + +Von "Current" auf "Latest" aktualisiert: + +| Package | Current | Wanted | Latest | +| -------------------------------- | ------- | ------- | ------- | +| @commitlint/config-conventional | 18.6.3 | 18.6.3 | 19.5.0 | +| @typescript-eslint/eslint-plugin | 7.18.0 | 7.18.0 | 8.11.0 | +| @typescript-eslint/parser | 7.18.0 | 7.18.0 | 8.11.0 | +| commitlint | 18.6.1 | 18.6.1 | 19.5.0 | +| eslint-plugin-prettier | 4.2.1 | 4.2.1 | 5.2.1 | +| lucide-react | 0.379.0 | 0.379.0 | 0.453.0 | +| prettier | 2.8.8 | 2.8.8 | 3.3.3 | ## In Arbeit +- Datenbankschema ist erweitert, um das Hochladen von Kundenumsätzen zu unterstützen. - Monatliche Umsätze der Kunden abbilden ## Geplant diff --git a/helpers/account-people.ts b/helpers/account-people.ts index 22c413d2e..b407ad07d 100644 --- a/helpers/account-people.ts +++ b/helpers/account-people.ts @@ -6,7 +6,7 @@ type ActivityData = PersonAccountData["person"]["meetings"][number]["meeting"]["activities"][number]; type LearningData = PersonAccountData["person"]["learnings"][number]; -export type AccountPerson = { +type AccountPerson = { id: string; name: string; }; diff --git a/helpers/person/sub-relationships.ts b/helpers/person/sub-relationships.ts index 94fcf30a3..0d8e2ae95 100644 --- a/helpers/person/sub-relationships.ts +++ b/helpers/person/sub-relationships.ts @@ -26,7 +26,7 @@ export type PersonDataRelationRelatedPerson = PersonData["relationshipsFrom"][number]["relatedPerson"]; type PersonDataRelationPerson = PersonData["relationshipsTo"][number]["person"]; -export const SUB_RELATIONSHIP_TYPES = [ +const SUB_RELATIONSHIP_TYPES = [ "spouse's child", "grand child", "spouse's friend", @@ -37,7 +37,7 @@ export const SUB_RELATIONSHIP_TYPES = [ "grand parent", ] as const; -export type TSubRelationshipTypes = (typeof SUB_RELATIONSHIP_TYPES)[number]; +type TSubRelationshipTypes = (typeof SUB_RELATIONSHIP_TYPES)[number]; export const notSelf = (personId: string) => (relation: PersonSubRelationship) => @@ -116,25 +116,25 @@ export const getGrandChilds = ( )(relatedPerson) ?? []), ] : person && typeName === "parent" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterChild), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("grand child")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterParent), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("grand child")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterChild), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("grand child")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterParent), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("grand child")) + )(person) ?? []), + ] + : []; export const getFriendSpouse = ( person: PersonDataRelationPerson | undefined, @@ -161,25 +161,25 @@ export const getFriendSpouse = ( )(relatedPerson) ?? []), ] : person && typeName === "friend" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterSpouse), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("friend's spouse")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterSpouse), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("friend's spouse")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterSpouse), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("friend's spouse")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterSpouse), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("friend's spouse")) + )(person) ?? []), + ] + : []; export const getSpousesFriends = ( person: PersonDataRelationPerson | undefined, @@ -206,25 +206,25 @@ export const getSpousesFriends = ( )(relatedPerson) ?? []), ] : person && typeName === "spouse" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterFriend), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("spouse's friend")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterFriend), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("spouse's friend")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterFriend), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("spouse's friend")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterFriend), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("spouse's friend")) + )(person) ?? []), + ] + : []; export const getFriendsChilds = ( person: PersonDataRelationPerson | undefined, @@ -251,25 +251,25 @@ export const getFriendsChilds = ( )(relatedPerson) ?? []), ] : person && typeName === "friend" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterChild), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("friend's child")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterParent), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("friend's child")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterChild), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("friend's child")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterParent), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("friend's child")) + )(person) ?? []), + ] + : []; export const getParentsSpouse = ( person: PersonDataRelationPerson | undefined, @@ -296,25 +296,25 @@ export const getParentsSpouse = ( )(relatedPerson) ?? []), ] : person && typeName === "child" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterSpouse), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("parent's spouse")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterSpouse), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("parent's spouse")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterSpouse), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("parent's spouse")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterSpouse), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("parent's spouse")) + )(person) ?? []), + ] + : []; export const getSpousesChilds = ( person: PersonDataRelationPerson | undefined, @@ -341,25 +341,25 @@ export const getSpousesChilds = ( )(relatedPerson) ?? []), ] : person && typeName === "spouse" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterChild), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("spouse's child")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterParent), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("spouse's child")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterChild), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("spouse's child")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterParent), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("spouse's child")) + )(person) ?? []), + ] + : []; export const getGrandParents = ( person: PersonDataRelationPerson | undefined, @@ -386,25 +386,25 @@ export const getGrandParents = ( )(relatedPerson) ?? []), ] : person && typeName === "child" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterParent), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("grand parent")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterChild), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("grand parent")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterParent), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("grand parent")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterChild), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("grand parent")) + )(person) ?? []), + ] + : []; export const getSiblings = ( person: PersonDataRelationPerson | undefined, @@ -431,22 +431,22 @@ export const getSiblings = ( )(relatedPerson) ?? []), ] : person && typeName === "child" - ? [ - ...(flow( - get("relationshipsFrom"), - filter(filterChild), - map("relatedPerson"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("sibling")) - )(person) ?? []), - ...(flow( - get("relationshipsTo"), - filter(filterParent), - map("person"), - compact, - filter(filterAlivePerson), - map(mapRelatedPersonData("sibling")) - )(person) ?? []), - ] - : []; + ? [ + ...(flow( + get("relationshipsFrom"), + filter(filterChild), + map("relatedPerson"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("sibling")) + )(person) ?? []), + ...(flow( + get("relationshipsTo"), + filter(filterParent), + map("person"), + compact, + filter(filterAlivePerson), + map(mapRelatedPersonData("sibling")) + )(person) ?? []), + ] + : []; diff --git a/helpers/projects.ts b/helpers/projects.ts index afd70fbf4..b34e808f6 100644 --- a/helpers/projects.ts +++ b/helpers/projects.ts @@ -102,7 +102,7 @@ export const make2YearsRevenueText = (revenue: number) => export const getRevenue2Years = (projects: ICalcRevenueTwoYears[]) => make2YearsRevenueText(flow(map(calcRevenueTwoYears), sum)(projects)); -export type FilterAndSortProjectsProps = { +type FilterAndSortProjectsProps = { projects: Project[]; accountId?: string; projectFilter?: ProjectFilters; diff --git a/package-lock.json b/package-lock.json index f5081c373..3de14b7ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,13 +52,14 @@ "date-fns": "^3.6.0", "encodeurl": "^2.0.0", "lodash": "^4.17.21", - "lucide-react": "^0.379.0", - "next": "^14.1.3", + "lucide-react": "^0.453.0", + "next": "^14.2.16", "react": "^18", "react-day-picker": "^9.0.4", "react-dom": "^18", "react-hook-form": "^7.51.5", "react-icons": "^5.0.1", + "sharp": "^0.33.5", "swr": "^2.2.5", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", @@ -69,7 +70,9 @@ "devDependencies": { "@aws-amplify/backend": "^1.0.4", "@aws-amplify/backend-cli": "^1.1.0", - "@commitlint/config-conventional": "^18.6.2", + "@commitlint/config-conventional": "^19.5.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.13.0", "@faker-js/faker": "^9.0.3", "@tailwindcss/typography": "^0.5.13", "@types/aws-lambda": "^8.10.141", @@ -77,20 +80,21 @@ "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", - "@typescript-eslint/eslint-plugin": "^7.9.0", - "@typescript-eslint/parser": "^7.9.0", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.11.0", "autoprefixer": "^10.4.19", "aws-cdk": "^2.126.0", "aws-cdk-lib": "^2.126.0", - "commitlint": "^18.6.1", + "commitlint": "^19.5.0", "constructs": "^10.3.0", - "eslint": "^8", - "eslint-config-next": "^14.1.0", + "eslint": "^8.57.1", + "eslint-config-next": "^14.2.16", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^4", + "eslint-plugin-prettier": "^5.2.1", + "globals": "^15.11.0", "husky": "^9.0.11", "postcss": "^8.4.38", - "prettier": "^2.8.8", + "prettier": "^3.3.3", "tailwindcss": "^3.4.3", "typescript": "^5.3.3" } @@ -174,31 +178,31 @@ } }, "node_modules/@ardatan/relay-compiler/node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.0.tgz", + "integrity": "sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/parser": "^7.26.0", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@ardatan/relay-compiler/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -287,6 +291,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@ardatan/relay-compiler/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@ardatan/relay-compiler/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -436,9 +453,9 @@ } }, "node_modules/@aws-amplify/analytics": { - "version": "7.0.50", - "resolved": "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-7.0.50.tgz", - "integrity": "sha512-pFXzLmepr+TFRjyPR5fWIEWvRO2KoHAOpTYp3FHg4qtBjt9FLUSxdhypgQDBA1m7E0wCKY1b/58ax5UzV3XpKA==", + "version": "7.0.54", + "resolved": "https://registry.npmjs.org/@aws-amplify/analytics/-/analytics-7.0.54.tgz", + "integrity": "sha512-oacruwjVNGCw3SE4FOwcWaC+J3bnvPKaxalPwl+pVshmW3Loaqrh/Ycc1A0gahvr4u2Wuw72uZnZzVw5sJ/hKg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-firehose": "3.621.0", @@ -490,25 +507,25 @@ } }, "node_modules/@aws-amplify/api": { - "version": "6.0.52", - "resolved": "https://registry.npmjs.org/@aws-amplify/api/-/api-6.0.52.tgz", - "integrity": "sha512-y9O8g/LXtjK1VZQbzzs67/hoHvvXtcCYr7By1OxVKp8xBGQiFbAA79UCmeuoVvE+Ck7i77JfPCSTrO+v38UPrw==", + "version": "6.0.56", + "resolved": "https://registry.npmjs.org/@aws-amplify/api/-/api-6.0.56.tgz", + "integrity": "sha512-2hQ9CU9iJZPTUYGtWNkdpEuZomL1P25wsTeLE7KapNYP+nZD/jOsoCohybDfro0MwqT8a80WelY8mMsi+T4BIg==", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/api-graphql": "4.3.3", - "@aws-amplify/api-rest": "4.0.50", + "@aws-amplify/api-graphql": "4.4.3", + "@aws-amplify/api-rest": "4.0.54", "tslib": "^2.5.0" } }, "node_modules/@aws-amplify/api-graphql": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-4.3.3.tgz", - "integrity": "sha512-sXBbT+9l4siJNUhuIG5lAeVQ730zuAz8grBycYRkk/X6HL2w1x8dXR8+F5OphG60F+VgTMNH7nfd9mijrukapw==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-graphql/-/api-graphql-4.4.3.tgz", + "integrity": "sha512-YaYs8GGvP4RIQYXRlfeEqJdGlfN4dBUmzFVz1rNHvEL66m44rplhr+3Qdt3Dor7kmYgQO4ZWOq6WsfudmGjRuA==", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/api-rest": "4.0.50", - "@aws-amplify/core": "6.4.3", - "@aws-amplify/data-schema": "^1.5.0", + "@aws-amplify/api-rest": "4.0.54", + "@aws-amplify/core": "6.4.7", + "@aws-amplify/data-schema": "^1.7.0", "@aws-sdk/types": "3.387.0", "graphql": "15.8.0", "rxjs": "^7.8.1", @@ -542,9 +559,9 @@ } }, "node_modules/@aws-amplify/api-rest": { - "version": "4.0.50", - "resolved": "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-4.0.50.tgz", - "integrity": "sha512-0FCzUSJnPPodyd9KLXXqkiN0ByGyRfrQEvFOQoPlzRJ7/+FA9TxXUoCtHhwfnBRLP83lyuQ7fwN/g0cT/jK3hQ==", + "version": "4.0.54", + "resolved": "https://registry.npmjs.org/@aws-amplify/api-rest/-/api-rest-4.0.54.tgz", + "integrity": "sha512-Dh+oCuQKRp5a9Mz38ztXO8a5CdFh/kq6Ht1La+vGDi5AXHWIN8aSuFimxSsRiuqwl0TWj5mbpqaoQJFUVByLvA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -554,9 +571,9 @@ } }, "node_modules/@aws-amplify/appsync-modelgen-plugin": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/@aws-amplify/appsync-modelgen-plugin/-/appsync-modelgen-plugin-2.13.1.tgz", - "integrity": "sha512-zOBxJPHJ1aN6nKy8FRhSZdJRW0ycnoNxi/xnLAtcUZ4fhz1EtbQrzCndlq0p8YZEp4YHV5Z047mURJT2sHSiBw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/appsync-modelgen-plugin/-/appsync-modelgen-plugin-2.13.2.tgz", + "integrity": "sha512-gJrOHUnjSCevCNCfFinSB1fHDaOgWIjo+HDj68rcDlYBJz3S43R7yUFy5O3Lv6mQ5EbgNjUCNJ6rPLjMPuzaXw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -576,9 +593,9 @@ } }, "node_modules/@aws-amplify/auth": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@aws-amplify/auth/-/auth-6.5.0.tgz", - "integrity": "sha512-bRGpUYZQk+Mh7lajFl/Pxk/9YXV7mdHSAGQhS1YjEV7x1It+UwdSK40EpCQ/cT92jQ/4BQH2dAHg8aZ5nTDkKQ==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/auth/-/auth-6.5.4.tgz", + "integrity": "sha512-Kd+dVqJVR5B8iS09Re5rg+0N1ZpEyYru3iRSPTxBb5J2Oh/lnDPGhAEE52+p8C5BZo/ig6gpRTRIJRsFU+09CA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" @@ -588,13 +605,13 @@ } }, "node_modules/@aws-amplify/auth-construct": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@aws-amplify/auth-construct/-/auth-construct-1.3.1.tgz", - "integrity": "sha512-1i2f5Wkv1fq4Eieb1UOaZfjchPAsExJxSZBOP89GnS2TU/PCceibZAFBUKUZ9FMqwItyxms/3fHUPHaBVlVqSA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/auth-construct/-/auth-construct-1.3.2.tgz", + "integrity": "sha512-YY//f48V3wZVe3A/BKot8elPcn52+ESex98PcaqmStkqVCduRPWXq1mNnqNlchisAuodJNUlYITWaw6ktwqrnw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-schemas": "^1.4.0", "@aws-amplify/backend-output-storage": "^1.1.2", "@aws-amplify/plugin-types": "^1.2.2", "@aws-sdk/util-arn-parser": "^3.568.0" @@ -605,20 +622,20 @@ } }, "node_modules/@aws-amplify/backend": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend/-/backend-1.3.0.tgz", - "integrity": "sha512-rSv9Dyw1X7uAkc6pFTGPugxrErU3+AN802AlDO9z44frD+ierqFb2qPg9dOrqZzuuluKrqQiCJiMQqRiaINg+g==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend/-/backend-1.5.1.tgz", + "integrity": "sha512-krUSd/TT8AOHBk+SRN+qB4r2ltop6TE2mQQFcGclgdBsafiHc9Zi5C5mnS4eAvuzzntHp2Q2cB9KH2+yHRujzA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-amplify/backend-auth": "^1.2.0", - "@aws-amplify/backend-data": "^1.1.4", - "@aws-amplify/backend-function": "^1.5.0", - "@aws-amplify/backend-output-schemas": "^1.2.0", + "@aws-amplify/backend-data": "^1.1.5", + "@aws-amplify/backend-function": "^1.7.1", + "@aws-amplify/backend-output-schemas": "^1.4.0", "@aws-amplify/backend-output-storage": "^1.1.2", - "@aws-amplify/backend-secret": "^1.1.2", - "@aws-amplify/backend-storage": "^1.2.0", - "@aws-amplify/client-config": "^1.3.1", + "@aws-amplify/backend-secret": "^1.1.4", + "@aws-amplify/backend-storage": "^1.2.1", + "@aws-amplify/client-config": "^1.5.0", "@aws-amplify/data-schema": "^1.0.0", "@aws-amplify/platform-core": "^1.1.0", "@aws-amplify/plugin-types": "^1.3.0", @@ -647,17 +664,17 @@ } }, "node_modules/@aws-amplify/backend-cli": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend-cli/-/backend-cli-1.2.8.tgz", - "integrity": "sha512-zZtZGyFDCGHROqdqikTJynTbJRIG/VFSQlUjk163IbsN5MIgMr8zOXmFUsHyX0g6X7RJfwto7aqOPahLHn7ZsA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-cli/-/backend-cli-1.3.0.tgz", + "integrity": "sha512-OXsA8I7+b9cyDu83kWhxa8Dlt2A7VzFmiMJ8MUD23yU5628YANFfI09DluRrPLCpKk+ionsQT787EgWyavLNrA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-amplify/backend-deployer": "^1.1.3", - "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-schemas": "^1.4.0", "@aws-amplify/backend-secret": "^1.1.2", "@aws-amplify/cli-core": "^1.1.3", - "@aws-amplify/client-config": "^1.3.1", + "@aws-amplify/client-config": "^1.5.0", "@aws-amplify/deployed-backend-client": "^1.4.1", "@aws-amplify/form-generator": "^1.0.3", "@aws-amplify/model-generator": "^1.0.8", @@ -692,16 +709,16 @@ } }, "node_modules/@aws-amplify/backend-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend-data/-/backend-data-1.1.4.tgz", - "integrity": "sha512-qKK/t4VSH01P8OBA4yoNwqPKjVleQeQGZMo2S9voHMNk7C2hqBj0ztggMjhdiiVTYw8ZGIFMN1MFm05zdOJPqQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-data/-/backend-data-1.1.5.tgz", + "integrity": "sha512-msGfjUQ4LXK2V4NYvv08bnIA12riCfbpDG8mDNvayun8Or3KNhSw8vkWRoKZY8BJxwvNgpgU9HKXqz062VLlZQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-schemas": "^1.4.0", "@aws-amplify/backend-output-storage": "^1.1.2", "@aws-amplify/data-construct": "^1.10.1", - "@aws-amplify/data-schema-types": "^1.1.1", + "@aws-amplify/data-schema-types": "^1.2.0", "@aws-amplify/plugin-types": "^1.2.2" }, "peerDependencies": { @@ -710,9 +727,9 @@ } }, "node_modules/@aws-amplify/backend-deployer": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend-deployer/-/backend-deployer-1.1.4.tgz", - "integrity": "sha512-uGSIEfV8jgjedyd1CEVHqhY7GKY2Gq6N3vogVn3L1tT4inTrOwmvwjDhp4e4RPW/TZWxZEBW2oMzmBpDvFg5YA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-deployer/-/backend-deployer-1.1.5.tgz", + "integrity": "sha512-dJSF2+PdQoWySEgLQclCMaOHhTVFWjlaNbgdYR8CT/k0mjvSimSDFFRjp6BulyzrgjmKVudJgjxb11xvcswNnA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -727,13 +744,13 @@ } }, "node_modules/@aws-amplify/backend-function": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend-function/-/backend-function-1.5.0.tgz", - "integrity": "sha512-bqcCntMiK8YJlTWYN9VtAKpqofPZYZfNx4Je3SCErGcBCIfXxe+3CPLsts1aQRIMaW1C3MFukK3MAzeMsfGOcQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-function/-/backend-function-1.7.1.tgz", + "integrity": "sha512-Rnf8HoE5A8C2h20szxxLmv0lrb+SgQjikhD0CsPlngTTXk3/PpNSg/QvJrd5s4SOAdyYDAqnTTcbkWYgZF44Ig==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^1.1.0", + "@aws-amplify/backend-output-schemas": "^1.4.0", "@aws-amplify/backend-output-storage": "^1.1.2", "@aws-amplify/plugin-types": "^1.3.0", "execa": "^8.0.1" @@ -744,9 +761,9 @@ } }, "node_modules/@aws-amplify/backend-output-schemas": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-1.2.0.tgz", - "integrity": "sha512-UMQfPlfzyvYsV9A/MyoFm8T87MxsLZBzABSkmD5Y/sh8XTIJlqRHibzKStoN7xuK5S1Iz1okRVoxhFxSy0alrg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-1.4.0.tgz", + "integrity": "sha512-/p2t/wWV1CTObJnewmLKlx48AYGhhRKp2Ne51DNZ1gV4CAwZx9Jmtyjv65h3zQ6Gk6WTTcjeNORncgEa1Gq5CA==", "dev": true, "license": "Apache-2.0", "peerDependencies": { @@ -769,9 +786,9 @@ } }, "node_modules/@aws-amplify/backend-secret": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend-secret/-/backend-secret-1.1.3.tgz", - "integrity": "sha512-DgicWDbKmBRNhXL6B5n2yJKW0ZrX6YrL5++UY8V+2RODCtCRgRfCDpy6/AULH8AsDRyT4NCgFqAXBG5pV+Qg+Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-secret/-/backend-secret-1.1.4.tgz", + "integrity": "sha512-97ah+yVK30+OtCXl5MruO81EJO+aXMdVlbOYvO7ZhEnOwe6vVUoHBhg8FsIV+cc/zDdNZK4xXAPUwkefwM4eFg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -781,13 +798,13 @@ } }, "node_modules/@aws-amplify/backend-storage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@aws-amplify/backend-storage/-/backend-storage-1.2.0.tgz", - "integrity": "sha512-sQDc9NTaKEaEGAaga9aSjjnrVqgipf18mhq6eyuJSDyf7foMASHirIIdxzJzJpv7VqYkXvtEDxmHEdlIGxB0bg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/backend-storage/-/backend-storage-1.2.1.tgz", + "integrity": "sha512-FmGs0rKy2G0El/LNepmOXP8wNNcpU/CmOOBBU+znd85TYONqTH1rpAgNKi1+xYWbNP2Y49YS3xRkWHoouNH/jg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^1.2.0", + "@aws-amplify/backend-output-schemas": "^1.2.1", "@aws-amplify/backend-output-storage": "^1.1.2", "@aws-amplify/plugin-types": "^1.3.0" }, @@ -810,13 +827,13 @@ } }, "node_modules/@aws-amplify/client-config": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@aws-amplify/client-config/-/client-config-1.3.2.tgz", - "integrity": "sha512-elq+UKJ7965I+kWUfa1pvn8KugGJyrjPrp+Jz1hGyEg6RdM+iGqteISzsyDvBYPrA1bNz6WeVXs2RsjN+Kes6g==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/client-config/-/client-config-1.5.0.tgz", + "integrity": "sha512-pgFXveuGQ666TQ2Zz+ON0HyJM2EGDTmOydrqq7CY9MjyaIP5/Zn80dpA715EtFDwy3Vw1/XBNAdgEPKEFmH+qQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^1.2.0", + "@aws-amplify/backend-output-schemas": "^1.4.0", "@aws-amplify/deployed-backend-client": "^1.4.1", "@aws-amplify/model-generator": "^1.0.7", "@aws-amplify/platform-core": "^1.0.7", @@ -890,9 +907,9 @@ } }, "node_modules/@aws-amplify/core": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/@aws-amplify/core/-/core-6.4.3.tgz", - "integrity": "sha512-1pZCJo7fbkvHdU9243wrZtN2mer2wWWF3eyf7bNSMuxgy82R9uYVki12ML4D0z34guVX7JpxfQfrW13ToJ9P6Q==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@aws-amplify/core/-/core-6.4.7.tgz", + "integrity": "sha512-m/NFTkx+0LIWXYWHkvK5c0CHSRRUb4Iv2jgDZS2xKriVDZVxa0QZy6/U/zDb1R6Z9cvAf/vgy+HfndgsdLzH2A==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-js": "5.2.0", @@ -931,9 +948,9 @@ } }, "node_modules/@aws-amplify/data-construct": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@aws-amplify/data-construct/-/data-construct-1.10.1.tgz", - "integrity": "sha512-fG8EHT+LYpBGIOwXx2uw4IKTyZv5IWTRtnSSVBM6AYT76FsRe2qhvNnaDUWP7S5SEROQrfLxMnuWiozfeknTgg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-construct/-/data-construct-1.11.1.tgz", + "integrity": "sha512-JPNfhkaH2i4UAglNJRF+6d//1UH8gRjpcsZFndwUSPJqUI/cLqSbzdKmqYsgY+GKmWtvGfbqRg7w8adQm3wqag==", "bundleDependencies": [ "@aws-amplify/backend-output-schemas", "@aws-amplify/backend-output-storage", @@ -1061,27 +1078,27 @@ "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/ai-constructs": "^0.1.4", + "@aws-amplify/ai-constructs": "^0.2.0", "@aws-amplify/backend-output-schemas": "^1.0.0", "@aws-amplify/backend-output-storage": "^1.0.0", - "@aws-amplify/graphql-api-construct": "1.13.0", - "@aws-amplify/graphql-auth-transformer": "4.1.1", - "@aws-amplify/graphql-conversation-transformer": "0.2.1", - "@aws-amplify/graphql-default-value-transformer": "3.0.3", - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-function-transformer": "3.1.0", - "@aws-amplify/graphql-generation-transformer": "0.2.1", - "@aws-amplify/graphql-http-transformer": "3.0.3", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-maps-to-transformer": "4.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-predictions-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-searchable-transformer": "3.0.3", - "@aws-amplify/graphql-sql-transformer": "0.4.3", - "@aws-amplify/graphql-transformer": "2.1.1", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-api-construct": "1.15.1", + "@aws-amplify/graphql-auth-transformer": "4.1.4", + "@aws-amplify/graphql-conversation-transformer": "0.4.0", + "@aws-amplify/graphql-default-value-transformer": "3.1.1", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-function-transformer": "3.1.3", + "@aws-amplify/graphql-generation-transformer": "0.2.4", + "@aws-amplify/graphql-http-transformer": "3.0.6", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-maps-to-transformer": "4.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-predictions-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-searchable-transformer": "3.0.6", + "@aws-amplify/graphql-sql-transformer": "0.4.6", + "@aws-amplify/graphql-transformer": "2.1.4", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "@aws-amplify/platform-core": "^1.0.0", "@aws-amplify/plugin-types": "^1.0.0", "@aws-crypto/crc32": "5.2.0", @@ -1186,12 +1203,12 @@ "zod": "^3.22.2" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/ai-constructs": { - "version": "0.1.4", + "version": "0.2.0", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -1227,32 +1244,17 @@ "aws-cdk-lib": "^2.152.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core": { - "version": "1.0.7", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-amplify/plugin-types": "^1.2.1", - "@aws-sdk/client-sts": "^3.624.0", - "is-ci": "^3.0.1", - "lodash.mergewith": "^4.6.2", - "semver": "^7.6.3", - "uuid": "^9.0.1", - "zod": "^3.22.2" - } - }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-auth-transformer": { - "version": "4.1.1", + "version": "4.1.4", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1", @@ -1260,42 +1262,43 @@ "md5": "^2.3.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-conversation-transformer": { - "version": "0.2.1", + "version": "0.4.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/ai-constructs": "^0.1.4", - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/ai-constructs": "^0.2.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1", - "immer": "^9.0.12" + "immer": "^9.0.12", + "semver": "^7.6.3" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-default-value-transformer": { - "version": "3.0.3", + "version": "3.1.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1", @@ -1303,232 +1306,232 @@ } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-directives": { - "version": "2.2.0", + "version": "2.4.0", "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-function-transformer": { - "version": "3.1.0", + "version": "3.1.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-generation-transformer": { - "version": "0.2.1", + "version": "0.2.4", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1", "immer": "^9.0.12" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-http-transformer": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-index-transformer": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-maps-to-transformer": { - "version": "4.0.3", + "version": "4.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-model-transformer": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-predictions-transformer": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-relational-transformer": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1", "immer": "^9.0.12" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-searchable-transformer": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-sql-transformer": { - "version": "0.4.3", + "version": "0.4.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer": { - "version": "2.1.1", + "version": "2.1.4", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-auth-transformer": "4.1.1", - "@aws-amplify/graphql-conversation-transformer": "0.2.1", - "@aws-amplify/graphql-default-value-transformer": "3.0.3", - "@aws-amplify/graphql-function-transformer": "3.1.0", - "@aws-amplify/graphql-generation-transformer": "0.2.1", - "@aws-amplify/graphql-http-transformer": "3.0.3", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-maps-to-transformer": "4.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-predictions-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-searchable-transformer": "3.0.3", - "@aws-amplify/graphql-sql-transformer": "0.4.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0" + "@aws-amplify/graphql-auth-transformer": "4.1.4", + "@aws-amplify/graphql-conversation-transformer": "0.4.0", + "@aws-amplify/graphql-default-value-transformer": "3.1.1", + "@aws-amplify/graphql-function-transformer": "3.1.3", + "@aws-amplify/graphql-generation-transformer": "0.2.4", + "@aws-amplify/graphql-http-transformer": "3.0.6", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-maps-to-transformer": "4.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-predictions-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-searchable-transformer": "3.0.6", + "@aws-amplify/graphql-sql-transformer": "0.4.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer-core": { - "version": "3.1.1", + "version": "3.2.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", "fs-extra": "^8.1.0", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", @@ -1540,12 +1543,12 @@ "ts-dedent": "^2.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-amplify/graphql-transformer-interfaces": { - "version": "4.1.0", + "version": "4.1.2", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -1553,7 +1556,7 @@ "graphql": "^15.5.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", + "aws-cdk-lib": "^2.158.0", "constructs": "^10.3.0" } }, @@ -1597,6 +1600,19 @@ "node": ">=16.0.0" } }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/crc32/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/sha256-browser": { "version": "5.2.0", "dev": true, @@ -1612,6 +1628,19 @@ "tslib": "^2.6.2" } }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { "version": "2.2.0", "dev": true, @@ -1664,6 +1693,19 @@ "node": ">=16.0.0" } }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/supports-web-crypto": { "version": "5.2.0", "dev": true, @@ -1684,6 +1726,19 @@ "tslib": "^2.6.2" } }, + "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/util/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { "version": "2.2.0", "dev": true, @@ -1723,54 +1778,54 @@ } }, "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime": { - "version": "3.642.0", + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.637.0", - "@aws-sdk/client-sts": "3.637.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/credential-provider-node": "3.637.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/eventstream-serde-browser": "^3.0.6", - "@smithy/eventstream-serde-config-resolver": "^3.0.3", - "@smithy/eventstream-serde-node": "^3.0.5", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", + "@aws-sdk/client-sso-oidc": "3.651.1", + "@aws-sdk/client-sts": "3.651.1", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/eventstream-serde-browser": "^3.0.7", + "@smithy/eventstream-serde-config-resolver": "^3.0.4", + "@smithy/eventstream-serde-node": "^3.0.6", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", - "@smithy/util-stream": "^3.1.3", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-stream": "^3.1.4", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -1778,48 +1833,48 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sso": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/client-sso": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -1827,49 +1882,49 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/credential-provider-node": "3.637.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -1877,74 +1932,23 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.637.0" + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/core": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.637.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/credential-provider-node": "3.637.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "@smithy/util-base64": "^3.0.0", - "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", - "@smithy/util-utf8": "^3.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/core": { - "version": "3.635.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/core": "^2.4.0", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/property-provider": "^3.1.3", - "@smithy/protocol-http": "^4.1.0", - "@smithy/signature-v4": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/util-middleware": "^3.0.3", + "@smithy/core": "^2.4.1", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/signature-v4": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-middleware": "^3.0.4", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, @@ -1952,298 +1956,286 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-env": { - "version": "3.620.1", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/property-provider": "^3.1.3", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-http": { - "version": "3.635.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/property-provider": "^3.1.3", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/util-stream": "^3.1.3", + "@aws-sdk/types": "3.649.0", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-stream": "^3.1.4", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.620.1", - "@aws-sdk/credential-provider-http": "3.635.0", - "@aws-sdk/credential-provider-process": "3.620.1", - "@aws-sdk/credential-provider-sso": "3.637.0", - "@aws-sdk/credential-provider-web-identity": "3.621.0", - "@aws-sdk/types": "3.609.0", - "@smithy/credential-provider-imds": "^3.2.0", - "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.637.0" + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-node": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.620.1", - "@aws-sdk/credential-provider-http": "3.635.0", - "@aws-sdk/credential-provider-ini": "3.637.0", - "@aws-sdk/credential-provider-process": "3.620.1", - "@aws-sdk/credential-provider-sso": "3.637.0", - "@aws-sdk/credential-provider-web-identity": "3.621.0", - "@aws-sdk/types": "3.609.0", - "@smithy/credential-provider-imds": "^3.2.0", - "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-ini": "3.651.1", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-process": { - "version": "3.620.1", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.637.0", - "@aws-sdk/token-providers": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/client-sso": "3.651.1", + "@aws-sdk/token-providers": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.621.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/property-provider": "^3.1.3", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.621.0" + "@aws-sdk/client-sts": "^3.649.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-host-header": { - "version": "3.620.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/protocol-http": "^4.1.0", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-logger": { - "version": "3.609.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-logger": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.620.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/protocol-http": "^4.1.0", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@smithy/protocol-http": "^4.1.0", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/region-config-resolver": { - "version": "3.614.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.3", + "@smithy/util-middleware": "^3.0.4", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/token-providers": { - "version": "3.614.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/token-providers": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.614.0" - } - }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/types": { - "version": "3.609.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^3.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" + "@aws-sdk/client-sso-oidc": "^3.649.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-endpoints": { - "version": "3.637.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/types": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/types": "^3.3.0", - "@smithy/util-endpoints": "^2.0.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-locate-window": { - "version": "3.568.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/util-endpoints": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "@smithy/util-endpoints": "^2.1.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.609.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.614.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.609.0", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { @@ -2258,49 +2250,48 @@ } } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/abort-controller": { - "version": "3.1.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/types": "^3.3.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/config-resolver": { - "version": "3.0.5", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/node-config-provider": "^3.1.4", - "@smithy/types": "^3.3.0", - "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.3", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/core": { - "version": "2.4.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sso": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.635.0", + "@aws-sdk/middleware-host-header": "3.620.0", + "@aws-sdk/middleware-logger": "3.609.0", + "@aws-sdk/middleware-recursion-detection": "3.620.0", + "@aws-sdk/middleware-user-agent": "3.637.0", + "@aws-sdk/region-config-resolver": "3.614.0", + "@aws-sdk/types": "3.609.0", + "@aws-sdk/util-endpoints": "3.637.0", + "@aws-sdk/util-user-agent-browser": "3.609.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.4.0", + "@smithy/fetch-http-handler": "^3.2.4", + "@smithy/hash-node": "^3.0.3", + "@smithy/invalid-dependency": "^3.0.3", + "@smithy/middleware-content-length": "^3.0.5", "@smithy/middleware-endpoint": "^3.1.0", "@smithy/middleware-retry": "^3.0.15", "@smithy/middleware-serde": "^3.0.3", + "@smithy/middleware-stack": "^3.0.3", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.4", "@smithy/protocol-http": "^4.1.0", "@smithy/smithy-client": "^3.2.0", "@smithy/types": "^3.3.0", + "@smithy/url-parser": "^3.0.3", + "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.15", + "@smithy/util-defaults-mode-node": "^3.0.15", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", + "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -2308,486 +2299,720 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/credential-provider-imds": { - "version": "3.2.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.4", - "@smithy/property-provider": "^3.1.3", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-codec": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/crc32": "5.2.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.635.0", + "@aws-sdk/credential-provider-node": "3.637.0", + "@aws-sdk/middleware-host-header": "3.620.0", + "@aws-sdk/middleware-logger": "3.609.0", + "@aws-sdk/middleware-recursion-detection": "3.620.0", + "@aws-sdk/middleware-user-agent": "3.637.0", + "@aws-sdk/region-config-resolver": "3.614.0", + "@aws-sdk/types": "3.609.0", + "@aws-sdk/util-endpoints": "3.637.0", + "@aws-sdk/util-user-agent-browser": "3.609.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.4.0", + "@smithy/fetch-http-handler": "^3.2.4", + "@smithy/hash-node": "^3.0.3", + "@smithy/invalid-dependency": "^3.0.3", + "@smithy/middleware-content-length": "^3.0.5", + "@smithy/middleware-endpoint": "^3.1.0", + "@smithy/middleware-retry": "^3.0.15", + "@smithy/middleware-serde": "^3.0.3", + "@smithy/middleware-stack": "^3.0.3", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.4", + "@smithy/protocol-http": "^4.1.0", + "@smithy/smithy-client": "^3.2.0", "@smithy/types": "^3.3.0", - "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/url-parser": "^3.0.3", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.15", + "@smithy/util-defaults-mode-node": "^3.0.15", + "@smithy/util-endpoints": "^2.0.5", + "@smithy/util-middleware": "^3.0.3", + "@smithy/util-retry": "^3.0.3", + "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.637.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-browser": { - "version": "3.0.6", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.5", - "@smithy/types": "^3.3.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.651.1", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-node": { - "version": "3.0.5", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.5", - "@smithy/types": "^3.3.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-universal": { - "version": "3.0.5", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-codec": "^3.1.2", - "@smithy/types": "^3.3.0", + "@smithy/core": "^2.4.1", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/signature-v4": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-middleware": "^3.0.4", + "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/fetch-http-handler": { - "version": "3.2.4", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.0", - "@smithy/querystring-builder": "^3.0.3", - "@smithy/types": "^3.3.0", - "@smithy/util-base64": "^3.0.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/hash-node": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", - "@smithy/util-buffer-from": "^3.0.0", - "@smithy/util-utf8": "^3.0.0", + "@aws-sdk/types": "3.649.0", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-stream": "^3.1.4", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/invalid-dependency": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/is-array-buffer": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-ini": "3.651.1", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-content-length": { - "version": "3.0.5", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.0", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-endpoint": { - "version": "3.1.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "@smithy/util-middleware": "^3.0.3", + "@aws-sdk/client-sso": "3.651.1", + "@aws-sdk/token-providers": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-retry": { - "version": "3.0.15", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/service-error-classification": "^3.0.3", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", - "tslib": "^2.6.2", - "uuid": "^9.0.1" + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.649.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-serde": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-stack": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-logger": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/node-config-provider": { - "version": "3.1.4", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/node-http-handler": { - "version": "3.1.4", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.1", - "@smithy/protocol-http": "^4.1.0", - "@smithy/querystring-builder": "^3.0.3", - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/property-provider": { - "version": "3.1.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.4", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/protocol-http": { - "version": "4.1.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/token-providers": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.649.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/querystring-builder": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", - "@smithy/util-uri-escape": "^3.0.0", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/querystring-parser": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-endpoints": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "@smithy/util-endpoints": "^2.1.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/service-error-classification": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0" - }, - "engines": { - "node": ">=16.0.0" + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.4", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/signature-v4": { - "version": "4.1.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/core": { + "version": "3.635.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^3.0.0", + "@smithy/core": "^2.4.0", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/property-provider": "^3.1.3", "@smithy/protocol-http": "^4.1.0", + "@smithy/signature-v4": "^4.1.0", + "@smithy/smithy-client": "^3.2.0", "@smithy/types": "^3.3.0", - "@smithy/util-hex-encoding": "^3.0.0", "@smithy/util-middleware": "^3.0.3", - "@smithy/util-uri-escape": "^3.0.0", - "@smithy/util-utf8": "^3.0.0", + "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/smithy-client": { - "version": "3.2.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.620.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/protocol-http": "^4.1.0", + "@aws-sdk/types": "3.609.0", + "@smithy/property-provider": "^3.1.3", "@smithy/types": "^3.3.0", - "@smithy/util-stream": "^3.1.3", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/types": { - "version": "3.3.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.635.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.609.0", + "@smithy/fetch-http-handler": "^3.2.4", + "@smithy/node-http-handler": "^3.1.4", + "@smithy/property-provider": "^3.1.3", + "@smithy/protocol-http": "^4.1.0", + "@smithy/smithy-client": "^3.2.0", + "@smithy/types": "^3.3.0", + "@smithy/util-stream": "^3.1.3", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/url-parser": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^3.0.3", + "@aws-sdk/credential-provider-env": "3.620.1", + "@aws-sdk/credential-provider-http": "3.635.0", + "@aws-sdk/credential-provider-process": "3.620.1", + "@aws-sdk/credential-provider-sso": "3.637.0", + "@aws-sdk/credential-provider-web-identity": "3.621.0", + "@aws-sdk/types": "3.609.0", + "@smithy/credential-provider-imds": "^3.2.0", + "@smithy/property-provider": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" - } - }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-base64": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@smithy/util-buffer-from": "^3.0.0", - "@smithy/util-utf8": "^3.0.0", - "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.637.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-body-length-browser": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "tslib": "^2.6.2" - } + "@aws-sdk/credential-provider-env": "3.620.1", + "@aws-sdk/credential-provider-http": "3.635.0", + "@aws-sdk/credential-provider-ini": "3.637.0", + "@aws-sdk/credential-provider-process": "3.620.1", + "@aws-sdk/credential-provider-sso": "3.637.0", + "@aws-sdk/credential-provider-web-identity": "3.621.0", + "@aws-sdk/types": "3.609.0", + "@smithy/credential-provider-imds": "^3.2.0", + "@smithy/property-provider": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", + "@smithy/types": "^3.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-body-length-node": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.620.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.609.0", + "@smithy/property-provider": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", + "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-buffer-from": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^3.0.0", + "@aws-sdk/client-sso": "3.637.0", + "@aws-sdk/token-providers": "3.614.0", + "@aws-sdk/types": "3.609.0", + "@smithy/property-provider": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", + "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-config-provider": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.621.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.609.0", + "@smithy/property-provider": "^3.1.3", + "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.621.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.15", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.620.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.3", - "@smithy/smithy-client": "^3.2.0", + "@aws-sdk/types": "3.609.0", + "@smithy/protocol-http": "^4.1.0", "@smithy/types": "^3.3.0", - "bowser": "^2.11.0", "tslib": "^2.6.2" }, "engines": { - "node": ">= 10.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.15", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-logger": { + "version": "3.609.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^3.0.5", - "@smithy/credential-provider-imds": "^3.2.0", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/property-provider": "^3.1.3", - "@smithy/smithy-client": "^3.2.0", + "@aws-sdk/types": "3.609.0", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, "engines": { - "node": ">= 10.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-endpoints": { - "version": "2.0.5", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.620.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.4", + "@aws-sdk/types": "3.609.0", + "@smithy/protocol-http": "^4.1.0", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -2795,609 +3020,1289 @@ "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-hex-encoding": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.609.0", + "@aws-sdk/util-endpoints": "3.637.0", + "@smithy/protocol-http": "^4.1.0", + "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-middleware": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.614.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.609.0", + "@smithy/node-config-provider": "^3.1.4", "@smithy/types": "^3.3.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.3", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-retry": { - "version": "3.0.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/token-providers": { + "version": "3.614.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^3.0.3", + "@aws-sdk/types": "3.609.0", + "@smithy/property-provider": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.614.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-stream": { - "version": "3.1.3", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/types": { + "version": "3.609.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/node-http-handler": "^3.1.4", "@smithy/types": "^3.3.0", - "@smithy/util-base64": "^3.0.0", - "@smithy/util-buffer-from": "^3.0.0", - "@smithy/util-hex-encoding": "^3.0.0", - "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-uri-escape": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-endpoints": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.609.0", + "@smithy/types": "^3.3.0", + "@smithy/util-endpoints": "^2.0.5", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-utf8": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-locate-window": { + "version": "3.568.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/util-buffer-from": "^3.0.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/bowser": { - "version": "2.11.0", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.609.0", "dev": true, "inBundle": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.609.0", + "@smithy/types": "^3.3.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/charenc": { - "version": "0.0.2", + "node_modules/@aws-amplify/data-construct/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.614.0", "dev": true, "inBundle": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.609.0", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/types": "^3.3.0", + "tslib": "^2.6.2" + }, "engines": { - "node": "*" + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@aws-amplify/data-construct/node_modules/ci-info": { - "version": "3.9.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/abort-controller": { + "version": "3.1.4", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/crypt": { - "version": "0.0.2", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/config-resolver": { + "version": "3.0.8", "dev": true, "inBundle": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^3.1.7", + "@smithy/types": "^3.4.2", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.6", + "tslib": "^2.6.2" + }, "engines": { - "node": "*" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/fast-xml-parser": { - "version": "4.4.1", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/core": { + "version": "2.4.3", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "strnum": "^1.0.5" + "@smithy/middleware-endpoint": "^3.1.3", + "@smithy/middleware-retry": "^3.0.18", + "@smithy/middleware-serde": "^3.0.6", + "@smithy/protocol-http": "^4.1.3", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-middleware": "^3.0.6", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, - "bin": { - "fxparser": "src/cli/cli.js" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/fs-extra": { - "version": "8.1.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/credential-provider-imds": { + "version": "3.2.3", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@smithy/node-config-provider": "^3.1.7", + "@smithy/property-provider": "^3.1.6", + "@smithy/types": "^3.4.2", + "@smithy/url-parser": "^3.0.6", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/graceful-fs": { - "version": "4.2.11", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-codec": { + "version": "3.1.5", "dev": true, "inBundle": true, - "license": "ISC" + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@smithy/types": "^3.4.2", + "@smithy/util-hex-encoding": "^3.0.0", + "tslib": "^2.6.2" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/graphql": { - "version": "15.9.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-browser": { + "version": "3.0.9", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.8", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10.x" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/graphql-mapping-template": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0" - }, - "node_modules/@aws-amplify/data-construct/node_modules/graphql-transformer-common": { - "version": "5.0.1", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "md5": "^2.2.1", - "pluralize": "8.0.0" + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/hjson": { - "version": "3.2.2", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-node": { + "version": "3.0.8", "dev": true, "inBundle": true, - "license": "MIT", - "bin": { - "hjson": "bin/hjson" + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.8", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/immer": { - "version": "9.0.21", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/eventstream-serde-universal": { + "version": "3.0.8", "dev": true, "inBundle": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-codec": "^3.1.5", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/is-buffer": { - "version": "1.1.6", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/fetch-http-handler": { + "version": "3.2.7", "dev": true, "inBundle": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^4.1.3", + "@smithy/querystring-builder": "^3.0.6", + "@smithy/types": "^3.4.2", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/is-ci": { - "version": "3.0.1", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/hash-node": { + "version": "3.0.6", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ci-info": "^3.2.0" + "@smithy/types": "^3.4.2", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, - "bin": { - "is-ci": "bin.js" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/jsonfile": { - "version": "4.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/invalid-dependency": { + "version": "3.0.6", "dev": true, "inBundle": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" } }, - "node_modules/@aws-amplify/data-construct/node_modules/libphonenumber-js": { - "version": "1.9.47", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/is-array-buffer": { + "version": "3.0.0", "dev": true, "inBundle": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/lodash": { - "version": "4.17.21", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-content-length": { + "version": "3.0.8", "dev": true, "inBundle": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^4.1.3", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/lodash.mergewith": { - "version": "4.6.2", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-endpoint": { + "version": "3.1.3", "dev": true, "inBundle": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^3.0.6", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.7", + "@smithy/types": "^3.4.2", + "@smithy/url-parser": "^3.0.6", + "@smithy/util-middleware": "^3.0.6", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/md5": { - "version": "2.3.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-retry": { + "version": "3.0.18", "dev": true, "inBundle": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" + "@smithy/node-config-provider": "^3.1.7", + "@smithy/protocol-http": "^4.1.3", + "@smithy/service-error-classification": "^3.0.6", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", + "@smithy/util-middleware": "^3.0.6", + "@smithy/util-retry": "^3.0.6", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/object-hash": { - "version": "3.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-serde": { + "version": "3.0.6", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 6" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/pluralize": { - "version": "8.0.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/middleware-stack": { + "version": "3.0.6", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=4" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/semver": { - "version": "7.6.3", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/node-config-provider": { + "version": "3.1.7", "dev": true, "inBundle": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^3.1.6", + "@smithy/shared-ini-file-loader": "^3.1.7", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/strnum": { - "version": "1.0.5", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/node-http-handler": { + "version": "3.2.2", "dev": true, "inBundle": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^3.1.4", + "@smithy/protocol-http": "^4.1.3", + "@smithy/querystring-builder": "^3.0.6", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/ts-dedent": { - "version": "2.2.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/property-provider": { + "version": "3.1.6", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.10" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/tslib": { - "version": "2.7.0", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/protocol-http": { + "version": "4.1.3", "dev": true, "inBundle": true, - "license": "0BSD" + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@aws-amplify/data-construct/node_modules/universalify": { - "version": "0.1.2", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/querystring-builder": { + "version": "3.0.6", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "@smithy/util-uri-escape": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 4.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/uuid": { - "version": "9.0.1", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/querystring-parser": { + "version": "3.0.6", "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], "inBundle": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-construct/node_modules/zod": { - "version": "3.23.8", - "dev": true, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/service-error-classification": { + "version": "3.0.6", + "dev": true, "inBundle": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-schema": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema/-/data-schema-1.7.0.tgz", - "integrity": "sha512-LOqbqb7lulVk4TeqHaoUI9ZaCfkn8yz2M5q+sYG7ylbqIHnkTN9W+EShodtQckNzWADp3y4zDMuGqCNwGdEIEw==", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.7", + "dev": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/data-schema-types": "*", - "@smithy/util-base64": "^3.0.0", - "@types/aws-lambda": "^8.10.134", - "@types/json-schema": "^7.0.15", - "rxjs": "^7.8.1" + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/data-schema-types": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema-types/-/data-schema-types-1.1.1.tgz", - "integrity": "sha512-WhWEEsztpSSxIY0lJ3Ge5iA4g3PBm66SQmy1fBH1FBq0T+cxUBijifOU8MNwf+tf6lGpArMX0RS54HRVF5fUSA==", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/signature-v4": { + "version": "4.1.3", + "dev": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { - "graphql": "15.8.0", - "rxjs": "^7.8.1" + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/protocol-http": "^4.1.3", + "@smithy/types": "^3.4.2", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-middleware": "^3.0.6", + "@smithy/util-uri-escape": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/datastore": { - "version": "5.0.52", - "resolved": "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-5.0.52.tgz", - "integrity": "sha512-ut2ElxtWUZBPSyEvr5AxEb3NHF3CPBgVfYzIOnUGU7J7GfgYTS1fFfOMmA5QQ36/b9LxVO8mQKcYwvejv+8Stg==", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/smithy-client": { + "version": "3.3.2", + "dev": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/api": "6.0.52", - "buffer": "4.9.2", - "idb": "5.0.6", - "immer": "9.0.6", - "rxjs": "^7.8.1", - "ulid": "^2.3.0" + "@smithy/middleware-endpoint": "^3.1.3", + "@smithy/middleware-stack": "^3.0.6", + "@smithy/protocol-http": "^4.1.3", + "@smithy/types": "^3.4.2", + "@smithy/util-stream": "^3.1.6", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@aws-amplify/core": "^6.1.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/deployed-backend-client": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@aws-amplify/deployed-backend-client/-/deployed-backend-client-1.4.1.tgz", - "integrity": "sha512-uvHaYR4HUGNLXvPMrgJbUlse5DEGFXoqJNxJYKn4FNKoSa8F0S5atSUqUpjKHFUp2Xu9VTXViPhqRDNUiRG8EA==", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/types": { + "version": "3.4.2", "dev": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^1.2.0", - "@aws-amplify/platform-core": "^1.0.5", - "@aws-amplify/plugin-types": "^1.2.2", - "zod": "^3.22.2" + "tslib": "^2.6.2" }, - "peerDependencies": { - "@aws-sdk/client-amplify": "^3.624.0", - "@aws-sdk/client-cloudformation": "^3.624.0", - "@aws-sdk/client-s3": "^3.624.0", - "@aws-sdk/types": "^3.609.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/form-generator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@aws-amplify/form-generator/-/form-generator-1.0.3.tgz", - "integrity": "sha512-KoMAxy2tv1kosKr8wdKd0/+7BdE09iNMVdU8mjon8cTQ6cMwFgO/ds8AdBVqGqRaLWTIVNyThV9nUXgMUjBDQQ==", + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/url-parser": { + "version": "3.0.6", "dev": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/appsync-modelgen-plugin": "^2.11.0", - "@aws-amplify/codegen-ui": "^2.19.4", - "@aws-amplify/codegen-ui-react": "^2.19.4", - "@aws-amplify/graphql-directives": "^1.0.1", - "@aws-amplify/graphql-docs-generator": "^4.1.0", - "@aws-sdk/client-amplifyuibuilder": "^3.624.0", - "@aws-sdk/client-appsync": "^3.624.0", - "@aws-sdk/client-s3": "^3.624.0", - "@graphql-codegen/core": "^4.0.0", - "@graphql-codegen/typescript": "^2.8.3", - "graphql": "^15.8.0", - "node-fetch": "^3.3.2", - "prettier": "^2.8.7" + "@smithy/querystring-parser": "^3.0.6", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" } }, - "node_modules/@aws-amplify/graphql-api-construct": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-api-construct/-/graphql-api-construct-1.13.0.tgz", - "integrity": "sha512-4cv4Ko7OP7lZTDhojM/ibKglP1Ospy+/iGMnKguuYoISqhmL2sgnyVHWw+1XnRVc8eUf6gnip2KXMQKnaPU0Lw==", - "bundleDependencies": [ - "@aws-amplify/backend-output-schemas", - "@aws-amplify/backend-output-storage", - "@aws-amplify/graphql-auth-transformer", - "@aws-amplify/graphql-conversation-transformer", - "@aws-amplify/graphql-default-value-transformer", - "@aws-amplify/graphql-directives", - "@aws-amplify/graphql-function-transformer", - "@aws-amplify/graphql-generation-transformer", - "@aws-amplify/graphql-http-transformer", - "@aws-amplify/graphql-index-transformer", - "@aws-amplify/graphql-maps-to-transformer", - "@aws-amplify/graphql-model-transformer", - "@aws-amplify/graphql-predictions-transformer", - "@aws-amplify/graphql-relational-transformer", - "@aws-amplify/graphql-searchable-transformer", - "@aws-amplify/graphql-sql-transformer", - "@aws-amplify/graphql-transformer", - "@aws-amplify/graphql-transformer-core", - "@aws-amplify/graphql-transformer-interfaces", - "@aws-amplify/platform-core", - "@aws-amplify/plugin-types", - "@aws-amplify/ai-constructs", - "@aws-sdk/client-bedrock-runtime", - "@smithy/eventstream-serde-browser", - "@smithy/eventstream-serde-config-resolver", - "@smithy/eventstream-serde-node", - "@smithy/eventstream-serde-universal", - "@smithy/eventstream-codec", - "@aws-crypto/crc32", - "charenc", - "crypt", - "fs-extra", - "graceful-fs", - "graphql", - "graphql-mapping-template", - "graphql-transformer-common", - "hjson", - "immer", - "is-buffer", - "jsonfile", - "libphonenumber-js", - "lodash", - "md5", - "object-hash", - "pluralize", - "ts-dedent", - "universalify", - "zod", - "@aws-sdk/client-sts", - "is-ci", - "lodash.mergewith", - "uuid", - "@aws-crypto/sha256-browser", - "@aws-crypto/sha256-js", - "@aws-sdk/client-sso-oidc", - "@aws-sdk/core", - "@aws-sdk/credential-provider-node", - "@aws-sdk/middleware-host-header", - "@aws-sdk/middleware-logger", - "@aws-sdk/middleware-recursion-detection", - "@aws-sdk/middleware-user-agent", - "@aws-sdk/region-config-resolver", - "@aws-sdk/types", - "@aws-sdk/util-endpoints", - "@aws-sdk/util-user-agent-browser", - "@aws-sdk/util-user-agent-node", - "@smithy/config-resolver", - "@smithy/core", - "@smithy/fetch-http-handler", - "@smithy/hash-node", - "@smithy/invalid-dependency", - "@smithy/middleware-content-length", - "@smithy/middleware-endpoint", - "@smithy/middleware-retry", - "@smithy/middleware-serde", - "@smithy/middleware-stack", - "@smithy/node-config-provider", - "@smithy/node-http-handler", - "@smithy/protocol-http", - "@smithy/smithy-client", - "@smithy/types", - "@smithy/url-parser", - "@smithy/util-base64", - "@smithy/util-body-length-browser", - "@smithy/util-body-length-node", - "@smithy/util-defaults-mode-browser", - "@smithy/util-defaults-mode-node", - "@smithy/util-endpoints", - "@smithy/util-middleware", - "@smithy/util-retry", - "@smithy/util-utf8", - "tslib", - "ci-info", - "@aws-crypto/supports-web-crypto", - "@aws-crypto/util", - "@aws-sdk/util-locate-window", - "@smithy/signature-v4", - "fast-xml-parser", - "@aws-sdk/credential-provider-env", - "@aws-sdk/credential-provider-http", - "@aws-sdk/credential-provider-ini", - "@aws-sdk/credential-provider-process", - "@aws-sdk/credential-provider-sso", - "@aws-sdk/credential-provider-web-identity", - "@smithy/credential-provider-imds", - "@smithy/property-provider", - "@smithy/shared-ini-file-loader", - "@smithy/util-config-provider", - "bowser", - "@smithy/querystring-builder", - "@smithy/util-buffer-from", - "@smithy/service-error-classification", - "@smithy/abort-controller", - "@smithy/util-stream", - "@smithy/querystring-parser", - "@smithy/is-array-buffer", - "@smithy/util-hex-encoding", - "@smithy/util-uri-escape", - "strnum", - "@aws-sdk/token-providers", - "@aws-sdk/client-sso", - "semver" - ], + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-base64": { + "version": "3.0.0", "dev": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/ai-constructs": "^0.1.4", - "@aws-amplify/backend-output-schemas": "^1.0.0", - "@aws-amplify/backend-output-storage": "^1.0.0", - "@aws-amplify/graphql-auth-transformer": "4.1.1", - "@aws-amplify/graphql-conversation-transformer": "0.2.1", - "@aws-amplify/graphql-default-value-transformer": "3.0.3", - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-function-transformer": "3.1.0", - "@aws-amplify/graphql-generation-transformer": "0.2.1", - "@aws-amplify/graphql-http-transformer": "3.0.3", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-maps-to-transformer": "4.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-predictions-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-searchable-transformer": "3.0.3", - "@aws-amplify/graphql-sql-transformer": "0.4.3", - "@aws-amplify/graphql-transformer": "2.1.1", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "@aws-amplify/platform-core": "^1.0.0", - "@aws-amplify/plugin-types": "^1.0.0", - "@aws-crypto/crc32": "5.2.0", - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "^5.2.0", - "@aws-crypto/supports-web-crypto": "^5.2.0", - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/client-bedrock-runtime": "^3.622.0", - "@aws-sdk/client-sso": "3.637.0", - "@aws-sdk/client-sso-oidc": "3.637.0", - "@aws-sdk/client-sts": "^3.624.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/credential-provider-env": "3.620.1", - "@aws-sdk/credential-provider-http": "3.635.0", - "@aws-sdk/credential-provider-ini": "3.637.0", - "@aws-sdk/credential-provider-node": "3.637.0", - "@aws-sdk/credential-provider-process": "3.620.1", - "@aws-sdk/credential-provider-sso": "3.637.0", - "@aws-sdk/credential-provider-web-identity": "3.621.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-body-length-browser": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-body-length-node": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-buffer-from": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-config-provider": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-defaults-mode-browser": { + "version": "3.0.18", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^3.1.6", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-defaults-mode-node": { + "version": "3.0.18", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^3.0.8", + "@smithy/credential-provider-imds": "^3.2.3", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/property-provider": "^3.1.6", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-endpoints": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^3.1.7", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-hex-encoding": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-middleware": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-retry": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^3.0.6", + "@smithy/types": "^3.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-stream": { + "version": "3.1.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^3.2.7", + "@smithy/node-http-handler": "^3.2.2", + "@smithy/types": "^3.4.2", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-uri-escape": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/@smithy/util-utf8": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/bowser": { + "version": "2.11.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/charenc": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/ci-info": { + "version": "3.9.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/crypt": { + "version": "0.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fast-xml-parser": { + "version": "4.4.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql": { + "version": "15.9.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql-mapping-template": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/data-construct/node_modules/graphql-transformer-common": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "md5": "^2.2.1", + "pluralize": "8.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/hjson": { + "version": "3.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "hjson": "bin/hjson" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/immer": { + "version": "9.0.21", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/is-buffer": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/is-ci": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/libphonenumber-js": { + "version": "1.9.47", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/lodash.mergewith": { + "version": "4.6.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/md5": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/object-hash": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/pluralize": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/semver": { + "version": "7.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/strnum": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-amplify/data-construct/node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/tslib": { + "version": "2.7.0", + "dev": true, + "inBundle": true, + "license": "0BSD" + }, + "node_modules/@aws-amplify/data-construct/node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/uuid": { + "version": "9.0.1", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "inBundle": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-amplify/data-construct/node_modules/zod": { + "version": "3.23.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@aws-amplify/data-schema": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema/-/data-schema-1.10.2.tgz", + "integrity": "sha512-nsxqyhI5I1PvtUstVoQkoMa9f9MMfqaYRMlpJpeVcw9nL/lt71JTu5C0B1FMFhwB9nC7dNqADh+knuWCLC4HKQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/data-schema-types": "*", + "@smithy/util-base64": "^3.0.0", + "@types/aws-lambda": "^8.10.134", + "@types/json-schema": "^7.0.15", + "rxjs": "^7.8.1" + } + }, + "node_modules/@aws-amplify/data-schema-types": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@aws-amplify/data-schema-types/-/data-schema-types-1.2.0.tgz", + "integrity": "sha512-1hy2r7jl3hQ5J/CGjhmPhFPcdGSakfme1ZLjlTMJZILfYifZLSlGRKNCelMb3J5N9203hyeT5XDi5yR47JL1TQ==", + "license": "Apache-2.0", + "dependencies": { + "graphql": "15.8.0", + "rxjs": "^7.8.1" + } + }, + "node_modules/@aws-amplify/datastore": { + "version": "5.0.56", + "resolved": "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-5.0.56.tgz", + "integrity": "sha512-nRhv0ZJI8pfw4cOQQUBN9rrwwkW8oezaF5oZ7TkyeFooBF1gCVqX5aFN1WxrAvkX3bg++XseGmU1P15EF6hisQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/api": "6.0.56", + "buffer": "4.9.2", + "idb": "5.0.6", + "immer": "9.0.6", + "rxjs": "^7.8.1", + "ulid": "^2.3.0" + }, + "peerDependencies": { + "@aws-amplify/core": "^6.1.0" + } + }, + "node_modules/@aws-amplify/deployed-backend-client": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@aws-amplify/deployed-backend-client/-/deployed-backend-client-1.4.2.tgz", + "integrity": "sha512-wfiWWyeJGcHEPu5FxFXJ3ADcePPHnkbqmoG/1tEzzJocI5LBShrSQ/wC/zeQrfZ0GP974BVKDg6CXoOwBNlJMQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.2.0", + "@aws-amplify/platform-core": "^1.0.5", + "@aws-amplify/plugin-types": "^1.2.2", + "zod": "^3.22.2" + }, + "peerDependencies": { + "@aws-sdk/client-amplify": "^3.624.0", + "@aws-sdk/client-cloudformation": "^3.624.0", + "@aws-sdk/client-s3": "^3.624.0", + "@aws-sdk/types": "^3.609.0" + } + }, + "node_modules/@aws-amplify/form-generator": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/form-generator/-/form-generator-1.0.3.tgz", + "integrity": "sha512-KoMAxy2tv1kosKr8wdKd0/+7BdE09iNMVdU8mjon8cTQ6cMwFgO/ds8AdBVqGqRaLWTIVNyThV9nUXgMUjBDQQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/appsync-modelgen-plugin": "^2.11.0", + "@aws-amplify/codegen-ui": "^2.19.4", + "@aws-amplify/codegen-ui-react": "^2.19.4", + "@aws-amplify/graphql-directives": "^1.0.1", + "@aws-amplify/graphql-docs-generator": "^4.1.0", + "@aws-sdk/client-amplifyuibuilder": "^3.624.0", + "@aws-sdk/client-appsync": "^3.624.0", + "@aws-sdk/client-s3": "^3.624.0", + "@graphql-codegen/core": "^4.0.0", + "@graphql-codegen/typescript": "^2.8.3", + "graphql": "^15.8.0", + "node-fetch": "^3.3.2", + "prettier": "^2.8.7" + } + }, + "node_modules/@aws-amplify/form-generator/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@aws-amplify/graphql-api-construct": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-api-construct/-/graphql-api-construct-1.15.1.tgz", + "integrity": "sha512-hhQBufGDLgU6ihHpp8PWO9D0aQYJKXSngyv6VL+we5axKZQnCZiw8XrGrh4xq97W+olMUhfmwLRAw+N0Xd2Bpg==", + "bundleDependencies": [ + "@aws-amplify/backend-output-schemas", + "@aws-amplify/backend-output-storage", + "@aws-amplify/graphql-auth-transformer", + "@aws-amplify/graphql-conversation-transformer", + "@aws-amplify/graphql-default-value-transformer", + "@aws-amplify/graphql-directives", + "@aws-amplify/graphql-function-transformer", + "@aws-amplify/graphql-generation-transformer", + "@aws-amplify/graphql-http-transformer", + "@aws-amplify/graphql-index-transformer", + "@aws-amplify/graphql-maps-to-transformer", + "@aws-amplify/graphql-model-transformer", + "@aws-amplify/graphql-predictions-transformer", + "@aws-amplify/graphql-relational-transformer", + "@aws-amplify/graphql-searchable-transformer", + "@aws-amplify/graphql-sql-transformer", + "@aws-amplify/graphql-transformer", + "@aws-amplify/graphql-transformer-core", + "@aws-amplify/graphql-transformer-interfaces", + "@aws-amplify/platform-core", + "@aws-amplify/plugin-types", + "@aws-amplify/ai-constructs", + "@aws-sdk/client-bedrock-runtime", + "@smithy/eventstream-serde-browser", + "@smithy/eventstream-serde-config-resolver", + "@smithy/eventstream-serde-node", + "@smithy/eventstream-serde-universal", + "@smithy/eventstream-codec", + "@aws-crypto/crc32", + "charenc", + "crypt", + "fs-extra", + "graceful-fs", + "graphql", + "graphql-mapping-template", + "graphql-transformer-common", + "hjson", + "immer", + "is-buffer", + "jsonfile", + "libphonenumber-js", + "lodash", + "md5", + "object-hash", + "pluralize", + "ts-dedent", + "universalify", + "zod", + "@aws-sdk/client-sts", + "is-ci", + "lodash.mergewith", + "uuid", + "@aws-crypto/sha256-browser", + "@aws-crypto/sha256-js", + "@aws-sdk/client-sso-oidc", + "@aws-sdk/core", + "@aws-sdk/credential-provider-node", + "@aws-sdk/middleware-host-header", + "@aws-sdk/middleware-logger", + "@aws-sdk/middleware-recursion-detection", + "@aws-sdk/middleware-user-agent", + "@aws-sdk/region-config-resolver", + "@aws-sdk/types", + "@aws-sdk/util-endpoints", + "@aws-sdk/util-user-agent-browser", + "@aws-sdk/util-user-agent-node", + "@smithy/config-resolver", + "@smithy/core", + "@smithy/fetch-http-handler", + "@smithy/hash-node", + "@smithy/invalid-dependency", + "@smithy/middleware-content-length", + "@smithy/middleware-endpoint", + "@smithy/middleware-retry", + "@smithy/middleware-serde", + "@smithy/middleware-stack", + "@smithy/node-config-provider", + "@smithy/node-http-handler", + "@smithy/protocol-http", + "@smithy/smithy-client", + "@smithy/types", + "@smithy/url-parser", + "@smithy/util-base64", + "@smithy/util-body-length-browser", + "@smithy/util-body-length-node", + "@smithy/util-defaults-mode-browser", + "@smithy/util-defaults-mode-node", + "@smithy/util-endpoints", + "@smithy/util-middleware", + "@smithy/util-retry", + "@smithy/util-utf8", + "tslib", + "ci-info", + "@aws-crypto/supports-web-crypto", + "@aws-crypto/util", + "@aws-sdk/util-locate-window", + "@smithy/signature-v4", + "fast-xml-parser", + "@aws-sdk/credential-provider-env", + "@aws-sdk/credential-provider-http", + "@aws-sdk/credential-provider-ini", + "@aws-sdk/credential-provider-process", + "@aws-sdk/credential-provider-sso", + "@aws-sdk/credential-provider-web-identity", + "@smithy/credential-provider-imds", + "@smithy/property-provider", + "@smithy/shared-ini-file-loader", + "@smithy/util-config-provider", + "bowser", + "@smithy/querystring-builder", + "@smithy/util-buffer-from", + "@smithy/service-error-classification", + "@smithy/abort-controller", + "@smithy/util-stream", + "@smithy/querystring-parser", + "@smithy/is-array-buffer", + "@smithy/util-hex-encoding", + "@smithy/util-uri-escape", + "strnum", + "@aws-sdk/token-providers", + "@aws-sdk/client-sso", + "semver" + ], + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/ai-constructs": "^0.2.0", + "@aws-amplify/backend-output-schemas": "^1.0.0", + "@aws-amplify/backend-output-storage": "^1.0.0", + "@aws-amplify/graphql-auth-transformer": "4.1.4", + "@aws-amplify/graphql-conversation-transformer": "0.4.0", + "@aws-amplify/graphql-default-value-transformer": "3.1.1", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-function-transformer": "3.1.3", + "@aws-amplify/graphql-generation-transformer": "0.2.4", + "@aws-amplify/graphql-http-transformer": "3.0.6", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-maps-to-transformer": "4.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-predictions-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-searchable-transformer": "3.0.6", + "@aws-amplify/graphql-sql-transformer": "0.4.6", + "@aws-amplify/graphql-transformer": "2.1.4", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "@aws-amplify/platform-core": "^1.0.0", + "@aws-amplify/plugin-types": "^1.0.0", + "@aws-crypto/crc32": "5.2.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/client-bedrock-runtime": "^3.622.0", + "@aws-sdk/client-sso": "3.637.0", + "@aws-sdk/client-sso-oidc": "3.637.0", + "@aws-sdk/client-sts": "^3.624.0", + "@aws-sdk/core": "3.635.0", + "@aws-sdk/credential-provider-env": "3.620.1", + "@aws-sdk/credential-provider-http": "3.635.0", + "@aws-sdk/credential-provider-ini": "3.637.0", + "@aws-sdk/credential-provider-node": "3.637.0", + "@aws-sdk/credential-provider-process": "3.620.1", + "@aws-sdk/credential-provider-sso": "3.637.0", + "@aws-sdk/credential-provider-web-identity": "3.621.0", + "@aws-sdk/middleware-host-header": "3.620.0", + "@aws-sdk/middleware-logger": "3.609.0", + "@aws-sdk/middleware-recursion-detection": "3.620.0", + "@aws-sdk/middleware-user-agent": "3.637.0", "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/token-providers": "3.614.0", "@aws-sdk/types": "3.609.0", @@ -3455,773 +4360,1645 @@ "crypt": "^0.0.2", "fast-xml-parser": "4.4.1", "fs-extra": "^8.1.0", - "graceful-fs": "^4.2.0", + "graceful-fs": "^4.2.0", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1", + "hjson": "^3.2.2", + "immer": "^9.0.12", + "is-buffer": "~1.1.6", + "is-ci": "^3.0.1", + "jsonfile": "^4.0.0", + "libphonenumber-js": "1.9.47", + "lodash": "^4.17.21", + "lodash.mergewith": "^4.6.2", + "md5": "^2.2.1", + "object-hash": "^3.0.0", + "pluralize": "8.0.0", + "semver": "^7.6.3", + "strnum": "^1.0.5", + "ts-dedent": "^2.0.0", + "tslib": "^2.6.2", + "universalify": "^0.1.0", + "uuid": "^9.0.1", + "zod": "^3.22.2" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/ai-constructs": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/plugin-types": "^1.0.1", + "@aws-sdk/client-bedrock-runtime": "^3.622.0", + "@smithy/types": "^3.3.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.152.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-schemas": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "zod": "^3.22.2" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-storage": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/backend-output-schemas": "^1.2.0", + "@aws-amplify/platform-core": "^1.0.6" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.152.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-auth-transformer": { + "version": "4.1.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1", + "lodash": "^4.17.21", + "md5": "^2.3.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-conversation-transformer": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/ai-constructs": "^0.2.0", + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1", + "immer": "^9.0.12", + "semver": "^7.6.3" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-default-value-transformer": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1", + "libphonenumber-js": "1.9.47" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-directives": { + "version": "2.4.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-function-transformer": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-generation-transformer": { + "version": "0.2.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1", + "immer": "^9.0.12" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-http-transformer": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-index-transformer": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-maps-to-transformer": { + "version": "4.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-model-transformer": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-predictions-transformer": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-relational-transformer": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1", + "immer": "^9.0.12" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-searchable-transformer": { + "version": "3.0.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-sql-transformer": { + "version": "0.4.6", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "graphql": "^15.5.0", + "graphql-mapping-template": "5.0.1", + "graphql-transformer-common": "5.0.1" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer": { + "version": "2.1.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-auth-transformer": "4.1.4", + "@aws-amplify/graphql-conversation-transformer": "0.4.0", + "@aws-amplify/graphql-default-value-transformer": "3.1.1", + "@aws-amplify/graphql-function-transformer": "3.1.3", + "@aws-amplify/graphql-generation-transformer": "0.2.4", + "@aws-amplify/graphql-http-transformer": "3.0.6", + "@aws-amplify/graphql-index-transformer": "3.0.6", + "@aws-amplify/graphql-maps-to-transformer": "4.0.6", + "@aws-amplify/graphql-model-transformer": "3.0.6", + "@aws-amplify/graphql-predictions-transformer": "3.0.6", + "@aws-amplify/graphql-relational-transformer": "3.0.6", + "@aws-amplify/graphql-searchable-transformer": "3.0.6", + "@aws-amplify/graphql-sql-transformer": "0.4.6", + "@aws-amplify/graphql-transformer-core": "3.2.1", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-core": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/graphql-directives": "2.4.0", + "@aws-amplify/graphql-transformer-interfaces": "4.1.2", + "fs-extra": "^8.1.0", "graphql": "^15.5.0", "graphql-mapping-template": "5.0.1", "graphql-transformer-common": "5.0.1", "hjson": "^3.2.2", - "immer": "^9.0.12", - "is-buffer": "~1.1.6", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "object-hash": "^3.0.0", + "ts-dedent": "^2.0.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-interfaces": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "graphql": "^15.5.0" + }, + "peerDependencies": { + "aws-cdk-lib": "^2.158.0", + "constructs": "^10.3.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/platform-core": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/plugin-types": "^1.2.1", + "@aws-sdk/client-sts": "^3.624.0", "is-ci": "^3.0.1", - "jsonfile": "^4.0.0", - "libphonenumber-js": "1.9.47", - "lodash": "^4.17.21", "lodash.mergewith": "^4.6.2", - "md5": "^2.2.1", - "object-hash": "^3.0.0", - "pluralize": "8.0.0", "semver": "^7.6.3", - "strnum": "^1.0.5", - "ts-dedent": "^2.0.0", - "tslib": "^2.6.2", - "universalify": "^0.1.0", "uuid": "^9.0.1", "zod": "^3.22.2" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/plugin-types": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "peerDependencies": { + "@aws-sdk/types": "^3.609.0", + "aws-cdk-lib": "^2.152.0", + "constructs": "^10.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/crc32": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/crc32/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util/node_modules/@aws-sdk/types": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime": { + "version": "3.651.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.651.1", + "@aws-sdk/client-sts": "3.651.1", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/eventstream-serde-browser": "^3.0.7", + "@smithy/eventstream-serde-config-resolver": "^3.0.4", + "@smithy/eventstream-serde-node": "^3.0.6", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-stream": "^3.1.4", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/client-sso": { + "version": "3.651.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.651.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/ai-constructs": { - "version": "0.1.4", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/core": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/plugin-types": "^1.0.1", - "@aws-sdk/client-bedrock-runtime": "^3.622.0", - "@smithy/types": "^3.3.0" + "@smithy/core": "^2.4.1", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/signature-v4": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-middleware": "^3.0.4", + "fast-xml-parser": "4.4.1", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.0.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-schemas": { - "version": "1.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", - "peerDependencies": { - "zod": "^3.22.2" + "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-storage": { - "version": "1.1.1", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/backend-output-schemas": "^1.2.0", - "@aws-amplify/platform-core": "^1.0.6" + "@aws-sdk/types": "3.649.0", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-stream": "^3.1.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.651.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0" + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core": { - "version": "1.0.7", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/plugin-types": "^1.2.1", - "@aws-sdk/client-sts": "^3.624.0", - "is-ci": "^3.0.1", - "lodash.mergewith": "^4.6.2", - "semver": "^7.6.3", - "uuid": "^9.0.1", - "zod": "^3.22.2" + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-ini": "3.651.1", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-auth-transformer": { - "version": "4.1.1", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1", - "lodash": "^4.17.21", - "md5": "^2.3.0" + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-conversation-transformer": { - "version": "0.2.1", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/ai-constructs": "^0.1.4", - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1", - "immer": "^9.0.12" + "@aws-sdk/client-sso": "3.651.1", + "@aws-sdk/token-providers": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "@aws-sdk/client-sts": "^3.649.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-default-value-transformer": { - "version": "3.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1", - "libphonenumber-js": "1.9.47" + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-directives": { - "version": "2.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-logger": { + "version": "3.649.0", "dev": true, "inBundle": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-function-transformer": { - "version": "3.1.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-generation-transformer": { - "version": "0.2.1", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1", - "immer": "^9.0.12" + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-http-transformer": { - "version": "3.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.4", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-index-transformer": { - "version": "3.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/token-providers": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "@aws-sdk/client-sso-oidc": "^3.649.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-maps-to-transformer": { - "version": "4.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/types": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-model-transformer": { - "version": "3.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/util-endpoints": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "@smithy/util-endpoints": "^2.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-predictions-transformer": { - "version": "3.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-relational-transformer": { - "version": "3.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sso": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1", - "immer": "^9.0.12" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.635.0", + "@aws-sdk/middleware-host-header": "3.620.0", + "@aws-sdk/middleware-logger": "3.609.0", + "@aws-sdk/middleware-recursion-detection": "3.620.0", + "@aws-sdk/middleware-user-agent": "3.637.0", + "@aws-sdk/region-config-resolver": "3.614.0", + "@aws-sdk/types": "3.609.0", + "@aws-sdk/util-endpoints": "3.637.0", + "@aws-sdk/util-user-agent-browser": "3.609.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.4.0", + "@smithy/fetch-http-handler": "^3.2.4", + "@smithy/hash-node": "^3.0.3", + "@smithy/invalid-dependency": "^3.0.3", + "@smithy/middleware-content-length": "^3.0.5", + "@smithy/middleware-endpoint": "^3.1.0", + "@smithy/middleware-retry": "^3.0.15", + "@smithy/middleware-serde": "^3.0.3", + "@smithy/middleware-stack": "^3.0.3", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.4", + "@smithy/protocol-http": "^4.1.0", + "@smithy/smithy-client": "^3.2.0", + "@smithy/types": "^3.3.0", + "@smithy/url-parser": "^3.0.3", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.15", + "@smithy/util-defaults-mode-node": "^3.0.15", + "@smithy/util-endpoints": "^2.0.5", + "@smithy/util-middleware": "^3.0.3", + "@smithy/util-retry": "^3.0.3", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-searchable-transformer": { - "version": "3.0.3", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.637.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.635.0", + "@aws-sdk/credential-provider-node": "3.637.0", + "@aws-sdk/middleware-host-header": "3.620.0", + "@aws-sdk/middleware-logger": "3.609.0", + "@aws-sdk/middleware-recursion-detection": "3.620.0", + "@aws-sdk/middleware-user-agent": "3.637.0", + "@aws-sdk/region-config-resolver": "3.614.0", + "@aws-sdk/types": "3.609.0", + "@aws-sdk/util-endpoints": "3.637.0", + "@aws-sdk/util-user-agent-browser": "3.609.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.4.0", + "@smithy/fetch-http-handler": "^3.2.4", + "@smithy/hash-node": "^3.0.3", + "@smithy/invalid-dependency": "^3.0.3", + "@smithy/middleware-content-length": "^3.0.5", + "@smithy/middleware-endpoint": "^3.1.0", + "@smithy/middleware-retry": "^3.0.15", + "@smithy/middleware-serde": "^3.0.3", + "@smithy/middleware-stack": "^3.0.3", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.4", + "@smithy/protocol-http": "^4.1.0", + "@smithy/smithy-client": "^3.2.0", + "@smithy/types": "^3.3.0", + "@smithy/url-parser": "^3.0.3", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.15", + "@smithy/util-defaults-mode-node": "^3.0.15", + "@smithy/util-endpoints": "^2.0.5", + "@smithy/util-middleware": "^3.0.3", + "@smithy/util-retry": "^3.0.3", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" - } - }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-sql-transformer": { - "version": "0.4.3", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1" + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "@aws-sdk/client-sts": "^3.637.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer": { - "version": "2.1.1", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-auth-transformer": "4.1.1", - "@aws-amplify/graphql-conversation-transformer": "0.2.1", - "@aws-amplify/graphql-default-value-transformer": "3.0.3", - "@aws-amplify/graphql-function-transformer": "3.1.0", - "@aws-amplify/graphql-generation-transformer": "0.2.1", - "@aws-amplify/graphql-http-transformer": "3.0.3", - "@aws-amplify/graphql-index-transformer": "3.0.3", - "@aws-amplify/graphql-maps-to-transformer": "4.0.3", - "@aws-amplify/graphql-model-transformer": "3.0.3", - "@aws-amplify/graphql-predictions-transformer": "3.0.3", - "@aws-amplify/graphql-relational-transformer": "3.0.3", - "@aws-amplify/graphql-searchable-transformer": "3.0.3", - "@aws-amplify/graphql-sql-transformer": "0.4.3", - "@aws-amplify/graphql-transformer-core": "3.1.1", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.651.1", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-core": { - "version": "3.1.1", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/graphql-directives": "2.2.0", - "@aws-amplify/graphql-transformer-interfaces": "4.1.0", - "fs-extra": "^8.1.0", - "graphql": "^15.5.0", - "graphql-mapping-template": "5.0.1", - "graphql-transformer-common": "5.0.1", - "hjson": "^3.2.2", - "lodash": "^4.17.21", - "md5": "^2.3.0", - "object-hash": "^3.0.0", - "ts-dedent": "^2.0.0" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/graphql-transformer-interfaces": { - "version": "4.1.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "graphql": "^15.5.0" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.651.1", + "@aws-sdk/credential-provider-node": "3.651.1", + "@aws-sdk/middleware-host-header": "3.649.0", + "@aws-sdk/middleware-logger": "3.649.0", + "@aws-sdk/middleware-recursion-detection": "3.649.0", + "@aws-sdk/middleware-user-agent": "3.649.0", + "@aws-sdk/region-config-resolver": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@aws-sdk/util-user-agent-browser": "3.649.0", + "@aws-sdk/util-user-agent-node": "3.649.0", + "@smithy/config-resolver": "^3.0.6", + "@smithy/core": "^2.4.1", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/hash-node": "^3.0.4", + "@smithy/invalid-dependency": "^3.0.4", + "@smithy/middleware-content-length": "^3.0.6", + "@smithy/middleware-endpoint": "^3.1.1", + "@smithy/middleware-retry": "^3.0.16", + "@smithy/middleware-serde": "^3.0.4", + "@smithy/middleware-stack": "^3.0.4", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/url-parser": "^3.0.4", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.16", + "@smithy/util-defaults-mode-node": "^3.0.16", + "@smithy/util-endpoints": "^2.1.0", + "@smithy/util-middleware": "^3.0.4", + "@smithy/util-retry": "^3.0.4", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.3.0" + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/platform-core": { - "version": "1.1.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/core": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/plugin-types": "^1.2.1", - "@aws-sdk/client-sts": "^3.624.0", - "is-ci": "^3.0.1", - "lodash.mergewith": "^4.6.2", - "semver": "^7.6.3", - "uuid": "^9.0.1", - "zod": "^3.22.2" - } - }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-amplify/plugin-types": { - "version": "1.2.1", - "dev": true, - "inBundle": true, - "license": "Apache-2.0", - "peerDependencies": { - "@aws-sdk/types": "^3.609.0", - "aws-cdk-lib": "^2.152.0", - "constructs": "^10.0.0" + "@smithy/core": "^2.4.1", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/signature-v4": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-middleware": "^3.0.4", + "fast-xml-parser": "4.4.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/crc32": { - "version": "5.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser": { - "version": "5.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-js": "^5.2.0", - "@aws-crypto/supports-web-crypto": "^5.2.0", - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@smithy/util-utf8": "^2.0.0", + "@aws-sdk/types": "3.649.0", + "@smithy/fetch-http-handler": "^3.2.5", + "@smithy/node-http-handler": "^3.2.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/protocol-http": "^4.1.1", + "@smithy/smithy-client": "^3.3.0", + "@smithy/types": "^3.4.0", + "@smithy/util-stream": "^3.1.4", "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.651.1" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", + "@aws-sdk/credential-provider-env": "3.649.0", + "@aws-sdk/credential-provider-http": "3.649.0", + "@aws-sdk/credential-provider-ini": "3.651.1", + "@aws-sdk/credential-provider-process": "3.649.0", + "@aws-sdk/credential-provider-sso": "3.651.1", + "@aws-sdk/credential-provider-web-identity": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/credential-provider-imds": "^3.2.1", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { - "version": "2.3.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/sha256-js": { - "version": "5.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.651.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/util": "^5.2.0", - "@aws-sdk/types": "^3.222.0", + "@aws-sdk/client-sso": "3.651.1", + "@aws-sdk/token-providers": "3.649.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/supports-web-crypto": { - "version": "5.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.649.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util": { - "version": "5.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.222.0", - "@smithy/util-utf8": "^2.0.0", + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { - "version": "2.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-logger": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { - "version": "2.2.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^2.2.0", + "@aws-sdk/types": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { - "version": "2.3.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/util-buffer-from": "^2.2.0", + "@aws-sdk/types": "3.649.0", + "@aws-sdk/util-endpoints": "3.649.0", + "@smithy/protocol-http": "^4.1.1", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-bedrock-runtime": { - "version": "3.642.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.637.0", - "@aws-sdk/client-sts": "3.637.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/credential-provider-node": "3.637.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/eventstream-serde-browser": "^3.0.6", - "@smithy/eventstream-serde-config-resolver": "^3.0.3", - "@smithy/eventstream-serde-node": "^3.0.5", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "@smithy/util-base64": "^3.0.0", - "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", - "@smithy/util-stream": "^3.1.3", - "@smithy/util-utf8": "^3.0.0", + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.4", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sso": { - "version": "3.637.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/token-providers": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "@smithy/util-base64": "^3.0.0", - "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", - "@smithy/util-utf8": "^3.0.0", + "@aws-sdk/types": "3.649.0", + "@smithy/property-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.649.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.637.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/credential-provider-node": "3.637.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "@smithy/util-base64": "^3.0.0", - "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", - "@smithy/util-utf8": "^3.0.0", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-endpoints": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "@smithy/util-endpoints": "^2.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@aws-sdk/client-sts": "^3.637.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts": { - "version": "3.637.0", + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.649.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.637.0", - "@aws-sdk/core": "3.635.0", - "@aws-sdk/credential-provider-node": "3.637.0", - "@aws-sdk/middleware-host-header": "3.620.0", - "@aws-sdk/middleware-logger": "3.609.0", - "@aws-sdk/middleware-recursion-detection": "3.620.0", - "@aws-sdk/middleware-user-agent": "3.637.0", - "@aws-sdk/region-config-resolver": "3.614.0", - "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.637.0", - "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.614.0", - "@smithy/config-resolver": "^3.0.5", - "@smithy/core": "^2.4.0", - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/hash-node": "^3.0.3", - "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-content-length": "^3.0.5", - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "@smithy/util-base64": "^3.0.0", - "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.15", - "@smithy/util-defaults-mode-node": "^3.0.15", - "@smithy/util-endpoints": "^2.0.5", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", - "@smithy/util-utf8": "^3.0.0", + "@aws-sdk/types": "3.649.0", + "@smithy/types": "^3.4.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.649.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.649.0", + "@smithy/node-config-provider": "^3.1.5", + "@smithy/types": "^3.4.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@aws-sdk/core": { @@ -4552,12 +6329,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/abort-controller": { - "version": "3.1.1", + "version": "3.1.4", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4565,15 +6342,15 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/config-resolver": { - "version": "3.0.5", + "version": "3.0.8", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.4", - "@smithy/types": "^3.3.0", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/types": "^3.4.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.3", + "@smithy/util-middleware": "^3.0.6", "tslib": "^2.6.2" }, "engines": { @@ -4581,19 +6358,19 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/core": { - "version": "2.4.0", + "version": "2.4.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-retry": "^3.0.15", - "@smithy/middleware-serde": "^3.0.3", - "@smithy/protocol-http": "^4.1.0", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", + "@smithy/middleware-endpoint": "^3.1.3", + "@smithy/middleware-retry": "^3.0.18", + "@smithy/middleware-serde": "^3.0.6", + "@smithy/protocol-http": "^4.1.3", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-middleware": "^3.0.3", + "@smithy/util-middleware": "^3.0.6", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -4602,15 +6379,15 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/credential-provider-imds": { - "version": "3.2.0", + "version": "3.2.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.4", - "@smithy/property-provider": "^3.1.3", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/property-provider": "^3.1.6", + "@smithy/types": "^3.4.2", + "@smithy/url-parser": "^3.0.6", "tslib": "^2.6.2" }, "engines": { @@ -4618,25 +6395,25 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/eventstream-codec": { - "version": "3.1.2", + "version": "3.1.5", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "@smithy/util-hex-encoding": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/eventstream-serde-browser": { - "version": "3.0.6", + "version": "3.0.9", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.5", - "@smithy/types": "^3.3.0", + "@smithy/eventstream-serde-universal": "^3.0.8", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4644,12 +6421,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4657,13 +6434,13 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/eventstream-serde-node": { - "version": "3.0.5", + "version": "3.0.8", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.5", - "@smithy/types": "^3.3.0", + "@smithy/eventstream-serde-universal": "^3.0.8", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4671,13 +6448,13 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/eventstream-serde-universal": { - "version": "3.0.5", + "version": "3.0.8", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-codec": "^3.1.2", - "@smithy/types": "^3.3.0", + "@smithy/eventstream-codec": "^3.1.5", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4685,25 +6462,25 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/fetch-http-handler": { - "version": "3.2.4", + "version": "3.2.7", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.0", - "@smithy/querystring-builder": "^3.0.3", - "@smithy/types": "^3.3.0", + "@smithy/protocol-http": "^4.1.3", + "@smithy/querystring-builder": "^3.0.6", + "@smithy/types": "^3.4.2", "@smithy/util-base64": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/hash-node": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -4713,12 +6490,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/invalid-dependency": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" } }, @@ -4735,13 +6512,13 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/middleware-content-length": { - "version": "3.0.5", + "version": "3.0.8", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.0", - "@smithy/types": "^3.3.0", + "@smithy/protocol-http": "^4.1.3", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4749,17 +6526,17 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/middleware-endpoint": { - "version": "3.1.0", + "version": "3.1.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^3.0.3", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", - "@smithy/url-parser": "^3.0.3", - "@smithy/util-middleware": "^3.0.3", + "@smithy/middleware-serde": "^3.0.6", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.7", + "@smithy/types": "^3.4.2", + "@smithy/url-parser": "^3.0.6", + "@smithy/util-middleware": "^3.0.6", "tslib": "^2.6.2" }, "engines": { @@ -4767,18 +6544,18 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/middleware-retry": { - "version": "3.0.15", + "version": "3.0.18", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.4", - "@smithy/protocol-http": "^4.1.0", - "@smithy/service-error-classification": "^3.0.3", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", - "@smithy/util-middleware": "^3.0.3", - "@smithy/util-retry": "^3.0.3", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/protocol-http": "^4.1.3", + "@smithy/service-error-classification": "^3.0.6", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", + "@smithy/util-middleware": "^3.0.6", + "@smithy/util-retry": "^3.0.6", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -4787,12 +6564,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/middleware-serde": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4800,12 +6577,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/middleware-stack": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4813,14 +6590,14 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/node-config-provider": { - "version": "3.1.4", + "version": "3.1.7", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.4", - "@smithy/types": "^3.3.0", + "@smithy/property-provider": "^3.1.6", + "@smithy/shared-ini-file-loader": "^3.1.7", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4828,15 +6605,15 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/node-http-handler": { - "version": "3.1.4", + "version": "3.2.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.1", - "@smithy/protocol-http": "^4.1.0", - "@smithy/querystring-builder": "^3.0.3", - "@smithy/types": "^3.3.0", + "@smithy/abort-controller": "^3.1.4", + "@smithy/protocol-http": "^4.1.3", + "@smithy/querystring-builder": "^3.0.6", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4844,12 +6621,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/property-provider": { - "version": "3.1.3", + "version": "3.1.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4857,12 +6634,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/protocol-http": { - "version": "4.1.0", + "version": "4.1.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4870,12 +6647,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/querystring-builder": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "@smithy/util-uri-escape": "^3.0.0", "tslib": "^2.6.2" }, @@ -4884,12 +6661,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/querystring-parser": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4897,24 +6674,24 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/service-error-classification": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0" + "@smithy/types": "^3.4.2" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.4", + "version": "3.1.7", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -4922,16 +6699,16 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/signature-v4": { - "version": "4.1.0", + "version": "4.1.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", - "@smithy/protocol-http": "^4.1.0", - "@smithy/types": "^3.3.0", + "@smithy/protocol-http": "^4.1.3", + "@smithy/types": "^3.4.2", "@smithy/util-hex-encoding": "^3.0.0", - "@smithy/util-middleware": "^3.0.3", + "@smithy/util-middleware": "^3.0.6", "@smithy/util-uri-escape": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -4941,16 +6718,16 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/smithy-client": { - "version": "3.2.0", + "version": "3.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-endpoint": "^3.1.0", - "@smithy/middleware-stack": "^3.0.3", - "@smithy/protocol-http": "^4.1.0", - "@smithy/types": "^3.3.0", - "@smithy/util-stream": "^3.1.3", + "@smithy/middleware-endpoint": "^3.1.3", + "@smithy/middleware-stack": "^3.0.6", + "@smithy/protocol-http": "^4.1.3", + "@smithy/types": "^3.4.2", + "@smithy/util-stream": "^3.1.6", "tslib": "^2.6.2" }, "engines": { @@ -4958,7 +6735,7 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/types": { - "version": "3.3.0", + "version": "3.4.2", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -4970,13 +6747,13 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/url-parser": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^3.0.3", - "@smithy/types": "^3.3.0", + "@smithy/querystring-parser": "^3.0.6", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" } }, @@ -5041,14 +6818,14 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.15", + "version": "3.0.18", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.3", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", + "@smithy/property-provider": "^3.1.6", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -5057,17 +6834,17 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.15", + "version": "3.0.18", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^3.0.5", - "@smithy/credential-provider-imds": "^3.2.0", - "@smithy/node-config-provider": "^3.1.4", - "@smithy/property-provider": "^3.1.3", - "@smithy/smithy-client": "^3.2.0", - "@smithy/types": "^3.3.0", + "@smithy/config-resolver": "^3.0.8", + "@smithy/credential-provider-imds": "^3.2.3", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/property-provider": "^3.1.6", + "@smithy/smithy-client": "^3.3.2", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -5075,13 +6852,13 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/util-endpoints": { - "version": "2.0.5", + "version": "2.1.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.4", - "@smithy/types": "^3.3.0", + "@smithy/node-config-provider": "^3.1.7", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -5101,12 +6878,12 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/util-middleware": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.3.0", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -5114,13 +6891,13 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/util-retry": { - "version": "3.0.3", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^3.0.3", - "@smithy/types": "^3.3.0", + "@smithy/service-error-classification": "^3.0.6", + "@smithy/types": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -5128,14 +6905,14 @@ } }, "node_modules/@aws-amplify/graphql-api-construct/node_modules/@smithy/util-stream": { - "version": "3.1.3", + "version": "3.1.6", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^3.2.4", - "@smithy/node-http-handler": "^3.1.4", - "@smithy/types": "^3.3.0", + "@smithy/fetch-http-handler": "^3.2.7", + "@smithy/node-http-handler": "^3.2.2", + "@smithy/types": "^3.4.2", "@smithy/util-base64": "^3.0.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-hex-encoding": "^3.0.0", @@ -5596,13 +7373,13 @@ } }, "node_modules/@aws-amplify/graphql-generator": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-generator/-/graphql-generator-0.4.6.tgz", - "integrity": "sha512-uCRKkYTtHEeMOoEPsoQjhpVi5mGtvrogSta2ml/4UwbeNfS/LoP2IN+8PPpNcza3GnOM960+6siRtucPPyMEbg==", + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@aws-amplify/graphql-generator/-/graphql-generator-0.4.7.tgz", + "integrity": "sha512-/qvbd2A9E0adBQxNgQ9QMxyRjexborSDT5evz1Ytr/imOd2MGNNEQEhzlHSc5Lt3L4m+H3l8dFb/V7IHbx5vzw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-amplify/appsync-modelgen-plugin": "2.13.1", + "@aws-amplify/appsync-modelgen-plugin": "2.13.2", "@aws-amplify/graphql-directives": "^1.0.1", "@aws-amplify/graphql-docs-generator": "4.2.1", "@aws-amplify/graphql-types-generator": "3.6.0", @@ -6301,15 +8078,15 @@ } }, "node_modules/@aws-amplify/graphql-schema-generator/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -6317,13 +8094,13 @@ } }, "node_modules/@aws-amplify/graphql-schema-generator/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -6646,9 +8423,9 @@ } }, "node_modules/@aws-amplify/notifications": { - "version": "2.0.50", - "resolved": "https://registry.npmjs.org/@aws-amplify/notifications/-/notifications-2.0.50.tgz", - "integrity": "sha512-g7eBEXbDxTpOrZvuzkX2QP+vYn9TieQQJWVe1Z2jI3MzHjvJsWeF3Nt4zH5BMIEE9b6dGvy4FktudR+Vc4t03A==", + "version": "2.0.54", + "resolved": "https://registry.npmjs.org/@aws-amplify/notifications/-/notifications-2.0.54.tgz", + "integrity": "sha512-DVHI2GbPCDlyAwJIoeWn7idfDrp7F1YcD0q4uMRPp2Knp4P70eWFnRvHbdKvCIC98Lw5JI2+c1SBmfIut5vBMg==", "license": "Apache-2.0", "dependencies": { "lodash": "^4.17.21", @@ -6687,9 +8464,9 @@ } }, "node_modules/@aws-amplify/sandbox": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@aws-amplify/sandbox/-/sandbox-1.2.2.tgz", - "integrity": "sha512-60YrgTS8BmAR+wjLCfUu0Uv39AzbT3AKdcuwxhKWYoqWvOzTDetPnbSacivtNEzIgbEsnjKSMBIL83M1EEu8aQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@aws-amplify/sandbox/-/sandbox-1.2.3.tgz", + "integrity": "sha512-MJIeW1X6xShuazp7RepHcsuP/Dy/hMdmObwRCdsjrZRNZOAN8e63dYSdkxtqVHr0Mk2fZ9WrIrCiu8PYbx7b9A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6700,13 +8477,11 @@ "@aws-amplify/deployed-backend-client": "^1.4.1", "@aws-amplify/platform-core": "^1.0.6", "@aws-amplify/plugin-types": "^1.2.2", - "@aws-sdk/client-cloudformation": "^3.624.0", "@aws-sdk/client-cloudwatch-logs": "^3.624.0", "@aws-sdk/client-lambda": "^3.624.0", "@aws-sdk/client-ssm": "^3.624.0", "@aws-sdk/credential-providers": "^3.624.0", "@aws-sdk/types": "^3.609.0", - "@aws-sdk/util-arn-parser": "^3.568.0", "@parcel/watcher": "^2.4.1", "debounce-promise": "^3.1.2", "glob": "^10.2.7", @@ -6729,9 +8504,9 @@ } }, "node_modules/@aws-amplify/storage": { - "version": "6.6.8", - "resolved": "https://registry.npmjs.org/@aws-amplify/storage/-/storage-6.6.8.tgz", - "integrity": "sha512-RATpJR4xWIBp6uE2zYI5Sf19DOAMhfSoHAgpRYzir961cqbxfk5e6CIiccgiFWtpKCOSZ4UuhQ1F8rgDzZSsMQ==", + "version": "6.6.12", + "resolved": "https://registry.npmjs.org/@aws-amplify/storage/-/storage-6.6.12.tgz", + "integrity": "sha512-0qHc36zlOS3Ce6YlWdnxeI9EBVZDvarJAhjusf5TOnmbhHC+pv5FVBmq5H3HVuAyLNd1GQhN7H3jUWaCe6pwZg==", "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.398.0", @@ -6781,9 +8556,9 @@ } }, "node_modules/@aws-amplify/ui": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/@aws-amplify/ui/-/ui-6.6.1.tgz", - "integrity": "sha512-PYAqhP2EsiYF2H2CwbWGzmGO9lonDqIpjc5yGm3Gg4gJkFkJnBBKAvHDLDt/Lf/iEYPcSd82oS0pZRnG9mIwUQ==", + "version": "6.6.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/ui/-/ui-6.6.5.tgz", + "integrity": "sha512-J74i0amcVeFWtPDvkQ1pKF78ea5b6Usi4DUiKHusstCQ0SmHbuxU5JLdW9Zz5luZFgRnm1SL/f7sJz6XGG1TTA==", "license": "Apache-2.0", "dependencies": { "csstype": "^3.1.1", @@ -6791,8 +8566,8 @@ "tslib": "^2.5.2" }, "peerDependencies": { - "@aws-amplify/core": "^6.4.0", - "aws-amplify": "^6.6.0", + "@aws-amplify/core": "*", + "aws-amplify": "^6.6.5", "xstate": "^4.33.6" }, "peerDependenciesMeta": { @@ -6802,13 +8577,13 @@ } }, "node_modules/@aws-amplify/ui-react": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@aws-amplify/ui-react/-/ui-react-6.5.1.tgz", - "integrity": "sha512-mAZZpKcPXTzHTSCRHt0AADetMDcQluu/r25pBdDEvuvYzjuRz+i+I3u0CUteRJWo5NV0VdCOHwzESFVmGokQoA==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/@aws-amplify/ui-react/-/ui-react-6.5.5.tgz", + "integrity": "sha512-2aqIig071MUNrw0wxNlF/7nZmhT7p7dOfy4/zjF/QkfvX/hAippu/pGkLuFABoWofoBkcsFad6I4Cr1vCTbAVg==", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/ui": "6.6.1", - "@aws-amplify/ui-react-core": "3.0.25", + "@aws-amplify/ui": "6.6.5", + "@aws-amplify/ui-react-core": "3.0.29", "@radix-ui/react-direction": "1.0.0", "@radix-ui/react-dropdown-menu": "1.0.0", "@radix-ui/react-slider": "1.0.0", @@ -6818,8 +8593,8 @@ "tslib": "^2.5.2" }, "peerDependencies": { - "@aws-amplify/core": "^6.4.0", - "aws-amplify": "^6.6.0", + "@aws-amplify/core": "*", + "aws-amplify": "^6.6.5", "react": "^16.14.0 || ^17.0 || ^18.0", "react-dom": "^16.14.0 || ^17.0 || ^18.0" }, @@ -6830,37 +8605,36 @@ } }, "node_modules/@aws-amplify/ui-react-core": { - "version": "3.0.25", - "resolved": "https://registry.npmjs.org/@aws-amplify/ui-react-core/-/ui-react-core-3.0.25.tgz", - "integrity": "sha512-ECVYGuT+0+18iexP2Fa/ZbtZ/u/qxD+fLFi6wuv66CcLoosoet5U4gnsd4lTooxECDOu0cyYsptX6qwaG0K6Qg==", + "version": "3.0.29", + "resolved": "https://registry.npmjs.org/@aws-amplify/ui-react-core/-/ui-react-core-3.0.29.tgz", + "integrity": "sha512-myOu26P0GTjPkxJHiXRhIXo+gs42GFtxVTRTSRynKnljadVb3wnWDJdFZH1pAFtwux79uwQtptpkN7O0/nTLXw==", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/ui": "6.6.1", + "@aws-amplify/ui": "6.6.5", "@xstate/react": "^3.2.2", "lodash": "4.17.21", "react-hook-form": "^7.43.5", "xstate": "^4.33.6" }, "peerDependencies": { - "aws-amplify": "^6.6.0", + "aws-amplify": "^6.6.5", "react": "^16.14.0 || ^17.0 || ^18.0" } }, "node_modules/@aws-amplify/ui-react-storage": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@aws-amplify/ui-react-storage/-/ui-react-storage-3.3.5.tgz", - "integrity": "sha512-fv59KFzeGRxAOEVjTD111GC8KrH5cvmnXuy6QyYTOHAjTPYXZsLPvD4FLwOxQ1LAVW1wyGCRML/YxmjyXV9TeA==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@aws-amplify/ui-react-storage/-/ui-react-storage-3.3.9.tgz", + "integrity": "sha512-KTuavKw7lXfxtfMeI1/XCOJFcYzn6+95S4XiYAvyQuOdKZlN1m1fU6ix3npVOipO2qCxoOZ3h12U/5D4MD2gvw==", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/ui": "6.6.1", - "@aws-amplify/ui-react": "6.5.1", - "@aws-amplify/ui-react-core": "3.0.25", + "@aws-amplify/ui": "6.6.5", + "@aws-amplify/ui-react": "6.5.5", + "@aws-amplify/ui-react-core": "3.0.29", "lodash": "4.17.21", "tslib": "^2.5.2" }, "peerDependencies": { - "@aws-amplify/core": "^6.4.0", - "aws-amplify": "^6.6.0", + "aws-amplify": "^6.6.5", "react": "^16.14.0 || ^17.0 || ^18.0", "react-dom": "^16.14.0 || ^17.0 || ^18.0" } @@ -7279,16 +9053,16 @@ } }, "node_modules/@aws-cdk/asset-awscli-v1": { - "version": "2.2.205", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.205.tgz", - "integrity": "sha512-aoCe5pUr0o5nJU7BtPyuNPM23YPKISQoU4S3g+il2iglY/sfdljXCNhzNrbqLhJtpIxWsVip8H+6BR7TkmjtnA==", + "version": "2.2.208", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.208.tgz", + "integrity": "sha512-r4CuHZaiBioU6waWhCNdEL4MO1+rfbcYVS/Ndz1XNGB5cxIRZwAS0Si6qD2D6nsgpPojiruFl67T1t5M9Va8kQ==", "dev": true, "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-kubectl-v20": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz", - "integrity": "sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.3.tgz", + "integrity": "sha512-cDG1w3ieM6eOT9mTefRuTypk95+oyD7P5X/wRltwmYxU7nZc3+076YEVS6vrjDKr3ADYbfn0lDKpfB1FBtO9CQ==", "dev": true, "license": "Apache-2.0" }, @@ -7426,51 +9200,51 @@ } }, "node_modules/@aws-sdk/client-amplify": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplify/-/client-amplify-3.658.1.tgz", - "integrity": "sha512-+CnKciuFgjfxdEsbftLNpl+SU8DvCL8JUTBryIEm+/3YNP+VVzElnOsnwcJhX8OSa3/u82tmE7H9GAJVeZo14w==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplify/-/client-amplify-3.679.0.tgz", + "integrity": "sha512-0fpMT8xiB0lIAWJFf4T371se46y0JsfiDx8SxlbDmJPXosRJdidIb8tD4CUDbkBmiVQKqcACyzclw93XIFacsw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -7479,15 +9253,15 @@ } }, "node_modules/@aws-sdk/client-amplify/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7495,13 +9269,13 @@ } }, "node_modules/@aws-sdk/client-amplify/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7523,52 +9297,53 @@ } }, "node_modules/@aws-sdk/client-amplifyuibuilder": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplifyuibuilder/-/client-amplifyuibuilder-3.658.1.tgz", - "integrity": "sha512-peo4ipGRVDikBYOlZwInehn9tLjdMrxQ+b/c73knFnSqTkcPk57DISb57lXvwKYjXNEtpc0yE3YCFhoKh/C8jQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-amplifyuibuilder/-/client-amplifyuibuilder-3.679.0.tgz", + "integrity": "sha512-pFN7f+egJmNaMdsKYJ/g3oi50oszEi8CnHV5euL8tqwV+9v+PrlHox/2p9/9X0dw1FNRX9xXjx4iShi08idhQg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", + "@types/uuid": "^9.0.1", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -7577,15 +9352,15 @@ } }, "node_modules/@aws-sdk/client-amplifyuibuilder/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7593,13 +9368,13 @@ } }, "node_modules/@aws-sdk/client-amplifyuibuilder/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7621,52 +9396,52 @@ } }, "node_modules/@aws-sdk/client-appsync": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-appsync/-/client-appsync-3.658.1.tgz", - "integrity": "sha512-/CTM25/Oq6t8o+bfWnTuZe6X45NzD7l65g4A1/kl6SMNMTaXov/Mtep+EsxpE24w6U2VoIwsRZ97j1qD9PMjiA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-appsync/-/client-appsync-3.679.0.tgz", + "integrity": "sha512-fHlZ0w2ux7Dj9k1v87HwJaVM/rVKOQv9Mi9C9mEy5ZJYtD3Zp7Q7VlhsfHaiNVtpAUd8jgce0NKtdzmDEw9h/Q==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", - "@smithy/util-stream": "^3.1.8", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-stream": "^3.1.9", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -7675,15 +9450,15 @@ } }, "node_modules/@aws-sdk/client-appsync/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7691,13 +9466,13 @@ } }, "node_modules/@aws-sdk/client-appsync/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7719,53 +9494,54 @@ } }, "node_modules/@aws-sdk/client-cloudformation": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.658.1.tgz", - "integrity": "sha512-ZvfKOXEelYQDH5tOOx8/+W4DclmKmKcwdIluCBqke6ZGMQ2LyX+5/JLxsEKn3qNmahbSyxE1+HUX84hh6H5K5A==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.679.0.tgz", + "integrity": "sha512-VfJoIhHk8oijbMny9Q5L7s407INgChuT5Kc9kMOud6gOIDAX5DuW3nks39gQusIMajNfDiDXvdX1oyzb7sfqvQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.5", + "@smithy/util-waiter": "^3.1.6", + "@types/uuid": "^9.0.1", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -7774,15 +9550,15 @@ } }, "node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7790,13 +9566,13 @@ } }, "node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7818,55 +9594,56 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.658.1.tgz", - "integrity": "sha512-+KIO6mdAlIv0makUKQ3xMo8Iyvqs0If4LvD+KdFvyhftNcF/uiRAdudC++JQ7vUpmu9DxLJN7XPj2+zD4azQhw==", + "version": "3.680.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.680.0.tgz", + "integrity": "sha512-Jb9njjO9ziLyjUIlGz+59+Ifo2sDSCLjphvO8+GL4A7KsxgpDLis6IeNQn4PguVDWusOGa4rpm11o0GfMHAQBw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/eventstream-serde-browser": "^3.0.9", - "@smithy/eventstream-serde-config-resolver": "^3.0.6", - "@smithy/eventstream-serde-node": "^3.0.8", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/eventstream-serde-browser": "^3.0.10", + "@smithy/eventstream-serde-config-resolver": "^3.0.7", + "@smithy/eventstream-serde-node": "^3.0.9", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", + "@types/uuid": "^9.0.1", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -7875,15 +9652,15 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7891,13 +9668,13 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -7919,50 +9696,50 @@ } }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.658.1.tgz", - "integrity": "sha512-MCYLKmNy0FlNT9TvXfOxj0jh+ZQq+G9qEy/VZqu3JsQSgiFvFRdzgzcbQ9gQx7fZrDC/TPdABOTh483zI4cu9g==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.679.0.tgz", + "integrity": "sha512-vJzQ6QpaMu8itJMe3FH1/0rwMjL0ELh63iLTxiAmhiV/SvCwNNoSFLd2HdKxbV0Bg/x8lUiPVq3pl6+cxaIrEQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -7971,50 +9748,50 @@ } }, "node_modules/@aws-sdk/client-cognito-identity-provider": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity-provider/-/client-cognito-identity-provider-3.658.1.tgz", - "integrity": "sha512-Q6F+o7tO1tfBmSweyWcIKhmgCx+hZcUowzQdRY8m1AZyStP3FPSabHvsFLWXL1NRWwZfLMlBWajk3pgygPjeCQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity-provider/-/client-cognito-identity-provider-3.679.0.tgz", + "integrity": "sha512-ir2JZ4eH4N/OgLNc1aV2SurWphi/DOKn32wTDLB2gUcn+yfFQAWQ6wvV1GQrsONrWBnaPo7f3/if3ek1SL29fg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -8023,14 +9800,14 @@ } }, "node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -8038,12 +9815,12 @@ } }, "node_modules/@aws-sdk/client-cognito-identity-provider/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -8064,14 +9841,14 @@ } }, "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -8079,12 +9856,12 @@ } }, "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -8105,53 +9882,54 @@ } }, "node_modules/@aws-sdk/client-dynamodb": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.658.1.tgz", - "integrity": "sha512-RUMMadGecgIZ8J8IU1+SE5OC7MNyToq929hIqWNmlCwPdmveG4TsUmm+dJ2k+G7AwyzumB252Kkb8kdbLJ6H3g==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.679.0.tgz", + "integrity": "sha512-42KDDriVHMuCjTQDQcMgnAVfkiZ4/UiOaoyg0ogLKOhRiWCDQ8XAscdtMyj4FQWDBawWTWr1uxWBSGYEJzbEXQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-endpoint-discovery": "3.654.0", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-endpoint-discovery": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.5", + "@smithy/util-waiter": "^3.1.6", + "@types/uuid": "^9.0.1", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -8160,14 +9938,14 @@ } }, "node_modules/@aws-sdk/client-dynamodb/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -8175,12 +9953,12 @@ } }, "node_modules/@aws-sdk/client-dynamodb/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -8745,15 +10523,15 @@ } }, "node_modules/@aws-sdk/client-ec2/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -8761,13 +10539,13 @@ } }, "node_modules/@aws-sdk/client-ec2/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -9308,14 +11086,14 @@ } }, "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -9323,12 +11101,12 @@ } }, "node_modules/@aws-sdk/client-firehose/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -9891,15 +11669,15 @@ } }, "node_modules/@aws-sdk/client-iam/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -9907,13 +11685,13 @@ } }, "node_modules/@aws-sdk/client-iam/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -10458,14 +12236,14 @@ } }, "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -10473,12 +12251,12 @@ } }, "node_modules/@aws-sdk/client-kinesis/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -10499,57 +12277,57 @@ } }, "node_modules/@aws-sdk/client-lambda": { - "version": "3.659.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.659.0.tgz", - "integrity": "sha512-0XBIcMBDm56iOjC0k1EjJR3ewXr2gFNtVRmdchtT7XPe2bYQY4L+K0Xk9TNLoEZAhFuFkh129I2pMrmlaDEl/Q==", + "version": "3.680.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.680.0.tgz", + "integrity": "sha512-oABfvrJTVvlVnCEi6lMtxlC/ta5wxu79bB2ZACe/0AxFZrXgr+gscrUtSm1iNye5+6oeYvQPD7b+ft6UwFrSlw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/eventstream-serde-browser": "^3.0.9", - "@smithy/eventstream-serde-config-resolver": "^3.0.6", - "@smithy/eventstream-serde-node": "^3.0.8", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/eventstream-serde-browser": "^3.0.10", + "@smithy/eventstream-serde-config-resolver": "^3.0.7", + "@smithy/eventstream-serde-node": "^3.0.9", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", - "@smithy/util-stream": "^3.1.8", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-stream": "^3.1.9", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.5", + "@smithy/util-waiter": "^3.1.6", "tslib": "^2.6.2" }, "engines": { @@ -10557,15 +12335,15 @@ } }, "node_modules/@aws-sdk/client-lambda/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -10573,13 +12351,13 @@ } }, "node_modules/@aws-sdk/client-lambda/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11120,14 +12898,14 @@ } }, "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11135,12 +12913,12 @@ } }, "node_modules/@aws-sdk/client-personalize-events/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11704,15 +13482,15 @@ } }, "node_modules/@aws-sdk/client-rds/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11720,13 +13498,13 @@ } }, "node_modules/@aws-sdk/client-rds/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11748,69 +13526,69 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.658.1.tgz", - "integrity": "sha512-rxYW7ONoh1y/SM292jt0TEH+LSiztoPCJxT3gst4S2o/85apFY3RxL8TrhOqzXoIeMu2LNzyN51Zygme6AbQAA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.679.0.tgz", + "integrity": "sha512-P93tUbJXiDtSPgBfFpnjaijLV38hyPlE3g0XybsPTmSYNV6A9Jt1TUIF6vX+o6LdFuq3FerCiagUjhfDANWkAw==", "dev": true, "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/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-bucket-endpoint": "3.654.0", - "@aws-sdk/middleware-expect-continue": "3.654.0", - "@aws-sdk/middleware-flexible-checksums": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-location-constraint": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-sdk-s3": "3.658.1", - "@aws-sdk/middleware-ssec": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/signature-v4-multi-region": "3.658.1", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@aws-sdk/xml-builder": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/eventstream-serde-browser": "^3.0.9", - "@smithy/eventstream-serde-config-resolver": "^3.0.6", - "@smithy/eventstream-serde-node": "^3.0.8", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-blob-browser": "^3.1.5", - "@smithy/hash-node": "^3.0.6", - "@smithy/hash-stream-node": "^3.1.5", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/md5-js": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-bucket-endpoint": "3.679.0", + "@aws-sdk/middleware-expect-continue": "3.679.0", + "@aws-sdk/middleware-flexible-checksums": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-location-constraint": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-sdk-s3": "3.679.0", + "@aws-sdk/middleware-ssec": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/signature-v4-multi-region": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@aws-sdk/xml-builder": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/eventstream-serde-browser": "^3.0.10", + "@smithy/eventstream-serde-config-resolver": "^3.0.7", + "@smithy/eventstream-serde-node": "^3.0.9", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-blob-browser": "^3.1.6", + "@smithy/hash-node": "^3.0.7", + "@smithy/hash-stream-node": "^3.1.6", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/md5-js": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", - "@smithy/util-stream": "^3.1.8", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", + "@smithy/util-stream": "^3.1.9", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.5", + "@smithy/util-waiter": "^3.1.6", "tslib": "^2.6.2" }, "engines": { @@ -11818,15 +13596,15 @@ } }, "node_modules/@aws-sdk/client-s3/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11834,13 +13612,13 @@ } }, "node_modules/@aws-sdk/client-s3/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11862,53 +13640,54 @@ } }, "node_modules/@aws-sdk/client-ssm": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.658.1.tgz", - "integrity": "sha512-L0fn/hDkkcDpSE5aLi+ntbbIE6rXc4NQRDtMyyWdTI9wVZvCQzvDRt4fQaVzknT26Z7QckoB952pIV0OCzpRgA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.679.0.tgz", + "integrity": "sha512-wmKpnb1iIfa/c/8EaYtQg/inPMEZ3Y67/RFQsm2nenFuq2UkCUj/kS4l0F84cBHfZALNIw9d1SVIqOjEfrIC8A==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.5", + "@smithy/util-waiter": "^3.1.6", + "@types/uuid": "^9.0.1", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -11917,15 +13696,15 @@ } }, "node_modules/@aws-sdk/client-ssm/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11933,13 +13712,13 @@ } }, "node_modules/@aws-sdk/client-ssm/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -11959,49 +13738,49 @@ "engines": { "node": ">=16.0.0" } - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.658.1.tgz", - "integrity": "sha512-lOuaBtqPTYGn6xpXlQF4LsNDsQ8Ij2kOdnk+i69Kp6yS76TYvtUuukyLL5kx8zE1c8WbYtxj9y8VNw9/6uKl7Q==", - "license": "Apache-2.0", - "dependencies": { - "@aws-crypto/sha256-browser": "5.2.0", - "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.679.0.tgz", + "integrity": "sha512-/0cAvYnpOZTo/Y961F1kx2fhDDLUYZ0SQQ5/75gh3xVImLj7Zw+vp74ieqFbqWLYGMaq8z1Arr9A8zG95mbLdg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -12010,48 +13789,48 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.658.1.tgz", - "integrity": "sha512-RGcZAI3qEA05JszPKwa0cAyp8rnS1nUvs0Sqw4hqLNQ1kD7b7V6CPjRXe7EFQqCOMvM4kGqx0+cEEVTOmBsFLw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.679.0.tgz", + "integrity": "sha512-/dBYWcCwbA/id4sFCIVZvf0UsvzHCC68SryxeNQk/PDkY9N4n5yRcMUkZDaEyQCjowc3kY4JOXp2AdUP037nhA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -12059,18 +13838,18 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.658.1" + "@aws-sdk/client-sts": "^3.679.0" } }, "node_modules/@aws-sdk/client-sso-oidc/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12078,12 +13857,12 @@ } }, "node_modules/@aws-sdk/client-sso-oidc/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12104,14 +13883,14 @@ } }, "node_modules/@aws-sdk/client-sso/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12119,12 +13898,12 @@ } }, "node_modules/@aws-sdk/client-sso/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12145,49 +13924,49 @@ } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.658.1.tgz", - "integrity": "sha512-yw9hc5blTnbT1V6mR7Cx9HGc9KQpcLQ1QXj8rntiJi6tIYu3aFNVEyy81JHL7NsuBSeQulJTvHO3y6r3O0sfRg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.679.0.tgz", + "integrity": "sha512-3CvrT8w1RjFu1g8vKA5Azfr5V83r2/b68Ock43WE003Bq/5Y38mwmYX7vk0fPHzC3qejt4YMAWk/C3fSKOy25g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.658.1", - "@aws-sdk/core": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/middleware-host-header": "3.654.0", - "@aws-sdk/middleware-logger": "3.654.0", - "@aws-sdk/middleware-recursion-detection": "3.654.0", - "@aws-sdk/middleware-user-agent": "3.654.0", - "@aws-sdk/region-config-resolver": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@aws-sdk/util-user-agent-browser": "3.654.0", - "@aws-sdk/util-user-agent-node": "3.654.0", - "@smithy/config-resolver": "^3.0.8", - "@smithy/core": "^2.4.6", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/hash-node": "^3.0.6", - "@smithy/invalid-dependency": "^3.0.6", - "@smithy/middleware-content-length": "^3.0.8", - "@smithy/middleware-endpoint": "^3.1.3", - "@smithy/middleware-retry": "^3.0.21", - "@smithy/middleware-serde": "^3.0.6", - "@smithy/middleware-stack": "^3.0.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/url-parser": "^3.0.6", + "@aws-sdk/client-sso-oidc": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/middleware-host-header": "3.679.0", + "@aws-sdk/middleware-logger": "3.679.0", + "@aws-sdk/middleware-recursion-detection": "3.679.0", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/region-config-resolver": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@aws-sdk/util-user-agent-browser": "3.679.0", + "@aws-sdk/util-user-agent-node": "3.679.0", + "@smithy/config-resolver": "^3.0.9", + "@smithy/core": "^2.4.8", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/hash-node": "^3.0.7", + "@smithy/invalid-dependency": "^3.0.7", + "@smithy/middleware-content-length": "^3.0.9", + "@smithy/middleware-endpoint": "^3.1.4", + "@smithy/middleware-retry": "^3.0.23", + "@smithy/middleware-serde": "^3.0.7", + "@smithy/middleware-stack": "^3.0.7", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/url-parser": "^3.0.7", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.21", - "@smithy/util-defaults-mode-node": "^3.0.21", - "@smithy/util-endpoints": "^2.1.2", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-retry": "^3.0.6", + "@smithy/util-defaults-mode-browser": "^3.0.23", + "@smithy/util-defaults-mode-node": "^3.0.23", + "@smithy/util-endpoints": "^2.1.3", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-retry": "^3.0.7", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -12196,14 +13975,14 @@ } }, "node_modules/@aws-sdk/client-sts/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12211,12 +13990,12 @@ } }, "node_modules/@aws-sdk/client-sts/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12237,19 +14016,20 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.658.1.tgz", - "integrity": "sha512-vJVMoMcSKXK2gBRSu9Ywwv6wQ7tXH8VL1fqB1uVxgCqBZ3IHfqNn4zvpMPWrwgO2/3wv7XFyikGQ5ypPTCw4jA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.679.0.tgz", + "integrity": "sha512-CS6PWGX8l4v/xyvX8RtXnBisdCa5+URzKd0L6GvHChype9qKUVxO/Gg6N/y43Hvg7MNWJt9FBPNWIxUB+byJwg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^2.4.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/property-provider": "^3.1.6", - "@smithy/protocol-http": "^4.1.3", - "@smithy/signature-v4": "^4.1.4", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/util-middleware": "^3.0.6", + "@aws-sdk/types": "3.679.0", + "@smithy/core": "^2.4.8", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/property-provider": "^3.1.7", + "@smithy/protocol-http": "^4.1.4", + "@smithy/signature-v4": "^4.2.0", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/util-middleware": "^3.0.7", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, @@ -12258,14 +14038,14 @@ } }, "node_modules/@aws-sdk/core/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12273,12 +14053,12 @@ } }, "node_modules/@aws-sdk/core/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12286,15 +14066,15 @@ } }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.658.1.tgz", - "integrity": "sha512-JY4rZ4e2emL7PNHCU7F/BQV8PpQGEBZLkEoPD55RO4CitaIhlVZRpUCGLih+0Hw4MOnTUqJdfQBM+qZk6G+Now==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.679.0.tgz", + "integrity": "sha512-XvWd6RPk7TA7tmqITT+NXvJ6ltJP8BUtLO1NAvja4HKExPKR9HAyoOeeH7KM3lVRED4e4LUnLb3fzteH20IXaA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-cognito-identity": "3.658.1", - "@aws-sdk/types": "3.654.0", - "@smithy/property-provider": "^3.1.6", - "@smithy/types": "^3.4.2", + "@aws-sdk/client-cognito-identity": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12302,14 +14082,15 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.654.0.tgz", - "integrity": "sha512-kogsx3Ql81JouHS7DkheCDU9MYAvK0AokxjcshDveGmf7BbgbWCA8Fnb9wjQyNDaOXNvkZu8Z8rgkX91z324/w==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.679.0.tgz", + "integrity": "sha512-EdlTYbzMm3G7VUNAMxr9S1nC1qUNqhKlAxFU8E7cKsAe8Bp29CD5HAs3POc56AVo9GC4yRIS+/mtlZSmrckzUA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/property-provider": "^3.1.6", - "@smithy/types": "^3.4.2", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12317,19 +14098,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.658.1.tgz", - "integrity": "sha512-4ubkJjEVCZflxkZnV1JDQv8P2pburxk1LrEp55telfJRzXrnowzBKwuV2ED0QMNC448g2B3VCaffS+Ct7c4IWQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.679.0.tgz", + "integrity": "sha512-ZoKLubW5DqqV1/2a3TSn+9sSKg0T8SsYMt1JeirnuLJF0mCoYFUaWMyvxxKuxPoqvUsaycxKru4GkpJ10ltNBw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/fetch-http-handler": "^3.2.8", - "@smithy/node-http-handler": "^3.2.3", - "@smithy/property-provider": "^3.1.6", - "@smithy/protocol-http": "^4.1.3", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", - "@smithy/util-stream": "^3.1.8", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/fetch-http-handler": "^3.2.9", + "@smithy/node-http-handler": "^3.2.4", + "@smithy/property-provider": "^3.1.7", + "@smithy/protocol-http": "^4.1.4", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", + "@smithy/util-stream": "^3.1.9", "tslib": "^2.6.2" }, "engines": { @@ -12337,37 +14119,38 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.658.1.tgz", - "integrity": "sha512-2uwOamQg5ppwfegwen1ddPu5HM3/IBSnaGlaKLFhltkdtZ0jiqTZWUtX2V+4Q+buLnT0hQvLS/frQ+7QUam+0Q==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.654.0", - "@aws-sdk/credential-provider-http": "3.658.1", - "@aws-sdk/credential-provider-process": "3.654.0", - "@aws-sdk/credential-provider-sso": "3.658.1", - "@aws-sdk/credential-provider-web-identity": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@smithy/credential-provider-imds": "^3.2.3", - "@smithy/property-provider": "^3.1.6", - "@smithy/shared-ini-file-loader": "^3.1.7", - "@smithy/types": "^3.4.2", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.679.0.tgz", + "integrity": "sha512-Rg7t8RwUzKcumpipG4neZqaeJ6DF+Bco1+FHn5BZB68jpvwvjBjcQUuWkxj18B6ctYHr1fkunnzeKEn/+vy7+w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-env": "3.679.0", + "@aws-sdk/credential-provider-http": "3.679.0", + "@aws-sdk/credential-provider-process": "3.679.0", + "@aws-sdk/credential-provider-sso": "3.679.0", + "@aws-sdk/credential-provider-web-identity": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/credential-provider-imds": "^3.2.4", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.658.1" + "@aws-sdk/client-sts": "^3.679.0" } }, "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12375,22 +14158,22 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.658.1.tgz", - "integrity": "sha512-XwxW6N+uPXPYAuyq+GfOEdfL/MZGAlCSfB5gEWtLBFmFbikhmEuqfWtI6CD60OwudCUOh6argd21BsJf8o1SJA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.654.0", - "@aws-sdk/credential-provider-http": "3.658.1", - "@aws-sdk/credential-provider-ini": "3.658.1", - "@aws-sdk/credential-provider-process": "3.654.0", - "@aws-sdk/credential-provider-sso": "3.658.1", - "@aws-sdk/credential-provider-web-identity": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@smithy/credential-provider-imds": "^3.2.3", - "@smithy/property-provider": "^3.1.6", - "@smithy/shared-ini-file-loader": "^3.1.7", - "@smithy/types": "^3.4.2", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.679.0.tgz", + "integrity": "sha512-E3lBtaqCte8tWs6Rkssc8sLzvGoJ10TLGvpkijOlz43wPd6xCRh1YLwg6zolf9fVFtEyUs/GsgymiASOyxhFtw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.679.0", + "@aws-sdk/credential-provider-http": "3.679.0", + "@aws-sdk/credential-provider-ini": "3.679.0", + "@aws-sdk/credential-provider-process": "3.679.0", + "@aws-sdk/credential-provider-sso": "3.679.0", + "@aws-sdk/credential-provider-web-identity": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/credential-provider-imds": "^3.2.4", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12398,12 +14181,12 @@ } }, "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12411,15 +14194,16 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.654.0.tgz", - "integrity": "sha512-PmQoo8sZ9Q2Ow8OMzK++Z9lI7MsRUG7sNq3E72DVA215dhtTICTDQwGlXH2AAmIp7n+G9LLRds+4wo2ehG4mkg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.679.0.tgz", + "integrity": "sha512-u/p4TV8kQ0zJWDdZD4+vdQFTMhkDEJFws040Gm113VHa/Xo1SYOjbpvqeuFoz6VmM0bLvoOWjxB9MxnSQbwKpQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/property-provider": "^3.1.6", - "@smithy/shared-ini-file-loader": "^3.1.7", - "@smithy/types": "^3.4.2", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12427,12 +14211,12 @@ } }, "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12440,17 +14224,18 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.658.1.tgz", - "integrity": "sha512-YOagVEsZEk9DmgJEBg+4MBXrPcw/tYas0VQ5OVBqC5XHNbi2OBGJqgmjVPesuu393E7W0VQxtJFDS00O1ewQgA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.679.0.tgz", + "integrity": "sha512-SAtWonhi9asxn0ukEbcE81jkyanKgqpsrtskvYPpO9Z9KOednM4Cqt6h1bfcS9zaHjN2zu815Gv8O7WiV+F/DQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.658.1", - "@aws-sdk/token-providers": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@smithy/property-provider": "^3.1.6", - "@smithy/shared-ini-file-loader": "^3.1.7", - "@smithy/types": "^3.4.2", + "@aws-sdk/client-sso": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/token-providers": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12458,12 +14243,12 @@ } }, "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12471,44 +14256,46 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.654.0.tgz", - "integrity": "sha512-6a2g9gMtZToqSu+CusjNK5zvbLJahQ9di7buO3iXgbizXpLXU1rnawCpWxwslMpT5fLgMSKDnKDrr6wdEk7jSw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.679.0.tgz", + "integrity": "sha512-a74tLccVznXCaBefWPSysUcLXYJiSkeUmQGtalNgJ1vGkE36W5l/8czFiiowdWdKWz7+x6xf0w+Kjkjlj42Ung==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/property-provider": "^3.1.6", - "@smithy/types": "^3.4.2", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.654.0" + "@aws-sdk/client-sts": "^3.679.0" } }, "node_modules/@aws-sdk/credential-providers": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.658.1.tgz", - "integrity": "sha512-lfXA6kZS6GHyi/67EbfrKdLoqHR6j7G35eFwaqxyNkfMhNBpAF0eZK3SYiwnzdR9+Wb/enTFawYiFbG5R+dQzA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.658.1", - "@aws-sdk/client-sso": "3.658.1", - "@aws-sdk/client-sts": "3.658.1", - "@aws-sdk/credential-provider-cognito-identity": "3.658.1", - "@aws-sdk/credential-provider-env": "3.654.0", - "@aws-sdk/credential-provider-http": "3.658.1", - "@aws-sdk/credential-provider-ini": "3.658.1", - "@aws-sdk/credential-provider-node": "3.658.1", - "@aws-sdk/credential-provider-process": "3.654.0", - "@aws-sdk/credential-provider-sso": "3.658.1", - "@aws-sdk/credential-provider-web-identity": "3.654.0", - "@aws-sdk/types": "3.654.0", - "@smithy/credential-provider-imds": "^3.2.3", - "@smithy/property-provider": "^3.1.6", - "@smithy/types": "^3.4.2", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.679.0.tgz", + "integrity": "sha512-ZjZZb6OERw/UKlSqcJ24AUJIf/ekDLPZrPpo0kPMV70EQ0GkBiklIZ8qULu9bEcI2I4UIapBKRiXTrK4gA6YHg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.679.0", + "@aws-sdk/client-sso": "3.679.0", + "@aws-sdk/client-sts": "3.679.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/credential-provider-cognito-identity": "3.679.0", + "@aws-sdk/credential-provider-env": "3.679.0", + "@aws-sdk/credential-provider-http": "3.679.0", + "@aws-sdk/credential-provider-ini": "3.679.0", + "@aws-sdk/credential-provider-node": "3.679.0", + "@aws-sdk/credential-provider-process": "3.679.0", + "@aws-sdk/credential-provider-sso": "3.679.0", + "@aws-sdk/credential-provider-web-identity": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/credential-provider-imds": "^3.2.4", + "@smithy/property-provider": "^3.1.7", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12516,9 +14303,9 @@ } }, "node_modules/@aws-sdk/endpoint-cache": { - "version": "3.572.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.572.0.tgz", - "integrity": "sha512-CzuRWMj/xtN9p9eP915nlPmlyniTzke732Ow/M60++gGgB3W+RtZyFftw3TEx+NzNhd1tH54dEcGiWdiNaBz3Q==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.679.0.tgz", + "integrity": "sha512-6+DMgt91IkyO1gXqANH0lOZr/Em7CpzRQOD7Mku1icXDVfpVFnW4DZyUP+6EYeZlHgi2KwVYh5Hp7++oKcYWiw==", "license": "Apache-2.0", "dependencies": { "mnemonist": "0.38.3", @@ -12529,17 +14316,17 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.654.0.tgz", - "integrity": "sha512-/lWkyeLESiK+rAB4+NCw1cVPle9RN7RW/v7B4b8ORiCn1FwZLUPmEiZSYzyh4in5oa3Mri+W/g+KafZDH6LCbA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.679.0.tgz", + "integrity": "sha512-5EpiPhhGgnF+uJR4DzWUk6Lx3pOn9oM6JGXxeHsiynfoBfq7vHMleq+uABHHSQS+y7XzbyZ7x8tXNQlliMwOsg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-arn-parser": "3.568.0", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/protocol-http": "^4.1.3", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-arn-parser": "3.679.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", "@smithy/util-config-provider": "^3.0.0", "tslib": "^2.6.2" }, @@ -12548,15 +14335,15 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12564,13 +14351,13 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12578,16 +14365,16 @@ } }, "node_modules/@aws-sdk/middleware-endpoint-discovery": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.654.0.tgz", - "integrity": "sha512-oHmSZYWsoGSYTjrohu/EFbtthGZOr9qIU8ewDzzhI2ceCEvCy6w7Vd/Ov1pG6C3faNEGAGNZynOmYJBeF2XIOA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.679.0.tgz", + "integrity": "sha512-CawkXT6Bqz6bgLOLY7P+a166lScXabIJOxoBrp3yzt5UORWnUvY7cjRiDMVu6uA9EzAn33m6pT9ULsQtLD71EA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/endpoint-cache": "3.572.0", - "@aws-sdk/types": "3.654.0", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/protocol-http": "^4.1.3", - "@smithy/types": "^3.4.2", + "@aws-sdk/endpoint-cache": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12595,14 +14382,14 @@ } }, "node_modules/@aws-sdk/middleware-endpoint-discovery/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12610,12 +14397,12 @@ } }, "node_modules/@aws-sdk/middleware-endpoint-discovery/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12623,15 +14410,15 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.654.0.tgz", - "integrity": "sha512-S7fSlo8vdjkQTy9DmdF54ZsPwc+aA4z5Y9JVqAlGL9QiZe/fPtRE3GZ8BBbMICjBfMEa12tWjzhDz9su2c6PIA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.679.0.tgz", + "integrity": "sha512-nYsh9PdWrF4EahTRdXHGlNud82RPc508CNGdh1lAGfPU3tNveGfMBX3PcGBtPOse3p9ebNKRWVmUc9eXSjGvHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/protocol-http": "^4.1.3", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12639,20 +14426,21 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.658.1.tgz", - "integrity": "sha512-aBhnDIy8PwhgZRJh5U4l1JfLIPLkBeHBCTwn3XjdvhvisXNCfeINWKYuDDHamM+XKgBNUlLoTxpXI2AvLk5cGw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.679.0.tgz", + "integrity": "sha512-2Nf3rnrcog3GRRdXxc623wkQPH3WXhz8oZ+KHuXBeBKX01zbp7bz22QAZKqw3Oo2lv+LQNEDzIfQYn7leXLZGQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", - "@aws-sdk/types": "3.654.0", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", "@smithy/is-array-buffer": "^3.0.0", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/protocol-http": "^4.1.3", - "@smithy/types": "^3.4.2", - "@smithy/util-middleware": "^3.0.6", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", + "@smithy/util-middleware": "^3.0.7", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -12661,15 +14449,15 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12677,13 +14465,13 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12705,14 +14493,14 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.654.0.tgz", - "integrity": "sha512-rxGgVHWKp8U2ubMv+t+vlIk7QYUaRCHaVpmUlJv0Wv6Q0KeO9a42T9FxHphjOTlCGQOLcjCreL9CF8Qhtb4mdQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.679.0.tgz", + "integrity": "sha512-y176HuQ8JRY3hGX8rQzHDSbCl9P5Ny9l16z4xmaiLo+Qfte7ee4Yr3yaAKd7GFoJ3/Mhud2XZ37fR015MfYl2w==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/protocol-http": "^4.1.3", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12720,14 +14508,14 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.654.0.tgz", - "integrity": "sha512-Duvv5c4DEQ7P6c0YlcvEUW3xCJi6X2uktafNGjILhVDMQwShSF/aFqNv/ikWU/luQcmWHZ9DtDjTR9UKLh6eTA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.679.0.tgz", + "integrity": "sha512-SA1C1D3XgoKTGxyNsOqd016ONpk46xJLWDgJUd00Zb21Ox5wYCoY6aDRKiaMRW+1VfCJdezs1Do3XLyIU9KxyA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12735,13 +14523,13 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.654.0.tgz", - "integrity": "sha512-OQYb+nWlmASyXfRb989pwkJ9EVUMP1CrKn2eyTk3usl20JZmKo2Vjis6I0tLUkMSxMhnBJJlQKyWkRpD/u1FVg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.679.0.tgz", + "integrity": "sha512-0vet8InEj7nvIvGKk+ch7bEF5SyZ7Us9U7YTEgXPrBNStKeRUsgwRm0ijPWWd0a3oz2okaEwXsFl7G/vI0XiEA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12749,14 +14537,14 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.654.0.tgz", - "integrity": "sha512-gKSomgltKVmsT8sC6W7CrADZ4GHwX9epk3GcH6QhebVO3LA9LRbkL3TwOPUXakxxOLLUTYdOZLIOtFf7iH00lg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.679.0.tgz", + "integrity": "sha512-sQoAZFsQiW/LL3DfKMYwBoGjYDEnMbA9WslWN8xneCmBAwKo6IcSksvYs23PP8XMIoBGe2I2J9BSr654XWygTQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/protocol-http": "^4.1.3", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12831,24 +14619,24 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.658.1.tgz", - "integrity": "sha512-UdiwCY4Eg7e1ZbseKvBr83SARukcqS5R9R3bnx4sb3cEK0wFDXWrlhRMgK94jr8IJeskV1ySyxozdb1XOzOU3w==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.679.0.tgz", + "integrity": "sha512-4zcT193F7RkEfqlS6ZdwyNQ0UUp9s66msNXgItugasTbjf7oqfWDas7N+BG8ADB/Ql3wvRUh9I+zdrVkxxw3BQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.658.1", - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-arn-parser": "3.568.0", - "@smithy/core": "^2.4.6", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/protocol-http": "^4.1.3", - "@smithy/signature-v4": "^4.1.4", - "@smithy/smithy-client": "^3.3.5", - "@smithy/types": "^3.4.2", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-arn-parser": "3.679.0", + "@smithy/core": "^2.4.8", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/signature-v4": "^4.2.0", + "@smithy/smithy-client": "^3.4.0", + "@smithy/types": "^3.5.0", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.6", - "@smithy/util-stream": "^3.1.8", + "@smithy/util-middleware": "^3.0.7", + "@smithy/util-stream": "^3.1.9", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -12857,15 +14645,15 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12873,13 +14661,13 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12901,14 +14689,14 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.654.0.tgz", - "integrity": "sha512-k7hkQDJh4hcRJC7YojQ11kc37SY4foryen26Eafj5qYjeG2OGMW0oZTJDl1TVFJ7AcCjqIuMIo0Ho2US/2JspQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.679.0.tgz", + "integrity": "sha512-4GNUxXbs1M71uFHRiCAZtN0/g23ogI9YjMe5isAuYMHXwDB3MhqF7usKf954mBP6tplvN44vYlbJ84faaLrTtg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12916,15 +14704,17 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.654.0.tgz", - "integrity": "sha512-liCcqPAyRsr53cy2tYu4qeH4MMN0eh9g6k56XzI5xd4SghXH5YWh4qOYAlQ8T66ZV4nPMtD8GLtLXGzsH8moFg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.679.0.tgz", + "integrity": "sha512-4hdeXhPDURPqQLPd9jCpUEo9fQITXl3NM3W1MwcJpE0gdUM36uXkQOYsTPeeU/IRCLVjK8Htlh2oCaM9iJrLCA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@aws-sdk/util-endpoints": "3.654.0", - "@smithy/protocol-http": "^4.1.3", - "@smithy/types": "^3.4.2", + "@aws-sdk/core": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@aws-sdk/util-endpoints": "3.679.0", + "@smithy/core": "^2.4.8", + "@smithy/protocol-http": "^4.1.4", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12932,16 +14722,16 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.654.0.tgz", - "integrity": "sha512-ydGOrXJxj3x0sJhsXyTmvJVLAE0xxuTWFJihTl67RtaO7VRNtd82I3P3bwoMMaDn5WpmV5mPo8fEUDRlBm3fPg==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.679.0.tgz", + "integrity": "sha512-Ybx54P8Tg6KKq5ck7uwdjiKif7n/8g1x+V0V9uTjBjRWqaIgiqzXwKWoPj6NCNkE7tJNtqI4JrNxp/3S3HvmRw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/types": "^3.5.0", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.6", + "@smithy/util-middleware": "^3.0.7", "tslib": "^2.6.2" }, "engines": { @@ -12949,14 +14739,14 @@ } }, "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12964,12 +14754,12 @@ } }, "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -12977,17 +14767,17 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.658.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.658.1.tgz", - "integrity": "sha512-gad2cOtmwLuiR096PB1vJsv2+KYwI+eN5D+eLaRLCTD9MMGvVWB5xkIXXGmn99ks4gAgtSpzZp8RD6viBj0gIw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.679.0.tgz", + "integrity": "sha512-g1D57e7YBhgXihCWIRBcTUvKquS3FS27xuA24EynY9teiTIq7vHkASxxDnMMMcmKHnCKLI5pkznjk0PuDJ4uJw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.658.1", - "@aws-sdk/types": "3.654.0", - "@smithy/protocol-http": "^4.1.3", - "@smithy/signature-v4": "^4.1.4", - "@smithy/types": "^3.4.2", + "@aws-sdk/middleware-sdk-s3": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/protocol-http": "^4.1.4", + "@smithy/signature-v4": "^4.2.0", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -12995,31 +14785,31 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.654.0.tgz", - "integrity": "sha512-D8GeJYmvbfWkQDtTB4owmIobSMexZel0fOoetwvgCQ/7L8VPph3Q2bn1TRRIXvH7wdt6DcDxA3tKMHPBkT3GlA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.679.0.tgz", + "integrity": "sha512-1/+Zso/x2jqgutKixYFQEGli0FELTgah6bm7aB+m2FAWH4Hz7+iMUsazg6nSWm714sG9G3h5u42Dmpvi9X6/hA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/property-provider": "^3.1.6", - "@smithy/shared-ini-file-loader": "^3.1.7", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/property-provider": "^3.1.7", + "@smithy/shared-ini-file-loader": "^3.1.8", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.654.0" + "@aws-sdk/client-sso-oidc": "^3.679.0" } }, "node_modules/@aws-sdk/token-providers/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -13027,12 +14817,12 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.654.0.tgz", - "integrity": "sha512-VWvbED3SV+10QJIcmU/PKjsKilsTV16d1I7/on4bvD/jo1qGeMXqLDBSen3ks/tuvXZF/mFc7ZW/W2DiLVtO7A==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.679.0.tgz", + "integrity": "sha512-NwVq8YvInxQdJ47+zz4fH3BRRLC6lL+WLkvr242PVBbUOLRyK/lkwHlfiKUoeVIMyK5NF+up6TRg71t/8Bny6Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.4.2", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -13040,9 +14830,9 @@ } }, "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.568.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz", - "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.679.0.tgz", + "integrity": "sha512-CwzEbU8R8rq9bqUFryO50RFBlkfufV9UfMArHPWlo+lmsC+NlSluHQALoj6Jkq3zf5ppn1CN0c1DDLrEqdQUXg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -13053,14 +14843,14 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.654.0.tgz", - "integrity": "sha512-i902fcBknHs0Irgdpi62+QMvzxE+bczvILXigYrlHL4+PiEnlMVpni5L5W1qCkNZXf8AaMrSBuR1NZAGp6UOUw==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.679.0.tgz", + "integrity": "sha512-YL6s4Y/1zC45OvddvgE139fjeWSKKPgLlnfrvhVL7alNyY9n7beR4uhoDpNrt5mI6sn9qiBF17790o+xLAXjjg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/types": "^3.4.2", - "@smithy/util-endpoints": "^2.1.2", + "@aws-sdk/types": "3.679.0", + "@smithy/types": "^3.5.0", + "@smithy/util-endpoints": "^2.1.3", "tslib": "^2.6.2" }, "engines": { @@ -13098,9 +14888,9 @@ } }, "node_modules/@aws-sdk/util-locate-window": { - "version": "3.568.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", - "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.679.0.tgz", + "integrity": "sha512-zKTd48/ZWrCplkXpYDABI74rQlbR0DNHs8nH95htfSLj9/mWRSwaGptoxwcihaq/77vi/fl2X3y0a1Bo8bt7RA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -13110,26 +14900,27 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.654.0.tgz", - "integrity": "sha512-ykYAJqvnxLt7wfrqya28wuH3/7NdrwzfiFd7NqEVQf7dXVxL5RPEpD7DxjcyQo3DsHvvdUvGZVaQhozycn1pzA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.679.0.tgz", + "integrity": "sha512-CusSm2bTBG1kFypcsqU8COhnYc6zltobsqs3nRrvYqYaOqtMnuE46K4XTWpnzKgwDejgZGOE+WYyprtAxrPvmQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/types": "^3.4.2", + "@aws-sdk/types": "3.679.0", + "@smithy/types": "^3.5.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.654.0.tgz", - "integrity": "sha512-a0ojjdBN6pqv6gB4H/QPPSfhs7mFtlVwnmKCM/QrTaFzN0U810PJ1BST3lBx5sa23I5jWHGaoFY+5q65C3clLQ==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.679.0.tgz", + "integrity": "sha512-Bw4uXZ+NU5ed6TNfo4tBbhBSW+2eQxXYjYBGl5gLUNUpg2pDFToQAP6rXBFiwcG52V2ny5oLGiD82SoYuYkAVg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.654.0", - "@smithy/node-config-provider": "^3.1.7", - "@smithy/types": "^3.4.2", + "@aws-sdk/middleware-user-agent": "3.679.0", + "@aws-sdk/types": "3.679.0", + "@smithy/node-config-provider": "^3.1.8", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -13145,14 +14936,14 @@ } }, "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -13160,12 +14951,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -13173,13 +14964,13 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.654.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.654.0.tgz", - "integrity": "sha512-qA2diK3d/ztC8HUb7NwPKbJRV01NpzTzxFn+L5G3HzJBNeKbjLcprQ/9uG9gp2UEx2Go782FI1ddrMNa0qBICA==", + "version": "3.679.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.679.0.tgz", + "integrity": "sha512-nPmhVZb39ty5bcQ7mAwtjezBcsBqTYZ9A2D9v/lE92KCLdu5RhSkPH7O71ZqbZx1mUSg9fAOxHPiG79U5VlpLQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.4.2", + "@smithy/types": "^3.5.0", "tslib": "^2.6.2" }, "engines": { @@ -13187,13 +14978,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz", + "integrity": "sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -13201,9 +14993,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.0.tgz", + "integrity": "sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==", "dev": true, "license": "MIT", "engines": { @@ -13211,22 +15003,22 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -13242,36 +15034,49 @@ } }, "node_modules/@babel/core/node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.0.tgz", + "integrity": "sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/parser": "^7.26.0", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/core/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -13297,43 +15102,42 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -13352,18 +15156,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", - "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -13384,74 +15188,71 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13461,37 +15262,36 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "license": "MIT", "engines": { @@ -13499,15 +15299,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13517,67 +15317,65 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -13585,9 +15383,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -13595,9 +15393,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -13605,136 +15403,41 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.1.tgz", + "integrity": "sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -13744,15 +15447,14 @@ } }, "node_modules/@babel/parser/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13811,13 +15513,13 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", - "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", + "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13827,13 +15529,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13856,13 +15558,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13872,13 +15574,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13888,13 +15590,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13904,17 +15606,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", - "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -13924,15 +15626,25 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13942,13 +15654,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13958,14 +15670,14 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz", - "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz", + "integrity": "sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-flow": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-flow": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13975,14 +15687,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -13992,15 +15704,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14010,13 +15722,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14026,13 +15738,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14042,15 +15754,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14060,14 +15772,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14077,13 +15789,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14093,13 +15805,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14109,13 +15821,13 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14125,17 +15837,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", - "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.25.2" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14145,28 +15857,27 @@ } }, "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14176,14 +15887,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14193,13 +15904,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -14209,9 +15920,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -14221,246 +15932,149 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.6", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.0.0-beta.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.4.tgz", - "integrity": "sha512-yLvBW5TTAgJwURAUAdZa1vrFTkwXXvk0Kw48LYvgxpyT/IaV8W4OIhxdVztAt5ruDQ/OFUwHpzWqk6TN3EfmWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@commitlint/cli": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.6.1.tgz", - "integrity": "sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/format": "^18.6.1", - "@commitlint/lint": "^18.6.1", - "@commitlint/load": "^18.6.1", - "@commitlint/read": "^18.6.1", - "@commitlint/types": "^18.6.1", - "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "commitlint": "cli.js" - }, - "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/cli/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, "engines": { - "node": ">=10.17.0" + "node": ">=6.9.0" } }, - "node_modules/@commitlint/cli/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.0.tgz", + "integrity": "sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@babel/parser": "^7.26.0", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@commitlint/cli/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, "engines": { - "node": ">=6" + "node": ">=6.9.0" } }, - "node_modules/@commitlint/cli/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/@commitlint/cli/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/cli/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/@babel/types": { + "version": "7.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.4.tgz", + "integrity": "sha512-yLvBW5TTAgJwURAUAdZa1vrFTkwXXvk0Kw48LYvgxpyT/IaV8W4OIhxdVztAt5ruDQ/OFUwHpzWqk6TN3EfmWA==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } }, - "node_modules/@commitlint/cli/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/@commitlint/cli": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.5.0.tgz", + "integrity": "sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ==", "dev": true, "license": "MIT", + "dependencies": { + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, "engines": { - "node": ">=6" + "node": ">=v18" } }, "node_modules/@commitlint/config-conventional": { - "version": "18.6.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.6.3.tgz", - "integrity": "sha512-8ZrRHqF6je+TRaFoJVwszwnOXb/VeYrPmTwPhf0WxpzpGTcYy1p0SPyZ2eRn/sRi/obnWAcobtDAq6+gJQQNhQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.5.0.tgz", + "integrity": "sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^18.6.1", + "@commitlint/types": "^19.5.0", "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { @@ -14468,13 +16082,13 @@ } }, "node_modules/@commitlint/config-validator": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.6.1.tgz", - "integrity": "sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^18.6.1", + "@commitlint/types": "^19.5.0", "ajv": "^8.11.0" }, "engines": { @@ -14482,13 +16096,13 @@ } }, "node_modules/@commitlint/ensure": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.6.1.tgz", - "integrity": "sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^18.6.1", + "@commitlint/types": "^19.5.0", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -14500,9 +16114,9 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz", - "integrity": "sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", "dev": true, "license": "MIT", "engines": { @@ -14510,146 +16124,101 @@ } }, "node_modules/@commitlint/format": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.6.1.tgz", - "integrity": "sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^18.6.1", - "chalk": "^4.1.0" + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/format/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@commitlint/is-ignored": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz", - "integrity": "sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz", + "integrity": "sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^18.6.1", - "semver": "7.6.0" + "@commitlint/types": "^19.5.0", + "semver": "^7.6.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@commitlint/is-ignored/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/@commitlint/lint": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.6.1.tgz", - "integrity": "sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.5.0.tgz", + "integrity": "sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/is-ignored": "^18.6.1", - "@commitlint/parse": "^18.6.1", - "@commitlint/rules": "^18.6.1", - "@commitlint/types": "^18.6.1" + "@commitlint/is-ignored": "^19.5.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.6.1.tgz", - "integrity": "sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.5.0.tgz", + "integrity": "sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^18.6.1", - "@commitlint/execute-rule": "^18.6.1", - "@commitlint/resolve-extends": "^18.6.1", - "@commitlint/types": "^18.6.1", - "chalk": "^4.1.0", - "cosmiconfig": "^8.3.6", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", "cosmiconfig-typescript-loader": "^5.0.0", "lodash.isplainobject": "^4.0.6", "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", - "resolve-from": "^5.0.0" + "lodash.uniq": "^4.5.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@commitlint/message": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.6.1.tgz", - "integrity": "sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", "dev": true, "license": "MIT", "engines": { @@ -14657,13 +16226,13 @@ } }, "node_modules/@commitlint/parse": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.6.1.tgz", - "integrity": "sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^18.6.1", + "@commitlint/types": "^19.5.0", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" }, @@ -14672,220 +16241,190 @@ } }, "node_modules/@commitlint/read": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.6.1.tgz", - "integrity": "sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/top-level": "^18.6.1", - "@commitlint/types": "^18.6.1", - "git-raw-commits": "^2.0.11", - "minimist": "^1.2.6" + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/resolve-extends": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz", - "integrity": "sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^18.6.1", - "@commitlint/types": "^18.6.1", - "import-fresh": "^3.0.0", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" + "resolve-from": "^5.0.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/rules": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.6.1.tgz", - "integrity": "sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.5.0.tgz", + "integrity": "sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/ensure": "^18.6.1", - "@commitlint/message": "^18.6.1", - "@commitlint/to-lines": "^18.6.1", - "@commitlint/types": "^18.6.1", - "execa": "^5.0.0" + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/rules/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@commitlint/to-lines": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", "dev": true, "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=v18" } }, - "node_modules/@commitlint/rules/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/@commitlint/top-level": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "find-up": "^7.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": ">=v18" } }, - "node_modules/@commitlint/rules/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "dev": true, "license": "MIT", + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/rules/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/@commitlint/top-level/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/rules/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/@commitlint/top-level/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/rules/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@commitlint/top-level/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/rules/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@commitlint/rules/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/@commitlint/top-level/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/@commitlint/to-lines": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.6.1.tgz", - "integrity": "sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==", + "node_modules/@commitlint/top-level/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, "license": "MIT", "engines": { - "node": ">=v18" - } - }, - "node_modules/@commitlint/top-level": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.6.1.tgz", - "integrity": "sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" + "node": ">=12.20" }, - "engines": { - "node": ">=v18" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@commitlint/types": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.6.1.tgz", - "integrity": "sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.0" + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" @@ -14897,6 +16436,16 @@ "integrity": "sha512-Xmg2cPmOPQieCLAdf62KtFPU9y7wbQDq1OAzrs/bEQFvhtCPXDiks1CHDE/sTXReRfh/MICVkw/vY6OANHUGiA==", "license": "MIT" }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", @@ -15306,25 +16855,28 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.2.tgz", + "integrity": "sha512-2WwyTYNVaMNUWPZTOJdkax9iqTdirrApgTbk+Qoq5EPX6myqZvG8QGFRgdKmkjKVG6/G/a565vpPauHk0+hpBA==", "dev": true, "license": "MIT", "engines": { @@ -15332,16 +16884,16 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -15349,7 +16901,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -15384,16 +16936,13 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15419,33 +16968,20 @@ "node": "*" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz", + "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@faker-js/faker": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.0.3.tgz", - "integrity": "sha512-lWrrK4QNlFSU+13PL9jMbMKLJYXDFu3tQfayBsMXX7KL/GiQeqfB1CzHkqD5UHBUtPAuPo6XwGbMFNdVMZObRA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.1.0.tgz", + "integrity": "sha512-GJvX9iM9PBtKScJVlXQ0tWpihK3i0pha/XAhzQa1hPK/ILLa1Wq3I63Ij7lRtqTwmdTxRCyrUhLC5Sly9SLbug==", "dev": true, "funding": [ { @@ -15532,9 +17068,9 @@ } }, "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.4.tgz", - "integrity": "sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ==", + "version": "10.5.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.5.tgz", + "integrity": "sha512-LF/UDWmMT0mnobL2UZETwYghV7HYBzNaGj0SAkCYOMy/C3+6sQdbcTksnoFaKR9XIVD78jNXEGfivbB8Zd+cwA==", "dev": true, "license": "MIT", "dependencies": { @@ -15843,14 +17379,14 @@ "license": "0BSD" }, "node_modules/@graphql-tools/apollo-engine-loader": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.1.tgz", - "integrity": "sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.2.tgz", + "integrity": "sha512-HTFoCILMU7u/Y97G5iu2EPSMTW/b/Lx6Ww2emX/WDtubU2A/7RqzBUjrDj/JMPTEblOAPUwJ1XcxtvXgQVaSyQ==", "dev": true, "license": "MIT", "dependencies": { "@ardatan/sync-fetch": "^0.0.1", - "@graphql-tools/utils": "^10.0.13", + "@graphql-tools/utils": "^10.5.5", "@whatwg-node/fetch": "^0.9.0", "tslib": "^2.4.0" }, @@ -15862,9 +17398,9 @@ } }, "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@graphql-tools/utils": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.4.tgz", - "integrity": "sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ==", + "version": "10.5.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.5.tgz", + "integrity": "sha512-LF/UDWmMT0mnobL2UZETwYghV7HYBzNaGj0SAkCYOMy/C3+6sQdbcTksnoFaKR9XIVD78jNXEGfivbB8Zd+cwA==", "dev": true, "license": "MIT", "dependencies": { @@ -15881,13 +17417,13 @@ } }, "node_modules/@graphql-tools/merge": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.7.tgz", - "integrity": "sha512-lbTrIuXIbUSmSumHkPRY1QX0Z8JEtmRhnIrkH7vkfeEmf0kNn/nCWvJwqokm5U7L+a+DA1wlRM4slIlbfXjJBA==", + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.8.tgz", + "integrity": "sha512-RG9NEp4fi0MoFi0te4ahqTMYuavQnXlpEZxxMomdCa6CI5tfekcVm/rsLF5Zt8O4HY+esDt9+4dCL+aOKvG79w==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.5.4", + "@graphql-tools/utils": "^10.5.5", "tslib": "^2.4.0" }, "engines": { @@ -15898,9 +17434,9 @@ } }, "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.4.tgz", - "integrity": "sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ==", + "version": "10.5.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.5.tgz", + "integrity": "sha512-LF/UDWmMT0mnobL2UZETwYghV7HYBzNaGj0SAkCYOMy/C3+6sQdbcTksnoFaKR9XIVD78jNXEGfivbB8Zd+cwA==", "dev": true, "license": "MIT", "dependencies": { @@ -15959,14 +17495,14 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.6.tgz", - "integrity": "sha512-EIJgPRGzpvDFEjVp+RF1zNNYIC36BYuIeZ514jFoJnI6IdxyVyIRDLx/ykgMdaa1pKQerpfdqDnsF4JnZoDHSQ==", + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.7.tgz", + "integrity": "sha512-Cz1o+rf9cd3uMgG+zI9HlM5mPlnHQUlk/UQRZyUlPDfT+944taLaokjvj7AI6GcOFVf4f2D11XthQp+0GY31jQ==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/merge": "^9.0.6", - "@graphql-tools/utils": "^10.5.4", + "@graphql-tools/merge": "^9.0.8", + "@graphql-tools/utils": "^10.5.5", "tslib": "^2.4.0", "value-or-promise": "^1.0.12" }, @@ -15978,9 +17514,9 @@ } }, "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.4.tgz", - "integrity": "sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ==", + "version": "10.5.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.5.5.tgz", + "integrity": "sha512-LF/UDWmMT0mnobL2UZETwYghV7HYBzNaGj0SAkCYOMy/C3+6sQdbcTksnoFaKR9XIVD78jNXEGfivbB8Zd+cwA==", "dev": true, "license": "MIT", "dependencies": { @@ -16011,93 +17547,454 @@ "graphql": "^14.0.0 || ^15.0.0" } }, - "node_modules/@graphql-tools/utils/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true, - "license": "0BSD" - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@hookform/resolvers": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.9.0.tgz", + "integrity": "sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==", + "license": "MIT", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" } }, - "node_modules/@hookform/resolvers": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.9.0.tgz", - "integrity": "sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==", - "license": "MIT", - "peerDependencies": { - "react-hook-form": "^7.0.0" + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.10.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@emnapi/runtime": "^1.2.0" }, "engines": { - "node": "*" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=12.22" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://opencollective.com/libvips" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } }, "node_modules/@inquirer/checkbox": { "version": "1.5.2", @@ -16568,15 +18465,15 @@ "license": "MIT" }, "node_modules/@next/env": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.13.tgz", - "integrity": "sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.16.tgz", + "integrity": "sha512-fLrX5TfJzHCbnZ9YUSnGW63tMV3L4nSfhgOQ0iCcX21Pt+VSTDuaLsSuL8J/2XAiVA5AnzvXDpf6pMs60QxOag==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.13.tgz", - "integrity": "sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.16.tgz", + "integrity": "sha512-noORwKUMkKc96MWjTOwrsUCjky0oFegHbeJ1yEnQBGbMHAaTEIgLZIIfsYF0x3a06PiS+2TXppfifR+O6VWslg==", "dev": true, "license": "MIT", "dependencies": { @@ -16626,9 +18523,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.13.tgz", - "integrity": "sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.16.tgz", + "integrity": "sha512-uFT34QojYkf0+nn6MEZ4gIWQ5aqGF11uIZ1HSxG+cSbj+Mg3+tYm8qXYd3dKN5jqKUm5rBVvf1PBRO/MeQ6rxw==", "cpu": [ "arm64" ], @@ -16642,9 +18539,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.13.tgz", - "integrity": "sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.16.tgz", + "integrity": "sha512-mCecsFkYezem0QiZlg2bau3Xul77VxUD38b/auAjohMA22G9KTJneUYMv78vWoCCFkleFAhY1NIvbyjj1ncG9g==", "cpu": [ "x64" ], @@ -16658,9 +18555,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.13.tgz", - "integrity": "sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.16.tgz", + "integrity": "sha512-yhkNA36+ECTC91KSyZcgWgKrYIyDnXZj8PqtJ+c2pMvj45xf7y/HrgI17hLdrcYamLfVt7pBaJUMxADtPaczHA==", "cpu": [ "arm64" ], @@ -16674,9 +18571,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.13.tgz", - "integrity": "sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.16.tgz", + "integrity": "sha512-X2YSyu5RMys8R2lA0yLMCOCtqFOoLxrq2YbazFvcPOE4i/isubYjkh+JCpRmqYfEuCVltvlo+oGfj/b5T2pKUA==", "cpu": [ "arm64" ], @@ -16690,9 +18587,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.13.tgz", - "integrity": "sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.16.tgz", + "integrity": "sha512-9AGcX7VAkGbc5zTSa+bjQ757tkjr6C/pKS7OK8cX7QEiK6MHIIezBLcQ7gQqbDW2k5yaqba2aDtaBeyyZh1i6Q==", "cpu": [ "x64" ], @@ -16706,9 +18603,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.13.tgz", - "integrity": "sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.16.tgz", + "integrity": "sha512-Klgeagrdun4WWDaOizdbtIIm8khUDQJ/5cRzdpXHfkbY91LxBXeejL4kbZBrpR/nmgRrQvmz4l3OtttNVkz2Sg==", "cpu": [ "x64" ], @@ -16722,9 +18619,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.13.tgz", - "integrity": "sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.16.tgz", + "integrity": "sha512-PwW8A1UC1Y0xIm83G3yFGPiOBftJK4zukTmk7DI1CebyMOoaVpd8aSy7K6GhobzhkjYvqS/QmzcfsWG2Dwizdg==", "cpu": [ "arm64" ], @@ -16738,9 +18635,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.13.tgz", - "integrity": "sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.16.tgz", + "integrity": "sha512-jhPl3nN0oKEshJBNDAo0etGMzv0j3q3VYorTSFqH1o3rwv1MQRdor27u1zhkgsHPNeY1jxcgyx1ZsCkDD1IHgg==", "cpu": [ "ia32" ], @@ -16754,9 +18651,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.13.tgz", - "integrity": "sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.16.tgz", + "integrity": "sha512-OA7NtfxgirCjfqt+02BqxC3MIgM/JaGjw9tOe4fyZgPsqfseNiMPnCRP44Pfs+Gpo9zPN+SXaFsgP6vk8d571A==", "cpu": [ "x64" ], @@ -17110,6 +19007,19 @@ "node": ">=14" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -17133,16 +19043,16 @@ "license": "MIT" }, "node_modules/@radix-ui/react-accordion": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.0.tgz", - "integrity": "sha512-HJOzSX8dQqtsp/3jVxCU3CXEONF7/2jlGAB28oX8TTw1Dz8JYbEI1UcL8355PuLBE41/IRRMvCw7VkiK/jcUOQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.1.tgz", + "integrity": "sha512-bg/l7l5QzUjgsh8kjwDFommzAshnUsuVMV5NM56QVCm+7ZckYdd9P/ExR8xG/Oup0OajVxNLaHJ1tb8mXk+nzQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collapsible": "1.1.0", + "@radix-ui/react-collapsible": "1.1.1", "@radix-ui/react-collection": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-primitive": "2.0.0", @@ -17179,15 +19089,15 @@ } }, "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.1.tgz", - "integrity": "sha512-wmCoJwj7byuVuiLKqDLlX7ClSUU0vd9sdCeM+2Ls+uf13+cpSJoMgwysHq1SGVVkJj5Xn0XWi1NoRCdkMpr6Mw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.2.tgz", + "integrity": "sha512-eGSlLzPhKO+TErxkiGcCZGuvbVMnLA1MTnyBksGOeGRGkxHiiJUujsjmNTdWTm4iHVSRaUao9/4Ur671auMghQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dialog": "1.1.2", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-slot": "1.1.0" }, @@ -17230,12 +19140,12 @@ } }, "node_modules/@radix-ui/react-avatar": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.0.tgz", - "integrity": "sha512-Q/PbuSMk/vyAd/UoIShVGZ7StHHeRFYU7wXmi5GV+8cLXflZAEpHL/F697H1klrzxKXNtZ97vWiC0q3RKUH8UA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.1.tgz", + "integrity": "sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==", "license": "MIT", "dependencies": { - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" @@ -17256,15 +19166,15 @@ } }, "node_modules/@radix-ui/react-checkbox": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.1.tgz", - "integrity": "sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.2.tgz", + "integrity": "sha512-/i0fl686zaJbDQLNKrkCbMyDm6FQMt4jg323k7HuqitoANm9sE23Ql8yOK3Wusk34HSLKDChhMux05FnP6KUkw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-previous": "1.1.0", @@ -17286,16 +19196,16 @@ } }, "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.0.tgz", - "integrity": "sha512-zQY7Epa8sTL0mq4ajSJpjgn2YmCgyrG7RsQgLp3C0LQVkG7+Tf6Pv1CeNWZLyqMjhdPkBa5Lx7wYBeSu7uCSTA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.1.tgz", + "integrity": "sha512-1///SnrfQHJEofLokyczERxQbWfCGQlQ2XsCZMucVs6it+lq9iw4vXy+uDn1edlb58cOZOWSldnfPAYcT4O/Yg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" @@ -17341,6 +19251,21 @@ } } }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", @@ -17357,9 +19282,9 @@ } }, "node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -17372,25 +19297,25 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", - "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", + "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "react-remove-scroll": "2.6.0" }, "peerDependencies": { "@types/react": "*", @@ -17420,9 +19345,9 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", - "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", @@ -17447,16 +19372,16 @@ } }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.1.tgz", - "integrity": "sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.2.tgz", + "integrity": "sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-menu": "2.1.1", + "@radix-ui/react-menu": "2.1.2", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-controllable-state": "1.1.0" }, @@ -17476,9 +19401,9 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz", - "integrity": "sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -17557,29 +19482,29 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", - "integrity": "sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.2.tgz", + "integrity": "sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-collection": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-roving-focus": "1.1.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-callback-ref": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "react-remove-scroll": "2.6.0" }, "peerDependencies": { "@types/react": "*", @@ -17612,26 +19537,26 @@ } }, "node_modules/@radix-ui/react-popover": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.1.tgz", - "integrity": "sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.2.tgz", + "integrity": "sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "react-remove-scroll": "2.6.0" }, "peerDependencies": { "@types/react": "*", @@ -17680,10 +19605,25 @@ } } }, + "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", - "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.0", @@ -17705,9 +19645,9 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", - "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.0", @@ -17775,6 +19715,21 @@ } } }, + "node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", @@ -17806,6 +19761,21 @@ } } }, + "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-direction": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", @@ -17822,17 +19792,17 @@ } }, "node_modules/@radix-ui/react-scroll-area": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.1.0.tgz", - "integrity": "sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.0.tgz", + "integrity": "sha512-q2jMBdsJ9zB7QG6ngQNzNwlvxLQqONyL58QbEGwuyRZZb/ARQwk3uQVbCF7GvQVOtV6EU/pDxAw3zRzJZI3rpQ==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.0", "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" @@ -17868,23 +19838,23 @@ } }, "node_modules/@radix-ui/react-select": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.1.tgz", - "integrity": "sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.2.tgz", + "integrity": "sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.0", "@radix-ui/primitive": "1.1.0", "@radix-ui/react-collection": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-portal": "1.1.2", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-callback-ref": "1.1.0", @@ -17893,7 +19863,7 @@ "@radix-ui/react-use-previous": "1.1.0", "@radix-ui/react-visually-hidden": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "react-remove-scroll": "2.6.0" }, "peerDependencies": { "@types/react": "*", @@ -18139,14 +20109,14 @@ } }, "node_modules/@radix-ui/react-switch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.0.tgz", - "integrity": "sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.1.tgz", + "integrity": "sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-previous": "1.1.0", @@ -18168,16 +20138,16 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.0.tgz", - "integrity": "sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", + "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-roving-focus": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0" @@ -18213,18 +20183,18 @@ } }, "node_modules/@radix-ui/react-toast": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.1.tgz", - "integrity": "sha512-5trl7piMXcZiCq7MW6r8YYmu0bK5qDpTWz+FdEPdKyft2UixkspheYbjbrLXVN5NGKHFbOP7lm8eD0biiSqZqg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.2.tgz", + "integrity": "sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-collection": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", @@ -18247,19 +20217,19 @@ } }, "node_modules/@radix-ui/react-tooltip": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz", - "integrity": "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.3.tgz", + "integrity": "sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", @@ -18447,12 +20417,12 @@ "license": "MIT" }, "node_modules/@smithy/abort-controller": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.5.tgz", - "integrity": "sha512-DhNPnqTqPoG8aZ5dWkFOgsuY+i0GQ3CI6hMmvCoduNsnU9gUZWZBwGfDQsTTB7NvFPkom1df7jMIJWU90kuXXg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.6.tgz", + "integrity": "sha512-0XuhuHQlEqbNQZp7QxxrFTdVWdwxch4vjxYgfInF91hZFkPxf9QDrdQka0KfxFMPqLNzSw0b95uGTrLliQUavQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18460,9 +20430,9 @@ } }, "node_modules/@smithy/chunked-blob-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-3.0.0.tgz", - "integrity": "sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-4.0.0.tgz", + "integrity": "sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -18470,9 +20440,9 @@ } }, "node_modules/@smithy/chunked-blob-reader-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.0.tgz", - "integrity": "sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.1.tgz", + "integrity": "sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -18481,15 +20451,15 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.9.tgz", - "integrity": "sha512-5d9oBf40qC7n2xUoHmntKLdqsyTMMo/r49+eqSIjJ73eDfEtljAxEhzIQ3bkgXJtR3xiv7YzMT/3FF3ORkjWdg==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.10.tgz", + "integrity": "sha512-Uh0Sz9gdUuz538nvkPiyv1DZRX9+D15EKDtnQP5rYVAzM/dnYk3P8cg73jcxyOitPgT3mE3OVj7ky7sibzHWkw==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/types": "^3.6.0", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.7", + "@smithy/util-middleware": "^3.0.8", "tslib": "^2.6.2" }, "engines": { @@ -18497,14 +20467,14 @@ } }, "node_modules/@smithy/config-resolver/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18512,12 +20482,12 @@ } }, "node_modules/@smithy/config-resolver/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18525,19 +20495,17 @@ } }, "node_modules/@smithy/core": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.4.7.tgz", - "integrity": "sha512-goqMjX+IoVEnHZjYuzu8xwoZjoteMiLXsPHuXPBkWsGwu0o9c3nTjqkUlP1Ez/V8E501aOU7CJ3INk8mQcW2gw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.1.tgz", + "integrity": "sha512-DujtuDA7BGEKExJ05W5OdxCoyekcKT3Rhg1ZGeiUWaz2BJIWXjZmsG/DIP4W48GHno7AQwRsaCb8NcBgH3QZpg==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-endpoint": "^3.1.4", - "@smithy/middleware-retry": "^3.0.22", - "@smithy/middleware-serde": "^3.0.7", - "@smithy/protocol-http": "^4.1.4", - "@smithy/smithy-client": "^3.3.6", - "@smithy/types": "^3.5.0", + "@smithy/middleware-serde": "^3.0.8", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-middleware": "^3.0.7", + "@smithy/util-middleware": "^3.0.8", + "@smithy/util-stream": "^3.2.1", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -18559,15 +20527,15 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.4.tgz", - "integrity": "sha512-S9bb0EIokfYEuar4kEbLta+ivlKCWOCFsLZuilkNy9i0uEUEHSi47IFLPaxqqCl+0ftKmcOTHayY5nQhAuq7+w==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.5.tgz", + "integrity": "sha512-4FTQGAsuwqTzVMmiRVTn0RR9GrbRfkP0wfu/tXWVHd2LgNpTY0uglQpIScXK4NaEyXbB3JmZt8gfVqO50lP8wg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/property-provider": "^3.1.7", - "@smithy/types": "^3.5.0", - "@smithy/url-parser": "^3.0.7", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/property-provider": "^3.1.8", + "@smithy/types": "^3.6.0", + "@smithy/url-parser": "^3.0.8", "tslib": "^2.6.2" }, "engines": { @@ -18575,14 +20543,14 @@ } }, "node_modules/@smithy/credential-provider-imds/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18590,12 +20558,12 @@ } }, "node_modules/@smithy/credential-provider-imds/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18603,13 +20571,13 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.6.tgz", - "integrity": "sha512-SBiOYPBH+5wOyPS7lfI150ePfGLhnp/eTu5RnV9xvhGvRiKfnl6HzRK9wehBph+il8FxS9KTeadx7Rcmf1GLPQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.7.tgz", + "integrity": "sha512-kVSXScIiRN7q+s1x7BrQtZ1Aa9hvvP9FeCqCdBxv37GimIHgBCOnZ5Ip80HLt0DhnAKpiobFdGqTFgbaJNrazA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-hex-encoding": "^3.0.0", "tslib": "^2.6.2" } @@ -18627,13 +20595,13 @@ } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.10.tgz", - "integrity": "sha512-1i9aMY6Pl/SmA6NjvidxnfBLHMPzhKu2BP148pEt5VwhMdmXn36PE2kWKGa9Hj8b0XGtCTRucpCncylevCtI7g==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.11.tgz", + "integrity": "sha512-Pd1Wnq3CQ/v2SxRifDUihvpXzirJYbbtXfEnnLV/z0OGCTx/btVX74P86IgrZkjOydOASBGXdPpupYQI+iO/6A==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.9", - "@smithy/types": "^3.5.0", + "@smithy/eventstream-serde-universal": "^3.0.10", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18641,12 +20609,12 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.7.tgz", - "integrity": "sha512-eVzhGQBPEqXXYHvIUku0jMTxd4gDvenRzUQPTmKVWdRvp9JUCKrbAXGQRYiGxUYq9+cqQckRm0wq3kTWnNtDhw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.8.tgz", + "integrity": "sha512-zkFIG2i1BLbfoGQnf1qEeMqX0h5qAznzaZmMVNnvPZz9J5AWBPkOMckZWPedGUPcVITacwIdQXoPcdIQq5FRcg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18654,13 +20622,13 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.9.tgz", - "integrity": "sha512-JE0Guqvt0xsmfQ5y1EI342/qtJqznBv8cJqkHZV10PwC8GWGU5KNgFbQnsVCcX+xF+qIqwwfRmeWoJCjuOLmng==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.10.tgz", + "integrity": "sha512-hjpU1tIsJ9qpcoZq9zGHBJPBOeBGYt+n8vfhDwnITPhEre6APrvqq/y3XMDEGUT2cWQ4ramNqBPRbx3qn55rhw==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.9", - "@smithy/types": "^3.5.0", + "@smithy/eventstream-serde-universal": "^3.0.10", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18668,13 +20636,13 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.9.tgz", - "integrity": "sha512-bydfgSisfepCufw9kCEnWRxqxJFzX/o8ysXWv+W9F2FIyiaEwZ/D8bBKINbh4ONz3i05QJ1xE7A5OKYvgJsXaw==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.10.tgz", + "integrity": "sha512-ewG1GHbbqsFZ4asaq40KmxCmXO+AFSM1b+DcO2C03dyJj/ZH71CiTg853FSE/3SHK9q3jiYQIFjlGSwfxQ9kww==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-codec": "^3.1.6", - "@smithy/types": "^3.5.0", + "@smithy/eventstream-codec": "^3.1.7", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18695,25 +20663,25 @@ } }, "node_modules/@smithy/hash-blob-browser": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.6.tgz", - "integrity": "sha512-BKNcMIaeZ9lB67sgo88iCF4YB35KT8X2dNJ8DqrtZNTgN6tUDYBKThzfGtos/mnZkGkW91AYHisESHmSiYQmKw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.7.tgz", + "integrity": "sha512-4yNlxVNJifPM5ThaA5HKnHkn7JhctFUHvcaz6YXxHlYOSIrzI6VKQPTN8Gs1iN5nqq9iFcwIR9THqchUCouIfg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/chunked-blob-reader": "^3.0.0", - "@smithy/chunked-blob-reader-native": "^3.0.0", - "@smithy/types": "^3.5.0", + "@smithy/chunked-blob-reader": "^4.0.0", + "@smithy/chunked-blob-reader-native": "^3.0.1", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-node": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.7.tgz", - "integrity": "sha512-SAGHN+QkrwcHFjfWzs/czX94ZEjPJ0CrWJS3M43WswDXVEuP4AVy9gJ3+AF6JQHZD13bojmuf/Ap/ItDeZ+Qfw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.8.tgz", + "integrity": "sha512-tlNQYbfpWXHimHqrvgo14DrMAgUBua/cNoz9fMYcDmYej7MAmUcjav/QKQbFc3NrcPxeJ7QClER4tWZmfwoPng==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -18736,13 +20704,13 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.6.tgz", - "integrity": "sha512-sFSSt7cmCpFWZPfVx7k80Bgb1K2VJ27VmMxH8X+dDhp7Wv8IBgID4K2VK5ehMJROF8hQgcj4WywnkHIwX/xlwQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.7.tgz", + "integrity": "sha512-xMAsvJ3hLG63lsBVi1Hl6BBSfhd8/Qnp8fC06kjOpJvyyCEXdwHITa5Kvdsk6gaAXLhbZMhQMIGvgUbfnJDP6Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -18765,12 +20733,12 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.7.tgz", - "integrity": "sha512-Bq00GsAhHeYSuZX8Kpu4sbI9agH2BNYnqUmmbTGWOhki9NVsWn2jFr896vvoTMH8KAjNX/ErC/8t5QHuEXG+IA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.8.tgz", + "integrity": "sha512-7Qynk6NWtTQhnGTTZwks++nJhQ1O54Mzi7fz4PqZOiYXb4Z1Flpb2yRvdALoggTS8xjtohWUM+RygOtB30YL3Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" } }, @@ -18787,13 +20755,13 @@ } }, "node_modules/@smithy/md5-js": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.7.tgz", - "integrity": "sha512-+wco9IN9uOW4tNGkZIqTR6IXyfO7Z8A+IOq82QCRn/f/xcmt7H1fXwmQVbfDSvbeFwfNnhv7s+u0G9PzPG6o2w==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.8.tgz", + "integrity": "sha512-LwApfTK0OJ/tCyNUXqnWCKoE2b4rDSr4BJlDAVCkiWYeHESr+y+d5zlAanuLW6fnitVJRD/7d9/kN/ZM9Su4mA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" } @@ -18813,13 +20781,13 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.9.tgz", - "integrity": "sha512-t97PidoGElF9hTtLCrof32wfWMqC5g2SEJNxaVH3NjlatuNGsdxXRYO/t+RPnxA15RpYiS0f+zG7FuE2DeGgjA==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.10.tgz", + "integrity": "sha512-T4dIdCs1d/+/qMpwhJ1DzOhxCZjZHbHazEPJWdB4GDi2HjIZllVzeBEcdJUN0fomV8DURsgOyrbEUzg3vzTaOg==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.4", - "@smithy/types": "^3.5.0", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18827,17 +20795,18 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.1.4.tgz", - "integrity": "sha512-/ChcVHekAyzUbyPRI8CzPPLj6y8QRAfJngWcLMgsWxKVzw/RzBV69mSOzJYDD3pRwushA1+5tHtPF8fjmzBnrQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.1.tgz", + "integrity": "sha512-wWO3xYmFm6WRW8VsEJ5oU6h7aosFXfszlz3Dj176pTij6o21oZnzkCLzShfmRaaCHDkBXWBdO0c4sQAvLFP6zA==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^3.0.7", - "@smithy/node-config-provider": "^3.1.8", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", - "@smithy/url-parser": "^3.0.7", - "@smithy/util-middleware": "^3.0.7", + "@smithy/core": "^2.5.1", + "@smithy/middleware-serde": "^3.0.8", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", + "@smithy/url-parser": "^3.0.8", + "@smithy/util-middleware": "^3.0.8", "tslib": "^2.6.2" }, "engines": { @@ -18845,14 +20814,14 @@ } }, "node_modules/@smithy/middleware-endpoint/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18860,12 +20829,12 @@ } }, "node_modules/@smithy/middleware-endpoint/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18873,18 +20842,18 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.22", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.22.tgz", - "integrity": "sha512-svEN7O2Tf7BoaBkPzX/8AE2Bv7p16d9/ulFAD1Gmn5g19iMqNk1WIkMxAY7SpB9/tVtUwKx0NaIsBRl88gumZA==", + "version": "3.0.25", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.25.tgz", + "integrity": "sha512-m1F70cPaMBML4HiTgCw5I+jFNtjgz5z5UdGnUbG37vw6kh4UvizFYjqJGHvicfgKMkDL6mXwyPp5mhZg02g5sg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/protocol-http": "^4.1.4", - "@smithy/service-error-classification": "^3.0.7", - "@smithy/smithy-client": "^3.3.6", - "@smithy/types": "^3.5.0", - "@smithy/util-middleware": "^3.0.7", - "@smithy/util-retry": "^3.0.7", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/protocol-http": "^4.1.5", + "@smithy/service-error-classification": "^3.0.8", + "@smithy/smithy-client": "^3.4.2", + "@smithy/types": "^3.6.0", + "@smithy/util-middleware": "^3.0.8", + "@smithy/util-retry": "^3.0.8", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -18893,14 +20862,14 @@ } }, "node_modules/@smithy/middleware-retry/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18908,12 +20877,12 @@ } }, "node_modules/@smithy/middleware-retry/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18921,12 +20890,12 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.7.tgz", - "integrity": "sha512-VytaagsQqtH2OugzVTq4qvjkLNbWehHfGcGr0JLJmlDRrNCeZoWkWsSOw1nhS/4hyUUWF/TLGGml4X/OnEep5g==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.8.tgz", + "integrity": "sha512-Xg2jK9Wc/1g/MBMP/EUn2DLspN8LNt+GMe7cgF+Ty3vl+Zvu+VeZU5nmhveU+H8pxyTsjrAkci8NqY6OuvZnjA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18934,12 +20903,12 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.7.tgz", - "integrity": "sha512-EyTbMCdqS1DoeQsO4gI7z2Gzq1MoRFAeS8GkFYIwbedB7Lp5zlLHJdg+56tllIIG5Hnf9ZWX48YKSHlsKvugGA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.8.tgz", + "integrity": "sha512-d7ZuwvYgp1+3682Nx0MD3D/HtkmZd49N3JUndYWQXfRZrYEnCWYc8BHcNmVsPAp9gKvlurdg/mubE6b/rPS9MA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -18990,15 +20959,15 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.4.tgz", - "integrity": "sha512-49reY3+JgLMFNm7uTAKBWiKCA6XSvkNp9FqhVmusm2jpVnHORYFeFZ704LShtqWfjZW/nhX+7Iexyb6zQfXYIQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.2.5.tgz", + "integrity": "sha512-PkOwPNeKdvX/jCpn0A8n9/TyoxjGZB8WVoJmm9YzsnAgggTj4CrjpRHlTQw7dlLZ320n1mY1y+nTRUDViKi/3w==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.5", - "@smithy/protocol-http": "^4.1.4", - "@smithy/querystring-builder": "^3.0.7", - "@smithy/types": "^3.5.0", + "@smithy/abort-controller": "^3.1.6", + "@smithy/protocol-http": "^4.1.5", + "@smithy/querystring-builder": "^3.0.8", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19006,12 +20975,12 @@ } }, "node_modules/@smithy/property-provider": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.7.tgz", - "integrity": "sha512-QfzLi1GPMisY7bAM5hOUqBdGYnY5S2JAlr201pghksrQv139f8iiiMalXtjczIP5f6owxFn3MINLNUNvUkgtPw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.8.tgz", + "integrity": "sha512-ukNUyo6rHmusG64lmkjFeXemwYuKge1BJ8CtpVKmrxQxc6rhUX0vebcptFA9MmrGsnLhwnnqeH83VTU9hwOpjA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19019,12 +20988,12 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.4.tgz", - "integrity": "sha512-MlWK8eqj0JlpZBnWmjQLqmFp71Ug00P+m72/1xQB3YByXD4zZ+y9N4hYrR0EDmrUCZIkyATWHOXFgtavwGDTzQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.5.tgz", + "integrity": "sha512-hsjtwpIemmCkm3ZV5fd/T0bPIugW1gJXwZ/hpuVubt2hEUApIoUTrf6qIdh9MAWlw0vjMrA1ztJLAwtNaZogvg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19032,12 +21001,12 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.7.tgz", - "integrity": "sha512-65RXGZZ20rzqqxTsChdqSpbhA6tdt5IFNgG6o7e1lnPVLCe6TNWQq4rTl4N87hTDD8mV4IxJJnvyE7brbnRkQw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.8.tgz", + "integrity": "sha512-btYxGVqFUARbUrN6VhL9c3dnSviIwBYD9Rz1jHuN1hgh28Fpv2xjU1HeCeDJX68xctz7r4l1PBnFhGg1WBBPuA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "@smithy/util-uri-escape": "^3.0.0", "tslib": "^2.6.2" }, @@ -19046,12 +21015,12 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.7.tgz", - "integrity": "sha512-Fouw4KJVWqqUVIu1gZW8BH2HakwLz6dvdrAhXeXfeymOBrZw+hcqaWs+cS1AZPVp4nlbeIujYrKA921ZW2WMPA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.8.tgz", + "integrity": "sha512-BtEk3FG7Ks64GAbt+JnKqwuobJNX8VmFLBsKIwWr1D60T426fGrV2L3YS5siOcUhhp6/Y6yhBw1PSPxA5p7qGg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19059,12 +21028,12 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.7.tgz", - "integrity": "sha512-91PRkTfiBf9hxkIchhRKJfl1rsplRDyBnmyFca3y0Z3x/q0JJN480S83LBd8R6sBCkm2bBbqw2FHp0Mbh+ecSA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.8.tgz", + "integrity": "sha512-uEC/kCCFto83bz5ZzapcrgGqHOh/0r69sZ2ZuHlgoD5kYgXJEThCoTuw/y1Ub3cE7aaKdznb+jD9xRPIfIwD7g==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0" + "@smithy/types": "^3.6.0" }, "engines": { "node": ">=16.0.0" @@ -19098,16 +21067,16 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.0.tgz", - "integrity": "sha512-LafbclHNKnsorMgUkKm7Tk7oJ7xizsZ1VwqhGKqoCIrXh4fqDDp73fK99HOEEgcsQbtemmeY/BPv0vTVYYUNEQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.1.tgz", + "integrity": "sha512-NsV1jF4EvmO5wqmaSzlnTVetemBS3FZHdyc5CExbDljcyJCEEkJr8ANu2JvtNbVg/9MvKAWV44kTrGS+Pi4INg==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", - "@smithy/protocol-http": "^4.1.4", - "@smithy/types": "^3.5.0", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", "@smithy/util-hex-encoding": "^3.0.0", - "@smithy/util-middleware": "^3.0.7", + "@smithy/util-middleware": "^3.0.8", "@smithy/util-uri-escape": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -19142,16 +21111,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.3.6.tgz", - "integrity": "sha512-qdH+mvDHgq1ss6mocyIl2/VjlWXew7pGwZQydwYJczEc22HZyX3k8yVPV9aZsbYbssHPvMDRA5rfBDrjQUbIIw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.2.tgz", + "integrity": "sha512-dxw1BDxJiY9/zI3cBqfVrInij6ShjpV4fmGHesGZZUiP9OSE/EVfdwdRz0PgvkEvrZHpsj2htRaHJfftE8giBA==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-endpoint": "^3.1.4", - "@smithy/middleware-stack": "^3.0.7", - "@smithy/protocol-http": "^4.1.4", - "@smithy/types": "^3.5.0", - "@smithy/util-stream": "^3.1.9", + "@smithy/core": "^2.5.1", + "@smithy/middleware-endpoint": "^3.2.1", + "@smithy/middleware-stack": "^3.0.8", + "@smithy/protocol-http": "^4.1.5", + "@smithy/types": "^3.6.0", + "@smithy/util-stream": "^3.2.1", "tslib": "^2.6.2" }, "engines": { @@ -19159,9 +21129,9 @@ } }, "node_modules/@smithy/types": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.5.0.tgz", - "integrity": "sha512-QN0twHNfe8mNJdH9unwsCK13GURU7oEAZqkBI+rsvpv1jrmserO+WnLE7jidR9W/1dxwZ0u/CB01mV2Gms/K2Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.6.0.tgz", + "integrity": "sha512-8VXK/KzOHefoC65yRgCn5vG1cysPJjHnOVt9d0ybFQSmJgQj152vMn4EkYhGuaOmnnZvCPav/KnYyE6/KsNZ2w==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -19171,13 +21141,13 @@ } }, "node_modules/@smithy/url-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.7.tgz", - "integrity": "sha512-70UbSSR8J97c1rHZOWhl+VKiZDqHWxs/iW8ZHrHp5fCCPLSBE7GcUlUvKSle3Ca+J9LLbYCj/A79BxztBvAfpA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.8.tgz", + "integrity": "sha512-4FdOhwpTW7jtSFWm7SpfLGKIBC9ZaTKG5nBF0wK24aoQKQyDIKUw3+KFWCQ9maMzrgTJIuOvOnsV2lLGW5XjTg==", "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^3.0.7", - "@smithy/types": "^3.5.0", + "@smithy/querystring-parser": "^3.0.8", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" } }, @@ -19255,14 +21225,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.22", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.22.tgz", - "integrity": "sha512-WKzUxNsOun5ETwEOrvooXeI1mZ8tjDTOcN4oruELWHhEYDgQYWwxZupURVyovcv+h5DyQT/DzK5nm4ZoR/Tw5Q==", + "version": "3.0.25", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.25.tgz", + "integrity": "sha512-fRw7zymjIDt6XxIsLwfJfYUfbGoO9CmCJk6rjJ/X5cd20+d2Is7xjU5Kt/AiDt6hX8DAf5dztmfP5O82gR9emA==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/smithy-client": "^3.3.6", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/smithy-client": "^3.4.2", + "@smithy/types": "^3.6.0", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -19271,17 +21241,17 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.22", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.22.tgz", - "integrity": "sha512-hUsciOmAq8fsGwqg4+pJfNRmrhfqMH4Y9UeGcgeUl88kPAoYANFATJqCND+O4nUvwp5TzsYwGpqpcBKyA8LUUg==", + "version": "3.0.25", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.25.tgz", + "integrity": "sha512-H3BSZdBDiVZGzt8TG51Pd2FvFO0PAx/A0mJ0EH8a13KJ6iUCdYnw/Dk/MdC1kTd0eUuUGisDFaxXVXo4HHFL1g==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^3.0.9", - "@smithy/credential-provider-imds": "^3.2.4", - "@smithy/node-config-provider": "^3.1.8", - "@smithy/property-provider": "^3.1.7", - "@smithy/smithy-client": "^3.3.6", - "@smithy/types": "^3.5.0", + "@smithy/config-resolver": "^3.0.10", + "@smithy/credential-provider-imds": "^3.2.5", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/property-provider": "^3.1.8", + "@smithy/smithy-client": "^3.4.2", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19289,14 +21259,14 @@ } }, "node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19304,12 +21274,12 @@ } }, "node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19317,13 +21287,13 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.3.tgz", - "integrity": "sha512-34eACeKov6jZdHqS5hxBMJ4KyWKztTMulhuQ2UdOoP6vVxMLrOKUqIXAwJe/wiWMhXhydLW664B02CNpQBQ4Aw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.4.tgz", + "integrity": "sha512-kPt8j4emm7rdMWQyL0F89o92q10gvCUa6sBkBtDJ7nV2+P7wpXczzOfoDJ49CKXe5CCqb8dc1W+ZdLlrKzSAnQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/node-config-provider": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19331,14 +21301,14 @@ } }, "node_modules/@smithy/util-endpoints/node_modules/@smithy/node-config-provider": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.8.tgz", - "integrity": "sha512-E0rU0DglpeJn5ge64mk8wTGEXcQwmpUTY5Zr7IzTpDLmHKiIamINERNZYrPQjg58Ck236sEKSwRSHA4CwshU6Q==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.9.tgz", + "integrity": "sha512-qRHoah49QJ71eemjuS/WhUXB+mpNtwHRWQr77J/m40ewBVVwvo52kYAmb7iuaECgGTTcYxHS4Wmewfwy++ueew==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.7", - "@smithy/shared-ini-file-loader": "^3.1.8", - "@smithy/types": "^3.5.0", + "@smithy/property-provider": "^3.1.8", + "@smithy/shared-ini-file-loader": "^3.1.9", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19346,12 +21316,12 @@ } }, "node_modules/@smithy/util-endpoints/node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.8.tgz", - "integrity": "sha512-0NHdQiSkeGl0ICQKcJQ2lCOKH23Nb0EaAa7RDRId6ZqwXkw4LJyIyZ0t3iusD4bnKYDPLGy2/5e2rfUhrt0Acw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.9.tgz", + "integrity": "sha512-/+OsJRNtoRbtsX0UpSgWVxFZLsJHo/4sTr+kBg/J78sr7iC+tHeOvOJrS5hCpVQ6sWBbhWLp1UNiuMyZhE6pmA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19371,12 +21341,12 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.7.tgz", - "integrity": "sha512-OVA6fv/3o7TMJTpTgOi1H5OTwnuUa8hzRzhSFDtZyNxi6OZ70L/FHattSmhE212I7b6WSOJAAmbYnvcjTHOJCA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.8.tgz", + "integrity": "sha512-p7iYAPaQjoeM+AKABpYWeDdtwQNxasr4aXQEA/OmbOaug9V0odRVDy3Wx4ci8soljE/JXQo+abV0qZpW8NX0yA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.5.0", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19384,13 +21354,13 @@ } }, "node_modules/@smithy/util-retry": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.7.tgz", - "integrity": "sha512-nh1ZO1vTeo2YX1plFPSe/OXaHkLAHza5jpokNiiKX2M5YpNUv6RxGJZhpfmiR4jSvVHCjIDmILjrxKmP+/Ghug==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.8.tgz", + "integrity": "sha512-TCEhLnY581YJ+g1x0hapPz13JFqzmh/pMWL2KEFASC51qCfw3+Y47MrTmea4bUE5vsdxQ4F6/KFbUeSz22Q1ow==", "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^3.0.7", - "@smithy/types": "^3.5.0", + "@smithy/service-error-classification": "^3.0.8", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19398,14 +21368,14 @@ } }, "node_modules/@smithy/util-stream": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.1.9.tgz", - "integrity": "sha512-7YAR0Ub3MwTMjDfjnup4qa6W8gygZMxikBhFMPESi6ASsl/rZJhwLpF/0k9TuezScCojsM0FryGdz4LZtjKPPQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.2.1.tgz", + "integrity": "sha512-R3ufuzJRxSJbE58K9AEnL/uSZyVdHzud9wLS8tIbXclxKzoe09CRohj2xV8wpx5tj7ZbiJaKYcutMm1eYgz/0A==", "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^3.2.9", - "@smithy/node-http-handler": "^3.2.4", - "@smithy/types": "^3.5.0", + "@smithy/fetch-http-handler": "^4.0.0", + "@smithy/node-http-handler": "^3.2.5", + "@smithy/types": "^3.6.0", "@smithy/util-base64": "^3.0.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-hex-encoding": "^3.0.0", @@ -19416,6 +21386,19 @@ "node": ">=16.0.0" } }, + "node_modules/@smithy/util-stream/node_modules/@smithy/fetch-http-handler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.0.0.tgz", + "integrity": "sha512-MLb1f5tbBO2X6K4lMEKJvxeLooyg7guq48C2zKr4qM7F2Gpkz4dc+hdSgu77pCJ76jVqFBjZczHYAs6dp15N+g==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^4.1.5", + "@smithy/querystring-builder": "^3.0.8", + "@smithy/types": "^3.6.0", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, "node_modules/@smithy/util-stream/node_modules/@smithy/util-hex-encoding": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz", @@ -19492,13 +21475,13 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.6.tgz", - "integrity": "sha512-xs/KAwWOeCklq8aMlnpk25LgxEYHKOEodfjfKclDMLcBJEVEKzDLxZxBQyztcuPJ7F54213NJS8PxoiHNMdItQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.7.tgz", + "integrity": "sha512-d5yGlQtmN/z5eoTtIYgkvOw27US2Ous4VycnXatyoImIF9tzlcpnKqQ/V7qhvJmb2p6xZne1NopCLakdTnkBBQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.5", - "@smithy/types": "^3.5.0", + "@smithy/abort-controller": "^3.1.6", + "@smithy/types": "^3.6.0", "tslib": "^2.6.2" }, "engines": { @@ -19538,9 +21521,9 @@ } }, "node_modules/@tiptap/core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.8.0.tgz", - "integrity": "sha512-xsqDI4BNzYRWRtBq7+/38ThhqEr7uG9Njip1x+9/wgR3vWPBFnBkYJTz6jSxS35NRE6BSnERm4/B/vrLuY1Hdw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.9.1.tgz", + "integrity": "sha512-tifnLL/ARzQ6/FGEJjVwj9UT3v+pENdWHdk9x6F3X0mB1y0SeCjV21wpFLYESzwNdBPAj8NMp8Behv7dBnhIfw==", "license": "MIT", "funding": { "type": "github", @@ -19551,9 +21534,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.8.0.tgz", - "integrity": "sha512-m3CKrOIvV7fY1Ak2gYf5LkKiz6AHxHpg6wxfVaJvdBqXgLyVtHo552N+A4oSHOSRbB4AG9EBQ2NeBM8cdEQ4MA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.9.1.tgz", + "integrity": "sha512-Y0jZxc/pdkvcsftmEZFyG+73um8xrx6/DMfgUcNg3JAM63CISedNcr+OEI11L0oFk1KFT7/aQ9996GM6Kubdqg==", "license": "MIT", "funding": { "type": "github", @@ -19564,9 +21547,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.8.0.tgz", - "integrity": "sha512-U1YkZBxDkSLNvPNiqxB5g42IeJHr27C7zDb/yGQN2xL4UBeg4O9xVhCFfe32f6tLwivSL0dar4ScElpaCJuqow==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.9.1.tgz", + "integrity": "sha512-e2P1zGpnnt4+TyxTC5pX/lPxPasZcuHCYXY0iwQ3bf8qRQQEjDfj3X7EI+cXqILtnhOiviEOcYmeu5op2WhQDg==", "license": "MIT", "funding": { "type": "github", @@ -19577,9 +21560,9 @@ } }, "node_modules/@tiptap/extension-bubble-menu": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.8.0.tgz", - "integrity": "sha512-swg+myJPN60LduQvLMF4hVBqP5LOIN01INZBzBI8egz8QufqtSyRCgXl7Xcma0RT5xIXnZSG9XOqNFf2rtkjKA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.9.1.tgz", + "integrity": "sha512-DWUF6NG08/bZDWw0jCeotSTvpkyqZTi4meJPomG9Wzs/Ol7mEwlNCsCViD999g0+IjyXFatBk4DfUq1YDDu++Q==", "license": "MIT", "dependencies": { "tippy.js": "^6.3.7" @@ -19594,24 +21577,22 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.8.0.tgz", - "integrity": "sha512-H4O2X0ozbc/ce9/XF1H98sqWVUdtt7jzy7hMBunwmY8ZxI4dHtcRkeg81CZbpKTqOqRrMCLWjE3M2tgiDXrDkA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.9.1.tgz", + "integrity": "sha512-0hizL/0j9PragJObjAWUVSuGhN1jKjCFnhLQVRxtx4HutcvS/lhoWMvFg6ZF8xqWgIa06n6A7MaknQkqhTdhKA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/extension-list-item": "^2.7.0", - "@tiptap/extension-text-style": "^2.7.0" + "@tiptap/core": "^2.7.0" } }, "node_modules/@tiptap/extension-code": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.8.0.tgz", - "integrity": "sha512-VSFn3sFF6qPpOGkXFhik8oYRH5iByVJpFEFd/duIEftmS0MdPzkbSItOpN3mc9xsJ5dCX80LYaResSj5hr5zkA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.9.1.tgz", + "integrity": "sha512-WQqcVGe7i/E+yO3wz5XQteU1ETNZ00euUEl4ylVVmH2NM4Dh0KDjEhbhHlCM0iCfLUo7jhjC7dmS+hMdPUb+Tg==", "license": "MIT", "funding": { "type": "github", @@ -19622,9 +21603,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.8.0.tgz", - "integrity": "sha512-POuA5Igx+Dto0DTazoBFAQTj/M/FCdkqRVD9Uhsxhv49swPyANTJRr05vgbgtHB+NDDsZfCawVh7pI0IAD/O0w==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.9.1.tgz", + "integrity": "sha512-A/50wPWDqEUUUPhrwRKILP5gXMO5UlQ0F6uBRGYB9CEVOREam9yIgvONOnZVJtszHqOayjIVMXbH/JMBeq11/g==", "license": "MIT", "funding": { "type": "github", @@ -19636,9 +21617,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.8.0.tgz", - "integrity": "sha512-mp7Isx1sVc/ifeW4uW/PexGQ9exN3NRUOebSpnLfqXeWYk4y1RS1PA/3+IHkOPVetbnapgPjFx/DswlCP3XLjA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.9.1.tgz", + "integrity": "sha512-1a+HCoDPnBttjqExfYLwfABq8MYdiowhy/wp8eCxVb6KGFEENO53KapstISvPzqH7eOi+qRjBB1KtVYb/ZXicg==", "license": "MIT", "funding": { "type": "github", @@ -19649,9 +21630,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.8.0.tgz", - "integrity": "sha512-rAFvx44YuT6dtS1c+ALw0ROAGI16l5L1HxquL4hR1gtxDcTieST5xhw5bkshXlmrlfotZXPrhokzqA7qjhZtJw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.9.1.tgz", + "integrity": "sha512-wJZspSmJRkDBtPkzFz1g7gvZOEOayk8s93UHsgbJxcV4VWHYleZ5XhT74sZunSjefNDm3qC6v2BSgLp3vNHVKQ==", "license": "MIT", "funding": { "type": "github", @@ -19663,9 +21644,9 @@ } }, "node_modules/@tiptap/extension-floating-menu": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.8.0.tgz", - "integrity": "sha512-H4QT61CrkLqisnGGC7zgiYmsl2jXPHl89yQCbdlkQN7aw11H7PltcJS2PJguL0OrRVJS/Mv/VTTUiMslmsEV5g==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.9.1.tgz", + "integrity": "sha512-MxZ7acNNsoNaKpetxfwi3Z11Bgrh0T2EJlCV77v9N1vWK38+st3H1WJanmLbPNtc2ocvhHJrz+DjDz3CWxQ9rQ==", "license": "MIT", "dependencies": { "tippy.js": "^6.3.7" @@ -19680,9 +21661,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.8.0.tgz", - "integrity": "sha512-Be1LWCmvteQInOnNVN+HTqc1XWsj1bCl+Q7et8qqNjtGtTaCbdCp8ppcH1SKJxNTM/RLUtPyJ8FDgOTj51ixCA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.9.1.tgz", + "integrity": "sha512-jsRBmX01vr+5H02GljiHMo0n5H1vzoMLmFarxe0Yq2d2l9G/WV2VWX2XnGliqZAYWd1bI0phs7uLQIN3mxGQTw==", "license": "MIT", "funding": { "type": "github", @@ -19694,9 +21675,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.8.0.tgz", - "integrity": "sha512-vqiIfviNiCmy/pJTHuDSCAGL2O4QDEdDmAvGJu8oRmElUrnlg8DbJUfKvn6DWQHNSQwRb+LDrwWlzAYj1K9u6A==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.9.1.tgz", + "integrity": "sha512-fCuaOD/b7nDjm47PZ58oanq7y4ccS2wjPh42Qm0B0yipu/1fmC8eS1SmaXmk28F89BLtuL6uOCtR1spe+lZtlQ==", "license": "MIT", "funding": { "type": "github", @@ -19707,9 +21688,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.8.0.tgz", - "integrity": "sha512-4inWgrTPiqlivPmEHFOM5ck2UsmOsbKKPtqga6bALvWPmCv24S6/EBwFp8Jz4YABabXDnkviihmGu0LpP9D69w==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.9.1.tgz", + "integrity": "sha512-SjZowzLixOFaCrV2cMaWi1mp8REK0zK1b3OcVx7bCZfVSmsOETJyrAIUpCKA8o60NwF7pwhBg0MN8oXlNKMeFw==", "license": "MIT", "funding": { "type": "github", @@ -19720,9 +21701,9 @@ } }, "node_modules/@tiptap/extension-highlight": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.8.0.tgz", - "integrity": "sha512-vyqX7D449nuARhI0AyRqtIZReFg3sfc/U/q1p3JOjtUoW6z2jmDTzshiKRrSg+Jf7Hhzj1pqwU+6+CpelPPDpA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.9.1.tgz", + "integrity": "sha512-ro3bARRgxb4v8w6fPVfG1kO2UWtLgKI5ESfsQ9CqiZuRkZdRKhM5ZpXPIky28Pn7CxhDUSXBXS/MhvP0VuhMJQ==", "license": "MIT", "funding": { "type": "github", @@ -19733,9 +21714,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.8.0.tgz", - "integrity": "sha512-u5YS0J5Egsxt8TUWMMAC3QhPZaak+IzQeyHch4gtqxftx96tprItY7AD/A3pGDF2uCSnN+SZrk6yVexm6EncDw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.9.1.tgz", + "integrity": "sha512-wp9qR1NM+LpvyLZFmdNaAkDq0d4jDJ7z7Fz7icFQPu31NVxfQYO3IXNmvJDCNu8hFAbImpA5aG8MBuwzRo0H9w==", "license": "MIT", "funding": { "type": "github", @@ -19747,9 +21728,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.8.0.tgz", - "integrity": "sha512-Sn/MI8WVFBoIYSIHA9NJryJIyCEzZdRysau8pC5TFnfifre0QV1ksPz2bgF+DyCD69ozQiRdBBHDEwKe47ZbfQ==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.9.1.tgz", + "integrity": "sha512-ydUhABeaBI1CoJp+/BBqPhXINfesp1qMNL/jiDcMsB66fsD4nOyphpAJT7FaRFZFtQVF06+nttBtFZVkITQVqg==", "license": "MIT", "funding": { "type": "github", @@ -19761,9 +21742,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.8.0.tgz", - "integrity": "sha512-PwwSE2LTYiHI47NJnsfhBmPiLE8IXZYqaSoNPU6flPrk1KxEzqvRI1joKZBmD9wuqzmHJ93VFIeZcC+kfwi8ZA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.9.1.tgz", + "integrity": "sha512-VkNA6Vz96+/+7uBlsgM7bDXXx4b62T1fDam/3UKifA72aD/fZckeWrbT7KrtdUbzuIniJSbA0lpTs5FY29+86Q==", "license": "MIT", "funding": { "type": "github", @@ -19774,9 +21755,9 @@ } }, "node_modules/@tiptap/extension-link": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.8.0.tgz", - "integrity": "sha512-p67hCG/pYCiOK/oCTPZnlkw9Ei7KJ7kCKFaluTcAmr5j8IBdYfDqSMDNCT4vGXBvKFh4X6xD7S7QvOqcH0Gn9A==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.9.1.tgz", + "integrity": "sha512-yG+e3e8cCCN9dZjX4ttEe3e2xhh58ryi3REJV4MdiEkOT9QF75Bl5pUbMIS4tQ8HkOr04QBFMHKM12kbSxg1BA==", "license": "MIT", "dependencies": { "linkifyjs": "^4.1.0" @@ -19791,9 +21772,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.8.0.tgz", - "integrity": "sha512-o7OGymGxB0B9x3x2prp3KBDYFuBYGc5sW69O672jk8G52DqhzzndgPnkk0qUn8nXAUKuDGbJmpmHVA2kagqnRg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.9.1.tgz", + "integrity": "sha512-6O4NtYNR5N2Txi4AC0/4xMRJq9xd4+7ShxCZCDVL0WDVX37IhaqMO7LGQtA6MVlYyNaX4W1swfdJaqrJJ5HIUw==", "license": "MIT", "funding": { "type": "github", @@ -19804,9 +21785,9 @@ } }, "node_modules/@tiptap/extension-mention": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-2.8.0.tgz", - "integrity": "sha512-WvW98zj4JyomeCcXoORaYkI1gFtfIiVGRzPnZ+bIVphK2gGf1GK7/9asIcPcrOA8B+JJD6bNutSVTqN6Sg/fZw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-2.9.1.tgz", + "integrity": "sha512-2IzunpivdNtDNdtAXwRiQbNhTm87zrbkhz1cCE+2y9pWiX1QLXyx0HQq/DIAjxp6v7y4sIh+5UTUTFlH7vD9wQ==", "license": "MIT", "funding": { "type": "github", @@ -19819,24 +21800,22 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.8.0.tgz", - "integrity": "sha512-sCvNbcTS1+5QTTXwUPFa10vf5I1pr8sGcOTIh0G+a5ZkS5+6FxT12k7VLzPt39QyNbOi+77U2o4Xr4XyaEkfSg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.9.1.tgz", + "integrity": "sha512-6J9jtv1XP8dW7/JNSH/K4yiOABc92tBJtgCsgP8Ep4+fjfjdj4HbjS1oSPWpgItucF2Fp/VF8qg55HXhjxHjTw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/extension-list-item": "^2.7.0", - "@tiptap/extension-text-style": "^2.7.0" + "@tiptap/core": "^2.7.0" } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.8.0.tgz", - "integrity": "sha512-XgxxNNbuBF48rAGwv7/s6as92/xjm/lTZIGTq9aG13ClUKFtgdel7C33SpUCcxg3cO2WkEyllXVyKUiauFZw/A==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.9.1.tgz", + "integrity": "sha512-JOmT0xd4gd3lIhLwrsjw8lV+ZFROKZdIxLi0Ia05XSu4RLrrvWj0zdKMSB+V87xOWfSB3Epo95zAvnPox5Q16A==", "license": "MIT", "funding": { "type": "github", @@ -19847,9 +21826,9 @@ } }, "node_modules/@tiptap/extension-placeholder": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.8.0.tgz", - "integrity": "sha512-BMqv/C9Tcjd7L1/OphUAJTZhWfpWs0rTQJ0bs3RRGsC8L+K20Fg+li45vw7M0teojpfrw57zwJogJd/m23Zr1Q==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.9.1.tgz", + "integrity": "sha512-Q/w3OOg/C6jGBf4QKEWKF9k+iaCQCgPoaIg2IDTPx8QmaxRfgoVE5Csd+oTOY/brdmSNXOxykZWEci6OJP+MbA==", "license": "MIT", "funding": { "type": "github", @@ -19861,9 +21840,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.8.0.tgz", - "integrity": "sha512-ezkDiXxQ3ME/dDMMM7tAMkKRi6UWw7tIu+Mx7Os0z8HCGpVBk1gFhLlhEd8I5rJaPZr4tK1wtSehMA9bscFGQw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.9.1.tgz", + "integrity": "sha512-V5aEXdML+YojlPhastcu7w4biDPwmzy/fWq0T2qjfu5Te/THcqDmGYVBKESBm5x6nBy5OLkanw2O+KHu2quDdg==", "license": "MIT", "funding": { "type": "github", @@ -19874,9 +21853,9 @@ } }, "node_modules/@tiptap/extension-task-item": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-task-item/-/extension-task-item-2.8.0.tgz", - "integrity": "sha512-U40uCE39vc6HT52JUTFGXQhxoakTsYapsfJmpy8LwfFAJVJtA7LBurY8qufvTzet55pSLtd3yNaZByhQaDlQrw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-task-item/-/extension-task-item-2.9.1.tgz", + "integrity": "sha512-nao7lg7MF6DXc8N7K2yP9Y6Gb8113cVSEIXxy6PU9oMgXp0xSzIL2pkG1E2bgSqkUIop1pHzeF4cNLMY+MO2fg==", "license": "MIT", "funding": { "type": "github", @@ -19888,9 +21867,9 @@ } }, "node_modules/@tiptap/extension-task-list": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-task-list/-/extension-task-list-2.8.0.tgz", - "integrity": "sha512-2Zkq0UojPh+Y4trJcNSsjkdHsYczxFReUqhzl5T0/OuPzIcDYL2OicUrsp36y16KKnH+WSOUOR8twDfR9LHygg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-task-list/-/extension-task-list-2.9.1.tgz", + "integrity": "sha512-vmUkclPi02iVf+uu74iyUp5xGNib0Gxs73DJ1z+a7CzjuLRqqCa/KEde95CR0Y//DaK/Csz4DOSUyTfLCMvpWg==", "license": "MIT", "funding": { "type": "github", @@ -19901,9 +21880,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.8.0.tgz", - "integrity": "sha512-EDAdFFzWOvQfVy7j3qkKhBpOeE5thkJaBemSWfXI93/gMVc0ZCdLi24mDvNNgUHlT+RjlIoQq908jZaaxLKN2A==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.9.1.tgz", + "integrity": "sha512-3wo9uCrkLVLQFgbw2eFU37QAa1jq1/7oExa+FF/DVxdtHRS9E2rnUZ8s2hat/IWzvPUHXMwo3Zg2XfhoamQpCA==", "license": "MIT", "funding": { "type": "github", @@ -19914,11 +21893,10 @@ } }, "node_modules/@tiptap/extension-text-style": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.8.0.tgz", - "integrity": "sha512-jJp0vcZ2Ty7RvIL0VU6dm1y+fTfXq1lN2GwtYzYM0ueFuESa+Qo8ticYOImyWZ3wGJGVrjn7OV9r0ReW0/NYkQ==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.9.1.tgz", + "integrity": "sha512-LAxc0SeeiPiAVBwksczeA7BJSZb6WtVpYhy5Esvy9K0mK5kttB4KxtnXWeQzMIJZQbza65yftGKfQlexf/Y7yg==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -19928,9 +21906,9 @@ } }, "node_modules/@tiptap/extension-typography": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-typography/-/extension-typography-2.8.0.tgz", - "integrity": "sha512-g+tbUba6cHbz62rLlmAdXw3GqBfZBVnYXtRqnQzTTPgb8a00+vEoUWA3sNyloq8FhfKFYcMWQDiqaVDqmity+w==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-typography/-/extension-typography-2.9.1.tgz", + "integrity": "sha512-HX0kghh+Gmlp5FsVVGmQNRxxA+aErLBgmKVspycJ3UHzAkyzsdx4qM19KCZ3pMOI+kxcXF9cMh3QxJYJ+OQ7wg==", "license": "MIT", "funding": { "type": "github", @@ -19941,9 +21919,9 @@ } }, "node_modules/@tiptap/pm": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.8.0.tgz", - "integrity": "sha512-eMGpRooUMvKz/vOpnKKppApMSoNM325HxTdAJvTlVAmuHp5bOY5kyY1kfUlePRiVx1t1UlFcXs3kecFwkkBD3Q==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.9.1.tgz", + "integrity": "sha512-mvV86fr7kEuDYEApQ2uMPCKL2uagUE0BsXiyyz3KOkY1zifyVm1fzdkscb24Qy1GmLzWAIIihA+3UHNRgYdOlQ==", "license": "MIT", "dependencies": { "prosemirror-changeset": "^2.2.1", @@ -19963,7 +21941,7 @@ "prosemirror-tables": "^1.4.0", "prosemirror-trailing-node": "^3.0.0", "prosemirror-transform": "^1.10.0", - "prosemirror-view": "^1.33.10" + "prosemirror-view": "^1.34.3" }, "funding": { "type": "github", @@ -19971,13 +21949,13 @@ } }, "node_modules/@tiptap/react": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.8.0.tgz", - "integrity": "sha512-o/aSCjO5Nu4MsNpTF+N1SzYzVQvvBiclmTOZX2E6usZ8jre5zmKfXHDSZnjGSRTK6z6kw5KW8wpjRQha03f9mg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.9.1.tgz", + "integrity": "sha512-LQJ34ZPfXtJF36SZdcn4Fiwsl2WxZ9YRJI87OLnsjJ45O+gV/PfBzz/4ap+LF8LOS0AbbGhTTjBOelPoNm+aYA==", "license": "MIT", "dependencies": { - "@tiptap/extension-bubble-menu": "^2.8.0", - "@tiptap/extension-floating-menu": "^2.8.0", + "@tiptap/extension-bubble-menu": "^2.9.1", + "@tiptap/extension-floating-menu": "^2.9.1", "@types/use-sync-external-store": "^0.0.6", "fast-deep-equal": "^3", "use-sync-external-store": "^1.2.2" @@ -19994,31 +21972,32 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.8.0.tgz", - "integrity": "sha512-r7UwaTrECkQoheWVZKFDqtL5tBx07x7IFT+prfgnsVlYFutGWskVVqzCDvD3BDmrg5PzeCWYZrQGlPaLib7tjg==", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^2.8.0", - "@tiptap/extension-blockquote": "^2.8.0", - "@tiptap/extension-bold": "^2.8.0", - "@tiptap/extension-bullet-list": "^2.8.0", - "@tiptap/extension-code": "^2.8.0", - "@tiptap/extension-code-block": "^2.8.0", - "@tiptap/extension-document": "^2.8.0", - "@tiptap/extension-dropcursor": "^2.8.0", - "@tiptap/extension-gapcursor": "^2.8.0", - "@tiptap/extension-hard-break": "^2.8.0", - "@tiptap/extension-heading": "^2.8.0", - "@tiptap/extension-history": "^2.8.0", - "@tiptap/extension-horizontal-rule": "^2.8.0", - "@tiptap/extension-italic": "^2.8.0", - "@tiptap/extension-list-item": "^2.8.0", - "@tiptap/extension-ordered-list": "^2.8.0", - "@tiptap/extension-paragraph": "^2.8.0", - "@tiptap/extension-strike": "^2.8.0", - "@tiptap/extension-text": "^2.8.0", - "@tiptap/pm": "^2.8.0" + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.9.1.tgz", + "integrity": "sha512-nsw6UF/7wDpPfHRhtGOwkj1ipIEiWZS1VGw+c14K61vM1CNj0uQ4jogbHwHZqN1dlL5Hh+FCqUHDPxG6ECbijg==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^2.9.1", + "@tiptap/extension-blockquote": "^2.9.1", + "@tiptap/extension-bold": "^2.9.1", + "@tiptap/extension-bullet-list": "^2.9.1", + "@tiptap/extension-code": "^2.9.1", + "@tiptap/extension-code-block": "^2.9.1", + "@tiptap/extension-document": "^2.9.1", + "@tiptap/extension-dropcursor": "^2.9.1", + "@tiptap/extension-gapcursor": "^2.9.1", + "@tiptap/extension-hard-break": "^2.9.1", + "@tiptap/extension-heading": "^2.9.1", + "@tiptap/extension-history": "^2.9.1", + "@tiptap/extension-horizontal-rule": "^2.9.1", + "@tiptap/extension-italic": "^2.9.1", + "@tiptap/extension-list-item": "^2.9.1", + "@tiptap/extension-ordered-list": "^2.9.1", + "@tiptap/extension-paragraph": "^2.9.1", + "@tiptap/extension-strike": "^2.9.1", + "@tiptap/extension-text": "^2.9.1", + "@tiptap/extension-text-style": "^2.9.1", + "@tiptap/pm": "^2.9.1" }, "funding": { "type": "github", @@ -20026,9 +22005,9 @@ } }, "node_modules/@tiptap/suggestion": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.8.0.tgz", - "integrity": "sha512-ENBgO7a92cZa4gESb0Da5e7PKnHiz77tZr226VLqEdMcp7Lve2jb3Q2uL+cWCJxs7P1l6ZhetUmUiJg+Ee7Wjg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.9.1.tgz", + "integrity": "sha512-MMxwpbtocxUsbmc8qtFY1AQYNTW5i/M4aNSv9zsKKRISaS5hMD7XVrw2eod0x0yEqZU3izLiPDZPmgr8glF+jQ==", "license": "MIT", "funding": { "type": "github", @@ -20045,6 +22024,16 @@ "integrity": "sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==", "license": "MIT" }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/encodeurl/-/encodeurl-1.0.2.tgz", @@ -20072,9 +22061,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.9.tgz", - "integrity": "sha512-w9iWudx1XWOHW5lQRS9iKpK/XuRhnN+0T7HvdCCd802FYkT1AMTnxndJHGrNJwRoRHkslGr4S29tjm1cT7x/7w==", + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.12.tgz", + "integrity": "sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==", "dev": true, "license": "MIT" }, @@ -20094,13 +22083,6 @@ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "license": "MIT" }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/mute-stream": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", @@ -20112,22 +22094,15 @@ } }, "node_modules/@types/node": { - "version": "20.16.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz", - "integrity": "sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==", + "version": "20.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.1.tgz", + "integrity": "sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==", "dev": true, "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/prop-types": { "version": "15.7.13", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", @@ -20136,9 +22111,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.10.tgz", - "integrity": "sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "devOptional": true, "license": "MIT", "dependencies": { @@ -20147,9 +22122,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -20176,32 +22151,32 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz", + "integrity": "sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/type-utils": "8.11.0", + "@typescript-eslint/utils": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -20210,27 +22185,27 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.11.0.tgz", + "integrity": "sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -20239,17 +22214,17 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", + "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -20257,27 +22232,24 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz", + "integrity": "sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/typescript-estree": "8.11.0", + "@typescript-eslint/utils": "8.11.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^8.56.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -20285,13 +22257,13 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", + "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -20299,23 +22271,23 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", + "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -20328,40 +22300,40 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", + "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", + "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/types": "8.11.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -20386,13 +22358,13 @@ "license": "ISC" }, "node_modules/@whatwg-node/fetch": { - "version": "0.9.21", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.21.tgz", - "integrity": "sha512-Wt0jPb+04JjobK0pAAN7mEHxVHcGA9HoP3OyCsZtyAecNQeADXCZ1MihFwVwjsgaRYuGVmNlsCmLxlG6mor8Gw==", + "version": "0.9.22", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.22.tgz", + "integrity": "sha512-+RIBffgoaRlWV9cKV6wAX71sbeoU2APOI3G13ZRMkabYHwkvDMeZDTyxJcsMXA5CpieJ7NFXF9Xyu72jwvdzqA==", "dev": true, "license": "MIT", "dependencies": { - "@whatwg-node/node-fetch": "^0.5.23", + "@whatwg-node/node-fetch": "^0.5.27", "urlpattern-polyfill": "^10.0.0" }, "engines": { @@ -20400,9 +22372,9 @@ } }, "node_modules/@whatwg-node/node-fetch": { - "version": "0.5.26", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.26.tgz", - "integrity": "sha512-4jXDeZ4IH4bylZ6wu14VEx0aDXXhrN4TC279v9rPmn08g4EYekcYf8wdcOOnS9STjDkb6x77/6xBUTqxGgjr8g==", + "version": "0.5.27", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.27.tgz", + "integrity": "sha512-0OaMj5W4fzWimRSFq07qFiWfquaUMNB+695GwE76LYKVuah+jwCdzSgsIOtwPkiyJ35w0XGhXmJPiIJCdLwopg==", "dev": true, "license": "MIT", "dependencies": { @@ -20439,9 +22411,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", "dev": true, "license": "MIT", "bin": { @@ -20575,13 +22547,13 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "deep-equal": "^2.0.5" + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { @@ -20759,16 +22731,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -20851,25 +22813,25 @@ } }, "node_modules/aws-amplify": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/aws-amplify/-/aws-amplify-6.6.3.tgz", - "integrity": "sha512-gGpr3o3GggZpw3uZKwdWFfemju3yz6lKjLe68zNe1HMAgxoW790aW2apxkS2RgadREh8TBF5R5Hx6aRn1btd2Q==", - "license": "Apache-2.0", - "dependencies": { - "@aws-amplify/analytics": "7.0.50", - "@aws-amplify/api": "6.0.52", - "@aws-amplify/auth": "6.5.0", - "@aws-amplify/core": "6.4.3", - "@aws-amplify/datastore": "5.0.52", - "@aws-amplify/notifications": "2.0.50", - "@aws-amplify/storage": "6.6.8", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/aws-amplify/-/aws-amplify-6.6.7.tgz", + "integrity": "sha512-1lC97qJeZYpBnP9u8CDLPViH3rWFcwDWrHM6k5KckoeoRnx2naROe3OLlRP7xAGwQ0D8ZPq/wOiJTmGurRKurg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-amplify/analytics": "7.0.54", + "@aws-amplify/api": "6.0.56", + "@aws-amplify/auth": "6.5.4", + "@aws-amplify/core": "6.4.7", + "@aws-amplify/datastore": "5.0.56", + "@aws-amplify/notifications": "2.0.54", + "@aws-amplify/storage": "6.6.12", "tslib": "^2.5.0" } }, "node_modules/aws-cdk": { - "version": "2.160.0", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.160.0.tgz", - "integrity": "sha512-JquccawrU2dp0cS80my65oLLNRUJZflKRKIRSVjQ1A9W4bNns/xhSqaVlL41NAsGSYBWxCzzWHrV3yOFShU87A==", + "version": "2.164.1", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.164.1.tgz", + "integrity": "sha512-dWRViQgHLe7GHkPIQGA+8EQSm8TBcxemyCC3HHW3wbLMWUDbspio9Dktmw5EmWxlFjjWh86Dk1JWf1zKQo8C5g==", "dev": true, "license": "Apache-2.0", "bin": { @@ -20883,9 +22845,9 @@ } }, "node_modules/aws-cdk-lib": { - "version": "2.160.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.160.0.tgz", - "integrity": "sha512-HJvn1lKmyZk1i56j4sgOddRfoDto9L/INgXSWmLzDdnMdMQWRvB/dbPQPrF1voVN26UKmrNdH9Irr0soMD5B1A==", + "version": "2.164.1", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.164.1.tgz", + "integrity": "sha512-jNvVmfZJbZoAYU94b5dzTlF2z6JXJ204NgcYY5haOa6mq3m2bzdYPXnPtB5kpAX3oBi++yoRdmLhqgckdEhUZA==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -21259,9 +23221,9 @@ } }, "node_modules/axe-core": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", - "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", "dev": true, "license": "MPL-2.0", "engines": { @@ -21500,9 +23462,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -21520,10 +23482,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -21650,31 +23612,13 @@ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "license": "MIT", "engines": { - "node": ">= 6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001664", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", - "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", + "version": "1.0.30001671", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001671.tgz", + "integrity": "sha512-jocyVaSSfXg2faluE6hrWkMgDOiULBMca4QLtDT39hw1YxaIPHWc1CcTCKkPmHgGH6tKji6ZNbMSmUAvENf2/A==", "funding": [ { "type": "opencollective", @@ -22352,6 +24296,19 @@ } } }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -22370,6 +24327,16 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", @@ -22388,14 +24355,14 @@ } }, "node_modules/commitlint": { - "version": "18.6.1", - "resolved": "https://registry.npmjs.org/commitlint/-/commitlint-18.6.1.tgz", - "integrity": "sha512-I10mj1OmBCrPUHItRqeCEj0uxCdWxL15sCfS1Poq8av2FcX/KvRoiH8jTNG0cVDA2ns7IftugTAM+nLvOavLsw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/commitlint/-/commitlint-19.5.0.tgz", + "integrity": "sha512-lCtwxgFulvMnCgBc8MVPlVMf+PNOqQSBhHpEnjV2JjEQEAhxjVDtC7IeuEtR+hHpGvHt6CwlLtm3uZNyEby5dQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/cli": "^18.6.1", - "@commitlint/types": "^18.6.1" + "@commitlint/cli": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "bin": { "commitlint": "cli.js" @@ -22445,14 +24412,11 @@ } }, "node_modules/constructs": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.3.0.tgz", - "integrity": "sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.4.2.tgz", + "integrity": "sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 16.14.0" - } + "license": "Apache-2.0" }, "node_modules/conventional-changelog-angular": { "version": "7.0.0", @@ -22519,16 +24483,16 @@ } }, "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "license": "MIT", "dependencies": { + "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" @@ -22546,13 +24510,13 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.1.0.tgz", + "integrity": "sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA==", "dev": true, "license": "MIT", "dependencies": { - "jiti": "^1.19.1" + "jiti": "^1.21.6" }, "engines": { "node": ">=v16" @@ -22670,13 +24634,16 @@ "license": "BSD-2-Clause" }, "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/data-uri-to-buffer": { @@ -22787,73 +24754,6 @@ "node": ">=0.10.0" } }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-equal/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -23150,9 +25050,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.30", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.30.tgz", - "integrity": "sha512-sXI35EBN4lYxzc/pIGorlymYNzDBOqkSlVRe6MkgBsW/hW1tpC/HDJ2fjG7XnjakzfLEuvdmux0Mjs6jHq4UOA==", + "version": "1.5.47", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.47.tgz", + "integrity": "sha512-zS5Yer0MOYw4rtK2iq43cJagHZ8sXN0jDHDKzB+86gSBSAI4v07S97mcq+Gs2vclAxSh1j7vOAHxSVgduiiuVQ==", "dev": true, "license": "ISC" }, @@ -23203,6 +25103,16 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/envinfo": { "version": "7.14.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", @@ -23310,38 +25220,10 @@ "node": ">= 0.4" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", + "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", "dev": true, "license": "MIT", "dependencies": { @@ -23352,12 +25234,12 @@ "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", + "iterator.prototype": "^1.1.3", "safe-array-concat": "^1.1.2" }, "engines": { @@ -23486,6 +25368,7 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { @@ -23539,13 +25422,13 @@ } }, "node_modules/eslint-config-next": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.13.tgz", - "integrity": "sha512-aro1EKAoyYchnO/3Tlo91hnNBO7QO7qnv/79MAFC+4Jq8TdUVKQlht5d2F+YjrePjdpOvfL+mV9JPfyYNwkk1g==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.16.tgz", + "integrity": "sha512-HOcnCJsyLXR7B8wmjaCgkTSpz+ijgOyAkP8OlvANvciP8PspBYFEBTmakNMxOf71fY0aKOm/blFIiKnrM4K03Q==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "14.2.13", + "@next/eslint-plugin-next": "14.2.16", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -23666,9 +25549,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", - "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "license": "MIT", "dependencies": { @@ -23680,7 +25563,7 @@ "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.9.0", + "eslint-module-utils": "^2.12.0", "hasown": "^2.0.2", "is-core-module": "^2.15.1", "is-glob": "^4.0.3", @@ -23689,13 +25572,14 @@ "object.groupby": "^1.0.3", "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { @@ -23756,13 +25640,13 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", - "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, "license": "MIT", "dependencies": { - "aria-query": "~5.1.3", + "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", @@ -23770,14 +25654,13 @@ "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.19", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.0" + "string.prototype.includes": "^2.0.1" }, "engines": { "node": ">=4.0" @@ -23811,31 +25694,40 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" }, "engines": { - "node": ">=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } } }, "node_modules/eslint-plugin-react": { - "version": "7.37.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.0.tgz", - "integrity": "sha512-IHBePmfWH5lKhJnJ7WB1V+v/GolbB0rjS8XYVCSQCZKaQCAUhMoVoOEn1Ef8Z8Wf0a7l8KTJvuZg5/e4qrZ6nA==", + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, "license": "MIT", "dependencies": { @@ -23844,7 +25736,7 @@ "array.prototype.flatmap": "^1.3.2", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", + "es-iterator-helpers": "^1.1.0", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", @@ -23866,9 +25758,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", "dev": true, "license": "MIT", "engines": { @@ -23973,6 +25865,40 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -24018,6 +25944,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/eslint/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -24078,18 +26022,31 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -24253,11 +26210,11 @@ } }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fast-xml-parser": { "version": "4.4.1", @@ -24684,82 +26641,21 @@ "license": "MIT" }, "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", "dev": true, "license": "MIT", "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-raw-commits/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/git-raw-commits/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "git-raw-commits": "cli.mjs" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-raw-commits/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/glob": { @@ -24794,27 +26690,33 @@ "node": ">=10.13.0" } }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, "license": "MIT", "dependencies": { - "ini": "^1.3.4" + "ini": "4.1.1" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { @@ -24958,16 +26860,6 @@ "node": ">=0.10.0" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -25076,39 +26968,6 @@ "hjson": "bin/hjson" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -25244,6 +27103,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -25254,16 +27124,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/inflected": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", @@ -25291,11 +27151,14 @@ "license": "ISC" }, "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/internal-slot": { "version": "1.0.7", @@ -25345,23 +27208,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -25732,16 +27578,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -26000,9 +27836,9 @@ "license": "ISC" }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, "license": "MIT", "dependencies": { @@ -26011,6 +27847,9 @@ "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jackspeak": { @@ -26182,16 +28021,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -26386,13 +28215,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -26590,12 +28412,12 @@ } }, "node_modules/lucide-react": { - "version": "0.379.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.379.0.tgz", - "integrity": "sha512-KcdeVPqmhRldldAAgptb8FjIunM2x2Zy26ZBh1RsEUcdLIvsEmbcw7KpzFYUy5BbpGeWhPu9Z9J5YXfStiXwhg==", + "version": "0.453.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.453.0.tgz", + "integrity": "sha512-kL+RGZCcJi9BvJtzg2kshO192Ddy9hv3ij+cPrVPWSRzgCWCVazoQJxOjAwgK53NomL07HB7GPHW120FimjNhQ==", "license": "ISC", "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "node_modules/map-cache": { @@ -26608,19 +28430,6 @@ "node": ">=0.10.0" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -26746,21 +28555,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -26913,12 +28707,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "14.2.13", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.13.tgz", - "integrity": "sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==", + "version": "14.2.16", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.16.tgz", + "integrity": "sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA==", "license": "MIT", "dependencies": { - "@next/env": "14.2.13", + "@next/env": "14.2.16", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -26933,15 +28727,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.13", - "@next/swc-darwin-x64": "14.2.13", - "@next/swc-linux-arm64-gnu": "14.2.13", - "@next/swc-linux-arm64-musl": "14.2.13", - "@next/swc-linux-x64-gnu": "14.2.13", - "@next/swc-linux-x64-musl": "14.2.13", - "@next/swc-win32-arm64-msvc": "14.2.13", - "@next/swc-win32-ia32-msvc": "14.2.13", - "@next/swc-win32-x64-msvc": "14.2.13" + "@next/swc-darwin-arm64": "14.2.16", + "@next/swc-darwin-x64": "14.2.16", + "@next/swc-linux-arm64-gnu": "14.2.16", + "@next/swc-linux-arm64-musl": "14.2.16", + "@next/swc-linux-x64-gnu": "14.2.16", + "@next/swc-linux-x64-musl": "14.2.16", + "@next/swc-win32-arm64-msvc": "14.2.16", + "@next/swc-win32-ia32-msvc": "14.2.16", + "@next/swc-win32-x64-msvc": "14.2.16" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -27061,22 +28855,6 @@ "dev": true, "license": "MIT" }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -27163,23 +28941,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -27722,9 +29483,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { @@ -28009,16 +29770,16 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -28085,14 +29846,14 @@ } }, "node_modules/prosemirror-commands": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.0.tgz", - "integrity": "sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.2.tgz", + "integrity": "sha512-0nDHH++qcf/BuPLYvmqZTUUsPJUCPBUXt0J1ErTcDIS369CTp773itzLGIgIXG4LJXOlwYCr44+Mh4ii6MP1QA==", "license": "MIT", "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" + "prosemirror-transform": "^1.10.2" } }, "node_modules/prosemirror-dropcursor": { @@ -28174,9 +29935,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.22.3.tgz", - "integrity": "sha512-V4XCysitErI+i0rKFILGt/xClnFJaohe/wrrlT2NSZ+zk8ggQfDH4x2wNK7Gm0Hp4CIoWizvXFP7L9KMaCuI0Q==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.23.0.tgz", + "integrity": "sha512-Q/fgsgl/dlOAW9ILu4OOhYWQbc7TQd4BwKH/RwmUjyVf8682Be4zj3rOYdLnYEcGzyg8LL9Q5IWYKD8tdToreQ==", "license": "MIT", "dependencies": { "orderedmap": "^2.0.0" @@ -28214,9 +29975,9 @@ } }, "node_modules/prosemirror-tables": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.5.0.tgz", - "integrity": "sha512-VMx4zlYWm7aBlZ5xtfJHpqa3Xgu3b7srV54fXYnXgsAcIGRqKSrhiK3f89omzzgaAgAtDOV4ImXnLKhVfheVNQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.6.0.tgz", + "integrity": "sha512-eirSS2fwVYzKhvM2qeXSn9ix/SBn7QOLDftPQ4ImEQIevFDiSKAB6Lbrmm/WEgrbTDbCm+xhSq4gOD9w7wT59Q==", "license": "MIT", "dependencies": { "prosemirror-keymap": "^1.1.2", @@ -28242,9 +30003,9 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.0.tgz", - "integrity": "sha512-9UOgFSgN6Gj2ekQH5CTDJ8Rp/fnKR2IkYfGdzzp5zQMFsS4zDllLVx/+jGcX86YlACpG7UR5fwAXiWzxqWtBTg==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.2.tgz", + "integrity": "sha512-2iUq0wv2iRoJO/zj5mv8uDUriOHWzXRnOTVgCzSXnktS/2iQRa3UUQwVlkBlYZFtygw6Nh1+X4mGqoYBINn5KQ==", "license": "MIT", "dependencies": { "prosemirror-model": "^1.21.0" @@ -28442,16 +30203,6 @@ ], "license": "MIT" }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -28465,14 +30216,17 @@ } }, "node_modules/react-day-picker": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.1.3.tgz", - "integrity": "sha512-2PLtAcO5QORfGosywl8KeqqjOkwz8r4PQYRA4QwHU3ayb7y9nDN5foXK3/hUiM8cNycOQD8vuV6DHy81H0wxPQ==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.2.0.tgz", + "integrity": "sha512-WGdI2tmGBG2SZRDNCTG9rNXC4e8iUpYQHUWBtFDREHC9zqatY+YhgCgMFFWXddpKHLvN4CtJ54o4UpNDs4jVpA==", "license": "MIT", "dependencies": { "@date-fns/tz": "^1.1.2", "date-fns": "^4.1.0" }, + "engines": { + "node": ">=18" + }, "funding": { "type": "individual", "url": "https://github.com/sponsors/gpbl" @@ -28505,9 +30259,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.53.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.0.tgz", - "integrity": "sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ==", + "version": "7.53.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.1.tgz", + "integrity": "sha512-6aiQeBda4zjcuaugWvim9WsGqisoUk+etmFEsSUMm451/Ic8L/UAb7sRtMj3V+Hdzm6mMjU1VhiSzYUZeBm0Vg==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -28524,250 +30278,95 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==", - "license": "MIT", - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-remove-scroll": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", - "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "license": "MIT", + "peerDependencies": { + "react": "*" } }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true, + "license": "MIT" + }, + "node_modules/react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" }, "engines": { - "node": ">=6" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "license": "ISC" - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "license": "(MIT OR CC0-1.0)", + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "pify": "^2.3.0" } }, "node_modules/readdirp": { @@ -28795,20 +30394,6 @@ "node": ">= 10.13.0" } }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", @@ -28838,16 +30423,16 @@ "license": "MIT" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -28933,19 +30518,6 @@ "node": ">=8" } }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", @@ -29282,27 +30854,6 @@ "dev": true, "license": "MIT" }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", @@ -29341,7 +30892,6 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -29415,6 +30965,54 @@ "dev": true, "license": "MIT" }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/sharp/node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -29474,6 +31072,21 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -29535,42 +31148,6 @@ "node": ">=0.10.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", - "dev": true, - "license": "CC0-1.0" - }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -29601,19 +31178,6 @@ "node": ">= 0.6" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -29622,16 +31186,6 @@ "node": ">=10.0.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -29698,14 +31252,18 @@ } }, "node_modules/string.prototype.includes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", - "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/string.prototype.matchall": { @@ -29980,10 +31538,27 @@ "react": "^16.11.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tailwind-merge": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.2.tgz", - "integrity": "sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", "license": "MIT", "funding": { "type": "github", @@ -29991,9 +31566,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", - "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -30117,16 +31692,6 @@ "dev": true, "license": "MIT" }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" - } - }, "node_modules/tildify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", @@ -30137,6 +31702,13 @@ "node": ">=8" } }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true, + "license": "MIT" + }, "node_modules/tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -30218,16 +31790,6 @@ "dev": true, "license": "MIT" }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -30294,9 +31856,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", "license": "0BSD" }, "node_modules/tsx": { @@ -30437,9 +31999,9 @@ } }, "node_modules/typescript": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", - "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -30539,6 +32101,19 @@ "dev": true, "license": "MIT" }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -30712,17 +32287,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/value-or-promise": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", @@ -31022,9 +32586,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", "license": "ISC", "bin": { "yaml": "bin.mjs" diff --git a/package.json b/package.json index b71cd7904..9f64fe4a7 100644 --- a/package.json +++ b/package.json @@ -71,13 +71,14 @@ "date-fns": "^3.6.0", "encodeurl": "^2.0.0", "lodash": "^4.17.21", - "lucide-react": "^0.379.0", - "next": "^14.1.3", + "lucide-react": "^0.453.0", + "next": "^14.2.16", "react": "^18", "react-day-picker": "^9.0.4", "react-dom": "^18", "react-hook-form": "^7.51.5", "react-icons": "^5.0.1", + "sharp": "^0.33.5", "swr": "^2.2.5", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", @@ -88,7 +89,9 @@ "devDependencies": { "@aws-amplify/backend": "^1.0.4", "@aws-amplify/backend-cli": "^1.1.0", - "@commitlint/config-conventional": "^18.6.2", + "@commitlint/config-conventional": "^19.5.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.13.0", "@faker-js/faker": "^9.0.3", "@tailwindcss/typography": "^0.5.13", "@types/aws-lambda": "^8.10.141", @@ -96,20 +99,21 @@ "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", - "@typescript-eslint/eslint-plugin": "^7.9.0", - "@typescript-eslint/parser": "^7.9.0", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.11.0", "autoprefixer": "^10.4.19", "aws-cdk": "^2.126.0", "aws-cdk-lib": "^2.126.0", - "commitlint": "^18.6.1", + "commitlint": "^19.5.0", "constructs": "^10.3.0", - "eslint": "^8", - "eslint-config-next": "^14.1.0", + "eslint": "^8.57.1", + "eslint-config-next": "^14.2.16", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^4", + "eslint-plugin-prettier": "^5.2.1", + "globals": "^15.11.0", "husky": "^9.0.11", "postcss": "^8.4.38", - "prettier": "^2.8.8", + "prettier": "^3.3.3", "tailwindcss": "^3.4.3", "typescript": "^5.3.3" } From bd855d397027f618c6d4289e228474641e03ee33 Mon Sep 17 00:00:00 2001 From: Carsten Koch Date: Sat, 26 Oct 2024 23:26:33 +0200 Subject: [PATCH 2/7] feat: allow uploads of financial data --- amplify/data/account-schema.ts | 7 + amplify/data/analytics-schema.ts | 37 ++- amplify/data/person-schema.ts | 1 + api/useMrr.ts | 96 ++++++++ api/useMrrImport.ts | 108 +++++++++ .../account-with-payers-accordion-item.tsx | 51 ++++ components/analytics/accounts-with-payers.tsx | 48 ++++ components/analytics/import-data.tsx | 66 ++++++ components/analytics/month-accordion-item.tsx | 52 +++++ components/analytics/mrr-current-import.tsx | 56 +++++ components/analytics/mrr-documentation.tsx | 40 ++++ components/analytics/mrr-filter-btn-grp.tsx | 24 ++ components/analytics/mrr-loading.tsx | 18 ++ components/analytics/payer-accordion-item.tsx | 54 +++++ components/analytics/payer-account-issue.tsx | 36 +++ components/analytics/payer-account-issues.tsx | 41 ++++ components/analytics/reseller-badge.tsx | 16 ++ components/analytics/useMrrFilter.tsx | 64 +++++ components/navigation-menu/NavigationMenu.tsx | 1 + docs/releases/next.md | 4 +- helpers/analytics/analytics.ts | 219 ++++++++++++++++++ helpers/analytics/api-actions.ts | 98 ++++++++ helpers/analytics/process-upload.ts | 206 ++++++++++++++++ helpers/functional.ts | 5 + pages/customer-financials/index.tsx | 30 +++ public/images/analytics/mrr-download.png | Bin 0 -> 53551 bytes public/images/analytics/mrr-filters.png | Bin 0 -> 35473 bytes 27 files changed, 1373 insertions(+), 5 deletions(-) create mode 100644 api/useMrr.ts create mode 100644 api/useMrrImport.ts create mode 100644 components/analytics/account-with-payers-accordion-item.tsx create mode 100644 components/analytics/accounts-with-payers.tsx create mode 100644 components/analytics/import-data.tsx create mode 100644 components/analytics/month-accordion-item.tsx create mode 100644 components/analytics/mrr-current-import.tsx create mode 100644 components/analytics/mrr-documentation.tsx create mode 100644 components/analytics/mrr-filter-btn-grp.tsx create mode 100644 components/analytics/mrr-loading.tsx create mode 100644 components/analytics/payer-accordion-item.tsx create mode 100644 components/analytics/payer-account-issue.tsx create mode 100644 components/analytics/payer-account-issues.tsx create mode 100644 components/analytics/reseller-badge.tsx create mode 100644 components/analytics/useMrrFilter.tsx create mode 100644 helpers/analytics/analytics.ts create mode 100644 helpers/analytics/api-actions.ts create mode 100644 helpers/analytics/process-upload.ts create mode 100644 pages/customer-financials/index.tsx create mode 100644 public/images/analytics/mrr-download.png create mode 100644 public/images/analytics/mrr-filters.png diff --git a/amplify/data/account-schema.ts b/amplify/data/account-schema.ts index c602b53a6..797aaaa30 100644 --- a/amplify/data/account-schema.ts +++ b/amplify/data/account-schema.ts @@ -42,6 +42,12 @@ const accountSchema = { awsAccountNumber: a.id().required(), accountId: a.id().required(), account: a.belongsTo("Account", "accountId"), + isViaReseller: a.boolean(), + resellerId: a.id(), + reseller: a.belongsTo("Account", "resellerId"), + mainContactId: a.id(), + mainContact: a.belongsTo("Person", "mainContactId"), + financials: a.hasMany("PayerAccountMrr", "awsAccountNumber"), }) .identifier(["awsAccountNumber"]) .authorization((allow) => [allow.owner()]), @@ -63,6 +69,7 @@ const accountSchema = { accountSubsidiariesId: a.id(), controller: a.belongsTo("Account", "accountSubsidiariesId"), payerAccounts: a.hasMany("PayerAccount", "accountId"), + resellingAccounts: a.hasMany("PayerAccount", "resellerId"), people: a.hasMany("PersonAccount", "accountId"), partnerProjects: a.hasMany("Projects", "partnerId"), }) diff --git a/amplify/data/analytics-schema.ts b/amplify/data/analytics-schema.ts index 61b545672..4e7c8bc56 100644 --- a/amplify/data/analytics-schema.ts +++ b/amplify/data/analytics-schema.ts @@ -2,18 +2,47 @@ import { a } from "@aws-amplify/backend"; const analyticsSchema = { AnalyticsImportStatus: a.enum(["WIP", "DONE"]), - MrrImportData: a + MrrDataUpload: a .model({ owner: a .string() .authorization((allow) => [allow.owner().to(["read", "delete"])]), s3Key: a.string().required(), status: a.ref("AnalyticsImportStatus").required(), + latestMonths: a.hasMany("Month", "latestUploadId"), + payerMrrs: a.hasMany("PayerAccountMrr", "uploadId"), createdAt: a.datetime().required(), }) - .secondaryIndexes((index) => [ - index("status").sortKeys(["createdAt"]).queryField("listByImportStatus"), - ]) + .secondaryIndexes((index) => [index("status").sortKeys(["createdAt"])]) + .authorization((allow) => [allow.owner()]), + Month: a + .model({ + owner: a + .string() + .authorization((allow) => [allow.owner().to(["read", "delete"])]), + month: a.string().required(), + latestUploadId: a.id().required(), + latestUpload: a.belongsTo("MrrDataUpload", "latestUploadId"), + payerMrrs: a.hasMany("PayerAccountMrr", "monthId"), + }) + .secondaryIndexes((index) => [index("latestUploadId").sortKeys(["month"])]) + .authorization((allow) => [allow.owner()]), + PayerAccountMrr: a + .model({ + owner: a + .string() + .authorization((allow) => [allow.owner().to(["read", "delete"])]), + uploadId: a.id().required(), + upload: a.belongsTo("MrrDataUpload", "uploadId"), + monthId: a.id().required(), + month: a.belongsTo("Month", "monthId"), + companyName: a.string().required(), + awsAccountNumber: a.id().required(), + payerAccount: a.belongsTo("PayerAccount", "awsAccountNumber"), + isEstimated: a.boolean().required(), + isReseller: a.boolean().required(), + mrr: a.integer(), + }) .authorization((allow) => [allow.owner()]), }; diff --git a/amplify/data/person-schema.ts b/amplify/data/person-schema.ts index 7d7eb5d75..0d41f6b64 100644 --- a/amplify/data/person-schema.ts +++ b/amplify/data/person-schema.ts @@ -108,6 +108,7 @@ const personSchmema = { dateOfDeath: a.date(), meetings: a.hasMany("MeetingParticipant", "personId"), accounts: a.hasMany("PersonAccount", "personId"), + payerAccounts: a.hasMany("PayerAccount", "mainContactId"), details: a.hasMany("PersonDetail", "personId"), learnings: a.hasMany("PersonLearning", "personId"), profile: a.hasOne("User", "personId"), diff --git a/api/useMrr.ts b/api/useMrr.ts new file mode 100644 index 000000000..21e1153d5 --- /dev/null +++ b/api/useMrr.ts @@ -0,0 +1,96 @@ +import { type Schema } from "@/amplify/data/resource"; +import { MrrImportData } from "@/api/useMrrImport"; +import { MrrFilters } from "@/components/analytics/useMrrFilter"; +import { mapPayerMrrs } from "@/helpers/analytics/analytics"; +import { SelectionSet, generateClient } from "aws-amplify/data"; +import { flatMap, flow, get, identity } from "lodash/fp"; +import useSWR from "swr"; +import { handleApiErrors } from "./globals"; +const client = generateClient(); + +const wipSelectionSet = [ + "latestMonths.month", + "latestMonths.payerMrrs.id", + "latestMonths.payerMrrs.companyName", + "latestMonths.payerMrrs.awsAccountNumber", + "latestMonths.payerMrrs.payerAccount.accountId", + "latestMonths.payerMrrs.isEstimated", + "latestMonths.payerMrrs.isReseller", + "latestMonths.payerMrrs.mrr", +] as const; + +export type MrrWipData = SelectionSet< + Schema["MrrDataUpload"]["type"], + typeof wipSelectionSet +>; + +export type Mrr = { + id: string; + month: string; + companyName: string; + awsAccountNumber: string; + payerAccountAccountId?: string; + isEstimated: boolean; + isReseller: boolean; + mrr: number; + lastYearMrr?: number; + lastQMrr?: number; +}; + +const mapWipMrr = ({ + month, + payerMrrs, +}: MrrWipData["latestMonths"][number]): Mrr[] => + payerMrrs.map(mapPayerMrrs(month)); + +const fetchMrrWip = async () => { + const { data, errors } = + await client.models.MrrDataUpload.listMrrDataUploadByStatusAndCreatedAt( + { status: "WIP" }, + { + sortDirection: "DESC", + limit: 1, + selectionSet: wipSelectionSet, + } + ); + if (errors) { + handleApiErrors(errors, "Loading Mrr (WIP) failed"); + throw errors; + } + try { + return flow( + identity, + get(0), + get("latestMonths"), + flatMap(mapWipMrr) + )(data); + } catch (error) { + console.error("fetchMrr", error); + throw error; + } +}; + +const fetchMrrDone = (noOfMonths?: MrrFilters) => async () => { + if (!noOfMonths) return; + + return undefined; +}; + +const fetchMrr = + (status: MrrImportData["status"], noOfMonths?: MrrFilters) => async () => { + const fetcher = status === "WIP" ? fetchMrrWip : fetchMrrDone(noOfMonths); + const data = await fetcher(); + return data; + }; + +const useMrr = (status: MrrImportData["status"], noOfMonths?: MrrFilters) => { + const { + data: mrr, + isLoading, + error, + } = useSWR(`/api/mrr/${status}/${noOfMonths}`, fetchMrr(status, noOfMonths)); + + return { mrr, isLoading, error }; +}; + +export default useMrr; diff --git a/api/useMrrImport.ts b/api/useMrrImport.ts new file mode 100644 index 000000000..f847b9c51 --- /dev/null +++ b/api/useMrrImport.ts @@ -0,0 +1,108 @@ +import { type Schema } from "@/amplify/data/resource"; +import { createUploadRecord } from "@/helpers/analytics/api-actions"; +import { + downloadAndProcessMrrImportData, + UpdateProgressBarFn, + uploadFile, +} from "@/helpers/analytics/process-upload"; +import { generateClient } from "aws-amplify/data"; +import { flow, get, map } from "lodash/fp"; +import { ChangeEvent } from "react"; +import useSWR from "swr"; +import { handleApiErrors } from "./globals"; +const client = generateClient(); + +export type MrrImportData = Schema["MrrDataUpload"]["type"]; + +type MrrImport = { + id: string; + s3Key: string; + status: MrrImportData["status"]; + createdAt: Date; +}; + +const mapMrrImport = ({ + id, + s3Key, + status, + createdAt, +}: MrrImportData): MrrImport => ({ + id: id, + s3Key: s3Key, + status: status, + createdAt: new Date(createdAt), +}); + +const fetchMrrImport = async () => { + const { data, errors } = + await client.models.MrrDataUpload.listMrrDataUploadByStatusAndCreatedAt( + { status: "WIP" }, + { sortDirection: "DESC", limit: 1 } + ); + if (errors) { + handleApiErrors(errors, "Loading MRR import failed"); + throw errors; + } + try { + return flow(map(mapMrrImport), get(0))(data); + } catch (error) { + console.error("fetchMrrImport", error); + throw error; + } +}; + +const useMrrImport = () => { + const { + data: mrrImport, + isLoading, + error, + mutate, + } = useSWR("/api/mrr-import", fetchMrrImport); + + const uploadAndProcessImportFile = + (updateProgress: UpdateProgressBarFn) => + async (event: ChangeEvent) => { + const upload = await uploadFile(event); + if (!upload) return; + const updated: MrrImport = { + createdAt: new Date(), + id: crypto.randomUUID(), + s3Key: upload.s3Path, + status: "WIP", + }; + mutate(updated, false); + const uploadRecord = await createUploadRecord(upload.s3Path); + if (!uploadRecord) { + mutate(updated); + return; + } + flow(mapMrrImport, mutate)(uploadRecord); + await downloadAndProcessMrrImportData( + uploadRecord.id, + upload.s3Path, + updateProgress + ); + return uploadRecord.id; + }; + + const closeImportFile = async () => { + if (!mrrImport) return; + const { data, errors } = await client.models.MrrDataUpload.update({ + id: mrrImport.id, + status: "DONE", + }); + if (errors) handleApiErrors(errors, "Closing import file failed"); + if (!data) return; + mutate(mrrImport); + }; + + return { + mrrImport, + isLoading, + error, + uploadAndProcessImportFile, + closeImportFile, + }; +}; + +export default useMrrImport; diff --git a/components/analytics/account-with-payers-accordion-item.tsx b/components/analytics/account-with-payers-accordion-item.tsx new file mode 100644 index 000000000..be8c1da3f --- /dev/null +++ b/components/analytics/account-with-payers-accordion-item.tsx @@ -0,0 +1,51 @@ +import { FC, useState, useEffect } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import { Accordion } from "../ui/accordion"; +import PayerAccordionItem from "./payer-accordion-item"; +import { Mrr } from "@/api/useMrr"; +import { + setAccountMrrByAccount, + setPayerAccountsFromMrr, + totalMrr, +} from "@/helpers/analytics/analytics"; + +type AccountWithPayersAccordionItemProps = { + account: string; + mrr: Mrr[] | undefined; +}; + +const AccountWithPayersAccordionItem: FC< + AccountWithPayersAccordionItemProps +> = ({ account, mrr }) => { + const [accountMrr, setAccountMrr] = useState([]); + const [payerAccounts, setPayerAccounts] = useState([]); + + useEffect(() => { + setAccountMrrByAccount(account, mrr, setAccountMrr); + }, [mrr, account]); + + useEffect(() => { + setPayerAccountsFromMrr(accountMrr, setPayerAccounts); + }, [accountMrr]); + + return ( + + + {payerAccounts.map((payer) => ( + + ))} + + + ); +}; + +export default AccountWithPayersAccordionItem; diff --git a/components/analytics/accounts-with-payers.tsx b/components/analytics/accounts-with-payers.tsx new file mode 100644 index 000000000..2f5a25403 --- /dev/null +++ b/components/analytics/accounts-with-payers.tsx @@ -0,0 +1,48 @@ +import { setAccountsFromMrr, totalMrr } from "@/helpers/analytics/analytics"; +import { cn } from "@/lib/utils"; +import { FC, useEffect, useState } from "react"; +import ApiLoadingError from "../layouts/ApiLoadingError"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import { Accordion } from "../ui/accordion"; +import AccountWithPayersAccordionItem from "./account-with-payers-accordion-item"; +import MrrLoading from "./mrr-loading"; +import { useMrrFilter } from "./useMrrFilter"; + +type AccountsWithPayersProps = { + className?: string; +}; + +const AccountsWithPayers: FC = ({ className }) => { + const { mrr, isLoading, error } = useMrrFilter(); + const [accounts, setAccounts] = useState([]); + + useEffect(() => { + setAccountsFromMrr(mrr, setAccounts); + }, [mrr]); + + return ( + +
+ + + + {isLoading && } + + {accounts.map((account) => ( + + ))} + +
+
+ ); +}; + +export default AccountsWithPayers; diff --git a/components/analytics/import-data.tsx b/components/analytics/import-data.tsx new file mode 100644 index 000000000..4d53e5314 --- /dev/null +++ b/components/analytics/import-data.tsx @@ -0,0 +1,66 @@ +import useMrrImport from "@/api/useMrrImport"; +import { cn } from "@/lib/utils"; +import { Loader2 } from "lucide-react"; +import { useState } from "react"; +import ApiLoadingError from "../layouts/ApiLoadingError"; +import { Button } from "../ui/button"; +import { Input } from "../ui/input"; +import { Label } from "../ui/label"; +import { Progress } from "../ui/progress"; + +const ImportMrrData = () => { + const { + mrrImport, + isLoading, + error, + uploadAndProcessImportFile, + closeImportFile, + } = useMrrImport(); + const [progressBar, setProgressBar] = useState(0); + + return ( +
+ + + {!mrrImport && ( +
+ {isLoading ? ( +
+ Loading status of imported data… + +
+ ) : ( + + )} + +
+ )} + + {mrrImport && ( +
+
99 && "hidden" + )} + > +
+ {progressBar < 100 ? "Processing data…" : "Done!"} +
+ +
+
+ )} + + {mrrImport && ( + + )} +
+ ); +}; + +export default ImportMrrData; diff --git a/components/analytics/month-accordion-item.tsx b/components/analytics/month-accordion-item.tsx new file mode 100644 index 000000000..6484876f8 --- /dev/null +++ b/components/analytics/month-accordion-item.tsx @@ -0,0 +1,52 @@ +import { Mrr } from "@/api/useMrr"; +import AccordionItemBadge from "@/components/accordion-item-badge/badge"; +import { setMonthMrrByMonth } from "@/helpers/analytics/analytics"; +import { formatRevenue } from "@/helpers/functional"; +import { FC, useEffect, useState } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import ResellerBadge from "./reseller-badge"; + +type MonthAccordionItemProps = { + month: string; + payerAccountMrr: Mrr[]; +}; + +const MonthAccordionItem: FC = ({ + month, + payerAccountMrr, +}) => { + const [monthMrr, setMonthMrr] = useState(); + + useEffect(() => { + setMonthMrrByMonth(month, payerAccountMrr, setMonthMrr); + }, [month, payerAccountMrr]); + + return ( + + {monthMrr?.isEstimated && ( + + )} + {monthMrr?.isReseller && } + + } + > + {monthMrr && ( +
+
+ MRR: {formatRevenue(monthMrr.mrr ?? 0)} +
+
+ )} +
+ ); +}; + +export default MonthAccordionItem; diff --git a/components/analytics/mrr-current-import.tsx b/components/analytics/mrr-current-import.tsx new file mode 100644 index 000000000..8d0a092b5 --- /dev/null +++ b/components/analytics/mrr-current-import.tsx @@ -0,0 +1,56 @@ +import useMrr from "@/api/useMrr"; +import { setAccountsFromMrr, totalMrr } from "@/helpers/analytics/analytics"; +import { cn } from "@/lib/utils"; +import { FC, useEffect, useState } from "react"; +import ApiLoadingError from "../layouts/ApiLoadingError"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import { Accordion } from "../ui/accordion"; +import AccountWithPayersAccordionItem from "./account-with-payers-accordion-item"; +import MrrLoading from "./mrr-loading"; +import PayerAccountIssues from "./payer-account-issues"; + +type MrrCurrentImportProps = { + className?: string; +}; + +const MrrCurrentImport: FC = ({ className }) => { + const { mrr, isLoading, error } = useMrr("WIP"); + const [accounts, setAccounts] = useState([]); + + useEffect(() => { + setAccountsFromMrr(mrr, setAccounts); + }, [mrr]); + + return ( + <> + + + +
+ + + + {isLoading && } + + {accounts.map((account) => ( + + ))} + +
+
+ + ); +}; + +export default MrrCurrentImport; diff --git a/components/analytics/mrr-documentation.tsx b/components/analytics/mrr-documentation.tsx new file mode 100644 index 000000000..eb85f6d89 --- /dev/null +++ b/components/analytics/mrr-documentation.tsx @@ -0,0 +1,40 @@ +import imgDownload from "@/public/images/analytics/mrr-download.png"; +import imgFilter from "@/public/images/analytics/mrr-filters.png"; +import { ExternalLink } from "lucide-react"; +import Image from "next/image"; +import Link from "next/link"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; + +const TABLEAU_URL = + "https://awstableau.corp.amazon.com/t/WWSalesInsights/views/MonthlyRevenueDeep/DeepMonthlyRevenue?%3Aembed=yes&%3Alinktarget=_blank&%3Aoriginal_view=yes#1" as const; + +const MrrDocumentation = () => ( + +
+
DESCRIBE TIPS & TRICKS HERE (WIP)
+
+ + Open Tableau{" "} + + +
+
+ Tableau Filter +
+
+ Tableau Download +
+
+
+); + +export default MrrDocumentation; diff --git a/components/analytics/mrr-filter-btn-grp.tsx b/components/analytics/mrr-filter-btn-grp.tsx new file mode 100644 index 000000000..b1828e77f --- /dev/null +++ b/components/analytics/mrr-filter-btn-grp.tsx @@ -0,0 +1,24 @@ +import { cn } from "@/lib/utils"; +import { FC } from "react"; +import ButtonGroup from "../ui-elements/btn-group/btn-group"; +import { MRR_FILTERS, useMrrFilter } from "./useMrrFilter"; + +type MrrFilterBtnGrpProps = { + className?: string; +}; + +const MrrFilterBtnGrp: FC = ({ className }) => { + const { mrrFilter, setMrrFilter } = useMrrFilter(); + + return ( +
+ +
+ ); +}; + +export default MrrFilterBtnGrp; diff --git a/components/analytics/mrr-loading.tsx b/components/analytics/mrr-loading.tsx new file mode 100644 index 000000000..0d988182b --- /dev/null +++ b/components/analytics/mrr-loading.tsx @@ -0,0 +1,18 @@ +import { flow, identity, map, times } from "lodash/fp"; +import LoadingAccordionItem from "../ui-elements/accordion/LoadingAccordionItem"; + +const MrrLoading = () => + flow( + identity, + times(identity), + map((id) => ( + + )) + )(10); + +export default MrrLoading; diff --git a/components/analytics/payer-accordion-item.tsx b/components/analytics/payer-accordion-item.tsx new file mode 100644 index 000000000..9486833f1 --- /dev/null +++ b/components/analytics/payer-accordion-item.tsx @@ -0,0 +1,54 @@ +import { Mrr } from "@/api/useMrr"; +import { + hasResellerItems, + setMonthsByPayer, + setPayerAccountMrrByPayer, + totalMrr, +} from "@/helpers/analytics/analytics"; +import { FC, useEffect, useState } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import { Accordion } from "../ui/accordion"; +import MonthAccordionItem from "./month-accordion-item"; +import ResellerBadge from "./reseller-badge"; + +type PayerAccordionItemProps = { + accountMrr: Mrr[]; + payerAccount: string; +}; + +const PayerAccordionItem: FC = ({ + payerAccount, + accountMrr, +}) => { + const [payerAccountMrr, setPayerAccountMrr] = useState([]); + const [months, setMonths] = useState([]); + + useEffect(() => { + setPayerAccountMrrByPayer(payerAccount, accountMrr, setPayerAccountMrr); + }, [payerAccount, accountMrr]); + + useEffect(() => { + setMonthsByPayer(payerAccountMrr, setMonths); + }, [payerAccountMrr]); + + return ( + } + > + + {months.map((month) => ( + + ))} + + + ); +}; + +export default PayerAccordionItem; diff --git a/components/analytics/payer-account-issue.tsx b/components/analytics/payer-account-issue.tsx new file mode 100644 index 000000000..6449d122c --- /dev/null +++ b/components/analytics/payer-account-issue.tsx @@ -0,0 +1,36 @@ +import { MrrDataIssue } from "@/helpers/analytics/analytics"; +import { FC } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; + +type PayerAccountIssueProps = { + issue: MrrDataIssue; +}; + +const PayerAccountIssue: FC = ({ + issue: { awsAccountNumber, companyName, linkedCompanyName }, +}) => { + return ( + +
+
+ AWS Payer ID:{" "} + {awsAccountNumber} +
+
+ Company in report:{" "} + {companyName} +
+
+ Company linked:{" "} + {linkedCompanyName || "None"} +
+
+
+ ); +}; + +export default PayerAccountIssue; diff --git a/components/analytics/payer-account-issues.tsx b/components/analytics/payer-account-issues.tsx new file mode 100644 index 000000000..ebaf7c527 --- /dev/null +++ b/components/analytics/payer-account-issues.tsx @@ -0,0 +1,41 @@ +import { FC, useState, useEffect } from "react"; +import { Mrr } from "@/api/useMrr"; +import { + MrrDataIssue, + setPayerAccountIssues, +} from "@/helpers/analytics/analytics"; +import { useAccountsContext } from "@/api/ContextAccounts"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import { Accordion } from "../ui/accordion"; +import PayerAccountIssue from "./payer-account-issue"; + +type PayerAccountIssuesProps = { + mrr?: Mrr[]; +}; + +const PayerAccountIssues: FC = ({ mrr }) => { + const { accounts } = useAccountsContext(); + const [issues, setIssues] = useState([]); + + useEffect(() => { + setPayerAccountIssues(mrr, accounts, setIssues); + }, [mrr, accounts]); + + return ( + issues.length > 0 && ( + + + {issues.map((issue) => ( + + ))} + + + ) + ); +}; + +export default PayerAccountIssues; diff --git a/components/analytics/reseller-badge.tsx b/components/analytics/reseller-badge.tsx new file mode 100644 index 000000000..5814a497e --- /dev/null +++ b/components/analytics/reseller-badge.tsx @@ -0,0 +1,16 @@ +import { cn } from "@/lib/utils"; +import { FC } from "react"; +import AccordionItemBadge from "../accordion-item-badge/badge"; + +type ResellerBadgeProps = { + className?: string; +}; + +const ResellerBadge: FC = ({ className }) => ( + +); + +export default ResellerBadge; diff --git a/components/analytics/useMrrFilter.tsx b/components/analytics/useMrrFilter.tsx new file mode 100644 index 000000000..cd8eb5202 --- /dev/null +++ b/components/analytics/useMrrFilter.tsx @@ -0,0 +1,64 @@ +import useMrr, { Mrr } from "@/api/useMrr"; +import { ComponentType, createContext, FC, useContext, useState } from "react"; + +const MRR_FILTERS_CONST = ["3", "6", "12", "24"] as const; +export type MrrFilters = (typeof MRR_FILTERS_CONST)[number]; +export const MRR_FILTERS = ["3", "6", "12", "24"] as MrrFilters[]; + +const isValidMrrFilter = (filter: string): filter is MrrFilters => + MRR_FILTERS_CONST.includes(filter as MrrFilters); + +interface MrrFilterType { + mrr: Mrr[] | undefined; + isLoading: ReturnType["isLoading"]; + error: ReturnType["error"]; + mrrFilter: MrrFilters; + setMrrFilter: (filter: string) => void; +} + +const MrrFilter = createContext(null); + +export const useMrrFilter = () => { + const searchContext = useContext(MrrFilter); + if (!searchContext) + throw new Error("useMrrFilter must be used within MrrFilterProvider"); + return searchContext; +}; + +interface MrrFilterProviderProps { + children: React.ReactNode; +} + +const MrrFilterProvider: FC = ({ children }) => { + const [mrrFilter, setMrrFilter] = useState("12"); + const { mrr, isLoading, error } = useMrr("DONE", mrrFilter); + + const onFilterChange = (newFilter: string) => + isValidMrrFilter(newFilter) && setMrrFilter(newFilter); + + return ( + + {children} + + ); +}; + +export function withMrrFilter( + Component: ComponentType +) { + return function WrappedProvider(componentProps: Props) { + return ( + + + + ); + }; +} diff --git a/components/navigation-menu/NavigationMenu.tsx b/components/navigation-menu/NavigationMenu.tsx index 545a981eb..a1dc83eec 100644 --- a/components/navigation-menu/NavigationMenu.tsx +++ b/components/navigation-menu/NavigationMenu.tsx @@ -106,6 +106,7 @@ const NavigationMenu = () => { { label: "Accounts", url: "/accounts", shortcut: "^A" }, { label: "Territories", url: "/territories" }, { label: "CRM Projects", url: "/crm-projects" }, + { label: "Customer Financials", url: "/customer-financials" }, { label: "Count of Interactions", url: "/interactions" }, ] : []), diff --git a/docs/releases/next.md b/docs/releases/next.md index caca738af..c5e6d75d6 100644 --- a/docs/releases/next.md +++ b/docs/releases/next.md @@ -1,5 +1,8 @@ # Monatliche Umsätze der Kunden abbilden (Version :VERSION) +- Datenbankschema ist erweitert, um das Hochladen von Kundenumsätzen zu unterstützen. +- Tableau Daten können nun importiert werden. Dazu werden die Kunden mit ihren Payer Accounts gezeigt und den jeweiligen Umsätzen pro Monat. Es wird auf Probleme hingewiesen, wenn die Payer Accounts nicht zugeordnet werden konnten. Meist liegt das daran, dass der Kundenname nicht übereinstimmt oder dass der Payer Account dem Kunden noch zugeordnet werden muss. + ## Packages aktualisiert Von "Current" auf "Latest" aktualisiert: @@ -16,7 +19,6 @@ Von "Current" auf "Latest" aktualisiert: ## In Arbeit -- Datenbankschema ist erweitert, um das Hochladen von Kundenumsätzen zu unterstützen. - Monatliche Umsätze der Kunden abbilden ## Geplant diff --git a/helpers/analytics/analytics.ts b/helpers/analytics/analytics.ts new file mode 100644 index 000000000..6567b9abe --- /dev/null +++ b/helpers/analytics/analytics.ts @@ -0,0 +1,219 @@ +import { Account } from "@/api/ContextAccounts"; +import { Mrr, MrrWipData } from "@/api/useMrr"; +import { MrrFilters } from "@/components/analytics/useMrrFilter"; +import { formatDateYyyyMm, formatRevenue } from "@/helpers/functional"; +import { addMonths } from "date-fns"; +import { + filter, + find, + flow, + get, + identity, + join, + last, + map, + orderBy, + replace, + size, + some, + sortBy, + sum, + uniq, +} from "lodash/fp"; +import { Dispatch, SetStateAction } from "react"; + +type PayerMrrsData = MrrWipData["latestMonths"][number]["payerMrrs"][number]; + +export type MrrDataIssue = { + awsAccountNumber: string; + companyName: string; + linkedCompanyName: string; +}; + +const substractMonthsFp = (noOfMonths: number) => + addMonths(new Date(), -noOfMonths); + +export const getMinMonth = flow( + identity, + parseInt, + substractMonthsFp, + formatDateYyyyMm +); + +const parseMonthToInt = flow(identity, replace("-", ""), parseInt); + +export const mapPayerMrrs = + (month: string) => + ({ payerAccount, mrr, ...rest }: PayerMrrsData): Mrr => ({ + month, + mrr: mrr ?? 0, + payerAccountAccountId: payerAccount?.accountId ?? undefined, + ...rest, + }); + +const byAccount = + (account: string) => + ({ companyName }: Mrr) => + companyName === account; + +const byPayerAccount = + (payerAccount: string) => + ({ awsAccountNumber }: Mrr) => + awsAccountNumber === payerAccount; + +const byMonth = (month: string) => (mrr: Mrr) => month === mrr.month; + +const mrrByAccount = (mrr: Mrr[]) => (account: string) => + -( + flow(identity, filter(byAccount(account)), map("mrr"), sum)(mrr) ?? 0 + ); + +const mrrByPayerAccount = (mrr: Mrr[]) => (payerAccount: string) => + -( + flow( + identity, + filter(byPayerAccount(payerAccount)), + map("mrr"), + sum + )(mrr) ?? 0 + ); + +export const setAccountsFromMrr = ( + mrr: Mrr[] | undefined, + setAccounts: Dispatch> +) => + mrr && + flow( + identity, + map("companyName"), + uniq, + sortBy(mrrByAccount(mrr)), + setAccounts + )(mrr); + +export const setAccountMrrByAccount = ( + account: string, + mrr: Mrr[] | undefined, + setAccounts: Dispatch> +) => mrr && flow(identity, filter(byAccount(account)), setAccounts)(mrr); + +export const setPayerAccountsFromMrr = ( + mrr: Mrr[] | undefined, + setPayerAccounts: Dispatch> +) => + mrr && + flow( + identity, + map("awsAccountNumber"), + uniq, + sortBy(mrrByPayerAccount(mrr)), + setPayerAccounts + )(mrr); + +export const setPayerAccountMrrByPayer = ( + payer: string, + mrr: Mrr[], + setAccounts: Dispatch> +) => flow(identity, filter(byPayerAccount(payer)), setAccounts)(mrr); + +export const setMonthsByPayer = ( + mrr: Mrr[] | undefined, + setMonths: Dispatch> +) => + mrr && + flow( + identity, + map("month"), + uniq, + sortBy(parseMonthToInt), + setMonths + )(mrr); + +export const setMonthMrrByMonth = ( + month: string, + mrr: Mrr[], + setMonthMrr: Dispatch> +) => flow(identity, filter(byMonth(month)), get(0), setMonthMrr)(mrr); + +const getMonthRevenueStr = (mrr: Mrr[]) => (lastMonth: string) => + `${lastMonth}: ${flow( + identity, + filter(byMonth(lastMonth)), + map("mrr"), + sum, + formatRevenue + )(mrr)}`; + +const getLastMonth = flow( + identity, + map("month"), + uniq, + sortBy(parseMonthToInt), + last +); + +const countMonths = flow(identity, map("month"), uniq, size); + +const getRevenueStr = (mrr: Mrr[]) => (totalMrr: number) => + totalMrr === 0 + ? "No data" + : `Total: ${formatRevenue(totalMrr)}, Avg: ${formatRevenue( + totalMrr / countMonths(mrr) + )}, ${flow(getLastMonth, getMonthRevenueStr(mrr))(mrr)}`; + +export const totalMrr = (mrr: Mrr[]) => + flow(identity, map("mrr"), sum, getRevenueStr(mrr))(mrr); + +export const hasResellerItems = flow(identity, some("isReseller")); + +const addCompanyNames = + (mrr: Mrr[]) => + (awsAccountNumber: string): Omit => ({ + awsAccountNumber, + companyName: flow( + filter(byPayerAccount(awsAccountNumber)), + map("companyName"), + uniq, + join(", ") + )(mrr), + }); + +const mapAccountName = (accounts: Account[]) => (accountId: string) => + flow( + find(({ id }) => id === accountId), + get("name") + )(accounts); + +const addLinkedAccountNames = + (mrr: Mrr[], accounts: Account[]) => + (issue: Omit): MrrDataIssue => ({ + ...issue, + linkedCompanyName: flow( + filter(byPayerAccount(issue.awsAccountNumber)), + map("payerAccountAccountId"), + uniq, + map(mapAccountName(accounts)), + join(", ") + )(mrr), + }); + +const companiesDontMatch = ({ companyName, linkedCompanyName }: MrrDataIssue) => + companyName !== linkedCompanyName; + +export const setPayerAccountIssues = ( + mrr: Mrr[] | undefined, + accounts: Account[] | undefined, + setIssues: Dispatch> +) => + mrr && + accounts && + flow( + identity, + map("awsAccountNumber"), + uniq, + map(addCompanyNames(mrr)), + map(addLinkedAccountNames(mrr, accounts)), + filter(companiesDontMatch), + orderBy(["companyName"], ["asc"]), + setIssues + )(mrr); diff --git a/helpers/analytics/api-actions.ts b/helpers/analytics/api-actions.ts new file mode 100644 index 000000000..b3c12ce6d --- /dev/null +++ b/helpers/analytics/api-actions.ts @@ -0,0 +1,98 @@ +import { type Schema } from "@/amplify/data/resource"; +import { handleApiErrors } from "@/api/globals"; +import { + Month, + MonthMrr, + UpdateProgressBarFn, +} from "@/helpers/analytics/process-upload"; +import { newDateTimeString } from "@/helpers/functional"; +import { generateClient } from "aws-amplify/data"; +import { map } from "lodash/fp"; +const client = generateClient(); + +type MonthData = Schema["Month"]["type"]; + +export const createUploadRecord = async (s3Path: string) => { + const { data, errors } = await client.models.MrrDataUpload.create({ + s3Key: s3Path, + status: "WIP", + createdAt: newDateTimeString(), + }); + if (errors) handleApiErrors(errors, "Updating data record failed"); + return data; +}; + +export const createMonth = async (month: string, uploadId: string) => { + const { data, errors } = await client.models.Month.create({ + month, + latestUploadId: uploadId, + }); + if (errors) { + handleApiErrors(errors, "Creating month failed"); + throw errors; + } + if (!data) return; + return mapMonth(data); +}; + +export const updateMonth = async (monthId: string, uploadId: string) => { + const { data, errors } = await client.models.Month.update({ + id: monthId, + latestUploadId: uploadId, + }); + if (errors) { + handleApiErrors(errors, "Updating month failed"); + throw errors; + } + if (!data) return; + return mapMonth(data); +}; + +const mapMonth = ({ id, month, latestUploadId }: MonthData): Month => ({ + id, + month, + latestUploadId, +}); + +export const fetchMonths = async () => { + const { data, errors } = await client.models.Month.list({ limit: 200 }); + if (errors) { + handleApiErrors(errors, "Fetching months failed"); + throw errors; + } + return map(mapMonth)(data); +}; + +export const createMrrRecord = + ( + updateProgress: UpdateProgressBarFn, + totalRecords: number, + uploadId: string + ) => + async ({ + account, + payerId, + monthId, + isEstimated, + isReseller, + value, + }: MonthMrr) => { + const { data, errors } = await client.models.PayerAccountMrr.create({ + uploadId, + monthId, + companyName: account, + awsAccountNumber: payerId, + isEstimated, + isReseller, + mrr: value, + }); + if (errors) { + handleApiErrors( + errors, + `Creating MRR record failed (PayerId: ${payerId}, MonthId: ${monthId})` + ); + throw errors; + } + updateProgress((current) => current + (1 / totalRecords) * 100); + return data; + }; diff --git a/helpers/analytics/process-upload.ts b/helpers/analytics/process-upload.ts new file mode 100644 index 000000000..91e0a1b6f --- /dev/null +++ b/helpers/analytics/process-upload.ts @@ -0,0 +1,206 @@ +import { + createMonth, + createMrrRecord, + fetchMonths, + updateMonth, +} from "@/helpers/analytics/api-actions"; +import { formatDateYyyyMm, parseDate } from "@/helpers/functional"; +import { + downloadDataFromS3, + percentLoaded, + uploadFileToS3, +} from "@/helpers/s3/upload-files"; +import { de, enUS } from "date-fns/locale"; +import { + drop, + filter, + flatMap, + flow, + get, + identity, + map, + replace, + split, +} from "lodash/fp"; +import { ChangeEvent, Dispatch, SetStateAction } from "react"; + +export type Month = { + id: string; + month: string; + latestUploadId: string; +}; + +export type MonthMrr = { + monthId: string; + value: number; + isEstimated: boolean; + isReseller: boolean; + account: string; + payerId: string; +}; + +export type UpdateProgressBarFn = Dispatch>; + +export const uploadFile = async (event: ChangeEvent) => { + if (!event.target.files) return; + const file = event.target.files[0]; + if (!file) return; + const { s3Path } = await uploadFileToS3( + file, + "user-files/${identityId}/mrr-imports/${filename}" + ); + return { s3Path, fileName: file.name }; +}; + +const convertMonth = (date: string) => { + try { + return flow(parseDate("MMM yyyy", de), formatDateYyyyMm)(date); + } catch (error) { + console.warn("Date not in format 'MMM yyyy' and with 'de' locale", error); + try { + return flow(parseDate("MMM yyyy", enUS), formatDateYyyyMm)(date); + } catch (error) { + console.warn( + "Date not in format 'MMM yyyy' and with 'enUS' locale", + error + ); + try { + return flow(parseDate("MMMM yyyy", de), formatDateYyyyMm)(date); + } catch (error) { + console.warn( + "Date not in format 'MMMM yyyy' and with 'de' locale", + error + ); + try { + return flow(parseDate("MMMM yyyy", enUS), formatDateYyyyMm)(date); + } catch (error) { + console.warn( + "Date not in format 'MMMM yyyy' and with 'enUS' locale", + error + ); + return null; + } + } + } + } +}; + +const getMonthsFromHeader = flow( + identity, + split("\r\n"), + get(0), + split("\t"), + drop(6), + map(replace("Sept.", "Sep")), + map(convertMonth) +); + +const parseNumber = flow(identity, replace(".", ""), (num: string) => { + const result = parseInt(num); + if (isNaN(result)) return 0; + return result; +}); + +type MapMrrValuesProps = { + account: string; + payerId: string; + isReseller: boolean; + isEstimated: boolean; + months: (Month | undefined)[]; +}; + +const mapMrrValues = + ({ account, payerId, isReseller, isEstimated, months }: MapMrrValuesProps) => + (line: string[]) => + line.map( + (val, idx): MonthMrr => ({ + monthId: months[idx]?.id ?? "", + value: parseNumber(val), + isReseller, + isEstimated, + account, + payerId, + }) + ); + +const nonZeroMrr = (mrr: MonthMrr) => mrr.value !== 0; +const validMonth = (mrrData: MonthMrr) => mrrData.monthId !== ""; + +const processPayerIdLine = + (months: (Month | undefined)[]) => (line: string) => { + const lineArray = line.split("\t"); + return flow( + identity, + drop(6), + mapMrrValues({ + months, + account: lineArray[0], + payerId: lineArray[1], + isReseller: lineArray[2] === "Y", + isEstimated: lineArray[5] === "N", + }), + filter(nonZeroMrr), + filter(validMonth) + )(lineArray); + }; + +const getOrCreateMonths = async ( + uploadId: string, + dbMonths: Month[], + data: string +) => { + const monthsStr = getMonthsFromHeader(data); + const months: (Month | undefined)[] = await Promise.all( + monthsStr.map(async (month) => { + if (!month) throw new Error("getOrCreateMonths: month is null"); + const existing = dbMonths.find((m) => m.month === month); + if (!existing) return await createMonth(month, uploadId); + return await updateMonth(existing.id, uploadId); + }) + ); + return months; +}; + +const createMrrRecords = ( + updateProgress: UpdateProgressBarFn, + uploadId: string, + mrrData: MonthMrr[] +) => + Promise.all( + map(createMrrRecord(updateProgress, mrrData.length, uploadId))(mrrData) + ); + +const validPayer = (mrrRecord: MonthMrr) => + !!mrrRecord.payerId && mrrRecord.payerId !== "000000000000"; + +const parseCsvToJson = async ( + updateProgress: UpdateProgressBarFn, + uploadId: string, + data: string +) => { + const dbMonths = await fetchMonths(); + const months = await getOrCreateMonths(uploadId, dbMonths, data); + const mrrData = flow( + identity, + split("\r\n"), + drop(2), + flatMap(processPayerIdLine(months)), + filter(validPayer) + )(data); + await createMrrRecords(updateProgress, uploadId, mrrData); +}; + +export const downloadAndProcessMrrImportData = async ( + uploadId: string, + s3Key: string, + updateProgress: UpdateProgressBarFn +) => { + const path = s3Key; + const { result } = await downloadDataFromS3( + path, + flow(percentLoaded, updateProgress) + ); + const csvData = await (await result).body.text(); + updateProgress(0); + await parseCsvToJson(updateProgress, uploadId, csvData); +}; diff --git a/helpers/functional.ts b/helpers/functional.ts index c12f2a748..284e8c93c 100644 --- a/helpers/functional.ts +++ b/helpers/functional.ts @@ -3,6 +3,8 @@ import { addMinutes, differenceInCalendarDays, format, + Locale, + parse, } from "date-fns"; import { flow, @@ -86,3 +88,6 @@ export const normalize = flow( ); export const includesNormalized = (search: string) => (toSearchIn: string) => flow(identity, normalize, includes)(search)(toSearchIn); +export const parseDate = (format: string, locale: Locale) => (date: string) => + parse(date, format, new Date(), { locale }); +export const formatDateYyyyMm = (date: Date) => format(date, "yyyy-MM"); diff --git a/pages/customer-financials/index.tsx b/pages/customer-financials/index.tsx new file mode 100644 index 000000000..89abd5cb1 --- /dev/null +++ b/pages/customer-financials/index.tsx @@ -0,0 +1,30 @@ +import AccountsWithPayers from "@/components/analytics/accounts-with-payers"; +import ImportMrrData from "@/components/analytics/import-data"; +import MrrCurrentImport from "@/components/analytics/mrr-current-import"; +import MrrDocumentation from "@/components/analytics/mrr-documentation"; +import MrrFilterBtnGrp from "@/components/analytics/mrr-filter-btn-grp"; +import { withMrrFilter } from "@/components/analytics/useMrrFilter"; +import MainLayout from "@/components/layouts/MainLayout"; +import { Accordion } from "@/components/ui/accordion"; + +const CustomerFinancialsPage = () => { + return ( + +
+ + + + + + + + + + + +
+
+ ); +}; + +export default withMrrFilter(CustomerFinancialsPage); diff --git a/public/images/analytics/mrr-download.png b/public/images/analytics/mrr-download.png new file mode 100644 index 0000000000000000000000000000000000000000..1349be35f23acd6ff0486ff8b72048ce79c4a6a8 GIT binary patch literal 53551 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 D#|=4O literal 0 HcmV?d00001 diff --git a/public/images/analytics/mrr-filters.png b/public/images/analytics/mrr-filters.png new file mode 100644 index 0000000000000000000000000000000000000000..f9433cc79e034ea096c8dd210a68da593ac02c1c GIT binary patch literal 35473 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

Yf#6VKRV0 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 P0YC3WWZsnsY5V*iWuhBC literal 0 HcmV?d00001 From 47c8a71b7b2d78b5752062606f243b33819962b4 Mon Sep 17 00:00:00 2001 From: Carsten Koch Date: Mon, 28 Oct 2024 11:44:29 +0100 Subject: [PATCH 3/7] feat: adding an example data table; WIP to move data in table format --- amplify/data/analytics-schema.ts | 1 + api/useMrr.ts | 50 +++++++- .../analytics/analytics-table-column.ts | 17 +++ .../analytics/analytics-table-example-data.ts | 27 ++++ components/analytics/analytics-table.tsx | 79 ++++++++++++ components/analytics/mrr-current-import.tsx | 8 ++ components/ui/table.tsx | 117 ++++++++++++++++++ docs/releases/next.md | 1 + helpers/analytics/analytics.ts | 14 ++- helpers/analytics/api-actions.ts | 56 ++++++++- package-lock.json | 34 +++++ package.json | 1 + 12 files changed, 396 insertions(+), 9 deletions(-) create mode 100644 components/analytics/analytics-table-column.ts create mode 100644 components/analytics/analytics-table-example-data.ts create mode 100644 components/analytics/analytics-table.tsx create mode 100644 components/ui/table.tsx diff --git a/amplify/data/analytics-schema.ts b/amplify/data/analytics-schema.ts index 4e7c8bc56..8ea09fa28 100644 --- a/amplify/data/analytics-schema.ts +++ b/amplify/data/analytics-schema.ts @@ -43,6 +43,7 @@ const analyticsSchema = { isReseller: a.boolean().required(), mrr: a.integer(), }) + .secondaryIndexes((index) => [index("uploadId")]) .authorization((allow) => [allow.owner()]), }; diff --git a/api/useMrr.ts b/api/useMrr.ts index 21e1153d5..9cc832a0f 100644 --- a/api/useMrr.ts +++ b/api/useMrr.ts @@ -1,9 +1,19 @@ import { type Schema } from "@/amplify/data/resource"; import { MrrImportData } from "@/api/useMrrImport"; import { MrrFilters } from "@/components/analytics/useMrrFilter"; -import { mapPayerMrrs } from "@/helpers/analytics/analytics"; +import { + getMinMonth, + mapPayerMrrs, + sortByMonth, +} from "@/helpers/analytics/analytics"; +import { + DoneMonthMrrData, + getMonthMrr, + getMonths, +} from "@/helpers/analytics/api-actions"; +import { logFp } from "@/helpers/functional"; import { SelectionSet, generateClient } from "aws-amplify/data"; -import { flatMap, flow, get, identity } from "lodash/fp"; +import { flatMap, flow, get, identity, map } from "lodash/fp"; import useSWR from "swr"; import { handleApiErrors } from "./globals"; const client = generateClient(); @@ -34,7 +44,7 @@ export type Mrr = { isReseller: boolean; mrr: number; lastYearMrr?: number; - lastQMrr?: number; + lastPeriodMrr?: number; }; const mapWipMrr = ({ @@ -70,10 +80,42 @@ const fetchMrrWip = async () => { } }; +const comparePeriods = ( + noOfMonths: number, + months: MrrWipData["latestMonths"][] +) => { + console.log("comparePeriods", months); +}; + +export type DoneMonthData = { + month: string; + payerMrrs: DoneMonthMrrData[]; +}; + +type MonthPayerMrrs = {}; + +const mapDoneMrr = ({ month, payerMrrs }: DoneMonthData) => ({ + month, + payerMrrs: payerMrrs.map(({ payerAccount, ...rest }) => ({ + ...rest, + payerAccountAccountId: payerAccount.accountId, + })), +}); + const fetchMrrDone = (noOfMonths?: MrrFilters) => async () => { if (!noOfMonths) return; + const noOfMonthsInt = parseInt(noOfMonths); + const startMonth = getMinMonth(noOfMonthsInt); + const months = await getMonths(startMonth); + if (!months) return; + const data = await Promise.all(months.map(getMonthMrr)); + const orderedMonths = flow( + map(mapDoneMrr), + sortByMonth, + logFp("fetchMrrDone") + )(data); - return undefined; + return flow(flatMap(mapWipMrr))(orderedMonths); }; const fetchMrr = diff --git a/components/analytics/analytics-table-column.ts b/components/analytics/analytics-table-column.ts new file mode 100644 index 000000000..d477d839b --- /dev/null +++ b/components/analytics/analytics-table-column.ts @@ -0,0 +1,17 @@ +import { ColumnDef } from "@tanstack/react-table"; +import { Payment } from "./analytics-table-example-data"; + +export const columns: ColumnDef[] = [ + { + accessorKey: "status", + header: "Status", + }, + { + accessorKey: "email", + header: "Email", + }, + { + accessorKey: "amount", + header: "Amount", + }, +]; diff --git a/components/analytics/analytics-table-example-data.ts b/components/analytics/analytics-table-example-data.ts new file mode 100644 index 000000000..9dde11516 --- /dev/null +++ b/components/analytics/analytics-table-example-data.ts @@ -0,0 +1,27 @@ +export type Payment = { + id: string; + amount: number; + status: "pending" | "processing" | "success" | "failed"; + email: string; +}; + +export const getData = (): Payment[] => { + // Fetch data from your API here. + return payments; +}; + +const payments: Payment[] = [ + { + id: "728ed52f", + amount: 100, + status: "pending", + email: "m@example.com", + }, + { + id: "489e1d42", + amount: 125, + status: "processing", + email: "example@gmail.com", + }, + // ... +]; diff --git a/components/analytics/analytics-table.tsx b/components/analytics/analytics-table.tsx new file mode 100644 index 000000000..96cc229a9 --- /dev/null +++ b/components/analytics/analytics-table.tsx @@ -0,0 +1,79 @@ +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; +import { + ColumnDef, + flexRender, + getCoreRowModel, + useReactTable, +} from "@tanstack/react-table"; + +interface AnalyticsTableProps { + columns: ColumnDef[]; + data: TData[]; +} + +const AnalyticsTable = ({ + columns, + data, +}: AnalyticsTableProps) => { + const table = useReactTable({ + data, + columns, + getCoreRowModel: getCoreRowModel(), + }); + + return ( +

+ + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext() + )} + + ); + })} + + ))} + + + {table.getRowModel().rows?.length ? ( + table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} + + )) + ) : ( + + + No results. + + + )} + +
+
+ ); +}; + +export default AnalyticsTable; diff --git a/components/analytics/mrr-current-import.tsx b/components/analytics/mrr-current-import.tsx index 8d0a092b5..200895bb6 100644 --- a/components/analytics/mrr-current-import.tsx +++ b/components/analytics/mrr-current-import.tsx @@ -6,6 +6,9 @@ import ApiLoadingError from "../layouts/ApiLoadingError"; import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; import { Accordion } from "../ui/accordion"; import AccountWithPayersAccordionItem from "./account-with-payers-accordion-item"; +import AnalyticsTable from "./analytics-table"; +import { columns } from "./analytics-table-column"; +import { getData } from "./analytics-table-example-data"; import MrrLoading from "./mrr-loading"; import PayerAccountIssues from "./payer-account-issues"; @@ -16,6 +19,7 @@ type MrrCurrentImportProps = { const MrrCurrentImport: FC = ({ className }) => { const { mrr, isLoading, error } = useMrr("WIP"); const [accounts, setAccounts] = useState([]); + const data = getData(); useEffect(() => { setAccountsFromMrr(mrr, setAccounts); @@ -23,6 +27,10 @@ const MrrCurrentImport: FC = ({ className }) => { return ( <> +
+ +
+ +>(({ className, ...props }, ref) => ( +
+ + +)); +Table.displayName = "Table"; + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableHeader.displayName = "TableHeader"; + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableBody.displayName = "TableBody"; + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + tr]:last:border-b-0", + className + )} + {...props} + /> +)); +TableFooter.displayName = "TableFooter"; + +const TableRow = React.forwardRef< + HTMLTableRowElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableRow.displayName = "TableRow"; + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +TableHead.displayName = "TableHead"; + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +TableCell.displayName = "TableCell"; + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +TableCaption.displayName = "TableCaption"; + +export { + Table, + TableBody, + TableCaption, + TableCell, + TableFooter, + TableHead, + TableHeader, + TableRow, +}; diff --git a/docs/releases/next.md b/docs/releases/next.md index c5e6d75d6..f5872798a 100644 --- a/docs/releases/next.md +++ b/docs/releases/next.md @@ -20,6 +20,7 @@ Von "Current" auf "Latest" aktualisiert: ## In Arbeit - Monatliche Umsätze der Kunden abbilden +- Seite für einen Payer Account einführen. Auch dort soll der Umsatz der vergangenen Monate angezeigt werden können. ## Geplant diff --git a/helpers/analytics/analytics.ts b/helpers/analytics/analytics.ts index 6567b9abe..b77c331cd 100644 --- a/helpers/analytics/analytics.ts +++ b/helpers/analytics/analytics.ts @@ -1,6 +1,5 @@ import { Account } from "@/api/ContextAccounts"; -import { Mrr, MrrWipData } from "@/api/useMrr"; -import { MrrFilters } from "@/components/analytics/useMrrFilter"; +import { DoneMonthData, Mrr, MrrWipData } from "@/api/useMrr"; import { formatDateYyyyMm, formatRevenue } from "@/helpers/functional"; import { addMonths } from "date-fns"; import { @@ -33,9 +32,11 @@ export type MrrDataIssue = { const substractMonthsFp = (noOfMonths: number) => addMonths(new Date(), -noOfMonths); +const plus12 = (num: number) => num + 12; + export const getMinMonth = flow( - identity, - parseInt, + identity, + plus12, substractMonthsFp, formatDateYyyyMm ); @@ -116,6 +117,11 @@ export const setPayerAccountMrrByPayer = ( setAccounts: Dispatch> ) => flow(identity, filter(byPayerAccount(payer)), setAccounts)(mrr); +export const sortByMonth = flow( + identity, + sortBy(flow(identity, get("month"), parseMonthToInt)) +); + export const setMonthsByPayer = ( mrr: Mrr[] | undefined, setMonths: Dispatch> diff --git a/helpers/analytics/api-actions.ts b/helpers/analytics/api-actions.ts index b3c12ce6d..fb07238c3 100644 --- a/helpers/analytics/api-actions.ts +++ b/helpers/analytics/api-actions.ts @@ -6,7 +6,7 @@ import { UpdateProgressBarFn, } from "@/helpers/analytics/process-upload"; import { newDateTimeString } from "@/helpers/functional"; -import { generateClient } from "aws-amplify/data"; +import { generateClient, SelectionSet } from "aws-amplify/data"; import { map } from "lodash/fp"; const client = generateClient(); @@ -96,3 +96,57 @@ export const createMrrRecord = updateProgress((current) => current + (1 / totalRecords) * 100); return data; }; + +const monthSelectionSet = ["id", "month", "latestUploadId"] as const; + +type LeanMonth = SelectionSet< + Schema["Month"]["type"], + typeof monthSelectionSet +>; + +export const getMonths = async ( + startMonth: string +): Promise => { + const { data, errors } = await client.models.Month.list({ + filter: { month: { gt: startMonth } }, + limit: 100, + selectionSet: monthSelectionSet, + }); + if (errors) { + handleApiErrors(errors, "Loading months failed"); + throw errors; + } + return data; +}; + +export type DoneMonthMrrData = SelectionSet< + Schema["PayerAccountMrr"]["type"], + typeof monthMrrSelectionSet +>; + +const monthMrrSelectionSet = [ + "id", + "companyName", + "awsAccountNumber", + "payerAccount.accountId", + "isEstimated", + "isReseller", + "mrr", +] as const; + +export const getMonthMrr = async ({ id, month, latestUploadId }: LeanMonth) => { + const { data, errors } = + await client.models.PayerAccountMrr.listPayerAccountMrrByUploadId( + { uploadId: latestUploadId }, + { + filter: { monthId: { eq: id } }, + limit: 500, + selectionSet: monthMrrSelectionSet, + } + ); + if (errors) { + handleApiErrors(errors, "Loading month's MRR failed"); + throw errors; + } + return { month, payerMrrs: data }; +}; diff --git a/package-lock.json b/package-lock.json index 3de14b7ce..eaf9b1844 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,7 @@ "@radix-ui/react-toast": "^1.1.5", "@radix-ui/react-tooltip": "^1.0.7", "@radix-ui/react-visually-hidden": "^1.1.0", + "@tanstack/react-table": "^8.20.5", "@tiptap/core": "^2.5.6", "@tiptap/extension-highlight": "^2.5.6", "@tiptap/extension-link": "^2.5.6", @@ -21520,6 +21521,39 @@ "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20" } }, + "node_modules/@tanstack/react-table": { + "version": "8.20.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz", + "integrity": "sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==", + "license": "MIT", + "dependencies": { + "@tanstack/table-core": "8.20.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.20.5", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.20.5.tgz", + "integrity": "sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@tiptap/core": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.9.1.tgz", diff --git a/package.json b/package.json index 9f64fe4a7..105d60223 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "@radix-ui/react-toast": "^1.1.5", "@radix-ui/react-tooltip": "^1.0.7", "@radix-ui/react-visually-hidden": "^1.1.0", + "@tanstack/react-table": "^8.20.5", "@tiptap/core": "^2.5.6", "@tiptap/extension-highlight": "^2.5.6", "@tiptap/extension-link": "^2.5.6", From 9f2a3fda56817fb6b4c477a3e9f22920dad89a8b Mon Sep 17 00:00:00 2001 From: Carsten Koch Date: Thu, 31 Oct 2024 10:00:25 +0100 Subject: [PATCH 4/7] feat: upload MRR processed and analytics table shown --- amplify/data/account-schema.ts | 17 +- api/ContextAccounts.tsx | 64 +++-- api/useMrr.ts | 54 +--- api/useMrrImport.ts | 6 +- components/accounts/AccountDetails.tsx | 4 +- components/accounts/AddPayerAccountDialog.tsx | 4 +- .../account-with-payers-accordion-item.tsx | 51 ---- components/analytics/accounts-with-payers.tsx | 48 ---- .../analytics/analytics-table-column.ts | 17 -- .../analytics/analytics-table-column.tsx | 80 ++++++ .../analytics/analytics-table-example-data.ts | 27 -- components/analytics/analytics-table.tsx | 95 ++++--- components/analytics/import-data.tsx | 24 +- .../analytics/instructions-upload-mrr.tsx | 76 ++++++ .../analytics/instructions-upload-srrp.tsx | 14 ++ components/analytics/instructions-upload.tsx | 15 ++ components/analytics/month-accordion-item.tsx | 52 ---- components/analytics/mrr-current-import.tsx | 64 ----- components/analytics/mrr-documentation.tsx | 40 --- components/analytics/mrr-loading.tsx | 18 -- components/analytics/payer-accordion-item.tsx | 54 ---- components/analytics/payer-account-issue.tsx | 82 +++++-- components/analytics/payer-account-issues.tsx | 29 ++- .../analytics/render-account-header.tsx | 24 ++ components/analytics/render-growth.tsx | 43 ++++ components/analytics/render-month-mrr.tsx | 39 +++ components/analytics/render-payer-header.tsx | 39 +++ components/analytics/upload-issues.tsx | 10 + components/analytics/useMrrFilter.tsx | 7 +- .../ui-elements/list-items/bullet-list.tsx | 24 ++ components/ui/table.tsx | 7 +- docs/releases/next.md | 6 +- helpers/analytics/analytics.ts | 232 +++--------------- helpers/analytics/api-actions.ts | 63 ++--- helpers/analytics/issues.ts | 77 ++++++ helpers/analytics/prep-table-data.ts | 225 +++++++++++++++++ helpers/functional.ts | 28 ++- helpers/payers/api-actions.ts | 74 ++++++ pages/accounts/[id].tsx | 9 +- pages/customer-financials/index.tsx | 48 +++- pages/payers/[id].tsx | 20 ++ 41 files changed, 1134 insertions(+), 776 deletions(-) delete mode 100644 components/analytics/account-with-payers-accordion-item.tsx delete mode 100644 components/analytics/accounts-with-payers.tsx delete mode 100644 components/analytics/analytics-table-column.ts create mode 100644 components/analytics/analytics-table-column.tsx delete mode 100644 components/analytics/analytics-table-example-data.ts create mode 100644 components/analytics/instructions-upload-mrr.tsx create mode 100644 components/analytics/instructions-upload-srrp.tsx create mode 100644 components/analytics/instructions-upload.tsx delete mode 100644 components/analytics/month-accordion-item.tsx delete mode 100644 components/analytics/mrr-current-import.tsx delete mode 100644 components/analytics/mrr-documentation.tsx delete mode 100644 components/analytics/mrr-loading.tsx delete mode 100644 components/analytics/payer-accordion-item.tsx create mode 100644 components/analytics/render-account-header.tsx create mode 100644 components/analytics/render-growth.tsx create mode 100644 components/analytics/render-month-mrr.tsx create mode 100644 components/analytics/render-payer-header.tsx create mode 100644 components/analytics/upload-issues.tsx create mode 100644 components/ui-elements/list-items/bullet-list.tsx create mode 100644 helpers/analytics/issues.ts create mode 100644 helpers/analytics/prep-table-data.ts create mode 100644 helpers/payers/api-actions.ts create mode 100644 pages/payers/[id].tsx diff --git a/amplify/data/account-schema.ts b/amplify/data/account-schema.ts index 797aaaa30..cc7af43e4 100644 --- a/amplify/data/account-schema.ts +++ b/amplify/data/account-schema.ts @@ -34,14 +34,25 @@ const accountSchema = { territory: a.belongsTo("Territory", "territoryId"), }) .authorization((allow) => [allow.owner()]), - PayerAccount: a + AccountPayerAccount: a .model({ owner: a .string() .authorization((allow) => [allow.owner().to(["read", "delete"])]), - awsAccountNumber: a.id().required(), accountId: a.id().required(), account: a.belongsTo("Account", "accountId"), + awsAccountNumberId: a.id().required(), + awsAccountNumber: a.belongsTo("PayerAccount", "awsAccountNumberId"), + }) + .secondaryIndexes((index) => [index("awsAccountNumberId")]) + .authorization((allow) => [allow.owner()]), + PayerAccount: a + .model({ + owner: a + .string() + .authorization((allow) => [allow.owner().to(["read", "delete"])]), + awsAccountNumber: a.id().required(), + accounts: a.hasMany("AccountPayerAccount", "awsAccountNumberId"), isViaReseller: a.boolean(), resellerId: a.id(), reseller: a.belongsTo("Account", "resellerId"), @@ -68,7 +79,7 @@ const accountSchema = { projects: a.hasMany("AccountProjects", "accountId"), accountSubsidiariesId: a.id(), controller: a.belongsTo("Account", "accountSubsidiariesId"), - payerAccounts: a.hasMany("PayerAccount", "accountId"), + payerAccounts: a.hasMany("AccountPayerAccount", "accountId"), resellingAccounts: a.hasMany("PayerAccount", "resellerId"), people: a.hasMany("PersonAccount", "accountId"), partnerProjects: a.hasMany("Projects", "partnerId"), diff --git a/api/ContextAccounts.tsx b/api/ContextAccounts.tsx index 7623149c7..a2cdbce1d 100644 --- a/api/ContextAccounts.tsx +++ b/api/ContextAccounts.tsx @@ -9,10 +9,24 @@ import { import { transformNotesVersion } from "@/helpers/ui-notes-writer"; import { JSONContent } from "@tiptap/core"; import { SelectionSet, generateClient } from "aws-amplify/data"; -import { filter, flow, join, map, sortBy, sum } from "lodash/fp"; +import { + filter, + flow, + join, + map, + sortBy, + sum, + find, + identity, +} from "lodash/fp"; import { FC, ReactNode, createContext, useContext } from "react"; import useSWR from "swr"; import { handleApiErrors } from "./globals"; +import { + getOrCreatePayerAccount, + createPayerAccountLink, + getAccountPayerAccountId, +} from "@/helpers/payers/api-actions"; const client = generateClient(); type UpdateAccountProps = { @@ -29,7 +43,7 @@ interface AccountsContextType { createAccount: ( accountName: string ) => Promise; - getAccountById: (accountId: string) => Account | undefined; + getAccountById: (accountId: string | undefined) => Account | undefined; updateAccount: (props: UpdateAccountProps) => Promise; assignController: ( accountId: string, @@ -47,7 +61,10 @@ interface AccountsContextType { accountId: string, payer: string ) => Promise; - deletePayerAccount: (payer: string) => Promise; + deletePayerAccount: ( + accountId: string, + payer: string + ) => Promise; getPipelineByControllerId: (controllerId: string) => number; getAccountNamesByIds: (accountIds: string[]) => string; } @@ -94,7 +111,7 @@ const selectionSet = [ "projects.projects.crmProjects.crmProject.totalContractVolume", "projects.projects.crmProjects.crmProject.isMarketplace", "projects.projects.crmProjects.crmProject.stage", - "payerAccounts.awsAccountNumber", + "payerAccounts.awsAccountNumberId", ] as const; type AccountData = SelectionSet; @@ -140,7 +157,7 @@ const mapAccount: ( projects, createdAt: new Date(createdAt), territoryIds: territories.map((t) => t.territory.id), - payerAccounts: payerAccounts.map((p) => p.awsAccountNumber), + payerAccounts: payerAccounts.map((p) => p.awsAccountNumberId), }); const addOrderNumberToAccounts = ( @@ -241,8 +258,11 @@ export const AccountsContextProvider: FC = ({ return data || undefined; }; - const getAccountById = (accountId: string) => - accounts?.find((account) => account.id === accountId); + const getAccountById = (accountId: string | undefined) => + flow( + identity, + find(({ id }) => id === accountId) + )(accounts); const updateAccount = async ({ id, @@ -394,41 +414,45 @@ export const AccountsContextProvider: FC = ({ : { ...a, payerAccounts: [...a.payerAccounts, payer] } ); if (updated) mutate(updated, false); - const { data, errors } = await client.models.PayerAccount.create({ + const payerAccountId = await getOrCreatePayerAccount(payer); + if (!payerAccountId) return; + const resultAccountId = await createPayerAccountLink( accountId, - awsAccountNumber: payer, - }); - if (errors) handleApiErrors(errors, "Creating payer failed"); + payerAccountId + ); + if (!resultAccountId) return; if (updated) mutate(updated); - if (!data) return; toast({ title: "Payer created", description: `Successfully created payer ${payer} for account ${ accounts?.find((a) => a.id === accountId)?.name }.`, }); - return data.awsAccountNumber; + return resultAccountId; }; - const deletePayerAccount = async (payer: string) => { - const account = accounts?.find((a) => a.payerAccounts.includes(payer)); + const deletePayerAccount = async (accountId: string, payer: string) => { + const account = accounts?.find((a) => a.id === accountId); + if (!account) return; const updated: Account[] | undefined = accounts?.map((a) => !a.payerAccounts.includes(payer) ? a : { ...a, payerAccounts: a.payerAccounts.filter((p) => p !== payer) } ); if (updated) mutate(updated, false); - const { data, errors } = await client.models.PayerAccount.delete({ - awsAccountNumber: payer, + const payerAccountId = await getAccountPayerAccountId(accountId, payer); + if (!payerAccountId) return; + const { data, errors } = await client.models.AccountPayerAccount.delete({ + id: payerAccountId, }); if (errors) handleApiErrors(errors, "Deleting payer failed"); if (updated) mutate(updated); if (!data) return; toast({ - title: "Payer deleted", - description: `Successfully deleted payer ${payer} for account ${account?.name}.`, + title: "Removed payer", + description: `Successfully removed payer ${payer} from account ${account?.name}.`, }); - return data.awsAccountNumber; + return data.awsAccountNumberId; }; const getPipelineByControllerId = (controllerId: string): number => diff --git a/api/useMrr.ts b/api/useMrr.ts index 9cc832a0f..07b1cd440 100644 --- a/api/useMrr.ts +++ b/api/useMrr.ts @@ -1,20 +1,15 @@ import { type Schema } from "@/amplify/data/resource"; import { MrrImportData } from "@/api/useMrrImport"; import { MrrFilters } from "@/components/analytics/useMrrFilter"; -import { - getMinMonth, - mapPayerMrrs, - sortByMonth, -} from "@/helpers/analytics/analytics"; +import { getMinMonth, mapPayerMrrs } from "@/helpers/analytics/analytics"; import { DoneMonthMrrData, getMonthMrr, getMonths, } from "@/helpers/analytics/api-actions"; -import { logFp } from "@/helpers/functional"; import { SelectionSet, generateClient } from "aws-amplify/data"; -import { flatMap, flow, get, identity, map } from "lodash/fp"; -import useSWR from "swr"; +import { flatMap, flow, get, identity } from "lodash/fp"; +import useSWR, { KeyedMutator } from "swr"; import { handleApiErrors } from "./globals"; const client = generateClient(); @@ -23,7 +18,7 @@ const wipSelectionSet = [ "latestMonths.payerMrrs.id", "latestMonths.payerMrrs.companyName", "latestMonths.payerMrrs.awsAccountNumber", - "latestMonths.payerMrrs.payerAccount.accountId", + "latestMonths.payerMrrs.payerAccount.accounts.accountId", "latestMonths.payerMrrs.isEstimated", "latestMonths.payerMrrs.isReseller", "latestMonths.payerMrrs.mrr", @@ -39,7 +34,7 @@ export type Mrr = { month: string; companyName: string; awsAccountNumber: string; - payerAccountAccountId?: string; + payerAccountAccountIds?: string[]; isEstimated: boolean; isReseller: boolean; mrr: number; @@ -47,7 +42,7 @@ export type Mrr = { lastPeriodMrr?: number; }; -const mapWipMrr = ({ +const mapMrr = ({ month, payerMrrs, }: MrrWipData["latestMonths"][number]): Mrr[] => @@ -72,7 +67,7 @@ const fetchMrrWip = async () => { identity, get(0), get("latestMonths"), - flatMap(mapWipMrr) + flatMap(mapMrr) )(data); } catch (error) { console.error("fetchMrr", error); @@ -80,28 +75,6 @@ const fetchMrrWip = async () => { } }; -const comparePeriods = ( - noOfMonths: number, - months: MrrWipData["latestMonths"][] -) => { - console.log("comparePeriods", months); -}; - -export type DoneMonthData = { - month: string; - payerMrrs: DoneMonthMrrData[]; -}; - -type MonthPayerMrrs = {}; - -const mapDoneMrr = ({ month, payerMrrs }: DoneMonthData) => ({ - month, - payerMrrs: payerMrrs.map(({ payerAccount, ...rest }) => ({ - ...rest, - payerAccountAccountId: payerAccount.accountId, - })), -}); - const fetchMrrDone = (noOfMonths?: MrrFilters) => async () => { if (!noOfMonths) return; const noOfMonthsInt = parseInt(noOfMonths); @@ -109,13 +82,7 @@ const fetchMrrDone = (noOfMonths?: MrrFilters) => async () => { const months = await getMonths(startMonth); if (!months) return; const data = await Promise.all(months.map(getMonthMrr)); - const orderedMonths = flow( - map(mapDoneMrr), - sortByMonth, - logFp("fetchMrrDone") - )(data); - - return flow(flatMap(mapWipMrr))(orderedMonths); + return flow(identity, flatMap(mapMrr))(data); }; const fetchMrr = @@ -130,9 +97,12 @@ const useMrr = (status: MrrImportData["status"], noOfMonths?: MrrFilters) => { data: mrr, isLoading, error, + mutate, } = useSWR(`/api/mrr/${status}/${noOfMonths}`, fetchMrr(status, noOfMonths)); - return { mrr, isLoading, error }; + return { mrr, isLoading, error, mutate }; }; +export type MrrMutator = KeyedMutator; + export default useMrr; diff --git a/api/useMrrImport.ts b/api/useMrrImport.ts index f847b9c51..3047ec155 100644 --- a/api/useMrrImport.ts +++ b/api/useMrrImport.ts @@ -10,6 +10,7 @@ import { flow, get, map } from "lodash/fp"; import { ChangeEvent } from "react"; import useSWR from "swr"; import { handleApiErrors } from "./globals"; +import { Mrr, MrrMutator } from "./useMrr"; const client = generateClient(); export type MrrImportData = Schema["MrrDataUpload"]["type"]; @@ -51,7 +52,7 @@ const fetchMrrImport = async () => { } }; -const useMrrImport = () => { +const useMrrImport = (mrr: Mrr[] | undefined, mutateMrr: MrrMutator) => { const { data: mrrImport, isLoading, @@ -82,6 +83,8 @@ const useMrrImport = () => { upload.s3Path, updateProgress ); + await closeImportFile(); + mutateMrr(mrr); return uploadRecord.id; }; @@ -101,7 +104,6 @@ const useMrrImport = () => { isLoading, error, uploadAndProcessImportFile, - closeImportFile, }; }; diff --git a/components/accounts/AccountDetails.tsx b/components/accounts/AccountDetails.tsx index ccef00b21..7028962b5 100644 --- a/components/accounts/AccountDetails.tsx +++ b/components/accounts/AccountDetails.tsx @@ -150,7 +150,9 @@ const AccountDetails: FC = ({ > + deletePayerAccount(account.id, payerId) + } allowDeletion showLabel={false} /> diff --git a/components/accounts/AddPayerAccountDialog.tsx b/components/accounts/AddPayerAccountDialog.tsx index 0fe3a16f2..9c4410e50 100644 --- a/components/accounts/AddPayerAccountDialog.tsx +++ b/components/accounts/AddPayerAccountDialog.tsx @@ -7,7 +7,7 @@ import ListPayerAccounts from "./ListPayerAccounts"; type AddPayerAccountDialogProps = { account: Account; addPayerAccount: (accountId: string, payer: string) => void; - deletePayerAccount: (payer: string) => void; + deletePayerAccount: (accountId: string, payer: string) => void; }; const AddPayerAccountDialog: FC = ({ @@ -45,7 +45,7 @@ const AddPayerAccountDialog: FC = ({ deletePayerAccount(id, payerId)} showLabel={false} showLinks={false} /> diff --git a/components/analytics/account-with-payers-accordion-item.tsx b/components/analytics/account-with-payers-accordion-item.tsx deleted file mode 100644 index be8c1da3f..000000000 --- a/components/analytics/account-with-payers-accordion-item.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { FC, useState, useEffect } from "react"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; -import { Accordion } from "../ui/accordion"; -import PayerAccordionItem from "./payer-accordion-item"; -import { Mrr } from "@/api/useMrr"; -import { - setAccountMrrByAccount, - setPayerAccountsFromMrr, - totalMrr, -} from "@/helpers/analytics/analytics"; - -type AccountWithPayersAccordionItemProps = { - account: string; - mrr: Mrr[] | undefined; -}; - -const AccountWithPayersAccordionItem: FC< - AccountWithPayersAccordionItemProps -> = ({ account, mrr }) => { - const [accountMrr, setAccountMrr] = useState([]); - const [payerAccounts, setPayerAccounts] = useState([]); - - useEffect(() => { - setAccountMrrByAccount(account, mrr, setAccountMrr); - }, [mrr, account]); - - useEffect(() => { - setPayerAccountsFromMrr(accountMrr, setPayerAccounts); - }, [accountMrr]); - - return ( - - - {payerAccounts.map((payer) => ( - - ))} - - - ); -}; - -export default AccountWithPayersAccordionItem; diff --git a/components/analytics/accounts-with-payers.tsx b/components/analytics/accounts-with-payers.tsx deleted file mode 100644 index 2f5a25403..000000000 --- a/components/analytics/accounts-with-payers.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { setAccountsFromMrr, totalMrr } from "@/helpers/analytics/analytics"; -import { cn } from "@/lib/utils"; -import { FC, useEffect, useState } from "react"; -import ApiLoadingError from "../layouts/ApiLoadingError"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; -import { Accordion } from "../ui/accordion"; -import AccountWithPayersAccordionItem from "./account-with-payers-accordion-item"; -import MrrLoading from "./mrr-loading"; -import { useMrrFilter } from "./useMrrFilter"; - -type AccountsWithPayersProps = { - className?: string; -}; - -const AccountsWithPayers: FC = ({ className }) => { - const { mrr, isLoading, error } = useMrrFilter(); - const [accounts, setAccounts] = useState([]); - - useEffect(() => { - setAccountsFromMrr(mrr, setAccounts); - }, [mrr]); - - return ( - -
- - - - {isLoading && } - - {accounts.map((account) => ( - - ))} - -
-
- ); -}; - -export default AccountsWithPayers; diff --git a/components/analytics/analytics-table-column.ts b/components/analytics/analytics-table-column.ts deleted file mode 100644 index d477d839b..000000000 --- a/components/analytics/analytics-table-column.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ColumnDef } from "@tanstack/react-table"; -import { Payment } from "./analytics-table-example-data"; - -export const columns: ColumnDef[] = [ - { - accessorKey: "status", - header: "Status", - }, - { - accessorKey: "email", - header: "Email", - }, - { - accessorKey: "amount", - header: "Amount", - }, -]; diff --git a/components/analytics/analytics-table-column.tsx b/components/analytics/analytics-table-column.tsx new file mode 100644 index 000000000..222b36475 --- /dev/null +++ b/components/analytics/analytics-table-column.tsx @@ -0,0 +1,80 @@ +import { + addMonthsFp, + formatDate, + invertSign, + substract, +} from "@/helpers/functional"; +import { ColumnDef } from "@tanstack/react-table"; +import { flow, identity, map, times } from "lodash/fp"; +import RenderAccountHeader from "./render-account-header"; +import RenderMonthMrr from "./render-month-mrr"; +import RenderPayerHeader from "./render-payer-header"; + +export type MonthMrr = { + currentMonth: number; + lastYear: number; + lastPeriod: number; + lastMonth: number; +}; + +export type MonthData = { + [key in `month${number}Mrr`]?: MonthMrr; +}; + +export type AccountMrr = { + id: string; + isReseller: boolean; + accountOrPayer: string; + children: AccountMrr[]; +} & MonthData; + +export const getColumnDef = (noOfMonths: number): ColumnDef[] => [ + { accessorKey: "id" }, + { accessorKey: "isReseller" }, + { + accessorKey: "accountOrPayer", + header: "Account/Payer", + cell: ({ row, getValue }) => + row.depth === 0 ? ( + ()} + /> + ) : ( + ()} + isReseller={row.getValue("isReseller")} + /> + ), + }, + ...getMonthlyMrrColumnDef(noOfMonths), +]; + +const getMonthName = (noOfMonths: number, id: number) => + flow( + identity, + substract(id), + substract(1), + invertSign, + addMonthsFp(new Date()), + formatDate("MMM yyyy") + )(noOfMonths); + +const getMonthlyMrrColumnDef = (noOfMonths: number): ColumnDef[] => + flow( + identity, + times(identity), + map( + (id: number): ColumnDef => ({ + accessorKey: `month${id}Mrr`, + header: getMonthName(noOfMonths, id), + cell: ({ getValue }) => ( + ()} + noOfMonths={noOfMonths} + /> + ), + }) + ) + )(noOfMonths); diff --git a/components/analytics/analytics-table-example-data.ts b/components/analytics/analytics-table-example-data.ts deleted file mode 100644 index 9dde11516..000000000 --- a/components/analytics/analytics-table-example-data.ts +++ /dev/null @@ -1,27 +0,0 @@ -export type Payment = { - id: string; - amount: number; - status: "pending" | "processing" | "success" | "failed"; - email: string; -}; - -export const getData = (): Payment[] => { - // Fetch data from your API here. - return payments; -}; - -const payments: Payment[] = [ - { - id: "728ed52f", - amount: 100, - status: "pending", - email: "m@example.com", - }, - { - id: "489e1d42", - amount: 125, - status: "processing", - email: "example@gmail.com", - }, - // ... -]; diff --git a/components/analytics/analytics-table.tsx b/components/analytics/analytics-table.tsx index 96cc229a9..875f14b79 100644 --- a/components/analytics/analytics-table.tsx +++ b/components/analytics/analytics-table.tsx @@ -6,26 +6,39 @@ import { TableHeader, TableRow, } from "@/components/ui/table"; +import { cn } from "@/lib/utils"; import { ColumnDef, + ExpandedState, flexRender, getCoreRowModel, + getExpandedRowModel, useReactTable, } from "@tanstack/react-table"; +import { get } from "lodash/fp"; +import { useState } from "react"; interface AnalyticsTableProps { columns: ColumnDef[]; data: TData[]; } +const stickyCss = + "left-0 bg-inherit opacity-95 sticky z-20 shadow-[inset_-4px_0_4px_-4px_lightgray]" as const; + const AnalyticsTable = ({ columns, data, }: AnalyticsTableProps) => { + const [expanded, setExpanded] = useState({}); const table = useReactTable({ data, columns, + state: { expanded, columnVisibility: { id: false, isReseller: false } }, + onExpandedChange: setExpanded, + getSubRows: (row) => get("children")(row), getCoreRowModel: getCoreRowModel(), + getExpandedRowModel: getExpandedRowModel(), }); return ( @@ -33,43 +46,61 @@ const AnalyticsTable = ({ {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - return ( - - {header.isPlaceholder - ? null - : flexRender( - header.column.columnDef.header, - header.getContext() - )} - - ); - })} + + {headerGroup.headers.map((header) => ( + + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext() + )} + + ))} ))} - {table.getRowModel().rows?.length ? ( - table.getRowModel().rows.map((row) => ( - - {row.getVisibleCells().map((cell) => ( - - {flexRender(cell.column.columnDef.cell, cell.getContext())} - - ))} - - )) - ) : ( - - - No results. - + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ))} - )} + ))}
diff --git a/components/analytics/import-data.tsx b/components/analytics/import-data.tsx index 4d53e5314..da4a8756c 100644 --- a/components/analytics/import-data.tsx +++ b/components/analytics/import-data.tsx @@ -1,21 +1,21 @@ +import { Mrr, MrrMutator } from "@/api/useMrr"; import useMrrImport from "@/api/useMrrImport"; import { cn } from "@/lib/utils"; import { Loader2 } from "lucide-react"; -import { useState } from "react"; +import { FC, useState } from "react"; import ApiLoadingError from "../layouts/ApiLoadingError"; -import { Button } from "../ui/button"; import { Input } from "../ui/input"; import { Label } from "../ui/label"; import { Progress } from "../ui/progress"; -const ImportMrrData = () => { - const { - mrrImport, - isLoading, - error, - uploadAndProcessImportFile, - closeImportFile, - } = useMrrImport(); +type ImportMrrDataProps = { + mrr: Mrr[] | undefined; + mutateMrr: MrrMutator; +}; + +const ImportMrrData: FC = ({ mrr, mutateMrr }) => { + const { mrrImport, isLoading, error, uploadAndProcessImportFile } = + useMrrImport(mrr, mutateMrr); const [progressBar, setProgressBar] = useState(0); return ( @@ -55,10 +55,6 @@ const ImportMrrData = () => { )} - - {mrrImport && ( - - )} ); }; diff --git a/components/analytics/instructions-upload-mrr.tsx b/components/analytics/instructions-upload-mrr.tsx new file mode 100644 index 000000000..fead96c39 --- /dev/null +++ b/components/analytics/instructions-upload-mrr.tsx @@ -0,0 +1,76 @@ +import imgDownload from "@/public/images/analytics/mrr-download.png"; +import imgFilter from "@/public/images/analytics/mrr-filters.png"; +import { ExternalLink } from "lucide-react"; +import Image from "next/image"; +import Link from "next/link"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import BulletList from "../ui-elements/list-items/bullet-list"; +import ImportMrrData from "./import-data"; +import { useMrrFilter } from "./useMrrFilter"; + +const mrrTableauLink = + "https://awstableau.corp.amazon.com/t/WWSalesInsights/views/MonthlyRevenueDeep/DeepMonthlyRevenue?%3Aembed=yes&%3Alinktarget=_blank&%3Aoriginal_view=yes#1"; + +const InstructionsUploadMrr = () => { + const { mrr, mutateMrr } = useMrrFilter(); + + return ( + +
+ + Open Monthly Revenue report from Tableau + + + +
+ Set the filters as follows: + + First Dimension: Customer Sfdc Name + , + <> + Second Dimension: AWS Payer Id + , + <> + Third Dimension: Reseller + , + <> + Metrics to just Revenue + , + <> + Timeframe to Last 3 Months + , + ]} + /> +
+ + Tableau Filter + +
+ Then click the download icon in the right down corner of the screen + and select Cross table (Kreuztabelle). In the dialog select{" "} + Month No Sort as the source and select CSV as the + format. +
+ + Tableau Download + +
Then upload the file here:
+ + +
+
+ ); +}; + +export default InstructionsUploadMrr; diff --git a/components/analytics/instructions-upload-srrp.tsx b/components/analytics/instructions-upload-srrp.tsx new file mode 100644 index 000000000..43691ba52 --- /dev/null +++ b/components/analytics/instructions-upload-srrp.tsx @@ -0,0 +1,14 @@ +import { FC } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; + +type InstructionsUploadSrrpProps = {}; + +const InstructionsUploadSrrp: FC = ({}) => { + return ( + + DESCRIBE SRRP HERE (WIP) + + ); +}; + +export default InstructionsUploadSrrp; diff --git a/components/analytics/instructions-upload.tsx b/components/analytics/instructions-upload.tsx new file mode 100644 index 000000000..37c419412 --- /dev/null +++ b/components/analytics/instructions-upload.tsx @@ -0,0 +1,15 @@ +import { Accordion } from "@radix-ui/react-accordion"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import InstructionsUploadMrr from "./instructions-upload-mrr"; +import InstructionsUploadSrrp from "./instructions-upload-srrp"; + +const InstructionsUpload = () => ( + + + + + + +); + +export default InstructionsUpload; diff --git a/components/analytics/month-accordion-item.tsx b/components/analytics/month-accordion-item.tsx deleted file mode 100644 index 6484876f8..000000000 --- a/components/analytics/month-accordion-item.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { Mrr } from "@/api/useMrr"; -import AccordionItemBadge from "@/components/accordion-item-badge/badge"; -import { setMonthMrrByMonth } from "@/helpers/analytics/analytics"; -import { formatRevenue } from "@/helpers/functional"; -import { FC, useEffect, useState } from "react"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; -import ResellerBadge from "./reseller-badge"; - -type MonthAccordionItemProps = { - month: string; - payerAccountMrr: Mrr[]; -}; - -const MonthAccordionItem: FC = ({ - month, - payerAccountMrr, -}) => { - const [monthMrr, setMonthMrr] = useState(); - - useEffect(() => { - setMonthMrrByMonth(month, payerAccountMrr, setMonthMrr); - }, [month, payerAccountMrr]); - - return ( - - {monthMrr?.isEstimated && ( - - )} - {monthMrr?.isReseller && } - - } - > - {monthMrr && ( -
-
- MRR: {formatRevenue(monthMrr.mrr ?? 0)} -
-
- )} -
- ); -}; - -export default MonthAccordionItem; diff --git a/components/analytics/mrr-current-import.tsx b/components/analytics/mrr-current-import.tsx deleted file mode 100644 index 200895bb6..000000000 --- a/components/analytics/mrr-current-import.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import useMrr from "@/api/useMrr"; -import { setAccountsFromMrr, totalMrr } from "@/helpers/analytics/analytics"; -import { cn } from "@/lib/utils"; -import { FC, useEffect, useState } from "react"; -import ApiLoadingError from "../layouts/ApiLoadingError"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; -import { Accordion } from "../ui/accordion"; -import AccountWithPayersAccordionItem from "./account-with-payers-accordion-item"; -import AnalyticsTable from "./analytics-table"; -import { columns } from "./analytics-table-column"; -import { getData } from "./analytics-table-example-data"; -import MrrLoading from "./mrr-loading"; -import PayerAccountIssues from "./payer-account-issues"; - -type MrrCurrentImportProps = { - className?: string; -}; - -const MrrCurrentImport: FC = ({ className }) => { - const { mrr, isLoading, error } = useMrr("WIP"); - const [accounts, setAccounts] = useState([]); - const data = getData(); - - useEffect(() => { - setAccountsFromMrr(mrr, setAccounts); - }, [mrr]); - - return ( - <> -
- -
- - - - -
- - - - {isLoading && } - - {accounts.map((account) => ( - - ))} - -
-
- - ); -}; - -export default MrrCurrentImport; diff --git a/components/analytics/mrr-documentation.tsx b/components/analytics/mrr-documentation.tsx deleted file mode 100644 index eb85f6d89..000000000 --- a/components/analytics/mrr-documentation.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import imgDownload from "@/public/images/analytics/mrr-download.png"; -import imgFilter from "@/public/images/analytics/mrr-filters.png"; -import { ExternalLink } from "lucide-react"; -import Image from "next/image"; -import Link from "next/link"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; - -const TABLEAU_URL = - "https://awstableau.corp.amazon.com/t/WWSalesInsights/views/MonthlyRevenueDeep/DeepMonthlyRevenue?%3Aembed=yes&%3Alinktarget=_blank&%3Aoriginal_view=yes#1" as const; - -const MrrDocumentation = () => ( - -
-
DESCRIBE TIPS & TRICKS HERE (WIP)
-
- - Open Tableau{" "} - - -
-
- Tableau Filter -
-
- Tableau Download -
-
-
-); - -export default MrrDocumentation; diff --git a/components/analytics/mrr-loading.tsx b/components/analytics/mrr-loading.tsx deleted file mode 100644 index 0d988182b..000000000 --- a/components/analytics/mrr-loading.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { flow, identity, map, times } from "lodash/fp"; -import LoadingAccordionItem from "../ui-elements/accordion/LoadingAccordionItem"; - -const MrrLoading = () => - flow( - identity, - times(identity), - map((id) => ( - - )) - )(10); - -export default MrrLoading; diff --git a/components/analytics/payer-accordion-item.tsx b/components/analytics/payer-accordion-item.tsx deleted file mode 100644 index 9486833f1..000000000 --- a/components/analytics/payer-accordion-item.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { Mrr } from "@/api/useMrr"; -import { - hasResellerItems, - setMonthsByPayer, - setPayerAccountMrrByPayer, - totalMrr, -} from "@/helpers/analytics/analytics"; -import { FC, useEffect, useState } from "react"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; -import { Accordion } from "../ui/accordion"; -import MonthAccordionItem from "./month-accordion-item"; -import ResellerBadge from "./reseller-badge"; - -type PayerAccordionItemProps = { - accountMrr: Mrr[]; - payerAccount: string; -}; - -const PayerAccordionItem: FC = ({ - payerAccount, - accountMrr, -}) => { - const [payerAccountMrr, setPayerAccountMrr] = useState([]); - const [months, setMonths] = useState([]); - - useEffect(() => { - setPayerAccountMrrByPayer(payerAccount, accountMrr, setPayerAccountMrr); - }, [payerAccount, accountMrr]); - - useEffect(() => { - setMonthsByPayer(payerAccountMrr, setMonths); - }, [payerAccountMrr]); - - return ( - } - > - - {months.map((month) => ( - - ))} - - - ); -}; - -export default PayerAccordionItem; diff --git a/components/analytics/payer-account-issue.tsx b/components/analytics/payer-account-issue.tsx index 6449d122c..493c63e48 100644 --- a/components/analytics/payer-account-issue.tsx +++ b/components/analytics/payer-account-issue.tsx @@ -1,35 +1,85 @@ -import { MrrDataIssue } from "@/helpers/analytics/analytics"; -import { FC } from "react"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import { Account, useAccountsContext } from "@/api/ContextAccounts"; +import { MrrDataIssue } from "@/helpers/analytics/issues"; +import { createPayerAndAccountLink } from "@/helpers/payers/api-actions"; +import { find, flow, identity } from "lodash/fp"; +import { ExternalLink, Loader2 } from "lucide-react"; +import Link from "next/link"; +import { FC, useEffect, useState } from "react"; +import { Button } from "../ui/button"; type PayerAccountIssueProps = { issue: MrrDataIssue; + mutate: () => void; }; const PayerAccountIssue: FC = ({ issue: { awsAccountNumber, companyName, linkedCompanyName }, + mutate, }) => { + const { accounts } = useAccountsContext(); + const [account, setAccount] = useState(); + const [fixing, setFixing] = useState(false); + + useEffect(() => { + flow( + identity, + find(({ name }) => name === companyName), + setAccount + )(accounts); + }, [accounts, companyName]); + + const handleFixIssue = async () => { + if (!account) return; + setFixing(true); + await createPayerAndAccountLink(account.id, awsAccountNumber); + mutate(); + }; + return ( - -
+
+
- AWS Payer ID:{" "} - {awsAccountNumber} + AWS Payer ID:{" "} + + {awsAccountNumber} + +
- Company in report:{" "} - {companyName} + Company in report: {companyName}
- Company linked:{" "} - {linkedCompanyName || "None"} + Company linked: {linkedCompanyName || "None"}
+ {account && ( + <> +
+ Link to + {account.name}? +
+ + + )}
- +
+
); }; diff --git a/components/analytics/payer-account-issues.tsx b/components/analytics/payer-account-issues.tsx index ebaf7c527..921284ee7 100644 --- a/components/analytics/payer-account-issues.tsx +++ b/components/analytics/payer-account-issues.tsx @@ -1,19 +1,20 @@ -import { FC, useState, useEffect } from "react"; -import { Mrr } from "@/api/useMrr"; +import { useAccountsContext } from "@/api/ContextAccounts"; +import { Mrr, MrrMutator } from "@/api/useMrr"; import { MrrDataIssue, setPayerAccountIssues, -} from "@/helpers/analytics/analytics"; -import { useAccountsContext } from "@/api/ContextAccounts"; +} from "@/helpers/analytics/issues"; +import { FC, useEffect, useState } from "react"; import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; import { Accordion } from "../ui/accordion"; import PayerAccountIssue from "./payer-account-issue"; type PayerAccountIssuesProps = { mrr?: Mrr[]; + mutate: MrrMutator; }; -const PayerAccountIssues: FC = ({ mrr }) => { +const PayerAccountIssues: FC = ({ mrr, mutate }) => { const { accounts } = useAccountsContext(); const [issues, setIssues] = useState([]); @@ -28,11 +29,19 @@ const PayerAccountIssues: FC = ({ mrr }) => { triggerTitle="Issues" triggerSubTitle={`${issues.length} Issues`} > - - {issues.map((issue) => ( - - ))} - +
+
Open issues: {issues.length}
+ + + {issues.map((issue) => ( + mutate(mrr)} + /> + ))} + +
) ); diff --git a/components/analytics/render-account-header.tsx b/components/analytics/render-account-header.tsx new file mode 100644 index 000000000..dac98b286 --- /dev/null +++ b/components/analytics/render-account-header.tsx @@ -0,0 +1,24 @@ +import { ExternalLink } from "lucide-react"; +import Link from "next/link"; +import { FC } from "react"; + +type RenderAccountHeaderProps = { + id: string | undefined; + label: string; +}; + +const RenderAccountHeader: FC = ({ id, label }) => { + return !id ? ( + label + ) : ( + + {label} + + + ); +}; + +export default RenderAccountHeader; diff --git a/components/analytics/render-growth.tsx b/components/analytics/render-growth.tsx new file mode 100644 index 000000000..898ab4778 --- /dev/null +++ b/components/analytics/render-growth.tsx @@ -0,0 +1,43 @@ +import { cn } from "@/lib/utils"; +import { flow, identity } from "lodash/fp"; +import { ArrowDown, ArrowUp } from "lucide-react"; +import { FC } from "react"; + +type RenderGrowthProps = { + lastPeriod: number | undefined; + currentPeriod: number; + label: string; +}; + +const calcGrowth = (currPeriod: number, lastPeriod: number) => { + const growth = currPeriod / lastPeriod - 1; + return growth === Infinity ? undefined : growth; +}; + +const multiply = (a: number) => (b: number) => a * b; +const round = (a: number) => Math.round(a * 10) / 10; + +const RenderGrowth: FC = ({ + lastPeriod, + currentPeriod, + label, +}) => { + if (!lastPeriod) return
; + const growth = calcGrowth(currentPeriod, lastPeriod); + if (!growth) return
; + const Icon = growth > 0 ? ArrowUp : ArrowDown; + return ( +
0 ? "text-green-600" : "text-red-600" + )} + > + +
{flow(identity, multiply(100), round)(growth)}%
+
{label}
+
+ ); +}; + +export default RenderGrowth; diff --git a/components/analytics/render-month-mrr.tsx b/components/analytics/render-month-mrr.tsx new file mode 100644 index 000000000..6f358dc51 --- /dev/null +++ b/components/analytics/render-month-mrr.tsx @@ -0,0 +1,39 @@ +import { formatThousands } from "@/helpers/functional"; +import { FC } from "react"; +import { MonthMrr } from "./analytics-table-column"; +import RenderGrowth from "./render-growth"; + +type RenderMonthMrrProps = { + monthMrr: MonthMrr; + noOfMonths: number; +}; + +const RenderMonthMrr: FC = ({ + monthMrr: { currentMonth, lastMonth, lastPeriod, lastYear }, + noOfMonths, +}) => ( +
+
{formatThousands(currentMonth)}
+
+ + {noOfMonths !== 12 && ( + + )} + +
+
+); + +export default RenderMonthMrr; diff --git a/components/analytics/render-payer-header.tsx b/components/analytics/render-payer-header.tsx new file mode 100644 index 000000000..0fe869825 --- /dev/null +++ b/components/analytics/render-payer-header.tsx @@ -0,0 +1,39 @@ +import { ExternalLink } from "lucide-react"; +import Link from "next/link"; +import { FC } from "react"; +import ResellerBadge from "./reseller-badge"; + +type RenderPayerHeaderProps = { + id: string | undefined; + label: string; + isReseller: boolean; +}; + +const RenderPayerHeader: FC = ({ + id, + label, + isReseller, +}) => { + return ( +
+ {!id ? ( + label + ) : ( + + {label} + + + )} + {isReseller && ( +
+ +
+ )} +
+ ); +}; + +export default RenderPayerHeader; diff --git a/components/analytics/upload-issues.tsx b/components/analytics/upload-issues.tsx new file mode 100644 index 000000000..bfd7b598f --- /dev/null +++ b/components/analytics/upload-issues.tsx @@ -0,0 +1,10 @@ +import useMrr from "@/api/useMrr"; +import PayerAccountIssues from "./payer-account-issues"; + +const UploadIssues = () => { + const { mrr, mutate } = useMrr("WIP"); + + return ; +}; + +export default UploadIssues; diff --git a/components/analytics/useMrrFilter.tsx b/components/analytics/useMrrFilter.tsx index cd8eb5202..1c422cfee 100644 --- a/components/analytics/useMrrFilter.tsx +++ b/components/analytics/useMrrFilter.tsx @@ -1,5 +1,6 @@ import useMrr, { Mrr } from "@/api/useMrr"; import { ComponentType, createContext, FC, useContext, useState } from "react"; +import { KeyedMutator } from "swr"; const MRR_FILTERS_CONST = ["3", "6", "12", "24"] as const; export type MrrFilters = (typeof MRR_FILTERS_CONST)[number]; @@ -14,6 +15,7 @@ interface MrrFilterType { error: ReturnType["error"]; mrrFilter: MrrFilters; setMrrFilter: (filter: string) => void; + mutateMrr: KeyedMutator; } const MrrFilter = createContext(null); @@ -30,8 +32,8 @@ interface MrrFilterProviderProps { } const MrrFilterProvider: FC = ({ children }) => { - const [mrrFilter, setMrrFilter] = useState("12"); - const { mrr, isLoading, error } = useMrr("DONE", mrrFilter); + const [mrrFilter, setMrrFilter] = useState("6"); + const { mrr, isLoading, error, mutate } = useMrr("DONE", mrrFilter); const onFilterChange = (newFilter: string) => isValidMrrFilter(newFilter) && setMrrFilter(newFilter); @@ -44,6 +46,7 @@ const MrrFilterProvider: FC = ({ children }) => { error, mrrFilter, setMrrFilter: onFilterChange, + mutateMrr: mutate, }} > {children} diff --git a/components/ui-elements/list-items/bullet-list.tsx b/components/ui-elements/list-items/bullet-list.tsx new file mode 100644 index 000000000..89eea8940 --- /dev/null +++ b/components/ui-elements/list-items/bullet-list.tsx @@ -0,0 +1,24 @@ +import { cn } from "@/lib/utils"; +import { FC, ReactNode } from "react"; + +type BulletListProps = { + ulClassName?: string; + liClassName?: string; + items: ReactNode[]; +}; + +const BulletList: FC = ({ + ulClassName, + liClassName, + items, +}) => ( +
    + {items.map((item, index) => ( +
  • + {item} +
  • + ))} +
+); + +export default BulletList; diff --git a/components/ui/table.tsx b/components/ui/table.tsx index fac832155..638ccf0aa 100644 --- a/components/ui/table.tsx +++ b/components/ui/table.tsx @@ -73,7 +73,7 @@ const TableHead = React.forwardRef<
(({ className, ...props }, ref) => ( )); diff --git a/docs/releases/next.md b/docs/releases/next.md index f5872798a..98fde46b7 100644 --- a/docs/releases/next.md +++ b/docs/releases/next.md @@ -1,7 +1,9 @@ # Monatliche Umsätze der Kunden abbilden (Version :VERSION) - Datenbankschema ist erweitert, um das Hochladen von Kundenumsätzen zu unterstützen. -- Tableau Daten können nun importiert werden. Dazu werden die Kunden mit ihren Payer Accounts gezeigt und den jeweiligen Umsätzen pro Monat. Es wird auf Probleme hingewiesen, wenn die Payer Accounts nicht zugeordnet werden konnten. Meist liegt das daran, dass der Kundenname nicht übereinstimmt oder dass der Payer Account dem Kunden noch zugeordnet werden muss. +- Tableau Daten können nun importiert werden. Dazu werden die Kunden mit ihren Payer Accounts gezeigt und den jeweiligen Umsätzen pro Monat. Es wird auf Probleme hingewiesen, wenn die Payer Accounts nicht zugeordnet werden konnten. Meist liegt das daran, dass der Kundenname nicht übereinstimmt oder dass der Payer Account dem Kunden noch zugeordnet werden muss. Wenn die Payer ID neu ist, kann sie mit einem Klick erstellt und einem Account zugeordnet werden. +- Es werden auch Perioden vergleichen, so dass sich leicht Wachstum oder dergleichen erkennen lässt. +- Von den Kunden und den Payer Accounts kann man direkt auf die Detailseite springen. ## Packages aktualisiert @@ -19,8 +21,8 @@ Von "Current" auf "Latest" aktualisiert: ## In Arbeit -- Monatliche Umsätze der Kunden abbilden - Seite für einen Payer Account einführen. Auch dort soll der Umsatz der vergangenen Monate angezeigt werden können. +- Auf der Kundenseite sollen auch die Umsätze angezeigt werden. ## Geplant diff --git a/helpers/analytics/analytics.ts b/helpers/analytics/analytics.ts index b77c331cd..4104a9ad4 100644 --- a/helpers/analytics/analytics.ts +++ b/helpers/analytics/analytics.ts @@ -1,225 +1,51 @@ -import { Account } from "@/api/ContextAccounts"; -import { DoneMonthData, Mrr, MrrWipData } from "@/api/useMrr"; -import { formatDateYyyyMm, formatRevenue } from "@/helpers/functional"; +import { Mrr, MrrWipData } from "@/api/useMrr"; +import { formatDateYyyyMm } from "@/helpers/functional"; import { addMonths } from "date-fns"; -import { - filter, - find, - flow, - get, - identity, - join, - last, - map, - orderBy, - replace, - size, - some, - sortBy, - sum, - uniq, -} from "lodash/fp"; -import { Dispatch, SetStateAction } from "react"; +import { flow, get, identity, map, replace, some } from "lodash/fp"; -type PayerMrrsData = MrrWipData["latestMonths"][number]["payerMrrs"][number]; - -export type MrrDataIssue = { - awsAccountNumber: string; - companyName: string; - linkedCompanyName: string; -}; - -const substractMonthsFp = (noOfMonths: number) => - addMonths(new Date(), -noOfMonths); - -const plus12 = (num: number) => num + 12; - -export const getMinMonth = flow( - identity, - plus12, - substractMonthsFp, - formatDateYyyyMm +export const parseMonthToInt = flow( + identity, + replace("-", ""), + parseInt ); -const parseMonthToInt = flow(identity, replace("-", ""), parseInt); - export const mapPayerMrrs = (month: string) => ({ payerAccount, mrr, ...rest }: PayerMrrsData): Mrr => ({ month, mrr: mrr ?? 0, - payerAccountAccountId: payerAccount?.accountId ?? undefined, + payerAccountAccountIds: flow( + identity, + get("accounts"), + map("accountId") + )(payerAccount), ...rest, }); -const byAccount = - (account: string) => +export const byAccount = + (account: string | undefined) => ({ companyName }: Mrr) => - companyName === account; + !account || companyName === account; -const byPayerAccount = - (payerAccount: string) => +export const byPayerAccount = + (payerAccount: string | undefined) => ({ awsAccountNumber }: Mrr) => - awsAccountNumber === payerAccount; - -const byMonth = (month: string) => (mrr: Mrr) => month === mrr.month; - -const mrrByAccount = (mrr: Mrr[]) => (account: string) => - -( - flow(identity, filter(byAccount(account)), map("mrr"), sum)(mrr) ?? 0 - ); - -const mrrByPayerAccount = (mrr: Mrr[]) => (payerAccount: string) => - -( - flow( - identity, - filter(byPayerAccount(payerAccount)), - map("mrr"), - sum - )(mrr) ?? 0 - ); + !payerAccount || awsAccountNumber === payerAccount; -export const setAccountsFromMrr = ( - mrr: Mrr[] | undefined, - setAccounts: Dispatch> -) => - mrr && - flow( - identity, - map("companyName"), - uniq, - sortBy(mrrByAccount(mrr)), - setAccounts - )(mrr); - -export const setAccountMrrByAccount = ( - account: string, - mrr: Mrr[] | undefined, - setAccounts: Dispatch> -) => mrr && flow(identity, filter(byAccount(account)), setAccounts)(mrr); - -export const setPayerAccountsFromMrr = ( - mrr: Mrr[] | undefined, - setPayerAccounts: Dispatch> -) => - mrr && - flow( - identity, - map("awsAccountNumber"), - uniq, - sortBy(mrrByPayerAccount(mrr)), - setPayerAccounts - )(mrr); - -export const setPayerAccountMrrByPayer = ( - payer: string, - mrr: Mrr[], - setAccounts: Dispatch> -) => flow(identity, filter(byPayerAccount(payer)), setAccounts)(mrr); - -export const sortByMonth = flow( - identity, - sortBy(flow(identity, get("month"), parseMonthToInt)) -); - -export const setMonthsByPayer = ( - mrr: Mrr[] | undefined, - setMonths: Dispatch> -) => - mrr && - flow( - identity, - map("month"), - uniq, - sortBy(parseMonthToInt), - setMonths - )(mrr); - -export const setMonthMrrByMonth = ( - month: string, - mrr: Mrr[], - setMonthMrr: Dispatch> -) => flow(identity, filter(byMonth(month)), get(0), setMonthMrr)(mrr); - -const getMonthRevenueStr = (mrr: Mrr[]) => (lastMonth: string) => - `${lastMonth}: ${flow( - identity, - filter(byMonth(lastMonth)), - map("mrr"), - sum, - formatRevenue - )(mrr)}`; - -const getLastMonth = flow( - identity, - map("month"), - uniq, - sortBy(parseMonthToInt), - last -); - -const countMonths = flow(identity, map("month"), uniq, size); - -const getRevenueStr = (mrr: Mrr[]) => (totalMrr: number) => - totalMrr === 0 - ? "No data" - : `Total: ${formatRevenue(totalMrr)}, Avg: ${formatRevenue( - totalMrr / countMonths(mrr) - )}, ${flow(getLastMonth, getMonthRevenueStr(mrr))(mrr)}`; - -export const totalMrr = (mrr: Mrr[]) => - flow(identity, map("mrr"), sum, getRevenueStr(mrr))(mrr); +export const byMonth = (month: string) => (mrr: Mrr) => month === mrr.month; export const hasResellerItems = flow(identity, some("isReseller")); -const addCompanyNames = - (mrr: Mrr[]) => - (awsAccountNumber: string): Omit => ({ - awsAccountNumber, - companyName: flow( - filter(byPayerAccount(awsAccountNumber)), - map("companyName"), - uniq, - join(", ") - )(mrr), - }); - -const mapAccountName = (accounts: Account[]) => (accountId: string) => - flow( - find(({ id }) => id === accountId), - get("name") - )(accounts); +const substractMonthsFp = (noOfMonths: number) => + addMonths(new Date(), -noOfMonths); -const addLinkedAccountNames = - (mrr: Mrr[], accounts: Account[]) => - (issue: Omit): MrrDataIssue => ({ - ...issue, - linkedCompanyName: flow( - filter(byPayerAccount(issue.awsAccountNumber)), - map("payerAccountAccountId"), - uniq, - map(mapAccountName(accounts)), - join(", ") - )(mrr), - }); +const plus12 = (num: number) => num + 12; -const companiesDontMatch = ({ companyName, linkedCompanyName }: MrrDataIssue) => - companyName !== linkedCompanyName; +export const getMinMonth = flow( + identity, + plus12, + substractMonthsFp, + formatDateYyyyMm +); -export const setPayerAccountIssues = ( - mrr: Mrr[] | undefined, - accounts: Account[] | undefined, - setIssues: Dispatch> -) => - mrr && - accounts && - flow( - identity, - map("awsAccountNumber"), - uniq, - map(addCompanyNames(mrr)), - map(addLinkedAccountNames(mrr, accounts)), - filter(companiesDontMatch), - orderBy(["companyName"], ["asc"]), - setIssues - )(mrr); +type PayerMrrsData = MrrWipData["latestMonths"][number]["payerMrrs"][number]; diff --git a/helpers/analytics/api-actions.ts b/helpers/analytics/api-actions.ts index fb07238c3..3942ef325 100644 --- a/helpers/analytics/api-actions.ts +++ b/helpers/analytics/api-actions.ts @@ -10,8 +10,6 @@ import { generateClient, SelectionSet } from "aws-amplify/data"; import { map } from "lodash/fp"; const client = generateClient(); -type MonthData = Schema["Month"]["type"]; - export const createUploadRecord = async (s3Path: string) => { const { data, errors } = await client.models.MrrDataUpload.create({ s3Key: s3Path, @@ -48,12 +46,6 @@ export const updateMonth = async (monthId: string, uploadId: string) => { return mapMonth(data); }; -const mapMonth = ({ id, month, latestUploadId }: MonthData): Month => ({ - id, - month, - latestUploadId, -}); - export const fetchMonths = async () => { const { data, errors } = await client.models.Month.list({ limit: 200 }); if (errors) { @@ -97,13 +89,6 @@ export const createMrrRecord = return data; }; -const monthSelectionSet = ["id", "month", "latestUploadId"] as const; - -type LeanMonth = SelectionSet< - Schema["Month"]["type"], - typeof monthSelectionSet ->; - export const getMonths = async ( startMonth: string ): Promise => { @@ -119,20 +104,13 @@ export const getMonths = async ( return data; }; -export type DoneMonthMrrData = SelectionSet< - Schema["PayerAccountMrr"]["type"], - typeof monthMrrSelectionSet ->; - -const monthMrrSelectionSet = [ - "id", - "companyName", - "awsAccountNumber", - "payerAccount.accountId", - "isEstimated", - "isReseller", - "mrr", -] as const; +export type DoneMonthMrrData = { + month: string; + payerMrrs: SelectionSet< + Schema["PayerAccountMrr"]["type"], + typeof monthMrrSelectionSet + >[]; +}; export const getMonthMrr = async ({ id, month, latestUploadId }: LeanMonth) => { const { data, errors } = @@ -140,7 +118,7 @@ export const getMonthMrr = async ({ id, month, latestUploadId }: LeanMonth) => { { uploadId: latestUploadId }, { filter: { monthId: { eq: id } }, - limit: 500, + limit: 2000, selectionSet: monthMrrSelectionSet, } ); @@ -150,3 +128,28 @@ export const getMonthMrr = async ({ id, month, latestUploadId }: LeanMonth) => { } return { month, payerMrrs: data }; }; + +type MonthData = Schema["Month"]["type"]; + +const mapMonth = ({ id, month, latestUploadId }: MonthData): Month => ({ + id, + month, + latestUploadId, +}); + +const monthSelectionSet = ["id", "month", "latestUploadId"] as const; + +type LeanMonth = SelectionSet< + Schema["Month"]["type"], + typeof monthSelectionSet +>; + +const monthMrrSelectionSet = [ + "id", + "companyName", + "awsAccountNumber", + "payerAccount.accounts.accountId", + "isEstimated", + "isReseller", + "mrr", +] as const; diff --git a/helpers/analytics/issues.ts b/helpers/analytics/issues.ts new file mode 100644 index 000000000..488755c42 --- /dev/null +++ b/helpers/analytics/issues.ts @@ -0,0 +1,77 @@ +import { Account } from "@/api/ContextAccounts"; +import { Mrr } from "@/api/useMrr"; +import { + filter, + find, + flow, + get, + identity, + join, + map, + flatMap, + orderBy, + uniq, +} from "lodash/fp"; +import { Dispatch, SetStateAction } from "react"; +import { byPayerAccount } from "./analytics"; + +export type MrrDataIssue = { + awsAccountNumber: string; + companyName: string; + linkedCompanyName: string; +}; + +export const setPayerAccountIssues = ( + mrr: Mrr[] | undefined, + accounts: Account[] | undefined, + setIssues: Dispatch> +) => + mrr && + accounts && + flow( + identity, + map("awsAccountNumber"), + uniq, + map(addCompanyNames(mrr)), + map(addLinkedAccountNames(mrr, accounts)), + filter(companiesDontMatch), + orderBy(["companyName"], ["asc"]), + setIssues + )(mrr); + +const addCompanyNames = + (mrr: Mrr[]) => + (awsAccountNumber: string): Omit => ({ + awsAccountNumber, + companyName: flow( + filter(byPayerAccount(awsAccountNumber)), + orderBy("companyName", "asc"), + map("companyName"), + uniq, + join(", ") + )(mrr), + }); + +const addLinkedAccountNames = + (mrr: Mrr[], accounts: Account[]) => + (issue: Omit): MrrDataIssue => ({ + ...issue, + linkedCompanyName: flow( + identity, + filter(byPayerAccount(issue.awsAccountNumber)), + flatMap("payerAccountAccountIds"), + uniq, + map(mapAccountName(accounts)), + orderBy("", "asc"), + join(", ") + )(mrr), + }); + +const companiesDontMatch = ({ companyName, linkedCompanyName }: MrrDataIssue) => + companyName !== linkedCompanyName; + +const mapAccountName = (accounts: Account[]) => (accountId: string) => + flow( + find(({ id }) => id === accountId), + get("name") + )(accounts); diff --git a/helpers/analytics/prep-table-data.ts b/helpers/analytics/prep-table-data.ts new file mode 100644 index 000000000..e31ce03a5 --- /dev/null +++ b/helpers/analytics/prep-table-data.ts @@ -0,0 +1,225 @@ +import { Mrr } from "@/api/useMrr"; +import { + AccountMrr, + getColumnDef, + MonthData, + MonthMrr, +} from "@/components/analytics/analytics-table-column"; +import { + addMonthsFp, + formatDateYyyyMm, + invertSign, + substract, +} from "@/helpers/functional"; +import { ColumnDef } from "@tanstack/react-table"; +import { differenceInCalendarMonths } from "date-fns"; +import { + compact, + filter, + flatMap, + flow, + get, + identity, + last, + map, + reduce, + size, + some, + sortBy, + sum, + takeRight, + uniq, +} from "lodash/fp"; +import { Dispatch, SetStateAction } from "react"; +import { + byAccount, + byMonth, + byPayerAccount, + parseMonthToInt, +} from "./analytics"; + +export const setColumnDataFromMrr = ( + mrr: Mrr[] | undefined, + noOfMonths: number, + setColumnData: Dispatch> +) => + !mrr + ? [] + : flow( + identity, + map("companyName"), + uniq, + map(mapCompanyMrrData(mrr, noOfMonths)), + sortBy(getLastMonthMrrByAccount(mrr)), + setColumnData + )(mrr); + +export const setColumnDefFromMrr = ( + mrr: Mrr[] | undefined, + noOfMonths: number, + setColumnDef: Dispatch[]>> +) => + !mrr ? [] : flow(identity, getColumnDef, setColumnDef)(noOfMonths); + +export const getNoOfMonths = (mrr: Mrr[] | undefined) => + flow(identity, getUniqMonths, size)(mrr); + +const mapCompanyMrrData = + (mrr: Mrr[], noOfMonths: number) => + (account: string): AccountMrr => ({ + id: getAccountId(mrr, account), + accountOrPayer: account, + isReseller: false, + ...getMrrMonths(mrr, account, undefined, noOfMonths), + children: getPayerMrrDataByAccount(mrr, account, noOfMonths), + }); + +const filterMrrByMonths = (mrr: Mrr[]) => (months: string[]) => + flow( + identity, + filter((mrr) => months.includes(mrr.month)) + )(mrr); + +const getResellerState = ( + mrr: Mrr[], + account: string, + payer: string, + noOfMonths: number +) => + flow( + takeNoOfMonths(noOfMonths), + filterMrrByMonths(mrr), + filter(byAccount(account)), + filter(byPayerAccount(payer)), + some((mrr) => mrr.isReseller) + )(mrr); + +const mapPayerMrrData = + (mrr: Mrr[], account: string, noOfMonths: number) => + (payer: string): AccountMrr => ({ + id: payer, + accountOrPayer: payer, + isReseller: getResellerState(mrr, account, payer, noOfMonths), + ...getMrrMonths(mrr, account, payer, noOfMonths), + children: [], + }); + +const takeNoOfMonths = (noOfMonths: number) => + flow( + identity, + getUniqMonths, + sortBy(parseMonthToInt), + takeRight(noOfMonths) + ); + +const getMrrMonths = ( + mrr: Mrr[], + account: string, + payer: string | undefined, + noOfMonths: number +): MonthData => + flow( + takeNoOfMonths(noOfMonths), + reduce(getMrrMonthValue(mrr, account, payer, noOfMonths), {} as MonthData) + )(mrr); + +const getTotalMrr = + (account: string | undefined, payer: string | undefined, month: string) => + (mrr: Mrr[]) => + flow( + identity, + filter(byAccount(account)), + filter(byPayerAccount(payer)), + filter(byMonth(month)), + map("mrr"), + sum + )(mrr); + +const getLastMonthMrr = ( + mrr: Mrr[], + account: string, + payer: string | undefined +) => flow(getTotalMrr(account, payer, getLastMonth(mrr)), invertSign)(mrr); + +const getLastMonthMrrByAccount = + (mrr: Mrr[]) => + ({ accountOrPayer }: AccountMrr) => + getLastMonthMrr(mrr, accountOrPayer, undefined); + +const getLastMonthMrrByAccountAndPayer = + (mrr: Mrr[], account: string) => + ({ accountOrPayer }: AccountMrr) => + getLastMonthMrr(mrr, account, accountOrPayer); + +const getPayerMrrDataByAccount = ( + mrr: Mrr[], + account: string, + noOfMonths: number +): AccountMrr[] => + flow( + identity, + filter(byAccount(account)), + map("awsAccountNumber"), + uniq, + map(mapPayerMrrData(mrr, account, noOfMonths)), + sortBy(getLastMonthMrrByAccountAndPayer(mrr, account)) + )(mrr); + +const getAccountId = (mrr: Mrr[], account: string): string => + flow( + identity, + filter(({ companyName }) => companyName === account), + flatMap("payerAccountAccountIds"), + compact, + get(0) + )(mrr) ?? ""; + +const getMrrMonthValue = + ( + mrr: Mrr[], + account: string, + payer: string | undefined, + noOfMonths: number + ) => + (monthlyMrr: MonthData, month: string): MonthData => + flow(getTotalMrr(account, payer, month), (mrrTotal) => ({ + ...monthlyMrr, + [getMonthIdentifier(mrr, month, noOfMonths)]: { + currentMonth: mrrTotal, + lastMonth: getPrevPeriodValue(mrr, account, payer, month, -1), + lastPeriod: getPrevPeriodValue(mrr, account, payer, month, -noOfMonths), + lastYear: getPrevPeriodValue(mrr, account, payer, month, -12), + } as MonthMrr, + }))(mrr); + +const getPrevPeriodValue = ( + mrr: Mrr[], + account: string, + payer: string | undefined, + month: string, + diffMonths: number +) => + flow( + identity, + addMonthsFp(new Date(`${month}-01`)), + formatDateYyyyMm, + (prvMonth: string) => getTotalMrr(account, payer, prvMonth)(mrr) + )(diffMonths); + +const getMonthIdentifier = (mrr: Mrr[], month: string, noOfMonths: number) => + flow( + identity, + substract(diffInCalMonths(month)), + substract(1), + (id) => `month${id}Mrr` + )(noOfMonths); + +const diffInCalMonths = (month: string) => + differenceInCalendarMonths(new Date(), `${month}-01`); + +const getLastMonth = (mrr: Mrr[]) => + flow(identity, getUniqMonths, sortBy(parseMonthToInt), last)(mrr) ?? + ""; + +const getUniqMonths = (mrr: Mrr[] | undefined) => + flow(identity, map("month"), uniq)(mrr); diff --git a/helpers/functional.ts b/helpers/functional.ts index 284e8c93c..11b28c6b3 100644 --- a/helpers/functional.ts +++ b/helpers/functional.ts @@ -1,12 +1,14 @@ import { addDays, addMinutes, + addMonths, differenceInCalendarDays, format, Locale, parse, } from "date-fns"; import { + add, flow, identity, includes, @@ -40,11 +42,20 @@ export const usdCurrency = new Intl.NumberFormat("en-US", { style: "currency", maximumFractionDigits: 0, }); +export const formatThousands = (val: number) => + new Intl.NumberFormat("en-US", { + style: "decimal", + minimumFractionDigits: 0, + maximumFractionDigits: 0, + }).format(val); export const uniqArraySorted = (ids: string[]): string[] => { - const idMap: Record = ids.reduce((acc, id) => { - acc[id] = (acc[id] || 0) + 1; - return acc; - }, {} as Record); + const idMap: Record = ids.reduce( + (acc, id) => { + acc[id] = (acc[id] || 0) + 1; + return acc; + }, + {} as Record + ); const sortedIds = Object.keys(idMap).sort((a, b) => idMap[b] - idMap[a]); return sortedIds; }; @@ -58,8 +69,8 @@ export const formatRevenue = (revenue: number) => maximumFractionDigits: 0, }).format(revenue) : revenue < 500000 - ? `$${(revenue / 1000).toFixed(0)}k` - : `$${(revenue / 1000000).toFixed(1)}M`; + ? `$${(revenue / 1000).toFixed(0)}k` + : `$${(revenue / 1000000).toFixed(1)}M`; export const logFp = (...msg: any[]) => (data: T) => { @@ -91,3 +102,8 @@ export const includesNormalized = (search: string) => (toSearchIn: string) => export const parseDate = (format: string, locale: Locale) => (date: string) => parse(date, format, new Date(), { locale }); export const formatDateYyyyMm = (date: Date) => format(date, "yyyy-MM"); +export const formatDate = (formatStr: string) => (date: Date) => + format(date, formatStr); +export const substract = (n: number) => add(-n); +export const addMonthsFp = (date: Date) => (amount: number) => + addMonths(date, amount); diff --git a/helpers/payers/api-actions.ts b/helpers/payers/api-actions.ts new file mode 100644 index 000000000..49571ada4 --- /dev/null +++ b/helpers/payers/api-actions.ts @@ -0,0 +1,74 @@ +import { type Schema } from "@/amplify/data/resource"; +import { handleApiErrors } from "@/api/globals"; +import { generateClient } from "aws-amplify/data"; +import { flow, identity, get } from "lodash/fp"; +const client = generateClient(); + +export const getOrCreatePayerAccount = async (payerId: string) => { + const { data, errors } = await client.models.PayerAccount.get({ + awsAccountNumber: payerId, + }); + if (errors) { + handleApiErrors(errors, "Loading payer account failed"); + throw errors; + } + if (data) return data.awsAccountNumber; + return createPayerAccount(payerId); +}; + +export const createPayerAccountLink = async ( + accountId: string, + payerId: string +) => { + const { data, errors } = await client.models.AccountPayerAccount.create({ + accountId, + awsAccountNumberId: payerId, + }); + if (errors) { + handleApiErrors(errors, "Creating payer account link failed"); + throw errors; + } + return data?.awsAccountNumberId; +}; + +export const createPayerAndAccountLink = async ( + accountId: string, + payerId: string +) => { + const payerAccountId = await getOrCreatePayerAccount(payerId); + if (!payerAccountId) return; + return createPayerAccountLink(accountId, payerAccountId); +}; + +export const getAccountPayerAccountId = async ( + accountId: string, + payerId: string +) => { + const { data, errors } = + await client.models.AccountPayerAccount.listAccountPayerAccountByAwsAccountNumberId( + { + awsAccountNumberId: payerId, + }, + { filter: { accountId: { eq: accountId } }, limit: 1 } + ); + if (errors) { + handleApiErrors(errors, "Loading payer account link failed"); + throw errors; + } + return flow( + identity, + get(0), + get("id") + )(data); +}; + +const createPayerAccount = async (payerId: string) => { + const { data, errors } = await client.models.PayerAccount.create({ + awsAccountNumber: payerId, + }); + if (errors) { + handleApiErrors(errors, "Creating payer account failed"); + throw errors; + } + return data?.awsAccountNumber; +}; diff --git a/pages/accounts/[id].tsx b/pages/accounts/[id].tsx index dcbab8117..b74c58693 100644 --- a/pages/accounts/[id].tsx +++ b/pages/accounts/[id].tsx @@ -3,21 +3,18 @@ import AccountDetails from "@/components/accounts/AccountDetails"; import MainLayout from "@/components/layouts/MainLayout"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; +import { flow } from "lodash/fp"; const AccountDetailPage = () => { const router = useRouter(); const { id } = router.query; const accountId = Array.isArray(id) ? id[0] : id; const { getAccountById } = useAccountsContext(); - const [account, setAccount] = useState( - accountId ? getAccountById(accountId) : undefined - ); + const [account, setAccount] = useState(undefined); const [updateAccountFormOpen, setUpdateAccountFormOpen] = useState(false); useEffect(() => { - if (accountId) { - setAccount(getAccountById(accountId)); - } + flow(getAccountById, setAccount)(accountId); }, [accountId, getAccountById]); const handleBackBtnClick = () => { diff --git a/pages/customer-financials/index.tsx b/pages/customer-financials/index.tsx index 89abd5cb1..2ff6b1009 100644 --- a/pages/customer-financials/index.tsx +++ b/pages/customer-financials/index.tsx @@ -1,27 +1,51 @@ -import AccountsWithPayers from "@/components/analytics/accounts-with-payers"; -import ImportMrrData from "@/components/analytics/import-data"; -import MrrCurrentImport from "@/components/analytics/mrr-current-import"; -import MrrDocumentation from "@/components/analytics/mrr-documentation"; +import AnalyticsTable from "@/components/analytics/analytics-table"; +import { AccountMrr } from "@/components/analytics/analytics-table-column"; +import InstructionsUpload from "@/components/analytics/instructions-upload"; import MrrFilterBtnGrp from "@/components/analytics/mrr-filter-btn-grp"; -import { withMrrFilter } from "@/components/analytics/useMrrFilter"; +import UploadIssues from "@/components/analytics/upload-issues"; +import { + useMrrFilter, + withMrrFilter, +} from "@/components/analytics/useMrrFilter"; import MainLayout from "@/components/layouts/MainLayout"; import { Accordion } from "@/components/ui/accordion"; +import { + setColumnDataFromMrr, + setColumnDefFromMrr, +} from "@/helpers/analytics/prep-table-data"; +import { ColumnDef } from "@tanstack/react-table"; +import { flow } from "lodash/fp"; +import { useEffect, useState } from "react"; const CustomerFinancialsPage = () => { + const { mrrFilter, mrr } = useMrrFilter(); + const [noOfMonths, setNoOfMonths] = useState(0); + const [columnDef, setColumnDef] = useState[]>([]); + const [columnData, setColumnData] = useState([]); + + useEffect(() => { + flow(parseInt, setNoOfMonths)(mrrFilter); + }, [mrrFilter]); + + useEffect(() => { + setColumnDataFromMrr(mrr, noOfMonths, setColumnData); + }, [mrr, noOfMonths]); + + useEffect(() => { + setColumnDefFromMrr(mrr, noOfMonths, setColumnDef); + }, [mrr, noOfMonths]); + return (
- - - - - - - + + + +
); diff --git a/pages/payers/[id].tsx b/pages/payers/[id].tsx new file mode 100644 index 000000000..4a8a0220a --- /dev/null +++ b/pages/payers/[id].tsx @@ -0,0 +1,20 @@ +import MainLayout from "@/components/layouts/MainLayout"; +import { useRouter } from "next/router"; +// import { useEffect, useState } from "react"; + +const ProjectDetailPage = () => { + const router = useRouter(); + const { id } = router.query; + const payerId = Array.isArray(id) ? id[0] : id; + + return ( + + WORK IN PROGRESS + + ); +}; +export default ProjectDetailPage; From 2ec25aec8558ba54a9243d52af3ab07f21d27a0c Mon Sep 17 00:00:00 2001 From: Carsten Koch Date: Thu, 31 Oct 2024 11:28:46 +0100 Subject: [PATCH 5/7] fix: cleanup account details component --- components/accounts/AccountDetails.tsx | 141 +++---------------- components/accounts/AccountIntroduction.tsx | 42 ++++++ components/accounts/AccountPayerAccounts.tsx | 36 +++++ components/accounts/AccountProjects.tsx | 44 ++++++ components/accounts/AccountTerritories.tsx | 39 +++++ components/accounts/Subsidaries.tsx | 53 +++++++ 6 files changed, 234 insertions(+), 121 deletions(-) create mode 100644 components/accounts/AccountIntroduction.tsx create mode 100644 components/accounts/AccountPayerAccounts.tsx create mode 100644 components/accounts/AccountProjects.tsx create mode 100644 components/accounts/AccountTerritories.tsx create mode 100644 components/accounts/Subsidaries.tsx diff --git a/components/accounts/AccountDetails.tsx b/components/accounts/AccountDetails.tsx index 7028962b5..29406f1f0 100644 --- a/components/accounts/AccountDetails.tsx +++ b/components/accounts/AccountDetails.tsx @@ -1,28 +1,15 @@ import { Account, useAccountsContext } from "@/api/ContextAccounts"; -import { useProjectsContext } from "@/api/ContextProjects"; -import useTerritories, { Territory } from "@/api/useTerritories"; -import { formatRevenue } from "@/helpers/functional"; -import { - calcPipelineByAccountId, - make2YearsRevenueText, -} from "@/helpers/projects"; -import { Editor } from "@tiptap/core"; -import { filter, flow, map } from "lodash/fp"; import { FC } from "react"; import CrmLink from "../crm/CrmLink"; -import { ProjectFilterProvider } from "../projects/useProjectFilter"; -import { SearchProvider } from "../search/useSearch"; -import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; -import { debouncedUpdateAccountDetails } from "../ui-elements/account-details/account-updates-helpers"; -import NotesWriter from "../ui-elements/notes-writer/NotesWriter"; import { Accordion } from "../ui/accordion"; +import AccountIntroduction from "./AccountIntroduction"; import AccountNotes from "./AccountNotes"; +import AccountPayerAccounts from "./AccountPayerAccounts"; import AccountPeople from "./AccountPeople"; +import AccountProjects from "./AccountProjects"; +import AccountTerritories from "./AccountTerritories"; import AccountUpdateForm from "./AccountUpdateForm"; -import AccountsList from "./AccountsList"; -import ListPayerAccounts from "./ListPayerAccounts"; -import ListTerritories from "./ListTerritories"; -import ProjectList from "./ProjectList"; +import Subsidiaries from "./Subsidaries"; type AccountDetailsProps = { account: Account; @@ -48,23 +35,7 @@ const AccountDetails: FC = ({ showTerritories, showSubsidaries = true, }) => { - const { - accounts, - updateAccount, - deletePayerAccount, - getPipelineByControllerId, - } = useAccountsContext(); - const { territories } = useTerritories(); - const { projects } = useProjectsContext(); - - const handleUpdateIntroduction = (editor: Editor) => { - if (!account) return; - debouncedUpdateAccountDetails({ - id: account.id, - editor, - updateAccountFn: updateAccount, - }); - }; + const { accounts, updateAccount } = useAccountsContext(); return ( <> @@ -84,95 +55,23 @@ const AccountDetails: FC = ({ - {accounts && ( - a.controller?.id === account.id), - map((a) => a.name) - )(accounts), - ]} - isVisible={!!showSubsidaries} - > - - - )} - - - - - - - - - - - - + + + - - - 0} - > - - deletePayerAccount(account.id, payerId) - } - allowDeletion - showLabel={false} - /> - - - 0 && - `Quota: ${formatRevenue(account.latestQuota)}`, - ...flow( - filter((t: Territory) => account.territoryIds.includes(t.id)), - map("name") - )(territories), - ]} - isVisible={!!showTerritories && account.territoryIds.length > 0} - > - - + + ); diff --git a/components/accounts/AccountIntroduction.tsx b/components/accounts/AccountIntroduction.tsx new file mode 100644 index 000000000..ab08e5a33 --- /dev/null +++ b/components/accounts/AccountIntroduction.tsx @@ -0,0 +1,42 @@ +import { Account, useAccountsContext } from "@/api/ContextAccounts"; +import { Editor } from "@tiptap/core"; +import { FC } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import { debouncedUpdateAccountDetails } from "../ui-elements/account-details/account-updates-helpers"; +import NotesWriter from "../ui-elements/notes-writer/NotesWriter"; + +type AccountIntroductionProps = { + account: Account; + showIntroduction?: boolean; +}; + +const AccountIntroduction: FC = ({ + account, + showIntroduction, +}) => { + const { updateAccount } = useAccountsContext(); + + const handleUpdateIntroduction = (editor: Editor) => { + debouncedUpdateAccountDetails({ + id: account.id, + editor, + updateAccountFn: updateAccount, + }); + }; + + return ( + + + + ); +}; + +export default AccountIntroduction; diff --git a/components/accounts/AccountPayerAccounts.tsx b/components/accounts/AccountPayerAccounts.tsx new file mode 100644 index 000000000..132ae5b58 --- /dev/null +++ b/components/accounts/AccountPayerAccounts.tsx @@ -0,0 +1,36 @@ +import { Account, useAccountsContext } from "@/api/ContextAccounts"; +import { FC } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import ListPayerAccounts from "./ListPayerAccounts"; + +type AccountPayerAccountsProps = { + account: Account; + showAwsAccounts?: boolean; +}; + +const AccountPayerAccounts: FC = ({ + account, + showAwsAccounts, +}) => { + const { deletePayerAccount } = useAccountsContext(); + + return ( + 0} + > + + deletePayerAccount(account.id, payerId) + } + allowDeletion + showLabel={false} + /> + + ); +}; + +export default AccountPayerAccounts; diff --git a/components/accounts/AccountProjects.tsx b/components/accounts/AccountProjects.tsx new file mode 100644 index 000000000..686330684 --- /dev/null +++ b/components/accounts/AccountProjects.tsx @@ -0,0 +1,44 @@ +import { Account } from "@/api/ContextAccounts"; +import { useProjectsContext } from "@/api/ContextProjects"; +import { + calcPipelineByAccountId, + make2YearsRevenueText, +} from "@/helpers/projects"; +import { flow } from "lodash/fp"; +import { FC } from "react"; +import { ProjectFilterProvider } from "../projects/useProjectFilter"; +import { SearchProvider } from "../search/useSearch"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import ProjectList from "./ProjectList"; + +type AccountProjectsProps = { + account: Account; + showProjects?: boolean; +}; + +const AccountProjects: FC = ({ + account, + showProjects, +}) => { + const { projects } = useProjectsContext(); + + return ( + + + + + + + + ); +}; + +export default AccountProjects; diff --git a/components/accounts/AccountTerritories.tsx b/components/accounts/AccountTerritories.tsx new file mode 100644 index 000000000..f74102121 --- /dev/null +++ b/components/accounts/AccountTerritories.tsx @@ -0,0 +1,39 @@ +import { Account } from "@/api/ContextAccounts"; +import useTerritories, { Territory } from "@/api/useTerritories"; +import { formatRevenue } from "@/helpers/functional"; +import { filter, flow, map } from "lodash/fp"; +import { FC } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import ListTerritories from "./ListTerritories"; + +type AccountTerritoriesProps = { + account: Account; + showTerritories?: boolean; +}; + +const AccountTerritories: FC = ({ + account, + showTerritories, +}) => { + const { territories } = useTerritories(); + + return ( + 0 && + `Quota: ${formatRevenue(account.latestQuota)}`, + ...flow( + filter((t: Territory) => account.territoryIds.includes(t.id)), + map("name") + )(territories), + ]} + isVisible={!!showTerritories && account.territoryIds.length > 0} + > + + + ); +}; + +export default AccountTerritories; diff --git a/components/accounts/Subsidaries.tsx b/components/accounts/Subsidaries.tsx new file mode 100644 index 000000000..760c6f27f --- /dev/null +++ b/components/accounts/Subsidaries.tsx @@ -0,0 +1,53 @@ +import { Account, useAccountsContext } from "@/api/ContextAccounts"; +import { make2YearsRevenueText } from "@/helpers/projects"; +import { filter, flow, map } from "lodash/fp"; +import { FC } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import AccountsList from "./AccountsList"; + +type SubsidiariesProps = { + account: Account; + accounts: Account[] | undefined; + showSubsidaries?: boolean; + showContacts?: boolean; + showIntroduction?: boolean; + showProjects?: boolean; +}; + +const Subsidiaries: FC = ({ + account, + accounts, + showContacts, + showIntroduction, + showSubsidaries, + showProjects, +}) => { + const { getPipelineByControllerId } = useAccountsContext(); + + return ( + accounts && ( + a.controller?.id === account.id), + map((a) => a.name) + )(accounts), + ]} + isVisible={!!showSubsidaries} + > + + + ) + ); +}; + +export default Subsidiaries; From 7b0de11c5fd3fc83d6e256be5b98347b08f0caa7 Mon Sep 17 00:00:00 2001 From: Carsten Koch Date: Thu, 31 Oct 2024 11:37:57 +0100 Subject: [PATCH 6/7] feat: add financials to account page --- components/accounts/AccountDetails.tsx | 4 + components/accounts/AccountFinancials.tsx | 75 ++++++++++ .../analytics/analytics-table-column.tsx | 2 +- docs/releases/next.md | 2 +- helpers/analytics/account-data.tsx | 132 ++++++++++++++++++ helpers/analytics/prep-table-data.ts | 36 ++--- pages/accounts/[id].tsx | 3 +- 7 files changed, 233 insertions(+), 21 deletions(-) create mode 100644 components/accounts/AccountFinancials.tsx create mode 100644 helpers/analytics/account-data.tsx diff --git a/components/accounts/AccountDetails.tsx b/components/accounts/AccountDetails.tsx index 29406f1f0..19e44f3b0 100644 --- a/components/accounts/AccountDetails.tsx +++ b/components/accounts/AccountDetails.tsx @@ -2,6 +2,7 @@ import { Account, useAccountsContext } from "@/api/ContextAccounts"; import { FC } from "react"; import CrmLink from "../crm/CrmLink"; import { Accordion } from "../ui/accordion"; +import AccountFinancials from "./AccountFinancials"; import AccountIntroduction from "./AccountIntroduction"; import AccountNotes from "./AccountNotes"; import AccountPayerAccounts from "./AccountPayerAccounts"; @@ -18,6 +19,7 @@ type AccountDetailsProps = { showProjects?: boolean; showContacts?: boolean; showAwsAccounts?: boolean; + showFinancials?: boolean; showTerritories?: boolean; updateFormControl?: { open: boolean; @@ -32,6 +34,7 @@ const AccountDetails: FC = ({ showProjects, updateFormControl, showAwsAccounts, + showFinancials, showTerritories, showSubsidaries = true, }) => { @@ -72,6 +75,7 @@ const AccountDetails: FC = ({ + ); diff --git a/components/accounts/AccountFinancials.tsx b/components/accounts/AccountFinancials.tsx new file mode 100644 index 000000000..25ebed81f --- /dev/null +++ b/components/accounts/AccountFinancials.tsx @@ -0,0 +1,75 @@ +import { Account } from "@/api/ContextAccounts"; +import { + RevenueMonth, + setAccountColumnDataFromMrr, + setAccountColumnDefFromMrr, + setLastMonthsRevenue, + setTotalRevenueFromRevenueMonth, +} from "@/helpers/analytics/account-data"; +import { formatDate, formatRevenue } from "@/helpers/functional"; +import { ColumnDef } from "@tanstack/react-table"; +import { flow } from "lodash/fp"; +import { FC, useEffect, useState } from "react"; +import AnalyticsTable from "../analytics/analytics-table"; +import { AccountMrr } from "../analytics/analytics-table-column"; +import MrrFilterBtnGrp from "../analytics/mrr-filter-btn-grp"; +import { useMrrFilter, withMrrFilter } from "../analytics/useMrrFilter"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; + +type AccountFinancialsProps = { + account: Account; + showFinancials?: boolean; +}; + +const AccountFinancials: FC = ({ + account, + showFinancials, +}) => { + const { mrrFilter, mrr } = useMrrFilter(); + const [noOfMonths, setNoOfMonths] = useState(0); + const [columnDef, setColumnDef] = useState[]>([]); + const [columnData, setColumnData] = useState([]); + const [revenueLastMonths, setRevenueLastMonths] = useState( + [] + ); + const [totalRevenue, setTotalRevenue] = useState(0); + + useEffect(() => { + flow(parseInt, setNoOfMonths)(mrrFilter); + }, [mrrFilter]); + + useEffect(() => { + setAccountColumnDefFromMrr(mrr, noOfMonths, setColumnDef); + }, [mrr, noOfMonths]); + + useEffect(() => { + setAccountColumnDataFromMrr(account.name, mrr, noOfMonths, setColumnData); + }, [mrr, noOfMonths, account]); + + useEffect(() => { + setLastMonthsRevenue(3, account.name, mrr, setRevenueLastMonths); + }, [mrr, account]); + + useEffect(() => { + setTotalRevenueFromRevenueMonth(revenueLastMonths, setTotalRevenue); + }, [revenueLastMonths]); + + return ( + + `${formatDate("MMM yyyy")(month)}: ${formatRevenue(mrr)}` + )} + isVisible={!!showFinancials && totalRevenue > 0} + > +
+ + +
+
+ ); +}; + +export default withMrrFilter(AccountFinancials); diff --git a/components/analytics/analytics-table-column.tsx b/components/analytics/analytics-table-column.tsx index 222b36475..444e1e544 100644 --- a/components/analytics/analytics-table-column.tsx +++ b/components/analytics/analytics-table-column.tsx @@ -51,7 +51,7 @@ export const getColumnDef = (noOfMonths: number): ColumnDef[] => [ ...getMonthlyMrrColumnDef(noOfMonths), ]; -const getMonthName = (noOfMonths: number, id: number) => +export const getMonthName = (noOfMonths: number, id: number) => flow( identity, substract(id), diff --git a/docs/releases/next.md b/docs/releases/next.md index 98fde46b7..c71b26efa 100644 --- a/docs/releases/next.md +++ b/docs/releases/next.md @@ -4,6 +4,7 @@ - Tableau Daten können nun importiert werden. Dazu werden die Kunden mit ihren Payer Accounts gezeigt und den jeweiligen Umsätzen pro Monat. Es wird auf Probleme hingewiesen, wenn die Payer Accounts nicht zugeordnet werden konnten. Meist liegt das daran, dass der Kundenname nicht übereinstimmt oder dass der Payer Account dem Kunden noch zugeordnet werden muss. Wenn die Payer ID neu ist, kann sie mit einem Klick erstellt und einem Account zugeordnet werden. - Es werden auch Perioden vergleichen, so dass sich leicht Wachstum oder dergleichen erkennen lässt. - Von den Kunden und den Payer Accounts kann man direkt auf die Detailseite springen. +- Auf der Kundenseite werden nun auch Umsätze angezeigt. ## Packages aktualisiert @@ -22,7 +23,6 @@ Von "Current" auf "Latest" aktualisiert: ## In Arbeit - Seite für einen Payer Account einführen. Auch dort soll der Umsatz der vergangenen Monate angezeigt werden können. -- Auf der Kundenseite sollen auch die Umsätze angezeigt werden. ## Geplant diff --git a/helpers/analytics/account-data.tsx b/helpers/analytics/account-data.tsx new file mode 100644 index 000000000..465a98f62 --- /dev/null +++ b/helpers/analytics/account-data.tsx @@ -0,0 +1,132 @@ +import { Mrr } from "@/api/useMrr"; +import { + AccountMrr, + getMonthName, + MonthMrr, +} from "@/components/analytics/analytics-table-column"; +import RenderMonthMrr from "@/components/analytics/render-month-mrr"; +import RenderPayerHeader from "@/components/analytics/render-payer-header"; +import { ColumnDef } from "@tanstack/react-table"; +import { + filter, + flow, + identity, + map, + sortBy, + sum, + takeRight, + times, + uniq, +} from "lodash/fp"; +import { Dispatch, SetStateAction } from "react"; +import { byAccount, byMonth, parseMonthToInt } from "./analytics"; +import { + getLastMonthMrrByAccountAndPayer, + getUniqMonths, + mapPayerMrrData, +} from "./prep-table-data"; + +export type RevenueMonth = { + month: Date; + mrr: number; +}; + +export const setAccountColumnDataFromMrr = ( + account: string, + mrr: Mrr[] | undefined, + noOfMonths: number, + setColumnData: Dispatch> +) => + !mrr + ? [] + : flow( + identity, + filter(byAccount(account)), + map("awsAccountNumber"), + uniq, + map(mapPayerMrrData(mrr, account, noOfMonths)), + sortBy(getLastMonthMrrByAccountAndPayer(mrr, account)), + setColumnData + )(mrr); + +export const setAccountColumnDefFromMrr = ( + mrr: Mrr[] | undefined, + noOfMonths: number, + setColumnDef: Dispatch[]>> +) => + !mrr ? [] : flow(identity, getColumnDef, setColumnDef)(noOfMonths); + +export const setLastMonthsRevenue = ( + noOfMonths: number, + account: string, + mrr: Mrr[] | undefined, + setRevenue: Dispatch> +) => + !mrr + ? [] + : flow( + identity, + getUniqMonths, + sortBy(parseMonthToInt), + takeRight(noOfMonths), + map(getMonthAccountRevenue(account, mrr)), + setRevenue + )(mrr); + +export const setTotalRevenueFromRevenueMonth = ( + revenueLastMonths: RevenueMonth[], + setTotalRevenue: Dispatch> +) => + flow( + identity, + map("mrr"), + sum, + setTotalRevenue + )(revenueLastMonths); + +const getColumnDef = (noOfMonths: number): ColumnDef[] => [ + { accessorKey: "id" }, + { accessorKey: "isReseller" }, + { + accessorKey: "accountOrPayer", + header: "Payer", + cell: ({ row, getValue }) => ( + ()} + isReseller={row.getValue("isReseller")} + /> + ), + }, + ...getMonthlyMrrColumnDef(noOfMonths), +]; + +const getMonthAccountRevenue = + (account: string, mrr: Mrr[]) => + (month: string): RevenueMonth => + flow( + identity, + filter(byAccount(account)), + filter(byMonth(month)), + map("mrr"), + sum, + (mrrTotal) => ({ month: new Date(`${month}-01`), mrr: mrrTotal }) + )(mrr); + +const getMonthlyMrrColumnDef = (noOfMonths: number): ColumnDef[] => + flow( + identity, + times(identity), + map( + (id: number): ColumnDef => ({ + accessorKey: `month${id}Mrr`, + header: getMonthName(noOfMonths, id), + cell: ({ getValue }) => ( + ()} + noOfMonths={noOfMonths} + /> + ), + }) + ) + )(noOfMonths); diff --git a/helpers/analytics/prep-table-data.ts b/helpers/analytics/prep-table-data.ts index e31ce03a5..27fe39987 100644 --- a/helpers/analytics/prep-table-data.ts +++ b/helpers/analytics/prep-table-data.ts @@ -64,6 +64,24 @@ export const setColumnDefFromMrr = ( export const getNoOfMonths = (mrr: Mrr[] | undefined) => flow(identity, getUniqMonths, size)(mrr); +export const mapPayerMrrData = + (mrr: Mrr[], account: string, noOfMonths: number) => + (payer: string): AccountMrr => ({ + id: payer, + accountOrPayer: payer, + isReseller: getResellerState(mrr, account, payer, noOfMonths), + ...getMrrMonths(mrr, account, payer, noOfMonths), + children: [], + }); + +export const getLastMonthMrrByAccountAndPayer = + (mrr: Mrr[], account: string) => + ({ accountOrPayer }: AccountMrr) => + getLastMonthMrr(mrr, account, accountOrPayer); + +export const getUniqMonths = (mrr: Mrr[] | undefined) => + flow(identity, map("month"), uniq)(mrr); + const mapCompanyMrrData = (mrr: Mrr[], noOfMonths: number) => (account: string): AccountMrr => ({ @@ -94,16 +112,6 @@ const getResellerState = ( some((mrr) => mrr.isReseller) )(mrr); -const mapPayerMrrData = - (mrr: Mrr[], account: string, noOfMonths: number) => - (payer: string): AccountMrr => ({ - id: payer, - accountOrPayer: payer, - isReseller: getResellerState(mrr, account, payer, noOfMonths), - ...getMrrMonths(mrr, account, payer, noOfMonths), - children: [], - }); - const takeNoOfMonths = (noOfMonths: number) => flow( identity, @@ -146,11 +154,6 @@ const getLastMonthMrrByAccount = ({ accountOrPayer }: AccountMrr) => getLastMonthMrr(mrr, accountOrPayer, undefined); -const getLastMonthMrrByAccountAndPayer = - (mrr: Mrr[], account: string) => - ({ accountOrPayer }: AccountMrr) => - getLastMonthMrr(mrr, account, accountOrPayer); - const getPayerMrrDataByAccount = ( mrr: Mrr[], account: string, @@ -220,6 +223,3 @@ const diffInCalMonths = (month: string) => const getLastMonth = (mrr: Mrr[]) => flow(identity, getUniqMonths, sortBy(parseMonthToInt), last)(mrr) ?? ""; - -const getUniqMonths = (mrr: Mrr[] | undefined) => - flow(identity, map("month"), uniq)(mrr); diff --git a/pages/accounts/[id].tsx b/pages/accounts/[id].tsx index b74c58693..94eb1860a 100644 --- a/pages/accounts/[id].tsx +++ b/pages/accounts/[id].tsx @@ -1,9 +1,9 @@ import { Account, useAccountsContext } from "@/api/ContextAccounts"; import AccountDetails from "@/components/accounts/AccountDetails"; import MainLayout from "@/components/layouts/MainLayout"; +import { flow } from "lodash/fp"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; -import { flow } from "lodash/fp"; const AccountDetailPage = () => { const router = useRouter(); @@ -43,6 +43,7 @@ const AccountDetailPage = () => { showProjects showContacts showAwsAccounts + showFinancials showTerritories updateFormControl={{ open: updateAccountFormOpen, From 3424ee18c570eaccd06e6db0042d82074d683fd8 Mon Sep 17 00:00:00 2001 From: Carsten Koch Date: Thu, 31 Oct 2024 18:04:35 +0100 Subject: [PATCH 7/7] feat: payer ID page added, enabled linking of resellers and financial data for resellers --- api/ContextAccounts.tsx | 21 +- api/useMrr.ts | 2 + api/usePayer.ts | 122 +++++++++++ components/accounts/AccountDetails.tsx | 4 + components/accounts/AccountFinancials.tsx | 4 +- components/accounts/ResellerFinancials.tsx | 77 +++++++ .../analytics/instructions-upload-srrp.tsx | 5 +- components/payers/account-accordion.tsx | 55 +++++ components/payers/accounts.tsx | 50 +++++ components/payers/details.tsx | 48 +++++ components/payers/financials.tsx | 82 ++++++++ components/payers/reseller.tsx | 36 ++++ docs/releases/next.md | 4 +- helpers/analytics/account-data.tsx | 144 ++++++++++++- helpers/analytics/analytics.ts | 9 +- helpers/analytics/api-actions.ts | 1 + helpers/analytics/prep-table-data.ts | 82 ++++---- helpers/analytics/reseller-data.tsx | 197 ++++++++++++++++++ helpers/payers/api-actions.ts | 16 +- pages/accounts/[id].tsx | 1 + pages/payers/[id].tsx | 13 +- 21 files changed, 897 insertions(+), 76 deletions(-) create mode 100644 api/usePayer.ts create mode 100644 components/accounts/ResellerFinancials.tsx create mode 100644 components/payers/account-accordion.tsx create mode 100644 components/payers/accounts.tsx create mode 100644 components/payers/details.tsx create mode 100644 components/payers/financials.tsx create mode 100644 components/payers/reseller.tsx create mode 100644 helpers/analytics/reseller-data.tsx diff --git a/api/ContextAccounts.tsx b/api/ContextAccounts.tsx index a2cdbce1d..c4a07dc6f 100644 --- a/api/ContextAccounts.tsx +++ b/api/ContextAccounts.tsx @@ -6,27 +6,27 @@ import { calcOrder, getQuotaFromTerritoryOrSubsidaries, } from "@/helpers/accounts"; +import { + createPayerAccountLink, + deletePayerAccountLink, + getOrCreatePayerAccount, +} from "@/helpers/payers/api-actions"; import { transformNotesVersion } from "@/helpers/ui-notes-writer"; import { JSONContent } from "@tiptap/core"; import { SelectionSet, generateClient } from "aws-amplify/data"; import { filter, + find, flow, + identity, join, map, sortBy, sum, - find, - identity, } from "lodash/fp"; import { FC, ReactNode, createContext, useContext } from "react"; import useSWR from "swr"; import { handleApiErrors } from "./globals"; -import { - getOrCreatePayerAccount, - createPayerAccountLink, - getAccountPayerAccountId, -} from "@/helpers/payers/api-actions"; const client = generateClient(); type UpdateAccountProps = { @@ -440,12 +440,7 @@ export const AccountsContextProvider: FC = ({ : { ...a, payerAccounts: a.payerAccounts.filter((p) => p !== payer) } ); if (updated) mutate(updated, false); - const payerAccountId = await getAccountPayerAccountId(accountId, payer); - if (!payerAccountId) return; - const { data, errors } = await client.models.AccountPayerAccount.delete({ - id: payerAccountId, - }); - if (errors) handleApiErrors(errors, "Deleting payer failed"); + const data = await deletePayerAccountLink(accountId, payer); if (updated) mutate(updated); if (!data) return; toast({ diff --git a/api/useMrr.ts b/api/useMrr.ts index 07b1cd440..d16c9779e 100644 --- a/api/useMrr.ts +++ b/api/useMrr.ts @@ -19,6 +19,7 @@ const wipSelectionSet = [ "latestMonths.payerMrrs.companyName", "latestMonths.payerMrrs.awsAccountNumber", "latestMonths.payerMrrs.payerAccount.accounts.accountId", + "latestMonths.payerMrrs.payerAccount.resellerId", "latestMonths.payerMrrs.isEstimated", "latestMonths.payerMrrs.isReseller", "latestMonths.payerMrrs.mrr", @@ -37,6 +38,7 @@ export type Mrr = { payerAccountAccountIds?: string[]; isEstimated: boolean; isReseller: boolean; + resellerId?: string; mrr: number; lastYearMrr?: number; lastPeriodMrr?: number; diff --git a/api/usePayer.ts b/api/usePayer.ts new file mode 100644 index 000000000..50bddc368 --- /dev/null +++ b/api/usePayer.ts @@ -0,0 +1,122 @@ +import { type Schema } from "@/amplify/data/resource"; +import { + createPayerAndAccountLink, + deletePayerAccountLink, +} from "@/helpers/payers/api-actions"; +import { generateClient, SelectionSet } from "aws-amplify/data"; +import { map } from "lodash/fp"; +import useSWR from "swr"; +import { handleApiErrors } from "./globals"; +const client = generateClient(); + +type PayerData = SelectionSet< + Schema["PayerAccount"]["type"], + typeof selectionSet +>; + +const selectionSet = [ + "awsAccountNumber", + "accounts.accountId", + "resellerId", + "mainContactId", +] as const; + +export type Payer = { + accountNumber: string; + isReseller: boolean; + resellerId?: string; + accountIds: string[]; + mainContactId?: string; +}; + +const mapPayer = ({ + awsAccountNumber, + accounts, + resellerId, + mainContactId, +}: PayerData): Payer => ({ + accountNumber: awsAccountNumber, + isReseller: !!resellerId, + resellerId: resellerId ?? undefined, + accountIds: map(({ accountId }) => accountId)(accounts) ?? [], + mainContactId: mainContactId ?? undefined, +}); + +const fetchPayer = (payerId?: string) => async () => { + if (!payerId) return; + const { data, errors } = await client.models.PayerAccount.get( + { + awsAccountNumber: payerId, + }, + { selectionSet } + ); + if (errors) { + handleApiErrors(errors, "Loading Payer failed"); + throw errors; + } + if (!data) return; + + try { + return mapPayer(data); + } catch (error) { + console.error("fetchPayer", error); + throw error; + } +}; + +const usePayer = (payerId?: string) => { + const { + data: payer, + isLoading, + error, + mutate, + } = useSWR(`/api/payers/${payerId}`, fetchPayer(payerId)); + + const createPayerAccountLink = async (accountId: string | null) => { + if (!accountId) return; + if (!payer) return; + const updatedPayer = { + ...payer, + accountIds: [...payer.accountIds, accountId], + } as Payer; + mutate(updatedPayer, false); + await createPayerAndAccountLink(accountId, payer.accountNumber); + mutate(updatedPayer); + }; + + const deletePayerAccount = async (accountId: string) => { + if (!payer) return; + const updated = { + ...payer, + accountIds: payer.accountIds.filter((p) => p !== accountId), + } as Payer; + mutate(updated, false); + await deletePayerAccountLink(accountId, payer.accountNumber); + mutate(updated); + }; + + const attachReseller = async (resellerId: string | null) => { + if (!resellerId) return; + if (!payer) return; + const updatedPayer = { ...payer, resellerId } as Payer; + mutate(updatedPayer, false); + const { data, errors } = await client.models.PayerAccount.update({ + awsAccountNumber: payer.accountNumber, + resellerId, + }); + if (errors) handleApiErrors(errors, "Attaching reseller failed"); + mutate(updatedPayer); + return data; + }; + + return { + payer, + isLoading, + error, + createPayerAccountLink, + deletePayerAccount, + attachReseller, + }; +}; + +export default usePayer; diff --git a/components/accounts/AccountDetails.tsx b/components/accounts/AccountDetails.tsx index 19e44f3b0..797f5b616 100644 --- a/components/accounts/AccountDetails.tsx +++ b/components/accounts/AccountDetails.tsx @@ -10,6 +10,7 @@ import AccountPeople from "./AccountPeople"; import AccountProjects from "./AccountProjects"; import AccountTerritories from "./AccountTerritories"; import AccountUpdateForm from "./AccountUpdateForm"; +import ResellerFinancials from "./ResellerFinancials"; import Subsidiaries from "./Subsidaries"; type AccountDetailsProps = { @@ -21,6 +22,7 @@ type AccountDetailsProps = { showAwsAccounts?: boolean; showFinancials?: boolean; showTerritories?: boolean; + showResellerFinancials?: boolean; updateFormControl?: { open: boolean; setOpen: (val: boolean) => void; @@ -36,6 +38,7 @@ const AccountDetails: FC = ({ showAwsAccounts, showFinancials, showTerritories, + showResellerFinancials, showSubsidaries = true, }) => { const { accounts, updateAccount } = useAccountsContext(); @@ -76,6 +79,7 @@ const AccountDetails: FC = ({ + ); diff --git a/components/accounts/AccountFinancials.tsx b/components/accounts/AccountFinancials.tsx index 25ebed81f..913511569 100644 --- a/components/accounts/AccountFinancials.tsx +++ b/components/accounts/AccountFinancials.tsx @@ -3,7 +3,7 @@ import { RevenueMonth, setAccountColumnDataFromMrr, setAccountColumnDefFromMrr, - setLastMonthsRevenue, + setLastMonthsAccountRevenue, setTotalRevenueFromRevenueMonth, } from "@/helpers/analytics/account-data"; import { formatDate, formatRevenue } from "@/helpers/functional"; @@ -47,7 +47,7 @@ const AccountFinancials: FC = ({ }, [mrr, noOfMonths, account]); useEffect(() => { - setLastMonthsRevenue(3, account.name, mrr, setRevenueLastMonths); + setLastMonthsAccountRevenue(3, account.name, mrr, setRevenueLastMonths); }, [mrr, account]); useEffect(() => { diff --git a/components/accounts/ResellerFinancials.tsx b/components/accounts/ResellerFinancials.tsx new file mode 100644 index 000000000..9dfa5fd26 --- /dev/null +++ b/components/accounts/ResellerFinancials.tsx @@ -0,0 +1,77 @@ +import { Account } from "@/api/ContextAccounts"; +import { + RevenueMonth, + setTotalRevenueFromRevenueMonth, +} from "@/helpers/analytics/account-data"; +import { setColumnDefFromMrr } from "@/helpers/analytics/prep-table-data"; +import { + setLastMonthsResellerRevenue, + setResellerColumnDataFromMrr, +} from "@/helpers/analytics/reseller-data"; +import { formatDate, formatRevenue } from "@/helpers/functional"; +import { ColumnDef } from "@tanstack/react-table"; +import { flow } from "lodash/fp"; +import { FC, useEffect, useState } from "react"; +import AnalyticsTable from "../analytics/analytics-table"; +import { AccountMrr } from "../analytics/analytics-table-column"; +import MrrFilterBtnGrp from "../analytics/mrr-filter-btn-grp"; +import { useMrrFilter, withMrrFilter } from "../analytics/useMrrFilter"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; + +type ResellerFinancialsProps = { + account: Account; + showResellerFinancials?: boolean; +}; + +const ResellerFinancials: FC = ({ + account, + showResellerFinancials, +}) => { + const { mrrFilter, mrr } = useMrrFilter(); + const [noOfMonths, setNoOfMonths] = useState(0); + const [columnDef, setColumnDef] = useState[]>([]); + const [columnData, setColumnData] = useState([]); + const [revenueLastMonths, setRevenueLastMonths] = useState( + [] + ); + const [totalRevenue, setTotalRevenue] = useState(0); + + useEffect(() => { + flow(parseInt, setNoOfMonths)(mrrFilter); + }, [mrrFilter]); + + useEffect(() => { + setColumnDefFromMrr(mrr, noOfMonths, setColumnDef); + }, [mrr, noOfMonths]); + + useEffect(() => { + setResellerColumnDataFromMrr(account.id, mrr, noOfMonths, setColumnData); + }, [account, mrr, noOfMonths]); + + useEffect(() => { + setLastMonthsResellerRevenue(account.id, 3, mrr, setRevenueLastMonths); + }, [account, mrr]); + + useEffect(() => { + setTotalRevenueFromRevenueMonth(revenueLastMonths, setTotalRevenue); + }, [revenueLastMonths]); + + return ( + + `${formatDate("MMM yyyy")(month)}: ${formatRevenue(mrr)}` + )} + isVisible={!!showResellerFinancials && totalRevenue > 0} + > +
+ + +
+
+ ); +}; + +export default withMrrFilter(ResellerFinancials); diff --git a/components/analytics/instructions-upload-srrp.tsx b/components/analytics/instructions-upload-srrp.tsx index 43691ba52..7cf47657d 100644 --- a/components/analytics/instructions-upload-srrp.tsx +++ b/components/analytics/instructions-upload-srrp.tsx @@ -1,9 +1,6 @@ -import { FC } from "react"; import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; -type InstructionsUploadSrrpProps = {}; - -const InstructionsUploadSrrp: FC = ({}) => { +const InstructionsUploadSrrp = () => { return ( DESCRIBE SRRP HERE (WIP) diff --git a/components/payers/account-accordion.tsx b/components/payers/account-accordion.tsx new file mode 100644 index 000000000..1314993be --- /dev/null +++ b/components/payers/account-accordion.tsx @@ -0,0 +1,55 @@ +import { Account, useAccountsContext } from "@/api/ContextAccounts"; +import { find, flow, identity } from "lodash/fp"; +import { FC, useEffect, useState } from "react"; +import AccountDetails from "../accounts/AccountDetails"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import LoadingAccordionItem from "../ui-elements/accordion/LoadingAccordionItem"; +import { Button } from "../ui/button"; + +type PayerAccountAccordionProps = { + accountId: string; + removeLinkToPayer: (accountId: string) => void; +}; + +const PayerAccountAccordion: FC = ({ + accountId, + removeLinkToPayer, +}) => { + const { accounts } = useAccountsContext(); + const [account, setAccount] = useState(); + + useEffect(() => { + flow( + identity, + find(["id", accountId]), + setAccount + )(accounts); + }, [accounts, accountId]); + + return !account ? ( + + ) : ( + +
+ +
+ +
+ ); +}; + +export default PayerAccountAccordion; diff --git a/components/payers/accounts.tsx b/components/payers/accounts.tsx new file mode 100644 index 000000000..1957d3e8b --- /dev/null +++ b/components/payers/accounts.tsx @@ -0,0 +1,50 @@ +import { useAccountsContext } from "@/api/ContextAccounts"; +import usePayer from "@/api/usePayer"; +import { FC } from "react"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; +import AccountSelector from "../ui-elements/selectors/account-selector"; +import { Accordion } from "../ui/accordion"; +import PayerAccountAccordion from "./account-accordion"; + +type PayerAccountsProps = { + payerId: string; + showLinkedAccounts?: boolean; +}; + +const PayerAccounts: FC = ({ + payerId, + showLinkedAccounts, +}) => { + const { getAccountNamesByIds } = useAccountsContext(); + const { payer, createPayerAccountLink, deletePayerAccount } = + usePayer(payerId); + + return ( + + +
+ +
+ + {payer?.accountIds.map((accountId) => ( + + ))} +
+
+ ); +}; + +export default PayerAccounts; diff --git a/components/payers/details.tsx b/components/payers/details.tsx new file mode 100644 index 000000000..5c905c45a --- /dev/null +++ b/components/payers/details.tsx @@ -0,0 +1,48 @@ +import usePayer from "@/api/usePayer"; +import { Accordion } from "@/components/ui/accordion"; +import { FC } from "react"; +import AccountSelector from "../ui-elements/selectors/account-selector"; +import PayerAccounts from "./accounts"; +import PayerFinancials from "./financials"; +import PayerReseller from "./reseller"; + +type PayerDetailsProps = { + showLinkedAccounts?: boolean; + showFinancials?: boolean; + showReseller?: boolean; + payerId: string | undefined; +}; + +const PayerDetails: FC = ({ + payerId, + showFinancials = true, + showLinkedAccounts = true, + showReseller = true, +}) => { + const { attachReseller } = usePayer(payerId); + + return ( + payerId && ( + +
+ +
+ + + + + + +
+ ) + ); +}; + +export default PayerDetails; diff --git a/components/payers/financials.tsx b/components/payers/financials.tsx new file mode 100644 index 000000000..756706bce --- /dev/null +++ b/components/payers/financials.tsx @@ -0,0 +1,82 @@ +import { Badge } from "@/components/ui/badge"; +import { + RevenueMonth, + setIsResellerForPayer, + setLastMonthsPayerRevenue, + setPayerColumnDataFromMrr, + setPayerColumnDefFromMrr, +} from "@/helpers/analytics/account-data"; +import { formatDate, formatRevenue } from "@/helpers/functional"; +import { ColumnDef } from "@tanstack/react-table"; +import { flow } from "lodash/fp"; +import { FC, useEffect, useState } from "react"; +import AnalyticsTable from "../analytics/analytics-table"; +import { AccountMrr } from "../analytics/analytics-table-column"; +import MrrFilterBtnGrp from "../analytics/mrr-filter-btn-grp"; +import { useMrrFilter, withMrrFilter } from "../analytics/useMrrFilter"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; + +type PayerFinancialsProps = { + payerId: string; + showFinancials?: boolean; +}; + +const PayerFinancials: FC = ({ + payerId, + showFinancials, +}) => { + const { mrrFilter, mrr } = useMrrFilter(); + const [noOfMonths, setNoOfMonths] = useState(0); + const [columnDef, setColumnDef] = useState[]>([]); + const [columnData, setColumnData] = useState([]); + const [revenueLastMonths, setRevenueLastMonths] = useState( + [] + ); + const [isReseller, setIsReseller] = useState(false); + + useEffect(() => { + flow(parseInt, setNoOfMonths)(mrrFilter); + }, [mrrFilter]); + + useEffect(() => { + setPayerColumnDefFromMrr(mrr, noOfMonths, setColumnDef); + }, [mrr, noOfMonths]); + + useEffect(() => { + setPayerColumnDataFromMrr(payerId, mrr, noOfMonths, setColumnData); + }, [mrr, noOfMonths, payerId]); + + useEffect(() => { + setLastMonthsPayerRevenue(3, payerId, mrr, setRevenueLastMonths); + }, [mrr, payerId]); + + useEffect(() => { + setIsResellerForPayer(payerId, mrr, noOfMonths, setIsReseller); + }, [payerId, mrr, noOfMonths]); + + return ( + + `${formatDate("MMM yyyy")(month)}: ${formatRevenue(mrr)}` + )} + isVisible={!!showFinancials} + > +
+ + + {isReseller && ( +
+ Reseller +
+ )} + + +
+
+ ); +}; + +export default withMrrFilter(PayerFinancials); diff --git a/components/payers/reseller.tsx b/components/payers/reseller.tsx new file mode 100644 index 000000000..60599b1c3 --- /dev/null +++ b/components/payers/reseller.tsx @@ -0,0 +1,36 @@ +import { Account, useAccountsContext } from "@/api/ContextAccounts"; +import usePayer from "@/api/usePayer"; +import { setResellerByPayer } from "@/helpers/analytics/account-data"; +import { FC, useEffect, useState } from "react"; +import AccountDetails from "../accounts/AccountDetails"; +import DefaultAccordionItem from "../ui-elements/accordion/DefaultAccordionItem"; + +type PayerResellerProps = { + payerId: string; + showReseller?: boolean; +}; + +const PayerReseller: FC = ({ payerId, showReseller }) => { + const { accounts } = useAccountsContext(); + const { payer } = usePayer(payerId); + const [reseller, setReseller] = useState(); + + useEffect(() => { + setResellerByPayer(payer, accounts, setReseller); + }, [payer, accounts]); + + return ( + reseller && ( + + + + ) + ); +}; + +export default PayerReseller; diff --git a/docs/releases/next.md b/docs/releases/next.md index c71b26efa..330957cd1 100644 --- a/docs/releases/next.md +++ b/docs/releases/next.md @@ -5,6 +5,8 @@ - Es werden auch Perioden vergleichen, so dass sich leicht Wachstum oder dergleichen erkennen lässt. - Von den Kunden und den Payer Accounts kann man direkt auf die Detailseite springen. - Auf der Kundenseite werden nun auch Umsätze angezeigt. +- Payer Accounts haben nun eine eigene Seite. Dort kann ein Reseller hinzugefügt werden und die Umsätze dargestellt werden. +- Für Reseller werden die Umsätze verknüpfter AWS Accounts angezeigt. ## Packages aktualisiert @@ -22,8 +24,6 @@ Von "Current" auf "Latest" aktualisiert: ## In Arbeit -- Seite für einen Payer Account einführen. Auch dort soll der Umsatz der vergangenen Monate angezeigt werden können. - ## Geplant ### Account Details diff --git a/helpers/analytics/account-data.tsx b/helpers/analytics/account-data.tsx index 465a98f62..a432f640f 100644 --- a/helpers/analytics/account-data.tsx +++ b/helpers/analytics/account-data.tsx @@ -1,17 +1,22 @@ +import { Account } from "@/api/ContextAccounts"; import { Mrr } from "@/api/useMrr"; +import { Payer } from "@/api/usePayer"; import { AccountMrr, getMonthName, MonthMrr, } from "@/components/analytics/analytics-table-column"; +import RenderAccountHeader from "@/components/analytics/render-account-header"; import RenderMonthMrr from "@/components/analytics/render-month-mrr"; import RenderPayerHeader from "@/components/analytics/render-payer-header"; import { ColumnDef } from "@tanstack/react-table"; import { filter, + find, flow, identity, map, + some, sortBy, sum, takeRight, @@ -19,9 +24,17 @@ import { uniq, } from "lodash/fp"; import { Dispatch, SetStateAction } from "react"; -import { byAccount, byMonth, parseMonthToInt } from "./analytics"; import { + byAccount, + byMonth, + byPayerAccount, + parseMonthToInt, +} from "./analytics"; +import { + getAccountId, + getLastMonthMrr, getLastMonthMrrByAccountAndPayer, + getMrrMonths, getUniqMonths, mapPayerMrrData, } from "./prep-table-data"; @@ -49,14 +62,43 @@ export const setAccountColumnDataFromMrr = ( setColumnData )(mrr); +export const setPayerColumnDataFromMrr = ( + payer: string, + mrr: Mrr[] | undefined, + noOfMonths: number, + setColumnData: Dispatch> +) => + !mrr + ? [] + : flow( + identity, + filter(byPayerAccount(payer)), + map("companyName"), + uniq, + map(mapCompanyMrrData(mrr, payer, noOfMonths)), + sortBy(getLastMonthMrrByPayer(mrr, payer)), + setColumnData + )(mrr); + export const setAccountColumnDefFromMrr = ( mrr: Mrr[] | undefined, noOfMonths: number, setColumnDef: Dispatch[]>> ) => - !mrr ? [] : flow(identity, getColumnDef, setColumnDef)(noOfMonths); + !mrr + ? [] + : flow(identity, getAccountColumnDef, setColumnDef)(noOfMonths); -export const setLastMonthsRevenue = ( +export const setPayerColumnDefFromMrr = ( + mrr: Mrr[] | undefined, + noOfMonths: number, + setColumnDef: Dispatch[]>> +) => + !mrr + ? [] + : flow(identity, getPayerColumnDef, setColumnDef)(noOfMonths); + +export const setLastMonthsAccountRevenue = ( noOfMonths: number, account: string, mrr: Mrr[] | undefined, @@ -73,6 +115,23 @@ export const setLastMonthsRevenue = ( setRevenue )(mrr); +export const setLastMonthsPayerRevenue = ( + noOfMonths: number, + payer: string, + mrr: Mrr[] | undefined, + setRevenue: Dispatch> +) => + !mrr + ? [] + : flow( + identity, + getUniqMonths, + sortBy(parseMonthToInt), + takeRight(noOfMonths), + map(getMonthPayerRevenue(payer, mrr)), + setRevenue + )(mrr); + export const setTotalRevenueFromRevenueMonth = ( revenueLastMonths: RevenueMonth[], setTotalRevenue: Dispatch> @@ -84,7 +143,49 @@ export const setTotalRevenueFromRevenueMonth = ( setTotalRevenue )(revenueLastMonths); -const getColumnDef = (noOfMonths: number): ColumnDef[] => [ +export const setIsResellerForPayer = ( + payer: string, + mrr: Mrr[] | undefined, + noOfMonths: number, + setIsReseller: Dispatch> +) => + !mrr + ? null + : flow( + identity, + getUniqMonths, + sortBy(parseMonthToInt), + takeRight(noOfMonths), + some(payerIsReseller(payer, mrr)), + setIsReseller + )(mrr); + +export const setResellerByPayer = ( + payer: Payer | undefined, + accounts: Account[] | undefined, + setReseller: Dispatch> +) => + payer?.resellerId && + flow( + identity, + find(["id", payer.resellerId]), + setReseller + )(accounts); + +const payerIsReseller = (payer: string, mrr: Mrr[]) => (month: string) => + flow( + identity, + filter(byPayerAccount(payer)), + filter(byMonth(month)), + some((item) => item.isReseller) + )(mrr); + +const getLastMonthMrrByPayer = + (mrr: Mrr[], payer: string) => + ({ accountOrPayer: account }: AccountMrr) => + getLastMonthMrr(mrr, account, payer); + +const getAccountColumnDef = (noOfMonths: number): ColumnDef[] => [ { accessorKey: "id" }, { accessorKey: "isReseller" }, { @@ -101,6 +202,19 @@ const getColumnDef = (noOfMonths: number): ColumnDef[] => [ ...getMonthlyMrrColumnDef(noOfMonths), ]; +const getPayerColumnDef = (noOfMonths: number): ColumnDef[] => [ + { accessorKey: "id" }, + { accessorKey: "isReseller" }, + { + accessorKey: "accountOrPayer", + header: "Account", + cell: ({ row, getValue }) => ( + ()} /> + ), + }, + ...getMonthlyMrrColumnDef(noOfMonths), +]; + const getMonthAccountRevenue = (account: string, mrr: Mrr[]) => (month: string): RevenueMonth => @@ -113,6 +227,18 @@ const getMonthAccountRevenue = (mrrTotal) => ({ month: new Date(`${month}-01`), mrr: mrrTotal }) )(mrr); +const getMonthPayerRevenue = + (payer: string, mrr: Mrr[]) => + (month: string): RevenueMonth => + flow( + identity, + filter(byPayerAccount(payer)), + filter(byMonth(month)), + map("mrr"), + sum, + (mrrTotal) => ({ month: new Date(`${month}-01`), mrr: mrrTotal }) + )(mrr); + const getMonthlyMrrColumnDef = (noOfMonths: number): ColumnDef[] => flow( identity, @@ -130,3 +256,13 @@ const getMonthlyMrrColumnDef = (noOfMonths: number): ColumnDef[] => }) ) )(noOfMonths); + +const mapCompanyMrrData = + (mrr: Mrr[], payer: string, noOfMonths: number) => + (account: string): AccountMrr => ({ + id: getAccountId(mrr, account), + accountOrPayer: account, + isReseller: false, + ...getMrrMonths(mrr, account, payer, noOfMonths), + children: [], + }); diff --git a/helpers/analytics/analytics.ts b/helpers/analytics/analytics.ts index 4104a9ad4..c70aba2a9 100644 --- a/helpers/analytics/analytics.ts +++ b/helpers/analytics/analytics.ts @@ -1,7 +1,7 @@ import { Mrr, MrrWipData } from "@/api/useMrr"; import { formatDateYyyyMm } from "@/helpers/functional"; import { addMonths } from "date-fns"; -import { flow, get, identity, map, replace, some } from "lodash/fp"; +import { flow, get, identity, map, replace } from "lodash/fp"; export const parseMonthToInt = flow( identity, @@ -19,6 +19,11 @@ export const mapPayerMrrs = get("accounts"), map("accountId") )(payerAccount), + resellerId: + flow( + identity, + get("resellerId") + )(payerAccount) ?? undefined, ...rest, }); @@ -34,8 +39,6 @@ export const byPayerAccount = export const byMonth = (month: string) => (mrr: Mrr) => month === mrr.month; -export const hasResellerItems = flow(identity, some("isReseller")); - const substractMonthsFp = (noOfMonths: number) => addMonths(new Date(), -noOfMonths); diff --git a/helpers/analytics/api-actions.ts b/helpers/analytics/api-actions.ts index 3942ef325..e52022c91 100644 --- a/helpers/analytics/api-actions.ts +++ b/helpers/analytics/api-actions.ts @@ -149,6 +149,7 @@ const monthMrrSelectionSet = [ "companyName", "awsAccountNumber", "payerAccount.accounts.accountId", + "payerAccount.resellerId", "isEstimated", "isReseller", "mrr", diff --git a/helpers/analytics/prep-table-data.ts b/helpers/analytics/prep-table-data.ts index 27fe39987..8a9dea523 100644 --- a/helpers/analytics/prep-table-data.ts +++ b/helpers/analytics/prep-table-data.ts @@ -23,7 +23,6 @@ import { last, map, reduce, - size, some, sortBy, sum, @@ -61,9 +60,6 @@ export const setColumnDefFromMrr = ( ) => !mrr ? [] : flow(identity, getColumnDef, setColumnDef)(noOfMonths); -export const getNoOfMonths = (mrr: Mrr[] | undefined) => - flow(identity, getUniqMonths, size)(mrr); - export const mapPayerMrrData = (mrr: Mrr[], account: string, noOfMonths: number) => (payer: string): AccountMrr => ({ @@ -82,6 +78,45 @@ export const getLastMonthMrrByAccountAndPayer = export const getUniqMonths = (mrr: Mrr[] | undefined) => flow(identity, map("month"), uniq)(mrr); +export const getAccountId = (mrr: Mrr[], account: string): string => + flow( + identity, + filter(({ companyName }) => companyName === account), + flatMap("payerAccountAccountIds"), + compact, + get(0) + )(mrr) ?? ""; + +export const getMrrMonths = ( + mrr: Mrr[], + account: string, + payer: string | undefined, + noOfMonths: number +): MonthData => + flow( + takeNoOfMonths(noOfMonths), + reduce(getMrrMonthValue(mrr, account, payer, noOfMonths), {} as MonthData) + )(mrr); + +export const getLastMonthMrr = ( + mrr: Mrr[], + account: string, + payer: string | undefined +) => flow(getTotalMrr(account, payer, getLastMonth(mrr)), invertSign)(mrr); + +export const getLastMonthMrrByAccount = + (mrr: Mrr[]) => + ({ accountOrPayer }: AccountMrr) => + getLastMonthMrr(mrr, accountOrPayer, undefined); + +export const takeNoOfMonths = (noOfMonths: number) => + flow( + identity, + getUniqMonths, + sortBy(parseMonthToInt), + takeRight(noOfMonths) + ); + const mapCompanyMrrData = (mrr: Mrr[], noOfMonths: number) => (account: string): AccountMrr => ({ @@ -112,25 +147,6 @@ const getResellerState = ( some((mrr) => mrr.isReseller) )(mrr); -const takeNoOfMonths = (noOfMonths: number) => - flow( - identity, - getUniqMonths, - sortBy(parseMonthToInt), - takeRight(noOfMonths) - ); - -const getMrrMonths = ( - mrr: Mrr[], - account: string, - payer: string | undefined, - noOfMonths: number -): MonthData => - flow( - takeNoOfMonths(noOfMonths), - reduce(getMrrMonthValue(mrr, account, payer, noOfMonths), {} as MonthData) - )(mrr); - const getTotalMrr = (account: string | undefined, payer: string | undefined, month: string) => (mrr: Mrr[]) => @@ -143,17 +159,6 @@ const getTotalMrr = sum )(mrr); -const getLastMonthMrr = ( - mrr: Mrr[], - account: string, - payer: string | undefined -) => flow(getTotalMrr(account, payer, getLastMonth(mrr)), invertSign)(mrr); - -const getLastMonthMrrByAccount = - (mrr: Mrr[]) => - ({ accountOrPayer }: AccountMrr) => - getLastMonthMrr(mrr, accountOrPayer, undefined); - const getPayerMrrDataByAccount = ( mrr: Mrr[], account: string, @@ -168,15 +173,6 @@ const getPayerMrrDataByAccount = ( sortBy(getLastMonthMrrByAccountAndPayer(mrr, account)) )(mrr); -const getAccountId = (mrr: Mrr[], account: string): string => - flow( - identity, - filter(({ companyName }) => companyName === account), - flatMap("payerAccountAccountIds"), - compact, - get(0) - )(mrr) ?? ""; - const getMrrMonthValue = ( mrr: Mrr[], diff --git a/helpers/analytics/reseller-data.tsx b/helpers/analytics/reseller-data.tsx new file mode 100644 index 000000000..fb2866142 --- /dev/null +++ b/helpers/analytics/reseller-data.tsx @@ -0,0 +1,197 @@ +import { Mrr } from "@/api/useMrr"; +import { + AccountMrr, + MonthData, + MonthMrr, +} from "@/components/analytics/analytics-table-column"; +import { differenceInCalendarMonths } from "date-fns"; +import { + filter, + flow, + identity, + map, + reduce, + sortBy, + sum, + takeRight, + uniq, +} from "lodash/fp"; +import { Dispatch, SetStateAction } from "react"; +import { addMonthsFp, formatDateYyyyMm, substract } from "../functional"; +import { RevenueMonth } from "./account-data"; +import { + byAccount, + byMonth, + byPayerAccount, + parseMonthToInt, +} from "./analytics"; +import { + getAccountId, + getLastMonthMrrByAccount, + getUniqMonths, + takeNoOfMonths, +} from "./prep-table-data"; + +export const setResellerColumnDataFromMrr = ( + resellerId: string | undefined, + mrr: Mrr[] | undefined, + noOfMonths: number, + setColumnData: Dispatch> +) => + !mrr + ? [] + : !resellerId + ? [] + : flow( + identity, + filter(byReseller(resellerId)), + map("companyName"), + uniq, + map(mapCompanyMrrData(resellerId, mrr, noOfMonths)), + sortBy(getLastMonthMrrByAccount(mrr)), + setColumnData + )(mrr); + +export const setLastMonthsResellerRevenue = ( + resellerId: string | undefined, + noOfMonths: number, + mrr: Mrr[] | undefined, + setRevenue: Dispatch> +) => + !mrr + ? [] + : !resellerId + ? [] + : flow( + identity, + filter(byReseller(resellerId)), + getUniqMonths, + sortBy(parseMonthToInt), + takeRight(noOfMonths), + map(getMonthResellerRevenue(resellerId, mrr)), + setRevenue + )(mrr); + +const byReseller = (resellerId: string) => (mrr: Mrr) => + resellerId === mrr.resellerId; + +const getMonthResellerRevenue = + (resellerId: string, mrr: Mrr[]) => + (month: string): RevenueMonth => + flow( + identity, + filter(byReseller(resellerId)), + filter(byMonth(month)), + map("mrr"), + sum, + (mrrTotal) => ({ month: new Date(`${month}-01`), mrr: mrrTotal }) + )(mrr); + +const mapCompanyMrrData = + (resellerId: string, mrr: Mrr[], noOfMonths: number) => + (account: string): AccountMrr => ({ + id: getAccountId(mrr, account), + accountOrPayer: account, + isReseller: false, + ...getMrrMonths(resellerId, mrr, account, undefined, noOfMonths), + children: [], + }); + +const getMrrMonths = ( + resellerId: string, + mrr: Mrr[], + account: string, + payer: string | undefined, + noOfMonths: number +): MonthData => + flow( + takeNoOfMonths(noOfMonths), + reduce( + getMrrMonthValue(resellerId, mrr, account, payer, noOfMonths), + {} as MonthData + ) + )(mrr); + +const getMrrMonthValue = + ( + resellerId: string, + mrr: Mrr[], + account: string, + payer: string | undefined, + noOfMonths: number + ) => + (monthlyMrr: MonthData, month: string): MonthData => + flow(getTotalMrr(resellerId, account, payer, month), (mrrTotal) => ({ + ...monthlyMrr, + [getMonthIdentifier(mrr, month, noOfMonths)]: { + currentMonth: mrrTotal, + lastMonth: getPrevPeriodValue( + resellerId, + mrr, + account, + payer, + month, + -1 + ), + lastPeriod: getPrevPeriodValue( + resellerId, + mrr, + account, + payer, + month, + -noOfMonths + ), + lastYear: getPrevPeriodValue( + resellerId, + mrr, + account, + payer, + month, + -12 + ), + } as MonthMrr, + }))(mrr); + +const getTotalMrr = + ( + resellerId: string, + account: string | undefined, + payer: string | undefined, + month: string + ) => + (mrr: Mrr[]) => + flow( + identity, + filter(byReseller(resellerId)), + filter(byAccount(account)), + filter(byPayerAccount(payer)), + filter(byMonth(month)), + map("mrr"), + sum + )(mrr); + +const getPrevPeriodValue = ( + resellerId: string, + mrr: Mrr[], + account: string, + payer: string | undefined, + month: string, + diffMonths: number +) => + flow( + identity, + addMonthsFp(new Date(`${month}-01`)), + formatDateYyyyMm, + (prvMonth: string) => getTotalMrr(resellerId, account, payer, prvMonth)(mrr) + )(diffMonths); + +const getMonthIdentifier = (mrr: Mrr[], month: string, noOfMonths: number) => + flow( + identity, + substract(diffInCalMonths(month)), + substract(1), + (id) => `month${id}Mrr` + )(noOfMonths); + +const diffInCalMonths = (month: string) => + differenceInCalendarMonths(new Date(), `${month}-01`); diff --git a/helpers/payers/api-actions.ts b/helpers/payers/api-actions.ts index 49571ada4..8223a43ae 100644 --- a/helpers/payers/api-actions.ts +++ b/helpers/payers/api-actions.ts @@ -1,7 +1,7 @@ import { type Schema } from "@/amplify/data/resource"; import { handleApiErrors } from "@/api/globals"; import { generateClient } from "aws-amplify/data"; -import { flow, identity, get } from "lodash/fp"; +import { flow, get, identity } from "lodash/fp"; const client = generateClient(); export const getOrCreatePayerAccount = async (payerId: string) => { @@ -40,10 +40,20 @@ export const createPayerAndAccountLink = async ( return createPayerAccountLink(accountId, payerAccountId); }; -export const getAccountPayerAccountId = async ( +export const deletePayerAccountLink = async ( accountId: string, - payerId: string + payer: string ) => { + const payerAccountId = await getAccountPayerAccountId(accountId, payer); + if (!payerAccountId) return; + const { data, errors } = await client.models.AccountPayerAccount.delete({ + id: payerAccountId, + }); + if (errors) handleApiErrors(errors, "Deleting payer failed"); + return data; +}; + +const getAccountPayerAccountId = async (accountId: string, payerId: string) => { const { data, errors } = await client.models.AccountPayerAccount.listAccountPayerAccountByAwsAccountNumberId( { diff --git a/pages/accounts/[id].tsx b/pages/accounts/[id].tsx index 94eb1860a..ee2e374e0 100644 --- a/pages/accounts/[id].tsx +++ b/pages/accounts/[id].tsx @@ -44,6 +44,7 @@ const AccountDetailPage = () => { showContacts showAwsAccounts showFinancials + showResellerFinancials showTerritories updateFormControl={{ open: updateAccountFormOpen, diff --git a/pages/payers/[id].tsx b/pages/payers/[id].tsx index 4a8a0220a..9961957ff 100644 --- a/pages/payers/[id].tsx +++ b/pages/payers/[id].tsx @@ -1,11 +1,14 @@ +import usePayer from "@/api/usePayer"; import MainLayout from "@/components/layouts/MainLayout"; +import PayerDetails from "@/components/payers/details"; +import { Badge } from "@/components/ui/badge"; import { useRouter } from "next/router"; -// import { useEffect, useState } from "react"; const ProjectDetailPage = () => { const router = useRouter(); const { id } = router.query; const payerId = Array.isArray(id) ? id[0] : id; + const { payer } = usePayer(payerId); return ( { recordName={payerId} sectionName="AWS Payer Accounts" > - WORK IN PROGRESS + {payer?.isReseller && ( +
+ Reseller +
+ )} + +
); };