From 9f426d91cf86ff0bc5065f0a4c012d9cc1f5abfd Mon Sep 17 00:00:00 2001 From: Davor Runje Date: Fri, 19 Jul 2024 13:18:53 +0000 Subject: [PATCH] add app direcotry --- app/.gitignore | 14 + app/.prettierrc | 9 + app/.waspignore | 3 + app/.wasproot | 1 + app/main.wasp | 482 + .../migration.sql | 172 + .../migration.sql | 32 + .../migration.sql | 4 + .../migration.sql | 2 + .../migration.sql | 2 + .../migration.sql | 50 + .../migration.sql | 2 + .../migration.sql | 2 + .../migration.sql | 16 + .../migration.sql | 2 + app/migrations/migration_lock.toml | 3 + app/package-lock.json | 13434 ++++++++++++++++ app/package.json | 43 + app/postcss.config.cjs | 6 + app/pretend_nats_client.ts | 58 + app/public/.gitkeep | 0 app/public/favicon.ico | Bin 0 -> 243998 bytes app/public/fonts/Panton-SemiBold.woff | Bin 0 -> 45248 bytes app/public/fonts/Roboto-Light.ttf | Bin 0 -> 167000 bytes app/public/fonts/Roboto-Regular.ttf | Bin 0 -> 168260 bytes app/public/fonts/RobotoMono-Regular.ttf | Bin 0 -> 86908 bytes app/public/fonts/Rubik-Medium.ttf | Bin 0 -> 116056 bytes app/public/public-banner.png | 3 + app/src/client/App.tsx | 179 + app/src/client/Main.css | 448 + app/src/client/admin/common/Loader/index.tsx | 9 + app/src/client/admin/common/types.ts | 3 + app/src/client/admin/components/BarChart.tsx | 146 + .../client/admin/components/Breadcrumb.tsx | 24 + .../client/admin/components/CheckboxOne.tsx | 39 + .../client/admin/components/CheckboxTwo.tsx | 48 + .../admin/components/DarkModeSwitcher.tsx | 58 + app/src/client/admin/components/DataStats.tsx | 102 + .../admin/components/DropdownEditDelete.tsx | 117 + app/src/client/admin/components/Header.tsx | 97 + .../client/admin/components/MessageButton.tsx | 45 + app/src/client/admin/components/PieChart.tsx | 150 + .../components/RevenueAndProfitChart.tsx | 242 + app/src/client/admin/components/Sidebar.tsx | 527 + .../admin/components/SidebarLinkGroup.tsx | 21 + .../client/admin/components/SourcesTable.tsx | 47 + .../client/admin/components/SwitcherOne.tsx | 33 + .../client/admin/components/SwitcherTwo.tsx | 66 + .../admin/components/TotalPaidViewsCard.tsx | 55 + .../admin/components/TotalPayingUsersCard.tsx | 53 + .../admin/components/TotalRevenueCard.tsx | 62 + .../admin/components/TotalSignupsCard.tsx | 57 + .../client/admin/components/UsersTable.tsx | 234 + .../admin/images/icon/icon-arrow-down.svg | 6 + .../admin/images/icon/icon-calendar.svg | 6 + .../admin/images/icon/icon-copy-alt.svg | 6 + .../client/admin/images/icon/icon-moon.svg | 10 + app/src/client/admin/images/icon/icon-sun.svg | 10 + .../client/admin/images/icon/icons-arrows.tsx | 35 + app/src/client/admin/layout/DefaultLayout.tsx | 41 + app/src/client/admin/pages/Calendar.tsx | 274 + app/src/client/admin/pages/Chart.tsx | 23 + app/src/client/admin/pages/DashboardPage.tsx | 43 + .../client/admin/pages/Form/FormElements.tsx | 343 + .../client/admin/pages/Form/FormLayout.tsx | 258 + app/src/client/admin/pages/Messages.tsx | 10 + app/src/client/admin/pages/Settings.tsx | 325 + .../client/admin/pages/UiElements/Alerts.tsx | 99 + .../client/admin/pages/UiElements/Buttons.tsx | 471 + app/src/client/admin/pages/Users.tsx | 16 + app/src/client/app/AccountPage.tsx | 108 + app/src/client/app/BuildPage.tsx | 192 + app/src/client/app/CheckoutPage.tsx | 54 + app/src/client/app/ExamplesPage.tsx | 36 + app/src/client/app/PlayGroundPage.tsx | 217 + app/src/client/app/PricingPage.tsx | 167 + app/src/client/app/PrivacyPage.tsx | 378 + app/src/client/app/TocPage.tsx | 197 + app/src/client/app/TutorialPage.tsx | 102 + app/src/client/app/layout/ChatLayout.tsx | 96 + .../app/layout/CustomAuthRequiredLayout.tsx | 25 + app/src/client/app/utils/formHelpers.ts | 19 + app/src/client/auth/Auth.tsx | 110 + app/src/client/auth/LoginPage.tsx | 41 + app/src/client/auth/LoginSignupForm.tsx | 181 + app/src/client/auth/SignupPage.tsx | 11 + app/src/client/auth/authWrapper.tsx | 13 + app/src/client/auth/configs/config.ts | 11 + .../client/auth/configs/stitches.config.js | 30 + .../components/AgentConversationHistory.tsx | 50 + .../components/AnimatedCharacterLoader.tsx | 72 + app/src/client/components/AppNavBar.tsx | 140 + .../client/components/AutoScrollContainer.tsx | 57 + app/src/client/components/Button.tsx | 20 + app/src/client/components/ChatForm.tsx | 112 + app/src/client/components/ChatSidebar.tsx | 216 + .../client/components/ConversationList.tsx | 184 + .../client/components/CustomBreadcrumb.tsx | 24 + app/src/client/components/CustomSidebar.tsx | 337 + app/src/client/components/DropdownUser.tsx | 83 + .../client/components/DynamicFormBuilder.tsx | 99 + .../client/components/EditableChatName.tsx | 90 + app/src/client/components/Footer.tsx | 66 + app/src/client/components/FreeTrialButton.tsx | 49 + .../components/LetterByLetterDisplay.tsx | 36 + .../client/components/LoadingComponent.tsx | 50 + .../MarketingEmailPreferenceSwitcher.tsx | 80 + app/src/client/components/ModelForm.tsx | 70 + .../client/components/ModelFormContainer.tsx | 49 + app/src/client/components/ModelItem.tsx | 67 + app/src/client/components/ModelsList.tsx | 32 + app/src/client/components/NotificationBox.tsx | 37 + .../client/components/RetryConversation.tsx | 49 + .../client/components/SelectTeamToChat.tsx | 129 + .../components/ServerNotRechableComponent.tsx | 19 + .../client/components/SocialMediaIcons.tsx | 24 + app/src/client/components/TerminalDisplay.tsx | 115 + .../components/TosAndMarketingEmails.tsx | 72 + .../components/TosAndMarketingEmailsModal.tsx | 93 + .../client/components/UserActionButton.tsx | 41 + app/src/client/components/UserMenuItems.tsx | 100 + .../buildPage/UserPropertyHandler.tsx | 203 + .../client/components/form/DynamicForm.tsx | 138 + .../client/components/form/SelectInput.tsx | 100 + app/src/client/components/form/TextArea.tsx | 18 + app/src/client/components/form/TextInput.tsx | 20 + app/src/client/hooks/useBuildPage.ts | 31 + app/src/client/hooks/useColorMode.tsx | 17 + .../client/hooks/useDeploymentInstructions.ts | 23 + app/src/client/hooks/useEscapeKeyHandler.ts | 12 + app/src/client/hooks/useForm.ts | 68 + app/src/client/hooks/useFormSubmission.ts | 88 + app/src/client/hooks/useLocalStorage.tsx | 43 + .../hooks/usePropertyReferenceValues.ts | 60 + .../client/interfaces/BuildPageInterfaces.ts | 66 + .../interfaces/DynamicFormBuilderInterface.ts | 13 + .../interfaces/PlaygroundPageInterface.ts | 3 + app/src/client/landing-page/LandingPage.tsx | 240 + .../client/landing-page/contentSections.ts | 85 + app/src/client/services/commonService.ts | 10 + app/src/client/services/modelService.ts | 12 + app/src/client/static/avatar-placeholder.png | 3 + app/src/client/static/da-boi.png | 3 + app/src/client/static/logo.svg | 11 + app/src/client/static/open-saas-banner.png | 3 + app/src/client/static/robot-footer.svg | 76 + .../tests/AgentConversationHistory.test.tsx | 21 + .../tests/AnimatedCharacterLoader.test.tsx | 14 + app/src/client/tests/App.test.tsx | 196 + app/src/client/tests/Button.test.tsx | 21 + app/src/client/tests/ChatForm.test.tsx | 178 + .../client/tests/DynamicFormBuilder.test.tsx | 206 + .../client/tests/EditableChatName.test.tsx | 69 + app/src/client/tests/FreeTrialButton.test.tsx | 40 + .../client/tests/LoadingComponent.test.tsx | 12 + .../MarketingEmailPreferenceSwitcher.test.tsx | 65 + app/src/client/tests/NotificationBox.test.tsx | 33 + .../client/tests/RetryConversation.test.tsx | 38 + app/src/client/tests/SelectInput.test.tsx | 36 + .../tests/ServerNotRechableComponent.test.tsx | 14 + .../tests/TosAndMarketingEmails.test.tsx | 68 + .../tests/TosAndMarketingEmailsModal.test.tsx | 74 + app/src/client/tests/buildPageUtils.test.ts | 2508 +++ app/src/client/tests/commonUtils.test.ts | 37 + app/src/client/tests/formHelper.test.ts | 56 + app/src/client/tests/schemaParser.test.ts | 150 + .../tests/usePropertyReferenceValues.test.ts | 616 + app/src/client/utils/buildPageUtils.ts | 290 + app/src/client/utils/chatUtils.ts | 195 + app/src/client/utils/commonUtils.ts | 7 + app/src/client/utils/constants.ts | 64 + app/src/client/utils/schemaParser.ts | 25 + app/src/server/actions.ts | 585 + app/src/server/auth/authHelper.ts | 56 + app/src/server/auth/setUsername.ts | 22 + app/src/server/common/constants.ts | 2 + app/src/server/payments/stripeUtils.ts | 53 + app/src/server/queries.ts | 294 + app/src/server/scripts/usersSeed.ts | 55 + app/src/server/webhooks/stripe.ts | 209 + app/src/server/websocket/nats.ts | 237 + app/src/server/websocket/webSocket.js | 85 + app/src/server/workers/calculateDailyStats.ts | 153 + app/src/server/workers/checkAndQueueEmails.ts | 54 + .../server/workers/googleAnalyticsUtils.ts | 141 + .../server/workers/plausibleAnalyticsUtils.ts | 103 + app/src/shared/constants.ts | 47 + app/src/shared/types.ts | 15 + app/src/shared/utils.ts | 6 + app/src/vite-env.d.ts | 1 + app/tailwind.config.cjs | 260 + app/tsconfig.json | 41 + app/vite.config.ts | 7 + 193 files changed, 32633 insertions(+) create mode 100644 app/.gitignore create mode 100644 app/.prettierrc create mode 100644 app/.waspignore create mode 100644 app/.wasproot create mode 100644 app/main.wasp create mode 100644 app/migrations/20240409105442_initial_migration/migration.sql create mode 100644 app/migrations/20240409131235_cleanup_entities/migration.sql create mode 100644 app/migrations/20240412085104_add_fields_to_user_entity_to_trach_signup_complete_status/migration.sql create mode 100644 app/migrations/20240506081108_add_uuid_column_to_user_model/migration.sql create mode 100644 app/migrations/20240506081341_set_uuid_for_existing_users/migration.sql create mode 100644 app/migrations/20240508054330_add_chat_and_conversation_models/migration.sql create mode 100644 app/migrations/20240508144539_add_column_to_store_the_selected_team_name/migration.sql create mode 100644 app/migrations/20240517080637_add_column_to_track_chat_completion_status/migration.sql create mode 100644 app/migrations/20240522125442_delete_daily_analysis_and_smart_suggestions_related_columns_from_chat_model/migration.sql create mode 100644 app/migrations/20240619070132_add_new_column_in_user_model_to_store_the_user_setup_status/migration.sql create mode 100644 app/migrations/migration_lock.toml create mode 100644 app/package-lock.json create mode 100644 app/package.json create mode 100644 app/postcss.config.cjs create mode 100644 app/pretend_nats_client.ts create mode 100644 app/public/.gitkeep create mode 100644 app/public/favicon.ico create mode 100644 app/public/fonts/Panton-SemiBold.woff create mode 100644 app/public/fonts/Roboto-Light.ttf create mode 100644 app/public/fonts/Roboto-Regular.ttf create mode 100644 app/public/fonts/RobotoMono-Regular.ttf create mode 100644 app/public/fonts/Rubik-Medium.ttf create mode 100644 app/public/public-banner.png create mode 100644 app/src/client/App.tsx create mode 100644 app/src/client/Main.css create mode 100644 app/src/client/admin/common/Loader/index.tsx create mode 100644 app/src/client/admin/common/types.ts create mode 100644 app/src/client/admin/components/BarChart.tsx create mode 100644 app/src/client/admin/components/Breadcrumb.tsx create mode 100644 app/src/client/admin/components/CheckboxOne.tsx create mode 100644 app/src/client/admin/components/CheckboxTwo.tsx create mode 100644 app/src/client/admin/components/DarkModeSwitcher.tsx create mode 100644 app/src/client/admin/components/DataStats.tsx create mode 100644 app/src/client/admin/components/DropdownEditDelete.tsx create mode 100644 app/src/client/admin/components/Header.tsx create mode 100644 app/src/client/admin/components/MessageButton.tsx create mode 100644 app/src/client/admin/components/PieChart.tsx create mode 100644 app/src/client/admin/components/RevenueAndProfitChart.tsx create mode 100644 app/src/client/admin/components/Sidebar.tsx create mode 100644 app/src/client/admin/components/SidebarLinkGroup.tsx create mode 100644 app/src/client/admin/components/SourcesTable.tsx create mode 100644 app/src/client/admin/components/SwitcherOne.tsx create mode 100644 app/src/client/admin/components/SwitcherTwo.tsx create mode 100644 app/src/client/admin/components/TotalPaidViewsCard.tsx create mode 100644 app/src/client/admin/components/TotalPayingUsersCard.tsx create mode 100644 app/src/client/admin/components/TotalRevenueCard.tsx create mode 100644 app/src/client/admin/components/TotalSignupsCard.tsx create mode 100644 app/src/client/admin/components/UsersTable.tsx create mode 100644 app/src/client/admin/images/icon/icon-arrow-down.svg create mode 100644 app/src/client/admin/images/icon/icon-calendar.svg create mode 100644 app/src/client/admin/images/icon/icon-copy-alt.svg create mode 100644 app/src/client/admin/images/icon/icon-moon.svg create mode 100644 app/src/client/admin/images/icon/icon-sun.svg create mode 100644 app/src/client/admin/images/icon/icons-arrows.tsx create mode 100644 app/src/client/admin/layout/DefaultLayout.tsx create mode 100644 app/src/client/admin/pages/Calendar.tsx create mode 100644 app/src/client/admin/pages/Chart.tsx create mode 100644 app/src/client/admin/pages/DashboardPage.tsx create mode 100644 app/src/client/admin/pages/Form/FormElements.tsx create mode 100644 app/src/client/admin/pages/Form/FormLayout.tsx create mode 100644 app/src/client/admin/pages/Messages.tsx create mode 100644 app/src/client/admin/pages/Settings.tsx create mode 100644 app/src/client/admin/pages/UiElements/Alerts.tsx create mode 100644 app/src/client/admin/pages/UiElements/Buttons.tsx create mode 100644 app/src/client/admin/pages/Users.tsx create mode 100644 app/src/client/app/AccountPage.tsx create mode 100644 app/src/client/app/BuildPage.tsx create mode 100644 app/src/client/app/CheckoutPage.tsx create mode 100644 app/src/client/app/ExamplesPage.tsx create mode 100644 app/src/client/app/PlayGroundPage.tsx create mode 100644 app/src/client/app/PricingPage.tsx create mode 100644 app/src/client/app/PrivacyPage.tsx create mode 100644 app/src/client/app/TocPage.tsx create mode 100644 app/src/client/app/TutorialPage.tsx create mode 100644 app/src/client/app/layout/ChatLayout.tsx create mode 100644 app/src/client/app/layout/CustomAuthRequiredLayout.tsx create mode 100644 app/src/client/app/utils/formHelpers.ts create mode 100644 app/src/client/auth/Auth.tsx create mode 100644 app/src/client/auth/LoginPage.tsx create mode 100644 app/src/client/auth/LoginSignupForm.tsx create mode 100644 app/src/client/auth/SignupPage.tsx create mode 100644 app/src/client/auth/authWrapper.tsx create mode 100644 app/src/client/auth/configs/config.ts create mode 100644 app/src/client/auth/configs/stitches.config.js create mode 100644 app/src/client/components/AgentConversationHistory.tsx create mode 100644 app/src/client/components/AnimatedCharacterLoader.tsx create mode 100644 app/src/client/components/AppNavBar.tsx create mode 100644 app/src/client/components/AutoScrollContainer.tsx create mode 100644 app/src/client/components/Button.tsx create mode 100644 app/src/client/components/ChatForm.tsx create mode 100644 app/src/client/components/ChatSidebar.tsx create mode 100644 app/src/client/components/ConversationList.tsx create mode 100644 app/src/client/components/CustomBreadcrumb.tsx create mode 100644 app/src/client/components/CustomSidebar.tsx create mode 100644 app/src/client/components/DropdownUser.tsx create mode 100644 app/src/client/components/DynamicFormBuilder.tsx create mode 100644 app/src/client/components/EditableChatName.tsx create mode 100644 app/src/client/components/Footer.tsx create mode 100644 app/src/client/components/FreeTrialButton.tsx create mode 100644 app/src/client/components/LetterByLetterDisplay.tsx create mode 100644 app/src/client/components/LoadingComponent.tsx create mode 100644 app/src/client/components/MarketingEmailPreferenceSwitcher.tsx create mode 100644 app/src/client/components/ModelForm.tsx create mode 100644 app/src/client/components/ModelFormContainer.tsx create mode 100644 app/src/client/components/ModelItem.tsx create mode 100644 app/src/client/components/ModelsList.tsx create mode 100644 app/src/client/components/NotificationBox.tsx create mode 100644 app/src/client/components/RetryConversation.tsx create mode 100644 app/src/client/components/SelectTeamToChat.tsx create mode 100644 app/src/client/components/ServerNotRechableComponent.tsx create mode 100644 app/src/client/components/SocialMediaIcons.tsx create mode 100644 app/src/client/components/TerminalDisplay.tsx create mode 100644 app/src/client/components/TosAndMarketingEmails.tsx create mode 100644 app/src/client/components/TosAndMarketingEmailsModal.tsx create mode 100644 app/src/client/components/UserActionButton.tsx create mode 100644 app/src/client/components/UserMenuItems.tsx create mode 100644 app/src/client/components/buildPage/UserPropertyHandler.tsx create mode 100644 app/src/client/components/form/DynamicForm.tsx create mode 100644 app/src/client/components/form/SelectInput.tsx create mode 100644 app/src/client/components/form/TextArea.tsx create mode 100644 app/src/client/components/form/TextInput.tsx create mode 100644 app/src/client/hooks/useBuildPage.ts create mode 100644 app/src/client/hooks/useColorMode.tsx create mode 100644 app/src/client/hooks/useDeploymentInstructions.ts create mode 100644 app/src/client/hooks/useEscapeKeyHandler.ts create mode 100644 app/src/client/hooks/useForm.ts create mode 100644 app/src/client/hooks/useFormSubmission.ts create mode 100644 app/src/client/hooks/useLocalStorage.tsx create mode 100644 app/src/client/hooks/usePropertyReferenceValues.ts create mode 100644 app/src/client/interfaces/BuildPageInterfaces.ts create mode 100644 app/src/client/interfaces/DynamicFormBuilderInterface.ts create mode 100644 app/src/client/interfaces/PlaygroundPageInterface.ts create mode 100644 app/src/client/landing-page/LandingPage.tsx create mode 100644 app/src/client/landing-page/contentSections.ts create mode 100644 app/src/client/services/commonService.ts create mode 100644 app/src/client/services/modelService.ts create mode 100644 app/src/client/static/avatar-placeholder.png create mode 100644 app/src/client/static/da-boi.png create mode 100644 app/src/client/static/logo.svg create mode 100644 app/src/client/static/open-saas-banner.png create mode 100644 app/src/client/static/robot-footer.svg create mode 100644 app/src/client/tests/AgentConversationHistory.test.tsx create mode 100644 app/src/client/tests/AnimatedCharacterLoader.test.tsx create mode 100644 app/src/client/tests/App.test.tsx create mode 100644 app/src/client/tests/Button.test.tsx create mode 100644 app/src/client/tests/ChatForm.test.tsx create mode 100644 app/src/client/tests/DynamicFormBuilder.test.tsx create mode 100644 app/src/client/tests/EditableChatName.test.tsx create mode 100644 app/src/client/tests/FreeTrialButton.test.tsx create mode 100644 app/src/client/tests/LoadingComponent.test.tsx create mode 100644 app/src/client/tests/MarketingEmailPreferenceSwitcher.test.tsx create mode 100644 app/src/client/tests/NotificationBox.test.tsx create mode 100644 app/src/client/tests/RetryConversation.test.tsx create mode 100644 app/src/client/tests/SelectInput.test.tsx create mode 100644 app/src/client/tests/ServerNotRechableComponent.test.tsx create mode 100644 app/src/client/tests/TosAndMarketingEmails.test.tsx create mode 100644 app/src/client/tests/TosAndMarketingEmailsModal.test.tsx create mode 100644 app/src/client/tests/buildPageUtils.test.ts create mode 100644 app/src/client/tests/commonUtils.test.ts create mode 100644 app/src/client/tests/formHelper.test.ts create mode 100644 app/src/client/tests/schemaParser.test.ts create mode 100644 app/src/client/tests/usePropertyReferenceValues.test.ts create mode 100644 app/src/client/utils/buildPageUtils.ts create mode 100644 app/src/client/utils/chatUtils.ts create mode 100644 app/src/client/utils/commonUtils.ts create mode 100644 app/src/client/utils/constants.ts create mode 100644 app/src/client/utils/schemaParser.ts create mode 100644 app/src/server/actions.ts create mode 100644 app/src/server/auth/authHelper.ts create mode 100644 app/src/server/auth/setUsername.ts create mode 100644 app/src/server/common/constants.ts create mode 100644 app/src/server/payments/stripeUtils.ts create mode 100644 app/src/server/queries.ts create mode 100644 app/src/server/scripts/usersSeed.ts create mode 100644 app/src/server/webhooks/stripe.ts create mode 100644 app/src/server/websocket/nats.ts create mode 100644 app/src/server/websocket/webSocket.js create mode 100644 app/src/server/workers/calculateDailyStats.ts create mode 100644 app/src/server/workers/checkAndQueueEmails.ts create mode 100644 app/src/server/workers/googleAnalyticsUtils.ts create mode 100644 app/src/server/workers/plausibleAnalyticsUtils.ts create mode 100644 app/src/shared/constants.ts create mode 100644 app/src/shared/types.ts create mode 100644 app/src/shared/utils.ts create mode 100644 app/src/vite-env.d.ts create mode 100644 app/tailwind.config.cjs create mode 100644 app/tsconfig.json create mode 100644 app/vite.config.ts diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 00000000..a1da9f48 --- /dev/null +++ b/app/.gitignore @@ -0,0 +1,14 @@ +.wasp/ +coverage/ +node_modules/ +**/.DS_Store + +# We ignore env files recognized and used by Wasp. +.env.server +.env.client + +# To be extra safe, we by default ignore any files with `.env` extension in them. +# If this is too agressive for you, consider allowing specific files with `!` operator, +# or modify/delete these two lines. +*.env +*.env.* diff --git a/app/.prettierrc b/app/.prettierrc new file mode 100644 index 00000000..8fa71eb7 --- /dev/null +++ b/app/.prettierrc @@ -0,0 +1,9 @@ +{ + "trailingComma": "es5", + "semi": true, + "singleQuote": true, + "endOfLine": "lf", + "tabWidth": 2, + "jsxSingleQuote": true, + "printWidth": 120 +} diff --git a/app/.waspignore b/app/.waspignore new file mode 100644 index 00000000..1c432f30 --- /dev/null +++ b/app/.waspignore @@ -0,0 +1,3 @@ +# Ignore editor tmp files +**/*~ +**/#*# diff --git a/app/.wasproot b/app/.wasproot new file mode 100644 index 00000000..ca2cfdb4 --- /dev/null +++ b/app/.wasproot @@ -0,0 +1 @@ +File marking the root of Wasp project. diff --git a/app/main.wasp b/app/main.wasp new file mode 100644 index 00000000..c8618411 --- /dev/null +++ b/app/main.wasp @@ -0,0 +1,482 @@ +app FastAgency { + wasp: { + version: "^0.13.0" + }, + title: "FastAgency", + head: [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + // you can put your analytics scripts here + // "", + // plausible has script extension `script.local.js` for local development + // "", + // google analytics only needs one script and will automatically detect if you are in dev mode + //"" + "", + "", + "" + ], + // 🔐 Auth out of the box! https://wasp-lang.dev/docs/auth/overview + auth: { + userEntity: User, + methods: { + google: { // Guide for setting up Auth via Google https://wasp-lang.dev/docs/auth/social-auth/overview + userSignupFields: import { getGoogleUserFields } from "@src/server/auth/setUsername.js", + configFn: import { getGoogleAuthConfig } from "@src/server/auth/setUsername.js", + }, + }, + onAuthFailedRedirectTo: "/login", + onAuthSucceededRedirectTo: "/build", + }, + db: { + system: PostgreSQL, + // seeds: [ + // import { devSeedUsers } from "@src/server/scripts/usersSeed.js", + // ] + }, + client: { + rootComponent: import App from "@src/client/App", + }, + + emailSender: { + // Note that the "Dummy" provider is just for local development purposes. + // Make sure to check the server logs for the confirmation email token (it will not be sent to an address)! + // Please use SendGrid in production. See: https://docs.opensaas.sh/guides/email-sending/ + provider: SendGrid, + defaultFrom: { + name: "Open SaaS App", + // When using SendGrid, you must use the same email address that you configured your account to send out emails with! + email: "me@example.com" + }, + }, + webSocket: { + fn: import { socketFn } from "@src/server/websocket/webSocket.js" + }, +} + +/* 💽 Wasp defines DB entities via Prisma Database Models: + * https://wasp-lang.dev/docs/data-model/entities + */ + +entity User {=psl + id Int @id @default(autoincrement()) + uuid String? @default(uuid()) + email String? @unique + username String? @unique + createdAt DateTime @default(now()) + lastActiveTimestamp DateTime @default(now()) + isAdmin Boolean @default(false) + hasAcceptedTos Boolean @default(false) + hasSubscribedToMarketingEmails Boolean @default(false) + isSignUpComplete Boolean @default(false) + isSetUpComplete Boolean @default(false) + stripeId String? + checkoutSessionId String? + hasPaid Boolean @default(false) + subscriptionTier String? + subscriptionStatus String? + sendEmail Boolean @default(false) + datePaid DateTime? + credits Int @default(3) + chats Chat[] + conversations Conversation[] +psl=} + +entity DailyStats {=psl + id Int @id @default(autoincrement()) + date DateTime @default(now()) @unique + totalViews Int @default(0) + prevDayViewsChangePercent String @default("0") + userCount Int @default(0) + paidUserCount Int @default(0) + userDelta Int @default(0) + paidUserDelta Int @default(0) + totalRevenue Float @default(0) + totalProfit Float @default(0) + sources PageViewSource[] +psl=} + +entity PageViewSource {=psl + date DateTime @default(now()) + name String + visitors Int + dailyStats DailyStats? @relation(fields: [dailyStatsId], references: [id]) + dailyStatsId Int? + @@id([date, name]) +psl=} + +entity Logs {=psl + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + message String + level String +psl=} + +entity Chat {=psl + id Int @id @default(autoincrement()) + uuid String? @default(uuid()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + team_id Int? + team_name String? + team_status String? + userRespondedWithNextAction Boolean @default(false) + agentChatHistory String? + isExceptionOccured Boolean @default(false) + showLoader Boolean @default(false) + streamAgentResponse Boolean @default(false) + customerBrief String? + user User? @relation(fields: [userId], references: [id]) + userId Int? + name String? @default("New chat") + isChatNameUpdated Boolean @default(false) + isChatTerminated Boolean @default(false) + selectedTeam String? + conversations Conversation[] +psl=} + +entity Conversation {=psl + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + message String + role String + agentConversationHistory String? + isLoading Boolean @default(false) + chat Chat? @relation(fields: [chatId], references: [id]) + chatId Int? + user User? @relation(fields: [userId], references: [id]) + userId Int? + +psl=} + +/* 📡 These are the Wasp Routes (You can protect them easily w/ 'authRequired: true'); + * https://wasp-lang.dev/docs/tutorial/pages + */ + +route LandingPageRoute { path: "/", to: LandingPage } +page LandingPage { + component: import LandingPage from "@src/client/landing-page/LandingPage" +} + +route PlayGroundPageRoute { path: "/playground/:id?", to: PlayGroundPage } +page PlayGroundPage { + component: import PlayGroundPageWithCustomAuth from "@src/client/app/PlayGroundPage" +} + +route BuildRoute { path: "/build/:id?", to: BuildPage } +page BuildPage { + component: import BuildPageWithCustomAuth from "@src/client/app/BuildPage" +} + +route SecretsRoute { path: "/build/secrets", to: SecretsPage } +page SecretsPage { + component: import BuildPageWithCustomAuth from "@src/client/app/BuildPage" +} + +route ToolBoxRoute { path: "/build/toolboxes", to: ToolBoxPage } +page ToolBoxPage { + component: import BuildPageWithCustomAuth from "@src/client/app/BuildPage" +} + +route LLMsRoute { path: "/build/llms", to: LLMsPage } +page LLMsPage { + component: import BuildPageWithCustomAuth from "@src/client/app/BuildPage" +} + +route TeamsRoute { path: "/build/teams", to: TeamsPage } +page TeamsPage { + component: import BuildPageWithCustomAuth from "@src/client/app/BuildPage" +} + +route AgentsRoute { path: "/build/agents", to: AgentsPage } +page AgentsPage { + component: import BuildPageWithCustomAuth from "@src/client/app/BuildPage" +} + +route LoginRoute { path: "/login", to: LoginPage } +page LoginPage { + component: import Login from "@src/client/auth/LoginPage" +} + +route SignupRoute { path: "/signup", to: SignupPage } +page SignupPage { + component: import { Signup } from "@src/client/auth/SignupPage" +} + +route PricingPageRoute { path: "/pricing", to: PricingPage } +page PricingPage { + component: import PricingPage from "@src/client/app/PricingPage" +} + +route AccountRoute { path: "/account", to: AccountPage } +page AccountPage { + component: import AccountPageWithCustomAuth from "@src/client/app/AccountPage" +} + +route CheckoutRoute { path: "/checkout", to: CheckoutPage } +page CheckoutPage { + authRequired: true, + component: import Checkout from "@src/client/app/CheckoutPage" +} + +route TocPageRoute { path: "/toc", to: TocPage } +page TocPage { + component: import TocPage from "@src/client/app/TocPage", +} +route PrivacyRoute { path: "/privacy", to: PrivacyPage } +page PrivacyPage { + component: import PrivacyPage from "@src/client/app/PrivacyPage", +} +route ExamplesRoute { path: "/examples", to: ExamplesPage } +page ExamplesPage { + component: import ExamplesPage from "@src/client/app/ExamplesPage", +} + +route TutorialRoute { path: "/tutorial", to: TutorialPage } +page TutorialPage { + component: import TutorialPage from "@src/client/app/TutorialPage", +} + +route AdminRoute { path: "/admin", to: DashboardPage } +page DashboardPage { + authRequired: true, + component: import Dashboard from "@src/client/admin/pages/DashboardPage" +} + +route AdminUsersRoute { path: "/admin/users", to: AdminUsersPage } +page AdminUsersPage { + authRequired: true, + component: import AdminUsers from "@src/client/admin/pages/Users" +} + +route AdminSettingsRoute { path: "/admin/settings", to: AdminSettingsPage } +page AdminSettingsPage { + authRequired: true, + component: import AdminSettings from "@src/client/admin/pages/Settings" +} + +route AdminChartsRoute { path: "/admin/chart", to: AdminChartsPage } +page AdminChartsPage { + authRequired: true, + component: import AdminCharts from "@src/client/admin/pages/Chart" +} + +route AdminMessagesRoute { path: "/admin/messages", to: AdminMessagesPage } +page AdminMessagesPage { + authRequired: true, + component: import AdminMessages from "@src/client/admin/pages/Messages" +} + +route AdminFormElementsRoute { path: "/admin/forms/form-elements", to: AdminFormElementsPage } +page AdminFormElementsPage { + authRequired: true, + component: import AdminForms from "@src/client/admin/pages/Form/FormElements" +} + +route AdminFormLayoutsRoute { path: "/admin/forms/form-layouts", to: AdminFormLayoutsPage } +page AdminFormLayoutsPage { + authRequired: true, + component: import AdminForms from "@src/client/admin/pages/Form/FormLayout" +} + +route AdminCalendarRoute { path: "/admin/calendar", to: AdminCalendarPage } +page AdminCalendarPage { + authRequired: true, + component: import AdminCalendar from "@src/client/admin/pages/Calendar" +} + +route AdminUIAlertsRoute { path: "/admin/ui/alerts", to: AdminUIAlertsPage } +page AdminUIAlertsPage { + authRequired: true, + component: import AdminUI from "@src/client/admin/pages/UiElements/Alerts" +} + +route AdminUIButtonsRoute { path: "/admin/ui/buttons", to: AdminUIButtonsPage } +page AdminUIButtonsPage { + authRequired: true, + component: import AdminUI from "@src/client/admin/pages/UiElements/Buttons" +} + +/* ⛑ These are the Wasp Operations, which allow the client and server to interact: + * https://wasp-lang.dev/docs/data-model/operations/overview + */ + +// 📝 Actions + +// action stripePayment { +// fn: import { stripePayment } from "@src/server/actions.js", +// entities: [User] +// } + +action updateCurrentUser { + fn: import { updateCurrentUser } from "@src/server/actions.js", + entities: [User] +} + +action updateUserById { + fn: import { updateUserById } from "@src/server/actions.js", + entities: [User] +} + +action getAvailableModels { + fn: import { getAvailableModels } from "@src/server/actions.js", + entities: [] +} + +action updateUserModels { + fn: import { updateUserModels } from "@src/server/actions.js", + entities: [] +} + +action addUserModels { + fn: import { addUserModels } from "@src/server/actions.js", + entities: [] +} + +action deleteUserModels { + fn: import { deleteUserModels } from "@src/server/actions.js", + entities: [] +} + +action validateForm { + fn: import { validateForm } from "@src/server/actions.js", + entities: [] +} + +action createNewChat { + fn: import { createNewChat } from "@src/server/actions.js", + entities: [Chat, Conversation] +} + +action updateCurrentChat { + fn: import { updateCurrentChat } from "@src/server/actions.js", + entities: [Chat] +} + +action updateCurrentConversation { + fn: import { updateCurrentConversation } from "@src/server/actions.js", + entities: [Conversation] +} + +action deleteLastConversationInChat { + fn: import { deleteLastConversationInChat } from "@src/server/actions.js", + entities: [Conversation] +} + +action retryTeamChat { + fn: import { retryTeamChat } from "@src/server/actions.js", + entities: [Chat, Conversation] +} + +action createNewAndReturnAllConversations { + fn: import { createNewAndReturnAllConversations } from "@src/server/actions.js", + entities: [Conversation] +} + +action createNewAndReturnLastConversation { + fn: import { createNewAndReturnLastConversation } from "@src/server/actions.js", + entities: [Conversation] +} + +action getAgentResponse { + fn: import { getAgentResponse } from "@src/server/actions.js", + entities: [Chat, Conversation] +} + +action userModelSetup { + fn: import { userModelSetup } from "@src/server/actions.js", + entities: [User] +} + +// 📚 Queries + +query getDailyStats { + fn: import { getDailyStats } from "@src/server/queries.js", + entities: [User, DailyStats] +} + +query getPaginatedUsers { + fn: import { getPaginatedUsers } from "@src/server/queries.js", + entities: [User] +} + +query getModels { + fn: import { getModels } from "@src/server/queries.js", + entities: [User] +} + +query propertyDependencies { + fn: import { propertyDependencies } from "@src/server/queries.js", + entities: [User] +} + +query getChat { + fn: import { getChat } from "@src/server/queries.js", + entities: [Chat] +} + +query getChats { + fn: import { getChats } from "@src/server/queries.js", + entities: [Chat] +} + +query getConversations { + fn: import { getConversations } from "@src/server/queries.js", + entities: [Conversation] +} + +query getChatFromUUID { + fn: import { getChatFromUUID } from "@src/server/queries.js", + entities: [Chat] +} + +/* + * 📡 These are custom Wasp API Endpoints. Use them for callbacks, webhooks, etc. + * https://wasp-lang.dev/docs/advanced/apis + */ + +// api stripeWebhook { +// fn: import { stripeWebhook } from "@src/server/webhooks/stripe.js", +// entities: [User], +// middlewareConfigFn: import { stripeMiddlewareFn } from "@src/server/webhooks/stripe.js", +// httpRoute: (POST, "/stripe-webhook") +// } + + +/* 🕵️‍♂️ These are the Wasp Jobs. Use them to set up recurring tasks and/or queues: + * https://wasp-lang.dev/docs/advanced/jobs + */ + +// job emailChecker { +// executor: PgBoss, +// perform: { +// fn: import { checkAndQueueEmails } from "@src/server/workers/checkAndQueueEmails.js" +// }, +// schedule: { +// cron: "0 7 * * 1" // at 7:00 am every Monday +// }, +// entities: [User] +// } + +// job dailyStatsJob { +// executor: PgBoss, +// perform: { +// fn: import { calculateDailyStats } from "@src/server/workers/calculateDailyStats.js" +// }, +// schedule: { +// cron: "0 * * * *" // every hour. useful in production +// // cron: "* * * * *" // every minute. useful for debugging +// }, +// entities: [User, DailyStats, Logs, PageViewSource] +// } diff --git a/app/migrations/20240409105442_initial_migration/migration.sql b/app/migrations/20240409105442_initial_migration/migration.sql new file mode 100644 index 00000000..c151f1e9 --- /dev/null +++ b/app/migrations/20240409105442_initial_migration/migration.sql @@ -0,0 +1,172 @@ +-- CreateTable +CREATE TABLE "User" ( + "id" SERIAL NOT NULL, + "email" TEXT, + "username" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "lastActiveTimestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "isAdmin" BOOLEAN NOT NULL DEFAULT false, + "stripeId" TEXT, + "checkoutSessionId" TEXT, + "hasPaid" BOOLEAN NOT NULL DEFAULT false, + "subscriptionTier" TEXT, + "subscriptionStatus" TEXT, + "sendEmail" BOOLEAN NOT NULL DEFAULT false, + "datePaid" TIMESTAMP(3), + "credits" INTEGER NOT NULL DEFAULT 3, + + CONSTRAINT "User_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "GptResponse" ( + "id" TEXT NOT NULL, + "content" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "GptResponse_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Task" ( + "id" TEXT NOT NULL, + "description" TEXT NOT NULL, + "time" TEXT NOT NULL DEFAULT '1', + "isDone" BOOLEAN NOT NULL DEFAULT false, + "userId" INTEGER NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Task_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "File" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "type" TEXT NOT NULL, + "key" TEXT NOT NULL, + "uploadUrl" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "File_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ContactFormMessage" ( + "id" TEXT NOT NULL, + "content" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "isRead" BOOLEAN NOT NULL DEFAULT false, + "repliedAt" TIMESTAMP(3), + + CONSTRAINT "ContactFormMessage_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "DailyStats" ( + "id" SERIAL NOT NULL, + "date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "totalViews" INTEGER NOT NULL DEFAULT 0, + "prevDayViewsChangePercent" TEXT NOT NULL DEFAULT '0', + "userCount" INTEGER NOT NULL DEFAULT 0, + "paidUserCount" INTEGER NOT NULL DEFAULT 0, + "userDelta" INTEGER NOT NULL DEFAULT 0, + "paidUserDelta" INTEGER NOT NULL DEFAULT 0, + "totalRevenue" DOUBLE PRECISION NOT NULL DEFAULT 0, + "totalProfit" DOUBLE PRECISION NOT NULL DEFAULT 0, + + CONSTRAINT "DailyStats_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "PageViewSource" ( + "date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "name" TEXT NOT NULL, + "visitors" INTEGER NOT NULL, + "dailyStatsId" INTEGER, + + CONSTRAINT "PageViewSource_pkey" PRIMARY KEY ("date","name") +); + +-- CreateTable +CREATE TABLE "Logs" ( + "id" SERIAL NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "message" TEXT NOT NULL, + "level" TEXT NOT NULL, + + CONSTRAINT "Logs_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Auth" ( + "id" TEXT NOT NULL, + "userId" INTEGER, + + CONSTRAINT "Auth_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "AuthIdentity" ( + "providerName" TEXT NOT NULL, + "providerUserId" TEXT NOT NULL, + "providerData" TEXT NOT NULL DEFAULT '{}', + "authId" TEXT NOT NULL, + + CONSTRAINT "AuthIdentity_pkey" PRIMARY KEY ("providerName","providerUserId") +); + +-- CreateTable +CREATE TABLE "Session" ( + "id" TEXT NOT NULL, + "expiresAt" TIMESTAMP(3) NOT NULL, + "userId" TEXT NOT NULL, + + CONSTRAINT "Session_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_username_key" ON "User"("username"); + +-- CreateIndex +CREATE UNIQUE INDEX "DailyStats_date_key" ON "DailyStats"("date"); + +-- CreateIndex +CREATE UNIQUE INDEX "Auth_userId_key" ON "Auth"("userId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Session_id_key" ON "Session"("id"); + +-- CreateIndex +CREATE INDEX "Session_userId_idx" ON "Session"("userId"); + +-- AddForeignKey +ALTER TABLE "GptResponse" ADD CONSTRAINT "GptResponse_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Task" ADD CONSTRAINT "Task_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "File" ADD CONSTRAINT "File_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ContactFormMessage" ADD CONSTRAINT "ContactFormMessage_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "PageViewSource" ADD CONSTRAINT "PageViewSource_dailyStatsId_fkey" FOREIGN KEY ("dailyStatsId") REFERENCES "DailyStats"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Auth" ADD CONSTRAINT "Auth_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "AuthIdentity" ADD CONSTRAINT "AuthIdentity_authId_fkey" FOREIGN KEY ("authId") REFERENCES "Auth"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "Auth"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/app/migrations/20240409131235_cleanup_entities/migration.sql b/app/migrations/20240409131235_cleanup_entities/migration.sql new file mode 100644 index 00000000..464ae7b5 --- /dev/null +++ b/app/migrations/20240409131235_cleanup_entities/migration.sql @@ -0,0 +1,32 @@ +/* + Warnings: + + - You are about to drop the `ContactFormMessage` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `File` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `GptResponse` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `Task` table. If the table is not empty, all the data it contains will be lost. + +*/ +-- DropForeignKey +ALTER TABLE "ContactFormMessage" DROP CONSTRAINT "ContactFormMessage_userId_fkey"; + +-- DropForeignKey +ALTER TABLE "File" DROP CONSTRAINT "File_userId_fkey"; + +-- DropForeignKey +ALTER TABLE "GptResponse" DROP CONSTRAINT "GptResponse_userId_fkey"; + +-- DropForeignKey +ALTER TABLE "Task" DROP CONSTRAINT "Task_userId_fkey"; + +-- DropTable +DROP TABLE "ContactFormMessage"; + +-- DropTable +DROP TABLE "File"; + +-- DropTable +DROP TABLE "GptResponse"; + +-- DropTable +DROP TABLE "Task"; diff --git a/app/migrations/20240412085104_add_fields_to_user_entity_to_trach_signup_complete_status/migration.sql b/app/migrations/20240412085104_add_fields_to_user_entity_to_trach_signup_complete_status/migration.sql new file mode 100644 index 00000000..29da96fd --- /dev/null +++ b/app/migrations/20240412085104_add_fields_to_user_entity_to_trach_signup_complete_status/migration.sql @@ -0,0 +1,4 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "hasAcceptedTos" BOOLEAN NOT NULL DEFAULT false, +ADD COLUMN "hasSubscribedToMarketingEmails" BOOLEAN NOT NULL DEFAULT false, +ADD COLUMN "isSignUpComplete" BOOLEAN NOT NULL DEFAULT false; diff --git a/app/migrations/20240506081108_add_uuid_column_to_user_model/migration.sql b/app/migrations/20240506081108_add_uuid_column_to_user_model/migration.sql new file mode 100644 index 00000000..ce7e7aa5 --- /dev/null +++ b/app/migrations/20240506081108_add_uuid_column_to_user_model/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "uuid" TEXT; diff --git a/app/migrations/20240506081341_set_uuid_for_existing_users/migration.sql b/app/migrations/20240506081341_set_uuid_for_existing_users/migration.sql new file mode 100644 index 00000000..13107a00 --- /dev/null +++ b/app/migrations/20240506081341_set_uuid_for_existing_users/migration.sql @@ -0,0 +1,2 @@ +-- Populate uuid field with unique UUIDs for existing entries +UPDATE "User" SET "uuid" = gen_random_uuid() WHERE "uuid" IS NULL; diff --git a/app/migrations/20240508054330_add_chat_and_conversation_models/migration.sql b/app/migrations/20240508054330_add_chat_and_conversation_models/migration.sql new file mode 100644 index 00000000..75e75887 --- /dev/null +++ b/app/migrations/20240508054330_add_chat_and_conversation_models/migration.sql @@ -0,0 +1,50 @@ +-- CreateTable +CREATE TABLE "Chat" ( + "id" SERIAL NOT NULL, + "uuid" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "team_id" INTEGER, + "team_name" TEXT, + "team_status" TEXT, + "chatType" TEXT, + "shouldShowChat" BOOLEAN NOT NULL DEFAULT false, + "proposedUserAction" TEXT[] DEFAULT ARRAY[]::TEXT[], + "userRespondedWithNextAction" BOOLEAN NOT NULL DEFAULT false, + "emailContent" TEXT, + "agentChatHistory" TEXT, + "isExceptionOccured" BOOLEAN NOT NULL DEFAULT false, + "showLoader" BOOLEAN NOT NULL DEFAULT false, + "smartSuggestions" JSONB NOT NULL DEFAULT '{ "suggestions": [""], "type": ""}', + "streamAgentResponse" BOOLEAN NOT NULL DEFAULT false, + "customerBrief" TEXT, + "userId" INTEGER, + "name" TEXT DEFAULT 'New chat', + "isChatNameUpdated" BOOLEAN NOT NULL DEFAULT false, + + CONSTRAINT "Chat_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Conversation" ( + "id" SERIAL NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "message" TEXT NOT NULL, + "role" TEXT NOT NULL, + "agentConversationHistory" TEXT, + "isLoading" BOOLEAN NOT NULL DEFAULT false, + "chatId" INTEGER, + "userId" INTEGER, + + CONSTRAINT "Conversation_pkey" PRIMARY KEY ("id") +); + +-- AddForeignKey +ALTER TABLE "Chat" ADD CONSTRAINT "Chat_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Conversation" ADD CONSTRAINT "Conversation_chatId_fkey" FOREIGN KEY ("chatId") REFERENCES "Chat"("id") ON DELETE SET NULL ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Conversation" ADD CONSTRAINT "Conversation_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; diff --git a/app/migrations/20240508144539_add_column_to_store_the_selected_team_name/migration.sql b/app/migrations/20240508144539_add_column_to_store_the_selected_team_name/migration.sql new file mode 100644 index 00000000..63fa4ed4 --- /dev/null +++ b/app/migrations/20240508144539_add_column_to_store_the_selected_team_name/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Chat" ADD COLUMN "selectedTeam" TEXT; diff --git a/app/migrations/20240517080637_add_column_to_track_chat_completion_status/migration.sql b/app/migrations/20240517080637_add_column_to_track_chat_completion_status/migration.sql new file mode 100644 index 00000000..d6f5d7f9 --- /dev/null +++ b/app/migrations/20240517080637_add_column_to_track_chat_completion_status/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Chat" ADD COLUMN "isChatTerminated" BOOLEAN NOT NULL DEFAULT false; diff --git a/app/migrations/20240522125442_delete_daily_analysis_and_smart_suggestions_related_columns_from_chat_model/migration.sql b/app/migrations/20240522125442_delete_daily_analysis_and_smart_suggestions_related_columns_from_chat_model/migration.sql new file mode 100644 index 00000000..6bce11ca --- /dev/null +++ b/app/migrations/20240522125442_delete_daily_analysis_and_smart_suggestions_related_columns_from_chat_model/migration.sql @@ -0,0 +1,16 @@ +/* + Warnings: + + - You are about to drop the column `chatType` on the `Chat` table. All the data in the column will be lost. + - You are about to drop the column `emailContent` on the `Chat` table. All the data in the column will be lost. + - You are about to drop the column `proposedUserAction` on the `Chat` table. All the data in the column will be lost. + - You are about to drop the column `shouldShowChat` on the `Chat` table. All the data in the column will be lost. + - You are about to drop the column `smartSuggestions` on the `Chat` table. All the data in the column will be lost. + +*/ +-- AlterTable +ALTER TABLE "Chat" DROP COLUMN "chatType", +DROP COLUMN "emailContent", +DROP COLUMN "proposedUserAction", +DROP COLUMN "shouldShowChat", +DROP COLUMN "smartSuggestions"; diff --git a/app/migrations/20240619070132_add_new_column_in_user_model_to_store_the_user_setup_status/migration.sql b/app/migrations/20240619070132_add_new_column_in_user_model_to_store_the_user_setup_status/migration.sql new file mode 100644 index 00000000..ae48d3e6 --- /dev/null +++ b/app/migrations/20240619070132_add_new_column_in_user_model_to_store_the_user_setup_status/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "isSetUpComplete" BOOLEAN NOT NULL DEFAULT false; diff --git a/app/migrations/migration_lock.toml b/app/migrations/migration_lock.toml new file mode 100644 index 00000000..99e4f200 --- /dev/null +++ b/app/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" diff --git a/app/package-lock.json b/app/package-lock.json new file mode 100644 index 00000000..289e45dd --- /dev/null +++ b/app/package-lock.json @@ -0,0 +1,13434 @@ +{ + "name": "opensaas", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "opensaas", + "dependencies": { + "@aws-sdk/client-s3": "^3.523.0", + "@aws-sdk/s3-request-presigner": "^3.523.0", + "@chakra-ui/react": "2.8.2", + "@faker-js/faker": "8.3.1", + "@google-analytics/data": "4.1.0", + "@headlessui/react": "1.7.13", + "@tailwindcss/forms": "^0.5.3", + "@tailwindcss/typography": "^0.5.7", + "apexcharts": "^3.41.0", + "clsx": "^2.1.0", + "headlessui": "^0.0.0", + "lodash": "^4.17.21", + "markdown-to-jsx": "7.3.2", + "nats": "^2.24.0", + "node-fetch": "3.3.0", + "openai": "^4.24.1", + "prettier": "3.1.1", + "prettier-plugin-tailwindcss": "0.5.11", + "react": "^18.2.0", + "react-apexcharts": "^1.4.1", + "react-hot-toast": "^2.4.1", + "react-icons": "4.11.0", + "react-select": "5.8.0", + "react-textarea-autosize": "^8.5.3", + "stripe": "11.15.0", + "tailwind-merge": "^2.2.1", + "uuid": "^9.0.1", + "wasp": "file:.wasp/out/sdk/wasp", + "zod": "3.22.4" + }, + "devDependencies": { + "@types/express": "^4.17.13", + "@types/react": "^18.0.37", + "@types/react-router-dom": "^5.3.3", + "@vitest/coverage-v8": "^1.6.0", + "prisma": "4.16.2", + "typescript": "^5.1.0", + "vite": "^5.1.7" + } + }, + ".wasp/out/sdk/wasp": { + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@lucia-auth/adapter-prisma": "^4.0.0", + "@prisma/client": "4.16.2", + "@sendgrid/mail": "^7.7.0", + "@socket.io/component-emitter": "^4.0.0", + "@stitches/react": "^1.2.8", + "@tanstack/react-query": "^4.29.0", + "@testing-library/jest-dom": "^6.3.0", + "@testing-library/react": "^14.1.2", + "@types/express-serve-static-core": "^4.17.13", + "@types/react-router-dom": "^5.3.3", + "@vitest/ui": "^1.2.1", + "autoprefixer": "^10.4.13", + "axios": "^1.4.0", + "express": "~4.18.1", + "jsdom": "^21.1.1", + "lodash.merge": "^4.6.2", + "lucia": "^3.0.1", + "mitt": "3.0.0", + "msw": "^1.1.0", + "oslo": "^1.1.2", + "postcss": "^8.4.21", + "prisma": "4.16.2", + "react": "^18.2.0", + "react-hook-form": "^7.45.4", + "react-router-dom": "^5.3.3", + "socket.io": "^4.6.1", + "socket.io-client": "^4.6.1", + "superjson": "^1.12.2", + "tailwindcss": "^3.2.7", + "vitest": "^1.2.1" + }, + "devDependencies": { + "@tsconfig/node18": "latest" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2/-/argon2-1.7.0.tgz", + "integrity": "sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@node-rs/argon2-android-arm-eabi": "1.7.0", + "@node-rs/argon2-android-arm64": "1.7.0", + "@node-rs/argon2-darwin-arm64": "1.7.0", + "@node-rs/argon2-darwin-x64": "1.7.0", + "@node-rs/argon2-freebsd-x64": "1.7.0", + "@node-rs/argon2-linux-arm-gnueabihf": "1.7.0", + "@node-rs/argon2-linux-arm64-gnu": "1.7.0", + "@node-rs/argon2-linux-arm64-musl": "1.7.0", + "@node-rs/argon2-linux-x64-gnu": "1.7.0", + "@node-rs/argon2-linux-x64-musl": "1.7.0", + "@node-rs/argon2-wasm32-wasi": "1.7.0", + "@node-rs/argon2-win32-arm64-msvc": "1.7.0", + "@node-rs/argon2-win32-ia32-msvc": "1.7.0", + "@node-rs/argon2-win32-x64-msvc": "1.7.0" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-android-arm-eabi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.7.0.tgz", + "integrity": "sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-android-arm64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.7.0.tgz", + "integrity": "sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-darwin-arm64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.7.0.tgz", + "integrity": "sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-darwin-x64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.7.0.tgz", + "integrity": "sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-freebsd-x64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.7.0.tgz", + "integrity": "sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-linux-arm-gnueabihf": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.7.0.tgz", + "integrity": "sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-linux-arm64-gnu": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.7.0.tgz", + "integrity": "sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-linux-arm64-musl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.7.0.tgz", + "integrity": "sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-linux-x64-gnu": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.7.0.tgz", + "integrity": "sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-linux-x64-musl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.7.0.tgz", + "integrity": "sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-wasm32-wasi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.7.0.tgz", + "integrity": "sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^0.45.0", + "@emnapi/runtime": "^0.45.0", + "@tybys/wasm-util": "^0.8.1", + "memfs-browser": "^3.4.13000" + }, + "engines": { + "node": ">=14.0.0" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-win32-arm64-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.7.0.tgz", + "integrity": "sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-win32-ia32-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.7.0.tgz", + "integrity": "sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/argon2-win32-x64-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.7.0.tgz", + "integrity": "sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.9.0.tgz", + "integrity": "sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@node-rs/bcrypt-android-arm-eabi": "1.9.0", + "@node-rs/bcrypt-android-arm64": "1.9.0", + "@node-rs/bcrypt-darwin-arm64": "1.9.0", + "@node-rs/bcrypt-darwin-x64": "1.9.0", + "@node-rs/bcrypt-freebsd-x64": "1.9.0", + "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.0", + "@node-rs/bcrypt-linux-arm64-gnu": "1.9.0", + "@node-rs/bcrypt-linux-arm64-musl": "1.9.0", + "@node-rs/bcrypt-linux-x64-gnu": "1.9.0", + "@node-rs/bcrypt-linux-x64-musl": "1.9.0", + "@node-rs/bcrypt-wasm32-wasi": "1.9.0", + "@node-rs/bcrypt-win32-arm64-msvc": "1.9.0", + "@node-rs/bcrypt-win32-ia32-msvc": "1.9.0", + "@node-rs/bcrypt-win32-x64-msvc": "1.9.0" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-android-arm-eabi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.9.0.tgz", + "integrity": "sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-android-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.9.0.tgz", + "integrity": "sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-darwin-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.9.0.tgz", + "integrity": "sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-darwin-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.9.0.tgz", + "integrity": "sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-freebsd-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.9.0.tgz", + "integrity": "sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-linux-arm-gnueabihf": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.9.0.tgz", + "integrity": "sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-linux-arm64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.9.0.tgz", + "integrity": "sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-linux-arm64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.9.0.tgz", + "integrity": "sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-linux-x64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.9.0.tgz", + "integrity": "sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-linux-x64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.9.0.tgz", + "integrity": "sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-wasm32-wasi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.9.0.tgz", + "integrity": "sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^0.45.0", + "@emnapi/runtime": "^0.45.0", + "@tybys/wasm-util": "^0.8.1", + "memfs-browser": "^3.4.13000" + }, + "engines": { + "node": ">=14.0.0" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-win32-arm64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.9.0.tgz", + "integrity": "sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-win32-ia32-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.9.0.tgz", + "integrity": "sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/@node-rs/bcrypt-win32-x64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.9.0.tgz", + "integrity": "sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + ".wasp/out/sdk/wasp/node_modules/oslo": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/oslo/-/oslo-1.1.2.tgz", + "integrity": "sha512-l5tmumAHJy6wTfcxjwbPtcEn23lxnsBqbW1PqM11lqnQ79Q8Gzc7b3+OjRpLTbiqkfvhT4/BZ2Ooe8/QCJxyEg==", + "dependencies": { + "@node-rs/argon2": "1.7.0", + "@node-rs/bcrypt": "1.9.0", + "auri": "1.0.2" + } + }, + "node_modules/@actions/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", + "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "node_modules/@actions/core/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@actions/http-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", + "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/crc32c": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz", + "integrity": "sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32c/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", + "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.523.0.tgz", + "integrity": "sha512-d8kFgZpdHOCLtv38nNkItTs3Ew+Ui/YadkCprvbY0boCrFZFTynficFM4orVk+fV3beJ2qVeJm6t8t14V5TaVA==", + "dependencies": { + "@aws-crypto/sha1-browser": "3.0.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.523.0", + "@aws-sdk/core": "3.523.0", + "@aws-sdk/credential-provider-node": "3.523.0", + "@aws-sdk/middleware-bucket-endpoint": "3.523.0", + "@aws-sdk/middleware-expect-continue": "3.523.0", + "@aws-sdk/middleware-flexible-checksums": "3.523.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-location-constraint": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-sdk-s3": "3.523.0", + "@aws-sdk/middleware-signing": "3.523.0", + "@aws-sdk/middleware-ssec": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.523.0", + "@aws-sdk/region-config-resolver": "3.523.0", + "@aws-sdk/signature-v4-multi-region": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.523.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.523.0", + "@aws-sdk/xml-builder": "3.523.0", + "@smithy/config-resolver": "^2.1.3", + "@smithy/core": "^1.3.4", + "@smithy/eventstream-serde-browser": "^2.1.3", + "@smithy/eventstream-serde-config-resolver": "^2.1.3", + "@smithy/eventstream-serde-node": "^2.1.3", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-blob-browser": "^2.1.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/hash-stream-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/md5-js": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.3", + "@smithy/middleware-retry": "^2.1.3", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.3", + "@smithy/util-defaults-mode-node": "^2.2.2", + "@smithy/util-endpoints": "^1.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-stream": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "@smithy/util-waiter": "^2.1.3", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.523.0.tgz", + "integrity": "sha512-vob/Tk9bIr6VIyzScBWsKpP92ACI6/aOXBL2BITgvRWl5Umqi1jXFtfssj/N2UJHM4CBMRwxIJ33InfN0gPxZw==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.523.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.523.0", + "@aws-sdk/region-config-resolver": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.523.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.523.0", + "@smithy/config-resolver": "^2.1.3", + "@smithy/core": "^1.3.4", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.3", + "@smithy/middleware-retry": "^2.1.3", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.3", + "@smithy/util-defaults-mode-node": "^2.2.2", + "@smithy/util-endpoints": "^1.1.3", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.523.0.tgz", + "integrity": "sha512-OktkdiuJ5DtYgNrJlo53Tf7pJ+UWfOt7V7or0ije6MysLP18GwlTkbg2UE4EUtfOxt/baXxHMlExB1vmRtlATw==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.523.0", + "@aws-sdk/core": "3.523.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.523.0", + "@aws-sdk/region-config-resolver": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.523.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.523.0", + "@smithy/config-resolver": "^2.1.3", + "@smithy/core": "^1.3.4", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.3", + "@smithy/middleware-retry": "^2.1.3", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.3", + "@smithy/util-defaults-mode-node": "^2.2.2", + "@smithy/util-endpoints": "^1.1.3", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/credential-provider-node": "^3.523.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.523.0.tgz", + "integrity": "sha512-ggAkL8szaJkqD8oOsS68URJ9XMDbLA/INO/NPZJqv9BhmftecJvfy43uUVWGNs6n4YXNzfF0Y+zQ3DT0fZkv9g==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.523.0", + "@aws-sdk/middleware-host-header": "3.523.0", + "@aws-sdk/middleware-logger": "3.523.0", + "@aws-sdk/middleware-recursion-detection": "3.523.0", + "@aws-sdk/middleware-user-agent": "3.523.0", + "@aws-sdk/region-config-resolver": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.523.0", + "@aws-sdk/util-user-agent-browser": "3.523.0", + "@aws-sdk/util-user-agent-node": "3.523.0", + "@smithy/config-resolver": "^2.1.3", + "@smithy/core": "^1.3.4", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/hash-node": "^2.1.3", + "@smithy/invalid-dependency": "^2.1.3", + "@smithy/middleware-content-length": "^2.1.3", + "@smithy/middleware-endpoint": "^2.4.3", + "@smithy/middleware-retry": "^2.1.3", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-body-length-browser": "^2.1.1", + "@smithy/util-body-length-node": "^2.2.1", + "@smithy/util-defaults-mode-browser": "^2.1.3", + "@smithy/util-defaults-mode-node": "^2.2.2", + "@smithy/util-endpoints": "^1.1.3", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "@smithy/util-utf8": "^2.1.1", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/credential-provider-node": "^3.523.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.523.0.tgz", + "integrity": "sha512-JHa3ngEWkTzZ2YTn6EavcADC8gv6zZU4U9WBAleClh6ioXH0kGMBawZje3y0F0mKyLTfLhFqFUlCV5sngI/Qcw==", + "dependencies": { + "@smithy/core": "^1.3.4", + "@smithy/protocol-http": "^3.2.1", + "@smithy/signature-v4": "^2.1.3", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.523.0.tgz", + "integrity": "sha512-Y6DWdH6/OuMDoNKVzZlNeBc6f1Yjk1lYMjANKpIhMbkRCvLJw/PYZKOZa8WpXbTYdgg9XLjKybnLIb3ww3uuzA==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.523.0.tgz", + "integrity": "sha512-6YUtePbn3UFpY9qfVwHFWIVnFvVS5vsbGxxkTO02swvZBvVG4sdG0Xj0AbotUNQNY9QTCN7WkhwIrd50rfDQ9Q==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/property-provider": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/util-stream": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.523.0.tgz", + "integrity": "sha512-dRch5Ts67FFRZY5r9DpiC3PM6BVHv1tRcy1b26hoqfFkxP9xYH3dsTSPBog1azIqaJa2GcXqEvKCqhghFTt4Xg==", + "dependencies": { + "@aws-sdk/client-sts": "3.523.0", + "@aws-sdk/credential-provider-env": "3.523.0", + "@aws-sdk/credential-provider-process": "3.523.0", + "@aws-sdk/credential-provider-sso": "3.523.0", + "@aws-sdk/credential-provider-web-identity": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@smithy/credential-provider-imds": "^2.2.3", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.523.0.tgz", + "integrity": "sha512-0aW5ylA8pZmvv/8qA/+iel4acEyzSlHRiaHYL3L0qu9SSoe2a92+RHjrxKl6+Sb55eA2mRfQjaN8oOa5xiYyKA==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.523.0", + "@aws-sdk/credential-provider-http": "3.523.0", + "@aws-sdk/credential-provider-ini": "3.523.0", + "@aws-sdk/credential-provider-process": "3.523.0", + "@aws-sdk/credential-provider-sso": "3.523.0", + "@aws-sdk/credential-provider-web-identity": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@smithy/credential-provider-imds": "^2.2.3", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.523.0.tgz", + "integrity": "sha512-f0LP9KlFmMvPWdKeUKYlZ6FkQAECUeZMmISsv6NKtvPCI9e4O4cLTeR09telwDK8P0HrgcRuZfXM7E30m8re0Q==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.523.0.tgz", + "integrity": "sha512-/VfOJuI8ImV//W4gr+yieF/4shzWAzWYeaaNu7hv161C5YW7/OoCygwRVHSnF4KKeUGQZomZWwml5zHZ57f8xQ==", + "dependencies": { + "@aws-sdk/client-sso": "3.523.0", + "@aws-sdk/token-providers": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.523.0.tgz", + "integrity": "sha512-EyBwVoTNZrhLRIHly3JnLzy86deT2hHGoxSCrT3+cVcF1Pq3FPp6n9fUkHd6Yel+wFrjpXCRggLddPvajUoXtQ==", + "dependencies": { + "@aws-sdk/client-sts": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.523.0.tgz", + "integrity": "sha512-mrZbixWjk0d9NqxC4xBnKtfwErum0we4Uk2O4fgvDVI+XxAimUlZ9c4o/QJ2+TzeQ/8QclT2k4WidsQdWtPNvg==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-arn-parser": "3.495.0", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "@smithy/util-config-provider": "^2.2.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.523.0.tgz", + "integrity": "sha512-E5DyRAHU39VHaAlQLqXYS/IKpgk3vsryuU6kkOcIIK8Dgw0a2tjoh5AOCaNa8pD+KgAGrFp35JIMSX1zui5diA==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.523.0.tgz", + "integrity": "sha512-lIa1TdWY9q4zsDFarfSnYcdrwPR+nypaU4n6hb95i620/1F5M5s6H8P0hYtwTNNvx+slrR8F3VBML9pjBtzAHw==", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", + "@aws-sdk/types": "3.523.0", + "@smithy/is-array-buffer": "^2.1.1", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.523.0.tgz", + "integrity": "sha512-4g3q7Ta9sdD9TMUuohBAkbx/e3I/juTqfKi7TPgP+8jxcYX72MOsgemAMHuP6CX27eyj4dpvjH+w4SIVDiDSmg==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.523.0.tgz", + "integrity": "sha512-1QAUXX3U0jkARnU0yyjk81EO4Uw5dCeQOtvUY5s3bUOHatR3ThosQeIr6y9BCsbXHzNnDe1ytCjqAPyo8r/bYw==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.523.0.tgz", + "integrity": "sha512-PeDNJNhfiaZx54LBaLTXzUaJ9LXFwDFFIksipjqjvxMafnoVcQwKbkoPUWLe5ytT4nnL1LogD3s55mERFUsnwg==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.523.0.tgz", + "integrity": "sha512-nZ3Vt7ehfSDYnrcg/aAfjjvpdE+61B3Zk68i6/hSUIegT3IH9H1vSW67NDKVp+50hcEfzWwM2HMPXxlzuyFyrw==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.523.0.tgz", + "integrity": "sha512-cCZ3+XcAJMSC2rsw5F2h+ILVgjijRTxgzD6l7vExhc7UUOOPxXa6R9oGV3+6ANQ/P0w8rvE78j8UAMzlpq+cZA==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-arn-parser": "3.495.0", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/signature-v4": "^2.1.3", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/util-config-provider": "^2.2.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.523.0.tgz", + "integrity": "sha512-pFXV4don6qcmew/OvEjLUr2foVjzoJ8o5k57Oz9yAHz8INx3RHK8MP/K4mVhHo6n0SquRcWrm4kY/Tw+89gkEA==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/signature-v4": "^2.1.3", + "@smithy/types": "^2.10.1", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.523.0.tgz", + "integrity": "sha512-FaqAZQeF5cQzZLOIboIJRaWVOQ2F2pJZAXGF5D7nJsxYNFChotA0O0iWimBRxU35RNn7yirVxz35zQzs20ddIw==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.523.0.tgz", + "integrity": "sha512-5OoKkmAPNaxLgJuS65gByW1QknGvvXdqzrIMXLsm9LjbsphTOscyvT439qk3Jf08TL4Zlw2x+pZMG7dZYuMAhQ==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-endpoints": "3.523.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.523.0.tgz", + "integrity": "sha512-IypIAecBc8b4jM0uVBEj90NYaIsc0vuLdSFyH4LPO7is4rQUet4CkkD+S036NvDdcdxBsQ4hJZBmWrqiizMHhQ==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/types": "^2.10.1", + "@smithy/util-config-provider": "^2.2.1", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/s3-request-presigner": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.523.0.tgz", + "integrity": "sha512-BBq4b7Rc0DQzi1q3hZuQ/uOAexwIxDw3CFZ7z6BAIlHt09wriJn6qSBExPGuKSBsu+DkJfeNq6RXImggOSthJg==", + "dependencies": { + "@aws-sdk/signature-v4-multi-region": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@aws-sdk/util-format-url": "3.523.0", + "@smithy/middleware-endpoint": "^2.4.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.523.0.tgz", + "integrity": "sha512-TU1AfF6YlihdMy4H5YtkmFYmA/Zrh7sqk2V6tPiR2Vu6idc+9xm1R0UE/2V/DKgMIkxfr4+cAojtp2kqYuuF/A==", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@smithy/protocol-http": "^3.2.1", + "@smithy/signature-v4": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.523.0.tgz", + "integrity": "sha512-m3sPEnLuGV3JY9A8ytcz90SogVtjxEyIxUDFeswxY4C5wP/36yOq3ivenRu07dH+QIJnBhsQdjnHwJfrIetG6g==", + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.523.0", + "@aws-sdk/types": "3.523.0", + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.523.0.tgz", + "integrity": "sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.495.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.495.0.tgz", + "integrity": "sha512-hwdA3XAippSEUxs7jpznwD63YYFR+LtQvlEcebPTgWR9oQgG9TfS+39PUfbnEeje1ICuOrN3lrFqFbmP9uzbMg==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.523.0.tgz", + "integrity": "sha512-f4qe4AdafjAZoVGoVt69Jb2rXCgo306OOobSJ/f4bhQ0zgAjGELKJATNRRe0J7P28+ffmSxeuYwM3r4gDkD/QA==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "@smithy/util-endpoints": "^1.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-format-url": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.523.0.tgz", + "integrity": "sha512-OWi+8bsEfxG4DvHkWauxyWVZMbYrezC49DbGDEu1lJgk9eqQALlyGkZHt9O8KKfyT/mdqQbR8qbpkxqYcGuHVA==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/querystring-builder": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.495.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz", + "integrity": "sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.523.0.tgz", + "integrity": "sha512-6ZRNdGHX6+HQFqTbIA5+i8RWzxFyxsZv8D3soRfpdyWIKkzhSz8IyRKXRciwKBJDaC7OX2jzGE90wxRQft27nA==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/types": "^2.10.1", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.523.0.tgz", + "integrity": "sha512-tW7vliJ77EsE8J1bzFpDYCiUyrw2NTcem+J5ddiWD4HA/xNQUyX0CMOXMBZCBA31xLTIchyz0LkZHlDsmB9LUw==", + "dependencies": { + "@aws-sdk/types": "3.523.0", + "@smithy/node-config-provider": "^2.2.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.523.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.523.0.tgz", + "integrity": "sha512-wfvyVymj2TUw7SuDor9IuFcAzJZvWRBZotvY/wQJOlYa3UP3Oezzecy64N4FWfBJEsZdrTN+HOZFl+IzTWWnUA==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "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==", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "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==", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "engines": { + "node": ">=6.9.0" + } + }, + "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==", + "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==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "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==", + "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==", + "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==", + "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==" + }, + "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==", + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@chakra-ui/accordion": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.1.tgz", + "integrity": "sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/alert": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/alert/-/alert-2.2.2.tgz", + "integrity": "sha512-jHg4LYMRNOJH830ViLuicjb3F+v6iriE/2G5T+Sd0Hna04nukNJ1MxUmBPE+vI22me2dIflfelu2v9wdB6Pojw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/anatomy": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/anatomy/-/anatomy-2.2.2.tgz", + "integrity": "sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==" + }, + "node_modules/@chakra-ui/avatar": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/avatar/-/avatar-2.3.0.tgz", + "integrity": "sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==", + "dependencies": { + "@chakra-ui/image": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breadcrumb": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/breadcrumb/-/breadcrumb-2.2.0.tgz", + "integrity": "sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==", + "dependencies": { + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/breakpoint-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/breakpoint-utils/-/breakpoint-utils-2.0.8.tgz", + "integrity": "sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + } + }, + "node_modules/@chakra-ui/button": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/button/-/button-2.1.0.tgz", + "integrity": "sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/spinner": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/card": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/card/-/card-2.2.0.tgz", + "integrity": "sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/checkbox": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/checkbox/-/checkbox-2.3.2.tgz", + "integrity": "sha512-85g38JIXMEv6M+AcyIGLh7igNtfpAN6KGQFYxY9tBj0eWvWk4NKQxvqqyVta0bSAyIl1rixNIIezNpNWk2iO4g==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/visually-hidden": "2.2.0", + "@zag-js/focus-visible": "0.16.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/clickable": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/clickable/-/clickable-2.1.0.tgz", + "integrity": "sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==", + "dependencies": { + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/close-button": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/close-button/-/close-button-2.1.1.tgz", + "integrity": "sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/color-mode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/color-mode/-/color-mode-2.2.0.tgz", + "integrity": "sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/control-box": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/control-box/-/control-box-2.1.0.tgz", + "integrity": "sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/counter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/counter/-/counter-2.1.0.tgz", + "integrity": "sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/css-reset": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/css-reset/-/css-reset-2.3.0.tgz", + "integrity": "sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==", + "peerDependencies": { + "@emotion/react": ">=10.0.35", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/descendant": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/descendant/-/descendant-3.1.0.tgz", + "integrity": "sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/dom-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/dom-utils/-/dom-utils-2.1.0.tgz", + "integrity": "sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==" + }, + "node_modules/@chakra-ui/editable": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/editable/-/editable-3.1.0.tgz", + "integrity": "sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/event-utils": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@chakra-ui/event-utils/-/event-utils-2.0.8.tgz", + "integrity": "sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==" + }, + "node_modules/@chakra-ui/focus-lock": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/focus-lock/-/focus-lock-2.1.0.tgz", + "integrity": "sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "react-focus-lock": "^2.9.4" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/form-control": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/form-control/-/form-control-2.2.0.tgz", + "integrity": "sha512-wehLC1t4fafCVJ2RvJQT2jyqsAwX7KymmiGqBu7nQoQz8ApTkGABWpo/QwDh3F/dBLrouHDoOvGmYTqft3Mirw==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/hooks": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/hooks/-/hooks-2.2.1.tgz", + "integrity": "sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==", + "dependencies": { + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/utils": "2.0.15", + "compute-scroll-into-view": "3.0.3", + "copy-to-clipboard": "3.3.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/icon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/icon/-/icon-3.2.0.tgz", + "integrity": "sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/image": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/image/-/image-2.1.0.tgz", + "integrity": "sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/input/-/input-2.1.2.tgz", + "integrity": "sha512-GiBbb3EqAA8Ph43yGa6Mc+kUPjh4Spmxp1Pkelr8qtudpc3p2PJOOebLpd90mcqw8UePPa+l6YhhPtp6o0irhw==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/layout": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/layout/-/layout-2.3.1.tgz", + "integrity": "sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/lazy-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/lazy-utils/-/lazy-utils-2.0.5.tgz", + "integrity": "sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==" + }, + "node_modules/@chakra-ui/live-region": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/live-region/-/live-region-2.1.0.tgz", + "integrity": "sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/media-query": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/media-query/-/media-query-3.3.0.tgz", + "integrity": "sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==", + "dependencies": { + "@chakra-ui/breakpoint-utils": "2.0.8", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/menu": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/menu/-/menu-2.2.1.tgz", + "integrity": "sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-outside-click": "2.2.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/modal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/modal/-/modal-2.3.1.tgz", + "integrity": "sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==", + "dependencies": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/transition": "2.1.0", + "aria-hidden": "^1.2.3", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/number-input": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-input/-/number-input-2.1.2.tgz", + "integrity": "sha512-pfOdX02sqUN0qC2ysuvgVDiws7xZ20XDIlcNhva55Jgm095xjm8eVdIBfNm3SFbSUNxyXvLTW/YQanX74tKmuA==", + "dependencies": { + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-interval": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/number-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/number-utils/-/number-utils-2.0.7.tgz", + "integrity": "sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==" + }, + "node_modules/@chakra-ui/object-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/object-utils/-/object-utils-2.1.0.tgz", + "integrity": "sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==" + }, + "node_modules/@chakra-ui/pin-input": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/pin-input/-/pin-input-2.1.0.tgz", + "integrity": "sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==", + "dependencies": { + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popover": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/popover/-/popover-2.2.1.tgz", + "integrity": "sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==", + "dependencies": { + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-animation-state": "2.1.0", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-focus-effect": "2.1.0", + "@chakra-ui/react-use-focus-on-pointer-down": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/popper": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/popper/-/popper-3.1.0.tgz", + "integrity": "sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==", + "dependencies": { + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@popperjs/core": "^2.9.3" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/portal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/portal/-/portal-2.1.0.tgz", + "integrity": "sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/progress": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/progress/-/progress-2.2.0.tgz", + "integrity": "sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/provider": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/provider/-/provider-2.4.2.tgz", + "integrity": "sha512-w0Tef5ZCJK1mlJorcSjItCSbyvVuqpvyWdxZiVQmE6fvSJR83wZof42ux0+sfWD+I7rHSfj+f9nzhNaEWClysw==", + "dependencies": { + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/radio": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/radio/-/radio-2.1.2.tgz", + "integrity": "sha512-n10M46wJrMGbonaghvSRnZ9ToTv/q76Szz284gv4QUWvyljQACcGrXIONUnQ3BIwbOfkRqSk7Xl/JgZtVfll+w==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@zag-js/focus-visible": "0.16.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/react/-/react-2.8.2.tgz", + "integrity": "sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==", + "dependencies": { + "@chakra-ui/accordion": "2.3.1", + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/avatar": "2.3.0", + "@chakra-ui/breadcrumb": "2.2.0", + "@chakra-ui/button": "2.1.0", + "@chakra-ui/card": "2.2.0", + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/control-box": "2.1.0", + "@chakra-ui/counter": "2.1.0", + "@chakra-ui/css-reset": "2.3.0", + "@chakra-ui/editable": "3.1.0", + "@chakra-ui/focus-lock": "2.1.0", + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/hooks": "2.2.1", + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/image": "2.1.0", + "@chakra-ui/input": "2.1.2", + "@chakra-ui/layout": "2.3.1", + "@chakra-ui/live-region": "2.1.0", + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/menu": "2.2.1", + "@chakra-ui/modal": "2.3.1", + "@chakra-ui/number-input": "2.1.2", + "@chakra-ui/pin-input": "2.1.0", + "@chakra-ui/popover": "2.2.1", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/progress": "2.2.0", + "@chakra-ui/provider": "2.4.2", + "@chakra-ui/radio": "2.1.2", + "@chakra-ui/react-env": "3.1.0", + "@chakra-ui/select": "2.1.2", + "@chakra-ui/skeleton": "2.1.0", + "@chakra-ui/skip-nav": "2.1.0", + "@chakra-ui/slider": "2.1.0", + "@chakra-ui/spinner": "2.1.0", + "@chakra-ui/stat": "2.1.1", + "@chakra-ui/stepper": "2.3.1", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/switch": "2.1.2", + "@chakra-ui/system": "2.6.2", + "@chakra-ui/table": "2.1.0", + "@chakra-ui/tabs": "3.0.0", + "@chakra-ui/tag": "3.1.1", + "@chakra-ui/textarea": "2.1.2", + "@chakra-ui/theme": "3.3.1", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/toast": "7.0.2", + "@chakra-ui/tooltip": "2.3.1", + "@chakra-ui/transition": "2.1.0", + "@chakra-ui/utils": "2.0.15", + "@chakra-ui/visually-hidden": "2.2.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/react-children-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-children-utils/-/react-children-utils-2.0.6.tgz", + "integrity": "sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-context": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-context/-/react-context-2.1.0.tgz", + "integrity": "sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-env": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-env/-/react-env-3.1.0.tgz", + "integrity": "sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==", + "dependencies": { + "@chakra-ui/react-use-safe-layout-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-types/-/react-types-2.0.7.tgz", + "integrity": "sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-animation-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-animation-state/-/react-use-animation-state-2.1.0.tgz", + "integrity": "sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-callback-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-callback-ref/-/react-use-callback-ref-2.1.0.tgz", + "integrity": "sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-controllable-state": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-controllable-state/-/react-use-controllable-state-2.1.0.tgz", + "integrity": "sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-disclosure": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-disclosure/-/react-use-disclosure-2.1.0.tgz", + "integrity": "sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-event-listener": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-event-listener/-/react-use-event-listener-2.1.0.tgz", + "integrity": "sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-effect/-/react-use-focus-effect-2.1.0.tgz", + "integrity": "sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-focus-on-pointer-down": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-focus-on-pointer-down/-/react-use-focus-on-pointer-down-2.1.0.tgz", + "integrity": "sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==", + "dependencies": { + "@chakra-ui/react-use-event-listener": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-interval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-interval/-/react-use-interval-2.1.0.tgz", + "integrity": "sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-latest-ref": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-latest-ref/-/react-use-latest-ref-2.1.0.tgz", + "integrity": "sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-merge-refs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-merge-refs/-/react-use-merge-refs-2.1.0.tgz", + "integrity": "sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-outside-click": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-outside-click/-/react-use-outside-click-2.2.0.tgz", + "integrity": "sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-pan-event": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-pan-event/-/react-use-pan-event-2.1.0.tgz", + "integrity": "sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==", + "dependencies": { + "@chakra-ui/event-utils": "2.0.8", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "framesync": "6.1.2" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-previous": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-previous/-/react-use-previous-2.1.0.tgz", + "integrity": "sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-safe-layout-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-safe-layout-effect/-/react-use-safe-layout-effect-2.1.0.tgz", + "integrity": "sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-size": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-size/-/react-use-size-2.1.0.tgz", + "integrity": "sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==", + "dependencies": { + "@zag-js/element-size": "0.10.5" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-timeout": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-timeout/-/react-use-timeout-2.1.0.tgz", + "integrity": "sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==", + "dependencies": { + "@chakra-ui/react-use-callback-ref": "2.1.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-use-update-effect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-use-update-effect/-/react-use-update-effect-2.1.0.tgz", + "integrity": "sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/react-utils": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@chakra-ui/react-utils/-/react-utils-2.0.12.tgz", + "integrity": "sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==", + "dependencies": { + "@chakra-ui/utils": "2.0.15" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@chakra-ui/select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/select/-/select-2.1.2.tgz", + "integrity": "sha512-ZwCb7LqKCVLJhru3DXvKXpZ7Pbu1TDZ7N0PdQ0Zj1oyVLJyrpef1u9HR5u0amOpqcH++Ugt0f5JSmirjNlctjA==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/shared-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@chakra-ui/shared-utils/-/shared-utils-2.0.5.tgz", + "integrity": "sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==" + }, + "node_modules/@chakra-ui/skeleton": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skeleton/-/skeleton-2.1.0.tgz", + "integrity": "sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==", + "dependencies": { + "@chakra-ui/media-query": "3.3.0", + "@chakra-ui/react-use-previous": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/skip-nav": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/skip-nav/-/skip-nav-2.1.0.tgz", + "integrity": "sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/slider": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/slider/-/slider-2.1.0.tgz", + "integrity": "sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==", + "dependencies": { + "@chakra-ui/number-utils": "2.0.7", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-callback-ref": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-latest-ref": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-pan-event": "2.1.0", + "@chakra-ui/react-use-size": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/spinner": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/spinner/-/spinner-2.1.0.tgz", + "integrity": "sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stat/-/stat-2.1.1.tgz", + "integrity": "sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/stepper": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/stepper/-/stepper-2.3.1.tgz", + "integrity": "sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/styled-system": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/styled-system/-/styled-system-2.9.2.tgz", + "integrity": "sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "csstype": "^3.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/switch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/switch/-/switch-2.1.2.tgz", + "integrity": "sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==", + "dependencies": { + "@chakra-ui/checkbox": "2.3.2", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/system": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/system/-/system-2.6.2.tgz", + "integrity": "sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==", + "dependencies": { + "@chakra-ui/color-mode": "2.2.0", + "@chakra-ui/object-utils": "2.1.0", + "@chakra-ui/react-utils": "2.0.12", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme-utils": "2.0.21", + "@chakra-ui/utils": "2.0.15", + "react-fast-compare": "3.2.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/table": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/table/-/table-2.1.0.tgz", + "integrity": "sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==", + "dependencies": { + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tabs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/tabs/-/tabs-3.0.0.tgz", + "integrity": "sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==", + "dependencies": { + "@chakra-ui/clickable": "2.1.0", + "@chakra-ui/descendant": "3.1.0", + "@chakra-ui/lazy-utils": "2.0.5", + "@chakra-ui/react-children-utils": "2.0.6", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-controllable-state": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/react-use-safe-layout-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/tag": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tag/-/tag-3.1.1.tgz", + "integrity": "sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==", + "dependencies": { + "@chakra-ui/icon": "3.2.0", + "@chakra-ui/react-context": "2.1.0" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/textarea": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/textarea/-/textarea-2.1.2.tgz", + "integrity": "sha512-ip7tvklVCZUb2fOHDb23qPy/Fr2mzDOGdkrpbNi50hDCiV4hFX02jdQJdi3ydHZUyVgZVBKPOJ+lT9i7sKA2wA==", + "dependencies": { + "@chakra-ui/form-control": "2.2.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/theme": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme/-/theme-3.3.1.tgz", + "integrity": "sha512-Hft/VaT8GYnItGCBbgWd75ICrIrIFrR7lVOhV/dQnqtfGqsVDlrztbSErvMkoPKt0UgAkd9/o44jmZ6X4U2nZQ==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/theme-tools": "2.1.2" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.8.0" + } + }, + "node_modules/@chakra-ui/theme-tools": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-tools/-/theme-tools-2.1.2.tgz", + "integrity": "sha512-Qdj8ajF9kxY4gLrq7gA+Azp8CtFHGO9tWMN2wfF9aQNgG9AuMhPrUzMq9AMQ0MXiYcgNq/FD3eegB43nHVmXVA==", + "dependencies": { + "@chakra-ui/anatomy": "2.2.2", + "@chakra-ui/shared-utils": "2.0.5", + "color2k": "^2.0.2" + }, + "peerDependencies": { + "@chakra-ui/styled-system": ">=2.0.0" + } + }, + "node_modules/@chakra-ui/theme-utils": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@chakra-ui/theme-utils/-/theme-utils-2.0.21.tgz", + "integrity": "sha512-FjH5LJbT794r0+VSCXB3lT4aubI24bLLRWB+CuRKHijRvsOg717bRdUN/N1fEmEpFnRVrbewttWh/OQs0EWpWw==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/toast": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@chakra-ui/toast/-/toast-7.0.2.tgz", + "integrity": "sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==", + "dependencies": { + "@chakra-ui/alert": "2.2.2", + "@chakra-ui/close-button": "2.1.1", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-context": "2.1.0", + "@chakra-ui/react-use-timeout": "2.1.0", + "@chakra-ui/react-use-update-effect": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5", + "@chakra-ui/styled-system": "2.9.2", + "@chakra-ui/theme": "3.3.1" + }, + "peerDependencies": { + "@chakra-ui/system": "2.6.2", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/tooltip": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@chakra-ui/tooltip/-/tooltip-2.3.1.tgz", + "integrity": "sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==", + "dependencies": { + "@chakra-ui/dom-utils": "2.1.0", + "@chakra-ui/popper": "3.1.0", + "@chakra-ui/portal": "2.1.0", + "@chakra-ui/react-types": "2.0.7", + "@chakra-ui/react-use-disclosure": "2.1.0", + "@chakra-ui/react-use-event-listener": "2.1.0", + "@chakra-ui/react-use-merge-refs": "2.1.0", + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@chakra-ui/transition": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/transition/-/transition-2.1.0.tgz", + "integrity": "sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==", + "dependencies": { + "@chakra-ui/shared-utils": "2.0.5" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18" + } + }, + "node_modules/@chakra-ui/utils": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@chakra-ui/utils/-/utils-2.0.15.tgz", + "integrity": "sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==", + "dependencies": { + "@types/lodash.mergewith": "4.6.7", + "css-box-model": "1.2.1", + "framesync": "6.1.2", + "lodash.mergewith": "4.6.2" + } + }, + "node_modules/@chakra-ui/visually-hidden": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.2.0.tgz", + "integrity": "sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==", + "peerDependencies": { + "@chakra-ui/system": ">=2.0.0", + "react": ">=18" + } + }, + "node_modules/@emnapi/core": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-0.45.0.tgz", + "integrity": "sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", + "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "peer": true, + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", + "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", + "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.2", + "@emotion/serialize": "^1.1.4", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@faker-js/faker": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.3.1.tgz", + "integrity": "sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0", + "npm": ">=6.14.13" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", + "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "dependencies": { + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz", + "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.4" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz", + "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==" + }, + "node_modules/@google-analytics/data": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@google-analytics/data/-/data-4.1.0.tgz", + "integrity": "sha512-OMHSfqKi1a7OSjpc1n3MSynuPnfLrzYa8euEp2mrRH2XRzjFnHoQ0smiLOy3GSwGVbzT0ps8juNcT72I2nZjjQ==", + "dependencies": { + "google-gax": "^4.0.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.9.14", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz", + "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==", + "dependencies": { + "@grpc/proto-loader": "^0.7.8", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz", + "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.4", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@headlessui/react": { + "version": "1.7.13", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.13.tgz", + "integrity": "sha512-9n+EQKRtD9266xIHXdY5MfiXPDfYwl7zBM7KOx2Ae3Gdgxy8QML1FkCMjq6AsOf0l6N9uvI4HcFtuFlenaldKg==", + "dependencies": { + "client-only": "^0.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lucia-auth/adapter-prisma": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@lucia-auth/adapter-prisma/-/adapter-prisma-4.0.0.tgz", + "integrity": "sha512-TJg4/U1K1slS4A/OzDYCgmHTrIArntIynue14zGIEaMDu+OD+tGyq9WwQWqOabpx2Gm9xtDsoK+tTokAY3Up7A==", + "peerDependencies": { + "@prisma/client": "^4.2.0 || ^5.0.0", + "lucia": "3.x" + } + }, + "node_modules/@mswjs/cookies": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", + "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", + "dependencies": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@mswjs/interceptors": { + "version": "0.17.10", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz", + "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==", + "dependencies": { + "@open-draft/until": "^1.0.3", + "@types/debug": "^4.1.7", + "@xmldom/xmldom": "^0.8.3", + "debug": "^4.3.3", + "headers-polyfill": "3.2.5", + "outvariant": "^1.2.1", + "strict-event-emitter": "^0.2.4", + "web-encoding": "^1.1.5" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@mswjs/interceptors/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@mswjs/interceptors/node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/@mswjs/interceptors/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", + "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", + "dependencies": { + "events": "^3.3.0" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.1.1.tgz", + "integrity": "sha512-ATj9ua659JgrkICjJscaeZdmPr44cb/KFjNWuD0N6pux0SpzaM7+iOuuK11mAnQM2N9q0DT4REu6NkL8ZEhopw==", + "optional": true, + "dependencies": { + "@emnapi/core": "^0.45.0", + "@emnapi/runtime": "^0.45.0", + "@tybys/wasm-util": "^0.8.1" + } + }, + "node_modules/@node-rs/argon2": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2/-/argon2-1.7.2.tgz", + "integrity": "sha512-+H6pc3M1vIX9YnG59YW7prHhhpv19P8YyxlXHnnFzTimf2q+kKDF7mGWbhvN9STqIY+P70Patn0Q6qb6Ib5/4g==", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@node-rs/argon2-android-arm-eabi": "1.7.2", + "@node-rs/argon2-android-arm64": "1.7.2", + "@node-rs/argon2-darwin-arm64": "1.7.2", + "@node-rs/argon2-darwin-x64": "1.7.2", + "@node-rs/argon2-freebsd-x64": "1.7.2", + "@node-rs/argon2-linux-arm-gnueabihf": "1.7.2", + "@node-rs/argon2-linux-arm64-gnu": "1.7.2", + "@node-rs/argon2-linux-arm64-musl": "1.7.2", + "@node-rs/argon2-linux-x64-gnu": "1.7.2", + "@node-rs/argon2-linux-x64-musl": "1.7.2", + "@node-rs/argon2-wasm32-wasi": "1.7.2", + "@node-rs/argon2-win32-arm64-msvc": "1.7.2", + "@node-rs/argon2-win32-ia32-msvc": "1.7.2", + "@node-rs/argon2-win32-x64-msvc": "1.7.2" + } + }, + "node_modules/@node-rs/argon2-android-arm-eabi": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.7.2.tgz", + "integrity": "sha512-WhW84XOzdR4AOGc4BJvIg5lCRVBL0pXp/PPCe8QCyWw493p7VdNCdYpr2xdtjS/0zImmY85HNB/6zpzjLRTT/A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-android-arm64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.7.2.tgz", + "integrity": "sha512-CdtayHSMIyDuVhSYFirwA757c4foQuyTjpysgFJLHweP9C7uDiBf9WBYij+UyabpaCadJ0wPyK6Vakinvlk4/g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-darwin-arm64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.7.2.tgz", + "integrity": "sha512-hUOhtgYHTEyzX5sgMZVdXunONOus2HWpWydF5D/RYJ1mZ76FXRnFpQE40DqbzisdPIraKdn40m7JqkPP7wqdyg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-darwin-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.7.2.tgz", + "integrity": "sha512-lfs5HX+t542yUfcv6Aa/NeGD1nUCwyQNgnPEGcik71Ow6V13hkR1bHgmT1u3CHN4fBts0gW+DQEDsq1xlVgkvw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-freebsd-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.7.2.tgz", + "integrity": "sha512-ROoF+4VaCBJUjddrTN1hjuqSl89ppRcjVXJscSPJjWzTlbzFmGGovJvIzUBmCr/Oq3yM1zKHj6MP9oRD5cB+/g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-linux-arm-gnueabihf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.7.2.tgz", + "integrity": "sha512-CBSB8KPI8LS74Bcz3dYaa2/khULutz4vSDvFWUERlSLX+mPdDhoZi6UPuUPPF9e01w8AbiK1YCqlLUTm3tIMfw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-linux-arm64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.7.2.tgz", + "integrity": "sha512-6LBTug6ZiWFakP3X3Nqs7ZTM03gmcSWX4YvEn20HhhQE5NDrsrw3zNqGj0cJiNzKKIMSDDuj7uGy+ITEfNo4CA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-linux-arm64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.7.2.tgz", + "integrity": "sha512-KjhQ+ZPne29t9VRVeIif7JdKwQba+tM6CBNYBoJB1iON0CUKeqSQtZcHuTj9gkf2SNRG5bsU4ABcfxd0OKsKHg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-linux-x64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.7.2.tgz", + "integrity": "sha512-BQvp+iLtKqomHz4q5t1aKoni9osgvUDU5sZtHAlFm5dRTlGHnympcQVATRE5GHyH9C6MIM9W7P1kqEeCLGPolQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-linux-x64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.7.2.tgz", + "integrity": "sha512-yXJudpBZQ98g+lWaHn9EzZ5KsAyqRdlpub/K+5NP7gHehb8wzBRIFAejIHAG0fvzQEEc86VOnV2koWIVZxWAvw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-wasm32-wasi": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.7.2.tgz", + "integrity": "sha512-diXlVjJZY2GIV8ZDwUqXPhacXsFR0klGSv5D9f+XidwWXK4udtzDhkM/7N/Mb7h1HAWaxZ6IN9spYFjvWH1wqg==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@node-rs/argon2-win32-arm64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.7.2.tgz", + "integrity": "sha512-dhIBrY04P9nbmwzBpgERQDmmSu4YBZyeEE32t4TikMz5rQ07iaVC+JpGmtCBZoDIsLDHGC8cikENd3YEqpqIcA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-win32-ia32-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.7.2.tgz", + "integrity": "sha512-o1tfqr8gyALCzuxBoQfvhxkeYMaw/0H8Gmt7klTYyEIBvEFu7SD5qytXO9Px7t5420nZL/Wy5cflg3IB1s57Pg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/argon2-win32-x64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.7.2.tgz", + "integrity": "sha512-v0h53XUc7hNgWiWi0qcMcHvj9/kwuItI9NwLK4C+gtzT3UB0cedhfIL8HFMKThMXasy41ZdbpCF2Bi0kJoLNEg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.9.2.tgz", + "integrity": "sha512-FKUo9iCSIti+ldwoOlY1ztyIFhZxEgT7jZ/UCt/9bg1rLmNdbQQD2JKIMImDCqmTWuLPY4ZF4Q5MyOMIfDCd8Q==", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@node-rs/bcrypt-android-arm-eabi": "1.9.2", + "@node-rs/bcrypt-android-arm64": "1.9.2", + "@node-rs/bcrypt-darwin-arm64": "1.9.2", + "@node-rs/bcrypt-darwin-x64": "1.9.2", + "@node-rs/bcrypt-freebsd-x64": "1.9.2", + "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.2", + "@node-rs/bcrypt-linux-arm64-gnu": "1.9.2", + "@node-rs/bcrypt-linux-arm64-musl": "1.9.2", + "@node-rs/bcrypt-linux-x64-gnu": "1.9.2", + "@node-rs/bcrypt-linux-x64-musl": "1.9.2", + "@node-rs/bcrypt-wasm32-wasi": "1.9.2", + "@node-rs/bcrypt-win32-arm64-msvc": "1.9.2", + "@node-rs/bcrypt-win32-ia32-msvc": "1.9.2", + "@node-rs/bcrypt-win32-x64-msvc": "1.9.2" + } + }, + "node_modules/@node-rs/bcrypt-android-arm-eabi": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.9.2.tgz", + "integrity": "sha512-er/Q2khwpan9pczvTTqY/DJE4UU65u31xd0NkZlHUTKyB7djRhWfzoGexGx2GN+k831/RR3U8kKE/8QUHeO3hQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-android-arm64": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.9.2.tgz", + "integrity": "sha512-OUYatOEG5vbLbF73q2TC8UqrDO81zUQxnaFD/OAB1hcm6J+ur0zJ8E53c35/DIqkTp7JarPMraC4rouJ2ugN4w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-darwin-arm64": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.9.2.tgz", + "integrity": "sha512-svJKsGbzMAxOB5oluOYneN4YkKUy26WSMgm3KOIhgoX30IeMilj+2jFN/5qrI0oDZ0Iczb3XyL5DuZFtEkdP8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-darwin-x64": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.9.2.tgz", + "integrity": "sha512-9OrySjBi/rWix8NZWD/TrNbNcwMY0pAiMHdL09aJnJ07uPih83GGh1pq4UHCYFCMy7iTX8swOmDlGBUImkOZbg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-freebsd-x64": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.9.2.tgz", + "integrity": "sha512-/djXV71RO6g5L1mI2pVvmp3x3pH7G4uKI3ODG1JBIXoz334oOcCMh40sB0uq0ljP8WEadker01p4T1rJE98fpg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-linux-arm-gnueabihf": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.9.2.tgz", + "integrity": "sha512-F7wP950OTAooxEleUN4I2hqryGZK7hi1cSgRF13Wvbc597RFux35KiSxIXUA3mNt2DE7lV2PeceEtCOScaThWQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-linux-arm64-gnu": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.9.2.tgz", + "integrity": "sha512-MehG+yQ0TgKMgKR1rO4hdvHkVsTM91Cof8qI9EJlS5+7+QSwfFA5O0zGwCkISD7bsyauJ5uJgcByGjpEobAHOg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-linux-arm64-musl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.9.2.tgz", + "integrity": "sha512-PRZTAJjOwKEGsIhmBvfNh81So+wGl4QyCFAt23j+KwBujLStjC0N3YaqtTlWVKG9tcriPtmMYiAQtXWIyIgg/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-linux-x64-gnu": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.9.2.tgz", + "integrity": "sha512-5WfGO+O1m7nJ55WZ8XDq+ItA98Z4O7sNWsR+1nIj9YGT+Tx5zkQ2RBhpK6oCWZMluuZ0eKQ0FDmyP6K+2NDRIA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-linux-x64-musl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.9.2.tgz", + "integrity": "sha512-VjCn0388p6PMCVUYHgYmHZrKNc7WwNJRr2WLJsHbQRGDOKbpNL6YolCjQxUchcSPDhzwrq1cIdy4j0fpoXEsdw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-wasm32-wasi": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.9.2.tgz", + "integrity": "sha512-P06aHfMzm9makwU+nM7WA65yQnS1xuqJ8l/6I/LvXjnl+lfB3DtJ2B0CSLtjnUGpUgcHbWl5gEbNnTPxSAirjQ==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@node-rs/bcrypt-win32-arm64-msvc": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.9.2.tgz", + "integrity": "sha512-Iyo/Q5/eNw27VRd3mLBgh1b9b5fnT3QHTVwxv3Siv/MRAIfJXH/cTOe18qSwYQzNh0ZioW4yemFPYCWSZi7szA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-win32-ia32-msvc": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.9.2.tgz", + "integrity": "sha512-6LHWMaPylyyHoS5863YpxAACVB8DWCxro5W6pQ4h8WKSgHpJp8Um9jphTdN0A2w45HZjUnfcFuiFFC+TbftjCw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/bcrypt-win32-x64-msvc": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.9.2.tgz", + "integrity": "sha512-vZ9T1MOaYkLO9FTyl28YX0SYJneiYTKNFgM8PUv8nas8xrD+7OzokA0fEtlNp6413T7IKSD/iG9qi8nTWsiyGg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-draft/until": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.24", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@prisma/client": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.16.2.tgz", + "integrity": "sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==", + "hasInstallScript": true, + "dependencies": { + "@prisma/engines-version": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } + } + }, + "node_modules/@prisma/engines": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.16.2.tgz", + "integrity": "sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==", + "hasInstallScript": true + }, + "node_modules/@prisma/engines-version": { + "version": "4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81.tgz", + "integrity": "sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg==" + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.3.tgz", + "integrity": "sha512-1ACInKIT0pXmTYuPoJAL8sOT0lV3PEACFSVxnD03hGIojJ1CmbzZmLJyk2xew+yxqTlmx7xydkiJcBzdp0V+AQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.3.tgz", + "integrity": "sha512-vGl+Bny8cawCM7ExugzqEB8ke3t7Pm9/mo+ciA9kJh6pMuNyM+31qhewMwHwseDZ/LtdW0SCocW1CsMxcq1Lsg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.3.tgz", + "integrity": "sha512-Lj8J9WzQRvfWO4GfI+bBkIThUFV1PtI+es/YH/3cwUQ+edXu8Mre0JRJfRrAeRjPiHDPFFZaX51zfgHHEhgRAg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.3.tgz", + "integrity": "sha512-NPPOXMTIWJk50lgZmRReEYJFvLG5rgMDzaVauWNB2MgFQYm9HuNXQdVVg3iEZ3A5StIzxhMlPjVyS5fsv4PJmg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.3.tgz", + "integrity": "sha512-ij4tv1XtWcDScaTgoMnvDEYZ2Wjl2ZhDFEyftjBKu6sNNLHIkKuXBol/bVSh+md5zSJ6em9hUXyPO3cVPCsl4Q==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.3.tgz", + "integrity": "sha512-MTMAl30dzcfYB+smHe1sJuS2P1/hB8pqylkCe0/8/Lo8CADjy/eM8x43nBoR5eqcYgpOtCh7IgHpvqSMAE38xw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.3.tgz", + "integrity": "sha512-vY3fAg6JLDoNh781HHHMPvt8K6RWG3OmEj3xI9BOFSQTD5PNaGKvCB815MyGlDnFYUw7lH+WvvQqoBwLtRDR1A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.3.tgz", + "integrity": "sha512-61SpQGBSb8QkfV/hUYWezlEig4ro55t8NcE5wWmy1bqRsRVHCEDkF534d+Lln/YeLUoSWtJHvvG3bx9lH/S6uA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.3.tgz", + "integrity": "sha512-4XGexJthsNhEEgv/zK4/NnAOjYKoeCsIoT+GkqTY2u3rse0lbJ8ft1bpDCdlkvifsLDL2uwe4fn8PLR4IMTKQQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.3.tgz", + "integrity": "sha512-/pArXjqnEdhbQ1qe4CTTlJ6/GjWGdWNRucKAp4fqKnKf7QC0BES3QEV34ACumHHQ4uEGt4GctF2ISCMRhkli0A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.3.tgz", + "integrity": "sha512-vu4f3Y8iwjtRfSZdmtP8nC1jmRx1IrRVo2cLQlQfpFZ0e2AE9YbPgfIzpuK+i3C4zFETaLLNGezbBns2NuS/uA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.3.tgz", + "integrity": "sha512-n4HEgIJulNSmAKT3SYF/1wuzf9od14woSBseNkzur7a+KJIbh2Jb+J9KIsdGt3jJnsLW0BT1Sj6MiwL4Zzku6Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.3.tgz", + "integrity": "sha512-guO/4N1884ig2AzTKPc6qA7OTnFMUEg/X2wiesywRO1eRD7FzHiaiTQQOLFmnUXWj2pgQXIT1g5g3e2RpezXcQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.3.tgz", + "integrity": "sha512-+rxD3memdkhGz0NhNqbYHXBoA33MoHBK4uubZjF1IeQv1Psi6tqgsCcC6vwQjxBM1qoCqOQQBy0cgNbbZKnGUg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.3.tgz", + "integrity": "sha512-0NxVbLhBXmwANWWbgZY/RdSkeuHEgF+u8Dc0qBowUVBYsR2y2vwVGjKgUcj1wtu3jpjs057io5g9HAPr3Icqjg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.3.tgz", + "integrity": "sha512-hutnZavtOx/G4uVdgoZz5279By9NVbgmxOmGGgnzUjZYuwp2+NzGq6KXQmHXBWz7W/vottXn38QmKYAdQLa/vQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sendgrid/client": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-7.7.0.tgz", + "integrity": "sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==", + "dependencies": { + "@sendgrid/helpers": "^7.7.0", + "axios": "^0.26.0" + }, + "engines": { + "node": "6.* || 8.* || >=10.*" + } + }, + "node_modules/@sendgrid/client/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/@sendgrid/helpers": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-7.7.0.tgz", + "integrity": "sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==", + "dependencies": { + "deepmerge": "^4.2.2" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/@sendgrid/mail": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-7.7.0.tgz", + "integrity": "sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==", + "dependencies": { + "@sendgrid/client": "^7.7.0", + "@sendgrid/helpers": "^7.7.0" + }, + "engines": { + "node": "6.* || 8.* || >=10.*" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@smithy/abort-controller": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.1.3.tgz", + "integrity": "sha512-c2aYH2Wu1RVE3rLlVgg2kQOBJGM0WbjReQi5DnPTm2Zb7F0gk7J2aeQeaX2u/lQZoHl6gv8Oac7mt9alU3+f4A==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/chunked-blob-reader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.1.1.tgz", + "integrity": "sha512-NjNFCKxC4jVvn+lUr3Yo4/PmUJj3tbyqH6GNHueyTGS5Q27vlEJ1MkNhUDV8QGxJI7Bodnc2pD18lU2zRfhHlQ==", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.1.1.tgz", + "integrity": "sha512-zNW+43dltfNMUrBEYLMWgI8lQr0uhtTcUyxkgC9EP4j17WREzgSFMPUFVrVV6Rc2+QtWERYjb4tzZnQGa7R9fQ==", + "dependencies": { + "@smithy/util-base64": "^2.1.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.1.4.tgz", + "integrity": "sha512-AW2WUZmBAzgO3V3ovKtsUbI3aBNMeQKFDumoqkNxaVDWF/xfnxAWqBKDr/NuG7c06N2Rm4xeZLPiJH/d+na0HA==", + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/types": "^2.10.1", + "@smithy/util-config-provider": "^2.2.1", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-1.3.5.tgz", + "integrity": "sha512-Rrc+e2Jj6Gu7Xbn0jvrzZlSiP2CZocIOfZ9aNUA82+1sa6GBnxqL9+iZ9EKHeD9aqD1nU8EK4+oN2EiFpSv7Yw==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-retry": "^2.1.4", + "@smithy/middleware-serde": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.4.tgz", + "integrity": "sha512-DdatjmBZQnhGe1FhI8gO98f7NmvQFSDiZTwC3WMvLTCKQUY+Y1SVkhJqIuLu50Eb7pTheoXQmK+hKYUgpUWsNA==", + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/property-provider": "^2.1.3", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.1.3.tgz", + "integrity": "sha512-rGlCVuwSDv6qfKH4/lRxFjcZQnIE0LZ3D4lkMHg7ZSltK9rA74r0VuGSvWVQ4N/d70VZPaniFhp4Z14QYZsa+A==", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.10.1", + "@smithy/util-hex-encoding": "^2.1.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.3.tgz", + "integrity": "sha512-qAgKbZ9m2oBfSyJWWurX/MvQFRPrYypj79cDSleEgDwBoez6Tfd+FTpu2L/j3ZeC3mDlDHIKWksoeaXZpLLAHw==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.3.tgz", + "integrity": "sha512-48rvsNv/MgAFCxOE0qwR7ZwKhaEdDoTxqH5HM+T6SDxICmPGb7gEuQzjTxQhcieCPgqyXeZFW8cU0QJxdowuIg==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-node": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.3.tgz", + "integrity": "sha512-RPJWWDhj8isk3NtGfm3Xt1WdHyX9ZE42V+m1nLU1I0zZ1hEol/oawHsTnhva/VR5bn+bJ2zscx+BYr0cEPRtmg==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.3.tgz", + "integrity": "sha512-ssvSMk1LX2jRhiOVgVLGfNJXdB8SvyjieKcJDHq698Gi3LOog6g/+l7ggrN+hZxyjUiDF4cUxgKaZTBUghzhLw==", + "dependencies": { + "@smithy/eventstream-codec": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.3.tgz", + "integrity": "sha512-Fn/KYJFo6L5I4YPG8WQb2hOmExgRmNpVH5IK2zU3JKrY5FKW7y9ar5e0BexiIC9DhSKqKX+HeWq/Y18fq7Dkpw==", + "dependencies": { + "@smithy/protocol-http": "^3.2.1", + "@smithy/querystring-builder": "^2.1.3", + "@smithy/types": "^2.10.1", + "@smithy/util-base64": "^2.1.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/hash-blob-browser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.3.tgz", + "integrity": "sha512-sHLTM5xQYw5Wxz07DFo+eh1PVC6P5+kazQRF1k5nsvOhZG5VnkIy4LZ7N0ZNWqJx16g9otGd5MvqUOpb3WWtgA==", + "dependencies": { + "@smithy/chunked-blob-reader": "^2.1.1", + "@smithy/chunked-blob-reader-native": "^2.1.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/hash-node": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.1.3.tgz", + "integrity": "sha512-FsAPCUj7VNJIdHbSxMd5uiZiF20G2zdSDgrgrDrHqIs/VMxK85Vqk5kMVNNDMCZmMezp6UKnac0B4nAyx7HJ9g==", + "dependencies": { + "@smithy/types": "^2.10.1", + "@smithy/util-buffer-from": "^2.1.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/hash-stream-node": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.1.3.tgz", + "integrity": "sha512-fWpUx2ca/u5lcD5RhNJogEG5FD7H0RDDpYmfQgxFqIUv3Ow7bZsapMukh8uzQPVO8R+NDAvSdxmgXoy4Hz8sFw==", + "dependencies": { + "@smithy/types": "^2.10.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.1.3.tgz", + "integrity": "sha512-wkra7d/G4CbngV4xsjYyAYOvdAhahQje/WymuQdVEnXFExJopEu7fbL5AEAlBPgWHXwu94VnCSG00gVzRfExyg==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz", + "integrity": "sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/md5-js": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.1.3.tgz", + "integrity": "sha512-zmn3M6+mP4IJlSmXBN9964AztgkIO8b5lRzAgdJn9AdCFwA6xLkcW2B6uEnpBjvotxtQMmXTUP19tIO7NmFPpw==", + "dependencies": { + "@smithy/types": "^2.10.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.1.3.tgz", + "integrity": "sha512-aJduhkC+dcXxdnv5ZpM3uMmtGmVFKx412R1gbeykS5HXDmRU6oSsyy2SoHENCkfOGKAQOjVE2WVqDJibC0d21g==", + "dependencies": { + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.4.tgz", + "integrity": "sha512-4yjHyHK2Jul4JUDBo2sTsWY9UshYUnXeb/TAK/MTaPEb8XQvDmpwSFnfIRDU45RY1a6iC9LCnmJNg/yHyfxqkw==", + "dependencies": { + "@smithy/middleware-serde": "^2.1.3", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/shared-ini-file-loader": "^2.3.4", + "@smithy/types": "^2.10.1", + "@smithy/url-parser": "^2.1.3", + "@smithy/util-middleware": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.1.4.tgz", + "integrity": "sha512-Cyolv9YckZTPli1EkkaS39UklonxMd08VskiuMhURDjC0HHa/AD6aK/YoD21CHv9s0QLg0WMLvk9YeLTKkXaFQ==", + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/protocol-http": "^3.2.1", + "@smithy/service-error-classification": "^2.1.3", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-retry": "^2.1.3", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.1.3.tgz", + "integrity": "sha512-s76LId+TwASrHhUa9QS4k/zeXDUAuNuddKklQzRgumbzge5BftVXHXIqL4wQxKGLocPwfgAOXWx+HdWhQk9hTg==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.1.3.tgz", + "integrity": "sha512-opMFufVQgvBSld/b7mD7OOEBxF6STyraVr1xel1j0abVILM8ALJvRoFbqSWHGmaDlRGIiV9Q5cGbWi0sdiEaLQ==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.2.4.tgz", + "integrity": "sha512-nqazHCp8r4KHSFhRQ+T0VEkeqvA0U+RhehBSr1gunUuNW3X7j0uDrWBxB2gE9eutzy6kE3Y7L+Dov/UXT871vg==", + "dependencies": { + "@smithy/property-provider": "^2.1.3", + "@smithy/shared-ini-file-loader": "^2.3.4", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.4.1.tgz", + "integrity": "sha512-HCkb94soYhJMxPCa61wGKgmeKpJ3Gftx1XD6bcWEB2wMV1L9/SkQu/6/ysKBnbOzWRE01FGzwrTxucHypZ8rdg==", + "dependencies": { + "@smithy/abort-controller": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/querystring-builder": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.1.3.tgz", + "integrity": "sha512-bMz3se+ySKWNrgm7eIiQMa2HO/0fl2D0HvLAdg9pTMcpgp4SqOAh6bz7Ik6y7uQqSrk4rLjIKgbQ6yzYgGehCQ==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.2.1.tgz", + "integrity": "sha512-KLrQkEw4yJCeAmAH7hctE8g9KwA7+H2nSJwxgwIxchbp/L0B5exTdOQi9D5HinPLlothoervGmhpYKelZ6AxIA==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.1.3.tgz", + "integrity": "sha512-kFD3PnNqKELe6m9GRHQw/ftFFSZpnSeQD4qvgDB6BQN6hREHELSosVFUMPN4M3MDKN2jAwk35vXHLoDrNfKu0A==", + "dependencies": { + "@smithy/types": "^2.10.1", + "@smithy/util-uri-escape": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.1.3.tgz", + "integrity": "sha512-3+CWJoAqcBMR+yvz6D+Fc5VdoGFtfenW6wqSWATWajrRMGVwJGPT3Vy2eb2bnMktJc4HU4bpjeovFa566P3knQ==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.3.tgz", + "integrity": "sha512-iUrpSsem97bbXHHT/v3s7vaq8IIeMo6P6cXdeYHrx0wOJpMeBGQF7CB0mbJSiTm3//iq3L55JiEm8rA7CTVI8A==", + "dependencies": { + "@smithy/types": "^2.10.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.4.tgz", + "integrity": "sha512-CiZmPg9GeDKbKmJGEFvJBsJcFnh0AQRzOtQAzj1XEa8N/0/uSN/v1LYzgO7ry8hhO8+9KB7+DhSW0weqBra4Aw==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.1.3.tgz", + "integrity": "sha512-Jq4iPPdCmJojZTsPePn4r1ULShh6ONkokLuxp1Lnk4Sq7r7rJp4HlA1LbPBq4bD64TIzQezIpr1X+eh5NYkNxw==", + "dependencies": { + "@smithy/eventstream-codec": "^2.1.3", + "@smithy/is-array-buffer": "^2.1.1", + "@smithy/types": "^2.10.1", + "@smithy/util-hex-encoding": "^2.1.1", + "@smithy/util-middleware": "^2.1.3", + "@smithy/util-uri-escape": "^2.1.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.4.2.tgz", + "integrity": "sha512-ntAFYN51zu3N3mCd95YFcFi/8rmvm//uX+HnK24CRbI6k5Rjackn0JhgKz5zOx/tbNvOpgQIwhSX+1EvEsBLbA==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.4.4", + "@smithy/middleware-stack": "^2.1.3", + "@smithy/protocol-http": "^3.2.1", + "@smithy/types": "^2.10.1", + "@smithy/util-stream": "^2.1.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.10.1.tgz", + "integrity": "sha512-hjQO+4ru4cQ58FluQvKKiyMsFg0A6iRpGm2kqdH8fniyNd2WyanoOsYJfMX/IFLuLxEoW6gnRkNZy1y6fUUhtA==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.1.3.tgz", + "integrity": "sha512-X1NRA4WzK/ihgyzTpeGvI9Wn45y8HmqF4AZ/FazwAv8V203Ex+4lXqcYI70naX9ETqbqKVzFk88W6WJJzCggTQ==", + "dependencies": { + "@smithy/querystring-parser": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/util-base64": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.1.1.tgz", + "integrity": "sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==", + "dependencies": { + "@smithy/util-buffer-from": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz", + "integrity": "sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz", + "integrity": "sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz", + "integrity": "sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==", + "dependencies": { + "@smithy/is-array-buffer": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz", + "integrity": "sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.4.tgz", + "integrity": "sha512-J6XAVY+/g7jf03QMnvqPyU+8jqGrrtXoKWFVOS+n1sz0Lg8HjHJ1ANqaDN+KTTKZRZlvG8nU5ZrJOUL6VdwgcQ==", + "dependencies": { + "@smithy/property-provider": "^2.1.3", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.2.3.tgz", + "integrity": "sha512-ttUISrv1uVOjTlDa3nznX33f0pthoUlP+4grhTvOzcLhzArx8qHB94/untGACOG3nlf8vU20nI2iWImfzoLkYA==", + "dependencies": { + "@smithy/config-resolver": "^2.1.4", + "@smithy/credential-provider-imds": "^2.2.4", + "@smithy/node-config-provider": "^2.2.4", + "@smithy/property-provider": "^2.1.3", + "@smithy/smithy-client": "^2.4.2", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.1.4.tgz", + "integrity": "sha512-/qAeHmK5l4yQ4/bCIJ9p49wDe9rwWtOzhPHblu386fwPNT3pxmodgcs9jDCV52yK9b4rB8o9Sj31P/7Vzka1cg==", + "dependencies": { + "@smithy/node-config-provider": "^2.2.4", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz", + "integrity": "sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.1.3.tgz", + "integrity": "sha512-/+2fm7AZ2ozl5h8wM++ZP0ovE9/tiUUAHIbCfGfb3Zd3+Dyk17WODPKXBeJ/TnK5U+x743QmA0xHzlSm8I/qhw==", + "dependencies": { + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.1.3.tgz", + "integrity": "sha512-Kbvd+GEMuozbNUU3B89mb99tbufwREcyx2BOX0X2+qHjq6Gvsah8xSDDgxISDwcOHoDqUWO425F0Uc/QIRhYkg==", + "dependencies": { + "@smithy/service-error-classification": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.1.3.tgz", + "integrity": "sha512-HvpEQbP8raTy9n86ZfXiAkf3ezp1c3qeeO//zGqwZdrfaoOpGKQgF2Sv1IqZp7wjhna7pvczWaGUHjcOPuQwKw==", + "dependencies": { + "@smithy/fetch-http-handler": "^2.4.3", + "@smithy/node-http-handler": "^2.4.1", + "@smithy/types": "^2.10.1", + "@smithy/util-base64": "^2.1.1", + "@smithy/util-buffer-from": "^2.1.1", + "@smithy/util-hex-encoding": "^2.1.1", + "@smithy/util-utf8": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz", + "integrity": "sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.1.1.tgz", + "integrity": "sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.1.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-waiter": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.1.3.tgz", + "integrity": "sha512-3R0wNFAQQoH9e4m+bVLDYNOst2qNxtxFgq03WoNHWTBOqQT3jFnOBRj1W51Rf563xDA5kwqjziksxn6RKkHB+Q==", + "dependencies": { + "@smithy/abort-controller": "^2.1.3", + "@smithy/types": "^2.10.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-4.0.0.tgz", + "integrity": "sha512-2WNKxlj1JdjMDc3REbalzBNL/3fPu1gqA87/aU3BmDJGDAy66zjCNHAwa5WuWU3IXJwwqN8s4c5j4XfneMEsqg==" + }, + "node_modules/@stitches/react": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz", + "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==", + "peerDependencies": { + "react": ">= 16.3.0" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", + "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@tanstack/query-core": { + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", + "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "4.36.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", + "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", + "dependencies": { + "@tanstack/query-core": "4.36.1", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/dom/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==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz", + "integrity": "sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==", + "dependencies": { + "@adobe/css-tools": "^4.3.2", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + }, + "peerDependencies": { + "@jest/globals": ">= 28", + "@types/bun": "latest", + "@types/jest": ">= 28", + "jest": ">= 28", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "@jest/globals": { + "optional": true + }, + "@types/bun": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "jest": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@testing-library/react": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.2.1.tgz", + "integrity": "sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^9.0.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsconfig/node18": { + "version": "18.2.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", + "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==", + "dev": true + }, + "node_modules/@tybys/wasm-util": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.8.1.tgz", + "integrity": "sha512-GSsTwyBl4pIzsxAY5wroZdyQKyhXk0d8PCRZtrSZ2WEB1cBdrp2EgGBwHOGCZtIIPun/DL3+AykCv+J6fyRH4Q==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==" + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/js-levenshtein": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.3.tgz", + "integrity": "sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ==" + }, + "node_modules/@types/lodash": { + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==" + }, + "node_modules/@types/lodash.mergewith": { + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz", + "integrity": "sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + }, + "node_modules/@types/node": { + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "18.2.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz", + "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/request": { + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/set-cookie-parser": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.7.tgz", + "integrity": "sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" + }, + "node_modules/@vitest/coverage-v8": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.6.0.tgz", + "integrity": "sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "debug": "^4.3.4", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.4", + "istanbul-reports": "^3.1.6", + "magic-string": "^0.30.5", + "magicast": "^0.3.3", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "test-exclude": "^6.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "1.6.0" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@vitest/coverage-v8/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "dependencies": { + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "dependencies": { + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/@vitest/spy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-1.6.0.tgz", + "integrity": "sha512-k3Lyo+ONLOgylctiGovRKy7V4+dIN2yxstX3eY5cWFXH6WP+ooVX79YSyi0GagdTQzLmT43BF27T0s6dOIPBXA==", + "dependencies": { + "@vitest/utils": "1.6.0", + "fast-glob": "^3.3.2", + "fflate": "^0.8.1", + "flatted": "^3.2.9", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "sirv": "^2.0.4" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "1.6.0" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + }, + "node_modules/@zag-js/dom-query": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.16.0.tgz", + "integrity": "sha512-Oqhd6+biWyKnhKwFFuZrrf6lxBz2tX2pRQe6grUnYwO6HJ8BcbqZomy2lpOdr+3itlaUqx+Ywj5E5ZZDr/LBfQ==" + }, + "node_modules/@zag-js/element-size": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.10.5.tgz", + "integrity": "sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==" + }, + "node_modules/@zag-js/focus-visible": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.16.0.tgz", + "integrity": "sha512-a7U/HSopvQbrDU4GLerpqiMcHKEkQkNPeDZJWz38cw/6Upunh41GjHetq5TB84hxyCaDzJ6q2nEdNoBQfC0FKA==", + "dependencies": { + "@zag-js/dom-query": "0.16.0" + } + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apexcharts": { + "version": "3.45.2", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.45.2.tgz", + "integrity": "sha512-PpuM4sJWy70sUh5U1IFn1m1p45MdHSChLUNnqEoUUUHSU2IHZugFrsVNhov1S8Q0cvfdrCRCvdBtHGSs6PSAWQ==", + "dependencies": { + "@yr/monotone-cubic-spline": "^1.0.3", + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/auri": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/auri/-/auri-1.0.2.tgz", + "integrity": "sha512-OC54Bv+hAPvYlo98ZwK3cTo2ijg0CBylaAO5dZ/xZQ7e897k0o4qtxkUPQHruJrFUnL5BebCXz+bUAeXQHp9dg==", + "dependencies": { + "@actions/core": "^1.10.0", + "dotenv": "^16.0.3", + "front-matter": "^4.0.2", + "nanoid": "^4.0.1", + "oslo": "^1.0.3" + }, + "bin": { + "auri": "dist/index.js" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2/-/argon2-1.7.0.tgz", + "integrity": "sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@node-rs/argon2-android-arm-eabi": "1.7.0", + "@node-rs/argon2-android-arm64": "1.7.0", + "@node-rs/argon2-darwin-arm64": "1.7.0", + "@node-rs/argon2-darwin-x64": "1.7.0", + "@node-rs/argon2-freebsd-x64": "1.7.0", + "@node-rs/argon2-linux-arm-gnueabihf": "1.7.0", + "@node-rs/argon2-linux-arm64-gnu": "1.7.0", + "@node-rs/argon2-linux-arm64-musl": "1.7.0", + "@node-rs/argon2-linux-x64-gnu": "1.7.0", + "@node-rs/argon2-linux-x64-musl": "1.7.0", + "@node-rs/argon2-wasm32-wasi": "1.7.0", + "@node-rs/argon2-win32-arm64-msvc": "1.7.0", + "@node-rs/argon2-win32-ia32-msvc": "1.7.0", + "@node-rs/argon2-win32-x64-msvc": "1.7.0" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-android-arm-eabi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm-eabi/-/argon2-android-arm-eabi-1.7.0.tgz", + "integrity": "sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-android-arm64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-android-arm64/-/argon2-android-arm64-1.7.0.tgz", + "integrity": "sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-darwin-arm64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-arm64/-/argon2-darwin-arm64-1.7.0.tgz", + "integrity": "sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-darwin-x64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-darwin-x64/-/argon2-darwin-x64-1.7.0.tgz", + "integrity": "sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-freebsd-x64": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-freebsd-x64/-/argon2-freebsd-x64-1.7.0.tgz", + "integrity": "sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-linux-arm-gnueabihf": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm-gnueabihf/-/argon2-linux-arm-gnueabihf-1.7.0.tgz", + "integrity": "sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-linux-arm64-gnu": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-gnu/-/argon2-linux-arm64-gnu-1.7.0.tgz", + "integrity": "sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-linux-arm64-musl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-arm64-musl/-/argon2-linux-arm64-musl-1.7.0.tgz", + "integrity": "sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-linux-x64-gnu": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-gnu/-/argon2-linux-x64-gnu-1.7.0.tgz", + "integrity": "sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-linux-x64-musl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-linux-x64-musl/-/argon2-linux-x64-musl-1.7.0.tgz", + "integrity": "sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-wasm32-wasi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-wasm32-wasi/-/argon2-wasm32-wasi-1.7.0.tgz", + "integrity": "sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^0.45.0", + "@emnapi/runtime": "^0.45.0", + "@tybys/wasm-util": "^0.8.1", + "memfs-browser": "^3.4.13000" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-win32-arm64-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-arm64-msvc/-/argon2-win32-arm64-msvc-1.7.0.tgz", + "integrity": "sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-win32-ia32-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-ia32-msvc/-/argon2-win32-ia32-msvc-1.7.0.tgz", + "integrity": "sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/argon2-win32-x64-msvc": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@node-rs/argon2-win32-x64-msvc/-/argon2-win32-x64-msvc-1.7.0.tgz", + "integrity": "sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt/-/bcrypt-1.9.0.tgz", + "integrity": "sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@node-rs/bcrypt-android-arm-eabi": "1.9.0", + "@node-rs/bcrypt-android-arm64": "1.9.0", + "@node-rs/bcrypt-darwin-arm64": "1.9.0", + "@node-rs/bcrypt-darwin-x64": "1.9.0", + "@node-rs/bcrypt-freebsd-x64": "1.9.0", + "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.0", + "@node-rs/bcrypt-linux-arm64-gnu": "1.9.0", + "@node-rs/bcrypt-linux-arm64-musl": "1.9.0", + "@node-rs/bcrypt-linux-x64-gnu": "1.9.0", + "@node-rs/bcrypt-linux-x64-musl": "1.9.0", + "@node-rs/bcrypt-wasm32-wasi": "1.9.0", + "@node-rs/bcrypt-win32-arm64-msvc": "1.9.0", + "@node-rs/bcrypt-win32-ia32-msvc": "1.9.0", + "@node-rs/bcrypt-win32-x64-msvc": "1.9.0" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-android-arm-eabi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm-eabi/-/bcrypt-android-arm-eabi-1.9.0.tgz", + "integrity": "sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-android-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-android-arm64/-/bcrypt-android-arm64-1.9.0.tgz", + "integrity": "sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-darwin-arm64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-arm64/-/bcrypt-darwin-arm64-1.9.0.tgz", + "integrity": "sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-darwin-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-darwin-x64/-/bcrypt-darwin-x64-1.9.0.tgz", + "integrity": "sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-freebsd-x64": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-freebsd-x64/-/bcrypt-freebsd-x64-1.9.0.tgz", + "integrity": "sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-linux-arm-gnueabihf": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm-gnueabihf/-/bcrypt-linux-arm-gnueabihf-1.9.0.tgz", + "integrity": "sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-linux-arm64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-gnu/-/bcrypt-linux-arm64-gnu-1.9.0.tgz", + "integrity": "sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-linux-arm64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-arm64-musl/-/bcrypt-linux-arm64-musl-1.9.0.tgz", + "integrity": "sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-linux-x64-gnu": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-gnu/-/bcrypt-linux-x64-gnu-1.9.0.tgz", + "integrity": "sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-linux-x64-musl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-linux-x64-musl/-/bcrypt-linux-x64-musl-1.9.0.tgz", + "integrity": "sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-wasm32-wasi": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-wasm32-wasi/-/bcrypt-wasm32-wasi-1.9.0.tgz", + "integrity": "sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/core": "^0.45.0", + "@emnapi/runtime": "^0.45.0", + "@tybys/wasm-util": "^0.8.1", + "memfs-browser": "^3.4.13000" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-win32-arm64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-arm64-msvc/-/bcrypt-win32-arm64-msvc-1.9.0.tgz", + "integrity": "sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-win32-ia32-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-ia32-msvc/-/bcrypt-win32-ia32-msvc-1.9.0.tgz", + "integrity": "sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/@node-rs/bcrypt-win32-x64-msvc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@node-rs/bcrypt-win32-x64-msvc/-/bcrypt-win32-x64-msvc-1.9.0.tgz", + "integrity": "sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/auri/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/auri/node_modules/oslo": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/oslo/-/oslo-1.1.2.tgz", + "integrity": "sha512-l5tmumAHJy6wTfcxjwbPtcEn23lxnsBqbW1PqM11lqnQ79Q8Gzc7b3+OjRpLTbiqkfvhT4/BZ2Ooe8/QCJxyEg==", + "dependencies": { + "@node-rs/argon2": "1.7.0", + "@node-rs/bcrypt": "1.9.0", + "auri": "1.0.2" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", + "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", + "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", + "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "set-function-length": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001588", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz", + "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color2k": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz", + "integrity": "sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz", + "integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "engines": { + "node": "*" + } + }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-urls": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "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==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", + "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/digest-fetch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz", + "integrity": "sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==", + "dependencies": { + "base-64": "^0.1.0", + "md5": "^2.3.0" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.676", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.676.tgz", + "integrity": "sha512-uHt4FB8SeYdhcOsj2ix/C39S7sPSNFJpzShjxGOm1KdF4MHyGqGi389+T5cErsodsijojXilYaHIKKqJfqh7uQ==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "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==", + "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==" + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" + }, + "node_modules/focus-lock": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.3.5.tgz", + "integrity": "sha512-QFaHbhv9WPUeLYBDe/PAuLKJ4Dd9OPvKs9xZBr3yLXnUrDNaVXKu2baDBXe3naPY30hgHYSsf2JW4jzas2mDEQ==", + "dependencies": { + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" + }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "dependencies": { + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" + }, + "engines": { + "node": ">= 12.20" + } + }, + "node_modules/formdata-node/node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.3.2.tgz", + "integrity": "sha512-RgjSzrNFZmedWcvmW4MMc84A7UcoY37jocadE3Mbg3o+UMofodfyeNnYD/HR15UhP22/bb5KOebNhYOj4mYkpQ==", + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "dependencies": { + "tslib": "2.4.0" + } + }, + "node_modules/framesync/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "optional": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaxios": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.2.0.tgz", + "integrity": "sha512-H6+bHeoEAU5D6XNc6mPKeN5dLZqEDs9Gpk6I+SZBEzK5So58JVrHPmevNi35fRl1J9Y5TaeLW0kYx3pCJ1U2mQ==", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gaxios/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/gaxios/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/gaxios/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/gaxios/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/gcp-metadata": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", + "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==", + "dependencies": { + "gaxios": "^6.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/goober": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.14.tgz", + "integrity": "sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/google-auth-library": { + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.6.3.tgz", + "integrity": "sha512-4CacM29MLC2eT9Cey5GDVK4Q8t+MMp8+OEdOaqD9MG6b0dOyLORaaeJMPQ7EESVgm/+z5EKYyFLxgzBJlJgyHQ==", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.3.0.tgz", + "integrity": "sha512-SWHX72gbccNfpPoeTkNmZJxmLyKWeLr0+5Ch6qtrf4oAN8KFXnyXe5EixatILnJWufM3L59MRZ4hSJWVJ3IQqw==", + "dependencies": { + "@grpc/grpc-js": "~1.9.6", + "@grpc/proto-loader": "^0.7.0", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "google-auth-library": "^9.0.0", + "node-fetch": "^2.6.1", + "object-hash": "^3.0.0", + "proto3-json-serializer": "^2.0.0", + "protobufjs": "7.2.6", + "retry-request": "^7.0.0", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/google-gax/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/google-gax/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/google-gax/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/headers-polyfill": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz", + "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==" + }, + "node_modules/headlessui": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/headlessui/-/headlessui-0.0.0.tgz", + "integrity": "sha512-CHvacVPbl8AqIg2sBNKySUmumu7o15jSrCaTrIh9GW2Eq4y/krCN/vZFOsKCwlrhWQbO4267a8xvvP8bs+qREQ==" + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/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==" + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "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", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "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-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.4.tgz", + "integrity": "sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "21.1.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-21.1.2.tgz", + "integrity": "sha512-sCpFmK2jv+1sjff4u7fzft+pUh2KSUbUrEHYHyfSIbGTIcmnjyp83qg6qLwdJ/I3LpTXx33ACxeRL7Lsyc6lGQ==", + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.2", + "acorn-globals": "^7.0.0", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/jsdom/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" + }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/lucia": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lucia/-/lucia-3.0.1.tgz", + "integrity": "sha512-srwUkTCGgr6N4mFpaKZVZy5kwiRZdsrbIDv9Wrjar+xyw1MjojYQQ7oRbegjRWOZ3yI8xOOclK3sz/rga2J7/w==", + "dependencies": { + "oslo": "1.0.1" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/magicast": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.4.tgz", + "integrity": "sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4", + "@babel/types": "^7.24.0", + "source-map-js": "^1.2.0" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-to-jsx": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", + "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "optional": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memfs-browser": { + "version": "3.5.10302", + "resolved": "https://registry.npmjs.org/memfs-browser/-/memfs-browser-3.5.10302.tgz", + "integrity": "sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==", + "optional": true, + "dependencies": { + "memfs": "3.5.3" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==" + }, + "node_modules/mlly": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", + "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.0.3", + "ufo": "^1.3.2" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/msw": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-1.3.2.tgz", + "integrity": "sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==", + "hasInstallScript": true, + "dependencies": { + "@mswjs/cookies": "^0.2.2", + "@mswjs/interceptors": "^0.17.10", + "@open-draft/until": "^1.0.3", + "@types/cookie": "^0.4.1", + "@types/js-levenshtein": "^1.1.1", + "chalk": "^4.1.1", + "chokidar": "^3.4.2", + "cookie": "^0.4.2", + "graphql": "^16.8.1", + "headers-polyfill": "3.2.5", + "inquirer": "^8.2.0", + "is-node-process": "^1.2.0", + "js-levenshtein": "^1.1.6", + "node-fetch": "^2.6.7", + "outvariant": "^1.4.0", + "path-to-regexp": "^6.2.0", + "strict-event-emitter": "^0.4.3", + "type-fest": "^2.19.0", + "yargs": "^17.3.1" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.4.x <= 5.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/msw/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/msw/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/msw/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/msw/node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + }, + "node_modules/msw/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/msw/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/msw/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nats": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.24.0.tgz", + "integrity": "sha512-SX88qL6GdmbRG1dP/q2+YTDlY7i/u6Zz57J2JRLNb21QgQ+Vw46JzARmtNw83vlcW5XC53NXe5gRWo2D2gAFyg==", + "dependencies": { + "nkeys.js": "1.1.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nkeys.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.1.0.tgz", + "integrity": "sha512-tB/a0shZL5UZWSwsoeyqfTszONTt4k2YS0tuQioMOD180+MbombYVgzDUYHlx+gejYK6rgf08n/2Df99WY0Sxg==", + "dependencies": { + "tweetnacl": "1.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "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", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openai": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.27.0.tgz", + "integrity": "sha512-j1ZEx9NiBpm31rxWqQTjQt1QvH/8001xHsc/pRoPjkRDYWONCb+qkR6L9C7Wl6ar72Mz1ybtn1bv6fqAoTPlKw==", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "digest-fetch": "^1.3.0", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7", + "web-streams-polyfill": "^3.2.1" + }, + "bin": { + "openai": "bin/cli" + } + }, + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.15.tgz", + "integrity": "sha512-AMZ2UWx+woHNfM11PyAEQmfSxi05jm9OlkxczuHeEqmvwPkYj6MWv44gbzDPefYOLysTOFyI3ziiy2ONmUZfpA==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/openai/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/openai/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/openai/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/openai/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oslo": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/oslo/-/oslo-1.0.1.tgz", + "integrity": "sha512-esfzZry+HfGgK/GCYkg7BRlLd3RH5aHa08wgLJPYjENXybi0BvXxGk0LbUj+lXfz2TkjPDHe4rB/o6JxRLHxBg==", + "dependencies": { + "@node-rs/argon2": "1.7.2", + "@node-rs/bcrypt": "1.9.2" + } + }, + "node_modules/outvariant": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz", + "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==" + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prettier": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.11.tgz", + "integrity": "sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==", + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + }, + "prettier-plugin-twig-melody": { + "optional": true + } + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prisma": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.16.2.tgz", + "integrity": "sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==", + "hasInstallScript": true, + "dependencies": { + "@prisma/engines": "4.16.2" + }, + "bin": { + "prisma": "build/index.js", + "prisma2": "build/index.js" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/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==" + }, + "node_modules/proto3-json-serializer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.1.tgz", + "integrity": "sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA==", + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", + "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-apexcharts": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.1.tgz", + "integrity": "sha512-G14nVaD64Bnbgy8tYxkjuXEUp/7h30Q0U33xc3AwtGFijJB9nHqOt1a6eG0WBn055RgRg+NwqbKGtqPxy15d0Q==", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "apexcharts": "^3.41.0", + "react": ">=0.13" + } + }, + "node_modules/react-clientside-effect": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz", + "integrity": "sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==", + "dependencies": { + "@babel/runtime": "^7.12.13" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-focus-lock": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.12.1.tgz", + "integrity": "sha512-lfp8Dve4yJagkHiFrC1bGtib3mF2ktqwPJw4/WGcgPW+pJ/AVQA5X2vI7xgp13FcxFEpYBBHpXai/N2DBNC0Jw==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "focus-lock": "^1.3.5", + "prop-types": "^15.6.2", + "react-clientside-effect": "^1.2.6", + "use-callback-ref": "^1.3.2", + "use-sidecar": "^1.1.2" + }, + "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-hook-form": { + "version": "7.50.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.50.1.tgz", + "integrity": "sha512-3PCY82oE0WgeOgUtIr3nYNNtNvqtJ7BZjsbxh6TnYNbXButaD5WpjOmTjdxZfheuHKR68qfeFnEDVYoSSFPMTQ==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-hot-toast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", + "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "dependencies": { + "goober": "^2.1.10" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-icons": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", + "integrity": "sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-remove-scroll": { + "version": "2.5.10", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.10.tgz", + "integrity": "sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA==", + "dependencies": { + "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": ">=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==", + "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-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/react-router/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/react-router/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==" + }, + "node_modules/react-select": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.0.tgz", + "integrity": "sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.1.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "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==", + "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/react-textarea-autosize": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", + "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "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==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", + "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", + "dependencies": { + "@types/request": "^2.48.8", + "extend": "^3.0.2", + "teeny-request": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.3.tgz", + "integrity": "sha512-Ygm4fFO4usWcAG3Ud36Lmif5nudoi0X6QPLC+kRgrRjulAbmFkaTawP7fTIkRDnCNSf/4IAQzXM1T8e691kRtw==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.16.3", + "@rollup/rollup-android-arm64": "4.16.3", + "@rollup/rollup-darwin-arm64": "4.16.3", + "@rollup/rollup-darwin-x64": "4.16.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.16.3", + "@rollup/rollup-linux-arm-musleabihf": "4.16.3", + "@rollup/rollup-linux-arm64-gnu": "4.16.3", + "@rollup/rollup-linux-arm64-musl": "4.16.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.16.3", + "@rollup/rollup-linux-riscv64-gnu": "4.16.3", + "@rollup/rollup-linux-s390x-gnu": "4.16.3", + "@rollup/rollup-linux-x64-gnu": "4.16.3", + "@rollup/rollup-linux-x64-musl": "4.16.3", + "@rollup/rollup-win32-arm64-msvc": "4.16.3", + "@rollup/rollup-win32-ia32-msvc": "4.16.3", + "@rollup/rollup-win32-x64-msvc": "4.16.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==" + }, + "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/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/socket.io": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-adapter/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/socket.io-client": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", + "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "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==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dependencies": { + "stubs": "^3.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + }, + "node_modules/strict-event-emitter": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", + "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==" + }, + "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==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==" + }, + "node_modules/stripe": { + "version": "11.15.0", + "resolved": "https://registry.npmjs.org/stripe/-/stripe-11.15.0.tgz", + "integrity": "sha512-HkXz/o4hVvBLSSgTLo3iZQW19PV+DiOdwsj26jnrRcOgpZ+dpGgzpudL/yTWEho7lWcz3cRNov3d4REZ1Qtfbg==", + "dependencies": { + "@types/node": ">=8.1.0", + "qs": "^6.11.0" + }, + "engines": { + "node": ">=12.*" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==" + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/superjson": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-1.13.3.tgz", + "integrity": "sha512-mJiVjfd2vokfDxsQPOwJ/PtanO87LhpYY88ubI5dUB1Ab58Txbyje3+jpm+/83R/fevaq/107NNhtYBLuoTrFg==", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwind-merge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.2.1.tgz", + "integrity": "sha512-o+2GTLkthfa5YUt4JxPfzMIpQzZ3adD1vLVkvKE1Twl9UAhGsEbIZhHHZVRttyW177S8PDJI3bTQNaebyofK3Q==", + "dependencies": { + "@babel/runtime": "^7.23.7" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/teeny-request": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", + "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", + "dependencies": { + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.9", + "stream-events": "^1.0.5", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/teeny-request/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/teeny-request/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/teeny-request/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/teeny-request/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/teeny-request/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/teeny-request/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/teeny-request/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/teeny-request/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tinybench": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", + "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", + "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==" + }, + "node_modules/undici": { + "version": "5.28.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", + "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "dependencies": { + "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/use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-node/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/vitest": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", + "dependencies": { + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/wasp": { + "resolved": ".wasp/out/sdk/wasp", + "link": true + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "dependencies": { + "util": "^0.12.3" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", + "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/app/package.json b/app/package.json new file mode 100644 index 00000000..36a3b89e --- /dev/null +++ b/app/package.json @@ -0,0 +1,43 @@ +{ + "name": "opensaas", + "dependencies": { + "@aws-sdk/client-s3": "^3.523.0", + "@aws-sdk/s3-request-presigner": "^3.523.0", + "@faker-js/faker": "8.3.1", + "@google-analytics/data": "4.1.0", + "@headlessui/react": "1.7.13", + "@tailwindcss/forms": "^0.5.3", + "@tailwindcss/typography": "^0.5.7", + "apexcharts": "^3.41.0", + "clsx": "^2.1.0", + "headlessui": "^0.0.0", + "lodash": "^4.17.21", + "markdown-to-jsx": "7.3.2", + "nats": "^2.24.0", + "node-fetch": "3.3.0", + "openai": "^4.24.1", + "prettier": "3.1.1", + "prettier-plugin-tailwindcss": "0.5.11", + "react": "^18.2.0", + "react-apexcharts": "^1.4.1", + "react-hot-toast": "^2.4.1", + "react-icons": "4.11.0", + "stripe": "11.15.0", + "tailwind-merge": "^2.2.1", + "uuid": "^9.0.1", + "wasp": "file:.wasp/out/sdk/wasp", + "react-textarea-autosize": "^8.5.3", + "zod": "3.22.4", + "react-select": "5.8.0", + "@chakra-ui/react": "2.8.2" + }, + "devDependencies": { + "@types/express": "^4.17.13", + "@types/react": "^18.0.37", + "@types/react-router-dom": "^5.3.3", + "@vitest/coverage-v8": "^1.6.0", + "prisma": "4.16.2", + "typescript": "^5.1.0", + "vite": "^5.1.7" + } +} diff --git a/app/postcss.config.cjs b/app/postcss.config.cjs new file mode 100644 index 00000000..12a703d9 --- /dev/null +++ b/app/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/app/pretend_nats_client.ts b/app/pretend_nats_client.ts new file mode 100644 index 00000000..cce46159 --- /dev/null +++ b/app/pretend_nats_client.ts @@ -0,0 +1,58 @@ +// import { connect, consumerOpts, JSONCodec } from 'nats'; +// import { v4 as uuidv4 } from 'uuid'; + +// const NATS_URL = process.env['NATS_URL']; +// console.log(`NATS_URL=${NATS_URL}`); + +// async function generateClientId(): Promise { +// return uuidv4(); +// } + +// async function main() { +// try { +// if (!NATS_URL) { +// throw new Error('NATS_URL is not defined'); +// } +// const nc = await connect({ servers: NATS_URL }); +// console.log(`connected to ${nc.getServer()}`); + +// const js = nc.jetstream(); +// const jc = JSONCodec(); +// const clientId = await generateClientId(); + +// const registerSubject = `register.${clientId}`; +// const pingSubject = `ping.${clientId}`; +// const pongSubject = `pong.${clientId}`; + +// // Subscribe to messages +// const opts = consumerOpts(); +// opts.orderedConsumer(); +// const sub = await js.subscribe(pongSubject, opts); +// (async () => { +// for await (const m of sub) { +// const jm = jc.decode(m.data); +// console.log(`Received message: ${JSON.stringify(jm)}`); +// } +// })() +// .then(() => { +// nc.close(); +// }) +// .catch((err) => { +// console.error(`Error: ${err}`); +// }); + +// await js.publish(registerSubject, jc.encode({ client_id: clientId })); +// await new Promise((resolve) => setTimeout(resolve, 3000)); +// await js.publish(pingSubject, jc.encode({ msg: 'ping' })); +// } catch (err: any) { +// console.error(`Error: ${err}`); +// if (err.code) { +// console.error(`Error code: ${err.code}`); +// } +// if (err.chainedError) { +// console.error(`Chained error: ${err.chainedError}`); +// } +// } +// } + +// main(); diff --git a/app/public/.gitkeep b/app/public/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/app/public/favicon.ico b/app/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2abdcb0774ea267227a256303e87ab1bb0a45c03 GIT binary patch literal 243998 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 literal 0 HcmV?d00001 diff --git a/app/public/fonts/Roboto-Light.ttf b/app/public/fonts/Roboto-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e7307e72c5e7bced5d36c776d0986bf71b605f15 GIT binary patch literal 167000 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 T&&O!b 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

1!1exG)EK6u~BkmExnKuQI2?mS0J2 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 Og7zwfTI$9`zx;34o!sdF literal 0 HcmV?d00001 diff --git a/app/public/fonts/Roboto-Regular.ttf b/app/public/fonts/Roboto-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ddf4bfacb396e97546364ccfeeb9c31dfaea4c25 GIT binary patch literal 168260 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

S&jh1n&JeeMOkU4{=4@cYr6k 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≤FHXCuU9Qce=@vmZ{%9^5??OaVQJ8!4u8-w;yt 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 { + if (!document.body.classList.contains('server-error')) { + document.body.classList.add('server-error'); + } +}; + +const removeServerErrorClass = () => { + if (document.body.classList.contains('server-error')) { + document.body.classList.remove('server-error'); + } +}; + +/** + * use this component to wrap all child components + * this is useful for templates, themes, and context + */ +export default function App({ children }: { children: ReactNode }) { + const location = useLocation(); + const [showTosAndMarketingEmailsModal, setShowTosAndMarketingEmailsModal] = useState(false); + const [isUserModelSetupCalled, setIsUserModelSetupCalled] = useState(false); + const { data: user, isError, isLoading } = useAuth(); + + const shouldDisplayAppNavBar = useMemo(() => { + return location.pathname !== '/'; //&& location.pathname !== '/login' && location.pathname !== '/signup'; + }, [location]); + + const isAdminDashboard = useMemo(() => { + return location.pathname.startsWith('/admin'); + }, [location]); + + const isCheckoutPage = useMemo(() => { + return location.pathname.startsWith('/checkout'); + }, [location]); + + const isAccountPage = useMemo(() => { + return location.pathname.startsWith('/account'); + }, [location]); + + const isPlayGroundPage = useMemo(() => { + return location.pathname.startsWith('/playground'); + }, [location]); + + const isBuildPage = useMemo(() => { + return location.pathname.startsWith('/build'); + }, [location]); + + useEffect(() => { + const handleUserSetup = async () => { + if (user) { + if (!user.isSignUpComplete) { + if (user.hasAcceptedTos) { + updateCurrentUser({ + isSignUpComplete: true, + }); + setShowTosAndMarketingEmailsModal(false); + } else { + const hasAcceptedTos = localStorage.getItem('hasAcceptedTos') === 'true'; + const hasSubscribedToMarketingEmails = localStorage.getItem('hasSubscribedToMarketingEmails') === 'true'; + if (!hasAcceptedTos) { + setShowTosAndMarketingEmailsModal(true); + } else { + updateCurrentUser({ + isSignUpComplete: true, + hasAcceptedTos: hasAcceptedTos, + hasSubscribedToMarketingEmails: hasSubscribedToMarketingEmails, + }); + setShowTosAndMarketingEmailsModal(false); + } + } + } else { + if (!user.isSetUpComplete && !isUserModelSetupCalled) { + setIsUserModelSetupCalled(true); + try { + await userModelSetup(); + console.log('userModelSetup done!'); + } catch (error) { + console.log('Error in userModelSetup!'); + } + } + setShowTosAndMarketingEmailsModal(false); + const lastSeenAt = new Date(user.lastActiveTimestamp); + const today = new Date(); + if (today.getTime() - lastSeenAt.getTime() > 5 * 60 * 1000) { + updateCurrentUser({ lastActiveTimestamp: today }); + } + } + } + }; + handleUserSetup(); + }, [user, isUserModelSetupCalled]); + + useEffect(() => { + if (location.hash) { + const id = location.hash.replace('#', ''); + const element = document.getElementById(id); + if (element) { + element.scrollIntoView(); + } + } + }, [location]); + + return ( + <> +

+ + ); +} + +const FooterWrapper: React.FC = () => { + return ( +
+
+ ); +}; diff --git a/app/src/client/Main.css b/app/src/client/Main.css new file mode 100644 index 00000000..03c26e55 --- /dev/null +++ b/app/src/client/Main.css @@ -0,0 +1,448 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@font-face { + font-family: "Panton-SemiBold"; + src: url("/fonts/Panton-SemiBold.woff") format("woff"); +} + +@font-face { + font-family: "Rubik-Medium"; + src: url("/fonts/Rubik-Medium.ttf") format("truetype"); +} + +@font-face { + font-family: "RobotoMono-Regular"; + src: url("/fonts/RobotoMono-Regular.ttf") format("truetype"); +} + +@font-face { + font-family: "Roboto-Light"; + src: url("/fonts/Roboto-Light.ttf") format("truetype"); +} + +@font-face { + font-family: "Roboto-Regular"; + src: url("/fonts/Roboto-Regular.ttf") format("truetype"); +} + +body { + margin: 0; + /* font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; */ + font-family:"Roboto-Regular"; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", + monospace; +} + + +.toc-marketing-checkbox-wrapper .checkbox-container { + padding-left: 22px; + display: block; + position: relative; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +/* Hide the browser's default checkbox */ +.toc-marketing-checkbox-wrapper input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; +} +/* Create a custom checkbox */ +.toc-marketing-checkbox-wrapper .checkmark { + position: absolute; + top: 2px; + left: 0; + height: 13px; + width: 13px; + background-color: #eae4d9; +} + +.toc-marketing-checkbox-wrapper.light .checkmark { + background-color: #fff; +} + +/* On mouse-over, add a grey background color */ +.toc-marketing-checkbox-wrapper .checkbox-container:hover input ~ .checkmark { + background-color: #eae4d9; +} +.toc-marketing-checkbox-wrapper.light .checkbox-container:hover input ~ .checkmark { + background-color: #fff; +} + + +/* When the checkbox is checked, add a blue background */ +.toc-marketing-checkbox-wrapper .checkbox-container input:checked ~ .checkmark { + background-color: #6faabc; +} +.toc-marketing-checkbox-wrapper.light .checkbox-container input:checked ~ .checkmark { + background-color: #fff; +} + +/* Create the checkmark/indicator (hidden when not checked) */ +.toc-marketing-checkbox-wrapper .checkmark:after { + content: ""; + position: absolute; + display: none; +} + +/* Show the checkmark when checked */ +.toc-marketing-checkbox-wrapper .checkbox-container input:checked ~ .checkmark:after { + display: block; +} + +/* Style the checkmark/indicator */ +.toc-marketing-checkbox-wrapper .checkbox-container .checkmark:after { + left: 4px; + top: 0px; + width: 6px; + height: 11px; + border: solid #eae4d9; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +.toc-marketing-checkbox-wrapper.light .checkbox-container .checkmark:after { + border: solid #6faabc; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.toc-marketing-container{ + -webkit-transition: max-height 0.5s; + -moz-transition: max-height 0.5s; + -ms-transition: max-height 0.5s; + -o-transition: max-height 0.5s; + transition: max-height 0.5s; + overflow: hidden; +} + +.accordion-wrapper { + border-radius: 5px; + margin-bottom: 0px; + margin-top: -7px; +} + +.accordion-title { + padding: 10px 15px; + cursor: pointer; +} + +/* .accordion-title.open { + background: #ddd; +} */ + +.accordion-item { + max-height: 0; + overflow: hidden; + transition: max-height 0.3s ease-in-out; +} + +.accordion-item.collapsed { + max-height: 100vh; +} + +.accordion-content { + padding: 10px 15px; + /* background: #fff; + border-bottom: 1px solid #ddd; */ +} + +/* Google login button */ +.gsi-material-button { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -webkit-appearance: none; + background-color: WHITE; + background-image: none; + border: 1px solid #747775; + -webkit-border-radius: 4px; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #1f1f1f; + cursor: pointer; + font-family: 'Roboto', arial, sans-serif; + font-size: 14px; + height: 40px; + letter-spacing: 0.25px; + outline: none; + overflow: hidden; + padding: 0 12px; + position: relative; + text-align: center; + -webkit-transition: background-color .218s, border-color .218s, box-shadow .218s; + transition: background-color .218s, border-color .218s, box-shadow .218s; + vertical-align: middle; + white-space: nowrap; + width: auto; + max-width: 400px; + min-width: min-content; +} + +.gsi-material-button .gsi-material-button-icon { + height: 20px; + margin-right: 12px; + min-width: 20px; + width: 20px; +} + +.gsi-material-button .gsi-material-button-content-wrapper { + -webkit-align-items: center; + align-items: center; + display: flex; + -webkit-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + flex-wrap: nowrap; + height: 100%; + justify-content: center; + position: relative; + width: 100%; +} + +.gsi-material-button .gsi-material-button-contents { + -webkit-flex-grow: 0; + flex-grow: 0; + font-family: 'Roboto', arial, sans-serif; + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: top; +} + +.gsi-material-button .gsi-material-button-state { + -webkit-transition: opacity .218s; + transition: opacity .218s; + bottom: 0; + left: 0; + opacity: 0; + position: absolute; + right: 0; + top: 0; +} + +.gsi-material-button:disabled { + cursor: default; + background-color: #ffffff61; + border-color: #1f1f1f1f; +} + +.gsi-material-button:disabled .gsi-material-button-contents { + opacity: 38%; +} + +.gsi-material-button:disabled .gsi-material-button-icon { + opacity: 38%; +} + +.gsi-material-button:not(:disabled):active .gsi-material-button-state, +.gsi-material-button:not(:disabled):focus .gsi-material-button-state { + background-color: #303030; + opacity: 12%; +} + +.gsi-material-button:not(:disabled):hover { + -webkit-box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30), 0 1px 3px 1px rgba(60, 64, 67, .15); + box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30), 0 1px 3px 1px rgba(60, 64, 67, .15); +} + +.gsi-material-button:not(:disabled):hover .gsi-material-button-state { + background-color: #303030; + opacity: 8%; +} +/* Google login button */ + +.social-icons-wrapper .discord-link:before { + background-color: #8c9fae; + content: ""; + display: flex; + height: 24px; + -webkit-mask-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJHcmFwaGljX0VsZW1lbnRzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxMzUgMTM1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMzUgMTM1IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MHtmaWxsOiNmZmZ9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjcuNSAwQzMwLjIgMCAwIDMwLjIgMCA2Ny41UzMwLjIgMTM1IDY3LjUgMTM1IDEzNSAxMDQuOCAxMzUgNjcuNSAxMDQuOCAwIDY3LjUgMHptNDMuNCA4OS43Yy02LjYgNS0xNC4xIDguNy0yMiAxMS4xLTEuOC0yLjQtMy40LTUtNC43LTcuNiAyLjYtMSA1LjEtMi4yIDcuNC0zLjYtLjYtLjUtMS4yLS45LTEuOC0xLjQtMTQgNi42LTMwLjEgNi42LTQ0LjEgMC0uNi41LTEuMi45LTEuOCAxLjQgMi40IDEuNCA0LjkgMi42IDcuNCAzLjUtMS40IDIuNy0yLjkgNS4yLTQuNyA3LjctNy45LTIuNC0xNS40LTYuMi0yMi0xMS4xQzIzIDczLjUgMjYuMSA1NyAzNy40IDQwLjFjNS43LTIuNiAxMS44LTQuNSAxOC01LjYuOSAxLjUgMS43IDMuMSAyLjQgNC43IDYuNi0xIDEzLjMtMSAxOS45IDAgLjYtMS41IDEuNS0zLjMgMi4zLTQuNyA2LjIgMS4xIDEyLjIgMi45IDE4IDUuNSA5LjggMTQuNiAxNC43IDMwLjkgMTIuOSA0OS43eiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01My4yIDYyLjJjLTQuNCAwLTcuOCA0LTcuOCA4LjhzMy41IDguOCA3LjggOC44YzQuNCAwIDcuOC00IDcuOC04LjguMS00LjktMy40LTguOC03LjgtOC44ek04Mi4xIDYyLjJjLTQuNCAwLTcuOCA0LTcuOCA4LjhzMy41IDguOCA3LjggOC44YzQuNCAwIDcuOC00IDcuOC04LjguMS00LjktMy40LTguOC03LjgtOC44eiIvPjwvc3ZnPg==); + mask-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJHcmFwaGljX0VsZW1lbnRzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAxMzUgMTM1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMzUgMTM1IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnN0MHtmaWxsOiNmZmZ9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjcuNSAwQzMwLjIgMCAwIDMwLjIgMCA2Ny41UzMwLjIgMTM1IDY3LjUgMTM1IDEzNSAxMDQuOCAxMzUgNjcuNSAxMDQuOCAwIDY3LjUgMHptNDMuNCA4OS43Yy02LjYgNS0xNC4xIDguNy0yMiAxMS4xLTEuOC0yLjQtMy40LTUtNC43LTcuNiAyLjYtMSA1LjEtMi4yIDcuNC0zLjYtLjYtLjUtMS4yLS45LTEuOC0xLjQtMTQgNi42LTMwLjEgNi42LTQ0LjEgMC0uNi41LTEuMi45LTEuOCAxLjQgMi40IDEuNCA0LjkgMi42IDcuNCAzLjUtMS40IDIuNy0yLjkgNS4yLTQuNyA3LjctNy45LTIuNC0xNS40LTYuMi0yMi0xMS4xQzIzIDczLjUgMjYuMSA1NyAzNy40IDQwLjFjNS43LTIuNiAxMS44LTQuNSAxOC01LjYuOSAxLjUgMS43IDMuMSAyLjQgNC43IDYuNi0xIDEzLjMtMSAxOS45IDAgLjYtMS41IDEuNS0zLjMgMi4zLTQuNyA2LjIgMS4xIDEyLjIgMi45IDE4IDUuNSA5LjggMTQuNiAxNC43IDMwLjkgMTIuOSA0OS43eiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01My4yIDYyLjJjLTQuNCAwLTcuOCA0LTcuOCA4LjhzMy41IDguOCA3LjggOC44YzQuNCAwIDcuOC00IDcuOC04LjguMS00LjktMy40LTguOC03LjgtOC44ek04Mi4xIDYyLjJjLTQuNCAwLTcuOCA0LTcuOCA4LjhzMy41IDguOCA3LjggOC44YzQuNCAwIDcuOC00IDcuOC04LjguMS00LjktMy40LTguOC03LjgtOC44eiIvPjwvc3ZnPg==); + width: 24px; +} + +.social-icons-wrapper .github-link:before { + background-color: #8c9fae; + content: ""; + display: flex; + height: 24px; + -webkit-mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMzUgMTMzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMzUgMTMzIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNMTM1IDY3LjVDMTM1IDMwLjIgMTA0LjggMCA2Ny41IDBTMCAzMC4yIDAgNjcuNWMwIDMxLjYgMjEuNyA1OC4xIDUxIDY1LjUgMC0uMi4xLS40LjEtLjYgMC0xLjUtLjEtNi44LS4xLTEyLjMtMTguNCA0LTIyLjItNy45LTIyLjItNy45LTMtNy43LTcuMy05LjctNy4zLTkuNy02LTQuMS40LTQuMS40LTQuMSA2LjcuNCAxMC4yIDYuOCAxMC4yIDYuOCA1LjkgMTAuMSAxNS40IDcuMyAxOS4yIDUuNS41LTQuMyAyLjMtNy4zIDQuMi04LjktMTQuNi0xLjUtMzAtNy4zLTMwLTMyLjggMC03LjMgMi42LTEzLjIgNi44LTE3LjgtLjctMS43LTMtOC41LjctMTcuNiAwIDAgNS42LTEuOCAxOC4xIDYuOCA1LjQtMS41IDEwLjktMi4yIDE2LjUtMi4yczExLjMuOCAxNi41IDIuMmMxMi42LTguNiAxOC4xLTYuOCAxOC4xLTYuOCAzLjYgOS4xIDEuMyAxNiAuNyAxNy42IDQuMyA0LjYgNi44IDEwLjYgNi44IDE3LjggMCAyNS41LTE1LjQgMzEuMS0zMC4yIDMyLjggMi40IDIuMSA0LjUgNi4xIDQuNSAxMi4zIDAgOC45LS4xIDE2LjEtLjEgMTguMyAwIC4yIDAgLjQuMS43IDI5LjItNy40IDUxLTMzLjkgNTEtNjUuNnoiIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmZmYiLz48L3N2Zz4=); + mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMzUgMTMzIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMzUgMTMzIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNMTM1IDY3LjVDMTM1IDMwLjIgMTA0LjggMCA2Ny41IDBTMCAzMC4yIDAgNjcuNWMwIDMxLjYgMjEuNyA1OC4xIDUxIDY1LjUgMC0uMi4xLS40LjEtLjYgMC0xLjUtLjEtNi44LS4xLTEyLjMtMTguNCA0LTIyLjItNy45LTIyLjItNy45LTMtNy43LTcuMy05LjctNy4zLTkuNy02LTQuMS40LTQuMS40LTQuMSA2LjcuNCAxMC4yIDYuOCAxMC4yIDYuOCA1LjkgMTAuMSAxNS40IDcuMyAxOS4yIDUuNS41LTQuMyAyLjMtNy4zIDQuMi04LjktMTQuNi0xLjUtMzAtNy4zLTMwLTMyLjggMC03LjMgMi42LTEzLjIgNi44LTE3LjgtLjctMS43LTMtOC41LjctMTcuNiAwIDAgNS42LTEuOCAxOC4xIDYuOCA1LjQtMS41IDEwLjktMi4yIDE2LjUtMi4yczExLjMuOCAxNi41IDIuMmMxMi42LTguNiAxOC4xLTYuOCAxOC4xLTYuOCAzLjYgOS4xIDEuMyAxNiAuNyAxNy42IDQuMyA0LjYgNi44IDEwLjYgNi44IDE3LjggMCAyNS41LTE1LjQgMzEuMS0zMC4yIDMyLjggMi40IDIuMSA0LjUgNi4xIDQuNSAxMi4zIDAgOC45LS4xIDE2LjEtLjEgMTguMyAwIC4yIDAgLjQuMS43IDI5LjItNy40IDUxLTMzLjkgNTEtNjUuNnoiIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNmZmYiLz48L3N2Zz4=); + width: 24px; +} + +.social-icons-wrapper .discord-link:hover, .social-icons-wrapper .github-link:hover { + opacity: 0.6; +} + +@layer utilities { + /* Chrome, Safari and Opera */ + .no-scrollbar::-webkit-scrollbar { + display: none; + } + + .no-scrollbar { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ + } + + .chat-height { + @apply h-[calc(100vh_-_8.125rem)] lg:h-[calc(100vh_-_5.625rem)]; + } + .inbox-height { + @apply h-[calc(100vh_-_8.125rem)] lg:h-[calc(100vh_-_5.625rem)]; + } +} + + + +/* third-party libraries CSS */ + +.tableCheckbox:checked ~ div span { + @apply opacity-100; +} +.tableCheckbox:checked ~ div { + @apply bg-primary border-primary; +} + +.apexcharts-legend-text { + @apply !text-body dark:!text-bodydark; +} +.apexcharts-text { + @apply !fill-body dark:!fill-bodydark; +} +.apexcharts-xcrosshairs { + @apply !fill-stroke dark:!fill-strokedark; +} +.apexcharts-gridline { + @apply !stroke-stroke dark:!stroke-strokedark; +} +.apexcharts-series.apexcharts-pie-series path { + @apply dark:!stroke-transparent; +} +.apexcharts-legend-series { + @apply !inline-flex gap-1.5; +} +.apexcharts-tooltip.apexcharts-theme-light { + @apply dark:!bg-boxdark dark:!border-strokedark; +} +.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title { + @apply dark:!bg-meta-4 dark:!border-strokedark; +} +.apexcharts-xaxistooltip, .apexcharts-yaxistooltip { + @apply dark:!bg-meta-4 dark:!border-meta-4 dark:!text-bodydark1; +} +.apexcharts-xaxistooltip-bottom:after { + @apply dark:!border-b-meta-4; +} +.apexcharts-xaxistooltip-bottom:before { + @apply dark:!border-b-meta-4; + +} + +.flatpickr-day.selected { + @apply bg-primary border-primary hover:bg-primary hover:border-primary; +} +.flatpickr-months .flatpickr-prev-month:hover svg, +.flatpickr-months .flatpickr-next-month:hover svg { + @apply fill-primary; +} +.flatpickr-calendar.arrowTop:before { + @apply dark:!border-b-boxdark; +} +.flatpickr-calendar.arrowTop:after { + @apply dark:!border-b-boxdark; +} +.flatpickr-calendar { + @apply dark:!bg-boxdark dark:!text-bodydark dark:!shadow-8 !p-6 2xsm:!w-auto; +} +.flatpickr-day { + @apply dark:!text-bodydark; +} +.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month { + @apply !top-7 dark:!text-white dark:!fill-white; +} +.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, .flatpickr-months .flatpickr-next-month.flatpickr-prev-month { + @apply !left-7 +} +.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, .flatpickr-months .flatpickr-next-month.flatpickr-next-month { + @apply !right-7 +} +span.flatpickr-weekday, +.flatpickr-months .flatpickr-month { + @apply dark:!text-white dark:!fill-white; +} +.flatpickr-day.inRange { + @apply dark:!bg-meta-4 dark:!border-meta-4 dark:!shadow-7; +} +.flatpickr-day.selected, .flatpickr-day.startRange, +.flatpickr-day.selected, .flatpickr-day.endRange { + @apply dark:!text-white; +} + +.map-btn .jvm-zoom-btn { + @apply flex items-center justify-center w-7.5 h-7.5 rounded border border-stroke dark:border-strokedark hover:border-primary dark:hover:border-primary bg-white hover:bg-primary text-body hover:text-white dark:text-bodydark dark:hover:text-white text-2xl leading-none px-0 pt-0 pb-0.5; +} +.mapOne .jvm-zoom-btn { + @apply left-auto top-auto bottom-0; +} +.mapOne .jvm-zoom-btn.jvm-zoomin { + @apply right-10; +} +.mapOne .jvm-zoom-btn.jvm-zoomout { + @apply right-0; +} +.mapTwo .jvm-zoom-btn { + @apply top-auto bottom-0; +} +.mapTwo .jvm-zoom-btn.jvm-zoomin { + @apply left-0; +} +.mapTwo .jvm-zoom-btn.jvm-zoomout { + @apply left-10; +} + +.taskCheckbox:checked ~ .box span { + @apply opacity-100; +} +.taskCheckbox:checked ~ p { + @apply line-through; +} +.taskCheckbox:checked ~ .box { + @apply bg-primary border-primary dark:border-primary; +} + +.custom-input-date::-webkit-calendar-picker-indicator { + background-position: center; + background-repeat: no-repeat; + background-size: 20px; +} +.custom-input-date-1::-webkit-calendar-picker-indicator { + background-image: url(./images/icon/icon-calendar.svg); +} +.custom-input-date-2::-webkit-calendar-picker-indicator { + background-image: url(./images/icon/icon-arrow-down.svg); +} + +[x-cloak] { + display: none !important; +} diff --git a/app/src/client/admin/common/Loader/index.tsx b/app/src/client/admin/common/Loader/index.tsx new file mode 100644 index 00000000..4221fda7 --- /dev/null +++ b/app/src/client/admin/common/Loader/index.tsx @@ -0,0 +1,9 @@ +const Loader = () => { + return ( +
+
+
+ ); +}; + +export default Loader; diff --git a/app/src/client/admin/common/types.ts b/app/src/client/admin/common/types.ts new file mode 100644 index 00000000..0df99731 --- /dev/null +++ b/app/src/client/admin/common/types.ts @@ -0,0 +1,3 @@ +import { type DailyStats } from 'wasp/entities'; + +export type DailyStatsProps = { dailyStats?: DailyStats; weeklyStats?: DailyStats[]; isLoading?: boolean }; diff --git a/app/src/client/admin/components/BarChart.tsx b/app/src/client/admin/components/BarChart.tsx new file mode 100644 index 00000000..2ab5f762 --- /dev/null +++ b/app/src/client/admin/components/BarChart.tsx @@ -0,0 +1,146 @@ +import { ApexOptions } from 'apexcharts'; +import React, { useState } from 'react'; +import ReactApexChart from 'react-apexcharts'; + +interface BarChartState { + series: { data: number[] }[]; +} + +const BarChart: React.FC = () => { + const [state, setState] = useState({ + series: [ + { + data: [ + 168, 385, 201, 298, 187, 195, 291, 110, 215, 390, 280, 112, 123, 212, + 270, 190, 310, 115, 90, 380, 112, 223, 292, 170, 290, 110, 115, 290, + 380, 312, + ], + }, + ], + }); + + const options: ApexOptions = { + colors: ['#3C50E0'], + chart: { + fontFamily: 'Rubik-Medium, sans-serif', + type: 'bar', + height: 350, + toolbar: { + show: false, + }, + }, + plotOptions: { + bar: { + horizontal: false, + columnWidth: '55%', + // endingShape: "rounded", + borderRadius: 2, + }, + }, + dataLabels: { + enabled: false, + }, + stroke: { + show: true, + width: 4, + colors: ['transparent'], + }, + xaxis: { + categories: [ + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12', + '13', + '14', + '15', + '16', + '17', + '18', + '19', + '20', + '21', + '22', + '23', + '24', + '25', + '26', + '27', + '28', + '29', + '30', + ], + axisBorder: { + show: false, + }, + axisTicks: { + show: false, + }, + }, + legend: { + show: true, + position: 'top', + horizontalAlign: 'left', + fontFamily: 'inter', + + markers: { + radius: 99, + }, + }, + // yaxis: { + // title: false, + // }, + grid: { + yaxis: { + lines: { + show: false, + }, + }, + }, + fill: { + opacity: 1, + }, + + tooltip: { + x: { + show: false, + }, + // y: { + // formatter: function (val) { + // return val; + // }, + // }, + }, + }; + + return ( +
+
+

+ Visitors Analytics +

+
+ +
+
+ +
+
+
+ ); +}; + +export default BarChart; diff --git a/app/src/client/admin/components/Breadcrumb.tsx b/app/src/client/admin/components/Breadcrumb.tsx new file mode 100644 index 00000000..3e3a6131 --- /dev/null +++ b/app/src/client/admin/components/Breadcrumb.tsx @@ -0,0 +1,24 @@ +import { Link } from 'react-router-dom'; +interface BreadcrumbProps { + pageName: string; +} +const Breadcrumb = ({ pageName }: BreadcrumbProps) => { + return ( +
+

+ {pageName} +

+ + +
+ ); +}; + +export default Breadcrumb; diff --git a/app/src/client/admin/components/CheckboxOne.tsx b/app/src/client/admin/components/CheckboxOne.tsx new file mode 100644 index 00000000..7adcd697 --- /dev/null +++ b/app/src/client/admin/components/CheckboxOne.tsx @@ -0,0 +1,39 @@ +import { useState } from 'react'; +import { cn } from '../../../shared/utils'; + +const CheckboxOne = () => { + const [isChecked, setIsChecked] = useState(false); + + return ( +
+ +
+ ); +}; + +export default CheckboxOne; diff --git a/app/src/client/admin/components/CheckboxTwo.tsx b/app/src/client/admin/components/CheckboxTwo.tsx new file mode 100644 index 00000000..11b9160c --- /dev/null +++ b/app/src/client/admin/components/CheckboxTwo.tsx @@ -0,0 +1,48 @@ +import { useState } from 'react'; +import { cn } from '../../../shared/utils'; + +const CheckboxTwo = () => { + const [enabled, setEnabled] = useState(false); + return ( +
+ +
+ ); +}; + +export default CheckboxTwo; diff --git a/app/src/client/admin/components/DarkModeSwitcher.tsx b/app/src/client/admin/components/DarkModeSwitcher.tsx new file mode 100644 index 00000000..62cc6bdb --- /dev/null +++ b/app/src/client/admin/components/DarkModeSwitcher.tsx @@ -0,0 +1,58 @@ +import { cn } from '../../../shared/utils'; +import useColorMode from '../../hooks/useColorMode'; + +const DarkModeSwitcher = () => { + const [colorMode, setColorMode] = useColorMode(); + + return ( +
+ +
+ ); +}; + +export default DarkModeSwitcher; diff --git a/app/src/client/admin/components/DataStats.tsx b/app/src/client/admin/components/DataStats.tsx new file mode 100644 index 00000000..73910ad6 --- /dev/null +++ b/app/src/client/admin/components/DataStats.tsx @@ -0,0 +1,102 @@ +const DataStats = () => { + return ( +
+
+
+
+

+ $4,350 +

+

Unique Visitors

+
+
+ + + + 18% +
+
+
+
+

+ 55.9K +

+

Total Pageviews

+
+
+ + + + 25% +
+
+
+
+

+ 54% +

+

Bounce Rate

+
+
+ + + + 7% +
+
+
+
+

+ 2m 56s +

+

Visit Duration

+
+
+ + + + 12% +
+
+
+
+ ); +}; + +export default DataStats; diff --git a/app/src/client/admin/components/DropdownEditDelete.tsx b/app/src/client/admin/components/DropdownEditDelete.tsx new file mode 100644 index 00000000..cd2f9e41 --- /dev/null +++ b/app/src/client/admin/components/DropdownEditDelete.tsx @@ -0,0 +1,117 @@ +import { useEffect, useRef, useState } from 'react'; +import { cn } from '../../../shared/utils'; + +const DropdownDefault = () => { + const [dropdownOpen, setDropdownOpen] = useState(false); + + const trigger = useRef(null); + const dropdown = useRef(null); + + // close on click outside + useEffect(() => { + const clickHandler = ({ target }: MouseEvent) => { + if (!dropdown.current) return; + if (!dropdownOpen || dropdown.current.contains(target) || trigger.current.contains(target)) return; + setDropdownOpen(false); + }; + document.addEventListener('click', clickHandler); + return () => document.removeEventListener('click', clickHandler); + }); + + // close if the esc key is pressed + useEffect(() => { + const keyHandler = ({ keyCode }: KeyboardEvent) => { + if (!dropdownOpen || keyCode !== 27) return; + setDropdownOpen(false); + }; + document.addEventListener('keydown', keyHandler); + return () => document.removeEventListener('keydown', keyHandler); + }); + + return ( +
+ +
setDropdownOpen(true)} + onBlur={() => setDropdownOpen(false)} + className={cn( + 'absolute right-0 top-full z-40 w-40 space-y-1 rounded-sm border border-stroke bg-white p-1.5 shadow-default dark:border-strokedark dark:bg-boxdark', + { + block: dropdownOpen, + hidden: !dropdownOpen, + } + )} + > + + +
+
+ ); +}; + +export default DropdownDefault; diff --git a/app/src/client/admin/components/Header.tsx b/app/src/client/admin/components/Header.tsx new file mode 100644 index 00000000..c630df0b --- /dev/null +++ b/app/src/client/admin/components/Header.tsx @@ -0,0 +1,97 @@ +import { type AuthUser } from 'wasp/auth/types'; +import DarkModeSwitcher from './DarkModeSwitcher'; +import MessageButton from './MessageButton'; +import DropdownUser from '../../components/DropdownUser'; +import { cn } from '../../../shared/utils'; + +const Header = (props: { + sidebarOpen: string | boolean | undefined; + setSidebarOpen: (arg0: boolean) => void; + user?: AuthUser | null; +}) => { + return ( +
+
+
+ {/* */} + + + + {/* */} +
+ +
    + {/* */} + {/* */} + {/* */} + + {/* */} + + {/* */} +
+ +
+ {/* */} + {!!props.user && } + {/* */} +
+
+
+ ); +}; + +export default Header; diff --git a/app/src/client/admin/components/MessageButton.tsx b/app/src/client/admin/components/MessageButton.tsx new file mode 100644 index 00000000..774ba924 --- /dev/null +++ b/app/src/client/admin/components/MessageButton.tsx @@ -0,0 +1,45 @@ +import { Link } from 'wasp/client/router'; + +const MessageButton = () => { + return ( +
  • + + + {/* TODO: only animate if there are new messages */} + + + + + + + + + + +
  • + ); +}; + +export default MessageButton; diff --git a/app/src/client/admin/components/PieChart.tsx b/app/src/client/admin/components/PieChart.tsx new file mode 100644 index 00000000..4a7042e5 --- /dev/null +++ b/app/src/client/admin/components/PieChart.tsx @@ -0,0 +1,150 @@ +import { ApexOptions } from 'apexcharts'; +import React, { useState } from 'react'; +import ReactApexChart from 'react-apexcharts'; + +interface PieChartState { + series: number[]; +} + +const options: ApexOptions = { + chart: { + type: 'donut', + }, + colors: ['#10B981', '#375E83', '#259AE6', '#FFA70B'], + labels: ['Remote', 'Hybrid', 'Onsite', 'Leave'], + legend: { + show: true, + position: 'bottom', + }, + + plotOptions: { + pie: { + donut: { + size: '65%', + background: 'transparent', + }, + }, + }, + dataLabels: { + enabled: false, + }, + responsive: [ + { + breakpoint: 2600, + options: { + chart: { + width: 380, + }, + }, + }, + { + breakpoint: 640, + options: { + chart: { + width: 200, + }, + }, + }, + ], +}; + +const PieChart: React.FC = () => { + const [state, setState] = useState({ + series: [65, 34, 12, 56], + }); + + return ( +
    +
    +
    +
    + Visitors Analytics +
    +
    +
    +
    + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    + +

    + Desktop + 65% +

    +
    +
    +
    +
    + +

    + Tablet + 34% +

    +
    +
    +
    +
    + +

    + Mobile + 45% +

    +
    +
    +
    +
    + +

    + Unknown + 12% +

    +
    +
    +
    +
    + ); +}; + +export default PieChart; diff --git a/app/src/client/admin/components/RevenueAndProfitChart.tsx b/app/src/client/admin/components/RevenueAndProfitChart.tsx new file mode 100644 index 00000000..98bd8f90 --- /dev/null +++ b/app/src/client/admin/components/RevenueAndProfitChart.tsx @@ -0,0 +1,242 @@ +import { ApexOptions } from 'apexcharts'; +import { useEffect, useMemo, useState } from 'react'; +import ReactApexChart from 'react-apexcharts'; +import { DailyStatsProps } from '../common/types'; + +const options: ApexOptions = { + legend: { + show: false, + position: 'top', + horizontalAlign: 'left', + }, + colors: ['#3C50E0', '#80CAEE'], + chart: { + fontFamily: 'Rubik-Medium, sans-serif', + height: 335, + type: 'area', + dropShadow: { + enabled: true, + color: '#623CEA14', + top: 10, + blur: 4, + left: 0, + opacity: 0.1, + }, + + toolbar: { + show: false, + }, + }, + responsive: [ + { + breakpoint: 1024, + options: { + chart: { + height: 300, + }, + }, + }, + { + breakpoint: 1366, + options: { + chart: { + height: 350, + }, + }, + }, + ], + stroke: { + width: [2, 2], + curve: 'straight', + }, + // labels: { + // show: false, + // position: "top", + // }, + grid: { + xaxis: { + lines: { + show: true, + }, + }, + yaxis: { + lines: { + show: true, + }, + }, + }, + dataLabels: { + enabled: false, + }, + markers: { + size: 4, + colors: '#fff', + strokeColors: ['#3056D3', '#80CAEE'], + strokeWidth: 3, + strokeOpacity: 0.9, + strokeDashArray: 0, + fillOpacity: 1, + discrete: [], + hover: { + size: undefined, + sizeOffset: 5, + }, + }, + xaxis: { + type: 'category', + axisBorder: { + show: false, + }, + axisTicks: { + show: false, + }, + }, + yaxis: { + title: { + style: { + fontSize: '0px', + }, + }, + min: 0, + max: 100, + }, +}; + +interface ChartOneState { + series: { + name: string; + data: number[]; + }[]; +} + +const RevenueAndProfitChart = ({ weeklyStats, isLoading }: DailyStatsProps) => { + const dailyRevenueArray = useMemo(() => { + if (!!weeklyStats && weeklyStats?.length > 0) { + const sortedWeeks = weeklyStats?.sort((a, b) => { + return new Date(a.date).getTime() - new Date(b.date).getTime(); + }); + return sortedWeeks.map((stat) => stat.totalRevenue); + } + }, [weeklyStats]); + + const daysOfWeekArr = useMemo(() => { + if (!!weeklyStats && weeklyStats?.length > 0) { + const datesArr = weeklyStats?.map((stat) => { + // get day of week, month, and day of month + const dateArr = stat.date.toString().split(' '); + return dateArr.slice(0, 3).join(' '); + }); + return datesArr; + } + }, [weeklyStats]); + + const [state, setState] = useState({ + series: [ + { + name: 'Profit', + data: [4, 7, 10, 11, 13, 14, 17], + }, + ], + }); + const [chartOptions, setChartOptions] = useState(options); + + useEffect(() => { + if (dailyRevenueArray && dailyRevenueArray.length > 0) { + setState((prevState) => { + // Check if a "Revenue" series already exists + const existingSeriesIndex = prevState.series.findIndex((series) => series.name === 'Revenue'); + + if (existingSeriesIndex >= 0) { + // Update existing "Revenue" series data + return { + ...prevState, + series: prevState.series.map((serie, index) => { + if (index === existingSeriesIndex) { + return { ...serie, data: dailyRevenueArray }; + } + return serie; + }), + }; + } else { + // Add "Revenue" series as it does not exist yet + return { + ...prevState, + series: [ + ...prevState.series, + { + name: 'Revenue', + data: dailyRevenueArray, + }, + ], + }; + } + }); + } + }, [dailyRevenueArray]); + + useEffect(() => { + if (!!daysOfWeekArr && daysOfWeekArr?.length > 0 && !!dailyRevenueArray && dailyRevenueArray?.length > 0) { + setChartOptions({ + ...options, + xaxis: { + ...options.xaxis, + categories: daysOfWeekArr, + }, + yaxis: { + ...options.yaxis, + // get the min & max values to the neareast hundred + max: Math.ceil(Math.max(...dailyRevenueArray) / 100) * 100, + min: Math.floor(Math.min(...dailyRevenueArray) / 100) * 100, + }, + }); + } + }, [daysOfWeekArr, dailyRevenueArray]); + + return ( +
    +
    +
    +
    + + + +
    +

    Total Profit

    +

    Last 7 Days

    +
    +
    +
    + + + +
    +

    Total Revenue

    +

    Last 7 Days

    +
    +
    +
    +
    +
    + + + +
    +
    +
    + +
    +
    + +
    +
    +
    + ); +}; + +export default RevenueAndProfitChart; diff --git a/app/src/client/admin/components/Sidebar.tsx b/app/src/client/admin/components/Sidebar.tsx new file mode 100644 index 00000000..5bd58b5d --- /dev/null +++ b/app/src/client/admin/components/Sidebar.tsx @@ -0,0 +1,527 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { NavLink, useLocation } from 'react-router-dom'; +import Logo from '../../static/logo.svg'; +import SidebarLinkGroup from './SidebarLinkGroup'; +import { cn } from '../../../shared/utils'; + +interface SidebarProps { + sidebarOpen: boolean; + setSidebarOpen: (arg: boolean) => void; +} + +const Sidebar = ({ sidebarOpen, setSidebarOpen }: SidebarProps) => { + const location = useLocation(); + const { pathname } = location; + + const trigger = useRef(null); + const sidebar = useRef(null); + + const storedSidebarExpanded = localStorage.getItem('sidebar-expanded'); + const [sidebarExpanded, setSidebarExpanded] = useState( + storedSidebarExpanded === null ? false : storedSidebarExpanded === 'true' + ); + + // close on click outside + useEffect(() => { + const clickHandler = ({ target }: MouseEvent) => { + if (!sidebar.current || !trigger.current) return; + if (!sidebarOpen || sidebar.current.contains(target) || trigger.current.contains(target)) return; + setSidebarOpen(false); + }; + document.addEventListener('click', clickHandler); + return () => document.removeEventListener('click', clickHandler); + }); + + // close if the esc key is pressed + useEffect(() => { + const keyHandler = ({ keyCode }: KeyboardEvent) => { + if (!sidebarOpen || keyCode !== 27) return; + setSidebarOpen(false); + }; + document.addEventListener('keydown', keyHandler); + return () => document.removeEventListener('keydown', keyHandler); + }); + + useEffect(() => { + localStorage.setItem('sidebar-expanded', sidebarExpanded.toString()); + if (sidebarExpanded) { + document.querySelector('body')?.classList.add('sidebar-expanded'); + } else { + document.querySelector('body')?.classList.remove('sidebar-expanded'); + } + }, [sidebarExpanded]); + + return ( + + ); +}; + +export default Sidebar; diff --git a/app/src/client/admin/components/SidebarLinkGroup.tsx b/app/src/client/admin/components/SidebarLinkGroup.tsx new file mode 100644 index 00000000..5330b12e --- /dev/null +++ b/app/src/client/admin/components/SidebarLinkGroup.tsx @@ -0,0 +1,21 @@ +import { ReactNode, useState } from 'react'; + +interface SidebarLinkGroupProps { + children: (handleClick: () => void, open: boolean) => ReactNode; + activeCondition: boolean; +} + +const SidebarLinkGroup = ({ + children, + activeCondition, +}: SidebarLinkGroupProps) => { + const [open, setOpen] = useState(activeCondition); + + const handleClick = () => { + setOpen(!open); + }; + + return
  • {children(handleClick, open)}
  • ; +}; + +export default SidebarLinkGroup; diff --git a/app/src/client/admin/components/SourcesTable.tsx b/app/src/client/admin/components/SourcesTable.tsx new file mode 100644 index 00000000..c05f5ba3 --- /dev/null +++ b/app/src/client/admin/components/SourcesTable.tsx @@ -0,0 +1,47 @@ +import { type PageViewSource } from 'wasp/entities'; + +const SourcesTable = ({ sources }: { sources: PageViewSource[] | undefined }) => { + return ( +
    +

    Top Sources

    + +
    +
    +
    +
    Source
    +
    +
    +
    Visitors
    +
    +
    +
    Sales
    +
    +
    + + {sources && sources.length > 0 ? ( + sources.map((source) => ( +
    +
    +

    {source.name}

    +
    + +
    +

    {source.visitors}

    +
    + +
    +

    --

    +
    +
    + )) + ) : ( +
    +

    No data to display

    +
    + )} +
    +
    + ); +}; + +export default SourcesTable; diff --git a/app/src/client/admin/components/SwitcherOne.tsx b/app/src/client/admin/components/SwitcherOne.tsx new file mode 100644 index 00000000..33a2e947 --- /dev/null +++ b/app/src/client/admin/components/SwitcherOne.tsx @@ -0,0 +1,33 @@ +import { type User } from 'wasp/entities'; +import { useState } from 'react'; +import { cn } from '../../../shared/utils'; + +const SwitcherOne = ({ user, updateUserById }: { user?: Partial; updateUserById?: any }) => { + const [enabled, setEnabled] = useState(user?.hasPaid || false); + + return ( +
    + +
    + ); +}; + +export default SwitcherOne; diff --git a/app/src/client/admin/components/SwitcherTwo.tsx b/app/src/client/admin/components/SwitcherTwo.tsx new file mode 100644 index 00000000..780a726c --- /dev/null +++ b/app/src/client/admin/components/SwitcherTwo.tsx @@ -0,0 +1,66 @@ +import { useState } from 'react'; +import { cn } from '../../../shared/utils'; + +const SwitcherTwo = () => { + const [enabled, setEnabled] = useState(false); + + return ( +
    + +
    + ); +}; + +export default SwitcherTwo; diff --git a/app/src/client/admin/components/TotalPaidViewsCard.tsx b/app/src/client/admin/components/TotalPaidViewsCard.tsx new file mode 100644 index 00000000..f729c553 --- /dev/null +++ b/app/src/client/admin/components/TotalPaidViewsCard.tsx @@ -0,0 +1,55 @@ +import { cn } from '../../../shared/utils'; +import { UpArrow, DownArrow } from '../images/icon/icons-arrows'; + +type PageViewsStats = { + totalPageViews: number | undefined; + prevDayViewsChangePercent: string | undefined; +}; + +const TotalPageViewsCard = ({ totalPageViews, prevDayViewsChangePercent }: PageViewsStats) => { + const isDeltaPositive = parseInt(prevDayViewsChangePercent || '') > 0; + + return ( +
    +
    + + + + +
    + +
    +
    +

    {totalPageViews}

    + Total page views +
    + + {prevDayViewsChangePercent && parseInt(prevDayViewsChangePercent) !== 0 && ( + + {prevDayViewsChangePercent}%{parseInt(prevDayViewsChangePercent) > 0 ? : } + + )} +
    +
    + ); +}; + +export default TotalPageViewsCard; diff --git a/app/src/client/admin/components/TotalPayingUsersCard.tsx b/app/src/client/admin/components/TotalPayingUsersCard.tsx new file mode 100644 index 00000000..03ffb9d7 --- /dev/null +++ b/app/src/client/admin/components/TotalPayingUsersCard.tsx @@ -0,0 +1,53 @@ +import { useMemo } from 'react'; +import { UpArrow, DownArrow } from '../images/icon/icons-arrows'; +import type { DailyStatsProps } from '../common/types'; +import { cn } from '../../../shared/utils'; + +const TotalPayingUsersCard = ({ dailyStats, isLoading }: DailyStatsProps) => { + const isDeltaPositive = useMemo(() => { + return !!dailyStats?.paidUserDelta && dailyStats?.paidUserDelta > 0; + }, [dailyStats]); + + return ( +
    +
    + + + + +
    + +
    +
    +

    {dailyStats?.paidUserCount}

    + Total Paying Users +
    + + + {isLoading ? '...' : dailyStats?.paidUserDelta !== 0 ? dailyStats?.paidUserDelta : '-'} + {dailyStats?.paidUserDelta !== 0 ? isDeltaPositive ? : : null} + +
    +
    + ); +}; + +export default TotalPayingUsersCard; diff --git a/app/src/client/admin/components/TotalRevenueCard.tsx b/app/src/client/admin/components/TotalRevenueCard.tsx new file mode 100644 index 00000000..af31b9ac --- /dev/null +++ b/app/src/client/admin/components/TotalRevenueCard.tsx @@ -0,0 +1,62 @@ +import { useMemo, useEffect } from 'react'; +import { UpArrow, DownArrow } from '../images/icon/icons-arrows'; +import type { DailyStatsProps } from '../common/types'; + +const TotalRevenueCard = ({dailyStats, weeklyStats, isLoading}: DailyStatsProps) => { + const isDeltaPositive = useMemo(() => { + if (!weeklyStats) return false; + return (weeklyStats[0].totalRevenue - weeklyStats[1]?.totalRevenue) > 0; + }, [weeklyStats]); + + const deltaPercentage = useMemo(() => { + if ( !weeklyStats || weeklyStats.length < 2 || isLoading) return; + if ( weeklyStats[1]?.totalRevenue === 0 || weeklyStats[0]?.totalRevenue === 0 ) return 0; + + weeklyStats.sort((a, b) => b.id - a.id); + + const percentage = ((weeklyStats[0].totalRevenue - weeklyStats[1]?.totalRevenue) / weeklyStats[1]?.totalRevenue) * 100; + return Math.floor(percentage); + }, [weeklyStats]); + + return ( +
    +
    + + + + + +
    + +
    +
    +

    ${dailyStats?.totalRevenue}

    + Total Revenue +
    + + + {isLoading ? '...' : !!deltaPercentage ? deltaPercentage + '%' : '-'} + {!!deltaPercentage ? isDeltaPositive ? : : null} + +
    +
    + ); +}; + +export default TotalRevenueCard; diff --git a/app/src/client/admin/components/TotalSignupsCard.tsx b/app/src/client/admin/components/TotalSignupsCard.tsx new file mode 100644 index 00000000..cd7c2539 --- /dev/null +++ b/app/src/client/admin/components/TotalSignupsCard.tsx @@ -0,0 +1,57 @@ +import { useMemo } from 'react'; +import { UpArrow } from '../images/icon/icons-arrows'; +import type { DailyStatsProps } from '../common/types'; +import { cn } from '../../../shared/utils'; + +const TotalSignupsCard = ({ dailyStats, isLoading }: DailyStatsProps) => { + const isDeltaPositive = useMemo(() => { + return !!dailyStats?.userDelta && dailyStats.userDelta > 0; + }, [dailyStats]); + + return ( +
    +
    + + + + + +
    + +
    +
    +

    {dailyStats?.userCount}

    + Total Signups +
    + + + {isLoading ? '...' : isDeltaPositive ? dailyStats?.userDelta : '-'} + {!!dailyStats && isDeltaPositive && } + +
    +
    + ); +}; + +export default TotalSignupsCard; diff --git a/app/src/client/admin/components/UsersTable.tsx b/app/src/client/admin/components/UsersTable.tsx new file mode 100644 index 00000000..54b3ff0f --- /dev/null +++ b/app/src/client/admin/components/UsersTable.tsx @@ -0,0 +1,234 @@ +import { updateUserById, useQuery, getPaginatedUsers } from 'wasp/client/operations'; +import { useState, useEffect } from 'react'; +import SwitcherOne from './SwitcherOne'; +import Loader from '../common/Loader'; +import DropdownEditDelete from './DropdownEditDelete'; + +type StatusOptions = 'past_due' | 'canceled' | 'active' | 'deleted'; + +const UsersTable = () => { + const [skip, setskip] = useState(0); + const [page, setPage] = useState(1); + const [email, setEmail] = useState(undefined); + const [statusOptions, setStatusOptions] = useState([]); + const [hasPaidFilter, setHasPaidFilter] = useState(undefined); + const { data, isLoading, error } = useQuery(getPaginatedUsers, { + skip, + hasPaidFilter: hasPaidFilter, + emailContains: email, + subscriptionStatus: statusOptions?.length > 0 ? statusOptions : undefined, + }); + + useEffect(() => { + setPage(1); + }, [email, statusOptions]); + + useEffect(() => { + setskip((page - 1) * 10); + }, [page]); + + return ( +
    +
    +
    + Filters: +
    +
    + + { + setEmail(e.currentTarget.value); + }} + className='rounded border border-stroke py-2 px-5 bg-white outline-none transition focus:border-primary active:border-primary disabled:cursor-default disabled:bg-whiter dark:border-form-strokedark dark:bg-form-input dark:focus:border-primary' + /> + +
    +
    + {!!statusOptions && statusOptions.length > 0 ? ( + statusOptions.map((opt, idx) => ( + + {opt} + { + e.stopPropagation(); + setStatusOptions((prevValue) => { + return prevValue?.filter((val) => val !== opt); + }); + }} + className='z-30 cursor-pointer pl-2 hover:text-danger' + > + + + + + + )) + ) : ( + + Select Status Filters + + )} +
    + + + + + + + + +
    +
    + + +
    +
    + {!isLoading && ( +
    + page + { + setPage(parseInt(e.currentTarget.value)); + }} + className='rounded-md border-1 border-stroke bg-transparent px-4 font-medium outline-none transition focus:border-primary active:border-primary dark:border-form-strokedark dark:bg-form-input dark:focus:border-primary' + /> + / {data?.totalPages} +
    + )} +
    +
    + +
    +
    +

    Email / Username

    +
    +
    +

    Last Active

    +
    +
    +

    Subscription Status

    +
    +
    +

    Stripe ID

    +
    +
    +

    Has Paid

    +
    +
    +

    +
    +
    + {isLoading && ( +
    + +
    + )} + {!!data?.users && + data?.users?.length > 0 && + data.users.map((user) => ( +
    +
    +
    +

    {user.email}

    +

    {user.username}

    +
    +
    + +
    +

    + {user.lastActiveTimestamp.toLocaleDateString() + ' ' + user.lastActiveTimestamp.toLocaleTimeString()} +

    +
    +
    +

    {user.subscriptionStatus}

    +
    +
    +

    {user.stripeId}

    +
    +
    +
    + +
    +
    +
    + +
    +
    + ))} +
    +
    + ); +}; + +export default UsersTable; diff --git a/app/src/client/admin/images/icon/icon-arrow-down.svg b/app/src/client/admin/images/icon/icon-arrow-down.svg new file mode 100644 index 00000000..b25ef986 --- /dev/null +++ b/app/src/client/admin/images/icon/icon-arrow-down.svg @@ -0,0 +1,6 @@ + + + diff --git a/app/src/client/admin/images/icon/icon-calendar.svg b/app/src/client/admin/images/icon/icon-calendar.svg new file mode 100644 index 00000000..3360ff12 --- /dev/null +++ b/app/src/client/admin/images/icon/icon-calendar.svg @@ -0,0 +1,6 @@ + + + diff --git a/app/src/client/admin/images/icon/icon-copy-alt.svg b/app/src/client/admin/images/icon/icon-copy-alt.svg new file mode 100644 index 00000000..1f0c7702 --- /dev/null +++ b/app/src/client/admin/images/icon/icon-copy-alt.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/client/admin/images/icon/icon-moon.svg b/app/src/client/admin/images/icon/icon-moon.svg new file mode 100644 index 00000000..1ca395d0 --- /dev/null +++ b/app/src/client/admin/images/icon/icon-moon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/app/src/client/admin/images/icon/icon-sun.svg b/app/src/client/admin/images/icon/icon-sun.svg new file mode 100644 index 00000000..4524cde9 --- /dev/null +++ b/app/src/client/admin/images/icon/icon-sun.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/app/src/client/admin/images/icon/icons-arrows.tsx b/app/src/client/admin/images/icon/icons-arrows.tsx new file mode 100644 index 00000000..f2629fa5 --- /dev/null +++ b/app/src/client/admin/images/icon/icons-arrows.tsx @@ -0,0 +1,35 @@ +export function UpArrow() { + return ( + + + + ); +} + +export function DownArrow() { + return ( + + + + ); +} diff --git a/app/src/client/admin/layout/DefaultLayout.tsx b/app/src/client/admin/layout/DefaultLayout.tsx new file mode 100644 index 00000000..3495da05 --- /dev/null +++ b/app/src/client/admin/layout/DefaultLayout.tsx @@ -0,0 +1,41 @@ +import { useAuth } from 'wasp/client/auth'; +import { useState, ReactNode, FC } from 'react'; +import Header from '../components/Header'; +import Sidebar from '../components/Sidebar'; + +interface Props { + children?: ReactNode; +} + +const DefaultLayout: FC = ({ children }) => { + const [sidebarOpen, setSidebarOpen] = useState(false); + const { data: user } = useAuth(); + + return ( +
    + {/* */} +
    + {/* */} + + {/* */} + + {/* */} +
    + {/* */} +
    + {/* */} + + {/* */} +
    +
    {children}
    +
    + {/* */} +
    + {/* */} +
    + {/* */} +
    + ); +}; + +export default DefaultLayout; diff --git a/app/src/client/admin/pages/Calendar.tsx b/app/src/client/admin/pages/Calendar.tsx new file mode 100644 index 00000000..41e056a4 --- /dev/null +++ b/app/src/client/admin/pages/Calendar.tsx @@ -0,0 +1,274 @@ +import Breadcrumb from '../components/Breadcrumb'; +import DefaultLayout from '../layout/DefaultLayout'; + +const Calendar = () => { + return ( + + + + {/* */} +
    + + + + + + + + + + + + + + {/* */} + + + + + + + + + + {/* */} + {/* */} + + + + + + + + + + {/* */} + {/* */} + + + + + + + + + + {/* */} + {/* */} + + + + + + + + + + {/* */} + {/* */} + + + + + + + + + + {/* */} + +
    + Sunday + Sun + + Monday + Mon + + Tuesday + Tue + + Wednesday + Wed + + Thursday + Thur + + Friday + Fri + + Saturday + Sat +
    + + 1 + +
    + + More + +
    + + Redesign Website + + + 1 Dec - 2 Dec + +
    +
    +
    + + 2 + + + + 3 + + + + 4 + + + + 5 + + + + 6 + + + + 7 + +
    + + 8 + + + + 9 + + + + 10 + + + + 11 + + + + 12 + + + + 13 + + + + 14 + +
    + + 15 + + + + 16 + + + + 17 + + + + 18 + + + + 19 + + + + 20 + + + + 21 + +
    + + 22 + + + + 23 + + + + 24 + + + + 25 + +
    + + More + +
    + + App Design + + + 25 Dec - 27 Dec + +
    +
    +
    + + 26 + + + + 27 + + + + 28 + +
    + + 29 + + + + 30 + + + + 31 + + + + 1 + + + + 2 + + + + 3 + + + + 4 + +
    +
    + {/* */} +
    + ); +}; + +export default Calendar; diff --git a/app/src/client/admin/pages/Chart.tsx b/app/src/client/admin/pages/Chart.tsx new file mode 100644 index 00000000..e56ebca7 --- /dev/null +++ b/app/src/client/admin/pages/Chart.tsx @@ -0,0 +1,23 @@ +import Breadcrumb from '../components/Breadcrumb'; +import BarChart from '../components/BarChart'; +import PieChart from '../components/PieChart'; +import DataStats from '../components/DataStats'; +import DefaultLayout from '../layout/DefaultLayout'; + +const Chart = () => { + return ( + + + +
    + +
    + +
    + +
    +
    + ); +}; + +export default Chart; diff --git a/app/src/client/admin/pages/DashboardPage.tsx b/app/src/client/admin/pages/DashboardPage.tsx new file mode 100644 index 00000000..25882c8c --- /dev/null +++ b/app/src/client/admin/pages/DashboardPage.tsx @@ -0,0 +1,43 @@ +import { type User } from 'wasp/entities'; +import { useQuery, getDailyStats } from 'wasp/client/operations'; +import TotalSignupsCard from '../components/TotalSignupsCard'; +import TotalPageViewsCard from '../components/TotalPaidViewsCard'; +import TotalPayingUsersCard from '../components/TotalPayingUsersCard'; +import TotalRevenueCard from '../components/TotalRevenueCard'; +import RevenueAndProfitChart from '../components/RevenueAndProfitChart'; +import SourcesTable from '../components/SourcesTable'; +import DefaultLayout from '../layout/DefaultLayout'; +import { useHistory } from 'react-router-dom'; + +const Dashboard = ({ user }: { user: User }) => { + const history = useHistory(); + if (!user.isAdmin) { + history.push('/'); + } + + const { data: stats, isLoading, error } = useQuery(getDailyStats); + + return ( + +
    + + + + +
    + +
    + + +
    + +
    +
    +
    + ); +}; + +export default Dashboard; diff --git a/app/src/client/admin/pages/Form/FormElements.tsx b/app/src/client/admin/pages/Form/FormElements.tsx new file mode 100644 index 00000000..0716981b --- /dev/null +++ b/app/src/client/admin/pages/Form/FormElements.tsx @@ -0,0 +1,343 @@ +import Breadcrumb from '../../components/Breadcrumb'; +import CheckboxOne from '../../components/CheckboxOne'; +import SwitcherOne from '../../components/SwitcherOne'; +import SwitcherTwo from '../../components/SwitcherTwo'; +import DefaultLayout from '../../layout/DefaultLayout'; + +const FormElements = () => { + return ( + + + +
    +
    + {/* */} +
    +
    +

    + Input Fields +

    +
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    +
    +
    + + {/* */} +
    +
    +

    + Toggle switch input +

    +
    +
    + + +
    +
    + + {/* */} +
    +
    +

    + Time and date +

    +
    +
    +
    + +
    + +
    +
    + +
    + +
    + +
    +
    +
    +
    + + {/* */} +
    +
    +

    + File upload +

    +
    +
    +
    + + +
    + +
    + + +
    +
    +
    +
    + +
    + {/* */} +
    +
    +

    + Textarea Fields +

    +
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    +
    +
    + + {/* */} +
    +
    +

    + Checkbox and radio +

    +
    +
    + +
    +
    + + {/* */} +
    +
    +

    + Select input +

    +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + +
    +
    + +
    + +
    +
    + + Design + + + + + + + + Development + + + + + + +
    + + + + + + + + +
    +
    +
    +
    +
    +
    +
    + ); +}; + +export default FormElements; diff --git a/app/src/client/admin/pages/Form/FormLayout.tsx b/app/src/client/admin/pages/Form/FormLayout.tsx new file mode 100644 index 00000000..4f7a5496 --- /dev/null +++ b/app/src/client/admin/pages/Form/FormLayout.tsx @@ -0,0 +1,258 @@ +import Breadcrumb from '../../components/Breadcrumb'; +import DefaultLayout from '../../layout/DefaultLayout'; + +const FormLayout = () => { + return ( + + + +
    +
    + {/* */} +
    +
    +

    + Contact Form +

    +
    +
    +
    +
    +
    + + +
    + +
    + + +
    +
    + +
    + + +
    + +
    + + +
    + +
    + +
    + + + + + + + + +
    +
    + +
    + + +
    + + +
    +
    +
    +
    + +
    + {/* */} +
    +
    +

    + Sign In Form +

    +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    + + + + Forget password? + +
    + + +
    +
    +
    + + {/* */} +
    +
    +

    + Sign Up Form +

    +
    +
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + + +
    +
    +
    +
    +
    +
    + ); +}; + +export default FormLayout; diff --git a/app/src/client/admin/pages/Messages.tsx b/app/src/client/admin/pages/Messages.tsx new file mode 100644 index 00000000..751591ec --- /dev/null +++ b/app/src/client/admin/pages/Messages.tsx @@ -0,0 +1,10 @@ +// TODO: Add messages page + +function AdminMessages() { + + return ( +
    Hello world!
    + ) +} + +export default AdminMessages diff --git a/app/src/client/admin/pages/Settings.tsx b/app/src/client/admin/pages/Settings.tsx new file mode 100644 index 00000000..6cc19efa --- /dev/null +++ b/app/src/client/admin/pages/Settings.tsx @@ -0,0 +1,325 @@ +import { FormEvent } from 'react'; +import Breadcrumb from '../components/Breadcrumb'; +import toast from 'react-hot-toast'; +import DefaultLayout from '../layout/DefaultLayout'; + +const Settings = () => { + const handleSubmit = (event: FormEvent) => { + // TODO add toast provider / wrapper + event.preventDefault(); + const confirmed = confirm("Are you sure you want to save the changes?"); + if (confirmed) { + toast.success("Your changes have been saved successfully!"); + } else { + toast.error("Your changes have not been saved!"); + } + }; + + return ( + +
    + + + +
    +
    +
    +
    +

    + Personal Information +

    +
    +
    +
    +
    +
    + +
    + + + + + + + + + +
    +
    + +
    + + +
    +
    + +
    + +
    + + + + + + + + + +
    +
    + +
    + + +
    + +
    + +
    + + + + + + + + + + + + + + + +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +
    +

    + Your Photo +

    +
    +
    +
    +
    +
    + {/* User */} +
    +
    + + Edit your photo + + + + + +
    +
    + +
    + +
    + + + + + + + +

    + Click to upload or + drag and drop +

    +

    SVG, PNG, JPG or GIF

    +

    (max, 800 X 800px)

    +
    +
    + +
    + + +
    +
    +
    +
    +
    +
    +
    +
    + ); +}; + +export default Settings; diff --git a/app/src/client/admin/pages/UiElements/Alerts.tsx b/app/src/client/admin/pages/UiElements/Alerts.tsx new file mode 100644 index 00000000..e3e7eed7 --- /dev/null +++ b/app/src/client/admin/pages/UiElements/Alerts.tsx @@ -0,0 +1,99 @@ +import Breadcrumb from '../../components/Breadcrumb'; +import DefaultLayout from '../../layout/DefaultLayout'; + +const Alerts = () => { + return ( + + + +
    +
    + {/* */} +
    +
    + + + +
    +
    +
    + Attention needed +
    +

    + Lorem Ipsum is simply dummy text of the printing and typesetting + industry. Lorem Ipsum has been the industry's standard dummy + text ever since the 1500s, when +

    +
    +
    + {/* */} +
    +
    + + + +
    +
    +
    + Message Sent Successfully +
    +

    + Lorem Ipsum is simply dummy text of the printing and typesetting + industry. +

    +
    +
    + {/* */} +
    +
    + + + +
    +
    +
    + There were 1 errors with your submission +
    +
      +
    • + Lorem Ipsum is simply dummy text of the printing +
    • +
    +
    +
    +
    +
    +
    + ); +}; + +export default Alerts; diff --git a/app/src/client/admin/pages/UiElements/Buttons.tsx b/app/src/client/admin/pages/UiElements/Buttons.tsx new file mode 100644 index 00000000..c1402f9f --- /dev/null +++ b/app/src/client/admin/pages/UiElements/Buttons.tsx @@ -0,0 +1,471 @@ +import { Link } from 'react-router-dom'; +import Breadcrumb from '../../components/Breadcrumb'; +import DefaultLayout from '../../layout/DefaultLayout'; + +const Buttons = () => { + return ( + + + + {/* */} +
    +
    +

    + Normal Button +

    +
    + +
    +
    + + Button + + + + Button + + + + Button + + + + Button + +
    + +
    + + Button + + + + Button + + + + Button + + + + Button + +
    + +
    + + Button + + + + Button + + + + Button + + + + Button + +
    +
    +
    + + {/* */} +
    +
    +

    + Button With Icon +

    +
    + +
    +
    + + + + + + + + Button With Icon + + + + + + + + + + Button With Icon + + + + + + + + + + Button With Icon + + + + + + + + + + Button With Icon + +
    + +
    + + + + + + + + + Button With Icon + + + + + + + + + + + Button With Icon + + + + + + + + + + + Button With Icon + + + + + + + + + + + Button With Icon + +
    + +
    + + + + + + + + + + + + + + Button With Icon + + + + + + + + + + + + + + + + Button With Icon + + + + + + + + + + + + + + + + Button With Icon + + + + + + + + + + + + + + + + Button With Icon + +
    +
    +
    +
    + ); +}; + +export default Buttons; diff --git a/app/src/client/admin/pages/Users.tsx b/app/src/client/admin/pages/Users.tsx new file mode 100644 index 00000000..ed23bc42 --- /dev/null +++ b/app/src/client/admin/pages/Users.tsx @@ -0,0 +1,16 @@ +import Breadcrumb from '../components/Breadcrumb'; +import UsersTable from '../components/UsersTable'; +import DefaultLayout from '../layout/DefaultLayout'; + +const Users = () => { + return ( + + +
    + +
    +
    + ); +}; + +export default Users; diff --git a/app/src/client/app/AccountPage.tsx b/app/src/client/app/AccountPage.tsx new file mode 100644 index 00000000..1c4d08ef --- /dev/null +++ b/app/src/client/app/AccountPage.tsx @@ -0,0 +1,108 @@ +import { Link } from 'wasp/client/router'; +import { type User } from 'wasp/entities'; +import { logout } from 'wasp/client/auth'; +// import { STRIPE_CUSTOMER_PORTAL_LINK } from '../../shared/constants'; +import CustomAuthRequiredLayout from '../app/layout/CustomAuthRequiredLayout'; +import Button from '../components/Button'; +// import FreeTrialButton from '../components/FreeTrialButton'; +import { MarketingEmailPreferenceSwitcher } from '../components/MarketingEmailPreferenceSwitcher'; + +const AccountPage = ({ user }: { user: User }) => { + return ( +
    +
    +
    +

    Account Information

    +
    +
    +
    + {!!user.email && ( +
    +
    Email address
    +
    + {user.email} +
    +
    + )} + {!!user.username && ( +
    +
    Username
    +
    + {user.username} +
    +
    + )} + {/*
    +
    Subscription status
    + {user.hasPaid ? ( + <> + {user.subscriptionStatus !== 'past_due' ? ( +
    + + Active +
    + ) : ( +
    + Your Account is Past Due! Please Update your Payment Information +
    + )} + + + ) : ( + <> +
    + N/A +
    +
    + +
    + + )} +
    */} +
    +
    I agree to receiving marketing emails
    + <> + + +
    +
    +
    +
    +
    +
    +
    + ); +}; + +function BuyMoreButton() { + return ( +
    + + Buy More/Upgrade + +
    + ); +} + +// function CustomerPortalButton() { +// const handleClick = () => { +// window.open(STRIPE_CUSTOMER_PORTAL_LINK, '_blank'); +// }; + +// return ( +//
    +// +//
    +// ); +// } + +const AccountPageWithCustomAuth = CustomAuthRequiredLayout(AccountPage); +export default AccountPageWithCustomAuth; diff --git a/app/src/client/app/BuildPage.tsx b/app/src/client/app/BuildPage.tsx new file mode 100644 index 00000000..d7abf7bb --- /dev/null +++ b/app/src/client/app/BuildPage.tsx @@ -0,0 +1,192 @@ +import React, { useEffect, useState } from 'react'; +import { useHistory, useLocation } from 'react-router-dom'; + +import { type User } from 'wasp/entities'; + +import CustomAuthRequiredLayout from './layout/CustomAuthRequiredLayout'; +import CustomSidebar from '../components/CustomSidebar'; +import { cn } from '../../shared/utils'; + +import LoadingComponent from '../components/LoadingComponent'; +import { useBuildPage } from '../hooks/useBuildPage'; +import { filerOutComponentData } from '../utils/buildPageUtils'; +import UserPropertyHandler from '../components/buildPage/UserPropertyHandler'; + +interface BuildPageProps { + user: User; +} + +interface HeaderProps { + sidebarOpen: boolean; + setSidebarOpen: (open: boolean) => void; +} + +export const Header: React.FC = ({ sidebarOpen, setSidebarOpen }) => { + return ( +
    +
    +
    + {/* */} + + + + {/* */} +
    +
    +
    + ); +}; + +const BuildPage = ({ user }: BuildPageProps) => { + const { data, loading, error } = useBuildPage(); + const [sidebarOpen, setSidebarOpen] = useState(false); + const [sideNavSelectedItem, setSideNavSelectedItem] = useState('secret'); + const [togglePropertyList, setTogglePropertyList] = useState(false); + const { pathname } = location; + const activeBuildPageTab = pathname.split('/').pop(); + + const wrapperClass = document.body.classList.contains('server-error') + ? 'h-[calc(100vh-173px)]' + : 'h-[calc(100vh-80px)]'; + + const history = useHistory(); + useEffect(() => { + if (!user) { + history.push('/login'); + } else { + if (!user.hasPaid && user.isSignUpComplete) { + history.push('/pricing'); + } + } + }, [user, history]); + + useEffect(() => { + if (!activeBuildPageTab) return; + if (activeBuildPageTab === 'build') { + history.push(`/build/secret`); + } else { + setSideNavSelectedItem(activeBuildPageTab); + } + }, [activeBuildPageTab]); + + if (loading) { + return ; + } + + const handleSideNavItemClick = (selectedComponentName: string) => { + setSideNavSelectedItem(selectedComponentName); + setTogglePropertyList(!togglePropertyList); + history.push(`/build/${selectedComponentName}`); + }; + + return ( +
    + {/* */} +
    + {/* */} + + {/* */} + + {/* */} +
    + {/* */} +
    + {/* */} + + {/* */} +
    +
    + {error ? ( +

    + Oops! Something went wrong. Our server is currently unavailable. Please try again later. +

    + ) : data ? ( + + ) : ( +

    + Build Page - No valid component found for this section. +

    + )} +
    +
    + {/* */} + <> +
    + + {/* */} +
    + {/* */} +
    + ); +}; + +const BuildPageWithCustomAuth = CustomAuthRequiredLayout(BuildPage); +export default BuildPageWithCustomAuth; diff --git a/app/src/client/app/CheckoutPage.tsx b/app/src/client/app/CheckoutPage.tsx new file mode 100644 index 00000000..8cf6cd16 --- /dev/null +++ b/app/src/client/app/CheckoutPage.tsx @@ -0,0 +1,54 @@ +import { useEffect, useState } from 'react'; +import { useHistory, useLocation } from 'react-router-dom'; + +export default function CheckoutPage() { + const [paymentStatus, setPaymentStatus] = useState('loading'); + + const history = useHistory(); + const location = useLocation(); + + useEffect(() => { + function delayedRedirect() { + return setTimeout(() => { + history.push('/build'); + }, 2000); + } + + const queryParams = new URLSearchParams(location.search); + const isSuccess = queryParams.get('success'); + const isCanceled = queryParams.get('canceled'); + + if (isCanceled) { + setPaymentStatus('canceled'); + } else if (isSuccess) { + setPaymentStatus('paid'); + } else { + history.push('/build'); + } + delayedRedirect(); + return () => { + clearTimeout(delayedRedirect()); + }; + }, [location]); + + return ( +
    +
    +
    +

    + {paymentStatus === 'paid' + ? '🥳 Payment Successful!' + : paymentStatus === 'canceled' + ? '😢 Payment Canceled' + : paymentStatus === 'error' && '🙄 Payment Error'} +

    + {paymentStatus !== 'loading' && ( + + You are being redirected to your build page...
    +
    + )} +
    +
    +
    + ); +} diff --git a/app/src/client/app/ExamplesPage.tsx b/app/src/client/app/ExamplesPage.tsx new file mode 100644 index 00000000..1505fa67 --- /dev/null +++ b/app/src/client/app/ExamplesPage.tsx @@ -0,0 +1,36 @@ +export default function ExamplesPage() { + return ( +
    +
    + +
    +
    + ); +} diff --git a/app/src/client/app/PlayGroundPage.tsx b/app/src/client/app/PlayGroundPage.tsx new file mode 100644 index 00000000..e324e906 --- /dev/null +++ b/app/src/client/app/PlayGroundPage.tsx @@ -0,0 +1,217 @@ +import { useState, useEffect } from 'react'; +import _ from 'lodash'; +import { useSocket, useSocketListener } from 'wasp/client/webSocket'; +import { type User } from 'wasp/entities'; + +import { + updateCurrentChat, + useQuery, + getChat, + getChatFromUUID, + getConversations, + getModels, +} from 'wasp/client/operations'; + +import { useHistory, useLocation } from 'react-router-dom'; + +import CustomAuthRequiredLayout from './layout/CustomAuthRequiredLayout'; +import ChatLayout from './layout/ChatLayout'; +import ConversationsList from '../components/ConversationList'; +import NotificationBox from '../components/NotificationBox'; + +import { + updateCurrentChatStatus, + getInProgressConversation, + getFormattedChatMessages, + continueChat, + initiateChat, + handleChatError, +} from '../utils/chatUtils'; +import SelectTeamToChat from '../components/SelectTeamToChat'; +import Loader from '../admin/common/Loader'; +import { SelectedModelSchema } from '../interfaces/BuildPageInterfaces'; + +const PlayGroundPage = ({ user }: { user: User }) => { + const { data: userTeams, isLoading: isLoading } = useQuery(getModels, { type_name: 'team' }); + const [refetchAllChatDetails, setRefetchAllChatDetails] = useState(false); + const { socket } = useSocket(); + const location = useLocation(); + const { pathname } = location; + const history = useHistory(); + const queryParams = new URLSearchParams(location.search); + const [notificationErrorMessage, setNotificationErrorMessage] = useState(null); + + const uuidFromURL = pathname.split('/').pop(); + const activeChatUUId = uuidFromURL === 'chat' ? null : uuidFromURL; + const { data: activeChat } = useQuery(getChatFromUUID, { + chatUUID: activeChatUUId, + }); + const [triggerChatFormSubmitMsg, setTriggerChatFormSubmitMsg] = useState(null); + const activeChatId = Number(activeChat?.id); + const { data: currentChatDetails, refetch: refetchChat }: { data: any; refetch: any } = useQuery( + getChat, + { chatId: activeChatId }, + { enabled: !!activeChatId } + ); + const { data: conversations, refetch: refetchConversation } = useQuery( + getConversations, + { chatId: activeChatId }, + { enabled: !!activeChatId } + ); + const [triggerScrollBarMove, settriggerScrollBarMove] = useState(false); + + useSocketListener('streamFromTeamFinished', updateState); + + function updateState() { + refetchConversation(); + refetchChat(); + } + + // Function to remove query parameters + const removeQueryParameters = () => { + history.push({ + search: '', // This removes all query parameters + }); + }; + + const refetchChatDetails = () => { + setRefetchAllChatDetails(!refetchAllChatDetails); + }; + + const formSubmitMsg = queryParams.get('initiateChatMsg'); + useEffect(() => { + if (formSubmitMsg && currentChatDetails) { + if (!currentChatDetails.userRespondedWithNextAction) { + setTriggerChatFormSubmitMsg(formSubmitMsg); + } + removeQueryParameters(); + } + }, [formSubmitMsg, currentChatDetails]); + + const handleFormSubmit = async ( + userQuery: string, + isUserRespondedWithNextAction: boolean = false, + retrySameChat: boolean = false + ) => { + if (currentChatDetails.userId !== user.id) { + window.alert('Error: This chat does not belong to you.'); + } else if (currentChatDetails.isChatTerminated) { + setNotificationErrorMessage('This chat has been completed. Please start a new chat.'); + } else { + let inProgressConversation; + try { + if (isUserRespondedWithNextAction) { + await updateCurrentChatStatus(activeChatId, isUserRespondedWithNextAction, removeQueryParameters); + setTriggerChatFormSubmitMsg(null); + } + const messages: any = await getFormattedChatMessages(activeChatId, userQuery, retrySameChat); + inProgressConversation = await getInProgressConversation(activeChatId, userQuery, retrySameChat); + const selectedTeam: SelectedModelSchema | undefined = userTeams?.find( + (team: any) => team.json_str.name === currentChatDetails.selectedTeam + ) as SelectedModelSchema; + + if (selectedTeam) { + if (currentChatDetails.team_id) { + await continueChat( + socket, + currentChatDetails, + inProgressConversation, + userQuery, + messages, + activeChatId, + selectedTeam + ); + } else { + await initiateChat( + activeChatId, + currentChatDetails, + inProgressConversation, + socket, + messages, + refetchChatDetails, + selectedTeam + ); + } + } + settriggerScrollBarMove(true); + } catch (err: any) { + await handleChatError(err, activeChatId, inProgressConversation, history); + } + } + }; + + const onStreamAnimationComplete = () => { + updateCurrentChat({ + id: activeChatId, + data: { + streamAgentResponse: false, + }, + }); + }; + + // const userSelectedAction: any = queryParams.get('selected_user_action'); + let userSelectedActionMessage: string | null = null; + + const handleTeamClick = (e: React.MouseEvent): void => { + e.preventDefault(); + sessionStorage.setItem('selectedBuildPageTab', 'team'); + history.push(`/build`); + }; + + if (isLoading) { + return ( +
    + +
    + ); + } + + const notificationOnClick = () => { + setNotificationErrorMessage(null); + }; + return ( + +
    + {currentChatDetails ? ( +
    + {conversations && conversations.length > 0 ? ( + <> +

    + Chatting with{' '} + + {currentChatDetails.selectedTeam} + +

    + + + ) : ( +
    + +
    + )} +
    + ) : ( + + )} + {notificationErrorMessage && ( + + )} +
    +
    + ); +}; + +const PlayGroundPageWithCustomAuth = CustomAuthRequiredLayout(PlayGroundPage); +export default PlayGroundPageWithCustomAuth; diff --git a/app/src/client/app/PricingPage.tsx b/app/src/client/app/PricingPage.tsx new file mode 100644 index 00000000..26e1c8fc --- /dev/null +++ b/app/src/client/app/PricingPage.tsx @@ -0,0 +1,167 @@ +import { useAuth } from 'wasp/client/auth'; +// import { stripePayment } from 'wasp/client/operations'; +// import { TierIds, STRIPE_CUSTOMER_PORTAL_LINK } from '../../shared/constants'; +import { AiFillCheckCircle } from 'react-icons/ai'; +import { useState } from 'react'; +import { useHistory } from 'react-router-dom'; +import { cn } from '../../shared/utils'; + +// export const tiers = [ +// { +// name: 'Hobby', +// id: TierIds.HOBBY, +// priceMonthly: '$9.99', +// description: 'All you need to get started', +// features: ['Limited monthly usage', 'Basic support'], +// }, +// { +// name: 'Monthly Subscription', +// id: TierIds.PRO, +// priceMonthly: '$29', +// description: 'Purchase a monthly subscription and enjoy 30 days on us, followed by a low monthly fee of just', +// features: ['30-day free trial', 'No credit card required for trial subscription', 'Cancel any time'], +// bestDeal: true, +// }, +// { +// name: 'Enterprise', +// id: TierIds.ENTERPRISE, +// priceMonthly: '$500', +// description: 'Big business means big money', +// features: ['Unlimited monthly usage', '24/7 customer support', 'Advanced analytics'], +// }, +// ]; + +const PricingPage = () => { + // const [isStripePaymentLoading, setIsStripePaymentLoading] = useState(false); + + // const { data: user, isLoading: isUserLoading } = useAuth(); + + // const history = useHistory(); + + // async function handleBuyNowClick(tierId: string) { + // if (!user) { + // history.push('/login'); + // return; + // } + // try { + // setIsStripePaymentLoading(tierId); + // let stripeResults = await stripePayment(tierId); + + // if (stripeResults?.sessionUrl) { + // window.open(stripeResults.sessionUrl, '_self'); + // } + // } catch (error: any) { + // console.error(error?.message ?? 'Something went wrong.'); + // } finally { + // setIsStripePaymentLoading(false); + // } + // } + + return ( +
    +
    +
    +

    + Coming soon,{' '} + + everything is free for now! + +

    +
    + {/*

    + Unlock FastAgency's full capabilities with an active subscription. Explore all features with a hassle-free + 30-day free trial—no credit card required.{' '} + 4242 4242 4242 4242 4242 +

    */} + {/*
    */} + {/*
    + {tiers.map((tier) => ( +
    + {tier.bestDeal && ( + + ))} +
    */} +
    +
    + ); +}; + +export default PricingPage; diff --git a/app/src/client/app/PrivacyPage.tsx b/app/src/client/app/PrivacyPage.tsx new file mode 100644 index 00000000..476d8405 --- /dev/null +++ b/app/src/client/app/PrivacyPage.tsx @@ -0,0 +1,378 @@ +export default function PrivacyPage() { + return ( +
    +
    +
    +

    Privacy Policy

    +

    Last updated January 29, 2024

    + +
    +

    + Airt technologies, Inc. ("we", "us", or "our") is committed to protecting the privacy of our users. This + Privacy Policy explains how we collect, use, and disclose information through our SaaS tool,{' '} + FastAgency (the "Service"). +

    +
    + +
    +

    Information We Collect

    +

    + At FastAgency, we value your privacy and are committed to ensuring the highest level of confidentiality + and security for your information. Here's what you need to know about the information we collect when you + use our Service: +

    +
    +
      +
    • + Account Information: When you create a FastAgency account, we collect your name and email + address. This information is essential to personalize your experience and enable various features of the + Service. +
    • +
    • + Integrations: As you integrate your various marketing platforms with our Service, we collect + information that you input, including the details about the platforms you're connecting and any + associated data. This data is necessary to provide you with accurate analytics, reports, and insights. + For data collected from Google APIs, we adhere to Google's API Services User Data Policy, including the + Limited Use requirements. Continue reading for further information. +
    • +
    • + Chat Interactions and AI Data Sharing: Your chat interactions and data from connected third-party + services may be shared with our privately deployed OpenAI models hosted on Microsoft Azure. This sharing + is essential for the service and is detailed in the section below: "Third-Party and Proprietary AI + Tools." +
    • +
    • + Usage Information: To help us understand how you interact with our Service and enable us to + improve your user experience, we collect information about your usage. This may include log data, device + information, and other data related to your activities within our Service. +
    • +
    • + Data Processing: At FastAgency, your data's privacy is a top priority. We process data on-the-fly + and do not store any data in databases, except for chat history as detailed in the "Third-Party and + Proprietary AI Tools" section. This ensures your data stays where it belongs—with you. +
    • +
    +
    + +
    +

    We use the information we collect to:

    +
    +
      +
    • + Provide, Maintain, and Improve the Service: We use your information to deliver the services you + request, maintain your account, and enhance your experience with FastAgency. +
    • +
    • + Respond to Your Requests and Inquiries: Your information helps us respond to your customer + service requests, support needs, and other inquiries. +
    • +
    • + Communicate with You: We use your information to communicate with you about the Service, updates, + and other informational or promotional content. +
    • +
    • + Analyze and Monitor Usage: We use analytics tools to track how users interact with the Service, + which helps us make data-driven decisions for improvements. +
    • +
    • + Detect, Investigate, and Prevent Fraud and Other Illegal Activities: We use your information to + protect the security and integrity of the Service by detecting and preventing fraudulent or illegal + activities. +
    • +
    +
    + +
    +

    Authentication And Authorized Data Access

    +

    + User authenticates with the 3rd party provider such as Google account. Upon authentication, user allows + the application: +

    +
    +
      +
    • Associate user with personal info on Google
    • +
    • See user's personal info, including any personal info user made publicly available
    • +
    • View user's email address
    • +
    +
    +

    + Email address is stored in the database of the application while the other credentials of authenticated + users are encrypted and stored within the infrastructure of Google. This can be used to restrict or fully + block the service for a particular user in case of the breach of the terms of use. User's email + address can be deleted upon the request. +

    +
    +

    Revoke Access to Your Google Account

    + +

    + To remove access of the application to your account, you can do it directly in your Google account by + following this link:{' '} + + https://myaccount.google.com/permissions‍ + +

    +
    + +
    +

    Google API Services User Data Policy

    +

    Google API Services Disclosure

    +

    + FastAgency's use and transfer of information received from Google APIs adhere to{' '} + + Google API Services User Data Policy + + , including the Limited Use requirements. We recommend reviewing Google API Services User Data Policy to + better understand their practices. +

    +
    +

    Use of Google API Services Data

    +

    + When you choose to connect various Google services to FastAgency, we require specific permissions to fetch + and display data for your interactive queries. Below are the permissions required for each Google service: +

    +
    + +
    +

    You may choose to connect one, multiple, or none of these services as per your preference.

    +
    + +
    +

    Third-Party and Proprietary AI Tools

    +

    + Our chatbot service utilizes advanced AI technology by employing privately deployed OpenAI models on + Microsoft Azure. This approach allows us to generate contextually relevant and accurate responses based on + your interactions and queries, ensuring a high-quality user experience. +

    +
    +

    Data Sharing in Different Use Cases

    +

    + Your chat interactions are processed using our privately deployed OpenAI models on Microsoft Azure. This + ensures that your data, including chat history, user metrics, and dimensions from integrated services like + Google Analytics, Google Ads, and Facebook Ads, is not shared with OpenAI directly. +

    +
    +

    Here's a breakdown of the specific data shared from each source:

    +
    +

    + Google Analytics: Your Google Analytics data includes website traffic information, user behavior, + and engagement metrics from your connected websites. Metrics like page views, session duration, bounce + rate, and user demographics. By incorporating these insights, the chatbot can tailor its responses to + align with the user's website-related inquiries. +

    + {/*
    */} + {/*

    + Google Ads: Data from your Google Ads campaigns offers insights into your advertising efforts, ad + performance, and user interactions with your advertisements. Key metrics such as ad clicks, impressions, + click-through rates (CTR), and conversion rates are integrated into the chatbot's learning process. This + integration enables the chatbot to provide more informed and relevant responses regarding your advertising + strategies. +

    */} +
    +

    + Google Search Console: Information gathered from Google Search Console sheds light on your + website's visibility in Google search results. Details about search queries, click-through rates (CTR), + and average position help the chatbot understand user intent and prevalent search trends. By leveraging + this data, the chatbot can offer insights and answers that align with current search behaviors. +

    +
    +

    + Chat Interactions: This refers to the text-based interactions you have with the chatbot within the + FastAgency platform. The content of these conversations, including your questions and responses. This data + aids in refining the AI's ability to comprehend inputs and generate contextually accurate responses. +

    +
    +

    + All of the data sources mentioned above are crucial for enhancing the chatbot's ability to provide + accurate and contextually relevant responses. When chatting directly on our website, certain data points + from your interactions and connected platforms are processed using our privately deployed OpenAI models on + Microsoft Azure. We ensure that only relevant and necessary data are shared to maintain the effectiveness + of the chatbot's functionality. +

    +
    + +
    +

    Data Storage on Azure Database

    +

    + While we do not directly store raw data from third-party sources such as Google Ads, Google Analytics, or + Facebook Ads, it's crucial to understand that your chat history may contain references to or summaries of + data from these services. Retaining this chat history is not just for record-keeping; it's a fundamental + component for the seamless functionality of our chatbot service. This chat data is securely stored in + Azure Database service, a cloud-based database, in compliance with Azure privacy policy ( + + https://learn.microsoft.com/en-us/azure/compliance/ + + ). Your chat history is retained indefinitely, but you have the option to delete it at any time through + the settings in our application. +

    +
    + +
    +

    User Consent Process

    +

    + During your registration with FastAgency, we require your explicit consent regarding our privacy + practices. As part of the sign-up process, you will encounter a checkbox indicating that you have read and + agree to our Terms and Conditions and Privacy Policy. By checking this box, you acknowledge your + understanding and agreement to how we handle your data as detailed in these documents. Only upon agreeing + to these terms will the chatbot service proceed with using your data. You have the option to withdraw your + consent at any point, read more below. +

    +
    + +
    +

    Opt-Out Options

    +

    + If you choose to withdraw your consent and opt-out of data sharing with third-party tools, you will no + longer be able to use the FastAgency service. The nature of our tool requires data sharing for its basic + functionality. Therefore, opting out effectively means discontinuing use of the service. +

    +
    + +
    +

    Agreement

    +

    + By using our chatbot service, you explicitly consent to your chat data being processed as described above. + We ensure that your data is handled securely and in accordance with this privacy policy, as well as Azure + privacy policy. +

    +
    +

    + If you do not agree with this policy, please refrain from signing up and using FastAgency. +

    +
    + +
    +

    Google Analytics

    +

    + Google Analytics is used across fastagency.ai domain in order to collect information about the users' + interactions with the site as well as to identify returning visits, location, device data and engagement + signals. Collected data helps to understand the relevancy and general usage of the tool hence, to provide + better experience and solutions towards the needs of the users, fix errors and bugs. No data is shared + with the 3rd party organizations or individuals. +

    +
    + +
    +

    Information Sharing and Disclosure

    +

    We may share your information with third parties in the following circumstances:

    +
    +
      +
    • + Service Providers: We may share your information with third-party service providers who perform services + on our behalf, such as hosting, analytics, and customer support. +
    • +
    • + AI Data Sharing: Your chat interactions and data from connected third-party services may be shared with + our in-house AI algorithms. This sharing is essential for the service and is detailed in the section + above "Third-Party and Proprietary AI Tools". +
    • +
    • + Compliance with Laws: We may disclose your information as required by law or in response to legal + process, including subpoenas, court orders, and requests from law enforcement. +
    • +
    • + Business Transfers: If we are involved in a merger, acquisition, or sale of all or a portion of our + assets, your information may be transferred as part of that transaction. +
    • +
    • Your Consent: We may disclose your information with your consent.
    • +
    +
    + +
    +

    Your Choices

    +

    + You can access and update your account information through the Service. You can also unsubscribe from our + promotional emails by following the instructions in the email. +

    +
    + +
    +

    Data Retention

    +

    + We retain the information we collect for as long as necessary to provide the Service and fulfill the + purposes described in this Privacy Policy. When we no longer need the information, we will securely delete + it or de-identify it. Your chat history is retained indefinitely, but you have the option to delete it at + any time through the settings in our application. +

    +
    + +
    +

    Security

    +

    + We take reasonable measures to protect your information from unauthorized access, use, disclosure, and + destruction. However, no method of transmission over the internet or method of electronic storage is + completely secure. +

    +
    + +
    +

    Changes to this Privacy Policy

    +

    + We may update this Privacy Policy from time to time. If we make any material changes, we will notify you + by email or by posting a notice on our website prior to the change becoming effective. +

    +
    + +
    +

    Contact Us

    +

    + In order to receive further information regarding use of the Site, please contact us at:{' '} + + support@fastagency.ai + + . +

    +
    +
    +
    +
    + ); +} diff --git a/app/src/client/app/TocPage.tsx b/app/src/client/app/TocPage.tsx new file mode 100644 index 00000000..dea33e7e --- /dev/null +++ b/app/src/client/app/TocPage.tsx @@ -0,0 +1,197 @@ +export default function TocPage() { + return ( +
    +
    +
    +

    Terms & Conditions

    +

    Last updated January 29, 2024

    + +
    +

    + These terms and conditions ("Terms") govern your access to and use of FastAgency, a Software-as-a-Service + tool ("Service") provided by airt technologies, Inc. ("we" or "us"). By accessing or using the Service, + you agree to be bound by these Terms. If you do not agree to these Terms, you may not access or use the + Service. +

    +
    + +
    +

    Use Terms for FastAgency

    +

    + Subject to these Terms, we grant you a limited, non-exclusive, non-transferable, revocable license to use + the Service for your internal business purposes during the term of these Terms. +

    +
    +

    + You may not use the Service in any way that could damage, disable, overburden, or impair the Service or + interfere with any other party's use and enjoyment of the Service. You may not attempt to gain + unauthorized access to the Service or any part of it, other accounts, computer systems, or networks + connected to the Service, through hacking, password mining, or any other means. +

    +
    +

    + You are solely responsible for all data, information, and content uploaded, stored, or processed using the + Service. You represent and warrant that you have the necessary rights to upload, store, and process such + data, information, and content using the Service and that your use of the Service complies with all + applicable laws, regulations, and industry standards. +

    +
    + +
    +

    Payment and Subscription

    +

    By subscribing to FastAgency, you agree to the following terms and conditions:

    +
    +
      +
    • + Subscription: FastAgency is offered on a subscription basis. You will be billed in advance on a + recurring and periodic basis (each period is referred to as a "billing cycle"). Billing cycles are set + either on a monthly or annual basis, depending on the type of subscription plan you select when + purchasing. +
    • +
    • + Payments: All payments are processed by our payment partner, Stripe. By providing a payment + method, you expressly authorize us and Stripe to charge the subscription fees at the start of every + billing cycle. +
    • +
    • + No Refunds: Payments are non-refundable and there are no refunds or credits for partially used + periods. Following any cancellation, however, you will continue to have access to your subscription + through the end of your current billing cycle. +
    • +
    • + Cancellation: You can cancel your subscription at any time. Please note that you must cancel your + subscription before it renews for a subsequent billing cycle in order to avoid being charged for the + next billing cycle. +
    • +
    • + Changes: We reserve the right to change our subscription plans or adjust pricing for our service + in any manner and at any time as we may determine in our sole and absolute discretion. +
    • +
    +
    +

    + If you have any questions about your FastAgency subscription or these terms, please reach out to us at{' '} + + support@fastagency.ai + + . +

    +
    + +
    +

    Marketing Emails

    +

    + By signing up or creating an account on this website, you agree to receive marketing emails from us, + unless you choose to unsubscribe. These emails may include promotional offers, product updates, + newsletters, or other information related to our services. We value your privacy and assure you that your + email address and personal information will be handled in accordance with our Privacy Policy. +

    +
    +

    + If you wish to unsubscribe from our marketing emails, you can do so by clicking the "unsubscribe" link + provided at the bottom of each email. Please note that even if you unsubscribe from marketing emails, you + may still receive transactional or account-related communications regarding your use of our services. +

    +
    + +
    +

    Confidentiality

    +

    + "Confidential Information" means any information disclosed by either party to the other party that is + marked as confidential or should reasonably be considered confidential given the nature of the information + and the circumstances of its disclosure. +

    +
    +

    + The recipient of Confidential Information will maintain the confidentiality of the Confidential + Information and will not disclose it to any third party, except as necessary to provide the Service or as + required by law. +

    +
    + +
    +

    Termination

    +

    + Either party may terminate these Terms upon written notice to the other party if the other party breaches + any material term of these Terms and fails to cure such breach within thirty (30) days of receiving + written notice of the breach. +

    +
    +

    + Upon termination of these Terms, you must immediately cease all use of the Service and destroy all copies + of the Service in your possession. +

    +
    + +
    +

    User Data

    +

    + We will maintain certain data that you transmit to the Site for the purpose of managing the performance of + the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of + data, you are solely responsible for all data that you transmit or that relates to any activity you have + undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of + any such data, and you hereby waive any right of action against us arising from any such loss or + corruption of such data. +

    +
    + +
    +

    Disclaimer of Warranties

    +

    + The Service is provided "as is" and "as available" without any warranties of any kind, whether express or + implied. +

    +
    +

    + We do not warrant that the Service will be uninterrupted or error-free, or that the Service will meet your + requirements or expectations. +

    +
    +

    + We expressly disclaim any and all warranties of merchantability, fitness for a particular purpose, + non-infringement, and any warranties arising out of course of dealing or usage of trade. +

    +
    + +
    +

    Third-Party Website and Content

    +

    + The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as + well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, + applications, software, and other content or items belonging to or originating from third parties + ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, + monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for + any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available + through, or installed from the Site, including the content, accuracy, offensiveness, opinions, + reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the + Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party + Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to + leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so + at your own risk, and you should be aware these Terms of Use no longer govern. You should review the + applicable terms and policies, including privacy and data gathering practices, of any website to which you + navigate from the Site or relating to any applications you use or install from the Site. Any purchases you + make through Third-Party Websites will be through other websites and from other companies, and we take no + responsibility whatsoever in relation to such purchases which are exclusively between you and the + applicable third party. You agree and acknowledge that we do not endorse the products or services offered + on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such + products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm + caused to you relating to or resulting in any way from any Third-Party Content or any contact with + Third-Party Websites. +

    +
    + +
    +

    Contact Us

    +

    + In order to receive further information regarding use of the Site, please contact us at:{' '} + + support@fastagency.ai + + . +

    +
    +
    +
    +
    + ); +} diff --git a/app/src/client/app/TutorialPage.tsx b/app/src/client/app/TutorialPage.tsx new file mode 100644 index 00000000..0245635f --- /dev/null +++ b/app/src/client/app/TutorialPage.tsx @@ -0,0 +1,102 @@ +import React, { useState } from 'react'; +import { + Card, + CardBody, + Stack, + Heading, + Text, + Modal, + ModalOverlay, + ModalContent, + ModalBody, + ModalCloseButton, + useDisclosure, + Image, + Box, + ChakraProvider, +} from '@chakra-ui/react'; + +export default function TutorialPage() { + const { isOpen, onOpen, onClose } = useDisclosure(); + const [selectedVideo, setSelectedVideo] = useState(''); + + const data = [ + { + link: 'https://www.youtube.com/embed/9y4cDOkWIBw', + heading: 'Building and Deploying SaaS with AI Agents and Multi-Agent Teams', + description: + 'Build a powerful SaaS solution with FastAgency. This tutorial demonstrates how to incorporate AI agents and multi-agent teams into your app effortlessly.', + thumbnail: `https://img.youtube.com/vi/9y4cDOkWIBw/0.jpg`, + }, + { + link: 'https://www.youtube.com/embed/mD105mzcbP8', + heading: 'Creating and Integrating a Web Surfer Agent', + description: + 'Enhance your SaaS with web surfing capabilities using FastAgency. See how to build and deploy an app that utilizes this powerful agent.', + thumbnail: `https://img.youtube.com/vi/mD105mzcbP8/0.jpg`, + }, + ]; + + const handleCardClick = (videoLink: string) => { + setSelectedVideo(videoLink); + onOpen(); + }; + + return ( + +
    +

    Tutorials

    +
    +
    +
    + {data.map((item, index) => ( +
    handleCardClick(item.link)} + > + + + {item.heading} + + {item.heading} + {item.description} + + + +
    + ))} +
    +
    + + + + + + + + +
    +
    +
    +
    + + + + {/* Feature section */} +
    +
    +

    + Features +

    + {/*

    + Don't work harder. +
    Work smarter. +

    */} +
    +
    +
    + {features.map((feature) => ( +
    +
    +
    +
    {feature.icon}
    +
    + {feature.name} +
    +
    + {feature.description} +
    +
    + ))} +
    +
    +
    + + {/* Testimonial section */} + {/*
    +
    +
    +

    + What Our Users Say +

    +
    + {testimonials.map((testimonial) => ( +
    +
    +

    {testimonial.quote}

    +
    +
    + + +
    +
    {testimonial.name}
    +
    {testimonial.role}
    +
    +
    +
    +
    + ))} +
    +
    +
    +
    */} + + + ); +} diff --git a/app/src/client/landing-page/contentSections.ts b/app/src/client/landing-page/contentSections.ts new file mode 100644 index 00000000..414e4fc6 --- /dev/null +++ b/app/src/client/landing-page/contentSections.ts @@ -0,0 +1,85 @@ +import { GITHUB_URL, DISCORD_URL } from '../../shared/constants'; +import daBoiAvatar from '../static/da-boi.png'; +import avatarPlaceholder from '../static/avatar-placeholder.png'; + +export const navigation = [ + { name: 'Home', href: '/' }, + { name: 'Build', href: '/build' }, + { name: 'Playground', href: '/playground' }, + { name: 'Tutorial', href: '/tutorial' }, + { name: 'Pricing', href: '/pricing' }, + { name: 'Examples', href: '/examples' }, +]; +export const features = [ + { + name: 'Build with Your Own APIs: Integrate Seamlessly with Custom Agent Design', + description: + 'Integrate your existing systems seamlessly by defining agents with your own REST APIs. FastAgency allows you to craft bespoke agents tailored to your specific business processes, enabling a personalized approach to AI-driven solutions. This flexibility ensures that you can create highly specialized services that address unique challenges effectively.', + icon: '⚙️', //'🤝', + href: '', + }, + { + name: 'Set It and Forget It: Achieve Autonomous Operations with Minimal Oversight', + description: + 'Our platform empowers your agents to operate autonomously, handling complex tasks and decision-making without constant human oversight. This feature not only enhances operational efficiency but also allows your team to focus on strategic activities, boosting productivity and innovation across the board.', + icon: '🤖', //'🔐', + href: '', + }, + { + name: 'Launch Faster Than Ever: Accelerate Time-to-Market with Rapid Deployment', + description: + "Accelerate your time-to-market with FastAgency's streamlined deployment process. Our framework is designed for speed, allowing you to move from concept to launch in record time. This rapid deployment capability ensures that you can quickly adapt to market changes and gain a competitive edge.", + icon: '⚡', + href: '', + }, + { + name: 'Start Collecting Revenue in Just a Week with Rapid Monetization', + description: + 'Dive into the market swiftly with FastAgency. Our platform enables you to go from setup to sales within a week, allowing you to start generating revenue almost immediately. This rapid monetization feature is designed to give businesses a significant head start, accelerating the return on investment and enabling you to capitalize on AI-driven opportunities faster than ever.', + icon: '💸', + href: '', + }, +]; +export const testimonials = [ + { + name: 'Da Boi', + role: 'Wasp Mascot', + avatarSrc: daBoiAvatar, + socialUrl: 'https://twitter.com/wasplang', + quote: "I don't even know how to code. I'm just a plushie.", + }, + { + name: 'Mr. Foobar', + role: 'Founder @ Cool Startup', + avatarSrc: avatarPlaceholder, + socialUrl: '', + quote: 'This product makes me cooler than I already am.', + }, + { + name: 'Jamie', + role: 'Happy Customer', + avatarSrc: avatarPlaceholder, + socialUrl: '#', + quote: 'My cats love it!', + }, +]; + +export const faqs = [ + { + id: 1, + question: 'Whats the meaning of life?', + answer: '42.', + href: 'https://en.wikipedia.org/wiki/42_(number)', + }, +]; +export const footerNavigation = { + app: [ + { name: 'Discord', href: DISCORD_URL }, + { name: 'GitHub', href: GITHUB_URL }, + // { name: 'Blog', href: BLOG_URL }, + ], + company: [ + { name: 'Privacy', href: '/privacy' }, + { name: 'Terms & Conditions', href: '/toc' }, + ], +}; diff --git a/app/src/client/services/commonService.ts b/app/src/client/services/commonService.ts new file mode 100644 index 00000000..a970b43c --- /dev/null +++ b/app/src/client/services/commonService.ts @@ -0,0 +1,10 @@ +import { validateForm as apiValidateForm } from 'wasp/client/operations'; + +export const validateForm = async (data: any, validationURL: string, isSecretUpdate: boolean) => { + try { + const response = await apiValidateForm({ data, validationURL, isSecretUpdate }); + return response; + } catch (error) { + throw error; + } +}; diff --git a/app/src/client/services/modelService.ts b/app/src/client/services/modelService.ts new file mode 100644 index 00000000..0ff2e735 --- /dev/null +++ b/app/src/client/services/modelService.ts @@ -0,0 +1,12 @@ +// services/modelService.ts +import { getAvailableModels as apigetAvailableModels } from 'wasp/client/operations'; + +export const getAvailableModels = async () => { + try { + const response = await apigetAvailableModels(); + return response; + } catch (error) { + console.error('Failed to fetch models:', error); + throw error; + } +}; diff --git a/app/src/client/static/avatar-placeholder.png b/app/src/client/static/avatar-placeholder.png new file mode 100644 index 00000000..dca5d439 --- /dev/null +++ b/app/src/client/static/avatar-placeholder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca9b0ca33f255defbbf9a10d03c751e13dcf14d2b72ce8653cc066236a4ce386 +size 9433 diff --git a/app/src/client/static/da-boi.png b/app/src/client/static/da-boi.png new file mode 100644 index 00000000..0e1560c8 --- /dev/null +++ b/app/src/client/static/da-boi.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f38128e8e9ed7c92a1ea724b10b30aeedd73a59facd75f530240882ac37a437 +size 182323 diff --git a/app/src/client/static/logo.svg b/app/src/client/static/logo.svg new file mode 100644 index 00000000..01472658 --- /dev/null +++ b/app/src/client/static/logo.svg @@ -0,0 +1,11 @@ + + + + + + + diff --git a/app/src/client/static/open-saas-banner.png b/app/src/client/static/open-saas-banner.png new file mode 100644 index 00000000..8c12c992 --- /dev/null +++ b/app/src/client/static/open-saas-banner.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f31b375978e1cf8513f385b96b45b7d87264b1c45cc1b52c7f5d716842c00fa +size 198194 diff --git a/app/src/client/static/robot-footer.svg b/app/src/client/static/robot-footer.svg new file mode 100644 index 00000000..0faa36e2 --- /dev/null +++ b/app/src/client/static/robot-footer.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/client/tests/AgentConversationHistory.test.tsx b/app/src/client/tests/AgentConversationHistory.test.tsx new file mode 100644 index 00000000..bfd2ddbb --- /dev/null +++ b/app/src/client/tests/AgentConversationHistory.test.tsx @@ -0,0 +1,21 @@ +import { test, expect, vi, describe } from 'vitest'; +import { renderInContext } from 'wasp/client/test'; +import { screen, render, fireEvent, act } from '@testing-library/react'; + +import AgentConversationHistory from '../components/AgentConversationHistory'; + +const agentConversationHistory = 'Test History'; + +describe('AgentConversationHistory', () => { + test('renders AgentConversationHistory component with isAgentWindow prop', async () => { + renderInContext( + + ); + const historyItems = await screen.findAllByText('Test History'); + expect(historyItems).toHaveLength(1); + screen.debug(); + }); +}); diff --git a/app/src/client/tests/AnimatedCharacterLoader.test.tsx b/app/src/client/tests/AnimatedCharacterLoader.test.tsx new file mode 100644 index 00000000..78a4e0e5 --- /dev/null +++ b/app/src/client/tests/AnimatedCharacterLoader.test.tsx @@ -0,0 +1,14 @@ +import { test, expect, describe } from 'vitest'; +import { screen } from '@testing-library/react'; +import { renderInContext } from 'wasp/client/test'; + +import AnimatedCharacterLoader from '../components/AnimatedCharacterLoader'; + +describe('AnimatedCharacterLoader', () => { + test('renders AnimatedCharacterLoader component with default props', async () => { + renderInContext(); + + const logo = screen.getByAltText('FastAgency logo'); + expect(logo).toBeInTheDocument(); + }); +}); diff --git a/app/src/client/tests/App.test.tsx b/app/src/client/tests/App.test.tsx new file mode 100644 index 00000000..64b50a8c --- /dev/null +++ b/app/src/client/tests/App.test.tsx @@ -0,0 +1,196 @@ +import { renderInContext } from 'wasp/client/test'; +import { screen } from '@testing-library/react'; +import { describe, it, vi, expect, beforeEach, afterEach } from 'vitest'; +import { MemoryRouter } from 'react-router-dom'; + +interface LocalStorageMock extends Storage { + store: Record; +} + +const localStorageMock: LocalStorageMock = (function () { + let store: Record = {}; + + return { + get length(): number { + return Object.keys(store).length; + }, + getItem(key: string): string | null { + return store[key] || null; + }, + setItem(key: string, value: string): void { + store[key] = value; + }, + removeItem(key: string): void { + delete store[key]; + }, + clear(): void { + store = {}; + }, + key(index: number): string | null { + const keys = Object.keys(store); + return keys[index] || null; + }, + store, + }; +})(); + +global.localStorage = localStorageMock; + +// Shared mock setup function +function setupMocks(mockUser: any, pathName = '/') { + // Always mock useAuth with provided user data + vi.doMock('wasp/client/auth', () => ({ useAuth: () => mockUser })); + + // Correctly mock useLocation to consistently return a pathname + vi.doMock('react-router-dom', () => ({ + ...vi.importActual('react-router-dom'), // Maintain other hooks and routing components + useLocation: () => ({ + pathname: pathName, // Ensure this is correctly set according to the test scenario + }), + useHistory: () => ({ + // Mock useHistory with minimal implementation if not used + push: vi.fn(), + replace: vi.fn(), + goBack: vi.fn(), + }), + Link: ({ children, to }) => {children}, + })); + + // Optionally mock updateCurrentUser if the user's sign-up is not complete + if (!mockUser.data.isSignUpComplete) { + const mockUpdateCurrentUser = vi.fn(); + vi.doMock('wasp/client/operations', () => ({ + updateCurrentUser: mockUpdateCurrentUser, + })); + return mockUpdateCurrentUser; // Return the mock function for assertions in tests + } +} + +beforeEach(() => { + vi.resetModules(); +}); + +afterEach(() => { + vi.restoreAllMocks(); +}); + +describe('App Component', () => { + it('dynamically imports and test isSignUpComplete', async () => { + const mockUser = { + data: { + id: 1, + lastActiveTimestamp: new Date(), + isSignUpComplete: true, + }, + isError: false, + isLoading: false, + }; + setupMocks(mockUser); + const { default: App } = await import('../App'); + renderInContext( + + Test} /> + + ); + + await screen.findByText('Test'); + }); + + it('dynamically imports and test isSignUpComplete', async () => { + const mockUser = { + data: { + id: 1, + lastActiveTimestamp: new Date(), + isSignUpComplete: false, + hasAcceptedTos: true, + }, + isError: false, + isLoading: false, + }; + const mockUpdateCurrentUser = setupMocks(mockUser); + const { default: App } = await import('../App'); + renderInContext( + + Test} /> + + ); + + await screen.findByText('Test'); + expect(mockUpdateCurrentUser).toHaveBeenCalledWith({ isSignUpComplete: true }); + }); + + it('dynamically imports and test isSignUpComplete', async () => { + const mockUser = { + data: { + id: 1, + lastActiveTimestamp: new Date(), + isSignUpComplete: false, + hasAcceptedTos: false, + }, + isError: false, + isLoading: false, + }; + setupMocks(mockUser, '/playground'); + const { default: App } = await import('../App'); + renderInContext( + + Test on Playground} /> + + ); + await screen.findByText('Almost there...'); + }); + + it('dynamically imports and test isSignUpComplete', async () => { + // Set a specific item for this test + localStorage.setItem('hasAcceptedTos', 'true'); + + const mockUser = { + data: { + id: 1, + lastActiveTimestamp: new Date(), + isSignUpComplete: false, + hasAcceptedTos: false, + }, + isError: false, + isLoading: false, + }; + const mockUpdateCurrentUser = setupMocks(mockUser); + const { default: App } = await import('../App'); + renderInContext( + + Test} /> + + ); + + await screen.findByText('Test'); + expect(mockUpdateCurrentUser).toHaveBeenCalledWith({ + isSignUpComplete: true, + hasAcceptedTos: true, + hasSubscribedToMarketingEmails: false, + }); + + // Cleanup localStorage mock to avoid affecting other tests + delete global.localStorage; + }); + + it('dynamically imports and test isSignUpComplete - server error', async () => { + const mockUser = { + data: { + id: 1, + lastActiveTimestamp: new Date(), + isSignUpComplete: true, + }, + isError: true, + isLoading: false, + }; + setupMocks(mockUser, '/playground'); + const { default: App } = await import('../App'); + renderInContext( + + Test} /> + + ); + await screen.debug(); + await screen.findByTestId('server-error-component'); + }); +}); diff --git a/app/src/client/tests/Button.test.tsx b/app/src/client/tests/Button.test.tsx new file mode 100644 index 00000000..e5af8728 --- /dev/null +++ b/app/src/client/tests/Button.test.tsx @@ -0,0 +1,21 @@ +import { test, expect, describe } from 'vitest'; +import { screen } from '@testing-library/react'; +import { renderInContext } from 'wasp/client/test'; + +import Button from '../components/Button'; + +describe('Button', () => { + test('renders Button component with default props', async () => { + renderInContext(