From 36c96f0d92ad185a4fa74dbd8d652a10d6cc5f27 Mon Sep 17 00:00:00 2001 From: radityaharya Date: Mon, 11 Nov 2024 09:51:34 +0000 Subject: [PATCH] next15, lint --- .env.example | 4 +- .eslintrc.cjs | 53 - .gitpod.yml | 26 - Dockerfile | 2 +- README.md | 4 +- biome.json | 4 +- bun.lockb | Bin 304490 -> 289260 bytes docker-compose.dev.yaml | 4 +- docker-compose.yaml | 4 +- eslint.config.mjs | 102 + next.config.mjs | 3 + package-lock.json | 8797 +++++++++++------ package.json | 101 +- prettier.config.js | 3 + sentry.client.config.ts | 36 +- sentry.edge.config.ts | 24 +- sentry.server.config.ts | 24 +- src/app/api/systeminfo/route.ts | 3 +- .../user/[uid]/playlist/[playlistId]/route.ts | 11 +- src/app/api/user/[uid]/playlists/route.ts | 13 +- src/app/api/user/[uid]/workflows/route.ts | 29 +- src/app/api/workflow/[id]/delete/route.ts | 16 +- src/app/api/workflow/[id]/history/route.ts | 16 +- src/app/api/workflow/[id]/route.ts | 21 +- src/app/api/workflow/[id]/run/route.ts | 12 +- src/app/api/workflow/queue/[id]/route.ts | 13 +- src/app/api/workflow/route.ts | 5 +- src/app/api/workflow/validate/route.ts | 5 +- src/app/auth/[route]/page.tsx | 36 +- src/app/auth/p/spotify/page.tsx | 3 +- src/app/auth/providerButtons.tsx | 51 +- src/app/global-error.tsx | 9 +- src/app/layout.tsx | 3 +- src/app/page.tsx | 2 +- src/app/states/store.ts | 15 +- src/app/utils/fetcher.ts | 2 +- src/app/utils/reactFlowToWorkflow.ts | 2 +- src/app/utils/runWorkflow.ts | 1 + src/app/utils/saveWorkflow.ts | 2 + src/app/utils/validateWorkflow.ts | 2 +- src/app/workflow/Builder.tsx | 19 +- src/app/workflow/Flow.tsx | 76 +- src/app/workflow/Sidebar.tsx | 14 +- src/app/workflow/[id]/page.tsx | 15 +- src/app/workflow/page.tsx | 17 +- src/app/workflow/settingsDialog/Settings.tsx | 27 +- .../workflow/settingsDialog/tabs/General.tsx | 7 +- .../workflow/settingsDialog/tabs/History.tsx | 15 +- .../workflow/settingsDialog/tabs/Schedule.tsx | 30 +- src/app/workflows/RunsGrid.tsx | 39 +- src/app/workflows/WorkflowGrid.tsx | 92 +- src/app/workflows/WorkflowTable.tsx | 54 +- src/app/workflows/page.tsx | 10 +- src/components/DragableNode.tsx | 11 +- src/components/LandingPage/BuilderDemo.tsx | 14 +- src/components/LandingPage/announcement.tsx | 2 +- src/components/LandingPage/page-header.tsx | 14 +- src/components/LoadingSpinner.tsx | 1 + src/components/SystemInfo.tsx | 9 +- .../GradientsBackground.tsx | 3 +- src/components/main-footer.tsx | 38 +- src/components/main-nav.tsx | 87 +- src/components/nodes/Combiner/Alternate.tsx | 7 +- src/components/nodes/Combiner/Push.tsx | 7 +- .../nodes/Combiner/RandomStream.tsx | 7 +- src/components/nodes/Filter/DedupeArtists.tsx | 7 +- src/components/nodes/Filter/DedupeTracks.tsx | 7 +- src/components/nodes/Filter/Limit.tsx | 19 +- src/components/nodes/Filter/RemoveMatch.tsx | 19 +- src/components/nodes/Library/AlbumTracks.tsx | 1 + .../nodes/Library/ArtistsTopTracks.tsx | 1 + src/components/nodes/Library/LikedTracks.tsx | 15 +- src/components/nodes/Library/MyTopTracks.tsx | 17 +- src/components/nodes/Library/Playlist.tsx | 43 +- src/components/nodes/Library/SaveAsAppend.tsx | 24 +- src/components/nodes/Library/SaveAsNew.tsx | 18 +- .../nodes/Library/SaveAsReplace.tsx | 23 +- src/components/nodes/Order/Reverse.tsx | 1 + .../nodes/Order/SeparateArtists.tsx | 1 + src/components/nodes/Order/Shuffle.tsx | 6 +- src/components/nodes/Order/Sort.tsx | 19 +- src/components/nodes/Order/SortPopularity.tsx | 1 + src/components/nodes/Primitives/Alert.tsx | 5 +- src/components/nodes/Primitives/Card.tsx | 41 +- src/components/nodes/Primitives/Debug.tsx | 5 +- src/components/nodes/Primitives/Input.tsx | 21 +- .../nodes/Primitives/NodeBuilder.tsx | 6 +- .../nodes/Primitives/NodeHandle.tsx | 18 +- .../nodes/Primitives/PlaylistCommand.tsx | 4 +- .../nodes/Primitives/PlaylistItem.tsx | 2 +- .../nodes/Selectors/AllButFirst.tsx | 7 +- src/components/nodes/Selectors/AllButLast.tsx | 7 +- src/components/nodes/Selectors/First.tsx | 4 +- src/components/nodes/Selectors/Last.tsx | 4 +- src/components/nodes/Selectors/Recommend.tsx | 17 +- src/components/ui/accordion.tsx | 7 +- src/components/ui/alert-dialog.tsx | 9 +- src/components/ui/alert.tsx | 5 +- src/components/ui/avatar.tsx | 7 +- src/components/ui/badge.tsx | 3 +- src/components/ui/breadcrumb.tsx | 7 +- src/components/ui/button.tsx | 5 +- src/components/ui/calendar.tsx | 9 +- src/components/ui/card.tsx | 11 +- src/components/ui/checkbox.tsx | 5 +- src/components/ui/command.tsx | 7 +- src/components/ui/dialog.tsx | 13 +- src/components/ui/dropdown-menu.tsx | 25 +- src/components/ui/form.tsx | 17 +- src/components/ui/input.tsx | 3 +- src/components/ui/label.tsx | 3 +- src/components/ui/pagination.tsx | 12 +- src/components/ui/popover.tsx | 3 +- src/components/ui/progress.tsx | 3 +- src/components/ui/resizable.tsx | 7 +- src/components/ui/scroll-area.tsx | 7 +- src/components/ui/select.tsx | 21 +- src/components/ui/separator.tsx | 3 +- src/components/ui/sheet.tsx | 15 +- src/components/ui/table.tsx | 5 +- src/components/ui/tabs.tsx | 3 +- src/components/ui/textarea.tsx | 3 +- .../ui/time-picker/period-select.tsx | 10 +- .../ui/time-picker/time-picker-12h.tsx | 12 +- .../ui/time-picker/time-picker-input.tsx | 9 +- src/components/ui/tooltip.tsx | 3 +- src/env.js | 10 +- src/hooks/useBasicNodeState.ts | 1 + src/hooks/usePlaylistState.ts | 79 +- src/hooks/useWorkflowData.ts | 3 +- src/lib/workflow/Base.ts | 2 + src/lib/workflow/Combiner.ts | 3 - src/lib/workflow/Library.ts | 3 - src/lib/workflow/Utility.ts | 3 - src/lib/workflow/Workflow.ts | 14 +- src/lib/workflow/utils/workflowQueue.ts | 4 +- src/middlewares/handlers/prettyPath.ts | 7 +- src/middlewares/handlers/userApi.ts | 12 +- src/server/auth.config.ts | 6 +- src/server/auth.ts | 10 +- src/server/db/helper.ts | 8 +- src/server/db/index.ts | 5 +- src/styles/globals.css | 16 +- tsconfig.json | 1 + worker/Dockerfile | 12 +- worker/worker.ts | 22 +- 146 files changed, 6766 insertions(+), 4148 deletions(-) delete mode 100644 .eslintrc.cjs delete mode 100644 .gitpod.yml create mode 100644 eslint.config.mjs diff --git a/.env.example b/.env.example index ef40b06..29fee61 100644 --- a/.env.example +++ b/.env.example @@ -6,8 +6,8 @@ DATABASE_URL='postgresql://postgres:postgres@postgres:5432/flowify-development' # You can generate a new secret on the command line with: # openssl rand -base64 32 # https://next-auth.js.org/configuration/options#secret -NEXTAUTH_SECRET="" -NEXTAUTH_URL="http://localhost:3000" +AUTH_SECRET="" +AUTH_URL="http://localhost:3000" # Next Auth Spotify Provider SPOTIFY_CLIENT_ID="" diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 2f08bff..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,53 +0,0 @@ -/** @type {import("eslint").Linter.Config} */ -const config = { - parser: "@typescript-eslint/parser", - parserOptions: { - project: true, - }, - plugins: ["@typescript-eslint"], - extends: [ - "plugin:@next/next/recommended", - "plugin:@typescript-eslint/recommended-type-checked", - "plugin:@typescript-eslint/stylistic-type-checked", - ], - rules: { - // These opinionated rules are enabled in stylistic-type-checked above. - // Feel free to reconfigure them to your own preference. - "@typescript-eslint/array-type": "off", - "@typescript-eslint/consistent-type-definitions": "off", - - "@typescript-eslint/consistent-type-imports": [ - "warn", - { - prefer: "type-imports", - fixStyle: "inline-type-imports", - }, - ], - "@typescript-eslint/no-unused-vars": ["off"], - "@typescript-eslint/require-await": "off", - "@typescript-eslint/no-misused-promises": [ - "error", - { - checksVoidReturn: { attributes: false }, - }, - ], - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-call": "off", - "@typescript-eslint/no-unsafe-return": "off", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-floating-promises": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-redundant-type-constituents": "off", - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/consistent-indexed-object-style": "off", - "@typescript-eslint/prefer-nullish-coalescing": "off", - "prefer-const": "off", - "@typescript-eslint/no-unnecessary-type-assertion": "warn", - "@typescript-eslint/consistent-generic-constructors": "warn", - "@typescript-eslint/no-namespace": "warn", - }, -}; - -module.exports = config; diff --git a/.gitpod.yml b/.gitpod.yml deleted file mode 100644 index 7a1fcd7..0000000 --- a/.gitpod.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This configuration file was automatically generated by Gitpod. -# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml) -# and commit this file to your remote git repository to share the goodness with others. - -# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart - -tasks: - - init: npm install && npm run build - command: npm run start - - name: tailscaled - command: | - if [ -n "${TAILSCALE_STATE_MYPROJECT}" ]; then - # restore the tailscale state from gitpod user's env vars - sudo mkdir -p /var/lib/tailscale - echo "${TAILSCALE_STATE_MYPROJECT}" | sudo tee /var/lib/tailscale/tailscaled.state > /dev/null - fi - sudo tailscaled - - name: tailscale - command: | - if [ -n "${TAILSCALE_STATE_MYPROJECT}" ]; then - sudo -E tailscale up - else - sudo -E tailscale up --hostname "gitpod-${GITPOD_GIT_USER_NAME// /-}-$(echo ${GITPOD_WORKSPACE_CONTEXT} | jq -r .repository.name)" - # store the tailscale state into gitpod user - gp env TAILSCALE_STATE_MYPROJECT="$(sudo cat /var/lib/tailscale/tailscaled.state)" - fi diff --git a/Dockerfile b/Dockerfile index 553f036..8dcde6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ WORKDIR /app COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./ RUN \ if [ -f yarn.lock ]; then yarn --frozen-lockfile; \ - elif [ -f package-lock.json ]; then npm ci; \ + elif [ -f package-lock.json ]; then npm ci --force; \ elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \ else echo "Lockfile not found." && exit 1; \ fi diff --git a/README.md b/README.md index 8684855..bd4d8e4 100644 --- a/README.md +++ b/README.md @@ -109,8 +109,8 @@ To get started with Flowify, follow these steps: | Variable | Description | | --------------------- | -----------------------------------| | DATABASE_URL | Postgres connection string | - | NEXTAUTH_SECRET | NextAuth secret key | - | NEXTAUTH_URL | NextAuth application URL | + | AUTH_SECRET | NextAuth secret key | + | AUTH_URL | NextAuth application URL | | SPOTIFY_CLIENT_ID | Spotify API client ID | | SPOTIFY_CLIENT_SECRET | Spotify API client secret | | REDIS_URL | Redis connection URL | diff --git a/biome.json b/biome.json index ab28f79..a7ec601 100644 --- a/biome.json +++ b/biome.json @@ -32,7 +32,6 @@ "noStaticOnlyClass": "off" }, "nursery": { - "noUndeclaredDependencies": "off", "useImportRestrictions": "off", "useSortedClasses": "off" }, @@ -47,7 +46,7 @@ }, "correctness": { "noUndeclaredVariables": "off", - "useExhaustiveDependencies":"warn" + "useExhaustiveDependencies": "warn" } } }, @@ -55,7 +54,6 @@ "formatter": { "jsxQuoteStyle": "double", "quoteProperties": "asNeeded", - "trailingCommas": "all", "semicolons": "always", "arrowParentheses": "always", "bracketSpacing": true, diff --git a/bun.lockb b/bun.lockb index 2a8e8a47c566ae65b33df05bc8ea7820cf45962d..8c0ef34d7485259da3a1dad2c5623f2afb205cfc 100755 GIT binary patch literal 289260 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 Om!$j|Dg6Au`uji05h^qQ literal 304490 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 k9P5 ({ + ...config, + files: ["**/*.ts", "**/*.tsx", "**/*.mts"], + })), + { + files: ["**/*.ts", "**/*.tsx", "**/*.mts"], + + plugins: { + "@typescript-eslint": typescriptEslint, + "unused-imports": unusedImports, + tailwindcss, + "simple-import-sort": simpleImportSort, + "react-compiler": reactCompiler, + }, + + rules: { + "react-compiler/react-compiler": "warn", + "prettier/prettier": ["warn"], + "tailwindcss/no-custom-classname": ["off"], + "import/no-extraneous-dependencies": "warn", + "no-param-reassign": "off", + "consistent-return": "off", + "no-empty-pattern": "off", + "no-use-before-define": "off", + "no-shadow": "off", + "@typescript-eslint/no-shadow": "off", + "@typescript-eslint/no-use-before-define": "off", + "react/jsx-no-constructed-context-values": "off", + "import/extensions": "off", + "react/function-component-definition": "off", + "react/destructuring-assignment": "off", + "react/require-default-props": "off", + "react/jsx-props-no-spreading": "off", + "react/no-unstable-nested-components": "off", + "@typescript-eslint/comma-dangle": "off", + "@typescript-eslint/consistent-type-imports": "error", + "no-restricted-syntax": [ + "error", + "ForInStatement", + "LabeledStatement", + "WithStatement", + ], + "import/prefer-default-export": "off", + "simple-import-sort/imports": "error", + "import/order": "off", + "@typescript-eslint/no-unused-vars": "off", + "unused-imports/no-unused-imports": "error", + "no-unused-vars": "off", + "@typescript-eslint/naming-convention": "off", + "import/no-anonymous-default-export": "off", + "unused-imports/no-unused-vars": [ + "warn", + { + vars: "all", + varsIgnorePattern: "^_", + args: "after-used", + argsIgnorePattern: "^_", + }, + ], + }, + ignores: [".next/**", "node_modules/**"], + }, +]; + +export default eslintConfig; diff --git a/next.config.mjs b/next.config.mjs index a649240..e9dd482 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -2,6 +2,9 @@ await import("./src/env.js"); const config = { output: process.env.STANDALONE_OUTPUT ? "standalone" : undefined, + experimental: { + reactCompiler: true, + }, images: { remotePatterns: [ { diff --git a/package-lock.json b/package-lock.json index 6848285..f99716d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "flowify", "version": "0.1.0", "dependencies": { - "@auth/drizzle-adapter": "^1.4.1", + "@auth/drizzle-adapter": "^1.7.2", "@bitpatty/imgproxy-url-builder": "^1.7.0", "@hookform/resolvers": "^3.9.0", "@neondatabase/serverless": "^0.9.4", @@ -26,76 +26,92 @@ "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-tabs": "^1.1.0", - "@radix-ui/react-tooltip": "^1.1.2", - "@sentry/nextjs": "^8.22.0", - "@sentry/react": "^8.22.0", + "@radix-ui/react-tabs": "^1.1.1", + "@radix-ui/react-tooltip": "^1.1.3", + "@sentry/react": "^8.35.0", "@spotify/web-api-ts-sdk": "^1.2.0", - "@t3-oss/env-nextjs": "^0.10.1", - "@tanstack/react-table": "^8.19.2", - "@types/lodash": "^4.17.7", + "@t3-oss/env-nextjs": "^0.11.1", + "@tanstack/react-table": "^8.20.5", + "@types/lodash": "^4.17.12", + "@types/react": "npm:types-react@rc", + "@types/react-dom": "npm:types-react-dom@rc", "@types/spotify-api": "^0.0.25", - "@xyflow/react": "^12.0.4", + "@xyflow/react": "^12.3.2", + "autoprefixer": "^10.4.20", "bullmq": "^5.12.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cmdk": "^1.0.0", "cronstrue": "^2.50.0", - "date-fns": "^3.6.0", + "date-fns": "^4.1.0", + "drizzle-kit": "^0.26.2", "drizzle-orm": "latest", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-next": "^15.0.2", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-tailwindcss": "^3.17.5", + "eslint-plugin-unused-imports": "^4.1.4", "html-to-image": "^1.11.11", "ioredis": "^5.4.1", "lodash": "^4.17.21", - "lucide-react": "^0.404.0", - "next": "^14.2.5", + "lucide-react": "^0.453.0", + "next": "^15.0.2", "next-auth": "^5.0.0-beta.25", "next-themes": "^0.3.0", - "pg": "^8.12.0", + "pg": "^8.13.0", "postgres": "^3.4.4", "radash": "^12.1.0", "random-words": "^2.0.1", - "react": "18.3.1", + "react": "19.0.0-rc-69d4b800-20241021", "react-day-picker": "^8.10.1", - "react-dom": "18.3.1", + "react-dom": "19.0.0-rc-69d4b800-20241021", "react-draggable": "^4.4.6", "react-hook-form": "^7.52.1", "react-resizable-panels": "^2.0.20", "react-wrap-balancer": "^1.1.1", - "sharp": "^0.33.4", + "sharp": "^0.33.5", "sonner": "^1.5.0", "spotify-web-api-node": "^5.0.2", "swr": "^2.2.5", - "tailwind-merge": "^2.4.0", + "tailwind-merge": "^2.5.4", "tailwindcss-animate": "^1.0.7", + "typescript-eslint": "^8.12.2", "uuid": "^10.0.0", "validator": "^13.12.0", "zod": "^3.23.8", "zustand": "^4.5.4" }, "devDependencies": { - "@biomejs/biome": "1.8.3", - "@faker-js/faker": "^8.4.1", - "@next/eslint-plugin-next": "^14.2.4", - "@types/bun": "^1.1.6", - "@types/eslint": "^8.56.10", - "@types/node": "^20.14.10", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", + "@biomejs/biome": "1.9.4", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.14.0", + "@faker-js/faker": "^9.0.3", + "@next/eslint-plugin-next": "15.0.1", + "@types/bun": "^1.1.12", + "@types/eslint": "^9.6.1", + "@types/node": "^22.7.9", "@types/spotify-web-api-node": "^5.0.11", "@types/uuid": "^10.0.0", - "@types/validator": "^13.12.0", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "autoprefixer": "^10.4.19", + "@types/validator": "^13.12.2", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.12.2", + "babel-plugin-react-compiler": "^19.0.0-beta-6fc168f-20241025", "dotenv-cli": "^7.4.2", - "drizzle-kit": "^0.23.1", - "eslint": "^8.57.0", - "express": "^4.19.2", - "postcss": "^8.4.39", - "prettier": "^3.3.2", - "prettier-plugin-tailwindcss": "^0.6.5", - "tailwindcss": "^3.4.6", - "typescript": "^5.5.3" + "eslint": "^9.14.0", + "eslint-plugin-react-compiler": "^19.0.0-beta-6fc168f-20241025", + "express": "^4.21.1", + "postcss": "^8.4.47", + "prettier": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.8", + "tailwindcss": "^3.4.14", + "typescript": "^5.6.3" } }, "node_modules/@alloc/quick-lru": { @@ -110,6 +126,7 @@ }, "node_modules/@ampproject/remapping": { "version": "2.3.0", + "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -120,14 +137,16 @@ } }, "node_modules/@auth/core": { - "version": "0.34.1", + "version": "0.37.2", + "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.37.2.tgz", + "integrity": "sha512-kUvzyvkcd6h1vpeMAojK2y7+PAV5H+0Cc9+ZlKYDFhDY31AlvsB+GW5vNO4qE3Y07KeQgvNO9U0QUx/fN62kBw==", "license": "ISC", "dependencies": { - "@panva/hkdf": "^1.1.1", + "@panva/hkdf": "^1.2.1", "@types/cookie": "0.6.0", - "cookie": "0.6.0", - "jose": "^5.1.3", - "oauth4webapi": "^2.10.4", + "cookie": "0.7.1", + "jose": "^5.9.3", + "oauth4webapi": "^3.0.0", "preact": "10.11.3", "preact-render-to-string": "5.2.3" }, @@ -149,17 +168,23 @@ } }, "node_modules/@auth/drizzle-adapter": { - "version": "1.4.1", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@auth/drizzle-adapter/-/drizzle-adapter-1.7.2.tgz", + "integrity": "sha512-PrXsbzcOGkw9A/lHr44SIOw0FBdXm9Me5xzmLCC54anPTiMmOq2FnJLjnPPnZZ/IKVOfTkSNOn9w9jtQgl2mCw==", "license": "ISC", "dependencies": { - "@auth/core": "0.34.1" + "@auth/core": "0.37.2" } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -168,6 +193,7 @@ }, "node_modules/@babel/compat-data": { "version": "7.24.7", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -175,6 +201,7 @@ }, "node_modules/@babel/core": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -203,19 +230,37 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.24.7", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -223,6 +268,7 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.24.7", @@ -237,6 +283,7 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { "version": "5.1.1", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" @@ -244,41 +291,69 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache/node_modules/yallist": { "version": "3.1.1", + "dev": true, "license": "ISC" }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-function-name": { + "node_modules/@babel/helper-environment-visitor": { "version": "7.24.7", + "dev": true, "license": "MIT", "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", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -286,6 +361,7 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.24.7", @@ -297,6 +373,7 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.24.7", @@ -312,137 +389,156 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { + "node_modules/@babel/helper-simple-access": { "version": "7.24.7", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helpers": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.24.7", "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "devOptional": true, "license": "MIT", - "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/chalk": { - "version": "2.4.2", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "devOptional": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert": { - "version": "1.9.3", + "node_modules/@babel/helpers": { + "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=0.8.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk/node_modules/supports-color/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/parser": { - "version": "7.24.7", + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dev": true, "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/runtime": { @@ -456,29 +552,32 @@ } }, "node_modules/@babel/template": { - "version": "7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, "license": "MIT", "dependencies": { - "@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", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -488,25 +587,30 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", + "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.24.7", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@biomejs/biome": { - "version": "1.8.3", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz", + "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==", "dev": true, "hasInstallScript": true, "license": "MIT OR Apache-2.0", @@ -521,18 +625,88 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "1.8.3", - "@biomejs/cli-darwin-x64": "1.8.3", - "@biomejs/cli-linux-arm64": "1.8.3", - "@biomejs/cli-linux-arm64-musl": "1.8.3", - "@biomejs/cli-linux-x64": "1.8.3", - "@biomejs/cli-linux-x64-musl": "1.8.3", - "@biomejs/cli-win32-arm64": "1.8.3", - "@biomejs/cli-win32-x64": "1.8.3" + "@biomejs/cli-darwin-arm64": "1.9.4", + "@biomejs/cli-darwin-x64": "1.9.4", + "@biomejs/cli-linux-arm64": "1.9.4", + "@biomejs/cli-linux-arm64-musl": "1.9.4", + "@biomejs/cli-linux-x64": "1.9.4", + "@biomejs/cli-linux-x64-musl": "1.9.4", + "@biomejs/cli-win32-arm64": "1.9.4", + "@biomejs/cli-win32-x64": "1.9.4" + } + }, + "node_modules/@biomejs/cli-darwin-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz", + "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-darwin-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz", + "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz", + "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz", + "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "1.8.3", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz", + "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==", "cpu": [ "x64" ], @@ -547,7 +721,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "1.8.3", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz", + "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==", "cpu": [ "x64" ], @@ -561,19 +737,62 @@ "node": ">=14.21.3" } }, + "node_modules/@biomejs/cli-win32-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz", + "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz", + "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, "node_modules/@bitpatty/imgproxy-url-builder": { "version": "1.7.0", "license": "MIT" }, "node_modules/@drizzle-team/brocli": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.8.2.tgz", - "integrity": "sha512-zTrFENsqGvOkBOuHDC1pXCkDXNd2UhP4lI3gYGhQ1R1SPeAAfqzPsV1dcpMy4uNU6kB5VpU5NGhvwxVNETR02A==", - "dev": true + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.10.2.tgz", + "integrity": "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==", + "license": "Apache-2.0" + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } }, "node_modules/@esbuild-kit/core-utils": { "version": "3.3.2", - "dev": true, "license": "MIT", "dependencies": { "esbuild": "~0.18.20", @@ -582,7 +801,6 @@ }, "node_modules/@esbuild-kit/core-utils/node_modules/esbuild": { "version": "0.18.20", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -621,7 +839,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -633,7 +850,6 @@ }, "node_modules/@esbuild-kit/esm-loader": { "version": "2.6.5", - "dev": true, "license": "MIT", "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", @@ -645,7 +861,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -656,36 +871,87 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "dev": true, + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -693,22 +959,68 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/js": { - "version": "8.57.0", - "dev": true, + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", + "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", + "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@faker-js/faker": { - "version": "8.4.1", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.1.0.tgz", + "integrity": "sha512-GJvX9iM9PBtKScJVlXQ0tWpihK3i0pha/XAhzQa1hPK/ILLa1Wq3I63Ij7lRtqTwmdTxRCyrUhLC5Sly9SLbug==", "dev": true, "funding": [ { @@ -718,38 +1030,33 @@ ], "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0", - "npm": ">=6.14.13" + "node": ">=18.0.0", + "npm": ">=9.0.0" } }, "node_modules/@floating-ui/core": { - "version": "1.6.4", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.4" + "@floating-ui/utils": "^0.2.8" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.7", + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.4" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "@floating-ui/utils": "^0.2.8" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.4", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==", "license": "MIT" }, "node_modules/@hookform/resolvers": { @@ -759,22 +1066,45 @@ "react-hook-form": "^7.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "dev": true, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "license": "Apache-2.0", "engines": { "node": ">=12.22" @@ -784,13 +1114,147 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "dev": true, - "license": "BSD-3-Clause" + "node_modules/@humanwhocodes/retry": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.0.tgz", + "integrity": "sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.2", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", "cpu": [ "x64" ], @@ -799,18 +1263,30 @@ "os": [ "linux" ], - "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.2", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", "cpu": [ "x64" ], @@ -819,20 +1295,38 @@ "os": [ "linux" ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" } }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.33.4", + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", "cpu": [ - "x64" + "arm64" ], "license": "Apache-2.0", "optional": true, @@ -840,21 +1334,41 @@ "linux" ], "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.2" + "@img/sharp-libvips-linux-arm64": "1.0.4" } }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.4", + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", "cpu": [ "x64" ], @@ -864,17 +1378,114 @@ "linux" ], "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.2" + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, "node_modules/@ioredis/commands": { @@ -945,15 +1556,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "license": "MIT" @@ -985,26 +1587,59 @@ } }, "node_modules/@next/env": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", - "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==" + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz", + "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==", + "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", - "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.1.tgz", + "integrity": "sha512-bKWsMaGPbiFAaGqrDJvbE8b4Z0uKicGVcgOI77YM2ui3UfjHMr4emFPrZTLeZVchi7fT1mooG2LxREfUUClIKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "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/@next/eslint-plugin-next/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==", "dev": true, + "license": "ISC", "dependencies": { - "glob": "10.3.10" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", - "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz", + "integrity": "sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1014,12 +1649,13 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz", - "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz", + "integrity": "sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1029,12 +1665,13 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz", - "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz", + "integrity": "sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1044,12 +1681,13 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz", - "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz", + "integrity": "sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1059,12 +1697,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz", - "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz", + "integrity": "sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1074,12 +1713,13 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz", - "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz", + "integrity": "sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -1089,27 +1729,13 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz", - "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz", + "integrity": "sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==", "cpu": [ "arm64" ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz", - "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==", - "cpu": [ - "ia32" - ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -1119,12 +1745,13 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz", - "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz", + "integrity": "sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -1162,442 +1789,304 @@ "node": ">= 8" } }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, "node_modules/@opentelemetry/api": { "version": "1.9.0", "license": "Apache-2.0", + "optional": true, + "peer": true, "engines": { "node": ">=8.0.0" } }, - "node_modules/@opentelemetry/api-logs": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz", - "integrity": "sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==", - "dependencies": { - "@opentelemetry/api": "^1.0.0" - }, - "engines": { - "node": ">=14" + "node_modules/@panva/hkdf": { + "version": "1.2.1", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" } }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.25.1.tgz", - "integrity": "sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "license": "MIT", + "optional": true, "engines": { "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@opentelemetry/core": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", - "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.25.1" - }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "license": "MIT", "engines": { - "node": ">=14" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.52.1.tgz", - "integrity": "sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==", - "dependencies": { - "@opentelemetry/api-logs": "0.52.1", - "@types/shimmer": "^1.0.2", - "import-in-the-middle": "^1.8.1", - "require-in-the-middle": "^7.1.1", - "semver": "^7.5.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "license": "MIT" }, - "node_modules/@opentelemetry/instrumentation-connect": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.38.0.tgz", - "integrity": "sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg==", - "dependencies": { - "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/connect": "3.4.36" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "license": "MIT" }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.41.1.tgz", - "integrity": "sha512-uRx0V3LPGzjn2bxAnV8eUsDT82vT7NTwI0ezEuPMBOTOsnPpGhWdhcdNdhH80sM4TrWrOfXm9HGEdfWE3TRIww==", + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.0", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" - }, - "engines": { - "node": ">=14" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collapsible": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-fastify": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.38.0.tgz", - "integrity": "sha512-HBVLpTSYpkQZ87/Df3N0gAw7VzYZV3n28THIBrJWfuqw3Or7UqdhnjeuMIPQ04BKk3aZc0cWn2naSQObbh5vXw==", - "dependencies": { - "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" - }, - "engines": { - "node": ">=14" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-graphql": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.42.0.tgz", - "integrity": "sha512-N8SOwoKL9KQSX7z3gOaw5UaTeVQcfDO1c21csVHnmnmGUoqsXbArK2B8VuwPWcv6/BC/i3io+xTo7QGRZ/z28Q==", + "node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-collapsible": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.0.tgz", + "integrity": "sha512-zQY7Epa8sTL0mq4ajSJpjgn2YmCgyrG7RsQgLp3C0LQVkG7+Tf6Pv1CeNWZLyqMjhdPkBa5Lx7wYBeSu7uCSTA==", + "license": "MIT", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0" - }, - "engines": { - "node": ">=14" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-hapi": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.40.0.tgz", - "integrity": "sha512-8U/w7Ifumtd2bSN1OLaSwAAFhb9FyqWUki3lMMB0ds+1+HdSxYBe9aspEJEgvxAqOkrQnVniAPTEGf1pGM7SOw==", - "dependencies": { - "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" - }, - "engines": { - "node": ">=14" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.52.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.52.1.tgz", - "integrity": "sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==", + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.1", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/semantic-conventions": "1.25.1", - "semver": "^7.5.2" - }, - "engines": { - "node": ">=14" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dialog": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-ioredis": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.42.0.tgz", - "integrity": "sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.23.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-koa": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.42.0.tgz", - "integrity": "sha512-H1BEmnMhho8o8HuNRq5zEI4+SIHDIglNB7BPKohZyWG4fWNuR7yM4GTlR01Syq21vODAS7z5omblScJD/eZdKw==", + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", + "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" - }, - "engines": { - "node": ">=14" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mongodb": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.46.0.tgz", - "integrity": "sha512-VF/MicZ5UOBiXrqBslzwxhN7TVqzu1/LN/QDpkskqM0Zm0aZ4CVRbUygL8d7lrjLn15x5kGIe8VsSphMfPJzlA==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/sdk-metrics": "^1.9.1", - "@opentelemetry/semantic-conventions": "^1.22.0" - }, - "engines": { - "node": ">=14" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-mongoose": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.40.0.tgz", - "integrity": "sha512-niRi5ZUnkgzRhIGMOozTyoZIvJKNJyhijQI4nF4iFSb+FUx2v5fngfR+8XLmdQAO7xmsD8E5vEGdDVYVtKbZew==", + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "^1.8.0", - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0" + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" }, "engines": { - "node": ">=14" + "node": ">=10" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-mysql": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.40.0.tgz", - "integrity": "sha512-d7ja8yizsOCNMYIJt5PH/fKZXjb/mS48zLROO4BzZTtDfhNCl2UM/9VIomP2qkGIFVouSJrGr/T00EzY7bPtKA==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@types/mysql": "2.15.22" - }, - "engines": { - "node": ">=14" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-mysql2": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.40.0.tgz", - "integrity": "sha512-0xfS1xcqUmY7WE1uWjlmI67Xg3QsSUlNT+AcXHeA4BDUPwZtWqF4ezIwLgpVZfHOnkAEheqGfNSWd1PIu3Wnfg==", + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@opentelemetry/sql-common": "^0.40.1" + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=10" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-nestjs-core": { - "version": "0.39.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.39.0.tgz", - "integrity": "sha512-mewVhEXdikyvIZoMIUry8eb8l3HUjuQjSjVbmLVTt4NQi35tkpnHQrG9bTRBrl3403LoWZ2njMPJyg4l6HfKvA==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.23.0" - }, - "engines": { - "node": ">=14" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/instrumentation-pg": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.43.0.tgz", - "integrity": "sha512-og23KLyoxdnAeFs1UWqzSonuCkePUzCX30keSYigIzJe/6WSYA8rnEI5lobcxPEzg+GcU06J7jzokuEHbjVJNw==", + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/semantic-conventions": "^1.22.0", - "@opentelemetry/sql-common": "^0.40.1", - "@types/pg": "8.6.1", - "@types/pg-pool": "2.0.4" + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=10" }, "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-pg/node_modules/@types/pg": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz", - "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==", - "dependencies": { - "@types/node": "*", - "pg-protocol": "*", - "pg-types": "^2.2.0" - } - }, - "node_modules/@opentelemetry/instrumentation-redis-4": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.41.0.tgz", - "integrity": "sha512-H7IfGTqW2reLXqput4yzAe8YpDC0fmVNal95GHMLOrS89W+qWUKIqxolSh63hJyfmwPSFwXASzj7wpSk8Az+Dg==", - "dependencies": { - "@opentelemetry/instrumentation": "^0.52.0", - "@opentelemetry/redis-common": "^0.36.2", - "@opentelemetry/semantic-conventions": "^1.22.0" - }, - "engines": { - "node": ">=14" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/redis-common": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz", - "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==", - "engines": { - "node": ">=14" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/resources": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", - "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/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==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "tslib": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=10" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.25.1.tgz", - "integrity": "sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q==", - "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=14" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, - "peerDependencies": { - "@opentelemetry/api": ">=1.3.0 <1.10.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", - "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/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==", + "license": "MIT", "dependencies": { - "@opentelemetry/core": "1.25.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/semantic-conventions": "1.25.1" + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=10" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.10.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", - "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/sql-common": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz", - "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==", - "dependencies": { - "@opentelemetry/core": "^1.1.0" - }, - "engines": { - "node": ">=14" + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0" - } - }, - "node_modules/@panva/hkdf": { - "version": "1.2.1", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@prisma/instrumentation": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-5.17.0.tgz", - "integrity": "sha512-c1Sle4ji8aasMcYfBBHFM56We4ljfenVtRmS8aY06BllS7SoU6SmJBwG7vil+GHiR0Yrh+t9iBwt4AY0Jr4KNQ==", - "dependencies": { - "@opentelemetry/api": "^1.8", - "@opentelemetry/instrumentation": "^0.49 || ^0.50 || ^0.51 || ^0.52.0", - "@opentelemetry/sdk-trace-base": "^1.22" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@radix-ui/number": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/@radix-ui/primitive": { + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.0", - "license": "MIT" - }, - "node_modules/@radix-ui/react-accordion": { - "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collapsible": "1.1.0", - "@radix-ui/react-collection": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-controllable-state": "1.1.0" + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -1614,16 +2103,14 @@ } } }, - "node_modules/@radix-ui/react-alert-dialog": { + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-portal": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dialog": "1.1.1", "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -1642,6 +2129,8 @@ }, "node_modules/@radix-ui/react-arrow": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.0" @@ -1714,14 +2203,16 @@ } }, "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.0", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.1.tgz", + "integrity": "sha512-1///SnrfQHJEofLokyczERxQbWfCGQlQ2XsCZMucVs6it+lq9iw4vXy+uDn1edlb58cOZOWSldnfPAYcT4O/Yg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-controllable-state": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0" @@ -1741,8 +2232,49 @@ } } }, + "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-collection": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.0", @@ -1792,23 +2324,25 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.1", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", + "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", "@radix-ui/react-focus-scope": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "react-remove-scroll": "2.6.0" }, "peerDependencies": { "@types/react": "*", @@ -1825,8 +2359,10 @@ } } }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1838,42 +2374,29 @@ } } }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.0", + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" - }, "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.1", + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-menu": "2.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-controllable-state": "1.1.0" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -1890,12 +2413,24 @@ } } }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.0", + "node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", "license": "MIT", + "dependencies": { + "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": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -1903,38 +2438,44 @@ } } }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.0", + "node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0" + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@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 - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.0", + "node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -1942,84 +2483,73 @@ } } }, - "node_modules/@radix-ui/react-label": { - "version": "2.1.0", + "node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/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==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@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 - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-menu": { - "version": "2.1.1", + "node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/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==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@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 - }, - "@types/react-dom": { + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { "optional": true } } }, - "node_modules/@radix-ui/react-popover": { + "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -2036,20 +2566,17 @@ } } }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.0", + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.1", "license": "MIT", "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.1", "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-rect": "1.1.0", - "@radix-ui/react-use-size": "1.1.0", - "@radix-ui/rect": "1.1.0" + "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -2066,34 +2593,28 @@ } } }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.1", + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.0", "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-presence": { + "node_modules/@radix-ui/react-focus-scope": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -2110,32 +2631,26 @@ } } }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-progress": { - "version": "1.1.0", + "node_modules/@radix-ui/react-label": { + "version": "2.1.0", "license": "MIT", "dependencies": { - "@radix-ui/react-context": "1.1.0", "@radix-ui/react-primitive": "2.0.0" }, "peerDependencies": { @@ -2153,8 +2668,10 @@ } } }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.0", + "node_modules/@radix-ui/react-menu": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.1.tgz", + "integrity": "sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", @@ -2162,10 +2679,19 @@ "@radix-ui/react-compose-refs": "1.1.0", "@radix-ui/react-context": "1.1.0", "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-presence": "1.1.0", "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" }, "peerDependencies": { "@types/react": "*", @@ -2182,19 +2708,17 @@ } } }, - "node_modules/@radix-ui/react-scroll-area": { + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", "license": "MIT", "dependencies": { - "@radix-ui/number": "1.1.0", "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.0", "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" + "@radix-ui/react-use-escape-keydown": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -2211,31 +2735,14 @@ } } }, - "node_modules/@radix-ui/react-select": { - "version": "2.1.1", + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", "license": "MIT", "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.1", "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -2252,36 +2759,46 @@ } } }, - "node_modules/@radix-ui/react-separator": { - "version": "1.1.0", + "node_modules/@radix-ui/react-menu/node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true - }, - "@types/react-dom": { - "optional": true } } }, - "node_modules/@radix-ui/react-slot": { - "version": "1.1.0", + "node_modules/@radix-ui/react-menu/node_modules/react-remove-scroll/node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0" + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2289,42 +2806,82 @@ } } }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.0", + "node_modules/@radix-ui/react-menu/node_modules/react-remove-scroll/node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@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 - }, - "@types/react-dom": { + } + } + }, + "node_modules/@radix-ui/react-menu/node_modules/react-remove-scroll/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==", + "license": "MIT", + "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/@radix-ui/react-tooltip": { + "node_modules/@radix-ui/react-menu/node_modules/react-remove-scroll/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==", + "license": "MIT", + "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/@radix-ui/react-popover": { + "version": "1.1.1", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.0", "@radix-ui/react-compose-refs": "1.1.0", "@radix-ui/react-context": "1.1.0", "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", "@radix-ui/react-id": "1.1.0", "@radix-ui/react-popper": "1.2.0", "@radix-ui/react-portal": "1.1.1", @@ -2332,7 +2889,8 @@ "@radix-ui/react-primitive": "2.0.0", "@radix-ui/react-slot": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0" + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" }, "peerDependencies": { "@types/react": "*", @@ -2349,44 +2907,75 @@ } } }, - "node_modules/@radix-ui/react-use-callback-ref": { + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true + }, + "@types/react-dom": { + "optional": true } } }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true + }, + "@types/react-dom": { + "optional": true } } }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", + "node_modules/@radix-ui/react-popover/node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2394,12 +2983,21 @@ } } }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", + "node_modules/@radix-ui/react-popover/node_modules/react-remove-scroll/node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2407,12 +3005,22 @@ } } }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.0", + "node_modules/@radix-ui/react-popover/node_modules/react-remove-scroll/node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2420,15 +3028,20 @@ } } }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.0", + "node_modules/@radix-ui/react-popover/node_modules/react-remove-scroll/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==", "license": "MIT", "dependencies": { - "@radix-ui/rect": "1.1.0" + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2436,15 +3049,21 @@ } } }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.0", + "node_modules/@radix-ui/react-popover/node_modules/react-remove-scroll/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==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2452,11 +3071,22 @@ } } }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.0", + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" }, "peerDependencies": { "@types/react": "*", @@ -2473,956 +3103,1031 @@ } } }, - "node_modules/@radix-ui/rect": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "26.0.1", + "node_modules/@radix-ui/react-popper/node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "glob": "^10.4.1", - "is-reference": "1.2.1", - "magic-string": "^0.30.3" + "@floating-ui/dom": "^1.0.0" }, - "engines": { - "node": ">=16.0.0 || 14 >= 14.17" + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "rollup": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@rollup/plugin-commonjs/node_modules/glob": { - "version": "10.4.5", - "license": "ISC", + "node_modules/@radix-ui/react-presence": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz", + "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@rollup/plugin-commonjs/node_modules/glob/node_modules/jackspeak": { - "version": "3.4.2", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "14 >=14.21 || 16 >=16.20 || >=18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@rollup/plugin-commonjs/node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "license": "ISC", + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@radix-ui/react-slot": "1.1.0" }, - "engines": { - "node": ">=16 || 14 >=14.17" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@rollup/plugin-commonjs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", + "node_modules/@radix-ui/react-progress": { + "version": "1.1.0", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.0", + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", + "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "rollup": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@sentry-internal/browser-utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.22.0.tgz", - "integrity": "sha512-R0u8KPaSivueIwUOhmYxcisKaJq3gx+I0xOcWoluDB3OI1Ds/QOSP/vmTsMg/mjwG/nUJ8RRM8pj0s8vlqCrjg==", + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.1.0", + "license": "MIT", "dependencies": { - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, - "engines": { - "node": ">=14.18" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@sentry-internal/feedback": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.22.0.tgz", - "integrity": "sha512-Sy2+v0xBmVnZ5LQ48603CvLy5vVQvAZ+hc9xQSAHexts07NkvApMU1qv26YNwxlAWfDha1wXiW6ryd4YDzaoVA==", + "node_modules/@radix-ui/react-select": { + "version": "2.1.1", + "license": "MIT", "dependencies": { - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.0", + "@radix-ui/react-focus-guards": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.7" }, - "engines": { - "node": ">=14.18" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@sentry-internal/replay": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.22.0.tgz", - "integrity": "sha512-sF8RyMPJP1fSIyyBDAbtybvKCu0dy8ZAfMwLP7ZqEnWrhZqktVuqM7/++EAFMlD5YaWJXm1IDuOXjgSQjUtSIQ==", + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz", + "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==", + "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.22.0", - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" }, - "engines": { - "node": ">=14.18" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.22.0.tgz", - "integrity": "sha512-/gV8qN3JqWw0LXTMuCGB8RDI8Bx1VESNRBdh/7Cmc5+hxYBfcketuix3S8mHWcE/JO+Ed9g1Abzys6GphTB9LA==", + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-portal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz", + "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==", + "license": "MIT", "dependencies": { - "@sentry-internal/replay": "8.22.0", - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, - "engines": { - "node": ">=14.18" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@sentry/babel-plugin-component-annotate": { - "version": "2.20.1", + "node_modules/@radix-ui/react-select/node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@sentry/browser": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.22.0.tgz", - "integrity": "sha512-t3b+/9WWcP9SQTWwrHrB57B33ENgmUjyFlW2+JSlCXkSJBSmAoquPZ/GPjOuPaSr3HIA0mu9uEr4A41d5diASQ==", "dependencies": { - "@sentry-internal/browser-utils": "8.22.0", - "@sentry-internal/feedback": "8.22.0", - "@sentry-internal/replay": "8.22.0", - "@sentry-internal/replay-canvas": "8.22.0", - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" }, "engines": { - "node": ">=14.18" + "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/@sentry/bundler-plugin-core": { - "version": "2.20.1", + "node_modules/@radix-ui/react-select/node_modules/react-remove-scroll/node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", "license": "MIT", "dependencies": { - "@babel/core": "^7.18.5", - "@sentry/babel-plugin-component-annotate": "2.20.1", - "@sentry/cli": "^2.22.3", - "dotenv": "^16.3.1", - "find-up": "^5.0.0", - "glob": "^9.3.2", - "magic-string": "0.30.8", - "unplugin": "1.0.1" + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" }, "engines": { - "node": ">= 14" + "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/@sentry/bundler-plugin-core/node_modules/glob": { - "version": "9.3.5", - "license": "ISC", + "node_modules/@radix-ui/react-select/node_modules/react-remove-scroll/node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "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/@sentry/bundler-plugin-core/node_modules/glob/node_modules/minimatch": { - "version": "8.0.4", - "license": "ISC", + "node_modules/@radix-ui/react-select/node_modules/react-remove-scroll/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==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "tslib": "^2.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/glob/node_modules/minipass": { - "version": "4.2.8", - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/magic-string": { - "version": "0.30.8", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, - "engines": { - "node": ">=12" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@sentry/bundler-plugin-core/node_modules/unplugin": { - "version": "1.0.1", + "node_modules/@radix-ui/react-select/node_modules/react-remove-scroll/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==", "license": "MIT", "dependencies": { - "acorn": "^8.8.1", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.5.0" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/unplugin/node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "license": "MIT" - }, - "node_modules/@sentry/cli": { - "version": "2.32.1", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.7", - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "which": "^2.0.2" - }, - "bin": { - "sentry-cli": "bin/sentry-cli" - }, - "engines": { - "node": ">= 10" + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" }, - "optionalDependencies": { - "@sentry/cli-darwin": "2.32.1", - "@sentry/cli-linux-arm": "2.32.1", - "@sentry/cli-linux-arm64": "2.32.1", - "@sentry/cli-linux-i686": "2.32.1", - "@sentry/cli-linux-x64": "2.32.1", - "@sentry/cli-win32-i686": "2.32.1", - "@sentry/cli-win32-x64": "2.32.1" - } - }, - "node_modules/@sentry/cli-linux-x64": { - "version": "2.32.1", - "cpu": [ - "x64" - ], - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], "engines": { "node": ">=10" - } - }, - "node_modules/@sentry/core": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.22.0.tgz", - "integrity": "sha512-fYPnxp7UkY2tckaOtivIySxnJvlbekuxs+Qi6rkUv9JpF+TYKpt7OPNUAbgVIhS0xazAEN6iKTfmnmpUbFRLmQ==", - "dependencies": { - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" - }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry/nextjs": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-8.22.0.tgz", - "integrity": "sha512-XYb/3ocQLhZmdqqTgI7xce7AiRpHn3L6Sj3RVTBwNb4nb+XOfQ8o0LKF7v7yo6LGoQin+IWpWPACnNc8zH7fBA==", - "dependencies": { - "@opentelemetry/instrumentation-http": "0.52.1", - "@opentelemetry/semantic-conventions": "^1.25.1", - "@rollup/plugin-commonjs": "26.0.1", - "@sentry/core": "8.22.0", - "@sentry/node": "8.22.0", - "@sentry/opentelemetry": "8.22.0", - "@sentry/react": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0", - "@sentry/vercel-edge": "8.22.0", - "@sentry/webpack-plugin": "2.20.1", - "chalk": "3.0.0", - "resolve": "1.22.8", - "rollup": "3.29.4", - "stacktrace-parser": "^0.1.10" - }, - "engines": { - "node": ">=14.18" }, "peerDependencies": { - "next": "^13.2.0 || ^14.0 || ^15.0.0-rc.0", - "webpack": ">= 5.0.0" + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { - "webpack": { + "@types/react": { "optional": true } } }, - "node_modules/@sentry/nextjs/node_modules/chalk": { - "version": "3.0.0", + "node_modules/@radix-ui/react-separator": { + "version": "1.1.0", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-8.22.0.tgz", - "integrity": "sha512-xDLB4TJXT8iFKwoFneOIJtlfpsUB6L0m32Do97TrQ1dY2WilspksznrU2Ac+XfshdNxa8Sqr4tSj07Yzn0VNiQ==", - "dependencies": { - "@opentelemetry/api": "^1.9.0", - "@opentelemetry/context-async-hooks": "^1.25.1", - "@opentelemetry/core": "^1.25.1", - "@opentelemetry/instrumentation": "^0.52.1", - "@opentelemetry/instrumentation-connect": "0.38.0", - "@opentelemetry/instrumentation-express": "0.41.1", - "@opentelemetry/instrumentation-fastify": "0.38.0", - "@opentelemetry/instrumentation-graphql": "0.42.0", - "@opentelemetry/instrumentation-hapi": "0.40.0", - "@opentelemetry/instrumentation-http": "0.52.1", - "@opentelemetry/instrumentation-ioredis": "0.42.0", - "@opentelemetry/instrumentation-koa": "0.42.0", - "@opentelemetry/instrumentation-mongodb": "0.46.0", - "@opentelemetry/instrumentation-mongoose": "0.40.0", - "@opentelemetry/instrumentation-mysql": "0.40.0", - "@opentelemetry/instrumentation-mysql2": "0.40.0", - "@opentelemetry/instrumentation-nestjs-core": "0.39.0", - "@opentelemetry/instrumentation-pg": "0.43.0", - "@opentelemetry/instrumentation-redis-4": "0.41.0", - "@opentelemetry/resources": "^1.25.1", - "@opentelemetry/sdk-trace-base": "^1.25.1", - "@opentelemetry/semantic-conventions": "^1.25.1", - "@prisma/instrumentation": "5.17.0", - "@sentry/core": "8.22.0", - "@sentry/opentelemetry": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0", - "import-in-the-middle": "^1.11.0" + "@radix-ui/react-primitive": "2.0.0" }, - "engines": { - "node": ">=14.18" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "optionalDependencies": { - "opentelemetry-instrumentation-fetch-node": "1.2.3" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@sentry/opentelemetry": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-8.22.0.tgz", - "integrity": "sha512-JqNsoyPdZ88Me2SdxAqq/5agcMzUzZ5xIjrM4ETC1aaeD+cPij/xL4U31b8S7aFJy3miaaZqFzpBy9A/YtFxLw==", + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "license": "MIT", "dependencies": { - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" - }, - "engines": { - "node": ">=14.18" + "@radix-ui/react-compose-refs": "1.1.0" }, "peerDependencies": { - "@opentelemetry/api": "^1.9.0", - "@opentelemetry/core": "^1.25.1", - "@opentelemetry/instrumentation": "^0.52.1", - "@opentelemetry/sdk-trace-base": "^1.25.1", - "@opentelemetry/semantic-conventions": "^1.25.1" - } - }, - "node_modules/@sentry/react": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.22.0.tgz", - "integrity": "sha512-LcO8SPfjYsx3Zvg1mQwjreVvtriVxde+6njIJyXU9TArB0e8bFexvd4MGXdBExgW9aY449hNaStgKRWMNHeVHQ==", - "dependencies": { - "@sentry/browser": "8.22.0", - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0", - "hoist-non-react-statics": "^3.3.2" - }, - "engines": { - "node": ">=14.18" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "peerDependencies": { - "react": "^16.14.0 || 17.x || 18.x || 19.x" - } - }, - "node_modules/@sentry/types": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.22.0.tgz", - "integrity": "sha512-1MLK3xO+uF2oJaa+M98aLIrQsEHzV7xnVWPfE3MhejYLNQebj4rQnQKTut/xZNIF9W0Q+bRcakLarC3ce2a74g==", - "engines": { - "node": ">=14.18" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@sentry/utils": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.22.0.tgz", - "integrity": "sha512-0ITG2+3EtyMtyc/nQG8aB9z9eIQ4L43nM/KuNgYSnM1vPl/zegbaLT0Ek/xkQB1OLIOLkEPQ6x9GWe+248/n3g==", + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", + "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", + "license": "MIT", "dependencies": { - "@sentry/types": "8.22.0" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" }, - "engines": { - "node": ">=14.18" - } - }, - "node_modules/@sentry/vercel-edge": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@sentry/vercel-edge/-/vercel-edge-8.22.0.tgz", - "integrity": "sha512-2kkyJ+mvAOEIcM+YY21kMCjx2OI1r+4qYaKPwXWagns41+BcqAl1I8/lU6ZjbNP2wm9iy4kmYcZwx8P5VLtWAw==", - "dependencies": { - "@sentry/core": "8.22.0", - "@sentry/types": "8.22.0", - "@sentry/utils": "8.22.0" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "engines": { - "node": ">=14.18" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@sentry/webpack-plugin": { - "version": "2.20.1", + "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "license": "MIT", - "dependencies": { - "@sentry/bundler-plugin-core": "2.20.1", - "unplugin": "1.0.1", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">= 14" - }, "peerDependencies": { - "webpack": ">=4.40.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@sentry/webpack-plugin/node_modules/unplugin": { - "version": "1.0.1", + "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", "license": "MIT", "dependencies": { - "acorn": "^8.8.1", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.5.0" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@sentry/webpack-plugin/node_modules/unplugin/node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "license": "MIT" - }, - "node_modules/@sentry/webpack-plugin/node_modules/uuid": { - "version": "9.0.1", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.3.tgz", + "integrity": "sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@spotify/web-api-ts-sdk": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@spotify/web-api-ts-sdk/-/web-api-ts-sdk-1.2.0.tgz", - "integrity": "sha512-JUaebva3Ohwo5I5tuTqyW/FKGOMbb40YevJMySAOINRxP7qQ/AMjBzfJx0zeO6yS+wAPfQSoGNsZaUggHw8vsA==" - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.5", - "license": "Apache-2.0", "dependencies": { - "@swc/counter": "^0.1.3", - "tslib": "^2.4.0" + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@t3-oss/env-core": { - "version": "0.10.1", + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "license": "MIT", "peerDependencies": { - "typescript": ">=5.0.0", - "zod": "^3.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { "optional": true } } }, - "node_modules/@t3-oss/env-nextjs": { - "version": "0.10.1", + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", "license": "MIT", "dependencies": { - "@t3-oss/env-core": "0.10.1" + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { - "typescript": ">=5.0.0", - "zod": "^3.0.0" + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { "optional": true } } }, - "node_modules/@tanstack/react-table": { - "version": "8.19.2", + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", "license": "MIT", - "dependencies": { - "@tanstack/table-core": "8.19.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/@tanstack/table-core": { - "version": "8.19.2", - "license": "MIT", - "engines": { - "node": ">=12" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/bun": { - "version": "1.1.6", - "dev": true, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", "license": "MIT", "dependencies": { - "bun-types": "1.1.17" - } - }, - "node_modules/@types/connect": { - "version": "3.4.36", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", - "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", - "dependencies": { - "@types/node": "*" + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" - }, - "node_modules/@types/d3-drag": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", - "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", "dependencies": { - "@types/d3-selection": "*" + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "dependencies": { - "@types/d3-color": "*" + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/d3-selection": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", - "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==" - }, - "node_modules/@types/d3-transition": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", - "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", - "dependencies": { - "@types/d3-selection": "*" + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/d3-zoom": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", - "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", "dependencies": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/eslint": { - "version": "8.56.10", + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", "license": "MIT", "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", "license": "MIT", - "peer": true, "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/@types/estree": { - "version": "1.0.5", + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", "license": "MIT" }, - "node_modules/@types/json-schema": { - "version": "7.0.15", + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", "license": "MIT" }, - "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/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "license": "MIT" }, - "node_modules/@types/mysql": { - "version": "2.15.22", - "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.22.tgz", - "integrity": "sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==", + "node_modules/@sentry-internal/browser-utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.36.0.tgz", + "integrity": "sha512-AVJ9GmQW7jYxaal6hjQnnktsDNype01ajVC4q1RyOn1SfzSnXg6mXwj4xm4ovuJV+aBI7fAZJ55vEX5ASuP0ZA==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" + }, + "engines": { + "node": ">=14.18" } }, - "node_modules/@types/node": { - "version": "20.14.10", + "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/core": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.36.0.tgz", + "integrity": "sha512-cbq1WQyRqc/+YpPhjwQxfniUM3ZxmO3Pm1oisTB8dw6mlbgQfGD6aznEIjXWWJY6k6acewJlMUx09N7DnprtBw==", "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" + }, + "engines": { + "node": ">=14.18" } }, - "node_modules/@types/pg": { - "version": "8.11.6", + "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/types": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.36.0.tgz", + "integrity": "sha512-K1pVFfdGHw115RzGHpwSOqoEPeayn4N1F9IfM0kxrYpQSbFT1X29eak88GBfC8gPiLEF0iFGlSaQ4ERmF7oRcA==", + "license": "MIT", + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-oJ3EDPj0I00z+AwC3EWBpSidXYUoKW0Id8MfMQP5Hflniz3gif7UEReblT+FJgPEVo6+6uNzAncY0MuNMxmDKQ==", "license": "MIT", "dependencies": { - "@types/node": "*", - "pg-protocol": "*", - "pg-types": "^4.0.1" + "@sentry/types": "8.36.0" + }, + "engines": { + "node": ">=14.18" } }, - "node_modules/@types/pg-pool": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.4.tgz", - "integrity": "sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==", + "node_modules/@sentry-internal/feedback": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.36.0.tgz", + "integrity": "sha512-aAMTm3uDBj8Ta7FwoohpLmJOpWzpWXvvtTbtmSgkeCtPJLUS8DZDCTZ9uCILUkpuYrv2savRUHsdPkxNjgL8FA==", + "license": "MIT", "dependencies": { - "@types/pg": "*" + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" + }, + "engines": { + "node": ">=14.18" } }, - "node_modules/@types/pg/node_modules/pg-types": { - "version": "4.0.2", + "node_modules/@sentry-internal/feedback/node_modules/@sentry/core": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.36.0.tgz", + "integrity": "sha512-cbq1WQyRqc/+YpPhjwQxfniUM3ZxmO3Pm1oisTB8dw6mlbgQfGD6aznEIjXWWJY6k6acewJlMUx09N7DnprtBw==", "license": "MIT", "dependencies": { - "pg-int8": "1.0.1", - "pg-numeric": "1.0.2", - "postgres-array": "~3.0.1", - "postgres-bytea": "~3.0.0", - "postgres-date": "~2.1.0", - "postgres-interval": "^3.0.0", - "postgres-range": "^1.1.1" + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { - "node": ">=10" + "node": ">=14.18" } }, - "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-array": { - "version": "3.0.2", + "node_modules/@sentry-internal/feedback/node_modules/@sentry/types": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.36.0.tgz", + "integrity": "sha512-K1pVFfdGHw115RzGHpwSOqoEPeayn4N1F9IfM0kxrYpQSbFT1X29eak88GBfC8gPiLEF0iFGlSaQ4ERmF7oRcA==", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=14.18" } }, - "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-bytea": { - "version": "3.0.0", + "node_modules/@sentry-internal/feedback/node_modules/@sentry/utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-oJ3EDPj0I00z+AwC3EWBpSidXYUoKW0Id8MfMQP5Hflniz3gif7UEReblT+FJgPEVo6+6uNzAncY0MuNMxmDKQ==", "license": "MIT", "dependencies": { - "obuf": "~1.1.2" + "@sentry/types": "8.36.0" }, "engines": { - "node": ">= 6" + "node": ">=14.18" } }, - "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-date": { - "version": "2.1.0", + "node_modules/@sentry-internal/replay": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.36.0.tgz", + "integrity": "sha512-lbic98GsSkDeinQDix54tBFEgHUlmBtO+HjXECk9jIE0vOzR4As20/s5ta46t1rKMLlnxOtJuT5jKXeUYogBUw==", "license": "MIT", + "dependencies": { + "@sentry-internal/browser-utils": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" + }, "engines": { - "node": ">=12" + "node": ">=14.18" } }, - "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-interval": { - "version": "3.0.0", + "node_modules/@sentry-internal/replay-canvas": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.36.0.tgz", + "integrity": "sha512-KJPLf+qYdrQdmouoAqIPZ2KeapIBlHWbzNdQqNxJFWLHFFjpLUtt0b+87ruvbA/q3NYy2fDwD7EB0tGS1RHBaA==", "license": "MIT", + "dependencies": { + "@sentry-internal/replay": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" + }, "engines": { - "node": ">=12" + "node": ">=14.18" } }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.3", - "devOptional": true, + "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/core": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.36.0.tgz", + "integrity": "sha512-cbq1WQyRqc/+YpPhjwQxfniUM3ZxmO3Pm1oisTB8dw6mlbgQfGD6aznEIjXWWJY6k6acewJlMUx09N7DnprtBw==", "license": "MIT", "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" + }, + "engines": { + "node": ">=14.18" } }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "devOptional": true, + "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/types": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.36.0.tgz", + "integrity": "sha512-K1pVFfdGHw115RzGHpwSOqoEPeayn4N1F9IfM0kxrYpQSbFT1X29eak88GBfC8gPiLEF0iFGlSaQ4ERmF7oRcA==", "license": "MIT", - "dependencies": { - "@types/react": "*" + "engines": { + "node": ">=14.18" } }, - "node_modules/@types/shimmer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", - "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" - }, - "node_modules/@types/spotify-api": { - "version": "0.0.25", - "license": "MIT" - }, - "node_modules/@types/spotify-web-api-node": { - "version": "5.0.11", - "dev": true, + "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-oJ3EDPj0I00z+AwC3EWBpSidXYUoKW0Id8MfMQP5Hflniz3gif7UEReblT+FJgPEVo6+6uNzAncY0MuNMxmDKQ==", "license": "MIT", "dependencies": { - "@types/spotify-api": "*" + "@sentry/types": "8.36.0" + }, + "engines": { + "node": ">=14.18" } }, - "node_modules/@types/uuid": { - "version": "10.0.0", - "dev": true, - "license": "MIT" + "node_modules/@sentry-internal/replay/node_modules/@sentry/core": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.36.0.tgz", + "integrity": "sha512-cbq1WQyRqc/+YpPhjwQxfniUM3ZxmO3Pm1oisTB8dw6mlbgQfGD6aznEIjXWWJY6k6acewJlMUx09N7DnprtBw==", + "license": "MIT", + "dependencies": { + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" + }, + "engines": { + "node": ">=14.18" + } }, - "node_modules/@types/validator": { - "version": "13.12.0", - "dev": true, - "license": "MIT" + "node_modules/@sentry-internal/replay/node_modules/@sentry/types": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.36.0.tgz", + "integrity": "sha512-K1pVFfdGHw115RzGHpwSOqoEPeayn4N1F9IfM0kxrYpQSbFT1X29eak88GBfC8gPiLEF0iFGlSaQ4ERmF7oRcA==", + "license": "MIT", + "engines": { + "node": ">=14.18" + } }, - "node_modules/@types/ws": { - "version": "8.5.10", - "devOptional": true, + "node_modules/@sentry-internal/replay/node_modules/@sentry/utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-oJ3EDPj0I00z+AwC3EWBpSidXYUoKW0Id8MfMQP5Hflniz3gif7UEReblT+FJgPEVo6+6uNzAncY0MuNMxmDKQ==", "license": "MIT", "dependencies": { - "@types/node": "*" + "@sentry/types": "8.36.0" + }, + "engines": { + "node": ">=14.18" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.16.0", - "dev": true, + "node_modules/@sentry/browser": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.36.0.tgz", + "integrity": "sha512-bLrQNe+wD4DkCfB8OD5TF3Rr8KA2+aTo5wF3t3Bf6KVn8//iX1ia1hhtptYiRnbRkG/0AEPxlqL6XfPZYVPQ5A==", "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/type-utils": "7.16.0", - "@typescript-eslint/utils": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "@sentry-internal/browser-utils": "8.36.0", + "@sentry-internal/feedback": "8.36.0", + "@sentry-internal/replay": "8.36.0", + "@sentry-internal/replay-canvas": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=14.18" } }, - "node_modules/@typescript-eslint/parser": { - "version": "7.16.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/@sentry/browser/node_modules/@sentry/core": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.36.0.tgz", + "integrity": "sha512-cbq1WQyRqc/+YpPhjwQxfniUM3ZxmO3Pm1oisTB8dw6mlbgQfGD6aznEIjXWWJY6k6acewJlMUx09N7DnprtBw==", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", - "debug": "^4.3.4" + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=14.18" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.16.0", - "dev": true, + "node_modules/@sentry/browser/node_modules/@sentry/types": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.36.0.tgz", + "integrity": "sha512-K1pVFfdGHw115RzGHpwSOqoEPeayn4N1F9IfM0kxrYpQSbFT1X29eak88GBfC8gPiLEF0iFGlSaQ4ERmF7oRcA==", + "license": "MIT", + "engines": { + "node": ">=14.18" + } + }, + "node_modules/@sentry/browser/node_modules/@sentry/utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-oJ3EDPj0I00z+AwC3EWBpSidXYUoKW0Id8MfMQP5Hflniz3gif7UEReblT+FJgPEVo6+6uNzAncY0MuNMxmDKQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0" + "@sentry/types": "8.36.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=14.18" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.16.0", - "dev": true, + "node_modules/@sentry/react": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.36.0.tgz", + "integrity": "sha512-YIJZUx7Q5aulK034cRri0p/7MeP3tdLfdP6vMJMwrVlqoWQI9gKZXikmLIqHUQegZdMRYX5tr03gTWJu3dhYwg==", "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.16.0", - "@typescript-eslint/utils": "7.16.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "@sentry/browser": "8.36.0", + "@sentry/core": "8.36.0", + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0", + "hoist-non-react-statics": "^3.3.2" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=14.18" }, "peerDependencies": { - "eslint": "^8.56.0" + "react": "^16.14.0 || 17.x || 18.x || 19.x" + } + }, + "node_modules/@sentry/react/node_modules/@sentry/core": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.36.0.tgz", + "integrity": "sha512-cbq1WQyRqc/+YpPhjwQxfniUM3ZxmO3Pm1oisTB8dw6mlbgQfGD6aznEIjXWWJY6k6acewJlMUx09N7DnprtBw==", + "license": "MIT", + "dependencies": { + "@sentry/types": "8.36.0", + "@sentry/utils": "8.36.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=14.18" } }, - "node_modules/@typescript-eslint/types": { - "version": "7.16.0", - "dev": true, + "node_modules/@sentry/react/node_modules/@sentry/types": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.36.0.tgz", + "integrity": "sha512-K1pVFfdGHw115RzGHpwSOqoEPeayn4N1F9IfM0kxrYpQSbFT1X29eak88GBfC8gPiLEF0iFGlSaQ4ERmF7oRcA==", "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=14.18" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.16.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/@sentry/react/node_modules/@sentry/utils": { + "version": "8.36.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.36.0.tgz", + "integrity": "sha512-oJ3EDPj0I00z+AwC3EWBpSidXYUoKW0Id8MfMQP5Hflniz3gif7UEReblT+FJgPEVo6+6uNzAncY0MuNMxmDKQ==", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/visitor-keys": "7.16.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "@sentry/types": "8.36.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=14.18" + } + }, + "node_modules/@spotify/web-api-ts-sdk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@spotify/web-api-ts-sdk/-/web-api-ts-sdk-1.2.0.tgz", + "integrity": "sha512-JUaebva3Ohwo5I5tuTqyW/FKGOMbb40YevJMySAOINRxP7qQ/AMjBzfJx0zeO6yS+wAPfQSoGNsZaUggHw8vsA==" + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@t3-oss/env-core": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@t3-oss/env-core/-/env-core-0.11.1.tgz", + "integrity": "sha512-MaxOwEoG1ntCFoKJsS7nqwgcxLW1SJw238AJwfJeaz3P/8GtkxXZsPPolsz1AdYvUTbe3XvqZ/VCdfjt+3zmKw==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=5.0.0", + "zod": "^3.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3430,217 +4135,463 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "license": "ISC", + "node_modules/@t3-oss/env-nextjs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@t3-oss/env-nextjs/-/env-nextjs-0.11.1.tgz", + "integrity": "sha512-rx2XL9+v6wtOqLNJbD5eD8OezKlQD1BtC0WvvtHwBgK66jnF5+wGqtgkKK4Ygie1LVmoDClths2T4tdFmRvGrQ==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@t3-oss/env-core": "0.11.1" }, - "engines": { - "node": ">=16 || 14 >=14.17" + "peerDependencies": { + "typescript": ">=5.0.0", + "zod": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/utils": { - "version": "7.16.0", - "dev": true, + "node_modules/@tanstack/react-table": { + "version": "8.20.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz", + "integrity": "sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==", "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.16.0", - "@typescript-eslint/types": "7.16.0", - "@typescript-eslint/typescript-estree": "7.16.0" + "@tanstack/table-core": "8.20.5" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "eslint": "^8.56.0" + "react": ">=16.8", + "react-dom": ">=16.8" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.16.0", - "dev": true, + "node_modules/@tanstack/table-core": { + "version": "8.20.5", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.20.5.tgz", + "integrity": "sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==", "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.16.0", - "eslint-visitor-keys": "^3.4.3" - }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", + "node_modules/@types/bun": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.1.13.tgz", + "integrity": "sha512-KmQxSBgVWCl6RSuerlLGZlIWfdxkKqat0nxN61+qu4y1KDn0Ll3j7v1Pl8GnaL3a/U6GGWVTJh75ap62kR1E8Q==", "dev": true, - "license": "ISC" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", "license": "MIT", - "peer": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "bun-types": "1.1.34" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "license": "MIT", - "peer": true + "node_modules/@types/cookie": { + "version": "0.6.0", + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "license": "MIT", - "peer": true + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "license": "MIT", - "peer": true + "dependencies": { + "@types/d3-selection": "*" + } }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "license": "MIT", - "peer": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" + "@types/d3-color": "*" } }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "license": "MIT", - "peer": true + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "license": "MIT", - "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@types/d3-selection": "*" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "license": "MIT", - "peer": true, "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "license": "Apache-2.0", - "peer": true, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "devOptional": true, + "license": "MIT", "dependencies": { - "@xtuc/long": "4.2.2" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "license": "MIT", - "peer": true + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } + "node_modules/@types/json-schema": { + "version": "7.0.15", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "license": "MIT" }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", + "node_modules/@types/node": { + "version": "22.8.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.7.tgz", + "integrity": "sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==", "license": "MIT", - "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "undici-types": "~6.19.8" } }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", + "node_modules/@types/node/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/@types/pg": { + "version": "8.11.6", "license": "MIT", - "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^4.0.1" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", + "node_modules/@types/pg/node_modules/pg-types": { + "version": "4.0.2", "license": "MIT", - "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "pg-int8": "1.0.1", + "pg-numeric": "1.0.2", + "postgres-array": "~3.0.1", + "postgres-bytea": "~3.0.0", + "postgres-date": "~2.1.0", + "postgres-interval": "^3.0.0", + "postgres-range": "^1.1.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", + "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-array": { + "version": "3.0.2", "license": "MIT", - "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-bytea": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "obuf": "~1.1.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-date": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/pg/node_modules/pg-types/node_modules/postgres-interval": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/react": { + "name": "types-react", + "version": "19.0.0-rc.1", + "resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz", + "integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" + "csstype": "^3.0.2" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "license": "BSD-3-Clause", - "peer": true + "node_modules/@types/react-dom": { + "name": "types-react-dom", + "version": "19.0.0-rc.1", + "resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz", + "integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==", + "dependencies": { + "@types/react": "*" + } }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "license": "Apache-2.0", - "peer": true + "node_modules/@types/spotify-api": { + "version": "0.0.25", + "license": "MIT" + }, + "node_modules/@types/spotify-web-api-node": { + "version": "5.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/spotify-api": "*" + } + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz", + "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==", + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/type-utils": "8.12.2", + "@typescript-eslint/utils": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz", + "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz", + "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz", + "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.12.2", + "@typescript-eslint/utils": "8.12.2", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz", + "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==", + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz", + "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/visitor-keys": "8.12.2", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz", + "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.12.2", + "@typescript-eslint/types": "8.12.2", + "@typescript-eslint/typescript-estree": "8.12.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz", + "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.12.2", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, "node_modules/@xyflow/react": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.0.4.tgz", - "integrity": "sha512-eeQzw1gIbLKOB55rp2+20uB1PASDUf1q6zy2VsgugnuPEcL/olVMX3WT42XxyG8m3rcbUiHlq2NSmPTFWEjiUQ==", + "version": "12.3.4", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.3.4.tgz", + "integrity": "sha512-KjFkj84S+wK8aJF/PORxSkOAeotTTPz++hus+Y95NFMIJGVyl8jjVaaz5B1zyV0prk6ZkbMp6q0vqMjJdZT25Q==", + "license": "MIT", "dependencies": { - "@xyflow/system": "0.0.37", + "@xyflow/system": "0.0.45", "classcat": "^5.0.3", "zustand": "^4.4.0" }, @@ -3650,9 +4601,10 @@ } }, "node_modules/@xyflow/system": { - "version": "0.0.37", - "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.37.tgz", - "integrity": "sha512-hSIhezhxgftPUpC+xiQVIorcRILZUOWlLjpYPTyGWRu8s4RJvM4GqvrsFmD5OnMKXLgpU7/PqqUibDVO67oWQQ==", + "version": "0.0.45", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.45.tgz", + "integrity": "sha512-szP1LjDD4jlRYYhxvgZqOCTMToUVNqjQkrlhb0fhv1sXomU1+yMDdhpQT+FjE4d+rKx08fS10sOuZUl2ycXaDw==", + "license": "MIT", "dependencies": { "@types/d3-drag": "^3.0.7", "@types/d3-selection": "^3.0.10", @@ -3676,7 +4628,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -3685,40 +4639,15 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "optional": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", - "dev": true, + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "license": "MIT", @@ -3733,14 +4662,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "license": "MIT", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "license": "MIT", @@ -3782,7 +4703,8 @@ }, "node_modules/argparse": { "version": "2.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, "node_modules/aria-hidden": { @@ -3795,26 +4717,184 @@ "node": ">=10" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" + "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==", + "license": "MIT", + "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/autoprefixer": { - "version": "10.4.19", + "node_modules/array-flatten": { + "version": "1.1.1", "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "funding": [ { "type": "opencollective", @@ -3831,11 +4911,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -3848,6 +4928,49 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-plugin-react-compiler": { + "version": "19.0.0-beta-6fc168f-20241025", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-19.0.0-beta-6fc168f-20241025.tgz", + "integrity": "sha512-wFVeXhF0hkiRe4bEM0jzeTFMlMbcKNTwhXcFvqUIVB6WXf+3vdwOWGWnw7jwvDb2mzvsIZOFt/96itOFt1rwjw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.19.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "license": "MIT" @@ -3863,7 +4986,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.2", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "license": "MIT", "dependencies": { @@ -3875,7 +5000,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -3887,24 +5012,28 @@ }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/debug/node_modules/ms": { + "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -3918,7 +5047,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -3935,10 +5066,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -3952,9 +5083,10 @@ "license": "MIT" }, "node_modules/bullmq": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.12.0.tgz", - "integrity": "sha512-kOtSQx9ymylslsLNFD0xOMJM9mHqnq3x6KD7+DYkHByWe0HFRdblpYKhZyL4uR3rwaKZwzOrJVl3RwRaDjZxSg==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.23.0.tgz", + "integrity": "sha512-VILKTIOwo9AopMyVqvDhQ1qyLrOtBSfu+G2bntgauQfxYzT7ETj+h2HeUe7a9i9AU/+OXJGYYm49NHJedEz7VQ==", + "license": "MIT", "dependencies": { "cron-parser": "^4.6.0", "ioredis": "^5.4.1", @@ -3977,7 +5109,9 @@ } }, "node_modules/bun-types": { - "version": "1.1.17", + "version": "1.1.34", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.34.tgz", + "integrity": "sha512-br5QygTEL/TwB4uQOb96Ky22j4Gq2WxWH/8Oqv20fk5HagwKXo/akB+LiYgSfzexCt6kkcUaVm+bKiPl71xPvw==", "devOptional": true, "license": "MIT", "dependencies": { @@ -4004,6 +5138,8 @@ }, "node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "license": "MIT", "engines": { @@ -4029,7 +5165,8 @@ }, "node_modules/callsites": { "version": "3.1.0", - "dev": true, + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "license": "MIT", "engines": { "node": ">=6" @@ -4043,7 +5180,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001640", + "version": "1.0.30001677", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", + "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", "funding": [ { "type": "opencollective", @@ -4062,7 +5201,8 @@ }, "node_modules/chalk": { "version": "4.1.2", - "dev": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -4107,19 +5247,6 @@ "node": ">= 6" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==" - }, "node_modules/class-variance-authority": { "version": "0.7.0", "license": "Apache-2.0", @@ -4171,8 +5298,19 @@ "react-dom": "^18.0.0" } }, + "node_modules/cmdk/node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4206,15 +5344,10 @@ } } }, - "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4231,6 +5364,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4247,6 +5382,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4273,6 +5410,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4289,6 +5428,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4306,6 +5447,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-guards": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4322,6 +5465,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4346,6 +5491,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4362,6 +5509,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4379,6 +5528,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/node_modules/@radix-ui/react-use-layout-effect": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4395,6 +5546,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4417,6 +5570,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4440,6 +5595,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4456,6 +5613,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4473,6 +5632,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4490,6 +5651,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/node_modules/@radix-ui/react-use-callback-ref": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4506,6 +5669,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll": { "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.3", @@ -4527,8 +5692,98 @@ } } }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/cmdk/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/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==", + "license": "MIT", + "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/cmdk/node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/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==", + "license": "MIT", + "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/cmdk/node_modules/@radix-ui/react-primitive": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4551,6 +5806,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", @@ -4568,6 +5825,8 @@ }, "node_modules/cmdk/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" @@ -4584,6 +5843,8 @@ }, "node_modules/color": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "license": "MIT", "dependencies": { "color-convert": "^2.0.1", @@ -4609,6 +5870,8 @@ }, "node_modules/color-string": { "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "license": "MIT", "dependencies": { "color-name": "^1.0.0", @@ -4632,10 +5895,6 @@ "node": ">= 6" } }, - "node_modules/commondir": { - "version": "1.0.1", - "license": "MIT" - }, "node_modules/component-emitter": { "version": "1.3.1", "license": "MIT", @@ -4645,7 +5904,14 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "license": "MIT" }, "node_modules/content-disposition": { @@ -4661,6 +5927,8 @@ }, "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==", "dev": true, "license": "MIT", "engines": { @@ -4669,10 +5937,13 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", + "dev": true, "license": "MIT" }, "node_modules/cookie": { - "version": "0.6.0", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -4729,13 +6000,15 @@ }, "node_modules/csstype": { "version": "3.1.3", - "devOptional": true, + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, "node_modules/d3-color": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -4744,6 +6017,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", "engines": { "node": ">=12" } @@ -4752,6 +6026,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-selection": "3" @@ -4764,6 +6039,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", "engines": { "node": ">=12" } @@ -4772,6 +6048,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3" }, @@ -4783,6 +6060,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", "engines": { "node": ">=12" } @@ -4791,6 +6069,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { "node": ">=12" } @@ -4799,6 +6078,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", "dependencies": { "d3-color": "1 - 3", "d3-dispatch": "1 - 3", @@ -4817,6 +6097,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", "d3-drag": "2 - 3", @@ -4828,8 +6109,67 @@ "node": ">=12" } }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/date-fns": { - "version": "3.6.0", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", "license": "MIT", "funding": { "type": "github", @@ -4853,7 +6193,8 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "dev": true, + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "license": "MIT" }, "node_modules/define-data-property": { @@ -4871,6 +6212,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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==", + "license": "MIT", + "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", "license": "MIT", @@ -4887,6 +6245,8 @@ }, "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==", "dev": true, "license": "MIT", "engines": { @@ -4895,6 +6255,8 @@ }, "node_modules/destroy": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, "license": "MIT", "engines": { @@ -4911,40 +6273,33 @@ }, "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==", "license": "MIT" }, "node_modules/didyoumean": { "version": "1.2.2", "license": "Apache-2.0" }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dlv": { "version": "1.1.3", "license": "MIT" }, "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dotenv": { "version": "16.4.5", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -4976,12 +6331,12 @@ } }, "node_modules/drizzle-kit": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.23.1.tgz", - "integrity": "sha512-posGQhj8/K4S4CPhk7BO9+IcpNdIh96t0DvcAr/NvMKhPhe5D0MELzmpq9R2MpmSP3fd+Z3upwidtetrw7xnjg==", - "dev": true, + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.26.2.tgz", + "integrity": "sha512-cMq8omEKywjIy5KcqUo6LvEFxkl8/zYHsgYjFVXjmPWWtuW4blcz+YW9+oIhoaALgs2ebRjzXwsJgN9i6P49Dw==", + "license": "MIT", "dependencies": { - "@drizzle-team/brocli": "^0.8.2", + "@drizzle-team/brocli": "^0.10.1", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.19.7", "esbuild-register": "^3.5.0" @@ -5105,205 +6460,909 @@ "sql.js": { "optional": true }, - "sqlite3": { + "sqlite3": { + "optional": true + } + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.50", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", + "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", + "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.19.12", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/esbuild-register": { + "version": "3.5.0", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", + "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.14.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-airbnb": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", + "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", + "license": "MIT", + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5" + }, + "engines": { + "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.28.0", + "eslint-plugin-react-hooks": "^4.3.0" + } + }, + "node_modules/eslint-config-airbnb-typescript": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz", + "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==", + "license": "MIT", + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + } + }, + "node_modules/eslint-config-airbnb-typescript/node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-typescript/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-airbnb/node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.2.tgz", + "integrity": "sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==", + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "15.0.2", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@next/eslint-plugin-next": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz", + "integrity": "sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==", + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/eslint-config-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "license": "MIT", + "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/eslint-config-next/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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz", + "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==", + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.5", + "enhanced-resolve": "^5.15.0", + "eslint-module-utils": "^2.8.1", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { "optional": true } } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.820", - "license": "ISC" + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "dev": true, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/enhanced-resolve": { - "version": "5.17.0", + "node_modules/eslint-plugin-import/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==", "license": "MIT", - "peer": true, "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10.13.0" + "node": "*" } }, - "node_modules/es-define-property": { - "version": "1.0.0", + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4" + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/es-errors": { - "version": "1.3.0", + "node_modules/eslint-plugin-jsx-a11y/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==", "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">= 0.4" + "node": "*" } }, - "node_modules/es-module-lexer": { - "version": "1.5.4", + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "license": "MIT", - "peer": true + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } }, - "node_modules/esbuild": { - "version": "0.19.12", - "dev": true, - "hasInstallScript": true, + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">=4" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/esbuild-register": { - "version": "3.5.0", + "node_modules/eslint-plugin-react-compiler": { + "version": "19.0.0-beta-6fc168f-20241025", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-compiler/-/eslint-plugin-react-compiler-19.0.0-beta-6fc168f-20241025.tgz", + "integrity": "sha512-mHn5tYt9dT4GiXHF5muiz6p+4Lirgi0Oc87N2KrbB/ciSkT+VZ8iJA+6bbS4//ljYzYbxBbPMHWS/dZWhQrbpQ==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.3.4" + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "hermes-parser": "^0.20.1", + "zod": "^3.22.4", + "zod-validation-error": "^3.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.0.0 || >= 18.0.0" }, "peerDependencies": { - "esbuild": ">=0.12 <1" + "eslint": ">=7" } }, - "node_modules/escalade": { - "version": "3.1.2", + "node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", + "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, + "node_modules/eslint-plugin-react/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==", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "*" } }, - "node_modules/eslint": { - "version": "8.57.0", - "dev": true, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { - "eslint": "bin/eslint.js" + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", + "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", + "license": "MIT", + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-tailwindcss": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.17.5.tgz", + "integrity": "sha512-8Mi7p7dm+mO1dHgRHHFdPu4RDTBk69Cn4P0B40vRQR+MrguUpwmKwhZy1kqYe3Km8/4nb+cyrCF+5SodOEmaow==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.5", + "postcss": "^8.4.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18.12.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "tailwindcss": "^3.4.0" + } + }, + "node_modules/eslint-plugin-unused-imports": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.1.4.tgz", + "integrity": "sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==", + "license": "MIT", + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0", + "eslint": "^9.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5311,26 +7370,74 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "dev": true, + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/espree": { - "version": "9.6.1", - "dev": true, + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5338,7 +7445,8 @@ }, "node_modules/esquery": { "version": "1.6.0", - "dev": true, + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" @@ -5364,13 +7472,10 @@ "node": ">=4.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, "node_modules/esutils": { "version": "2.0.3", - "dev": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -5378,51 +7483,47 @@ }, "node_modules/etag": { "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/events": { - "version": "3.3.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/express": { - "version": "4.19.2", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -5433,391 +7534,736 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "dev": true, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "license": "MIT", + "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-glob/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "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/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "1.2.6", + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/debug/node_modules/ms": { - "version": "2.0.0", + "node_modules/gensync": { + "version": "1.0.0-beta.2", "dev": true, - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/fast-glob": { - "version": "3.3.2", + "node_modules/get-intrinsic": { + "version": "1.2.4", "license": "MIT", "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" + "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": ">=8.6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "license": "ISC", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "license": "MIT" + "node_modules/get-tsconfig": { + "version": "4.7.5", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } }, - "node_modules/fastq": { - "version": "1.17.1", + "node_modules/glob": { + "version": "10.3.10", "license": "ISC", "dependencies": { - "reusify": "^1.0.4" + "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/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", + "node_modules/glob-parent": { + "version": "6.0.2", + "license": "ISC", "dependencies": { - "flat-cache": "^3.0.4" + "is-glob": "^4.0.3" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10.13.0" } }, - "node_modules/fill-range": { - "version": "7.1.1", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "dev": true, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "license": "MIT", "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" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "dev": true, + "node_modules/gopd": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/finalhandler/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "dev": true, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "license": "MIT" }, - "node_modules/find-up": { - "version": "5.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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "es-define-property": "^1.0.0" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flatted": { - "version": "3.3.1", - "dev": true, - "license": "ISC" - }, - "node_modules/foreground-child": { - "version": "3.2.1", - "license": "ISC", + "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==", + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "has-symbols": "^1.0.3" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { - "version": "3.0.1", + "node_modules/hasown": { + "version": "2.0.2", "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "function-bind": "^1.1.2" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" } }, - "node_modules/formidable": { - "version": "1.2.6", + "node_modules/hermes-estree": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz", + "integrity": "sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz", + "integrity": "sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==", + "dev": true, "license": "MIT", - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" + "dependencies": { + "hermes-estree": "0.20.1" } }, - "node_modules/forwarded": { - "version": "0.2.0", + "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/html-to-image": { + "version": "1.11.11", + "license": "MIT" + }, + "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==", "dev": true, "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, - "node_modules/fraction.js": { - "version": "4.3.7", + "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==", "dev": true, "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/fresh": { - "version": "0.5.2", - "dev": true, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 4" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.2", + "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==", "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=0.8.19" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "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==", "license": "MIT", "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" + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "loose-envify": "^1.0.0" } }, - "node_modules/get-tsconfig": { - "version": "4.7.5", - "dev": true, + "node_modules/ioredis": { + "version": "5.4.1", "license": "MIT", "dependencies": { - "resolve-pkg-maps": "^1.0.0" + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" }, "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/ioredis" } }, - "node_modules/glob": { - "version": "10.3.10", - "license": "ISC", - "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" - }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.10" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "license": "ISC", + "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==", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "license": "BSD-2-Clause", - "peer": true + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "license": "ISC", + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "13.24.0", - "dev": true, + "node_modules/is-binary-path": { + "version": "2.1.0", "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { - "version": "1.0.1", + "node_modules/is-bun-module": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.2.1.tgz", + "integrity": "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "semver": "^7.6.3" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", + "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==", "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -5825,9 +8271,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, "engines": { "node": ">= 0.4" }, @@ -5835,176 +8286,168 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { - "version": "2.0.2", + "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==", "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/html-to-image": { - "version": "1.11.11", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "dev": true, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "call-bind": "^1.0.2" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", + "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==", "license": "MIT", "dependencies": { - "agent-base": "6", - "debug": "4" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, + "node_modules/is-glob": { + "version": "4.0.3", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/ignore": { - "version": "5.3.1", - "dev": true, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "license": "MIT", "engines": { - "node": ">= 4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-in-the-middle": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.0.tgz", - "integrity": "sha512-5DimNQGoe0pLUHbR9qK84iWaWjjbsxiqXnw6Qz64+azRgleqv9k2kTt5fw7QsOpmaGYtuxxursnPPsnTKEx10Q==", - "dependencies": { - "acorn": "^8.8.2", - "acorn-import-attributes": "^1.9.5", - "cjs-module-lexer": "^1.2.2", - "module-details-from-path": "^1.0.3" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, + "node_modules/is-number": { + "version": "7.0.0", "license": "MIT", "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "node": ">=0.12.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/invariant": { - "version": "2.2.4", + "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==", "license": "MIT", "dependencies": { - "loose-envify": "^1.0.0" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ioredis": { - "version": "5.4.1", + "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==", "license": "MIT", "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=12.22.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "dev": true, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "call-bind": "^1.0.7" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.14.0", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6013,56 +8456,102 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "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==", "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-glob": { - "version": "4.0.3", + "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==", "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "which-typed-array": "^1.1.14" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-number": { - "version": "7.0.0", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-reference": { - "version": "1.2.1", + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "license": "MIT", "dependencies": { - "@types/estree": "*" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, "node_modules/isexe": { "version": "2.0.0", "license": "ISC" }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/jackspeak": { "version": "2.3.6", "license": "BlueOak-1.0.0", @@ -6079,33 +8568,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jiti": { "version": "1.21.6", "license": "MIT", @@ -6128,7 +8590,8 @@ }, "node_modules/js-yaml": { "version": "4.1.0", - "dev": true, + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -6138,36 +8601,37 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { "version": "3.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "license": "MIT" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "license": "MIT", - "peer": true - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", + "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -6176,17 +8640,52 @@ "node": ">=6" } }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/keyv": { "version": "4.5.4", - "dev": true, + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/levn": { "version": "0.4.1", - "dev": true, + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", @@ -6207,14 +8706,6 @@ "version": "1.2.4", "license": "MIT" }, - "node_modules/loader-runner": { - "version": "4.3.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.11.5" - } - }, "node_modules/locate-path": { "version": "6.0.0", "license": "MIT", @@ -6255,10 +8746,12 @@ } }, "node_modules/lucide-react": { - "version": "0.404.0", + "version": "0.453.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.453.0.tgz", + "integrity": "sha512-kL+RGZCcJi9BvJtzg2kshO192Ddy9hv3ij+cPrVPWSRzgCWCVazoQJxOjAwgK53NomL07HB7GPHW120FimjNhQ==", "license": "ISC", "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "node_modules/luxon": { @@ -6268,15 +8761,10 @@ "node": ">=12" } }, - "node_modules/magic-string": { - "version": "0.30.10", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, "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==", "dev": true, "license": "MIT", "engines": { @@ -6284,14 +8772,14 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true, - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", "license": "MIT", - "peer": true + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge2": { "version": "1.4.1", @@ -6320,6 +8808,8 @@ }, "node_modules/mime": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "license": "MIT", "bin": { @@ -6347,19 +8837,22 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "dev": true, + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { "version": "1.2.8", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6372,11 +8865,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, "node_modules/ms": { "version": "2.1.2", "license": "MIT" @@ -6435,7 +8923,8 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "dev": true, + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "license": "MIT" }, "node_modules/negotiator": { @@ -6446,46 +8935,43 @@ "node": ">= 0.6" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "license": "MIT", - "peer": true - }, "node_modules/next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz", - "integrity": "sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==", + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.2.tgz", + "integrity": "sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==", + "license": "MIT", "dependencies": { - "@next/env": "14.2.5", - "@swc/helpers": "0.5.5", + "@next/env": "15.0.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", "postcss": "8.4.31", - "styled-jsx": "5.1.1" + "styled-jsx": "5.1.6" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=18.17.0" + "node": ">=18.18.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.5", - "@next/swc-darwin-x64": "14.2.5", - "@next/swc-linux-arm64-gnu": "14.2.5", - "@next/swc-linux-arm64-musl": "14.2.5", - "@next/swc-linux-x64-gnu": "14.2.5", - "@next/swc-linux-x64-musl": "14.2.5", - "@next/swc-win32-arm64-msvc": "14.2.5", - "@next/swc-win32-ia32-msvc": "14.2.5", - "@next/swc-win32-x64-msvc": "14.2.5" + "@next/swc-darwin-arm64": "15.0.2", + "@next/swc-darwin-x64": "15.0.2", + "@next/swc-linux-arm64-gnu": "15.0.2", + "@next/swc-linux-arm64-musl": "15.0.2", + "@next/swc-linux-x64-gnu": "15.0.2", + "@next/swc-linux-x64-musl": "15.0.2", + "@next/swc-win32-arm64-msvc": "15.0.2", + "@next/swc-win32-x64-msvc": "15.0.2", + "sharp": "^0.33.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", + "react-dom": "^18.2.0 || 19.0.0-rc-02c0e824-20241028", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -6495,56 +8981,28 @@ "@playwright/test": { "optional": true }, - "sass": { - "optional": true - } - } - }, - "node_modules/next-auth": { - "version": "5.0.0-beta.25", - "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-5.0.0-beta.25.tgz", - "integrity": "sha512-2dJJw1sHQl2qxCrRk+KTQbeH+izFbGFPuJj5eGgBZFYyiYYtvlrBeUw1E/OJJxTRjuxbSYGnCTkUIRsIIW0bog==", - "license": "ISC", - "dependencies": { - "@auth/core": "0.37.2" - }, - "peerDependencies": { - "@simplewebauthn/browser": "^9.0.1", - "@simplewebauthn/server": "^9.0.2", - "next": "^14.0.0-0 || ^15.0.0-0", - "nodemailer": "^6.6.5", - "react": "^18.2.0 || ^19.0.0-0" - }, - "peerDependenciesMeta": { - "@simplewebauthn/browser": { - "optional": true - }, - "@simplewebauthn/server": { + "babel-plugin-react-compiler": { "optional": true }, - "nodemailer": { + "sass": { "optional": true } } }, - "node_modules/next-auth/node_modules/@auth/core": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.37.2.tgz", - "integrity": "sha512-kUvzyvkcd6h1vpeMAojK2y7+PAV5H+0Cc9+ZlKYDFhDY31AlvsB+GW5vNO4qE3Y07KeQgvNO9U0QUx/fN62kBw==", + "node_modules/next-auth": { + "version": "5.0.0-beta.25", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-5.0.0-beta.25.tgz", + "integrity": "sha512-2dJJw1sHQl2qxCrRk+KTQbeH+izFbGFPuJj5eGgBZFYyiYYtvlrBeUw1E/OJJxTRjuxbSYGnCTkUIRsIIW0bog==", "license": "ISC", "dependencies": { - "@panva/hkdf": "^1.2.1", - "@types/cookie": "0.6.0", - "cookie": "0.7.1", - "jose": "^5.9.3", - "oauth4webapi": "^3.0.0", - "preact": "10.11.3", - "preact-render-to-string": "5.2.3" + "@auth/core": "0.37.2" }, "peerDependencies": { "@simplewebauthn/browser": "^9.0.1", "@simplewebauthn/server": "^9.0.2", - "nodemailer": "^6.8.0" + "next": "^14.0.0-0 || ^15.0.0-0", + "nodemailer": "^6.6.5", + "react": "^18.2.0 || ^19.0.0-0" }, "peerDependenciesMeta": { "@simplewebauthn/browser": { @@ -6558,24 +9016,6 @@ } } }, - "node_modules/next-auth/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-auth/node_modules/oauth4webapi": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.1.1.tgz", - "integrity": "sha512-0h4FZjsntbKQ5IHGM9mFT7uOwQCRdcTG7YhC0xXlWIcCch24wUa6Vggaipa3Sw6Ab7nEnmO4rctROmyuHBfP7Q==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/next-themes": { "version": "0.3.0", "license": "MIT", @@ -6614,24 +9054,6 @@ "version": "3.1.1", "license": "MIT" }, - "node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/node-gyp-build-optional-packages": { "version": "5.2.2", "license": "MIT", @@ -6646,7 +9068,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "license": "MIT" }, "node_modules/normalize-path": { @@ -6658,14 +9082,15 @@ }, "node_modules/normalize-range": { "version": "0.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/oauth4webapi": { - "version": "2.11.1", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.1.2.tgz", + "integrity": "sha512-KQZkNU+xn02lWrFu5Vjqg9E81yPtDSxUZorRHlLWVoojD+H/0GFbH59kcnz5Thdjj7c4/mYMBPj/mhvGe/kKXA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" @@ -6695,79 +9120,117 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { - "version": "1.1.2", - "license": "MIT" + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "node_modules/on-finished": { - "version": "2.4.1", - "dev": true, + "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==", "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "license": "MIT", "dependencies": { - "wrappy": "1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/opentelemetry-instrumentation-fetch-node": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/opentelemetry-instrumentation-fetch-node/-/opentelemetry-instrumentation-fetch-node-1.2.3.tgz", - "integrity": "sha512-Qb11T7KvoCevMaSeuamcLsAD+pZnavkhDnlVL0kRozfhl42dKG5Q3anUklAFKJZjY3twLR+BnRa6DlwwkIE/+A==", - "optional": true, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "license": "MIT", "dependencies": { - "@opentelemetry/instrumentation": "^0.46.0", - "@opentelemetry/semantic-conventions": "^1.17.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">18.0.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@opentelemetry/api": "^1.6.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/opentelemetry-instrumentation-fetch-node/node_modules/@opentelemetry/instrumentation": { - "version": "0.46.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.46.0.tgz", - "integrity": "sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==", - "optional": true, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "license": "MIT", "dependencies": { - "@types/shimmer": "^1.0.2", - "import-in-the-middle": "1.7.1", - "require-in-the-middle": "^7.1.1", - "semver": "^7.5.2", - "shimmer": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" }, "engines": { - "node": ">=14" + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/opentelemetry-instrumentation-fetch-node/node_modules/import-in-the-middle": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.7.1.tgz", - "integrity": "sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==", - "optional": true, + "node_modules/obuf": { + "version": "1.1.2", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^8.8.2", - "acorn-import-assertions": "^1.9.0", - "cjs-module-lexer": "^1.2.2", - "module-details-from-path": "^1.0.3" + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, "node_modules/optionator": { "version": "0.9.4", - "dev": true, + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "license": "MIT", "dependencies": { "deep-is": "^0.1.3", @@ -6807,13 +9270,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "1.0.1", - "dev": true, + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -6824,6 +9284,8 @@ }, "node_modules/parseurl": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, "license": "MIT", "engines": { @@ -6837,14 +9299,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "license": "MIT", @@ -6878,25 +9332,21 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true, "license": "MIT" }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/pg": { - "version": "8.12.0", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.1.tgz", + "integrity": "sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==", "license": "MIT", "dependencies": { - "pg-connection-string": "^2.6.4", - "pg-pool": "^3.6.2", - "pg-protocol": "^1.6.1", + "pg-connection-string": "^2.7.0", + "pg-pool": "^3.7.0", + "pg-protocol": "^1.7.0", "pg-types": "^2.1.0", "pgpass": "1.x" }, @@ -6921,7 +9371,9 @@ "optional": true }, "node_modules/pg-connection-string": { - "version": "2.6.4", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", + "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", "license": "MIT" }, "node_modules/pg-int8": { @@ -6939,14 +9391,18 @@ } }, "node_modules/pg-pool": { - "version": "3.6.2", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.0.tgz", + "integrity": "sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==", "license": "MIT", "peerDependencies": { "pg": ">=8.0" } }, "node_modules/pg-protocol": { - "version": "1.6.1", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", "license": "MIT" }, "node_modules/pg-types": { @@ -6971,7 +9427,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { @@ -6998,8 +9456,19 @@ "node": ">= 6" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.39", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "funding": [ { "type": "opencollective", @@ -7017,8 +9486,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -7197,15 +9666,17 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "dev": true, + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.3.2", - "dev": true, + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -7217,8 +9688,22 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/prettier-plugin-tailwindcss": { - "version": "0.6.5", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.8.tgz", + "integrity": "sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==", "dev": true, "license": "MIT", "engines": { @@ -7236,6 +9721,7 @@ "prettier-plugin-import-sort": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", @@ -7273,6 +9759,9 @@ "prettier-plugin-marko": { "optional": true }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, "prettier-plugin-organize-attributes": { "optional": true }, @@ -7294,13 +9783,6 @@ "version": "3.8.0", "license": "MIT" }, - "node_modules/progress": { - "version": "2.0.3", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/prop-types": { "version": "15.8.1", "license": "MIT", @@ -7322,10 +9804,6 @@ "node": ">= 0.10" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.1", "license": "MIT", @@ -7334,10 +9812,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -7378,16 +9858,10 @@ "seedrandom": "^3.0.5" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "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==", "dev": true, "license": "MIT", "engines": { @@ -7396,6 +9870,8 @@ }, "node_modules/raw-body": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "license": "MIT", "dependencies": { @@ -7409,11 +9885,10 @@ } }, "node_modules/react": { - "version": "18.3.1", + "version": "19.0.0-rc-69d4b800-20241021", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-69d4b800-20241021.tgz", + "integrity": "sha512-dXki4tN+rP+4xhsm65q/QI/19VCZdu5vPcy4h6zaJt20XP8/1r/LCwrLFYuj8hElbNz5AmxW6JtRa7ej0BzZdg==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -7431,14 +9906,15 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", + "version": "19.0.0-rc-69d4b800-20241021", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-69d4b800-20241021.tgz", + "integrity": "sha512-ZXBsP/kTDLI9QopUaUgYJhmmAhO8aKz7DCv2Ui2rA9boCfJ/dRRh6BlVidsyb2dPzG01rItdRFQqwbP+x9s5Rg==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "0.25.0-rc-69d4b800-20241021" }, "peerDependencies": { - "react": "^18.3.1" + "react": "19.0.0-rc-69d4b800-20241021" } }, "node_modules/react-draggable": { @@ -7478,49 +9954,6 @@ "version": "16.13.1", "license": "MIT" }, - "node_modules/react-remove-scroll": { - "version": "2.5.7", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-resizable-panels": { "version": "2.0.20", "license": "MIT", @@ -7529,27 +9962,6 @@ "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-wrap-balancer": { "version": "1.1.1", "license": "MIT", @@ -7603,21 +10015,47 @@ "node": ">=4" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "license": "MIT" }, - "node_modules/require-in-the-middle": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", - "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "license": "MIT", "dependencies": { - "debug": "^4.3.5", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.8" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve": { @@ -7637,7 +10075,8 @@ }, "node_modules/resolve-from": { "version": "4.0.0", - "dev": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "license": "MIT", "engines": { "node": ">=4" @@ -7645,7 +10084,6 @@ }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" @@ -7659,53 +10097,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "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/rollup": { - "version": "3.29.4", - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "funding": [ @@ -7727,6 +10118,24 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "funding": [ @@ -7745,41 +10154,44 @@ ], "license": "MIT" }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "3.3.0", + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "license": "MIT", - "peer": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.25.0-rc-69d4b800-20241021", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-69d4b800-20241021.tgz", + "integrity": "sha512-S5AYX/YhMAN6u9AXgKYbZP4U4ZklC6R9Q7HmFSBk7d4DLiHVNxvAvlSvuM4nxFkwOk50MnpfTKQ7UWHXDOc9Eg==", + "license": "MIT" + }, "node_modules/seedrandom": { "version": "3.0.5", "license": "MIT" }, "node_modules/semver": { - "version": "7.6.2", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -7789,7 +10201,9 @@ } }, "node_modules/send": { - "version": "0.18.0", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "license": "MIT", "dependencies": { @@ -7813,6 +10227,8 @@ }, "node_modules/send/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", "dependencies": { @@ -7821,31 +10237,39 @@ }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, "license": "MIT" }, + "node_modules/send/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "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==", "dev": true, "license": "MIT" }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/serve-static": { - "version": "1.15.0", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -7866,47 +10290,65 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "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==", "dev": true, "license": "ISC" }, "node_modules/sharp": { - "version": "0.33.4", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", - "semver": "^7.6.0" + "semver": "^7.6.3" }, "engines": { - "libvips": ">=8.15.2", "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.4", - "@img/sharp-darwin-x64": "0.33.4", - "@img/sharp-libvips-darwin-arm64": "1.0.2", - "@img/sharp-libvips-darwin-x64": "1.0.2", - "@img/sharp-libvips-linux-arm": "1.0.2", - "@img/sharp-libvips-linux-arm64": "1.0.2", - "@img/sharp-libvips-linux-s390x": "1.0.2", - "@img/sharp-libvips-linux-x64": "1.0.2", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.2", - "@img/sharp-libvips-linuxmusl-x64": "1.0.2", - "@img/sharp-linux-arm": "0.33.4", - "@img/sharp-linux-arm64": "0.33.4", - "@img/sharp-linux-s390x": "0.33.4", - "@img/sharp-linux-x64": "0.33.4", - "@img/sharp-linuxmusl-arm64": "0.33.4", - "@img/sharp-linuxmusl-x64": "0.33.4", - "@img/sharp-wasm32": "0.33.4", - "@img/sharp-win32-ia32": "0.33.4", - "@img/sharp-win32-x64": "0.33.4" + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" } }, "node_modules/shebang-command": { @@ -7926,11 +10368,6 @@ "node": ">=8" } }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, "node_modules/side-channel": { "version": "1.0.6", "license": "MIT", @@ -7959,19 +10396,13 @@ }, "node_modules/simple-swizzle": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/sonner": { "version": "1.5.0", "license": "MIT", @@ -7988,7 +10419,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -8016,29 +10449,14 @@ "superagent": "^6.1.0" } }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "license": "MIT", - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "node_modules/standard-as-callback": { "version": "2.1.0", "license": "MIT" }, "node_modules/statuses": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", "engines": { @@ -8113,6 +10531,105 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "license": "MIT", @@ -8134,9 +10651,19 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", - "dev": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "license": "MIT", "engines": { "node": ">=8" @@ -8146,7 +10673,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.1.1", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", "license": "MIT", "dependencies": { "client-only": "0.0.1" @@ -8155,7 +10684,7 @@ "node": ">= 12.0.0" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" }, "peerDependenciesMeta": { "@babel/core": { @@ -8247,8 +10776,35 @@ "react": "^16.11.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/swr/node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tailwind-merge": { - "version": "2.4.0", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", "license": "MIT", "funding": { "type": "github", @@ -8256,9 +10812,10 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", - "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", + "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -8291,79 +10848,26 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.31.1", - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "license": "MIT", - "peer": true + "engines": { + "node": ">=6" + } }, "node_modules/text-table": { "version": "0.2.0", - "dev": true, + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "license": "MIT" }, "node_modules/thenify": { @@ -8383,13 +10887,6 @@ "node": ">=0.8" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "license": "MIT", @@ -8402,19 +10899,18 @@ }, "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==", "dev": true, "license": "MIT", "engines": { "node": ">=0.6" } }, - "node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "dev": true, + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", "license": "MIT", "engines": { "node": ">=16" @@ -8427,13 +10923,38 @@ "version": "0.1.13", "license": "Apache-2.0" }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { "version": "2.6.3", "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "dev": true, + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" @@ -8442,19 +10963,10 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "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==", "dev": true, "license": "MIT", "dependencies": { @@ -8465,9 +10977,83 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { - "version": "5.5.3", - "devOptional": true, + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -8477,12 +11063,53 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.12.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.12.2.tgz", + "integrity": "sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.12.2", + "@typescript-eslint/parser": "8.12.2", + "@typescript-eslint/utils": "8.12.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "5.26.5", + "devOptional": true, "license": "MIT" }, "node_modules/unpipe": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "license": "MIT", "engines": { @@ -8490,7 +11117,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -8507,8 +11136,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -8524,52 +11153,6 @@ "punycode": "^2.1.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.2", - "license": "MIT", - "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-sidecar": { - "version": "1.1.2", - "license": "MIT", - "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", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "license": "MIT" @@ -8608,119 +11191,102 @@ "node": ">= 0.8" } }, - "node_modules/watchpack": { - "version": "2.4.1", - "license": "MIT", - "peer": true, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": ">=10.13.0" + "node": ">= 8" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/webpack": { - "version": "5.92.1", + "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==", "license": "MIT", - "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" + "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": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/webpack-sources": { - "version": "3.2.3", + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "license": "BSD-2-Clause", - "peer": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which": { - "version": "2.0.2", - "license": "ISC", + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/word-wrap": { "version": "1.2.5", - "dev": true, + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -8806,11 +11372,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, "node_modules/xtend": { "version": "4.0.2", "license": "MIT", @@ -8845,11 +11406,26 @@ "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/zod-validation-error": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.0.tgz", + "integrity": "sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.18.0" + } + }, "node_modules/zustand": { - "version": "4.5.4", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz", + "integrity": "sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==", "license": "MIT", "dependencies": { - "use-sync-external-store": "1.2.0" + "use-sync-external-store": "1.2.2" }, "engines": { "node": ">=12.7.0" @@ -8870,6 +11446,15 @@ "optional": true } } + }, + "node_modules/zustand/node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } } } } diff --git a/package.json b/package.json index 875a058..7aec862 100644 --- a/package.json +++ b/package.json @@ -13,16 +13,15 @@ "dev": "next dev", "dev:turbo": "next dev --turbo", "bun:dev": "bun --bun next dev", - "lint": "biome lint . --diagnostic-level=error", - "lint:next": "next lint", - "format": "biome format --changed --write .", - "check": "biome check --apply ./src", + "lint": "eslint . --ignore-pattern '.next/**' --ignore-pattern 'node_modules/**'", + "lint:fix": "eslint . --fix", + "format": "prettier --write .", "start": "next start", "start:worker": "dotenv -e .env bun ./worker/worker.ts", "dev:worker": "bun run --watch ./worker/worker.ts" }, "dependencies": { - "@auth/drizzle-adapter": "^1.4.1", + "@auth/drizzle-adapter": "^1.7.2", "@bitpatty/imgproxy-url-builder": "^1.7.0", "@hookform/resolvers": "^3.9.0", "@neondatabase/serverless": "^0.9.4", @@ -40,78 +39,98 @@ "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", - "@radix-ui/react-tabs": "^1.1.0", - "@radix-ui/react-tooltip": "^1.1.2", - "@sentry/nextjs": "^8.22.0", - "@sentry/react": "^8.22.0", + "@radix-ui/react-tabs": "^1.1.1", + "@radix-ui/react-tooltip": "^1.1.3", + "@sentry/react": "^8.35.0", "@spotify/web-api-ts-sdk": "^1.2.0", - "@t3-oss/env-nextjs": "^0.10.1", - "@tanstack/react-table": "^8.19.2", - "@types/lodash": "^4.17.7", + "@t3-oss/env-nextjs": "^0.11.1", + "@tanstack/react-table": "^8.20.5", + "@types/lodash": "^4.17.12", + "@types/react": "npm:types-react@rc", + "@types/react-dom": "npm:types-react-dom@rc", "@types/spotify-api": "^0.0.25", - "@xyflow/react": "^12.0.4", + "@xyflow/react": "^12.3.2", + "autoprefixer": "^10.4.20", "bullmq": "^5.12.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cmdk": "^1.0.0", "cronstrue": "^2.50.0", - "date-fns": "^3.6.0", + "date-fns": "^4.1.0", "drizzle-orm": "latest", + "drizzle-kit": "^0.26.2", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-next": "^15.0.2", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-tailwindcss": "^3.17.5", + "eslint-plugin-unused-imports": "^4.1.4", "html-to-image": "^1.11.11", "ioredis": "^5.4.1", "lodash": "^4.17.21", - "lucide-react": "^0.404.0", - "next": "^14.2.5", + "lucide-react": "^0.453.0", + "next": "^15.0.2", "next-auth": "^5.0.0-beta.25", "next-themes": "^0.3.0", - "pg": "^8.12.0", + "pg": "^8.13.0", "postgres": "^3.4.4", "radash": "^12.1.0", "random-words": "^2.0.1", - "react": "18.3.1", + "react": "19.0.0-rc-69d4b800-20241021", "react-day-picker": "^8.10.1", - "react-dom": "18.3.1", + "react-dom": "19.0.0-rc-69d4b800-20241021", "react-draggable": "^4.4.6", "react-hook-form": "^7.52.1", "react-resizable-panels": "^2.0.20", "react-wrap-balancer": "^1.1.1", - "sharp": "^0.33.4", + "sharp": "^0.33.5", "sonner": "^1.5.0", "spotify-web-api-node": "^5.0.2", "swr": "^2.2.5", - "tailwind-merge": "^2.4.0", + "tailwind-merge": "^2.5.4", "tailwindcss-animate": "^1.0.7", + "typescript-eslint": "^8.12.2", "uuid": "^10.0.0", "validator": "^13.12.0", "zod": "^3.23.8", "zustand": "^4.5.4" }, "devDependencies": { - "@biomejs/biome": "1.8.3", - "@faker-js/faker": "^8.4.1", - "@next/eslint-plugin-next": "^14.2.4", - "@types/bun": "^1.1.6", - "@types/eslint": "^8.56.10", - "@types/node": "^20.14.10", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", + "@biomejs/biome": "1.9.4", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.14.0", + "@faker-js/faker": "^9.0.3", + "@next/eslint-plugin-next": "15.0.1", + "@types/bun": "^1.1.12", + "@types/eslint": "^9.6.1", + "@types/node": "^22.7.9", "@types/spotify-web-api-node": "^5.0.11", "@types/uuid": "^10.0.0", - "@types/validator": "^13.12.0", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "autoprefixer": "^10.4.19", + "@types/validator": "^13.12.2", + "@typescript-eslint/eslint-plugin": "^8.11.0", + "@typescript-eslint/parser": "^8.12.2", + "babel-plugin-react-compiler": "^19.0.0-beta-6fc168f-20241025", "dotenv-cli": "^7.4.2", - "drizzle-kit": "^0.23.1", - "eslint": "^8.57.0", - "express": "^4.19.2", - "postcss": "^8.4.39", - "prettier": "^3.3.2", - "prettier-plugin-tailwindcss": "^0.6.5", - "tailwindcss": "^3.4.6", - "typescript": "^5.5.3" + "eslint": "^9.14.0", + "eslint-plugin-react-compiler": "^19.0.0-beta-6fc168f-20241025", + "express": "^4.21.1", + "postcss": "^8.4.47", + "prettier": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.8", + "tailwindcss": "^3.4.14", + "typescript": "^5.6.3" }, "ct3aMetadata": { "initVersion": "7.25.0" + }, + "overrides": { + "@types/react": "npm:types-react@rc", + "@types/react-dom": "npm:types-react-dom@rc" } } diff --git a/prettier.config.js b/prettier.config.js index b2d59b4..e498003 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,6 +1,9 @@ /** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').PluginOptions} */ const config = { plugins: ["prettier-plugin-tailwindcss"], + semi: true, + endOfLine: "lf", + singleQuote: false, }; export default config; diff --git a/sentry.client.config.ts b/sentry.client.config.ts index 26c5c63..28da453 100644 --- a/sentry.client.config.ts +++ b/sentry.client.config.ts @@ -1,24 +1,22 @@ -// This file configures the initialization of Sentry on the client. -// The config you add here will be used whenever a users loads a page in their browser. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ +// // This file configures the initialization of Sentry on the client. +// // The config you add here will be used whenever a users loads a page in their browser. +// // https://docs.sentry.io/platforms/javascript/guides/nextjs/ -import * as Sentry from "@sentry/nextjs"; +// import * as Sentry from "@sentry/nextjs"; -Sentry.init({ - dsn: process.env.SENTRY_DSN, +// Sentry.init({ +// dsn: process.env.SENTRY_DSN, - // Adjust this value in production, or use tracesSampler for greater control - tracesSampleRate: 1, +// // Adjust this value in production, or use tracesSampler for greater control +// tracesSampleRate: 1, - // Setting this option to true will print useful information to the console while you're setting up Sentry. - debug: false, +// // Setting this option to true will print useful information to the console while you're setting up Sentry. +// debug: false, - integrations: [ - Sentry.replayIntegration( - { - maskAllText: true, - blockAllMedia: true, - } - ) - ] -}); +// integrations: [ +// Sentry.replayIntegration({ +// maskAllText: true, +// blockAllMedia: true, +// }), +// ], +// }); diff --git a/sentry.edge.config.ts b/sentry.edge.config.ts index 6adfbf8..e294d6f 100644 --- a/sentry.edge.config.ts +++ b/sentry.edge.config.ts @@ -1,16 +1,16 @@ -// This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). -// The config you add here will be used whenever one of the edge features is loaded. -// Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ +// // This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). +// // The config you add here will be used whenever one of the edge features is loaded. +// // Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. +// // https://docs.sentry.io/platforms/javascript/guides/nextjs/ -import * as Sentry from "@sentry/nextjs"; +// import * as Sentry from "@sentry/nextjs"; -Sentry.init({ - dsn: process.env.SENTRY_DSN, +// Sentry.init({ +// dsn: process.env.SENTRY_DSN, - // Adjust this value in production, or use tracesSampler for greater control - tracesSampleRate: 1, +// // Adjust this value in production, or use tracesSampler for greater control +// tracesSampleRate: 1, - // Setting this option to true will print useful information to the console while you're setting up Sentry. - debug: false, -}); +// // Setting this option to true will print useful information to the console while you're setting up Sentry. +// debug: false, +// }); diff --git a/sentry.server.config.ts b/sentry.server.config.ts index c78e54b..8973909 100644 --- a/sentry.server.config.ts +++ b/sentry.server.config.ts @@ -1,16 +1,16 @@ -// This file configures the initialization of Sentry on the server. -// The config you add here will be used whenever the server handles a request. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ +// // This file configures the initialization of Sentry on the server. +// // The config you add here will be used whenever the server handles a request. +// // https://docs.sentry.io/platforms/javascript/guides/nextjs/ -import * as Sentry from "@sentry/nextjs"; +// import * as Sentry from "@sentry/nextjs"; -Sentry.init({ - dsn: process.env.SENTRY_DSN, +// Sentry.init({ +// dsn: process.env.SENTRY_DSN, - // Adjust this value in production, or use tracesSampler for greater control - tracesSampleRate: 1, +// // Adjust this value in production, or use tracesSampler for greater control +// tracesSampleRate: 1, - // Setting this option to true will print useful information to the console while you're setting up Sentry. - debug: false, - integrations: [...Sentry.getAutoPerformanceIntegrations()], -}); +// // Setting this option to true will print useful information to the console while you're setting up Sentry. +// debug: false, +// integrations: [...Sentry.getAutoPerformanceIntegrations()], +// }); diff --git a/src/app/api/systeminfo/route.ts b/src/app/api/systeminfo/route.ts index e43f90f..80a1ab6 100644 --- a/src/app/api/systeminfo/route.ts +++ b/src/app/api/systeminfo/route.ts @@ -1,6 +1,7 @@ -import { db } from "@/server/db"; import Redis from "ioredis"; import { type NextRequest, NextResponse } from "next/server"; + +import { db } from "@/server/db"; import { env } from "~/env"; import { Logger } from "~/lib/log"; diff --git a/src/app/api/user/[uid]/playlist/[playlistId]/route.ts b/src/app/api/user/[uid]/playlist/[playlistId]/route.ts index 900e54d..be7c507 100644 --- a/src/app/api/user/[uid]/playlist/[playlistId]/route.ts +++ b/src/app/api/user/[uid]/playlist/[playlistId]/route.ts @@ -1,5 +1,6 @@ import { type NextRequest, NextResponse } from "next/server"; import SpotifyWebApi from "spotify-web-api-node"; + import { env } from "~/env"; import { getAccessTokenFromProviderAccountId } from "~/server/db/helper"; export async function GET( @@ -7,13 +8,11 @@ export async function GET( { params, }: { - params: { - uid: string; - playlistId: string; - }; + params: Promise<{ uid: string; playlistId: string }>; }, ) { - const accessToken = await getAccessTokenFromProviderAccountId(params.uid); + const { uid, playlistId } = await params; + const accessToken = await getAccessTokenFromProviderAccountId(uid); if (!accessToken) { return NextResponse.json("No access token found", { status: 500 }); } @@ -25,7 +24,7 @@ export async function GET( spClient.setAccessToken(accessToken.access_token); - const response = await spClient.getPlaylist(params.playlistId); + const response = await spClient.getPlaylist(playlistId); const playlist = { id: response.body.id, diff --git a/src/app/api/user/[uid]/playlists/route.ts b/src/app/api/user/[uid]/playlists/route.ts index 2224989..af61d33 100644 --- a/src/app/api/user/[uid]/playlists/route.ts +++ b/src/app/api/user/[uid]/playlists/route.ts @@ -1,6 +1,7 @@ import Redis from "ioredis"; import { type NextRequest, NextResponse } from "next/server"; import SpotifyWebApi from "spotify-web-api-node"; + import { env } from "~/env"; import { Logger } from "~/lib/log"; import { getAccessTokenFromProviderAccountId } from "~/server/db/helper"; @@ -12,10 +13,11 @@ export async function GET( { params, }: { - params: { uid: string }; + params: Promise<{ uid: string }>; }, ) { - const accessToken = await getAccessTokenFromProviderAccountId(params.uid); + const { uid } = await params; + const accessToken = await getAccessTokenFromProviderAccountId(uid); if (!accessToken) { return NextResponse.json("No access token found", { status: 500 }); } @@ -36,9 +38,10 @@ export async function GET( spClient.setAccessToken(accessToken.access_token); - const q = request.nextUrl.searchParams.get("q"); + const searchParams = request.nextUrl.searchParams; + const q = searchParams.get("q"); - const cacheKey = q ? `search:${q}` : `user:${params.uid}`; + const cacheKey = q ? `search:${q}` : `user:${uid}`; let cachedData; if (redis) { cachedData = await redis.get(cacheKey); @@ -69,7 +72,7 @@ export async function GET( owner: playlist.owner.display_name, })); } else { - data = await spClient.getUserPlaylists(params.uid, { + data = await spClient.getUserPlaylists(uid, { limit: 50, }); playlists = data.body.items.map((playlist) => ({ diff --git a/src/app/api/user/[uid]/workflows/route.ts b/src/app/api/user/[uid]/workflows/route.ts index 6f97d96..abec41b 100644 --- a/src/app/api/user/[uid]/workflows/route.ts +++ b/src/app/api/user/[uid]/workflows/route.ts @@ -1,23 +1,21 @@ +import Redis from "ioredis"; +import { NextResponse } from "next/server"; + import { Logger } from "@/lib/log"; import { db } from "@/server/db"; -import Redis from "ioredis"; -import { NextRequest, NextResponse } from "next/server"; import { env } from "~/env"; import { auth } from "~/server/auth"; const log = new Logger("/api/workflow/[id]"); -export async function GET(request: NextRequest, response: NextResponse) { +export async function GET() { const session = await auth(); if (!session?.user) { - return NextResponse.json( - { error: "Not authenticated" }, - { status: 401 }, - ); + return NextResponse.json({ error: "Not authenticated" }, { status: 401 }); } - const userId = session.user.id + const userId = session.user.id; let redis: Redis | null = null; try { @@ -30,7 +28,7 @@ export async function GET(request: NextRequest, response: NextResponse) { let cachedData; if (redis) { - cachedData = await redis.get(`api:workflows:${session.user.id}`); + cachedData = await redis.get(`api:workflows:${userId}`); if (cachedData) { return NextResponse.json(JSON.parse(cachedData), { headers: { @@ -43,7 +41,7 @@ export async function GET(request: NextRequest, response: NextResponse) { const workflows = await db.query.workflowJobs.findMany({ where: (workflowJobs, { eq, and, or, isNull }) => and( - eq(workflowJobs.userId, session.user.id), + eq(workflowJobs.userId, userId), or(isNull(workflowJobs.deleted), eq(workflowJobs.deleted, false)), ), with: { @@ -77,18 +75,13 @@ export async function GET(request: NextRequest, response: NextResponse) { ); if (redis) { - await redis.set( - `api:workflows:${session.user.id}`, - JSON.stringify(res), - "EX", - 5, - ); + await redis.set(`api:workflows:${userId}`, JSON.stringify(res), "EX", 5); } - log.info(`Returning workflows for user ${session.user.id}`); + log.info(`Returning workflows for user ${userId}`); return NextResponse.json(res, { headers: { "X-Cache": "MISS", }, }); -} \ No newline at end of file +} diff --git a/src/app/api/workflow/[id]/delete/route.ts b/src/app/api/workflow/[id]/delete/route.ts index d90530a..9eb25b3 100644 --- a/src/app/api/workflow/[id]/delete/route.ts +++ b/src/app/api/workflow/[id]/delete/route.ts @@ -1,7 +1,8 @@ -import { Logger } from "@/lib/log"; -import { auth } from "@/server/auth"; import { type NextRequest, NextResponse } from "next/server"; import { isUUID } from "validator"; + +import { Logger } from "@/lib/log"; +import { auth } from "@/server/auth"; import { deleteWorkflowJob } from "~/lib/workflow/utils/workflowQueue"; const log = new Logger("/api/workflow/[id]"); @@ -11,13 +12,14 @@ export async function POST( { params, }: { - params: { id: string }; + params: Promise<{ id: string }>; }, ) { try { const session = await auth(); + const { id } = await params; - if (!(params.id && isUUID(params.id))) { + if (!(id && isUUID(id))) { log.error("No id provided"); return NextResponse.json( { @@ -27,7 +29,7 @@ export async function POST( ); } - if (!(session?.user)) { + if (!session?.user) { log.error("Not authenticated"); return NextResponse.json( { @@ -38,13 +40,13 @@ export async function POST( } try { - await deleteWorkflowJob(params.id); + await deleteWorkflowJob(id); } catch (error) { log.error("Error deleting workflow", error); return NextResponse.json("Unexpected error", { status: 500 }); } - log.info(`Returning workflow ${params.id} for user ${session.user.id}`); + log.info(`Returning workflow ${id} for user ${session.user.id}`); return NextResponse.json({ status: "success", }); diff --git a/src/app/api/workflow/[id]/history/route.ts b/src/app/api/workflow/[id]/history/route.ts index 2988e47..d099a96 100644 --- a/src/app/api/workflow/[id]/history/route.ts +++ b/src/app/api/workflow/[id]/history/route.ts @@ -1,8 +1,9 @@ +import { type NextRequest, NextResponse } from "next/server"; +import { isUUID } from "validator"; + import { Logger } from "@/lib/log"; import { auth } from "@/server/auth"; import { db } from "@/server/db"; -import { type NextRequest, NextResponse } from "next/server"; -import { isUUID } from "validator"; const log = new Logger("/api/workflow/[id]"); @@ -11,13 +12,14 @@ export async function GET( { params, }: { - params: { id: string }; + params: Promise<{ id: string }>; }, ) { try { const session = await auth(); + const { id } = await params; - if (!(params.id && isUUID(params.id))) { + if (!(id && isUUID(id))) { log.error("No id provided"); return NextResponse.json( { @@ -39,10 +41,10 @@ export async function GET( const [workflow, runs] = await Promise.all([ db.query.workflowJobs.findFirst({ - where: (workflowJobs, { eq }) => eq(workflowJobs.id, params.id), + where: (workflowJobs, { eq }) => eq(workflowJobs.id, id), }), db.query.workflowRuns.findMany({ - where: (workflowRuns, { eq }) => eq(workflowRuns.workflowId, params.id), + where: (workflowRuns, { eq }) => eq(workflowRuns.workflowId, id), }), ]); @@ -70,7 +72,7 @@ export async function GET( })), }; - log.info(`Returning workflow ${params.id} for user ${session.user?.id}`); + log.info(`Returning workflow ${id} for user ${session.user?.id}`); return NextResponse.json(res); } catch (error) { log.error("Error getting workflow", error); diff --git a/src/app/api/workflow/[id]/route.ts b/src/app/api/workflow/[id]/route.ts index d8e41b2..8f64963 100644 --- a/src/app/api/workflow/[id]/route.ts +++ b/src/app/api/workflow/[id]/route.ts @@ -1,23 +1,20 @@ +import { type NextRequest, NextResponse } from "next/server"; +import { isUUID } from "validator"; + import { Logger } from "@/lib/log"; import { auth } from "@/server/auth"; import { db } from "@/server/db"; -import { type NextRequest, NextResponse } from "next/server"; -import { isUUID } from "validator"; const log = new Logger("/api/workflow/[id]"); export async function GET( request: NextRequest, - { - params, - }: { - params: { id: string }; - }, + { params }: { params: Promise<{ id: string }> }, ) { const session = await auth(); - - if (!(params.id && isUUID(params.id))) { - log.error("No id provided", params.id); + const { id } = await params; + if (!(id && isUUID(id))) { + log.error("No id provided", id); return NextResponse.json( { error: "No id provided", @@ -37,7 +34,7 @@ export async function GET( } const workflow = await db.query.workflowJobs.findFirst({ - where: (workflowJobs, { eq }) => eq(workflowJobs.id, params.id), + where: (workflowJobs, { eq }) => eq(workflowJobs.id, id), }); if (!workflow) { @@ -60,6 +57,6 @@ export async function GET( createdAt: workflow.createdAt, }; - log.info(`Returning workflow ${params.id} for user ${session.user.id}`); + log.info(`Returning workflow ${id} for user ${session.user.id}`); return NextResponse.json(res); } diff --git a/src/app/api/workflow/[id]/run/route.ts b/src/app/api/workflow/[id]/run/route.ts index 95f7156..844d360 100644 --- a/src/app/api/workflow/[id]/run/route.ts +++ b/src/app/api/workflow/[id]/run/route.ts @@ -1,9 +1,10 @@ +import { type NextRequest, NextResponse } from "next/server"; + import { Logger } from "@/lib/log"; import { Runner } from "@/lib/workflow/Workflow"; import { auth } from "@/server/auth"; import { db } from "@/server/db"; import { getAccessTokenFromUserId } from "@/server/db/helper"; -import { type NextRequest, NextResponse } from "next/server"; import { createWorkflowQueue } from "~/lib/workflow/utils/workflowQueue"; import { WorkflowObjectSchema } from "~/schemas"; @@ -13,7 +14,7 @@ export async function POST( { params, }: { - params: { id: string }; + params: Promise<{ id: string }>; }, ) { log.info("running workflow"); @@ -31,7 +32,10 @@ export async function POST( const userId = session.user.id; if (!userId) { log.error("User ID is undefined"); - return NextResponse.json({ error: "User ID is undefined" }, { status: 400 }); + return NextResponse.json( + { error: "User ID is undefined" }, + { status: 400 }, + ); } const accessToken = await getAccessTokenFromUserId(userId); if (!accessToken) { @@ -41,7 +45,7 @@ export async function POST( { status: 500 }, ); } - const id = params.id; + const { id } = await params; const workflow = await db.query.workflowJobs.findFirst({ where: (workflowJobs, { eq }) => eq(workflowJobs.id, id), diff --git a/src/app/api/workflow/queue/[id]/route.ts b/src/app/api/workflow/queue/[id]/route.ts index d911710..1f8ce02 100644 --- a/src/app/api/workflow/queue/[id]/route.ts +++ b/src/app/api/workflow/queue/[id]/route.ts @@ -1,18 +1,23 @@ -import { auth } from "@/server/auth"; -import { db } from "@/server/db"; import { eq } from "drizzle-orm"; import { type NextRequest, NextResponse } from "next/server"; + +import { auth } from "@/server/auth"; +import { db } from "@/server/db"; import { workflowRuns } from "~/server/db/schema"; + +type Params = Promise<{ id: string }>; + export async function GET( request: NextRequest, { params, }: { - params: { id: string }; + params: Params; }, ) { const session = await auth(); - const id = params.id; + const { id } = await params; + if (!id) { return NextResponse.json( { diff --git a/src/app/api/workflow/route.ts b/src/app/api/workflow/route.ts index f17c837..64c17d8 100644 --- a/src/app/api/workflow/route.ts +++ b/src/app/api/workflow/route.ts @@ -1,5 +1,3 @@ -import { Logger } from "@/lib/log"; -import { auth } from "@/server/auth"; import { storeWorkflowJob, updateWorkflowJob, @@ -7,6 +5,9 @@ import { } from "@lib/workflow/utils/workflowQueue"; import { type NextRequest, NextResponse } from "next/server"; import { v4 as uuidv4 } from "uuid"; + +import { Logger } from "@/lib/log"; +import { auth } from "@/server/auth"; import { WorkflowObjectSchema } from "~/schemas"; const log = new Logger("/api/workflow"); diff --git a/src/app/api/workflow/validate/route.ts b/src/app/api/workflow/validate/route.ts index c4020be..d217c32 100644 --- a/src/app/api/workflow/validate/route.ts +++ b/src/app/api/workflow/validate/route.ts @@ -1,7 +1,8 @@ -import { Logger } from "@/lib/log"; -import { auth } from "@/server/auth"; import { WorkflowObjectSchema } from "@schema"; import { type NextRequest, NextResponse } from "next/server"; + +import { Logger } from "@/lib/log"; +import { auth } from "@/server/auth"; import { getAccessTokenFromUserId } from "~/server/db/helper"; const log = new Logger("/api/workflow/validate"); diff --git a/src/app/auth/[route]/page.tsx b/src/app/auth/[route]/page.tsx index a236a38..8f7570b 100644 --- a/src/app/auth/[route]/page.tsx +++ b/src/app/auth/[route]/page.tsx @@ -1,24 +1,32 @@ import Link from "next/link"; +import { notFound } from "next/navigation"; + +import GradientBackground from "~/components/animatedBackground/GradientsBackground"; import ProviderButtons from "../providerButtons"; -import { notFound } from "next/navigation"; -import GradientBackground from "~/components/animatedBackground/GradientsBackground"; -export default function Page({ +type Params = Promise<{ route: "login" | "signup" }>; +type SearchParams = Promise; + +export default async function Page({ params, searchParams, }: { - params: { route: "login" | "signup" }; - searchParams: any; + params: Params; + searchParams: SearchParams; }) { - if (["login", "signup"].includes(params.route) === false) { + const resolvedParams = await params; + const resolvedSearchParams = await searchParams; + + if (["login", "signup"].includes(resolvedParams.route) === false) { return notFound(); } - const isLogin = params.route === "login"; - const error = searchParams.error; + + const isLogin = resolvedParams.route === "login"; + const error = resolvedSearchParams.error; return ( -
+
{/* {isLogin ? "Sign up" : "Login"} */} -
+
{/*
-

+

{isLogin ? "Welcome back" : "Let's get started"}

-

+

{isLogin ? "Login with your Spotify account" : "Create a new account"}

-

+

By {isLogin ? "logging in" : "signing up"} you agree to our{" "} {error && ( -

+
{error}
)} diff --git a/src/app/auth/p/spotify/page.tsx b/src/app/auth/p/spotify/page.tsx index b09a9d0..3489bba 100644 --- a/src/app/auth/p/spotify/page.tsx +++ b/src/app/auth/p/spotify/page.tsx @@ -1,6 +1,7 @@ "use client"; import { signIn, useSession } from "next-auth/react"; import { useEffect } from "react"; + import { LoadingSpinner } from "~/components/LoadingSpinner"; const SignInPage = () => { @@ -36,7 +37,7 @@ const SignInPage = () => {
- + Loading...

{renderContent()}

diff --git a/src/app/auth/providerButtons.tsx b/src/app/auth/providerButtons.tsx index 123b950..166ac39 100644 --- a/src/app/auth/providerButtons.tsx +++ b/src/app/auth/providerButtons.tsx @@ -1,8 +1,9 @@ "use client"; -import { getProviders, signIn, useSession } from "next-auth/react"; import { redirect } from "next/navigation"; +import { getProviders, signIn, useSession } from "next-auth/react"; import { useEffect, useState } from "react"; + import { LoadingSpinner } from "~/components/LoadingSpinner"; import { Button } from "~/components/ui/button"; @@ -25,28 +26,30 @@ const popupCenter = ({ w: number; h: number; }) => { - const { - screen, - innerWidth, - innerHeight, - screenLeft, - screenTop, - screenX, - screenY, - open, - } = window; - const dualScreenLeft = screenLeft ?? screenX; - const dualScreenTop = screenTop ?? screenY; - - const width = - innerWidth || document.documentElement.clientWidth || screen.width; - const height = - innerHeight || document.documentElement.clientHeight || screen.height; - - const systemZoom = width / screen.availWidth; - const left = (width - w) / 2 / systemZoom + dualScreenLeft; - const top = (height - h) / 2 / systemZoom + dualScreenTop; - const newWindow = open( + // Get window properties safely + const win = typeof window !== "undefined" ? window : null; + if (!win) return null; + + // Get screen dimensions + const screenWidth = win.screen.width; + const screenHeight = win.screen.height; + const screenAvailWidth = win.screen.availWidth; + + // Get window dimensions + const windowWidth = + win.innerWidth || document.documentElement.clientWidth || screenWidth; + const windowHeight = + win.innerHeight || document.documentElement.clientHeight || screenHeight; + + // Get screen position + const dualScreenLeft = win.screenLeft ?? win.screenX; + const dualScreenTop = win.screenTop ?? win.screenY; + + const systemZoom = windowWidth / screenAvailWidth; + const left = (windowWidth - w) / 2 / systemZoom + dualScreenLeft; + const top = (windowHeight - h) / 2 / systemZoom + dualScreenTop; + + const newWindow = win.open( url, title, `scrollbars=yes, width=${w / systemZoom}, height=${ @@ -126,7 +129,7 @@ export default function ProviderButtons() { )} {status === "loading" ? ( - + Authenticating... ) : ( diff --git a/src/app/global-error.tsx b/src/app/global-error.tsx index 7e73a47..cfef201 100644 --- a/src/app/global-error.tsx +++ b/src/app/global-error.tsx @@ -1,13 +1,12 @@ "use client"; -import * as Sentry from "@sentry/nextjs"; +// import * as Sentry from "@sentry/nextjs"; import Error from "next/error"; -import { useEffect } from "react"; export default function GlobalError({ error }) { - useEffect(() => { - Sentry.captureException(error); - }, [error]); + // useEffect(() => { + // Sentry.captureException(error); + // }, [error]); return ( diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 94f970c..7c30837 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,7 +1,8 @@ import "~/styles/globals.css"; -import { Toaster } from "@/components/ui/sonner"; import { Inter } from "next/font/google"; + +import { Toaster } from "@/components/ui/sonner"; import Footer from "~/components/main-footer"; import { SiteNav } from "~/components/main-nav"; import NextAuthProvider from "~/providers/NextAuthProvider"; diff --git a/src/app/page.tsx b/src/app/page.tsx index 2cf763f..49696cc 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -15,7 +15,7 @@ export default async function IndexPage() { const session = await auth(); return ( -
+
Flows For Your Playlists! diff --git a/src/app/states/store.ts b/src/app/states/store.ts index 91174ac..9f37b51 100644 --- a/src/app/states/store.ts +++ b/src/app/states/store.ts @@ -1,22 +1,21 @@ import { + addEdge, + applyEdgeChanges, + applyNodeChanges, type Connection, type Edge, + getConnectedEdges, + getIncomers, + getOutgoers, type Node, type OnConnect, type OnEdgesChange, type OnNodesChange, type ReactFlowInstance, - addEdge, - applyEdgeChanges, - applyNodeChanges, - getConnectedEdges, - getIncomers, - getOutgoers, } from "@xyflow/react"; import { generate } from "random-words"; -import { create } from "zustand"; - import { v4 as uuidv4 } from "uuid"; +import { create } from "zustand"; type RFState = { rightBarSize: number; diff --git a/src/app/utils/fetcher.ts b/src/app/utils/fetcher.ts index b2ccecd..cca3abd 100644 --- a/src/app/utils/fetcher.ts +++ b/src/app/utils/fetcher.ts @@ -8,7 +8,7 @@ export const fetcher = async (url: string) => { const json = await res.json(); error.info = json.error; console.info(error); - throw error; + throw new Error(error.info); } return res.json(); diff --git a/src/app/utils/reactFlowToWorkflow.ts b/src/app/utils/reactFlowToWorkflow.ts index 3a71643..1747af1 100644 --- a/src/app/utils/reactFlowToWorkflow.ts +++ b/src/app/utils/reactFlowToWorkflow.ts @@ -1,6 +1,6 @@ import { type Edge, type Node } from "@xyflow/react"; import { toast } from "sonner"; -/* eslint-disable @typescript-eslint/no-floating-promises */ + import useStore from "../states/store"; import { validateWorkflow } from "./validateWorkflow"; diff --git a/src/app/utils/runWorkflow.ts b/src/app/utils/runWorkflow.ts index 033a713..b056b3f 100644 --- a/src/app/utils/runWorkflow.ts +++ b/src/app/utils/runWorkflow.ts @@ -1,5 +1,6 @@ import { toast } from "sonner"; import { mutate } from "swr"; + import useStore, { workflowRunStore } from "../states/store"; export async function runWorkflow(workflow: Workflow.WorkflowResponse) { diff --git a/src/app/utils/saveWorkflow.ts b/src/app/utils/saveWorkflow.ts index 5c0d508..5e3cff8 100644 --- a/src/app/utils/saveWorkflow.ts +++ b/src/app/utils/saveWorkflow.ts @@ -1,5 +1,7 @@ import { toast } from "sonner"; + import useStore from "~/app/states/store"; + import reactFlowToWorkflow from "./reactFlowToWorkflow"; async function fetchWorkflow(workflow: any): Promise { diff --git a/src/app/utils/validateWorkflow.ts b/src/app/utils/validateWorkflow.ts index d4a37d3..e5ef4fa 100644 --- a/src/app/utils/validateWorkflow.ts +++ b/src/app/utils/validateWorkflow.ts @@ -1,5 +1,5 @@ import { toast } from "sonner"; -import { ZodError } from "zod"; +import type { ZodError } from "zod"; type validationResponse = | { success: true; data: Workflow.WorkflowObject } | { success: false; error: ZodError }; diff --git a/src/app/workflow/Builder.tsx b/src/app/workflow/Builder.tsx index 6cfe247..ac681f0 100644 --- a/src/app/workflow/Builder.tsx +++ b/src/app/workflow/Builder.tsx @@ -1,28 +1,25 @@ "use client"; import { type Edge, type Node } from "@xyflow/react"; - +import { useRouter } from "next/navigation"; import { useSession } from "next-auth/react"; import { memo, useCallback, useEffect, useRef } from "react"; -import Flow from "./Flow"; - -import useStore from "@/app/states/store"; +import type { ImperativePanelHandle } from "react-resizable-panels"; +import { toast } from "sonner"; import { useShallow } from "zustand/react/shallow"; -import Sidebar from "./Sidebar"; +import useStore from "@/app/states/store"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from "@/components/ui/resizable"; -import { ImperativePanelHandle } from "react-resizable-panels"; - -import { toast } from "sonner"; - -import { useRouter } from "next/navigation"; import { LoadingWithText } from "~/components/LoadingSpinner"; import { useWorkflowData } from "~/hooks/useWorkflowData"; +import Flow from "./Flow"; +import Sidebar from "./Sidebar"; + function Builder({ params, searchParams, @@ -206,4 +203,6 @@ const Loading = memo(() => (
)); +Loading.displayName = "Loading"; + export default Builder; diff --git a/src/app/workflow/Flow.tsx b/src/app/workflow/Flow.tsx index a3eae80..c3d4f81 100644 --- a/src/app/workflow/Flow.tsx +++ b/src/app/workflow/Flow.tsx @@ -1,26 +1,14 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ "use client"; -import { fetcher } from "@/app/utils/fetcher"; -import { - Background, - Controls, - Panel, - ReactFlow, - getOutgoers, -} from "@xyflow/react"; -import { useCallback, useRef } from "react"; -import useSWR from "swr"; - -import useStore from "~/app/states/store"; - import "@xyflow/react/dist/style.css"; -import { useShallow } from "zustand/react/shallow"; import Alternate from "@nodes/Combiner/Alternate"; import Push from "@nodes/Combiner/Push"; import RandomStream from "@nodes/Combiner/RandomStream"; - +import DedupeArtists from "@nodes/Filter/DedupeArtists"; +import DedupeTracks from "@nodes/Filter/DedupeTracks"; +import Limit from "@nodes/Filter/Limit"; +import RemoveMatch from "@nodes/Filter/RemoveMatch"; import AlbumTracks from "@nodes/Library/AlbumTracks"; import ArtistsTopTracks from "@nodes/Library/ArtistsTopTracks"; import LikedTracks from "@nodes/Library/LikedTracks"; @@ -29,43 +17,46 @@ import Playlist from "@nodes/Library/Playlist"; import SaveAsAppend from "@nodes/Library/SaveAsAppend"; import SaveAsNew from "@nodes/Library/SaveAsNew"; import SaveAsReplace from "@nodes/Library/SaveAsReplace"; - -import Last from "@nodes/Selectors/Last"; - -import DedupeArtists from "@nodes/Filter/DedupeArtists"; -import DedupeTracks from "@nodes/Filter/DedupeTracks"; -import Limit from "@nodes/Filter/Limit"; -import RemoveMatch from "@nodes/Filter/RemoveMatch"; - import Reverse from "@nodes/Order/Reverse"; import SeparateArtists from "@nodes/Order/SeparateArtists"; import Shuffle from "@nodes/Order/Shuffle"; import Sort from "@nodes/Order/Sort"; import SortPopularity from "@nodes/Order/SortPopularity"; - import AllButFirst from "@nodes/Selectors/AllButFirst"; import AllButLast from "@nodes/Selectors/AllButLast"; import First from "@nodes/Selectors/First"; +import Last from "@nodes/Selectors/Last"; import Recommend from "@nodes/Selectors/Recommend"; +import { + Background, + Controls, + getOutgoers, + Panel, + ReactFlow, +} from "@xyflow/react"; +import { PlayIcon, SaveIcon, Settings as SettingsIcon } from "lucide-react"; +import { usePathname, useRouter } from "next/navigation"; +import { useCallback, useRef } from "react"; +import { toast } from "sonner"; +import useSWR from "swr"; +import { useShallow } from "zustand/react/shallow"; +import { fetcher } from "@/app/utils/fetcher"; import { Button } from "@/components/ui/button"; import { Checkbox } from "@/components/ui/checkbox"; +import { Dialog, DialogTrigger } from "@/components/ui/dialog"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; -import { PlayIcon, SaveIcon, Settings as SettingsIcon } from "lucide-react"; -import { SettingsDialog } from "./settingsDialog/Settings"; - -import { Dialog, DialogTrigger } from "@/components/ui/dialog"; +import useStore from "~/app/states/store"; import reactFlowToWorkflow from "~/app/utils/reactFlowToWorkflow"; +import { runWorkflow } from "~/app/utils/runWorkflow"; import { saveWorkflow } from "~/app/utils/saveWorkflow"; -import { usePathname, useRouter } from "next/navigation"; -import { toast } from "sonner"; -import { runWorkflow } from "~/app/utils/runWorkflow"; +import { SettingsDialog } from "./settingsDialog/Settings"; export const Nodes = { "Combiner.alternate": { @@ -360,7 +351,8 @@ export function App() { .replace(/ /g, "-") .toLowerCase(); - const curName = path.match(/\/workflow\/(.*?)_/)?.[1]; + const match = /\/workflow\/(.*?)_/.exec(path); + const curName = match?.[1]; if (formattedName !== curName) { console.log( @@ -392,8 +384,8 @@ export function App() { ); return ( -
-
+
+
- +
- -
+
-

+

{flowState.name}

-

+

{" "} {flowState.description}

diff --git a/src/app/workflow/Sidebar.tsx b/src/app/workflow/Sidebar.tsx index fe1fef6..fa372db 100644 --- a/src/app/workflow/Sidebar.tsx +++ b/src/app/workflow/Sidebar.tsx @@ -1,10 +1,8 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ "use client"; -import { DragableNode } from "@/components/DragableNode"; import { useCallback, useMemo } from "react"; import React from "react"; -import { Nodes } from "./Flow"; +import { DragableNode } from "@/components/DragableNode"; import { Command, CommandGroup, @@ -13,6 +11,8 @@ import { CommandList, } from "@/components/ui/command"; import { ScrollArea } from "@/components/ui/scroll-area"; + +import { Nodes } from "./Flow"; type NodeType = { title: string; description: string; @@ -56,21 +56,21 @@ function Sidebar() { onDragOver={onDragOver} onDrop={onDrop} > -
-
+
+

Workflow Builder

-

+

Drag and drop nodes to the canvas to create a workflow

- + diff --git a/src/app/workflow/[id]/page.tsx b/src/app/workflow/[id]/page.tsx index b40540c..070d4e8 100644 --- a/src/app/workflow/[id]/page.tsx +++ b/src/app/workflow/[id]/page.tsx @@ -1,11 +1,14 @@ import Builder from "../Builder"; -export default function Page({ - params, - searchParams, -}: { - params: any; - searchParams: any; +type Params = Promise<{ id: string; [key: string]: any }>; +type SearchParams = Promise<{ [key: string]: any }>; + +export default async function Page(props: { + params: Params; + searchParams: SearchParams; }) { + const params = await props.params; + const searchParams = await props.searchParams; + return ; } diff --git a/src/app/workflow/page.tsx b/src/app/workflow/page.tsx index db84306..9a22c7a 100644 --- a/src/app/workflow/page.tsx +++ b/src/app/workflow/page.tsx @@ -1,11 +1,16 @@ +import { use } from "react"; + import Builder from "./Builder"; -export default function Page({ - params, - searchParams, -}: { - params: any; - searchParams: any; +type Params = Promise<{ id: string; [key: string]: any }>; +type SearchParams = Promise<{ [key: string]: any }>; + +export default function Page(props: { + params: Params; + searchParams: SearchParams; }) { + const params = use(props.params); + const searchParams = use(props.searchParams); + return ; } diff --git a/src/app/workflow/settingsDialog/Settings.tsx b/src/app/workflow/settingsDialog/Settings.tsx index 8eaa067..cfb60a6 100644 --- a/src/app/workflow/settingsDialog/Settings.tsx +++ b/src/app/workflow/settingsDialog/Settings.tsx @@ -1,18 +1,20 @@ "use client"; +import { zodResolver } from "@hookform/resolvers/zod"; +import router from "next/router"; +import { useEffect } from "react"; +import { useForm } from "react-hook-form"; +import * as z from "zod"; + import { DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { zodResolver } from "@hookform/resolvers/zod"; -import router from "next/router"; -import { useEffect } from "react"; -import { useForm } from "react-hook-form"; -import * as z from "zod"; import useStore from "~/app/states/store"; import { saveWorkflow } from "~/app/utils/saveWorkflow"; + import { Separator } from "../../../components/ui/separator"; import General from "./tabs/General"; import History from "./tabs/History"; @@ -130,7 +132,7 @@ export function SettingsDialog() { ? getScheduleFromCronExpression(flowState.cron).dayOfMonth : "*", }); - }, [flowState, reset]); + }, [flowState, reset]); // Add dependencies array const onSubmit = async (data) => { const cron = getCronExpression(form); @@ -150,27 +152,24 @@ export function SettingsDialog() { return ( - + Workflow Settings - + General Schedule History - + - + - + diff --git a/src/app/workflow/settingsDialog/tabs/General.tsx b/src/app/workflow/settingsDialog/tabs/General.tsx index 47a9a17..0857b99 100644 --- a/src/app/workflow/settingsDialog/tabs/General.tsx +++ b/src/app/workflow/settingsDialog/tabs/General.tsx @@ -1,9 +1,10 @@ +import { Copy, Info } from "lucide-react"; + import { Button } from "@/components/ui/button"; import { Form, FormField, FormItem } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import useClipboard from "@/hooks/useClipboard"; -import { Copy, Info } from "lucide-react"; import useStore from "~/app/states/store"; const General = ({ form, onSubmit }) => { @@ -17,7 +18,7 @@ const General = ({ form, onSubmit }) => { return (
-

+

Workflow Info

{ Use this ID to reference your workflow in the API

- diff --git a/src/app/workflow/settingsDialog/tabs/History.tsx b/src/app/workflow/settingsDialog/tabs/History.tsx index b65e58e..aaf8558 100644 --- a/src/app/workflow/settingsDialog/tabs/History.tsx +++ b/src/app/workflow/settingsDialog/tabs/History.tsx @@ -1,14 +1,16 @@ +import "@tanstack/react-table"; + import { type ColumnDef, - type SortingState, flexRender, getCoreRowModel, getSortedRowModel, + type SortingState, useReactTable, } from "@tanstack/react-table"; +import { ArrowUpDown } from "lucide-react"; import React, { useState } from "react"; import useSWR from "swr"; -import useStore from "~/app/states/store"; import { fetcher } from "@/app/utils/fetcher"; import { @@ -19,8 +21,7 @@ import { TableHeader, TableRow, } from "@/components/ui/table"; -import "@tanstack/react-table"; -import { ArrowUpDown } from "lucide-react"; +import useStore from "~/app/states/store"; import { Badge } from "~/components/ui/badge"; import { Button } from "~/components/ui/button"; import { Skeleton } from "~/components/ui/skeleton"; @@ -57,7 +58,7 @@ const columns: ColumnDef[] = [ onClick={() => column.toggleSorting(column.getIsSorted() === "asc")} > Started At - + ); }, @@ -71,7 +72,7 @@ const columns: ColumnDef[] = [ onClick={() => column.toggleSorting(column.getIsSorted() === "asc")} > Completed At - + ); }, @@ -227,7 +228,7 @@ const History = () => { return (
-

+

History

diff --git a/src/app/workflow/settingsDialog/tabs/Schedule.tsx b/src/app/workflow/settingsDialog/tabs/Schedule.tsx index f572582..27ba70f 100644 --- a/src/app/workflow/settingsDialog/tabs/Schedule.tsx +++ b/src/app/workflow/settingsDialog/tabs/Schedule.tsx @@ -1,5 +1,8 @@ "use client"; +import cronstrue from "cronstrue"; +import { useEffect, useMemo, useState } from "react"; + import { Alert, AlertDescription } from "@/components/ui/alert"; import { Button } from "@/components/ui/button"; import { Form, FormField, FormItem, FormLabel } from "@/components/ui/form"; @@ -11,10 +14,6 @@ import { SelectValue, } from "@/components/ui/select"; import { TimePicker12 } from "@/components/ui/time-picker/time-picker-12h"; -import cronstrue from "cronstrue"; -import { useEffect, useMemo, useState } from "react"; -import { UseFormReturn } from "react-hook-form"; -import type { SubmitHandler } from "react-hook-form"; interface FormValues { interval: string; @@ -26,16 +25,21 @@ interface FormValues { const UNSET_SCHEDULE = "unset"; interface WorkflowSchedulerProps { - form: UseFormReturn; - onSubmit: SubmitHandler; + form: any; + onSubmit: any; } -const WorkflowScheduler: React.FC = ({ form, onSubmit }) => { +const WorkflowScheduler: React.FC = ({ + form, + onSubmit, +}) => { const [cronExpression, setCronExpression] = useState(""); const [isScheduleLoading, setIsScheduleLoading] = useState(true); + const formValues = form.getValues(); + const { interval, scheduleTime, dayOfWeek, dayOfMonth } = formValues; + const getCronExpression = useMemo(() => { - const { interval, scheduleTime, dayOfWeek, dayOfMonth } = form.getValues(); const minutes = scheduleTime?.getMinutes() ?? 0; const hours = scheduleTime?.getHours() ?? 0; @@ -53,7 +57,7 @@ const WorkflowScheduler: React.FC = ({ form, onSubmit }) default: return ""; } - }, [form, form.watch("interval"), form.watch("scheduleTime"), form.watch("dayOfWeek"), form.watch("dayOfMonth")]); + }, [interval, scheduleTime, dayOfWeek, dayOfMonth]); useEffect(() => { if (getCronExpression === UNSET_SCHEDULE) { @@ -75,8 +79,8 @@ const WorkflowScheduler: React.FC = ({ form, onSubmit }) }; }, [form, getCronExpression]); - const interval = form.watch("interval"); - const memoizedInterval = useMemo(() => interval, [interval]); + const intervalValue = form.watch("interval"); + const memoizedInterval = useMemo(() => intervalValue, [intervalValue]); useEffect(() => { setIsScheduleLoading(false); @@ -92,7 +96,7 @@ const WorkflowScheduler: React.FC = ({ form, onSubmit }) className="flex flex-col gap-4" onSubmit={form.handleSubmit(onSubmit)} > -

+

Work Schedule

= ({ form, onSubmit }) )} - diff --git a/src/app/workflows/RunsGrid.tsx b/src/app/workflows/RunsGrid.tsx index d3c3fee..70b69ad 100644 --- a/src/app/workflows/RunsGrid.tsx +++ b/src/app/workflows/RunsGrid.tsx @@ -1,16 +1,17 @@ "use client"; +import { formatDistanceToNow } from "date-fns"; +import { Clock } from "lucide-react"; +import { useState } from "react"; +import useSWR from "swr"; +import { mutate } from "swr"; + import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; -import { formatDistanceToNow } from "date-fns"; -import { Clock } from "lucide-react"; -import { useState } from "react"; -import useSWR from "swr"; -import { mutate } from "swr"; import { Badge } from "~/components/ui/badge"; import { Card, @@ -20,8 +21,6 @@ import { CardTitle, } from "~/components/ui/card"; import { Skeleton } from "~/components/ui/skeleton"; -import { fetcher } from "./WorkflowGrid"; - import { Timeline, TimelineContent, @@ -31,6 +30,8 @@ import { TimelineLine, } from "~/components/ui/timeline"; +import { fetcher } from "./WorkflowGrid"; + function relativeDate(date: number) { const dateObj = new Date(date); if (Number.isNaN(dateObj.getTime())) { @@ -97,7 +98,9 @@ const EmptyRunCard = () => ( - You'll find your runs here! + + You'll find your runs here! + @@ -138,14 +141,14 @@ export function RunsGrid() { .slice(0, 10); return ( -
-
-
+
+
+

Latest Runs

-
+
{isLoading ? ( Array.from({ length: 6 }, (_, i) => ( @@ -154,7 +157,7 @@ export function RunsGrid() { - + )) @@ -178,7 +181,7 @@ export function RunsGrid() { minute: "2-digit", })}
-
+
{relativeDate(run.startedAt)}
@@ -196,24 +199,24 @@ export function RunsGrid() { /> - + {run.workflow.workflow.name} {run.error ? ( -
+
Error: {run.error}
) : run.startedAt && run.completedAt ? (
- + {(new Date(run.completedAt).getTime() - new Date(run.startedAt).getTime()) / 1000}{" "} seconds
) : ( -
+
{`Currently running`}
diff --git a/src/app/workflows/WorkflowGrid.tsx b/src/app/workflows/WorkflowGrid.tsx index 5079f72..6d7ca83 100644 --- a/src/app/workflows/WorkflowGrid.tsx +++ b/src/app/workflows/WorkflowGrid.tsx @@ -1,5 +1,21 @@ "use client"; +import { formatDistanceToNow } from "date-fns"; +import { + ArrowUpDown, + Calendar, + ChevronsUpDown, + Clock, + MoreVertical, + PenBox, + Trash, +} from "lucide-react"; +import Image from "next/image"; +import Link from "next/link"; +import { useState } from "react"; +import { toast } from "sonner"; +import useSWR, { mutate } from "swr"; + import { Collapsible, CollapsibleContent, @@ -18,21 +34,6 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; -import { formatDistanceToNow } from "date-fns"; -import { - ArrowUpDown, - Calendar, - ChevronsUpDown, - Clock, - MoreVertical, - PenBox, - Trash, -} from "lucide-react"; -import Image from "next/image"; -import Link from "next/link"; -import { useState } from "react"; -import { toast } from "sonner"; -import useSWR, { mutate } from "swr"; import { Badge } from "~/components/ui/badge"; import { Button, buttonVariants } from "~/components/ui/button"; import { @@ -44,6 +45,7 @@ import { CardTitle, } from "~/components/ui/card"; import { Skeleton } from "~/components/ui/skeleton"; + import { runWorkflow } from "../utils/runWorkflow"; function getTargets( @@ -126,7 +128,7 @@ function PlaylistCard({ source }: PlaylistCardProps) { return (
- +
@@ -170,7 +172,7 @@ function PlaylistCardTrigger({ source, setIsOpen }) { return (
-
+
{source.params.name}
@@ -190,7 +192,7 @@ function PlaylistCardTrigger({ source, setIsOpen }) { onClick={() => setIsOpen((prev) => !prev)} size={"sm"} > - + ); @@ -219,7 +221,7 @@ const ColapsiblePlaylists = ({ sources }: { sources: any[] }) => { setIsOpen={setIsOpen} /> - + {sources.map((source, _index) => ( ))} @@ -257,7 +259,7 @@ const CardSkeleton = () => (
- +
@@ -286,14 +288,14 @@ const WorkflowCardDropdownMenu = ({ id }) => { Actions - + Edit @@ -301,7 +303,7 @@ const WorkflowCardDropdownMenu = ({ id }) => { onClick={onDelete} className="bg-red-600 focus:bg-red-500" > - + Delete @@ -320,32 +322,32 @@ const WorkflowCard = ({ d }) => { return ( - +
{d.workflow.name} - +
{d.workflow.description || "No description"}
- + {d.workflow.operations.length} operations {d.averageRunTime !== 0 && !Number.isNaN(d.averageRunTime) && ( - + {(d.averageRunTime / 1000).toFixed(2)}s )}
-
+
@@ -354,7 +356,7 @@ const WorkflowCard = ({ d }) => {
-
+
Sources @@ -363,7 +365,7 @@ const WorkflowCard = ({ d }) => {
-
+
Targets @@ -374,13 +376,13 @@ const WorkflowCard = ({ d }) => {
- + {/*
{d.workflow.operations.length} operations
*/} -
- +
+
created {relativeDate(d.createdAt)} @@ -404,8 +406,8 @@ const WorkflowCard = ({ d }) => { }; const EmptyWorkflowCard = () => ( - -

+ +

You have no workflows!

@@ -441,7 +443,7 @@ export const fetcher = async (url: string) => { const json = await res.json(); error.info = json.error; console.info(error); - throw error; + throw new Error(error.info); } const data = (await res.json()) as Workflow.WorkflowResponse[]; @@ -527,9 +529,9 @@ export function WorkflowsGrid({ workflows }: WorkflowTableProps) { .slice(0, 4); return ( -
-
-
+
+
+

Your Workflows

@@ -541,7 +543,7 @@ export function WorkflowsGrid({ workflows }: WorkflowTableProps) {
-
+
{isLoading ? ( Array.from({ length: 6 }, (_, i) => ) ) : data && data.length > 0 ? ( diff --git a/src/app/workflows/WorkflowTable.tsx b/src/app/workflows/WorkflowTable.tsx index baec446..66c191d 100644 --- a/src/app/workflows/WorkflowTable.tsx +++ b/src/app/workflows/WorkflowTable.tsx @@ -1,4 +1,22 @@ "use client"; +import "@tanstack/react-table"; + +import { + type ColumnDef, + flexRender, + getCoreRowModel, + getSortedRowModel, + type SortingState, + useReactTable, +} from "@tanstack/react-table"; +import { formatDistanceToNow } from "date-fns"; +import { ArrowUpDown, ChevronsUpDown, RefreshCcw } from "lucide-react"; +import Image from "next/image"; +import Link from "next/link"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; +import useSWR from "swr"; + import { Collapsible, CollapsibleContent, @@ -18,22 +36,6 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; -import { - type ColumnDef, - type SortingState, - flexRender, - getCoreRowModel, - getSortedRowModel, - useReactTable, -} from "@tanstack/react-table"; -import "@tanstack/react-table"; -import { formatDistanceToNow } from "date-fns"; -import { ArrowUpDown, ChevronsUpDown, RefreshCcw } from "lucide-react"; -import Image from "next/image"; -import Link from "next/link"; -import { useRouter } from "next/navigation"; -import { useState } from "react"; -import useSWR from "swr"; import { Button, buttonVariants } from "~/components/ui/button"; import { Card, @@ -133,7 +135,7 @@ function PlaylistCard({ source }: PlaylistCardProps) { return (
-
+
{source.params.name}
@@ -155,7 +157,7 @@ function PlaylistCard({ source }: PlaylistCardProps) { function PlaylistCardSkeleton() { return ( - +
@@ -168,7 +170,7 @@ function PlaylistCardTrigger({ source, setIsOpen }) { return (
-
+
{source.params.name}
@@ -188,7 +190,7 @@ function PlaylistCardTrigger({ source, setIsOpen }) { onClick={() => setIsOpen((prev) => !prev)} size={"sm"} > - + ); @@ -217,7 +219,7 @@ function ColapsiblePlaylists({ sources }: { sources: any[] }) { setIsOpen={setIsOpen} /> - + {sources.map((source, _index) => ( ))} @@ -236,7 +238,7 @@ const columns: ColumnDef[] = [ onClick={() => column.toggleSorting(column.getIsSorted() === "asc")} > Name - + ); }, @@ -406,7 +408,7 @@ export const fetcher = async (url: string) => { const json = await res.json(); error.info = json.error; console.info(error); - throw error; + throw new Error(error.info); } const data = await res.json(); @@ -470,7 +472,7 @@ export function WorkflowTable({ workflows }: WorkflowTableProps) { onKeyPress={refreshData} size="sm" > - + Manage your workflows here. diff --git a/src/app/workflows/page.tsx b/src/app/workflows/page.tsx index 172fac7..e984dd9 100644 --- a/src/app/workflows/page.tsx +++ b/src/app/workflows/page.tsx @@ -1,7 +1,9 @@ import { redirect } from "next/navigation"; + +import { auth } from "~/server/auth"; + import { RunsGrid } from "./RunsGrid"; import { WorkflowsGrid } from "./WorkflowGrid"; -import { auth } from "~/server/auth"; export default async function Dashboard() { const workflows = undefined; @@ -12,10 +14,10 @@ export default async function Dashboard() { } return ( -
+
-
-
+
+
diff --git a/src/components/DragableNode.tsx b/src/components/DragableNode.tsx index 3310b9c..296c8fd 100644 --- a/src/components/DragableNode.tsx +++ b/src/components/DragableNode.tsx @@ -1,3 +1,6 @@ +import { GripVertical } from "lucide-react"; +import { useShallow } from "zustand/react/shallow"; + import useStore from "@/app/states/store"; import { Tooltip, @@ -5,8 +8,6 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; -import { GripVertical } from "lucide-react"; -import { useShallow } from "zustand/react/shallow"; type DragableNodeProps = { nodeType: string; @@ -58,16 +59,16 @@ export const DragableNode = ({ return ( -
+
- + {title}
diff --git a/src/components/LandingPage/BuilderDemo.tsx b/src/components/LandingPage/BuilderDemo.tsx index 685feab..c6f5e0d 100644 --- a/src/components/LandingPage/BuilderDemo.tsx +++ b/src/components/LandingPage/BuilderDemo.tsx @@ -1,19 +1,19 @@ "use client"; -import { nodeTypes } from "@/app/workflow/Flow"; +import "@xyflow/react/dist/style.css"; + +import type { Edge, Node, ReactFlowState } from "@xyflow/react"; import { - Edge, - Node, + getNodesBounds, ReactFlow, ReactFlowProvider, - ReactFlowState, - getNodesBounds, useReactFlow, useStore, useStoreApi, } from "@xyflow/react"; -import "@xyflow/react/dist/style.css"; import { useCallback, useEffect, useState } from "react"; +import { nodeTypes } from "@/app/workflow/Flow"; + const proOptions = { hideAttribution: true, }; @@ -401,7 +401,7 @@ function Flow({ initialColor = "#777", className }: FlowProps) { }, [viewportWidth]); return ( -
+
⚠️ {" "} diff --git a/src/components/LandingPage/page-header.tsx b/src/components/LandingPage/page-header.tsx index e8d4e30..31ca5bc 100644 --- a/src/components/LandingPage/page-header.tsx +++ b/src/components/LandingPage/page-header.tsx @@ -1,5 +1,7 @@ -import { cn } from "@/lib/utils"; import Balance from "react-wrap-balancer"; + +import { cn } from "@/lib/utils"; + import GradientBackground from "../animatedBackground/GradientsBackground"; import BuilderDemo from "./BuilderDemo"; @@ -9,17 +11,17 @@ function PageHeader({ ...props }: React.HTMLAttributes) { return ( -
+
{children}
-
+
@@ -32,7 +34,7 @@ function PageHeaderHeading({ return (

( @@ -42,13 +43,13 @@ export function SystemInfo() { href="https://status.radityaharya.com/status/flowify" className={cn( buttonVariants({ variant: "outline" }), - "text-white font-normal text-sm h-8", + "h-8 text-sm font-normal text-white", )} target="_blank" > -
+
Flowify
-