From db6d59ba4495f7d687ea3a3ed914f3da407e410a Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 16 Apr 2024 12:18:43 +0200 Subject: [PATCH 001/165] Create new core package --- packages/core/package.json | 42 ++++++++++++++++++++++++++++++++++++++ pnpm-lock.yaml | 19 +++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 packages/core/package.json diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 00000000..2558e295 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,42 @@ +{ + "name": "@commercelayer/core", + "version": "1.0.0", + "description": "Commerce Layer Components Core SDK", + "type": "module", + "main": "./dist/index.js", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "keywords": [ + "jamstack", + "headless", + "ecommerce", + "api", + "components" + ], + "scripts": { + "lint": "eslint src --ext .ts,.tsx", + "lint:fix": "eslint src --ext .ts,.tsx --fix", + "test": "pnpm run lint && vitest run --silent", + "test:watch": "vitest --silent", + "build": "tsup" + }, + "publishConfig": { + "access": "public" + }, + "author": { + "name": "Alessandro Casazza", + "email": "alessandro@commercelayer.io" + }, + "license": "MIT", + "devDependencies": { + "tsup": "^8.0.2", + "typescript": "^5.4.5", + "vite-tsconfig-paths": "^4.3.2", + "vitest": "^1.5.0" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0834aee0..89f6b303 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,21 @@ importers: specifier: ^5.8.2 version: 5.8.2 + packages/core: + devDependencies: + tsup: + specifier: ^8.0.2 + version: 8.0.2(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + vite-tsconfig-paths: + specifier: ^4.3.2 + version: 4.3.2(typescript@5.4.5) + vitest: + specifier: ^1.5.0 + version: 1.5.0 + packages/docs: devDependencies: '@babel/core': @@ -11354,6 +11369,7 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true glob@9.3.5: dependencies: @@ -11512,6 +11528,7 @@ snapshots: dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true inherits@2.0.4: {} @@ -12886,6 +12903,7 @@ snapshots: once@1.4.0: dependencies: wrappy: 1.0.2 + dev: true onetime@5.1.2: dependencies: @@ -13564,6 +13582,7 @@ snapshots: rimraf@3.0.2: dependencies: glob: 7.2.3 + dev: true rimraf@4.4.1: dependencies: From 9ea9132faeb37bb54c332d09b195124029165431 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 19 Apr 2024 10:51:27 +0200 Subject: [PATCH 002/165] Add configuration and getPrices function --- .vscode/settings.json | 1 + packages/core/package.json | 4 +++ packages/core/src/index.ts | 0 packages/core/src/prices/getPrices.test.ts | 20 ++++++++++++ packages/core/src/prices/getPrices.ts | 13 ++++++++ packages/core/src/sdk/index.ts | 8 +++++ packages/core/src/types/base.ts | 3 ++ packages/core/src/types/index.ts | 2 ++ packages/core/src/types/jwt.ts | 38 ++++++++++++++++++++++ packages/core/tsconfig.json | 34 +++++++++++++++++++ packages/core/tsup.config.ts | 15 +++++++++ pnpm-lock.yaml | 13 ++++++-- 12 files changed, 148 insertions(+), 3 deletions(-) create mode 100644 packages/core/src/index.ts create mode 100644 packages/core/src/prices/getPrices.test.ts create mode 100644 packages/core/src/prices/getPrices.ts create mode 100644 packages/core/src/sdk/index.ts create mode 100644 packages/core/src/types/base.ts create mode 100644 packages/core/src/types/index.ts create mode 100644 packages/core/src/types/jwt.ts create mode 100644 packages/core/tsconfig.json create mode 100644 packages/core/tsup.config.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 6eb5b69d..47ed019a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,7 @@ "eslint.workingDirectories": [ "packages/react-components", "packages/docs", + "packages/core", ], "eslint.validate": [ "javascript", diff --git a/packages/core/package.json b/packages/core/package.json index 2558e295..280080f7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,5 +38,9 @@ "typescript": "^5.4.5", "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.5.0" + }, + "dependencies": { + "@commercelayer/sdk": "6.0.0-rc.2", + "jwt-decode": "^4.0.0" } } \ No newline at end of file diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/core/src/prices/getPrices.test.ts b/packages/core/src/prices/getPrices.test.ts new file mode 100644 index 00000000..799a6735 --- /dev/null +++ b/packages/core/src/prices/getPrices.test.ts @@ -0,0 +1,20 @@ +import { getPrices } from './getPrices.js' + +describe('getPrices', () => { + test('should return a list of prices', async () => { + // Mock the necessary dependencies and setup test data + const accessToken = 'YOUR_ACCESS_TOKEN' + const params = { + // Set your desired parameters for the getPrices function + } + + // Call the getPrices function + const result = await getPrices({ accessToken, ...params }) + + // Assert the expected result + expect(result).toBeDefined() + // Add more assertions based on the expected behavior of the getPrices function + }) + + // Add more test cases for different scenarios +}) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts new file mode 100644 index 00000000..c86e5607 --- /dev/null +++ b/packages/core/src/prices/getPrices.ts @@ -0,0 +1,13 @@ +import type { ListResponse, Price, QueryParamsList } from '@commercelayer/sdk' +import { getSdk } from 'src/sdk/index.js' +import type { RequestConfig } from 'src/types/index.js' + +type GetPricesParams = RequestConfig & QueryParamsList + +export async function getPrices({ + accessToken, + ...params +}: GetPricesParams): Promise> { + const sdk = getSdk({ accessToken }) + return await sdk.prices.list(params) +} diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts new file mode 100644 index 00000000..7f9faad5 --- /dev/null +++ b/packages/core/src/sdk/index.ts @@ -0,0 +1,8 @@ +import type { Jwt, RequestConfig } from 'src/types/index.js' +import sdk, { type CommerceLayerClient } from '@commercelayer/sdk' +import { jwtDecode } from 'jwt-decode' + +export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { + const organization = jwtDecode(accessToken).organization.slug + return sdk.default({ accessToken, organization }) +} diff --git a/packages/core/src/types/base.ts b/packages/core/src/types/base.ts new file mode 100644 index 00000000..bb1cd2e6 --- /dev/null +++ b/packages/core/src/types/base.ts @@ -0,0 +1,3 @@ +export interface RequestConfig { + accessToken: string +} diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts new file mode 100644 index 00000000..93bd730f --- /dev/null +++ b/packages/core/src/types/index.ts @@ -0,0 +1,2 @@ +export type { RequestConfig } from './base.js' +export type { Jwt } from './jwt.js' diff --git a/packages/core/src/types/jwt.ts b/packages/core/src/types/jwt.ts new file mode 100644 index 00000000..b39a8dc3 --- /dev/null +++ b/packages/core/src/types/jwt.ts @@ -0,0 +1,38 @@ +export interface Jwt { + organization: Organization + application: Application + market: Market + owner: Owner + scope: string + exp: number + test: boolean + rand: number + iat: number + iss: string +} + +interface Application { + id: string + kind: string + public: boolean +} + +interface Market { + id: string[] + price_list_id: string + stock_location_ids: string[] + geocoder_id: null + allows_external_prices: boolean +} + +interface Organization { + id: string + slug: string + enterprise: boolean + region: string +} + +interface Owner { + id: string + type: string +} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 00000000..a2a6dc62 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Module Resolution Options */ + "module": "Node16", + "target": "ES2022", + "moduleResolution": "Node16", + "verbatimModuleSyntax": true, + /* Other Options */ + "resolveJsonModule": true, + "declaration": true /* Generates corresponding '.d.ts' file. */, + "strict": true /* Enable all strict type-checking options. */, + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, + "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, + "types": [ + "vitest/globals" + ], + "baseUrl": "." /* Base directory to resolve non-absolute module names. */, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + }, + "include": [ + "**/*.ts", + ".eslintrc.cjs" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts new file mode 100644 index 00000000..3f2a4c31 --- /dev/null +++ b/packages/core/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'tsup' + +const env = process.env['NODE_ENV'] + +export default defineConfig((options) => ({ + sourcemap: true, // source map is only available in prod + clean: true, // clean dist before build + dts: true, // generate dts file for main module + format: ['cjs', 'esm'], // generate cjs and esm files + minify: !options.watch, + bundle: true, + watch: env === 'development', + target: 'es2020', + entry: ['src/index.ts'] +})) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 89f6b303..e7c4bde5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,19 +39,26 @@ importers: version: 5.8.2 packages/core: + dependencies: + '@commercelayer/sdk': + specifier: 6.0.0-rc.2 + version: 6.0.0-rc.2 + jwt-decode: + specifier: ^4.0.0 + version: 4.0.0 devDependencies: tsup: specifier: ^8.0.2 - version: 8.0.2(typescript@5.4.5) + version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5) + version: 4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@20.12.7)(terser@5.30.3)) vitest: specifier: ^1.5.0 - version: 1.5.0 + version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0)(terser@5.30.3) packages/docs: devDependencies: From db82faa920b7505ac634ac1804971ca3ff344351 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 6 Feb 2025 10:49:07 +0100 Subject: [PATCH 003/165] Add getPrices tests, biomejs, and global vitest config --- .vscode/settings.json | 22 +- biome.json | 58 +- package.json | 91 ++-- packages/core/extender.ts | 29 + packages/core/package.json | 31 +- packages/core/src/auth/getAccessToken.spec.ts | 38 ++ packages/core/src/auth/getAccessToken.ts | 21 + packages/core/src/prices/getPrices.spec.ts | 30 ++ packages/core/src/prices/getPrices.test.ts | 20 - packages/core/src/prices/getPrices.ts | 6 +- packages/core/src/sdk/index.ts | 8 +- packages/core/tsconfig.json | 15 +- packages/core/tsup.config.ts | 12 +- packages/core/vitest.config.ts | 12 + .../{vitest.config.mts => _vitest.config.mts} | 0 packages/react-components/package.json | 88 +-- packages/react-components/tsconfig.json | 68 +-- pnpm-lock.yaml | 508 ++++++++++++++---- vitest.workspace.ts | 3 + 19 files changed, 694 insertions(+), 366 deletions(-) create mode 100644 packages/core/extender.ts create mode 100644 packages/core/src/auth/getAccessToken.spec.ts create mode 100644 packages/core/src/auth/getAccessToken.ts create mode 100644 packages/core/src/prices/getPrices.spec.ts delete mode 100644 packages/core/src/prices/getPrices.test.ts create mode 100644 packages/core/vitest.config.ts rename packages/react-components/{vitest.config.mts => _vitest.config.mts} (100%) create mode 100644 vitest.workspace.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 47ed019a..184991f8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,22 +1,8 @@ { - "typescript.tsdk": "node_modules/typescript/lib", "editor.formatOnSave": true, - "javascript.format.enable": true, - "eslint.workingDirectories": [ - "packages/react-components", - "packages/docs", - "packages/core", - ], - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact" - ], - "css.validate": false, - "less.validate": false, - "scss.validate": false, + "editor.defaultFormatter": "biomejs.biome", "editor.codeActionsOnSave": { - "source.fixAll": "explicit" + "quickfix.biome": "explicit", + "source.organizeImports.biome": "explicit" } -} \ No newline at end of file +} diff --git a/biome.json b/biome.json index 64996857..173dadfd 100644 --- a/biome.json +++ b/biome.json @@ -1,31 +1,31 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "vcs": { - "enabled": false, - "clientKind": "git", - "useIgnoreFile": false - }, - "files": { - "ignoreUnknown": false, - "ignore": [] - }, - "formatter": { - "enabled": true, - "indentStyle": "space" - }, - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "recommended": true - } - }, - "javascript": { - "formatter": { - "quoteStyle": "double", - "semicolons":"asNeeded" - } - } + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "ignore": [] + }, + "formatter": { + "enabled": true, + "indentStyle": "space" + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double", + "semicolons": "asNeeded" + } + } } diff --git a/package.json b/package.json index 8a73d137..5d0a5daa 100644 --- a/package.json +++ b/package.json @@ -1,47 +1,48 @@ { - "name": "root", - "private": true, - "author": { - "name": "Alessandro Casazza", - "email": "alessandro@commercelayer.io" - }, - "scripts": { - "preinstall": "npx only-allow pnpm", - "build": "pnpm -r build", - "prepare": "husky", - "test": "pnpm -r test", - "docs:dev": "pnpm --filter docs storybook", - "docs:build": "pnpm --filter docs build-storybook", - "components:build:dev": "pnpm --filter react-components build:dev", - "components:build": "pnpm --filter react-components build", - "make:version": "lerna version --no-private", - "make:version:force": "lerna version --no-private --force-publish", - "dep:major": "pnpm dlx npm-check-updates --packageFile '**/package.json' -u -i", - "dep:minor": "pnpm dep:major -t minor -i" - }, - "devDependencies": { - "@biomejs/biome": "1.9.4", - "husky": "^9.1.7", - "lerna": "^8.2.1", - "typescript": "^5.8.2" - }, - "pnpm": { - "overrides": { - "postcss@<8.4.31": ">=8.4.31", - "graphql@>=16.3.0 <16.8.1": ">=16.8.1", - "vite@>=4.4.0 <4.4.12": ">=4.4.12", - "@babel/traverse@<7.23.2": ">=7.23.2", - "vite@>=4.0.0 <=4.5.1": ">=4.5.2", - "follow-redirects@<1.15.4": ">=1.15.4", - "express@<4.19.2": ">=4.19.2", - "vite@>=5.1.0 <=5.1.6": ">=5.1.7", - "tar@<6.2.1": ">=6.2.1", - "ejs@<3.1.10": ">=3.1.10", - "braces@<3.0.3": ">=3.0.3", - "ws@>=8.0.0 <8.17.1": ">=8.17.1", - "micromatch@<4.0.8": ">=4.0.8", - "rollup@>=4.0.0 <4.22.4": ">=4.22.4", - "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" - } - } + "name": "root", + "private": true, + "author": { + "name": "Alessandro Casazza", + "email": "alessandro@commercelayer.io" + }, + "scripts": { + "preinstall": "npx only-allow pnpm", + "build": "pnpm -r build", + "prepare": "husky", + "test": "pnpm -r test", + "docs:dev": "pnpm --filter docs storybook", + "docs:build": "pnpm --filter docs build-storybook", + "components:build:dev": "pnpm --filter react-components build:dev", + "components:build": "pnpm --filter react-components build", + "make:version": "lerna version --no-private", + "make:version:force": "lerna version --no-private --force-publish", + "dep:major": "pnpm dlx npm-check-updates --packageFile '**/package.json' -u -i", + "dep:minor": "pnpm dep:major -t minor -i" + }, + "devDependencies": { + "@biomejs/biome": "1.9.4", + "husky": "^9.1.7", + "lerna": "^8.1.9", + "typescript": "^5.7.3", + "vitest": "^3.0.4" + }, + "pnpm": { + "overrides": { + "postcss@<8.4.31": ">=8.4.31", + "graphql@>=16.3.0 <16.8.1": ">=16.8.1", + "vite@>=4.4.0 <4.4.12": ">=4.4.12", + "@babel/traverse@<7.23.2": ">=7.23.2", + "vite@>=4.0.0 <=4.5.1": ">=4.5.2", + "follow-redirects@<1.15.4": ">=1.15.4", + "express@<4.19.2": ">=4.19.2", + "vite@>=5.1.0 <=5.1.6": ">=5.1.7", + "tar@<6.2.1": ">=6.2.1", + "ejs@<3.1.10": ">=3.1.10", + "braces@<3.0.3": ">=3.0.3", + "ws@>=8.0.0 <8.17.1": ">=8.17.1", + "micromatch@<4.0.8": ">=4.0.8", + "rollup@>=4.0.0 <4.22.4": ">=4.22.4", + "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" + } + } } diff --git a/packages/core/extender.ts b/packages/core/extender.ts new file mode 100644 index 00000000..3a6f35be --- /dev/null +++ b/packages/core/extender.ts @@ -0,0 +1,29 @@ +import { test } from "vitest" +import { getAccessToken } from "./src/auth/getAccessToken.js" + +const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID +const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE +const domain = import.meta.env.VITE_DOMAIN +let accessToken: ReturnType = undefined + +export const coreTest = test.extend({ + accessToken: async ({ _ }, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId, + scope, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId, + scope, + domain, + }, +}) diff --git a/packages/core/package.json b/packages/core/package.json index 280080f7..3b516ef5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,18 +11,13 @@ "types": "./dist/index.d.ts" } }, - "keywords": [ - "jamstack", - "headless", - "ecommerce", - "api", - "components" - ], + "keywords": ["jamstack", "headless", "ecommerce", "api", "components"], "scripts": { - "lint": "eslint src --ext .ts,.tsx", - "lint:fix": "eslint src --ext .ts,.tsx --fix", - "test": "pnpm run lint && vitest run --silent", - "test:watch": "vitest --silent", + "lint": "biome lint --error-on-warnings ./src", + "lint:fix": "pnpm biome lint --write ./src", + "test": "pnpm run lint && vitest --silent", + "test:watch": "vitest", + "coverage": "vitest run --coverage", "build": "tsup" }, "publishConfig": { @@ -34,13 +29,15 @@ }, "license": "MIT", "devDependencies": { - "tsup": "^8.0.2", - "typescript": "^5.4.5", - "vite-tsconfig-paths": "^4.3.2", - "vitest": "^1.5.0" + "@vitest/coverage-v8": "^3.0.4", + "tsup": "^8.3.6", + "typescript": "^5.7.3", + "vite-tsconfig-paths": "^5.1.4", + "vitest": "^3.0.4" }, "dependencies": { - "@commercelayer/sdk": "6.0.0-rc.2", + "@commercelayer/js-auth": "^6.7.0", + "@commercelayer/sdk": "6.29.2", "jwt-decode": "^4.0.0" } -} \ No newline at end of file +} diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts new file mode 100644 index 00000000..ff92d323 --- /dev/null +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -0,0 +1,38 @@ +import { authenticate } from "@commercelayer/js-auth" +import { describe, expect, vi } from "vitest" +import { coreTest } from "../../extender.js" +import { getAccessToken } from "./getAccessToken.js" + +vi.mock("@commercelayer/js-auth", () => ({ + authenticate: vi.fn(), +})) + +describe("getAccessToken", () => { + coreTest( + "should call authenticate with the correct parameters", + async ({ accessToken, config }) => { + const token = accessToken?.accessToken + const grantType = "client_credentials" + const mockToken = { accessToken: token } + authenticate.mockResolvedValue(mockToken) + const result = await getAccessToken({ grantType, config }) + await expect(authenticate).toHaveBeenCalledWith(grantType, config) + expect(result).toEqual(mockToken) + expect(result).toHaveProperty("accessToken") + expect(result.accessToken).toBe(mockToken.accessToken) + }, + ) + + coreTest("should throw an error if authenticate fails", async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }) +}) diff --git a/packages/core/src/auth/getAccessToken.ts b/packages/core/src/auth/getAccessToken.ts new file mode 100644 index 00000000..56d91815 --- /dev/null +++ b/packages/core/src/auth/getAccessToken.ts @@ -0,0 +1,21 @@ +import { authenticate } from "@commercelayer/js-auth" + +interface AuthenticateProps { + grantType: Parameters[0] + config: Parameters[1] +} + +/** + * Retrieves an access token using the provided grant type and configuration. + * + * @param {AuthenticateProps} params - The parameters for authentication. + * @param {string} params.grantType - The type of grant to use for authentication. + * @param {object} params.config - The configuration object for authentication. + * @returns {Promise>} A promise that resolves to the access token. + */ +export async function getAccessToken({ + grantType, + config, +}: AuthenticateProps): ReturnType { + return await authenticate(grantType, config) +} diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts new file mode 100644 index 00000000..bcef04c2 --- /dev/null +++ b/packages/core/src/prices/getPrices.spec.ts @@ -0,0 +1,30 @@ +import type { QueryFilter } from "@commercelayer/sdk" +import { describe, expect } from "vitest" +import { coreTest } from "../../extender.js" +import { getPrices } from "./getPrices.js" + +describe("getPrices", () => { + coreTest("should return a list of prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }) + + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const params: QueryFilter = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } + + // Call the getPrices function + const result = await getPrices({ accessToken: token, ...params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }) + + // Add more test cases for different scenarios +}) diff --git a/packages/core/src/prices/getPrices.test.ts b/packages/core/src/prices/getPrices.test.ts deleted file mode 100644 index 799a6735..00000000 --- a/packages/core/src/prices/getPrices.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { getPrices } from './getPrices.js' - -describe('getPrices', () => { - test('should return a list of prices', async () => { - // Mock the necessary dependencies and setup test data - const accessToken = 'YOUR_ACCESS_TOKEN' - const params = { - // Set your desired parameters for the getPrices function - } - - // Call the getPrices function - const result = await getPrices({ accessToken, ...params }) - - // Assert the expected result - expect(result).toBeDefined() - // Add more assertions based on the expected behavior of the getPrices function - }) - - // Add more test cases for different scenarios -}) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index c86e5607..7586f706 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,6 +1,6 @@ -import type { ListResponse, Price, QueryParamsList } from '@commercelayer/sdk' -import { getSdk } from 'src/sdk/index.js' -import type { RequestConfig } from 'src/types/index.js' +import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" +import { getSdk } from "../sdk/index.js" +import type { RequestConfig } from "../types/index.js" type GetPricesParams = RequestConfig & QueryParamsList diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index 7f9faad5..d9caedfc 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,8 +1,8 @@ -import type { Jwt, RequestConfig } from 'src/types/index.js' -import sdk, { type CommerceLayerClient } from '@commercelayer/sdk' -import { jwtDecode } from 'jwt-decode' +import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" +import { jwtDecode } from "jwt-decode" +import type { Jwt, RequestConfig } from "src/types/index.js" export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { const organization = jwtDecode(accessToken).organization.slug - return sdk.default({ accessToken, organization }) + return sdk({ accessToken, organization }) } diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index a2a6dc62..c920654c 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -16,19 +16,12 @@ "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, - "types": [ - "vitest/globals" - ], + "types": ["vitest/globals"], "baseUrl": "." /* Base directory to resolve non-absolute module names. */, "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, "skipLibCheck": true /* Skip type checking of declaration files. */, "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "include": [ - "**/*.ts", - ".eslintrc.cjs" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": ["**/*.ts", ".eslintrc.cjs", "src/hooks/useAuthenticate.tsx"], + "exclude": ["node_modules"] +} diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 3f2a4c31..486ecc49 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -1,15 +1,15 @@ -import { defineConfig } from 'tsup' +import { defineConfig } from "tsup" -const env = process.env['NODE_ENV'] +const env = process.env.NODE_ENV export default defineConfig((options) => ({ sourcemap: true, // source map is only available in prod clean: true, // clean dist before build dts: true, // generate dts file for main module - format: ['cjs', 'esm'], // generate cjs and esm files + format: ["cjs", "esm"], // generate cjs and esm files minify: !options.watch, bundle: true, - watch: env === 'development', - target: 'es2020', - entry: ['src/index.ts'] + watch: env === "development", + target: "es2020", + entry: ["src/index.ts"], })) diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts new file mode 100644 index 00000000..a455d010 --- /dev/null +++ b/packages/core/vitest.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + name: "core", + environment: "node", + coverage: { + provider: "v8", + reporter: ["text", "json", "html"], + }, + }, +}) diff --git a/packages/react-components/vitest.config.mts b/packages/react-components/_vitest.config.mts similarity index 100% rename from packages/react-components/vitest.config.mts rename to packages/react-components/_vitest.config.mts diff --git a/packages/react-components/package.json b/packages/react-components/package.json index df9d9d43..d4ede5ee 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -5,11 +5,7 @@ "main": "lib/cjs/index.js", "module": "lib/esm/index.js", "types": "lib/esm/index.d.ts", - "files": [ - "lib", - "package.json", - "README.md" - ], + "files": ["lib", "package.json", "README.md"], "exports": { ".": { "require": "./lib/cjs/index.js", @@ -98,66 +94,28 @@ }, "typesVersions": { "*": { - "addresses/*": [ - "lib/esm/components/addresses/*.d.ts" - ], - "auth/*": [ - "lib/esm/components/auth/*.d.ts" - ], - "customers/*": [ - "lib/esm/components/customers/*.d.ts" - ], - "errors/*": [ - "lib/esm/components/errors/*.d.ts" - ], - "gift_cards/*": [ - "lib/esm/components/gift_cards/*.d.ts" - ], + "addresses/*": ["lib/esm/components/addresses/*.d.ts"], + "auth/*": ["lib/esm/components/auth/*.d.ts"], + "customers/*": ["lib/esm/components/customers/*.d.ts"], + "errors/*": ["lib/esm/components/errors/*.d.ts"], + "gift_cards/*": ["lib/esm/components/gift_cards/*.d.ts"], "in_stock_subscriptions/*": [ "lib/esm/components/in_stock_subscriptions/*.d.ts" ], - "hooks/*": [ - "lib/esm/hooks/*.d.ts" - ], - "line_items/*": [ - "lib/esm/components/line_items/*.d.ts" - ], - "orders/*": [ - "lib/esm/components/orders/*.d.ts" - ], - "parcels/*": [ - "lib/esm/components/parcels/*.d.ts" - ], - "payment_methods/*": [ - "lib/esm/components/payment_methods/*.d.ts" - ], - "payment_source/*": [ - "lib/esm/components/payment_source/*.d.ts" - ], - "prices/*": [ - "lib/esm/components/prices/*.d.ts" - ], - "shipments/*": [ - "lib/esm/components/shipments/*.d.ts" - ], - "shipping_methods/*": [ - "lib/esm/components/shipping_methods/*.d.ts" - ], - "skus/*": [ - "lib/esm/components/skus/*.d.ts" - ], - "stock_transfers/*": [ - "lib/esm/components/stock_transfers/*.d.ts" - ], - "context/*": [ - "lib/esm/context/*.d.ts" - ], - "utils/*": [ - "lib/esm/utils/*.d.ts" - ], - "component_utils/*": [ - "lib/esm/components/utils/*.d.ts" - ] + "hooks/*": ["lib/esm/hooks/*.d.ts"], + "line_items/*": ["lib/esm/components/line_items/*.d.ts"], + "orders/*": ["lib/esm/components/orders/*.d.ts"], + "parcels/*": ["lib/esm/components/parcels/*.d.ts"], + "payment_methods/*": ["lib/esm/components/payment_methods/*.d.ts"], + "payment_source/*": ["lib/esm/components/payment_source/*.d.ts"], + "prices/*": ["lib/esm/components/prices/*.d.ts"], + "shipments/*": ["lib/esm/components/shipments/*.d.ts"], + "shipping_methods/*": ["lib/esm/components/shipping_methods/*.d.ts"], + "skus/*": ["lib/esm/components/skus/*.d.ts"], + "stock_transfers/*": ["lib/esm/components/stock_transfers/*.d.ts"], + "context/*": ["lib/esm/context/*.d.ts"], + "utils/*": ["lib/esm/utils/*.d.ts"], + "component_utils/*": ["lib/esm/components/utils/*.d.ts"] } }, "publishConfig": { @@ -211,7 +169,7 @@ "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", "lodash": "^4.17.21", - "rapid-form": "2.1.0" + "rapid-form": "3.1.0" }, "devDependencies": { "@commercelayer/js-auth": "^6.7.1", @@ -223,8 +181,8 @@ "@types/lodash": "^4.17.16", "@types/node": "^22.13.9", "@types/prop-types": "^15.7.14", - "@types/react": "^18.3.1", - "@types/react-test-renderer": "^18.3.1", + "@types/react": "^19.0.8", + "@types/react-test-renderer": "^19.0.0", "@types/react-window": "^1.8.8", "@vitejs/plugin-react": "^4.3.4", "@vitest/coverage-v8": "^3.0.7", diff --git a/packages/react-components/tsconfig.json b/packages/react-components/tsconfig.json index 8ddd0972..1b8e176f 100644 --- a/packages/react-components/tsconfig.json +++ b/packages/react-components/tsconfig.json @@ -32,49 +32,27 @@ // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ /* Additional Checks */ - "noUnusedLocals": true, /* Report errors on unused locals. */ - "noUnusedParameters": true, /* Report errors on unused parameters. */ - "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ - "types": [ - "vitest/globals" - ], + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, + "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, + "types": ["vitest/globals"], /* Module Resolution Options */ "moduleResolution": "Node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, "baseUrl": "." /* Base directory to resolve non-absolute module names. */, "paths": { - "@commercelayer/react-components": [ - "src/index" - ], - "#components/*": [ - "src/components/*" - ], - "#components-utils/*": [ - "src/components/utils/*" - ], - "#reducers/*": [ - "src/reducers/*" - ], - "#context/*": [ - "src/context/*" - ], - "#typings/*": [ - "src/typings/*" - ], - "#typings": [ - "src/typings/index" - ], - "#utils/*": [ - "src/utils/*" - ], - "#config/*": [ - "src/config/*" - ], - "#hooks/*": [ - "src/hooks/*" - ] + "@commercelayer/react-components": ["src/index"], + "#components/*": ["src/components/*"], + "#components-utils/*": ["src/components/utils/*"], + "#reducers/*": ["src/reducers/*"], + "#context/*": ["src/context/*"], + "#typings/*": ["src/typings/*"], + "#typings": ["src/typings/index"], + "#utils/*": ["src/utils/*"], + "#config/*": ["src/config/*"], + "#hooks/*": ["src/hooks/*"] } /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */, // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ @@ -95,12 +73,6 @@ "skipLibCheck": true /* Skip type checking of declaration files. */, "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "include": [ - "**/*.ts", - "**/*.tsx", - "vitest.config.mts" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": ["**/*.ts", "**/*.tsx", "_vitest.config.mts"], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7c4bde5..c6d2d56d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,30 +35,39 @@ importers: specifier: ^8.2.1 version: 8.2.1(encoding@0.1.13) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.7.3 + version: 5.7.3 + vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) packages/core: dependencies: + '@commercelayer/js-auth': + specifier: ^6.7.0 + version: 6.7.0 '@commercelayer/sdk': - specifier: 6.0.0-rc.2 - version: 6.0.0-rc.2 + specifier: 6.29.2 + version: 6.29.2 jwt-decode: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@vitest/coverage-v8': + specifier: ^3.0.4 + version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1)) tsup: - specifier: ^8.0.2 - version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) + specifier: ^8.3.6 + version: 8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1) typescript: - specifier: ^5.4.5 - version: 5.4.5 + specifier: ^5.7.3 + version: 5.7.3 vite-tsconfig-paths: - specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@20.12.7)(terser@5.30.3)) + specifier: ^5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) vitest: - specifier: ^1.5.0 - version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0)(terser@5.30.3) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) packages/docs: devDependencies: @@ -192,17 +201,17 @@ importers: specifier: ^2.2.0 version: 2.2.0 '@commercelayer/sdk': - specifier: ^6.34.0 - version: 6.35.0 + specifier: ^6.29.2 + version: 6.29.2 '@stripe/react-stripe-js': - specifier: ^3.3.0 - version: 3.4.0(@stripe/stripe-js@5.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^3.1.1 + version: 3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@stripe/stripe-js': - specifier: ^5.9.2 - version: 5.10.0 + specifier: ^5.6.0 + version: 5.6.0 '@tanstack/react-table': - specifier: ^8.21.2 - version: 8.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^8.20.6 + version: 8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/iframe-resizer': specifier: ^3.5.13 version: 3.5.13 @@ -211,7 +220,7 @@ importers: version: 3.116.3 frames-react: specifier: ^1.2.2 - version: 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2) + version: 1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3) iframe-resizer: specifier: ^4.3.6 version: 4.4.5 @@ -222,8 +231,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 rapid-form: - specifier: 2.1.0 - version: 2.1.0 + specifier: 3.1.0 + version: 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) devDependencies: '@commercelayer/js-auth': specifier: ^6.7.1 @@ -239,7 +248,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': specifier: ^3.96.16 version: 3.96.16 @@ -253,11 +262,11 @@ importers: specifier: ^15.7.14 version: 15.7.14 '@types/react': - specifier: ^18.3.1 - version: 18.3.18 + specifier: ^19.0.8 + version: 19.0.8 '@types/react-test-renderer': - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 '@types/react-window': specifier: ^1.8.8 version: 1.8.8 @@ -277,14 +286,14 @@ importers: specifier: ^2.7.3 version: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) react-test-renderer: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) tsc-alias: specifier: ^1.8.11 version: 1.8.11 @@ -980,8 +989,12 @@ packages: resolution: {integrity: sha512-0Afbon6//2KHCTb6bILk2L9Idj9dP8pw06V1CFtaz1wtAsX4iifubGpOPxHH6CuGi4DFHzgASJRz6+ZZbqb3kA==} engines: {node: '>=20'} - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@commercelayer/sdk@6.29.2': + resolution: {integrity: sha512-g7Tk0jR2ice0FTPaENN7D/XZOCtxO69UN5mLWBNh5ZnXNlGyS1HcNiakk0d7PHwb4ninLf9vjHsQ53QJCTctRw==} + engines: {node: '>=20'} + + '@csstools/color-helpers@5.0.1': + resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.2': @@ -2445,8 +2458,8 @@ packages: react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@5.10.0': - resolution: {integrity: sha512-PTigkxMdMUP6B5ISS7jMqJAKhgrhZwjprDqR1eATtFfh0OpKVNp110xiH+goeVdrJ29/4LeZJR4FaHHWstsu0A==} + '@stripe/stripe-js@5.6.0': + resolution: {integrity: sha512-w8CEY73X/7tw2KKlL3iOk679V9bWseE4GzNz3zlaYxcTjmcmWOathRb0emgo/QQ3eoNzmq68+2Y2gxluAv3xGw==} engines: {node: '>=12.16'} '@tanstack/react-table@8.21.2': @@ -2659,8 +2672,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-test-renderer@18.3.1': - resolution: {integrity: sha512-vAhnk0tG2eGa37lkU9+s5SoroCsRI08xnsWFiAXOuPH2jqzMbcXvKExXViPi1P5fIklDeCvXqyrdmipFaSkZrA==} + '@types/react-test-renderer@19.0.0': + resolution: {integrity: sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==} '@types/react-window@1.8.8': resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} @@ -2668,6 +2681,9 @@ packages: '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@19.0.8': + resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -2921,6 +2937,9 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -3106,6 +3125,19 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} @@ -3181,6 +3213,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -3279,6 +3315,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -3817,6 +3857,14 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} @@ -4524,6 +4572,10 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -4647,6 +4699,10 @@ packages: resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} engines: {node: ^16.14.0 || >=18.0.0} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -4662,6 +4718,10 @@ packages: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -4692,6 +4752,12 @@ packages: lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -5093,8 +5159,11 @@ packages: resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} engines: {node: '>=12.0.0'} - nanoid@3.3.10: - resolution: {integrity: sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -5516,6 +5585,24 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.4.31' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} @@ -5664,8 +5751,11 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - rapid-form@2.1.0: - resolution: {integrity: sha512-tZwrgbQLUDK8AFgVsw2DVd8eCqxuujblrc4QPyML/3qneR1/RzaDx5HB29zdAgp8TS4OC17DlD8fiQNiJx+6Tg==} + rapid-form@3.1.0: + resolution: {integrity: sha512-gZf8H9O98xdUz8p4cHZng/JBigLfb6VrIezQdIh+xYejccMxvo5TnZmjIzd3HZA0keYT+t0uJazzRksvBBLPBw==} + peerDependencies: + react: ^16.9.0 + react-dom: ^16.9.0 raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} @@ -5691,6 +5781,11 @@ packages: peerDependencies: react: ^18.3.1 + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} peerDependencies: @@ -5709,6 +5804,9 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-is@19.0.0: + resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -5733,11 +5831,6 @@ packages: '@types/react': optional: true - react-shallow-renderer@16.15.0: - resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} @@ -5748,15 +5841,19 @@ packages: '@types/react': optional: true - react-test-renderer@18.3.1: - resolution: {integrity: sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==} + react-test-renderer@19.0.0: + resolution: {integrity: sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==} peerDependencies: - react: ^18.3.1 + react: ^19.0.0 react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5796,8 +5893,12 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recast@0.23.11: - resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + readdirp@4.1.1: + resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + engines: {node: '>= 14.18.0'} + + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} redent@3.0.0: @@ -5961,6 +6062,13 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -6079,6 +6187,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -6188,6 +6300,11 @@ packages: engines: {node: '>=4'} hasBin: true + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -6273,6 +6390,13 @@ packages: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -6288,6 +6412,10 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinypool@1.0.2: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6340,10 +6468,17 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@5.1.0: - resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + treeverse@3.0.0: resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6359,8 +6494,11 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - tsc-alias@1.8.11: - resolution: {integrity: sha512-2DuEQ58A9Rj2NE2c1+/qaGKlshni9MCK95MJzRGhQG0CYLw0bE/ACgbhhTSf/p1svLelwqafOd8stQate2bYbg==} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsc-alias@1.8.10: + resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==} hasBin: true tsconfck@3.1.5: @@ -6383,6 +6521,25 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsup@8.3.6: + resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: '>=8.4.31' + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tuf-js@2.2.1: resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -6705,6 +6862,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -6741,6 +6901,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -7708,7 +7871,7 @@ snapshots: '@commercelayer/sdk@6.35.0': {} - '@csstools/color-helpers@5.0.2': {} + '@commercelayer/sdk@6.29.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: @@ -9563,20 +9726,20 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@stripe/react-stripe-js@3.4.0(@stripe/stripe-js@5.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@stripe/react-stripe-js@3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@stripe/stripe-js': 5.10.0 + '@stripe/stripe-js': 5.6.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - '@stripe/stripe-js@5.10.0': {} + '@stripe/stripe-js@5.6.0': {} - '@tanstack/react-table@8.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-table@8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@tanstack/table-core': 8.21.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@tanstack/table-core': 8.20.5 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@tanstack/table-core@8.21.2': {} @@ -9602,14 +9765,14 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: @@ -9791,19 +9954,23 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-test-renderer@18.3.1': + '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@types/react-window@1.8.8': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 + '@types/react@19.0.8': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.6': {} '@types/semver@7.5.8': {} @@ -10093,6 +10260,8 @@ snapshots: ansi-styles@6.2.1: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -10321,6 +10490,17 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + builtin-modules@3.3.0: {} + + builtins@5.1.0: + dependencies: + semver: 7.6.3 + + bundle-require@5.1.0(esbuild@0.24.2): + dependencies: + esbuild: 0.24.2 + load-tsconfig: 0.2.5 + byte-size@8.1.1: {} bytes@3.1.2: {} @@ -10413,6 +10593,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.1 + chownr@1.1.4: {} chownr@2.0.0: {} @@ -10492,6 +10676,8 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@6.2.1: {} commander@9.5.0: {} @@ -11106,6 +11292,10 @@ snapshots: dependencies: pend: 1.2.0 + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-retry@5.0.6: {} figures@3.2.0: @@ -11205,12 +11395,12 @@ snapshots: dependencies: '@braintree/uuid': 1.0.1 - frames-react@1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2): + frames-react@1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3): dependencies: classnames: 2.5.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rollup-plugin-typescript2: 0.36.0(rollup@4.35.0)(typescript@5.8.2) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + rollup-plugin-typescript2: 0.36.0(rollup@4.32.0)(typescript@5.7.3) tslib: 2.8.1 transitivePeerDependencies: - rollup @@ -11376,7 +11566,6 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true glob@9.3.5: dependencies: @@ -11387,6 +11576,17 @@ snapshots: globals@11.12.0: {} + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -11535,7 +11735,6 @@ snapshots: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true inherits@2.0.4: {} @@ -11855,6 +12054,8 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + joycon@3.1.1: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -12084,6 +12285,8 @@ snapshots: transitivePeerDependencies: - supports-color + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -12102,6 +12305,8 @@ snapshots: strip-bom: 4.0.0 type-fest: 0.6.0 + load-tsconfig@0.2.5: {} + loader-runner@4.3.0: {} locate-path@2.0.0: @@ -12130,6 +12335,10 @@ snapshots: lodash.ismatch@4.4.0: {} + lodash.merge@4.6.2: {} + + lodash.sortby@4.7.0: {} + lodash@4.17.21: {} log-symbols@4.1.0: @@ -12702,7 +12911,15 @@ snapshots: mylas@2.1.13: {} - nanoid@3.3.10: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.8: {} + + natural-compare@1.4.0: {} negotiator@0.6.3: {} @@ -12910,7 +13127,6 @@ snapshots: once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true onetime@5.1.2: dependencies: @@ -13172,6 +13388,13 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-load-config@6.0.1(postcss@8.5.1)(yaml@2.6.1): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + postcss: 8.5.1 + yaml: 2.6.1 + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -13315,7 +13538,11 @@ snapshots: range-parser@1.2.1: {} - rapid-form@2.1.0: {} + rapid-form@3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@example/basics': link:../../../../alessandrocasazza/Documents/GitHub/okeo-academy + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) raw-body@2.5.2: dependencies: @@ -13354,6 +13581,11 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-dom@19.0.0(react@19.0.0): + dependencies: + react: 19.0.0 + scheduler: 0.25.0 + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -13370,6 +13602,8 @@ snapshots: react-is@18.3.1: {} + react-is@19.0.0: {} + react-refresh@0.14.2: {} react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): @@ -13391,13 +13625,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-shallow-renderer@16.15.0(react@18.3.1): - dependencies: - object-assign: 4.1.1 - react: 18.3.1 - react-is: 18.3.1 - - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 @@ -13405,17 +13633,18 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-test-renderer@18.3.1(react@18.3.1): + react-test-renderer@19.0.0(react@19.0.0): dependencies: - react: 18.3.1 - react-is: 18.3.1 - react-shallow-renderer: 16.15.0(react@18.3.1) - scheduler: 0.23.2 + react: 19.0.0 + react-is: 19.0.0 + scheduler: 0.25.0 react@18.3.1: dependencies: loose-envify: 1.4.0 + react@19.0.0: {} + read-cmd-shim@4.0.0: {} read-package-json-fast@3.0.2: @@ -13471,7 +13700,9 @@ snapshots: dependencies: picomatch: 2.3.1 - recast@0.23.11: + readdirp@4.1.1: {} + + recast@0.23.9: dependencies: ast-types: 0.16.1 esprima: 4.0.1 @@ -13589,7 +13820,6 @@ snapshots: rimraf@3.0.2: dependencies: glob: 7.2.3 - dev: true rimraf@4.4.1: dependencies: @@ -13670,6 +13900,14 @@ snapshots: dependencies: loose-envify: 1.4.0 + scheduler@0.25.0: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -13821,6 +14059,10 @@ snapshots: source-map@0.6.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + space-separated-tokens@1.1.5: {} spdx-correct@3.2.0: @@ -13929,6 +14171,16 @@ snapshots: minimist: 1.2.8 through: 2.3.8 + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -14021,6 +14273,14 @@ snapshots: text-extensions@1.9.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + through2@2.0.5: dependencies: readable-stream: 2.3.8 @@ -14034,6 +14294,11 @@ snapshots: tinyexec@0.3.2: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + tinypool@1.0.2: {} tinyrainbow@2.0.0: {} @@ -14075,10 +14340,16 @@ snapshots: tr46@0.0.3: {} - tr46@5.1.0: + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tr46@5.0.0: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + treeverse@3.0.0: {} trim-newlines@3.0.1: {} @@ -14087,7 +14358,9 @@ snapshots: ts-dedent@2.2.0: {} - tsc-alias@1.8.11: + ts-interface-checker@0.1.13: {} + + tsc-alias@1.8.10: dependencies: chokidar: 3.6.0 commander: 9.5.0 @@ -14110,6 +14383,33 @@ snapshots: tslib@2.8.1: {} + tsup@8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1): + dependencies: + bundle-require: 5.1.0(esbuild@0.24.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.2.3 + debug: 4.4.0 + esbuild: 0.24.2 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(postcss@8.5.1)(yaml@2.6.1) + resolve-from: 5.0.0 + rollup: 4.32.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.10 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.5.1 + typescript: 5.7.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tuf-js@2.2.1: dependencies: '@tufjs/models': 2.0.1 @@ -14416,6 +14716,8 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + webidl-conversions@7.0.0: {} webpack-sources@3.2.3: {} @@ -14468,6 +14770,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 00000000..cbf98059 --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,3 @@ +import { defineWorkspace } from "vitest/config" + +export default defineWorkspace(["packages/*"]) From d8154930821313c4826e39812931d754b9d3e3a8 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 11 Feb 2025 18:33:47 +0100 Subject: [PATCH 004/165] Add new documentation folder --- packages/document/.gitignore | 26 + .../.storybook/addon-gh-repository/Tool.tsx | 17 + .../addon-gh-repository/constants.ts | 5 + .../addon-gh-repository/manager.tsx | 13 + .../.storybook/commercelayer.theme.ts | 11 + packages/document/.storybook/main.ts | 78 + .../document/.storybook/manager-head.html | 3 + .../document/.storybook/preview-head.html | 13 + packages/document/.storybook/preview.tsx | 143 + packages/document/README.md | 50 + packages/document/eslint.config.js | 28 + packages/document/index.html | 13 + packages/document/mocks/browser.js | 6 + packages/document/mocks/data/adjustments.js | 39 + packages/document/mocks/data/bundles.js | 388 ++ packages/document/mocks/data/line_items.js | 82 + packages/document/mocks/data/markets.js | 447 ++ packages/document/mocks/data/orders.js | 3713 +++++++++++++++++ packages/document/mocks/data/tags.js | 42 + packages/document/mocks/handlers.js | 15 + packages/document/package.json | 53 + packages/document/public/app-logo.png | Bin 0 -> 28732 bytes packages/document/public/mockServiceWorker.js | 303 ++ .../document/public/storybook-preview.css | 38 + packages/document/public/welcome-hero.png | Bin 0 -> 103964 bytes packages/document/src/App.css | 42 + packages/document/src/App.tsx | 35 + packages/document/src/assets/react.svg | 1 + packages/document/src/index.css | 68 + packages/document/src/main.tsx | 10 + .../document/src/stories/_internals/Code.tsx | 3 + .../src/stories/_internals/CommerceLayer.tsx | 35 + .../src/stories/_internals/OrderStorage.tsx | 96 + .../src/stories/_internals/useGetToken.ts | 261 ++ .../getting-started/001.introduction.mdx | 55 + .../getting-started/002.authentication.mdx | 61 + .../getting-started/003.microfrontends.mdx | 17 + .../stories/getting-started/004.styling.mdx | 16 + .../getting-started/005.containers.mdx | 36 + packages/document/src/vite-env.d.ts | 1 + packages/document/tsconfig.app.json | 26 + packages/document/tsconfig.json | 7 + packages/document/tsconfig.node.json | 24 + packages/document/vite.config.ts | 7 + pnpm-lock.yaml | 3287 ++++++++++++++- 45 files changed, 9388 insertions(+), 226 deletions(-) create mode 100644 packages/document/.gitignore create mode 100644 packages/document/.storybook/addon-gh-repository/Tool.tsx create mode 100644 packages/document/.storybook/addon-gh-repository/constants.ts create mode 100644 packages/document/.storybook/addon-gh-repository/manager.tsx create mode 100644 packages/document/.storybook/commercelayer.theme.ts create mode 100644 packages/document/.storybook/main.ts create mode 100644 packages/document/.storybook/manager-head.html create mode 100644 packages/document/.storybook/preview-head.html create mode 100644 packages/document/.storybook/preview.tsx create mode 100644 packages/document/README.md create mode 100644 packages/document/eslint.config.js create mode 100644 packages/document/index.html create mode 100644 packages/document/mocks/browser.js create mode 100644 packages/document/mocks/data/adjustments.js create mode 100644 packages/document/mocks/data/bundles.js create mode 100644 packages/document/mocks/data/line_items.js create mode 100644 packages/document/mocks/data/markets.js create mode 100644 packages/document/mocks/data/orders.js create mode 100644 packages/document/mocks/data/tags.js create mode 100644 packages/document/mocks/handlers.js create mode 100644 packages/document/package.json create mode 100644 packages/document/public/app-logo.png create mode 100644 packages/document/public/mockServiceWorker.js create mode 100644 packages/document/public/storybook-preview.css create mode 100644 packages/document/public/welcome-hero.png create mode 100644 packages/document/src/App.css create mode 100644 packages/document/src/App.tsx create mode 100644 packages/document/src/assets/react.svg create mode 100644 packages/document/src/index.css create mode 100644 packages/document/src/main.tsx create mode 100644 packages/document/src/stories/_internals/Code.tsx create mode 100644 packages/document/src/stories/_internals/CommerceLayer.tsx create mode 100644 packages/document/src/stories/_internals/OrderStorage.tsx create mode 100644 packages/document/src/stories/_internals/useGetToken.ts create mode 100644 packages/document/src/stories/getting-started/001.introduction.mdx create mode 100644 packages/document/src/stories/getting-started/002.authentication.mdx create mode 100644 packages/document/src/stories/getting-started/003.microfrontends.mdx create mode 100644 packages/document/src/stories/getting-started/004.styling.mdx create mode 100644 packages/document/src/stories/getting-started/005.containers.mdx create mode 100644 packages/document/src/vite-env.d.ts create mode 100644 packages/document/tsconfig.app.json create mode 100644 packages/document/tsconfig.json create mode 100644 packages/document/tsconfig.node.json create mode 100644 packages/document/vite.config.ts diff --git a/packages/document/.gitignore b/packages/document/.gitignore new file mode 100644 index 00000000..f940a995 --- /dev/null +++ b/packages/document/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*storybook.log diff --git a/packages/document/.storybook/addon-gh-repository/Tool.tsx b/packages/document/.storybook/addon-gh-repository/Tool.tsx new file mode 100644 index 00000000..25f4aa10 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/Tool.tsx @@ -0,0 +1,17 @@ +import { A, IconButton, Icons, Separator } from '@storybook/components' +import React from 'react' +import { ADDON_NAME, REPOSITORY_URL, TOOL_ID } from './constants' + +export const Tool = () => { + return ( + <> + + + + +   repository + + + + ) +} diff --git a/packages/document/.storybook/addon-gh-repository/constants.ts b/packages/document/.storybook/addon-gh-repository/constants.ts new file mode 100644 index 00000000..da0fb807 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/constants.ts @@ -0,0 +1,5 @@ +export const ADDON_ID = 'addon-gh-repository' +export const ADDON_NAME = 'View repository' +export const TOOL_ID = `${ADDON_ID}/tool` +export const REPOSITORY_URL = + 'https://github.com/commercelayer/commercelayer-react-components' diff --git a/packages/document/.storybook/addon-gh-repository/manager.tsx b/packages/document/.storybook/addon-gh-repository/manager.tsx new file mode 100644 index 00000000..0963c403 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/manager.tsx @@ -0,0 +1,13 @@ +import { addons, types } from "@storybook/manager-api" +import React from "react" +import { Tool } from "./Tool" +import { ADDON_ID, ADDON_NAME } from "./constants" + +addons.register(ADDON_ID, () => { + addons.add(ADDON_ID, { + title: ADDON_NAME, + type: types.TOOL, + match: ({ viewMode }) => !!viewMode?.match(/^(story|docs)$/), + render: () => , + }) +}) diff --git a/packages/document/.storybook/commercelayer.theme.ts b/packages/document/.storybook/commercelayer.theme.ts new file mode 100644 index 00000000..1b06740a --- /dev/null +++ b/packages/document/.storybook/commercelayer.theme.ts @@ -0,0 +1,11 @@ +import { create } from '@storybook/theming' + +export default create({ + base: 'light', + brandTitle: 'Commerce Layer', + // brandUrl: 'https://example.com', + brandImage: './app-logo.png', + brandTarget: '_self', + + textColor: '#101111' +}) diff --git a/packages/document/.storybook/main.ts b/packages/document/.storybook/main.ts new file mode 100644 index 00000000..451b989b --- /dev/null +++ b/packages/document/.storybook/main.ts @@ -0,0 +1,78 @@ +import { resolve } from "node:path" +import type { StorybookConfig } from "@storybook/react-vite" +import remarkGfm from "remark-gfm" +import { type UserConfig, mergeConfig } from "vite" +import tsconfigPaths from "vite-tsconfig-paths" + +const viteOverrides: UserConfig = { + base: process.env.VITE_BASE_URL, + plugins: [ + tsconfigPaths({ + projects: [ + resolve(import.meta.dirname, "../../react-components/tsconfig.json"), + resolve(import.meta.dirname, "../tsconfig.json"), + ], + }), + ], +} + +const storybookConfig: StorybookConfig = { + async viteFinal(config) { + return mergeConfig(config, viteOverrides) + }, + stories: ["../stories/**/*.mdx", "../stories/**/*.stories.@(js|jsx|ts|tsx)"], + addons: [ + "@storybook/addon-links", + "@storybook/addon-essentials", + "@storybook/addon-interactions", + { + name: "@storybook/addon-docs", + options: { + mdxPluginOptions: { + mdxCompileOptions: { + remarkPlugins: [remarkGfm], + }, + }, + }, + }, + ], + // @ts-expect-error This 'managerEntries' exists. + managerEntries: [ + resolve(import.meta.dirname, "./addon-gh-repository/manager.tsx"), + ], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + core: { + disableTelemetry: true, + }, + features: { + storyStoreV7: true, + }, + docs: { + autodocs: true, + docsMode: true, + }, + typescript: { + check: false, + reactDocgen: "react-docgen-typescript", + reactDocgenTypescriptOptions: { + propFilter: (prop) => { + if (["children", "className"].includes(prop.name)) { + return true + } + + if (prop.parent != null) { + return ( + !prop.parent.fileName.includes("@types/react") && + !prop.parent.fileName.includes("@emotion") + ) + } + return true + }, + }, + }, +} + +export default storybookConfig diff --git a/packages/document/.storybook/manager-head.html b/packages/document/.storybook/manager-head.html new file mode 100644 index 00000000..ece446c3 --- /dev/null +++ b/packages/document/.storybook/manager-head.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/document/.storybook/preview-head.html b/packages/document/.storybook/preview-head.html new file mode 100644 index 00000000..6448e887 --- /dev/null +++ b/packages/document/.storybook/preview-head.html @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/packages/document/.storybook/preview.tsx b/packages/document/.storybook/preview.tsx new file mode 100644 index 00000000..9632a948 --- /dev/null +++ b/packages/document/.storybook/preview.tsx @@ -0,0 +1,143 @@ +import { + Controls, + Description, + Primary, + Stories, + Subtitle, + Title, +} from "@storybook/blocks" +import type { Decorator, Parameters } from "@storybook/react" +import React from "react" +import { worker } from "../mocks/browser" + +export const parameters: Parameters = { + layout: "centered", + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + backgrounds: { + values: [ + { + name: "overlay", + value: "#F8F8F8", + }, + ], + }, + options: { + storySort: { + method: "alphabetical", + order: [ + "Getting Started", + // [ + // "Welcome", + // "Applications", + // "Custom apps", + // "Token provider", + // "Core SDK provider", + // ], + // "Atoms", + // "Forms", + // ["react-hook-form"], + // "Hooks", + // "Lists", + // "Composite", + // "Resources", + // "Examples", + ], + }, + }, + docs: { + page: () => ( + + + <Subtitle /> + <Description /> + <Primary /> + <Controls /> + <Stories includePrimary={false} /> + </React.Fragment> + ), + // source: { + // transform: (input: string) => + // prettier.format(input, { + // parser: 'babel', + // plugins: [prettierBabel] + // }), + // }, + }, +} + +// export const withContainer: Decorator = (Story, context) => { +// const { containerEnabled } = context.globals +// if (containerEnabled === true) { +// return ( +// <Container minHeight={false}> +// <Story /> +// </Container> +// ) +// } + +// return <Story /> +// } + +// export const withLocale: Decorator = (Story, context) => { +// const locale = "en-US" +// return ( +// <I18NProvider enforcedLocaleCode={locale}> +// <Story /> +// </I18NProvider> +// ) +// } + +// export const decorators: Decorator[] = [withLocale, withContainer] + +// export const globals = { +// [PARAM_KEY]: true, +// } + +// Storybook executes this module in both bootstap phase (Node) +// and a story's runtime (browser). However, we cannot call `setupWorker` +// in Node environment, so need to check if we're in a browser. +if (typeof global.process === "undefined") { + // Start the mocking when each story is loaded. + // Repetitive calls to the `.start()` method do not register a new worker, + // but check whether there's an existing once, reusing it, if so. + worker.start({ + serviceWorker: { + url: `${import.meta.env.BASE_URL}mockServiceWorker.js`, + }, + quiet: import.meta.env.PROD, + onUnhandledRequest: !import.meta.env.PROD + ? (req, reqPrint) => { + const url = new URL(req.url) + if (url.hostname === "mock.localhost") { + reqPrint.warning() + } + } + : () => {}, + }) +} + +const argTypesEnhancers: Preview["argTypesEnhancers"] = [ + (context) => { + // when the className prop comes from `JSX.IntrinsicElements['div' | 'span']` + // and is not documented, we add a default description + if ( + "className" in context.argTypes && + context.argTypes.className.description === "" + ) { + context.argTypes.className.description = + "CSS class name for the base component" + } + + return context.argTypes + }, +] + +export default { + parameters, + argTypesEnhancers, +} diff --git a/packages/document/README.md b/packages/document/README.md new file mode 100644 index 00000000..74872fd4 --- /dev/null +++ b/packages/document/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/packages/document/eslint.config.js b/packages/document/eslint.config.js new file mode 100644 index 00000000..092408a9 --- /dev/null +++ b/packages/document/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/packages/document/index.html b/packages/document/index.html new file mode 100644 index 00000000..e4b78eae --- /dev/null +++ b/packages/document/index.html @@ -0,0 +1,13 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Vite + React + TS + + +
+ + + diff --git a/packages/document/mocks/browser.js b/packages/document/mocks/browser.js new file mode 100644 index 00000000..c578a6eb --- /dev/null +++ b/packages/document/mocks/browser.js @@ -0,0 +1,6 @@ +// src/mocks/browser.js +import { setupWorker } from 'msw/browser' +import { handlers } from './handlers' + +// This configures a Service Worker with the given request handlers. +export const worker = setupWorker(...handlers) diff --git a/packages/document/mocks/data/adjustments.js b/packages/document/mocks/data/adjustments.js new file mode 100644 index 00000000..72d4a6f1 --- /dev/null +++ b/packages/document/mocks/data/adjustments.js @@ -0,0 +1,39 @@ +import { http } from 'msw' + +const restPost = http.post( + `https://mock.localhost/api/adjustments`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: { + id: 'eqJGhgEeBb', + type: 'adjustments', + links: { + self: 'https://mock.localhost/api/adjustments/eqJGhgEeBb' + }, + attributes: { + name: 'Manual adjustment', + currency_code: 'EUR', + amount_cents: -100, + amount_float: -1.0, + formatted_amount: '-€1,00', + created_at: '2023-08-23T15:59:30.059Z', + updated_at: '2023-08-23T15:59:30.059Z', + reference: null, + reference_origin: null, + metadata: {} + } + } + }) + ) + ) + }, 1000) + }) + } +) + +export default [restPost] diff --git a/packages/document/mocks/data/bundles.js b/packages/document/mocks/data/bundles.js new file mode 100644 index 00000000..7053b89e --- /dev/null +++ b/packages/document/mocks/data/bundles.js @@ -0,0 +1,388 @@ +import { http } from 'msw' + +const bundles = http.get( + 'https://mock.localhost/api/bundles?include=sku_list.sku_list_items.sku&filter[q][code_in]=WELCOME_KIT_001', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'PljQzimxgB', + type: 'bundles', + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB' + }, + attributes: { + code: 'SHIRTSETSINGLE', + name: 'Commerce Layer Shirt set single', + currency_code: 'EUR', + description: '', + image_url: '', + do_not_ship: false, + do_not_track: false, + price_amount_cents: 10500, + price_amount_float: 105.0, + formatted_price_amount: '€105,00', + compare_at_amount_cents: 10500, + compare_at_amount_float: 105.0, + formatted_compare_at_amount: '€105,00', + skus_count: 2, + created_at: '2022-03-11T10:20:48.680Z', + updated_at: '2022-03-11T10:20:48.680Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/market', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/market' + } + }, + sku_list: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/sku_list', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/sku_list' + }, + data: { type: 'sku_lists', id: 'myPrZIqano' } + }, + skus: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/skus', + related: 'https://mock.localhost/api/bundles/PljQzimxgB/skus' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/attachments', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/events', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/tags', + related: 'https://mock.localhost/api/bundles/PljQzimxgB/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + included: [ + { + id: 'myPrZIqano', + type: 'sku_lists', + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano' + }, + attributes: { + name: 'CL SHIRTS (Single shipment)', + slug: 'cl-shirts-single-shipment', + description: '', + image_url: '', + manual: true, + sku_code_regex: null, + created_at: '2022-03-11T10:17:50.637Z', + updated_at: '2022-03-11T10:18:03.442Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/customer', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/customer' + } + }, + skus: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/skus', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/skus' + } + }, + sku_list_items: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/sku_list_items', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/sku_list_items' + }, + data: [ + { type: 'sku_list_items', id: 'LWKOPINkWM' }, + { type: 'sku_list_items', id: 'vWbjGINmWn' } + ] + }, + bundles: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/bundles', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/bundles' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/attachments', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'LWKOPINkWM', + type: 'sku_list_items', + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM' + }, + attributes: { + position: 1, + sku_code: 'TSHIRTMS000000FFFFFFLXXX', + quantity: 1, + created_at: '2022-03-11T10:17:59.154Z', + updated_at: '2022-03-11T10:17:59.154Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + sku_list: { + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/relationships/sku_list', + related: + 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/sku_list' + } + }, + sku: { + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/relationships/sku', + related: + 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/sku' + }, + data: { type: 'skus', id: 'EWzPQSpRzn' } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWbjGINmWn', + type: 'sku_list_items', + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn' + }, + attributes: { + position: 2, + sku_code: 'SWEETHMUB7B7B7000000MXXX', + quantity: 1, + created_at: '2022-03-11T10:18:03.437Z', + updated_at: '2022-03-11T10:18:03.437Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + sku_list: { + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/relationships/sku_list', + related: + 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/sku_list' + } + }, + sku: { + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/relationships/sku', + related: + 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/sku' + }, + data: { type: 'skus', id: 'MBrxeSaGpZ' } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EWzPQSpRzn', + type: 'skus', + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn' + }, + attributes: { + code: 'TSHIRTMS000000FFFFFFLXXX', + name: 'Black Men T-Shirt with White Logo (L)', + description: + 'With a large front pouch pocket and drawstrings in a matching color, this hoodie is a sure crowd-favorite. It’s soft, stylish, and perfect for the cooler evenings.', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMS000000FFFFFFLXXX_FLAT.png', + pieces_per_pack: null, + weight: null, + unit_of_weight: '', + hs_tariff_number: '', + do_not_ship: false, + do_not_track: false, + inventory: null, + created_at: '2022-03-11T09:42:47.300Z', + updated_at: '2022-03-11T10:17:22.143Z', + reference: 'sku_69', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + shipping_category: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/shipping_category', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/shipping_category' + } + }, + prices: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/prices', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/prices' + } + }, + stock_items: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/stock_items', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/stock_items' + } + }, + delivery_lead_times: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/delivery_lead_times', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/delivery_lead_times' + } + }, + sku_options: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/sku_options', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/sku_options' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/attachments', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/events', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/tags', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'MBrxeSaGpZ', + type: 'skus', + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ' + }, + attributes: { + code: 'SWEETHMUB7B7B7000000MXXX', + name: 'Sport Grey Unisex Hoodie Sweatshirt with Black Logo (M)', + description: + 'With a large front pouch pocket and drawstrings in a matching color, this hoodie is a sure crowd-favorite. It’s soft, stylish, and perfect for the cooler evenings.', + image_url: + 'https://data.commercelayer.app/seed/images/skus/HOODIEMX7F7F7F000000MXXX_FLAT.png', + pieces_per_pack: null, + weight: null, + unit_of_weight: '', + hs_tariff_number: '', + do_not_ship: false, + do_not_track: false, + inventory: null, + created_at: '2022-03-11T09:42:48.985Z', + updated_at: '2022-03-11T10:17:41.219Z', + reference: 'sku_70', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + shipping_category: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/shipping_category', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/shipping_category' + } + }, + prices: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/prices', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/prices' + } + }, + stock_items: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/stock_items', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/stock_items' + } + }, + delivery_lead_times: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/delivery_lead_times', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/delivery_lead_times' + } + }, + sku_options: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/sku_options', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/sku_options' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/attachments', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/events', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/tags', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + } +) + +export default [bundles] diff --git a/packages/document/mocks/data/line_items.js b/packages/document/mocks/data/line_items.js new file mode 100644 index 00000000..95139b05 --- /dev/null +++ b/packages/document/mocks/data/line_items.js @@ -0,0 +1,82 @@ +import { http } from 'msw' + +const restPatch = http.patch( + `https://mock.localhost/api/line_items/:id`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve(res(ctx.status(200), ctx.body(`Update ${req.params.id}`))) + }, 1000) + }) + } +) + +const restDelete = http.delete( + `https://mock.localhost/api/line_items/:id`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve(res(ctx.status(200), ctx.body(`Removed ${req.params.id}`))) + }, 1000) + }) + } +) + +const restPost = http.post( + `https://mock.localhost/api/line_items`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: { + id: 'vrEAtOmRaz', + type: 'line_items', + links: { + self: 'https://mock.localhost/api/line_items/vrEAtOmRaz' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -100, + unit_amount_float: -1.0, + formatted_unit_amount: '-€1,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -100, + total_amount_float: -1.0, + formatted_total_amount: '-€1,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Manual adjustment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'adjustments', + frequency: null, + created_at: '2023-08-23T15:59:30.205Z', + updated_at: '2023-08-23T15:59:30.205Z', + reference: null, + reference_origin: null, + metadata: {} + } + } + }) + ) + ) + }, 1000) + }) + } +) + +export default [restPatch, restDelete, restPost] diff --git a/packages/document/mocks/data/markets.js b/packages/document/mocks/data/markets.js new file mode 100644 index 00000000..b5db10ae --- /dev/null +++ b/packages/document/mocks/data/markets.js @@ -0,0 +1,447 @@ +import { http } from 'msw' + +// used in HookedInputResourceGroup +const someMarkets = http.get( + 'https://mock.localhost/api/markets?fields[markets]=id,name&sort=name&page[size]=3', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'rlEPzheRgO', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO' + }, + attributes: { name: 'Adyen' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop' + }, + attributes: { name: 'Europe' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AlRevhXQga', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga' + }, + attributes: { name: 'Milan' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + meta: { record_count: 5, page_count: 2 }, + links: { + first: + 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=1&page%5Bsize%5D=3&sort=name', + next: 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=2&page%5Bsize%5D=3&sort=name', + last: 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=2&page%5Bsize%5D=3&sort=name' + } + }) + ) + } +) + +// used in HookedInputResourceGroup +const allMarkets = http.get( + 'https://mock.localhost/api/markets?sort=name&page[number]=1&page[size]=25', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'rlEPzheRgO', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO' + }, + attributes: { + number: 475, + name: 'Adyen', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: '5a4c961792866897db26dd3aad9c435e', + private: false, + disabled_at: null, + created_at: '2022-08-23T09:59:25.940Z', + updated_at: '2022-08-23T09:59:25.940Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/merchant', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/price_list', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/attachments', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + shared_secret: '4ea4390961025de791d5bb92e92744eb', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AlRevhXQga', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga' + }, + attributes: { + number: 418, + name: 'Milan', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: 'fc9954fc7ae851d9588d456656ba102f', + private: false, + disabled_at: null, + created_at: '2022-05-13T12:27:05.075Z', + updated_at: '2022-05-13T12:27:05.075Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/merchant', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/price_list', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/attachments', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AjRevhQOoa', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa' + }, + attributes: { + number: 351, + name: 'UK', + facebook_pixel_id: null, + checkout_url: null, + external_prices_url: null, + external_order_validation_url: null, + shared_secret: 'a028eb9f9812ee2949da28cd3f8f5268', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:50.558Z', + updated_at: '2022-03-11T09:40:50.558Z', + reference: 'market_3', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/merchant', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/price_list', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/attachments', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EjDkXhNEoD', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD' + }, + attributes: { + number: 349, + name: 'USA', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: '60860b96e891725099e0b1a72dceb510', + private: false, + disabled_at: null, + created_at: '2022-02-24T14:08:20.092Z', + updated_at: '2022-03-21T09:37:44.202Z', + reference: 'market_2', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/merchant', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/price_list', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/attachments', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + meta: { record_count: 5, page_count: 1 }, + links: { + first: + 'https://mock.localhost/api/markets?page%5Bnumber%5D=1&page%5Bsize%5D=25&sort=name', + last: 'https://mock.localhost/api/markets?page%5Bnumber%5D=1&page%5Bsize%5D=25&sort=name' + } + }) + ) + } +) + +export default [allMarkets, someMarkets] diff --git a/packages/document/mocks/data/orders.js b/packages/document/mocks/data/orders.js new file mode 100644 index 00000000..49afe454 --- /dev/null +++ b/packages/document/mocks/data/orders.js @@ -0,0 +1,3713 @@ +import { http } from 'msw' + +const order = { + id: 'NMWYhbGorj', + type: 'orders', + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj' + }, + attributes: { + number: 2485862, + autorefresh: true, + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'in_progress', + guest: true, + editable: false, + customer_email: 'customer@tk.com', + language_code: 'en', + currency_code: 'EUR', + tax_included: true, + tax_rate: null, + freight_taxable: null, + requires_billing_info: true, + country_code: 'IT', + shipping_country_code_lock: null, + coupon_code: null, + gift_card_code: '9951a05f-741a-4ab1-8405-2a7e57612792', + gift_card_or_coupon_code: '9951a05f-741a-4ab1-8405-2a7e57612792', + subtotal_amount_cents: 24400, + subtotal_amount_float: 244.0, + formatted_subtotal_amount: '€244,00', + shipping_amount_cents: 0, + shipping_amount_float: 0.0, + formatted_shipping_amount: '€0,00', + payment_method_amount_cents: 1000, + payment_method_amount_float: 10.0, + formatted_payment_method_amount: '€10,00', + discount_amount_cents: 0, + discount_amount_float: 0.0, + formatted_discount_amount: '€0,00', + adjustment_amount_cents: 0, + adjustment_amount_float: 0.0, + formatted_adjustment_amount: '€0,00', + gift_card_amount_cents: -10000, + gift_card_amount_float: -100.0, + formatted_gift_card_amount: '-€100,00', + total_tax_amount_cents: 0, + total_tax_amount_float: 0.0, + formatted_total_tax_amount: '€0,00', + subtotal_tax_amount_cents: 0, + subtotal_tax_amount_float: 0.0, + formatted_subtotal_tax_amount: '€0,00', + shipping_tax_amount_cents: 0, + shipping_tax_amount_float: 0.0, + formatted_shipping_tax_amount: '€0,00', + payment_method_tax_amount_cents: 0, + payment_method_tax_amount_float: 0.0, + formatted_payment_method_tax_amount: '€0,00', + adjustment_tax_amount_cents: 0, + adjustment_tax_amount_float: 0.0, + formatted_adjustment_tax_amount: '€0,00', + total_amount_cents: 25400, + total_amount_float: 254.0, + formatted_total_amount: '€254,00', + total_taxable_amount_cents: 25400, + total_taxable_amount_float: 254.0, + formatted_total_taxable_amount: '€254,00', + subtotal_taxable_amount_cents: 24400, + subtotal_taxable_amount_float: 244.0, + formatted_subtotal_taxable_amount: '€244,00', + shipping_taxable_amount_cents: 0, + shipping_taxable_amount_float: 0.0, + formatted_shipping_taxable_amount: '€0,00', + payment_method_taxable_amount_cents: 1000, + payment_method_taxable_amount_float: 10.0, + formatted_payment_method_taxable_amount: '€10,00', + adjustment_taxable_amount_cents: 0, + adjustment_taxable_amount_float: 0.0, + formatted_adjustment_taxable_amount: '€0,00', + total_amount_with_taxes_cents: 15400, + total_amount_with_taxes_float: 154.0, + formatted_total_amount_with_taxes: '€154,00', + fees_amount_cents: 0, + fees_amount_float: 0.0, + formatted_fees_amount: '€0,00', + duty_amount_cents: null, + duty_amount_float: null, + formatted_duty_amount: null, + skus_count: 6, + line_item_options_count: 0, + shipments_count: 2, + tax_calculations_count: 0, + validations_count: 0, + payment_source_details: { + type: 'stripe_payment', + payment_method_id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + payment_method_type: 'card', + payment_method_details: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + } + }, + token: '7fe6285a3dfdabeb8cb9324980743396', + cart_url: null, + return_url: null, + terms_url: null, + privacy_url: null, + checkout_url: null, + placed_at: '2023-05-16T11:06:22.012Z', + approved_at: '2023-05-16T14:18:16.775Z', + cancelled_at: null, + payment_updated_at: '2023-05-16T14:18:35.404Z', + fulfillment_updated_at: '2023-05-16T14:18:35.411Z', + refreshed_at: '2023-05-16T11:06:04.613Z', + archived_at: null, + expires_at: null, + subscription_created_at: null, + created_at: '2023-05-16T11:06:02.074Z', + updated_at: '2023-05-16T14:18:35.572Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/market', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/market' + }, + data: { type: 'markets', id: 'dlQbPhNNop' } + }, + customer: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/customer', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/customer' + }, + data: { type: 'customers', id: 'JkAdBhNGjQ' } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/shipping_address' + }, + data: { type: 'addresses', id: 'dPoNukZmnB' } + }, + billing_address: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/billing_address', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/billing_address' + }, + data: { type: 'addresses', id: 'dQxruwZDnB' } + }, + available_payment_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_payment_methods', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_payment_methods' + } + }, + available_customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_customer_payment_sources' + } + }, + available_free_skus: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_free_skus', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_free_skus' + } + }, + available_free_bundles: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_free_bundles', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_free_bundles' + } + }, + payment_method: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/payment_method', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/payment_method' + }, + data: { type: 'payment_methods', id: 'wmBvQsARml' } + }, + payment_source: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/payment_source', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/payment_source' + }, + data: { type: 'stripe_payments', id: 'onXELSmbQy' } + }, + line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/line_items', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/line_items' + }, + data: [ + { type: 'line_items', id: 'vaoMtAZlXy' }, + { type: 'line_items', id: 'kmnptjPlBv' }, + { type: 'line_items', id: 'vWEZtMGVKy' }, + { type: 'line_items', id: 'NqYatGaKnN' }, + { type: 'line_items', id: 'NoEntBwEdk' }, + { type: 'line_items', id: 'NlQmtMAnGy' } + ] + }, + shipments: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/shipments', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/shipments' + }, + data: [ + { type: 'shipments', id: 'YpLwCnNQgY' }, + { type: 'shipments', id: 'PabvCpOxRy' } + ] + }, + transactions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/transactions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/transactions' + }, + data: [ + { type: 'authorizations', id: 'nKZkPUDBVj' }, + { type: 'captures', id: 'kyAnxUgegE' } + ] + }, + authorizations: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/authorizations', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/authorizations' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/voids', + related: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/voids' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/refunds' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/returns' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_subscriptions' + } + }, + order_factories: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_factories', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_factories' + } + }, + order_copies: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_copies', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_copies' + } + }, + recurring_order_copies: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/recurring_order_copies', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/recurring_order_copies' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/attachments' + }, + data: [{ type: 'attachments', id: 'EqGrksxWNW' }] + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/tags', + related: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } +} + +const orderDetail = http.get( + 'https://mock.localhost/api/orders/NMWYhbGorj?include=shipments,transactions,payment_method,payment_source,attachments', + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: order, + included: [ + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'JkAdBhNGjQ', + type: 'customers', + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ' + }, + attributes: { + email: 'customer@tk.com', + status: 'repeat', + has_password: false, + total_orders_count: 2753, + created_at: '2022-03-14T09:13:06.633Z', + updated_at: '2023-07-31T09:13:06.049Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_group' + } + }, + customer_addresses: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_addresses', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_addresses' + } + }, + customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_payment_sources' + } + }, + customer_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_subscriptions' + } + }, + orders: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/orders', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/orders' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/order_subscriptions' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/returns' + } + }, + sku_lists: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/sku_lists', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/sku_lists' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/events', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dPoNukZmnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.638Z', + updated_at: '2023-05-16T11:06:07.638Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dQxruwZDnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.493Z', + updated_at: '2023-05-16T11:06:07.493Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'wmBvQsARml', + type: 'payment_methods', + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml' + }, + attributes: { + payment_source_type: 'stripe_payments', + name: 'Stripe Payment', + currency_code: 'EUR', + moto: false, + require_capture: true, + auto_capture: false, + disabled_at: null, + price_amount_cents: 1000, + price_amount_float: 10.0, + formatted_price_amount: '€10,00', + auto_capture_max_amount_cents: null, + auto_capture_max_amount_float: null, + formatted_auto_capture_max_amount: null, + created_at: '2022-03-11T14:18:08.420Z', + updated_at: '2022-03-11T14:18:08.420Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/market', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/market' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/payment_gateway' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'onXELSmbQy', + type: 'stripe_payments', + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy' + }, + attributes: { + client_secret: + 'pi_3N8LhsK5j6INEBBI0JicoLOo_secret_CKWfEPSnvyBHIQrEfRXkrJYd7', + publishable_key: + 'pk_test_51KH86yK5j6INEBBIdkXoh0UwOoOlAbFZc3b8j0vjRHKQHdaUfEJm24F0A9QkrQXVlgh1nXJCpWR6PG3epaUWzE2z00BdEe9fho', + options: { + id: 'pm_1N8LhuK5j6INEBBI71U1QOlu', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: null, + address_line1_check: null, + address_postal_code_check: null + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235178, + customer: null, + livemode: false, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + }, + setup_future_usage: 'off_session', + intent_amount_cents: 15400 + }, + payment_method: { + id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235179, + customer: null, + livemode: false, + metadata: {}, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + } + }, + mismatched_amounts: false, + intent_amount_cents: 15400, + intent_amount_float: 154.0, + formatted_intent_amount: '€154,00', + return_url: null, + payment_instrument: { + issuer_type: 'card', + card_type: 'visa', + card_last_digits: '4242', + card_expiry_month: '2', + card_expiry_year: '2031' + }, + created_at: '2023-05-16T11:06:16.338Z', + updated_at: '2023-05-16T11:06:21.948Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/order' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/payment_gateway' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vaoMtAZlXy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -10000, + unit_amount_float: -100.0, + formatted_unit_amount: '-€100,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -10000, + total_amount_float: -100.0, + formatted_total_amount: '-€100,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Gift card: €100,00', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'gift_cards', + frequency: null, + created_at: '2023-05-16T11:06:14.674Z', + updated_at: '2023-05-16T11:06:14.674Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kmnptjPlBv', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 1000, + unit_amount_float: 10.0, + formatted_unit_amount: '€10,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 1000, + total_amount_float: 10.0, + formatted_total_amount: '€10,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Stripe Payment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'payment_methods', + frequency: null, + created_at: '2023-05-16T11:06:14.629Z', + updated_at: '2023-05-16T11:06:14.629Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWEZtMGVKy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/001', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.728Z', + updated_at: '2023-05-16T11:06:09.728Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NqYatGaKnN', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/002', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.602Z', + updated_at: '2023-05-16T11:06:09.602Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NoEntBwEdk', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk' + }, + attributes: { + sku_code: 'TSHIRTMMFFFFFF000000XLXX', + bundle_code: null, + quantity: 5, + currency_code: 'EUR', + unit_amount_cents: 2900, + unit_amount_float: 29.0, + formatted_unit_amount: '€29,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -5943, + discount_float: -59.43, + formatted_discount: '-€59,43', + total_amount_cents: 14500, + total_amount_float: 145.0, + formatted_total_amount: '€145,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'White Men T-Shirt with Black Logo (XL)', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMSFFFFFF000000XLXX_FLAT.png', + discount_breakdown: { + vaoMtAZlXy: { cents: -5943, weight: 0.5942622950819673 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.458Z', + updated_at: '2023-05-16T11:06:02.458Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NlQmtMAnGy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy' + }, + attributes: { + sku_code: 'CANVASAU000000FFFFFF1824', + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 9900, + unit_amount_float: 99.0, + formatted_unit_amount: '€99,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -4057, + discount_float: -40.57, + formatted_discount: '-€40,57', + total_amount_cents: 9900, + total_amount_float: 99.0, + formatted_total_amount: '€99,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Black Canvas with White Logo (18x24)', + image_url: + 'https://img.commercelayer.io/skus/CANVASAU000000FFFFFF.png?fm=jpg&q=90', + discount_breakdown: { + vaoMtAZlXy: { cents: -4057, weight: 0.4057377049180328 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.444Z', + updated_at: '2023-05-16T11:06:02.444Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'YpLwCnNQgY', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY' + }, + attributes: { + number: '2485862/S/001', + status: 'on_hold', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 5, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: '2023-07-21T14:12:13.287Z', + picking_at: '2023-07-21T14:12:08.574Z', + packing_at: '2023-07-21T14:10:54.107Z', + ready_to_ship_at: null, + shipped_at: null, + created_at: '2023-05-16T11:06:07.685Z', + updated_at: '2023-07-21T14:12:13.286Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'PabvCpOxRy', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy' + }, + attributes: { + number: '2485862/S/002', + status: 'shipped', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 1, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: null, + picking_at: '2023-05-16T14:18:35.559Z', + packing_at: '2023-05-16T14:20:24.459Z', + ready_to_ship_at: '2023-05-16T14:21:43.665Z', + shipped_at: '2023-05-16T14:22:42.632Z', + created_at: '2023-05-16T11:06:07.711Z', + updated_at: '2023-05-16T14:22:42.633Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'nKZkPUDBVj', + type: 'authorizations', + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj' + }, + attributes: { + number: '2485862/T/001', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T11:06:21.964Z', + updated_at: '2023-05-16T11:06:21.964Z', + reference: null, + reference_origin: null, + metadata: {}, + cvv_code: null, + cvv_message: null, + avs_code: null, + avs_message: null, + fraud_review: null, + capture_amount_cents: 0, + capture_amount_float: 0.0, + formatted_capture_amount: '€0,00', + capture_balance_cents: 0, + capture_balance_float: 0.0, + formatted_capture_balance: '€0,00', + void_balance_cents: 15400, + void_balance_float: 154.0, + formatted_void_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/order', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/versions' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/voids', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/voids' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kyAnxUgegE', + type: 'captures', + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE' + }, + attributes: { + number: '2485862/T/002', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T14:18:35.368Z', + updated_at: '2023-05-16T14:18:35.368Z', + reference: null, + reference_origin: null, + metadata: {}, + refund_amount_cents: 15400, + refund_amount_float: 154.0, + formatted_refund_amount: '€154,00', + refund_balance_cents: 15400, + refund_balance_float: 154.0, + formatted_refund_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/order', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/versions' + } + }, + reference_authorization: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/reference_authorization', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/reference_authorization' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/refunds' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/events', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EqGrksxWNW', + type: 'attachments', + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW' + }, + attributes: { + name: 'M. Montalbano', + description: 'Ehi there!', + url: null, + created_at: '2023-07-20T13:58:52.184Z', + updated_at: '2023-07-20T13:58:52.184Z', + reference: null, + reference_origin: 'app-orders--note', + metadata: {} + }, + relationships: { + attachable: { + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/relationships/attachable', + related: + 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/attachable' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + ) + }, 2000) + }) + } +) + +function getRandomFormattedPrice() { + return `€${Math.floor(Math.random() * 1000)}.00` +} + +function getRandomOrderStatus() { + const statues = [ + { + status: 'placed', + payment_status: 'authorized', + fulfillment_status: 'unfulfilled' + }, + { + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'in_progress' + }, + { + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'fulfilled' + } + ] + return statues[Math.floor(Math.random() * statues.length)] +} + +const orderList = http.get( + 'https://mock.localhost/api/orders', + async (req, res, ctx) => { + const currentPage = parseInt( + req.url.searchParams.get('page[number]') ?? '1' + ) + const itemPerPage = parseInt(req.url.searchParams.get('page[size]') ?? '5') + const pageCount = itemPerPage <= 5 ? 1 : 3 + + return res( + ctx.delay(2000), + ctx.status(200), + ctx.json({ + data: Array(itemPerPage) + .fill(order) + .map((order, idx) => ({ + ...order, + id: `mocked-${currentPage}-${idx}`, + attributes: { + ...order.attributes, + number: parseInt(`26372${currentPage}${idx}`, 10), + formatted_total_amount: getRandomFormattedPrice(), + ...getRandomOrderStatus() + } + })), + meta: { + record_count: itemPerPage * pageCount, + page_count: pageCount + }, + included: [ + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'JkAdBhNGjQ', + type: 'customers', + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ' + }, + attributes: { + email: 'customer@tk.com', + status: 'repeat', + has_password: false, + total_orders_count: 2753, + created_at: '2022-03-14T09:13:06.633Z', + updated_at: '2023-07-31T09:13:06.049Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_group' + } + }, + customer_addresses: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_addresses', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_addresses' + } + }, + customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_payment_sources' + } + }, + customer_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_subscriptions' + } + }, + orders: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/orders', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/orders' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/order_subscriptions' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/returns' + } + }, + sku_lists: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/sku_lists', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/sku_lists' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/events', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dPoNukZmnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.638Z', + updated_at: '2023-05-16T11:06:07.638Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dQxruwZDnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.493Z', + updated_at: '2023-05-16T11:06:07.493Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'wmBvQsARml', + type: 'payment_methods', + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml' + }, + attributes: { + payment_source_type: 'stripe_payments', + name: 'Stripe Payment', + currency_code: 'EUR', + moto: false, + require_capture: true, + auto_capture: false, + disabled_at: null, + price_amount_cents: 1000, + price_amount_float: 10.0, + formatted_price_amount: '€10,00', + auto_capture_max_amount_cents: null, + auto_capture_max_amount_float: null, + formatted_auto_capture_max_amount: null, + created_at: '2022-03-11T14:18:08.420Z', + updated_at: '2022-03-11T14:18:08.420Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/market', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/market' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/payment_gateway' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'onXELSmbQy', + type: 'stripe_payments', + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy' + }, + attributes: { + client_secret: + 'pi_3N8LhsK5j6INEBBI0JicoLOo_secret_CKWfEPSnvyBHIQrEfRXkrJYd7', + publishable_key: + 'pk_test_51KH86yK5j6INEBBIdkXoh0UwOoOlAbFZc3b8j0vjRHKQHdaUfEJm24F0A9QkrQXVlgh1nXJCpWR6PG3epaUWzE2z00BdEe9fho', + options: { + id: 'pm_1N8LhuK5j6INEBBI71U1QOlu', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: null, + address_line1_check: null, + address_postal_code_check: null + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235178, + customer: null, + livemode: false, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + }, + setup_future_usage: 'off_session', + intent_amount_cents: 15400 + }, + payment_method: { + id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235179, + customer: null, + livemode: false, + metadata: {}, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + } + }, + mismatched_amounts: false, + intent_amount_cents: 15400, + intent_amount_float: 154.0, + formatted_intent_amount: '€154,00', + return_url: null, + payment_instrument: { + issuer_type: 'card', + card_type: 'visa', + card_last_digits: '4242', + card_expiry_month: '2', + card_expiry_year: '2031' + }, + created_at: '2023-05-16T11:06:16.338Z', + updated_at: '2023-05-16T11:06:21.948Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/order' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/payment_gateway' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vaoMtAZlXy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -10000, + unit_amount_float: -100.0, + formatted_unit_amount: '-€100,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -10000, + total_amount_float: -100.0, + formatted_total_amount: '-€100,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Gift card: €100,00', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'gift_cards', + frequency: null, + created_at: '2023-05-16T11:06:14.674Z', + updated_at: '2023-05-16T11:06:14.674Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kmnptjPlBv', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 1000, + unit_amount_float: 10.0, + formatted_unit_amount: '€10,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 1000, + total_amount_float: 10.0, + formatted_total_amount: '€10,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Stripe Payment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'payment_methods', + frequency: null, + created_at: '2023-05-16T11:06:14.629Z', + updated_at: '2023-05-16T11:06:14.629Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWEZtMGVKy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/001', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.728Z', + updated_at: '2023-05-16T11:06:09.728Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NqYatGaKnN', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/002', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.602Z', + updated_at: '2023-05-16T11:06:09.602Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NoEntBwEdk', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk' + }, + attributes: { + sku_code: 'TSHIRTMMFFFFFF000000XLXX', + bundle_code: null, + quantity: 5, + currency_code: 'EUR', + unit_amount_cents: 2900, + unit_amount_float: 29.0, + formatted_unit_amount: '€29,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -5943, + discount_float: -59.43, + formatted_discount: '-€59,43', + total_amount_cents: 14500, + total_amount_float: 145.0, + formatted_total_amount: '€145,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'White Men T-Shirt with Black Logo (XL)', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMSFFFFFF000000XLXX_FLAT.png', + discount_breakdown: { + vaoMtAZlXy: { cents: -5943, weight: 0.5942622950819673 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.458Z', + updated_at: '2023-05-16T11:06:02.458Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NlQmtMAnGy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy' + }, + attributes: { + sku_code: 'CANVASAU000000FFFFFF1824', + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 9900, + unit_amount_float: 99.0, + formatted_unit_amount: '€99,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -4057, + discount_float: -40.57, + formatted_discount: '-€40,57', + total_amount_cents: 9900, + total_amount_float: 99.0, + formatted_total_amount: '€99,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Black Canvas with White Logo (18x24)', + image_url: + 'https://img.commercelayer.io/skus/CANVASAU000000FFFFFF.png?fm=jpg&q=90', + discount_breakdown: { + vaoMtAZlXy: { cents: -4057, weight: 0.4057377049180328 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.444Z', + updated_at: '2023-05-16T11:06:02.444Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'YpLwCnNQgY', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY' + }, + attributes: { + number: '2485862/S/001', + status: 'on_hold', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 5, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: '2023-07-21T14:12:13.287Z', + picking_at: '2023-07-21T14:12:08.574Z', + packing_at: '2023-07-21T14:10:54.107Z', + ready_to_ship_at: null, + shipped_at: null, + created_at: '2023-05-16T11:06:07.685Z', + updated_at: '2023-07-21T14:12:13.286Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'PabvCpOxRy', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy' + }, + attributes: { + number: '2485862/S/002', + status: 'shipped', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 1, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: null, + picking_at: '2023-05-16T14:18:35.559Z', + packing_at: '2023-05-16T14:20:24.459Z', + ready_to_ship_at: '2023-05-16T14:21:43.665Z', + shipped_at: '2023-05-16T14:22:42.632Z', + created_at: '2023-05-16T11:06:07.711Z', + updated_at: '2023-05-16T14:22:42.633Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'nKZkPUDBVj', + type: 'authorizations', + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj' + }, + attributes: { + number: '2485862/T/001', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T11:06:21.964Z', + updated_at: '2023-05-16T11:06:21.964Z', + reference: null, + reference_origin: null, + metadata: {}, + cvv_code: null, + cvv_message: null, + avs_code: null, + avs_message: null, + fraud_review: null, + capture_amount_cents: 0, + capture_amount_float: 0.0, + formatted_capture_amount: '€0,00', + capture_balance_cents: 0, + capture_balance_float: 0.0, + formatted_capture_balance: '€0,00', + void_balance_cents: 15400, + void_balance_float: 154.0, + formatted_void_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/order', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/versions' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/voids', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/voids' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kyAnxUgegE', + type: 'captures', + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE' + }, + attributes: { + number: '2485862/T/002', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T14:18:35.368Z', + updated_at: '2023-05-16T14:18:35.368Z', + reference: null, + reference_origin: null, + metadata: {}, + refund_amount_cents: 15400, + refund_amount_float: 154.0, + formatted_refund_amount: '€154,00', + refund_balance_cents: 15400, + refund_balance_float: 154.0, + formatted_refund_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/order', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/versions' + } + }, + reference_authorization: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/reference_authorization', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/reference_authorization' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/refunds' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/events', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EqGrksxWNW', + type: 'attachments', + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW' + }, + attributes: { + name: 'M. Montalbano', + description: 'Ehi there!', + url: null, + created_at: '2023-07-20T13:58:52.184Z', + updated_at: '2023-07-20T13:58:52.184Z', + reference: null, + reference_origin: 'app-orders--note', + metadata: {} + }, + relationships: { + attachable: { + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/relationships/attachable', + related: + 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/attachable' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + } +) + +export default [orderDetail, orderList] diff --git a/packages/document/mocks/data/tags.js b/packages/document/mocks/data/tags.js new file mode 100644 index 00000000..3fdf23d7 --- /dev/null +++ b/packages/document/mocks/data/tags.js @@ -0,0 +1,42 @@ +import { HttpResponse, http } from 'msw' + +const mockedTags = Array(15) + .fill(null) + .map((item, idx) => ({ + id: Math.random().toString().substring(2, 12), + type: 'tags', + attributes: { + name: `tag-${idx}`, + created_at: '2023-03-17T14:07:36.604Z', + updated_at: '2023-03-17T14:07:36.604Z' + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + })) + +const customerTags = http.get( + `https://mock.localhost/api/customers/NMWYhbGorj/tags`, + async () => { + return HttpResponse.json( + { + data: mockedTags.slice(0, 2), + meta: { record_count: 2, page_count: 1 } + }, + { status: 200 } + ) + } +) + +const organizationTags = http.get( + `https://mock.localhost/api/tags`, + async () => { + return HttpResponse.json( + { + data: mockedTags, + meta: { record_count: 100, page_count: 10 } + }, + { status: 200 } + ) + } +) + +export default [customerTags, organizationTags] diff --git a/packages/document/mocks/handlers.js b/packages/document/mocks/handlers.js new file mode 100644 index 00000000..df071002 --- /dev/null +++ b/packages/document/mocks/handlers.js @@ -0,0 +1,15 @@ +import adjustments from './data/adjustments' +import bundles from './data/bundles' +import lineItems from './data/line_items' +import markets from './data/markets' +import orders from './data/orders' +import tags from './data/tags' + +export const handlers = [ + ...adjustments, + ...bundles, + ...lineItems, + ...markets, + ...orders, + ...tags +] diff --git a/packages/document/package.json b/packages/document/package.json new file mode 100644 index 00000000..f179175e --- /dev/null +++ b/packages/document/package.json @@ -0,0 +1,53 @@ +{ + "name": "document", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" + }, + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@chromatic-com/storybook": "^3.2.4", + "@eslint/js": "^9.19.0", + "@storybook/addon-docs": "^7.6.17", + "@storybook/addon-essentials": "^8.5.3", + "@storybook/addon-interactions": "^8.5.3", + "@storybook/addon-links": "^7.6.17", + "@storybook/addon-mdx-gfm": "^8.5.3", + "@storybook/addon-onboarding": "^8.5.3", + "@storybook/blocks": "^8.5.3", + "@storybook/react": "^8.5.3", + "@storybook/react-vite": "^8.5.3", + "@storybook/test": "^8.5.3", + "@storybook/theming": "^8.5.3", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.19.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.18", + "eslint-plugin-storybook": "^0.11.2", + "globals": "^15.14.0", + "msw": "^2.7.0", + "remark-gfm": "^4.0.0", + "storybook": "^8.5.3", + "typescript": "~5.7.2", + "typescript-eslint": "^8.22.0", + "vite": "^6.1.0", + "vite-tsconfig-paths": "^5.1.4" + }, + "eslintConfig": { + "extends": [ + "plugin:storybook/recommended" + ] + } +} diff --git a/packages/document/public/app-logo.png b/packages/document/public/app-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77e678b5bf1857fc4ea500ae856282d0aabe3996 GIT binary patch literal 28732 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 { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + const accept = request.headers.get('accept') || '' + + // Bypass server-sent events. + if (accept.includes('text/event-stream')) { + return + } + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = Math.random().toString(16).slice(2) + + event.respondWith( + handleRequest(event, requestId).catch((error) => { + if (error.name === 'NetworkError') { + console.warn( + '[MSW] Successfully emulated a network error for the "%s %s" request.', + request.method, + request.url, + ) + return + } + + // At this point, any exception indicates an issue with the original request/response. + console.error( + `\ +[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, + request.method, + request.url, + `${error.name}: ${error.message}`, + ) + }), + ) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const clonedResponse = response.clone() + sendToClient(client, { + type: 'RESPONSE', + payload: { + requestId, + type: clonedResponse.type, + ok: clonedResponse.ok, + status: clonedResponse.status, + statusText: clonedResponse.statusText, + body: + clonedResponse.body === null ? null : await clonedResponse.text(), + headers: Object.fromEntries(clonedResponse.headers.entries()), + redirected: clonedResponse.redirected, + }, + }) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + const clonedRequest = request.clone() + + function passthrough() { + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const headers = Object.fromEntries(clonedRequest.headers.entries()) + + // Remove MSW-specific request headers so the bypassed requests + // comply with the server's CORS preflight check. + // Operate with the headers as an object because request "Headers" + // are immutable. + delete headers['x-msw-bypass'] + + return fetch(clonedRequest, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Bypass requests with the explicit bypass header. + // Such requests can be issued by "ctx.fetch()". + if (request.headers.get('x-msw-bypass') === 'true') { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const clientMessage = await sendToClient(client, { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + mode: request.mode, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: await request.text(), + bodyUsed: request.bodyUsed, + keepalive: request.keepalive, + }, + }) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'MOCK_NOT_FOUND': { + return passthrough() + } + + case 'NETWORK_ERROR': { + const { name, message } = clientMessage.data + const networkError = new Error(message) + networkError.name = name + + // Rejecting a "respondWith" promise emulates a network error. + throw networkError + } + } + + return passthrough() +} + +function sendToClient(client, message) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [channel.port2]) + }) +} + +function sleep(timeMs) { + return new Promise((resolve) => { + setTimeout(resolve, timeMs) + }) +} + +async function respondWithMock(response) { + await sleep(response.delay) + return new Response(response.body, response) +} diff --git a/packages/document/public/storybook-preview.css b/packages/document/public/storybook-preview.css new file mode 100644 index 00000000..3d591793 --- /dev/null +++ b/packages/document/public/storybook-preview.css @@ -0,0 +1,38 @@ +/* Global */ +.sbdocs-wrapper ol { + list-style: decimal; +} + +/** Blockquote */ +span[type] { + display: block; + padding: 16px !important; + font-size: 14px !important; + color: #2e3438 !important; + margin: 16px 0; + border-left: 4px solid; +} +span[type]::before { + content: attr(title); + display: block; + font-weight: bold; +} +span[type] > p { + margin: 0; +} +span[type='info'] { + border-color: #3b82f6; + background-color: #dbebfe; +} +span[type='warning'] { + border-color: #f97317; + background-color: #ffedd5; +} +span[type='success'] { + border-color: #22c55f; + background-color: #ddfce7; +} +span[type='danger'] { + border-color: #ef4544; + background-color: #fee2e3; +} diff --git a/packages/document/public/welcome-hero.png b/packages/document/public/welcome-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..57c9193bb7778c712d774da1fd68cb13c17293cc GIT binary patch literal 103964 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 z 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 m&Hplk|1tyU|669T;MjP>7eA1we-Ym9�eQOINuZ@P7b&d + +

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/packages/document/src/assets/react.svg b/packages/document/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/packages/document/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/document/src/index.css b/packages/document/src/index.css new file mode 100644 index 00000000..6119ad9a --- /dev/null +++ b/packages/document/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/packages/document/src/main.tsx b/packages/document/src/main.tsx new file mode 100644 index 00000000..86e0ef88 --- /dev/null +++ b/packages/document/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from "react" +import { createRoot } from "react-dom/client" +import "./index.css" +import App from "./App.tsx" + +createRoot(document.getElementById("root")!).render( + + + , +) diff --git a/packages/document/src/stories/_internals/Code.tsx b/packages/document/src/stories/_internals/Code.tsx new file mode 100644 index 00000000..383c69b0 --- /dev/null +++ b/packages/document/src/stories/_internals/Code.tsx @@ -0,0 +1,3 @@ +export const Code: React.FC<{ children?: string }> = ({ children }) => { + return {children} +} diff --git a/packages/document/src/stories/_internals/CommerceLayer.tsx b/packages/document/src/stories/_internals/CommerceLayer.tsx new file mode 100644 index 00000000..e4bed7a8 --- /dev/null +++ b/packages/document/src/stories/_internals/CommerceLayer.tsx @@ -0,0 +1,35 @@ +import { type DefaultChildrenType } from '#typings/globals' +import CommerceLayerComponent from '#components/auth/CommerceLayer' +import { useGetToken } from './useGetToken' + +interface Props { + children: DefaultChildrenType + accessToken: + | 'customer-access-token' + | 'customer-orders-access-token' + | 'my-access-token' // guest token + endpoint?: string +} + +/** + * Custom setup for the `CommerceLayer` component that can be used in Storybook. + * without exposing the `accessToken` and `endpoint` props. + */ +function CommerceLayer({ children, ...props }: Props): JSX.Element { + const { accessToken, endpoint } = useGetToken({ + mode: + props.accessToken === 'customer-access-token' + ? 'customer' + : props.accessToken === 'customer-orders-access-token' + ? 'customer-orders' + : 'guest' + }) + + return ( + + {children} + + ) +} + +export default CommerceLayer diff --git a/packages/document/src/stories/_internals/OrderStorage.tsx b/packages/document/src/stories/_internals/OrderStorage.tsx new file mode 100644 index 00000000..41df3c7b --- /dev/null +++ b/packages/document/src/stories/_internals/OrderStorage.tsx @@ -0,0 +1,96 @@ +/* eslint-disable @typescript-eslint/no-misused-promises */ +import OrderStorageComponent from "#components/orders/OrderStorage"; +import useCommerceLayer from "#hooks/useCommerceLayer"; +import { useState, useEffect } from "react"; +import useOrderContainer from "#hooks/useOrderContainer"; +import type { CommerceLayerClient } from "@commercelayer/sdk"; + +export const OrderStorage = ({ + persistKey, + children, +}: { + persistKey: string; + children: React.ReactNode; +}): JSX.Element => { + const [orderId, setOrderId] = useState(localStorage.getItem(persistKey)); + const { sdkClient, accessToken } = useCommerceLayer(); + const cl = + accessToken != null && accessToken !== "" && sdkClient != null + ? sdkClient() + : undefined; + + useEffect(() => { + if (cl != null && orderId == null) { + createOrderWithItems(cl).then((orderId) => { + setOrderId(orderId); + localStorage.setItem(persistKey, orderId); + }); + } + }, [cl, persistKey]); + + if (cl == null || orderId == null) { + return
; + } + + return ( + + {children} + + ); +}; + +export const AddSampleItems = (): JSX.Element => { + const { sdkClient, accessToken } = useCommerceLayer(); + const { order, addToCart } = useOrderContainer(); + const cl = accessToken != null && accessToken !== "" && sdkClient(); + + if (cl == null || cl === false || order == null) return
loading...
; + + return ( +
+

Cart is empty

+ +
+ ); +}; + +async function createOrderWithItems(cl: CommerceLayerClient): Promise { + const order = await cl.orders.create({ + language_code: "en", + }); + await fillOrder(order.id, cl); + return order.id; +} + +async function fillOrder( + orderId: string, + cl: CommerceLayerClient, +): Promise { + await cl.line_items.create({ + item_type: "skus", + sku_code: "5PANECAP9D9CA1FFFFFFXXXX", + quantity: 2, + order: cl.orders.relationship(orderId), + }); + + await cl.line_items.create({ + item_type: "skus", + sku_code: "BACKPACK000000FFFFFFXXXX", + quantity: 3, + order: cl.orders.relationship(orderId), + }); +} diff --git a/packages/document/src/stories/_internals/useGetToken.ts b/packages/document/src/stories/_internals/useGetToken.ts new file mode 100644 index 00000000..966dd14f --- /dev/null +++ b/packages/document/src/stories/_internals/useGetToken.ts @@ -0,0 +1,261 @@ +import { authenticate } from '@commercelayer/js-auth' +import { useEffect, useMemo, useState } from 'react' +import Cookie from 'js-cookie' +import { jwtDecode } from 'jwt-decode' + +const salesChannel = { + clientId: 'Z5ypiDlsqgV8twWRz0GabrJvTKXad4U-PMoVAU-XvV0', + slug: 'react-components-store', + scope: 'market:15283', + domain: 'commercelayer.io' +} +const savedCustomerWithOrders = { + username: 'bruce@wayne.com', + password: '123456' +} + +type UserMode = 'customer' | 'customer-orders' | 'guest' +interface UseGetTokenOptions { + mode?: UserMode +} + +const getAccessTokenCookieName = (mode: UserMode): string => + `clToken.${salesChannel.slug}.${mode}` + +const getCustomerLoginCookieName = (mode: UserMode): string => + `clToken.customerLogin.${mode}` + +export function useGetToken( + options?: T +): { + accessToken: string + endpoint: string +} { + const mode = options?.mode ?? 'guest' + const [accessToken, setAccessToken] = useState( + Cookie.get(getAccessTokenCookieName(mode)) ?? '' + ) + const clientId = salesChannel.clientId + const slug = salesChannel.slug + const scope = salesChannel.scope + const domain = salesChannel.domain + + const initToken = useMemo(() => { + return async () => { + const user = + mode === 'customer' + ? await retrieveCustomerData({ + clientId, + slug, + scope, + domain, + mode + }) + : mode === 'customer-orders' + ? savedCustomerWithOrders + : undefined + + await generateNewToken({ + clientId, + slug, + scope, + domain, + user, + mode + }).then(({ accessToken, expires }) => { + setAccessToken(accessToken) + Cookie.set(getAccessTokenCookieName(mode), accessToken, { expires }) + }) + } + }, []) + + useEffect(() => { + if ( + accessToken == null || + accessToken === '' || + isTokenExpired({ accessToken, compareTo: new Date() }) + ) { + initToken() + } + }, [accessToken]) + + return { + accessToken, + endpoint: `https://${slug}.${domain}` + } +} + +async function retrieveCustomerData({ + clientId, + slug, + scope, + domain, + mode +}: { + clientId: string + slug: string + scope: string + domain: string + mode: UserMode +}): Promise<{ + username: string + password: string +}> { + const existingUser = Cookie.get(getCustomerLoginCookieName(mode)) + const savedEmail = parseEmailAddress(existingUser?.split(':')[0]) + const savedPassword = parsePassword(existingUser?.split(':')[1]) + + if (savedEmail != null && savedPassword != null) { + return { + username: savedEmail, + password: savedPassword + } + } + + const newEmail = `user-${generateRandomString(5)}-${generateRandomString( + 5 + )}@domain.com` + const newPassword = generateRandomString(10) + + const guestToken = await generateNewToken({ + clientId, + slug, + scope, + domain, + mode + }) + + await createNewCustomer({ + email: newEmail, + password: newPassword, + salesChannelToken: guestToken.accessToken, + slug, + domain + }) + + Cookie.set(getCustomerLoginCookieName(mode), `${newEmail}:${newPassword}`) + + return { + username: newEmail, + password: newPassword + } +} + +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +async function generateNewToken({ + clientId, + slug, + scope, + domain, + user, + mode +}: { + clientId: string + slug: string + scope: string + domain: string + user?: { username: string; password: string } + mode: UserMode +}) { + return user == null + ? await authenticate('client_credentials', { + clientId, + scope, + domain + }) + : await authenticate('password', { + clientId, + scope, + domain, + ...user + }).then((res) => { + if (res != null && 'error' in res) { + Cookie.remove(getCustomerLoginCookieName('customer')) + Cookie.remove(getCustomerLoginCookieName('customer-orders')) + Cookie.remove(getAccessTokenCookieName(mode)) + } + return res + }) +} + +function isTokenExpired({ + accessToken, + compareTo +}: { + accessToken?: string + compareTo: Date +}): boolean { + if (accessToken == null || accessToken === '') { + return true + } + + try { + const { exp } = jwtDecode<{ exp: number }>(accessToken) + + if (exp == null) { + return true + } + + const nowTime = Math.trunc(compareTo.getTime() / 1000) + return nowTime > exp + } catch { + return true + } +} + +function generateRandomString(length = 10): string { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + let result = '' + for (let i = 0; i < length; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)) + } + return result +} + +function parseEmailAddress(email?: string): string | undefined { + const re = /^[a-zA-Z0-9._%+-]+@domain\.com$/ + if (email == null) { + return undefined + } + return re.test(email) ? email : undefined +} + +function parsePassword(password?: string): string | undefined { + return password?.length === 10 ? password : undefined +} + +async function createNewCustomer({ + email, + password, + salesChannelToken, + slug, + domain +}: { + email: string + password: string + salesChannelToken: string + slug: string + domain: string +}): Promise { + const newCustomer = await fetch(`https://${slug}.${domain}/api/customers`, { + method: 'POST', + headers: { + Accept: 'application/vnd.api+json', + 'Content-Type': 'application/vnd.api+json', + Authorization: `Bearer ${salesChannelToken}` + }, + body: JSON.stringify({ + data: { + type: 'customers', + attributes: { + email, + password + } + } + }) + }) + + if (newCustomer.status !== 201) { + throw new Error('Error creating customer') + } +} diff --git a/packages/document/src/stories/getting-started/001.introduction.mdx b/packages/document/src/stories/getting-started/001.introduction.mdx new file mode 100644 index 00000000..51386c8d --- /dev/null +++ b/packages/document/src/stories/getting-started/001.introduction.mdx @@ -0,0 +1,55 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +![App Element splashscreen](welcome-hero.png) + +A collection of reusable React components that makes it super fast and simple to build your own custom commerce UI, leveraging Commerce Layer API. + +Under the hood, our React components are built on top of [Commerce Layer JS SDK](https://github.com/commercelayer/commercelayer-sdk) — feel free to use it if you want to develop your custom ones. + + +## Installation + +This library is [open sourced](https://github.com/commercelayer/commercelayer-react-components/) and served as [npm package](https://www.npmjs.com/package/@commercelayer/react-components) and need to be installed as dependency inside your project. + + + + + +## Import components into your project + +You can use ES6 named import with every single component you plan to use (in addition to `CommerceLayer` one), as follow: + + + +But you can also leverage treeshaking by importing only the components you need from its folder using either default or named export, as follow: + + diff --git a/packages/document/src/stories/getting-started/002.authentication.mdx b/packages/document/src/stories/getting-started/002.authentication.mdx new file mode 100644 index 00000000..802a5adf --- /dev/null +++ b/packages/document/src/stories/getting-started/002.authentication.mdx @@ -0,0 +1,61 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Authentication + +To get started with **Commerce Layer React Components** you need get the credentials that will allow you to perform the API calls they wrap. + +All requests to Commerce Layer API must be authenticated with an [OAuth2](https://oauth.net/2/) bearer token. +Hence, to use these components, you need to get a valid access token. + + +## Getting an access token + +If you are new to Commerce Layer, we suggest you to read the [Overview of Commerce Layer's OAuth 2.0](https://docs.commercelayer.io/core/applications) guide. + + +There are many ways to get an access token and the one you choose depends on your specific needs. + +You can get an access token by using one of the following methods: +- [API/OAuth requests](https://docs.commercelayer.io/core/authentication/client-credentials#getting-an-access-token) (i.e. `curl` or `postman`) +- [Commerce Layer CLI](https://github.com/commercelayer/commercelayer-cli) +- [Commerce Layer JS Auth Library](https://github.com/commercelayer/commercelayer-js-auth) + + +If you want to retrieve the access token from the **command line**, we suggest you to use the [Commerce Layer CLI](https://github.com/commercelayer/commercelayer-cli) +using the `commercelayer application:login` command ([view example](https://github.com/commercelayer/commercelayer-cli/blob/main/docs/applications.md#commercelayer-applicationslogin)), +followed by `commercelayer application:token` + +
+Otherwise, if you need to get it from a **web application**, you can use the Commerce Layer JS Auth library that works both in the browser and in Node.js environments. +
+ + + + +## Configure the `CommerceLayer` component +Once you got it, you can pass it as prop to the `CommerceLayer` component, as follow: + + ( + + {/* ... child components */} + +) +`} +/> + + +This token will be used to authorize the API calls of all its child components. +That's why the presence of (at least) one `CommerceLayer` component is mandatory — it must wrap every other component you need to use. + + +In case you need to fetch data with different tokens (i.e. from different organizations or using apps with different roles and permissions) +— nothing prevents you from putting as many `` components you want in the same page. + diff --git a/packages/document/src/stories/getting-started/003.microfrontends.mdx b/packages/document/src/stories/getting-started/003.microfrontends.mdx new file mode 100644 index 00000000..1bc7aba4 --- /dev/null +++ b/packages/document/src/stories/getting-started/003.microfrontends.mdx @@ -0,0 +1,17 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Micro frontends + +We use **Commerce Layer React Components** library in our official open sourced hosted applications. + +Feel free to check them out and see how it works in a real world application. + + +|Application|Description|Source| +|:-----------|:-----------|:----| +| Checkout | Checkout application that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-checkout) +| Cart | Shopping cart application that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-cart) +| My account | Customer portal application with personal account information and management that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-my-account) +| Microstore | Production-ready, self-contained store. Each microstore will be accessible at a unique URL and configurable via URL query strings, with no development required. | [GitHub](https://github.com/commercelayer/mfe-microstore) diff --git a/packages/document/src/stories/getting-started/004.styling.mdx b/packages/document/src/stories/getting-started/004.styling.mdx new file mode 100644 index 00000000..6ce9259b --- /dev/null +++ b/packages/document/src/stories/getting-started/004.styling.mdx @@ -0,0 +1,16 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Styling the components + +This library does not provide any styling. They return simple html/jsx tags filled with fetched data. + +**It is up to you to style the components as you want**. + +Almost all components expose a `className` prop that allows you to add your own css classes. +Some components that renders multiple elements also expose other props to add classes to each specific elements. + + +All the examples in this documentation use [Tailwind CSS](https://tailwindcss.com/) to demostrate how the components can be styled. + diff --git a/packages/document/src/stories/getting-started/005.containers.mdx b/packages/document/src/stories/getting-started/005.containers.mdx new file mode 100644 index 00000000..b3d44fee --- /dev/null +++ b/packages/document/src/stories/getting-started/005.containers.mdx @@ -0,0 +1,36 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Containers + +Getting used to the components hierarchy is important to understand how to use this library. + +All components need to be wrapped inside the main `` context that handles the authentication with the API layer. +**It needs to be placed at the top of the application**. + +Other components need to be wrapped inside their own containers in order to access to their specific context. +As example the `` component needs to be wrapped inside the `` or it won't work. +At the same time, the `` will not render any HTML since it just holds the data for the `` component. + + +To amultiple requests to the API, the library uses a cache system that stores the data in React contexts that we refer as containers.
+Less re-rendering of those containers means better performance and less requests to the API. +
+ + +## Hierarchy +Each container documentend in the Components section of this guide, highlights a list of **Requirements** and **Children** that are needed to make it work. + +Example: + + +Must be a child of `` component. + + + + +`` +`` +`` + diff --git a/packages/document/src/vite-env.d.ts b/packages/document/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/packages/document/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/document/tsconfig.app.json b/packages/document/tsconfig.app.json new file mode 100644 index 00000000..358ca9ba --- /dev/null +++ b/packages/document/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/packages/document/tsconfig.json b/packages/document/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/packages/document/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/document/tsconfig.node.json b/packages/document/tsconfig.node.json new file mode 100644 index 00000000..db0becc8 --- /dev/null +++ b/packages/document/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/document/vite.config.ts b/packages/document/vite.config.ts new file mode 100644 index 00000000..8b0f57b9 --- /dev/null +++ b/packages/document/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6d2d56d..01f5a02b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,7 +64,7 @@ importers: version: 5.7.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) vitest: specifier: ^3.0.4 version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) @@ -75,8 +75,11 @@ importers: specifier: ^7.26.9 version: 7.26.10 '@babel/preset-env': - specifier: ^7.26.9 - version: 7.26.9(@babel/core@7.26.10) + specifier: ^7.26.0 + version: 7.26.0(@babel/core@7.26.0) + '@commercelayer/eslint-config-ts-react': + specifier: ^1.3.0 + version: 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2) '@commercelayer/js-auth': specifier: ^6.7.1 version: 6.7.1 @@ -94,10 +97,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -121,7 +124,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -192,6 +195,100 @@ importers: specifier: ^5.1.4 version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + packages/document: + dependencies: + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@chromatic-com/storybook': + specifier: ^3.2.4 + version: 3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@eslint/js': + specifier: ^9.19.0 + version: 9.19.0 + '@storybook/addon-docs': + specifier: ^7.6.17 + version: 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/addon-essentials': + specifier: ^8.5.3 + version: 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-interactions': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-links': + specifier: ^7.6.17 + version: 7.6.20(react@19.0.0) + '@storybook/addon-mdx-gfm': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-onboarding': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/blocks': + specifier: ^8.5.3 + version: 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react': + specifier: ^8.5.3 + version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + '@storybook/react-vite': + specifier: ^8.5.3 + version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@storybook/test': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/theming': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@types/react': + specifier: ^19.0.8 + version: 19.0.8 + '@types/react-dom': + specifier: ^19.0.3 + version: 19.0.3(@types/react@19.0.8) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + eslint: + specifier: ^9.19.0 + version: 9.19.0 + eslint-plugin-react-hooks: + specifier: ^5.0.0 + version: 5.1.0(eslint@9.19.0) + eslint-plugin-react-refresh: + specifier: ^0.4.18 + version: 0.4.18(eslint@9.19.0) + eslint-plugin-storybook: + specifier: ^0.11.2 + version: 0.11.2(eslint@9.19.0)(typescript@5.7.3) + globals: + specifier: ^15.14.0 + version: 15.14.0 + msw: + specifier: ^2.7.0 + version: 2.7.0(@types/node@22.12.0)(typescript@5.7.3) + remark-gfm: + specifier: ^4.0.0 + version: 4.0.0 + storybook: + specifier: ^8.5.3 + version: 8.5.3(prettier@3.4.2) + typescript: + specifier: ~5.7.2 + version: 5.7.3 + typescript-eslint: + specifier: ^8.22.0 + version: 8.23.0(eslint@9.19.0)(typescript@5.7.3) + vite: + specifier: ^6.1.0 + version: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + packages/react-components: dependencies: '@adyen/adyen-web': @@ -248,7 +345,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': specifier: ^3.96.16 version: 3.96.16 @@ -315,8 +412,14 @@ importers: packages: - '@adyen/adyen-web@6.9.0': - resolution: {integrity: sha512-R4TbMuDT7rzSwpUEmgD/idW/a7x3gMv1LIdvHdwiNOEhJeLyCZTCSZBbP0r9SecpRFN1BM1L57FJc4WZfhRS+w==} + '@adobe/css-tools@4.4.1': + resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} + + '@adyen/adyen-web@6.8.0': + resolution: {integrity: sha512-qOCFk4c0tc+So3a4co+RX01eVQFJpnzHRmUTtEiWIetWYSaBX1+htovIoj6L1k4mhRXohyo2GjAJAlueoe8rVQ==} + + '@adyen/bento-design-tokens@1.10.0': + resolution: {integrity: sha512-ZaWLGTLLW0bh69mu9ibGMaZ2DXkrB07XU3gc5Mt1fTZgNDAnCsdfJ/Wq7BxW3zYhtQLU69oz0QayZ3RDKTlHEA==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} @@ -973,6 +1076,12 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@chromatic-com/storybook@3.2.4': + resolution: {integrity: sha512-5/bOOYxfwZ2BktXeqcCpOVAoR6UCoeART5t9FVy22hoo8F291zOuX4y3SDgm10B1GVU/ZTtJWPT2X9wZFlxYLg==} + engines: {node: '>=16.0.0', yarn: '>=1.22.18'} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1321,8 +1430,42 @@ packages: cpu: [x64] os: [win32] - '@faker-js/faker@9.6.0': - resolution: {integrity: sha512-3vm4by+B5lvsFPSyep3ELWmZfE3kicDtmemVpuwl1yH7tqtnHdsA6hG8fbXedMVdkzgtvzWoRgjSB4Q+FHnZiw==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.19.0': + resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@faker-js/faker@9.4.0': + resolution: {integrity: sha512-85+k0AxaZSTowL0gXp8zYWDIrWclTbRPg/pm/V0dSFZ6W6D4lhcG3uuZl4zLsEKfEvs69xDbLN2cHQudwp95JA==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} '@fal-works/esbuild-plugin-global-externals@2.1.2': @@ -1418,6 +1561,15 @@ packages: typescript: optional: true + '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2': + resolution: {integrity: sha512-feQ+ntr+8hbVudnsTUapiMN9q8T90XA1d5jn9QzY09sNoj4iD9wi0PY1vsBFTda4ZjEaxRK9S81oarR2nj7TFQ==} + peerDependencies: + typescript: '>= 4.3.x' + vite: '>=4.5.2' + peerDependenciesMeta: + typescript: + optional: true + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -2225,30 +2377,65 @@ packages: '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} + '@storybook/addon-actions@8.5.3': + resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} + '@storybook/addon-backgrounds@8.5.3': + resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} + '@storybook/addon-controls@8.5.3': + resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/addon-docs@8.5.3': + resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/addon-essentials@8.5.3': + resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} + '@storybook/addon-highlight@8.5.3': + resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} + '@storybook/addon-interactions@8.5.3': + resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} peerDependencies: @@ -2260,18 +2447,48 @@ packages: '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} + '@storybook/addon-mdx-gfm@8.5.3': + resolution: {integrity: sha512-jKfJir3E+jJkD1K9SvrzUQBhaQJbGd2DtcE5IusXe0NKBJegbBy+eMhh9K7ani/isTf8+ZkhoXR3DFWwi2IJhg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} + '@storybook/addon-measure@8.5.3': + resolution: {integrity: sha512-unb0bRsnISXWiCBBECxNUUdM12hHpV+1uJUu5OJHtKb26YpiQvewDFLTLjuZJ3NIAfw+F5232Q7K88AWJV6weg==} + peerDependencies: + storybook: ^8.5.3 + + '@storybook/addon-onboarding@8.5.3': + resolution: {integrity: sha512-NZhYj3UZK65reO7mXcK7FPPu7QkLCRyIa6TpfQ3mRAocfjqg401mcBsRO37JNywYfHCZrU4w1l7pwpqjvcYceg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} + '@storybook/addon-outline@8.5.3': + resolution: {integrity: sha512-e1MkGN6XVdeRh2oUKGdqEDyAo2TD/47ashAAxw8DEiLRWgBMbQ+KBVH4EOG+dn5395jxh7YgRLJn/miqNnfN5g==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} + '@storybook/addon-toolbars@8.5.3': + resolution: {integrity: sha512-AWr9Per9WDrbFtNlbVlj6CiEwKOvOyoBt3bCuMHuRfTdqKwkwInEtyUi4//T8U+c1qs7KJBpsWV2vhIuc5sODg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} + '@storybook/addon-viewport@8.5.3': + resolution: {integrity: sha512-OkLJ2B8+PiOEAd2HtRG6XewVjtw6AkBMgoSbfKCMr6TWSbuKrOeiwIMqqieAAPVNfsOQ8hTK6JGhr/KPRCKgRA==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2284,6 +2501,18 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/blocks@8.5.3': + resolution: {integrity: sha512-a/PpHFmeBtVB9Q/6cNAnqfeCqMowsrI8nGka0Nl7BB3x1eJnS3I1Qo3Skht0LBEsmXOgXk4dwWxpeQL3qHMRkw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + '@storybook/builder-manager@7.6.20': resolution: {integrity: sha512-e2GzpjLaw6CM/XSmc4qJRzBF8GOoOyotyu3JrSPTYOt4RD8kjUsK4QlismQM1DQRu8i39aIexxmRbiJyD74xzQ==} @@ -2302,6 +2531,12 @@ packages: vite-plugin-glimmerx: optional: true + '@storybook/builder-vite@8.5.3': + resolution: {integrity: sha512-MxriwzZSVidaXj3kpH/jCOJZUdF7ofcvxmvrMrNehH9UvXIGM6b73CBC5ucnptbnQ7qxYKdAZiMhQbPHZ9cqOQ==} + peerDependencies: + storybook: ^8.5.3 + vite: '>=4.5.2' + '@storybook/channels@7.6.17': resolution: {integrity: sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==} @@ -2330,6 +2565,11 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/components@8.5.3': + resolution: {integrity: sha512-iC9VbpM8Equ8wXI2syBzov+8wys4sGYW7Xfz67LdSVbCMhsH9FRtvgbDppJQC/ZDCofg4sTAHhWpDV/KAQ385A==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/core-client@7.6.20': resolution: {integrity: sha512-upQuQQinLmlOPKcT8yqXNtwIucZ4E4qegYZXH5HXRWoLAL6GQtW7sUVSIuFogdki8OXRncr/dz8OA+5yQyYS4w==} @@ -2345,9 +2585,22 @@ packages: '@storybook/core-server@7.6.20': resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} + '@storybook/core@8.5.3': + resolution: {integrity: sha512-ZLlr2pltbj/hmC54lggJTnh09FCAJR62lIdiXNwa+V+/eJz0CfD8tfGmZGKPSmaQeZBpMwAOeRM97k2oLPF+0w==} + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} + '@storybook/csf-plugin@8.5.3': + resolution: {integrity: sha512-u5oyXTFg3KIy4h9qoNyiCG2mJF3OpkLO/AcM4lMAwQVnBvz8pwITvr4jDZByVjGmcIbgKJQnWX+BwdK2NI4yAw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2363,12 +2616,29 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + '@storybook/icons@1.3.2': + resolution: {integrity: sha512-t3xcbCKkPvqyef8urBM0j/nP6sKtnlRkVgC+8JTbTAZQjaTmOjes3byEgzs89p4B/K6cJsg9wLW2k3SknLtYJw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + + '@storybook/instrumenter@8.5.3': + resolution: {integrity: sha512-pxaTbGeju8MkwouIiaWX5DMWtpRruxqig8W3nZPOvzoSCCbQY+sLMQoyXxFlpGxLBjcvXivkL7AMVBKps5sFEQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} '@storybook/manager-api@7.6.20': resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} + '@storybook/manager-api@8.5.3': + resolution: {integrity: sha512-JtfuMgQpKIPU0ARn1jNPce8FmknpM0Ap0mppWl+KGAWWGadJPDaX/nrY/19dT1kRgIhyOnbX6tgJxII4E9dE5w==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/manager@7.6.20': resolution: {integrity: sha512-0Cf6WN0t7yEG2DR29tN5j+i7H/TH5EfPppg9h9/KiQSoFHk+6KLoy2p5do94acFU+Ro4+zzxvdCGbcYGKuArpg==} @@ -2392,6 +2662,11 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} + '@storybook/preview-api@8.5.3': + resolution: {integrity: sha512-dUsuXW+KgDg4tWXOB6dk5j5gwwRUzbPvicHAY9mzbpSVScbWXuE5T/S/9hHlbtfkhFroWQgPx2eB8z3rai+7RQ==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/preview@7.6.20': resolution: {integrity: sha512-cxYlZ5uKbCYMHoFpgleZqqGWEnqHrk5m5fT8bYSsDsdQ+X5wPcwI/V+v8dxYAdQcMphZVIlTjo6Dno9WG8qmVA==} @@ -2401,6 +2676,13 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/react-dom-shim@8.5.3': + resolution: {integrity: sha512-kNIGk6mpXW3Wy+uS9pH9b9w/54EPJnH+QXA6MX4EQgmxhMQlGlS/l/YZp+3jsVQW4YgTmqe740qB+ccJAKZxBQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} engines: {node: '>=16'} @@ -2409,6 +2691,19 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' + '@storybook/react-vite@8.5.3': + resolution: {integrity: sha512-F30u2Xf+X774wrfQzWgg7vRVJmmJFbBVGdULsAGonkdy1FUeYo7puPiD2Qg6hBYNDyIyxDXVOukkOvTlG7IBRg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + vite: '>=4.5.2' + peerDependenciesMeta: + '@storybook/test': + optional: true + '@storybook/react@7.6.20': resolution: {integrity: sha512-i5tKNgUbTNwlqBWGwPveDhh9ktlS0wGtd97A1ZgKZc3vckLizunlAFc7PRC1O/CMq5PTyxbuUb4RvRD2jWKwDA==} engines: {node: '>=16.0.0'} @@ -2420,6 +2715,21 @@ packages: typescript: optional: true + '@storybook/react@8.5.3': + resolution: {integrity: sha512-QIdBSjsnwV/J919i4Fi7DlwxDKHU815t0c4B/w2KTMtKKBkk+Bge+vgVi0/lNqD3eF4w3yjVWGbkzUQZ63yiPg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + typescript: '>= 4.2.x' + peerDependenciesMeta: + '@storybook/test': + optional: true + typescript: + optional: true + '@storybook/router@7.6.17': resolution: {integrity: sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==} @@ -2429,6 +2739,11 @@ packages: '@storybook/telemetry@7.6.20': resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} + '@storybook/test@8.5.3': + resolution: {integrity: sha512-2smoDbtU6Qh4yk0uD18qGfW6ll7lZBzKlF58Ha1CgWR4o+jpeeTQcfDLH9gG6sNrpojF7AVzMh/aN9BDHD+Chg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} deprecated: In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can. @@ -2445,6 +2760,11 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/theming@8.5.3': + resolution: {integrity: sha512-Jvzw+gT1HNarkJo21WZBq5pU89qDN8u/pD3woSh/1c2h5RS6UylWjQHotPFpcBIQiUSrDFtvCU9xugJm4MD0+w==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/types@7.6.17': resolution: {integrity: sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q==} @@ -2481,6 +2801,10 @@ packages: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} + '@testing-library/jest-dom@6.5.0': + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/react@16.2.0': resolution: {integrity: sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==} engines: {node: '>=18'} @@ -2624,6 +2948,9 @@ packages: '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} @@ -2672,6 +2999,11 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react-dom@19.0.3': + resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + peerDependencies: + '@types/react': ^19.0.0 + '@types/react-test-renderer@19.0.0': resolution: {integrity: sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==} @@ -2705,6 +3037,9 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} @@ -2717,6 +3052,142 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/eslint-plugin@8.23.0': + resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.23.0': + resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/scope-manager@8.23.0': + resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/type-utils@8.23.0': + resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/types@8.23.0': + resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.23.0': + resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/utils@8.23.0': + resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/visitor-keys@8.23.0': + resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@3.1.0': resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2738,8 +3209,11 @@ packages: '@vitest/browser': optional: true - '@vitest/expect@3.0.8': - resolution: {integrity: sha512-Xu6TTIavTvSSS6LZaA3EebWFr6tsoXPetOWNMOlc7LO88QVVBwq2oQWBoDiLCN6YTvNYsGSjqOO8CAdjom5DCQ==} + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + + '@vitest/expect@3.0.4': + resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} '@vitest/mocker@3.0.8': resolution: {integrity: sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==} @@ -2752,8 +3226,14 @@ packages: vite: optional: true - '@vitest/pretty-format@3.0.8': - resolution: {integrity: sha512-BNqwbEyitFhzYMYHUVbIvepOyeQOSFA/NeJMIP9enMntkkxLgOcgABH6fjyXG85ipTgvero6noreavGIqfJcIg==} + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + + '@vitest/pretty-format@2.1.9': + resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + + '@vitest/pretty-format@3.0.4': + resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} '@vitest/runner@3.0.8': resolution: {integrity: sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==} @@ -2761,11 +3241,20 @@ packages: '@vitest/snapshot@3.0.8': resolution: {integrity: sha512-x8IlMGSEMugakInj44nUrLSILh/zy1f2/BgH0UeHpNyOocG18M9CWVIFBaXPt8TrqVZWmcPjwfG/ht5tnpba8A==} - '@vitest/spy@3.0.8': - resolution: {integrity: sha512-MR+PzJa+22vFKYb934CejhR4BeRpMSoxkvNoDit68GQxRLSf11aT6CTj3XaqUU9rxgWJFnqicN/wxw6yBRkI1Q==} + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/utils@3.0.8': - resolution: {integrity: sha512-nkBC3aEhfX2PdtQI/QwAWp8qZWwzASsU4Npbcd5RdMPBSSLCpkZp52P3xku3s3uA0HIEhGvEcF8rNkBsz9dQ4Q==} + '@vitest/spy@3.0.4': + resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + '@vitest/utils@2.1.9': + resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + + '@vitest/utils@3.0.4': + resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3191,6 +3680,10 @@ packages: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + chalk@4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} @@ -3224,6 +3717,18 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chromatic@11.25.2: + resolution: {integrity: sha512-/9eQWn6BU1iFsop86t8Au21IksTRxwXAl7if8YHD05L2AbuMjClLWZo5cZojqrJHGKDhTqfrC2X2xE4uSm0iKw==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -3447,6 +3952,9 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -3582,6 +4090,9 @@ packages: engines: {node: '>= 4.0.0'} hasBin: true + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3601,6 +4112,9 @@ packages: dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -3763,36 +4277,188 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + eslint-config-love@43.1.0: + resolution: {integrity: sha512-r3+7mSaOl0BEGf8LEntPPDbWTDw8o0Dpy9vdts7m+NAuSpmz9C/gL+64lC0Z8nKNE4uwdymPGll4czGQiR+XmQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.4.0 + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 + typescript: '*' - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + eslint-config-standard-jsx@11.0.0: + resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} + peerDependencies: + eslint: ^8.8.0 + eslint-plugin-react: ^7.28.0 - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + eslint-config-standard@17.1.0: + resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-n@16.6.2: + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + 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 + + eslint-plugin-promise@6.6.0: + resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + engines: {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 + + eslint-plugin-react-refresh@0.4.18: + resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} + peerDependencies: + eslint: '>=8.40' + + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-storybook@0.11.2: + resolution: {integrity: sha512-0Z4DUklJrC+GHjCRXa7PYfPzWC15DaVnwaOYenpgXiCEijXPZkLKCms+rHhtoRcWccP7Z8DpOOaP1gc3P9oOwg==} + engines: {node: '>= 18'} + peerDependencies: + eslint: '>=8' + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} @@ -3878,6 +4544,10 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -4117,6 +4787,22 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4603,6 +5289,10 @@ packages: '@babel/preset-env': optional: true + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + jsdom@26.0.0: resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} engines: {node: '>=18'} @@ -4848,39 +5538,72 @@ packages: mdast-util-find-and-replace@2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-from-markdown@1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + mdast-util-gfm-footnote@1.0.2: resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-strikethrough@1.0.3: resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + mdast-util-gfm-table@1.0.7: resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + mdast-util-gfm-task-list-item@1.0.2: resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm@2.0.2: resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-phrasing@3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + mdast-util-to-string@1.1.0: resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} mdast-util-to-string@3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -4913,87 +5636,171 @@ packages: micromark-core-commonmark@1.1.0: resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + micromark-core-commonmark@2.0.2: + resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} + micromark-extension-gfm-autolink-literal@1.0.5: resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + micromark-extension-gfm-footnote@1.1.2: resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + micromark-extension-gfm-strikethrough@1.0.7: resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + micromark-extension-gfm-table@1.0.7: resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-tagfilter@1.0.2: resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-task-list-item@1.0.5: resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + micromark-extension-gfm@2.0.3: resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-factory-destination@1.1.0: resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + micromark-factory-label@1.1.0: resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-space@1.1.0: resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + micromark-factory-title@1.1.0: resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + micromark-factory-whitespace@1.1.0: resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + micromark-util-character@1.2.0: resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + micromark-util-chunked@1.1.0: resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + micromark-util-classify-character@1.1.0: resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + micromark-util-combine-extensions@1.1.0: resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-decode-numeric-character-reference@1.1.0: resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-string@1.1.0: resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-encode@1.1.0: resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + micromark-util-html-tag-name@1.2.0: resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + micromark-util-normalize-identifier@1.1.0: resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + micromark-util-resolve-all@1.1.0: resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + micromark-util-sanitize-uri@1.2.0: resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + micromark-util-subtokenize@1.1.0: resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + micromark-util-subtokenize@2.0.4: + resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==} + micromark-util-symbol@1.1.0: resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + micromark-util-types@1.1.0: resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + micromark@3.2.0: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + micromark@4.0.1: + resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -5767,6 +6574,12 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + react-confetti@6.2.2: + resolution: {integrity: sha512-K+kTyOPgX+ZujMZ+Rmb7pZdHBvg+DzinG/w4Eh52WOB8/pfO38efnnrtEZNJmjTvLxc16RBYO+tPM68Fg8viBA==} + engines: {node: '>=16'} + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 + react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -5939,9 +6752,18 @@ packages: remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-slug@6.1.0: resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6243,6 +7065,15 @@ packages: resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} hasBin: true + storybook@8.5.3: + resolution: {integrity: sha512-2WtNBZ45u1AhviRU+U+ld588tH8gDa702dNSq5C8UBaE9PlOsazGsyp90dw1s9YRvi+ejrjKAupQAU0GwwUiVg==} + hasBin: true + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -6420,6 +7251,10 @@ packages: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -6490,6 +7325,18 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -6544,6 +7391,13 @@ packages: resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} + tween-functions@1.2.0: + resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -6583,6 +7437,13 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.23.0: + resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -6626,6 +7487,9 @@ packages: unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6644,21 +7508,33 @@ packages: unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-visit-parents@3.1.1: resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit@2.0.3: resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} @@ -6758,11 +7634,17 @@ packages: vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-node@3.0.8: - resolution: {integrity: sha512-6PhR4H9VGlcwXZ+KWCdMqbtG649xCPZqfI9j2PsK1FcXgEzro5bGHcVKFCTqPLaNKZES8Evqv4LwvZARsq5qlg==} + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-node@3.0.4: + resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -6814,8 +7696,48 @@ packages: yaml: optional: true - vitest@3.0.8: - resolution: {integrity: sha512-dfqAsNqRGUc8hB9OVR2P0w8PZPEckti2+5rdZip0WIz9WW0MnImJ8XiR61QhqLa92EQzKP2uPkzenKOAHyEIbA==} + vite@6.1.0: + resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@3.0.4: + resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7056,7 +7978,9 @@ packages: snapshots: - '@adyen/adyen-web@6.9.0': + '@adobe/css-tools@4.4.1': {} + + '@adyen/adyen-web@6.8.0': dependencies: '@types/applepayjs': 14.0.8 '@types/googlepay': 0.7.6 @@ -7860,12 +8784,60 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 + '@chromatic-com/storybook@3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + chromatic: 11.25.2 + filesize: 10.1.6 + jsonfile: 6.1.0 + react-confetti: 6.2.2(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + strip-ansi: 7.1.0 + transitivePeerDependencies: + - '@chromatic-com/cypress' + - '@chromatic-com/playwright' + - react + '@colors/colors@1.5.0': optional: true - '@commercelayer/js-auth@6.7.1': {} + '@commercelayer/eslint-config-ts-react@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2)': + dependencies: + '@commercelayer/eslint-config-ts': 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0) + eslint-plugin-react: 7.37.2(eslint@9.19.0) + react: 18.3.1 + typescript: 5.7.2 + transitivePeerDependencies: + - '@types/eslint' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color - '@commercelayer/organization-config@2.2.0': + '@commercelayer/eslint-config-ts@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-config-love: 43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2) + eslint-config-prettier: 9.1.0(eslint@9.19.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) + eslint-plugin-n: 16.6.2(eslint@9.19.0) + eslint-plugin-prettier: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2) + eslint-plugin-promise: 6.6.0(eslint@9.19.0) + prettier: 3.4.2 + typescript: 5.7.2 + transitivePeerDependencies: + - '@types/eslint' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + '@commercelayer/js-auth@6.7.0': {} + + '@commercelayer/organization-config@2.0.0': dependencies: merge-anything: 5.1.7 @@ -7910,7 +8882,14 @@ snapshots: dependencies: react: 18.3.1 - '@esbuild/aix-ppc64@0.25.1': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': + dependencies: + react: 19.0.0 + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.24.2': optional: true '@esbuild/android-arm64@0.18.20': @@ -8051,7 +9030,52 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@faker-js/faker@9.6.0': {} + '@esbuild/win32-x64@0.24.2': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)': + dependencies: + eslint: 9.19.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.1': + dependencies: + '@eslint/object-schema': 2.1.5 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.2.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.19.0': {} + + '@eslint/object-schema@2.1.5': {} + + '@eslint/plugin-kit@0.2.5': + dependencies: + '@eslint/core': 0.10.0 + levn: 0.4.1 + + '@faker-js/faker@9.4.0': {} '@fal-works/esbuild-plugin-global-externals@2.1.2': {} @@ -8070,7 +9094,26 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.9': {} + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/dom': 1.6.12 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@floating-ui/utils@0.2.8': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} '@hutson/parse-repository-url@3.0.2': {} @@ -8172,6 +9215,14 @@ snapshots: optionalDependencies: typescript: 5.8.2 + '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + magic-string: 0.27.0 + react-docgen-typescript: 2.2.2(typescript@5.7.3) + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + optionalDependencies: + typescript: 5.7.3 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -8281,16 +9332,28 @@ snapshots: '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.0.8 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': + '@mdx-js/react@2.3.0(react@19.0.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.0.8 + react: 19.0.0 + + '@mdx-js/react@3.1.0(@types/react@18.3.17)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 18.3.18 react: 18.3.1 - '@mswjs/interceptors@0.37.6': + '@mdx-js/react@3.1.0(@types/react@19.0.8)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.0.8 + react: 18.3.1 + + '@mswjs/interceptors@0.37.3': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -8592,37 +9655,75 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-collection@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-collection@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8631,50 +9732,104 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-context@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-direction@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-direction@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-direction@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8683,16 +9838,36 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-scope@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8702,109 +9877,235 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-id@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-popper@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.17)(react@18.3.1) '@radix-ui/rect': 1.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/rect': 1.0.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-portal@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-primitive@2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-roving-focus@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-select@1.2.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-separator@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.5.5(@types/react@19.0.8)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8814,50 +10115,109 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-slot@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-toggle-group@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-toggle@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-toolbar@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8866,13 +10226,26 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8880,14 +10253,29 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8895,27 +10283,55 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-previous@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/rect': 1.0.1 @@ -8923,7 +10339,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-rect@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/rect': 1.0.1 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8931,14 +10355,33 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-visually-hidden@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-use-size@1.0.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/rect@1.0.1': dependencies: @@ -9057,15 +10500,31 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 + '@storybook/addon-actions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@types/uuid': 9.0.8 + dequal: 2.0.3 + polished: 4.3.1 + storybook: 8.5.3(prettier@3.4.2) + uuid: 9.0.1 + '@storybook/addon-backgrounds@7.6.20': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-backgrounds@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + + '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -9076,13 +10535,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-docs@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + dequal: 2.0.3 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -9105,12 +10571,54 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@jest/transform': 29.7.0 + '@mdx-js/react': 2.3.0(react@19.0.0) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/csf-plugin': 7.6.20 + '@storybook/csf-tools': 7.6.20 + '@storybook/global': 5.0.0 + '@storybook/mdx2-csf': 1.1.0 + '@storybook/node-logger': 7.6.20 + '@storybook/postinstall': 7.6.20 + '@storybook/preview-api': 7.6.20 + '@storybook/react-dom-shim': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + fs-extra: 11.2.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + remark-external-links: 8.0.0 + remark-slug: 6.1.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/addon-docs@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@18.3.1) + '@storybook/blocks': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -9129,10 +10637,31 @@ snapshots: - encoding - supports-color + '@storybook/addon-essentials@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/addon-actions': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-backgrounds': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-controls': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-docs': 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-highlight': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-measure': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-outline': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-toolbars': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-viewport': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + '@storybook/addon-highlight@7.6.20': dependencies: '@storybook/global': 5.0.0 + '@storybook/addon-highlight@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-interactions@7.6.20': dependencies: '@storybook/global': 5.0.0 @@ -9141,6 +10670,15 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 + '@storybook/addon-interactions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + polished: 4.3.1 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + '@storybook/addon-links@7.6.20(react@18.3.1)': dependencies: '@storybook/csf': 0.1.13 @@ -9149,6 +10687,14 @@ snapshots: optionalDependencies: react: 18.3.1 + '@storybook/addon-links@7.6.20(react@19.0.0)': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + ts-dedent: 2.2.0 + optionalDependencies: + react: 19.0.0 + '@storybook/addon-mdx-gfm@7.6.20': dependencies: '@storybook/node-logger': 7.6.20 @@ -9157,22 +10703,55 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/addon-mdx-gfm@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + remark-gfm: 4.0.0 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + '@storybook/addon-measure@7.6.20': dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 + '@storybook/addon-measure@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + tiny-invariant: 1.3.3 + + '@storybook/addon-onboarding@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 + '@storybook/addon-outline@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + '@storybook/addon-toolbars@7.6.20': {} + '@storybook/addon-toolbars@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 + '@storybook/addon-viewport@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + memoizerific: 1.11.3 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/manager-api': 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -9190,11 +10769,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -9223,6 +10802,59 @@ snapshots: - encoding - supports-color + '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.12 + '@storybook/docs-tools': 7.6.20(encoding@0.1.13) + '@storybook/global': 5.0.0 + '@storybook/manager-api': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/preview-api': 7.6.20 + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + '@types/lodash': 4.17.14 + color-convert: 2.0.1 + dequal: 2.0.3 + lodash: 4.17.21 + markdown-to-jsx: 7.7.2(react@19.0.0) + memoizerific: 1.11.3 + polished: 4.3.1 + react: 19.0.0 + react-colorful: 5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-dom: 19.0.0(react@19.0.0) + telejson: 7.2.0 + tocbot: 4.32.2 + ts-dedent: 2.2.0 + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/blocks@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/icons': 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@storybook/blocks@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/icons': 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + optionalDependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + '@storybook/builder-manager@7.6.20(encoding@0.1.13)': dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 @@ -9270,6 +10902,14 @@ snapshots: - encoding - supports-color + '@storybook/builder-vite@8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + browser-assert: 1.2.1 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + '@storybook/channels@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -9368,10 +11008,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/components@7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 @@ -9386,6 +11026,28 @@ snapshots: - '@types/react' - '@types/react-dom' + '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + memoizerific: 1.11.3 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + use-resize-observer: 9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + '@storybook/components@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/core-client@7.6.20': dependencies: '@storybook/client-logger': 7.6.20 @@ -9476,6 +11138,26 @@ snapshots: - supports-color - utf-8-validate + '@storybook/core@8.5.3(prettier@3.4.2)': + dependencies: + '@storybook/csf': 0.1.12 + better-opn: 3.0.2 + browser-assert: 1.2.1 + esbuild: 0.24.2 + esbuild-register: 3.6.0(esbuild@0.24.2) + jsdoc-type-pratt-parser: 4.1.0 + process: 0.11.10 + recast: 0.23.9 + semver: 7.6.3 + util: 0.12.5 + ws: 8.18.0 + optionalDependencies: + prettier: 3.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@storybook/csf-plugin@7.6.20': dependencies: '@storybook/csf-tools': 7.6.20 @@ -9483,6 +11165,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/csf-plugin@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + unplugin: 1.16.0 + '@storybook/csf-tools@7.6.20': dependencies: '@babel/generator': 7.26.10 @@ -9518,6 +11205,22 @@ snapshots: '@storybook/global@5.0.0': {} + '@storybook/icons@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@storybook/instrumenter@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@vitest/utils': 2.1.9 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.17 @@ -9558,6 +11261,30 @@ snapshots: - react - react-dom + '@storybook/manager-api@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + '@storybook/router': 7.6.20 + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + dequal: 2.0.3 + lodash: 4.17.21 + memoizerific: 1.11.3 + store2: 2.14.3 + telejson: 7.2.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - react + - react-dom + + '@storybook/manager-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/manager@7.6.20': {} '@storybook/mdx2-csf@1.1.0': {} @@ -9604,6 +11331,10 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 + '@storybook/preview-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/preview@7.6.20': {} '@storybook/react-dom-shim@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -9611,7 +11342,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-dom-shim@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@storybook/react-dom-shim@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 8.5.3(prettier@3.4.2) + + '@storybook/react-dom-shim@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.32.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) @@ -9629,9 +11377,31 @@ snapshots: - rollup - supports-color - typescript - - vite-plugin-glimmerx + - vite-plugin-glimmerx + + '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + '@storybook/builder-vite': 8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@storybook/react': 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + find-up: 5.0.0 + magic-string: 0.30.17 + react: 19.0.0 + react-docgen: 7.1.0 + react-dom: 19.0.0(react@19.0.0) + resolve: 1.22.9 + storybook: 8.5.3(prettier@3.4.2) + tsconfig-paths: 4.2.0 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + optionalDependencies: + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + transitivePeerDependencies: + - rollup + - supports-color + - typescript - '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2)': + '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)': dependencies: '@storybook/client-logger': 7.6.20 '@storybook/core-client': 7.6.20 @@ -9662,6 +11432,21 @@ snapshots: - encoding - supports-color + '@storybook/react@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)': + dependencies: + '@storybook/components': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/global': 5.0.0 + '@storybook/manager-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/preview-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/theming': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + optionalDependencies: + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + typescript: 5.7.3 + '@storybook/router@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -9688,6 +11473,18 @@ snapshots: - encoding - supports-color + '@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@testing-library/dom': 10.4.0 + '@testing-library/jest-dom': 6.5.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/expect': 2.0.5 + '@vitest/spy': 2.0.5 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/testing-library@0.2.2': dependencies: '@testing-library/dom': 9.3.4 @@ -9712,6 +11509,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@storybook/theming@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@storybook/theming@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/types@7.6.17': dependencies: '@storybook/channels': 7.6.17 @@ -9765,7 +11575,17 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/jest-dom@6.5.0': + dependencies: + '@adobe/css-tools': 4.4.1 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 @@ -9773,6 +11593,11 @@ snapshots: react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': + dependencies: + '@testing-library/dom': 10.4.0 '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: @@ -9915,6 +11740,10 @@ snapshots: dependencies: '@types/unist': 2.0.11 + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/mdx@2.0.13': {} '@types/mime-types@2.1.4': {} @@ -9954,6 +11783,15 @@ snapshots: '@types/range-parser@1.2.7': {} + '@types/react-dom@19.0.3(@types/react@18.3.17)': + dependencies: + '@types/react': 18.3.17 + optional: true + + '@types/react-dom@19.0.3(@types/react@19.0.8)': + dependencies: + '@types/react': 19.0.8 + '@types/react-test-renderer@19.0.0': dependencies: '@types/react': 19.0.8 @@ -9992,6 +11830,8 @@ snapshots: '@types/unist@2.0.11': {} + '@types/unist@3.0.3': {} + '@types/uuid@9.0.8': {} '@types/yargs-parser@21.0.3': {} @@ -10004,11 +11844,209 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2)': dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 9.19.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.23.0 + eslint: 9.19.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0 + eslint: 9.19.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + eslint: 9.19.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.4.0 + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/scope-manager@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/scope-manager@8.23.0': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + debug: 4.4.0 + eslint: 9.19.0 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.19.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/types@8.23.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.4.0 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + eslint: 9.19.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.23.0': + dependencies: + '@typescript-eslint/types': 8.23.0 + eslint-visitor-keys: 4.2.0 + + '@vitejs/plugin-react@3.1.0(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) magic-string: 0.27.0 react-refresh: 0.14.2 vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) @@ -10026,7 +12064,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.8(vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + + '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -10044,7 +12104,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/expect@3.0.8': + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.2 + tinyrainbow: 1.2.0 + + '@vitest/expect@3.0.4': dependencies: '@vitest/spy': 3.0.8 '@vitest/utils': 3.0.8 @@ -10060,7 +12127,15 @@ snapshots: msw: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - '@vitest/pretty-format@3.0.8': + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.9': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@3.0.4': dependencies: tinyrainbow: 2.0.0 @@ -10075,11 +12150,28 @@ snapshots: magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.0.8': + '@vitest/spy@2.0.5': + dependencies: + tinyspy: 3.0.2 + + '@vitest/spy@3.0.4': dependencies: tinyspy: 3.0.2 - '@vitest/utils@3.0.8': + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + + '@vitest/utils@2.1.9': + dependencies: + '@vitest/pretty-format': 2.1.9 + loupe: 3.1.2 + tinyrainbow: 1.2.0 + + '@vitest/utils@3.0.4': dependencies: '@vitest/pretty-format': 3.0.8 loupe: 3.1.3 @@ -10565,6 +12657,11 @@ snapshots: loupe: 3.1.3 pathval: 2.0.0 + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.0: dependencies: ansi-styles: 4.3.0 @@ -10601,6 +12698,8 @@ snapshots: chownr@2.0.0: {} + chromatic@11.25.2: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -10822,6 +12921,8 @@ snapshots: crypto-random-string@2.0.0: {} + css.escape@1.5.1: {} + cssesc@3.0.0: {} cssstyle@4.3.0: @@ -10949,6 +13050,10 @@ snapshots: transitivePeerDependencies: - supports-color + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + diff-sequences@29.6.3: {} diff@5.2.0: {} @@ -10963,6 +13068,8 @@ snapshots: dom-accessibility-api@0.5.16: {} + dom-accessibility-api@0.6.3: {} + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -11087,6 +13194,13 @@ snapshots: transitivePeerDependencies: - supports-color + esbuild-register@3.6.0(esbuild@0.24.2): + dependencies: + debug: 4.4.0 + esbuild: 0.24.2 + transitivePeerDependencies: + - supports-color + esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 @@ -11148,18 +13262,229 @@ snapshots: escape-string-regexp@5.0.0: {} - escodegen@2.1.0: + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-compat-utils@0.5.1(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + semver: 7.6.3 + + eslint-config-love@43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2): + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/parser': 6.21.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) + eslint-plugin-n: 16.6.2(eslint@9.19.0) + eslint-plugin-promise: 6.6.0(eslint@9.19.0) + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + eslint-config-prettier@9.1.0(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + eslint-plugin-react: 7.37.2(eslint@9.19.0) + + eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) + eslint-plugin-n: 16.6.2(eslint@9.19.0) + eslint-plugin-promise: 6.6.0(eslint@9.19.0) + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.0 + resolve: 1.22.9 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + eslint: 9.19.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + + eslint-plugin-es-x@7.8.0(eslint@9.19.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.19.0 + eslint-compat-utils: 0.5.1(eslint@9.19.0) + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.19.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0) + hasown: 2.0.2 + is-core-module: 2.16.0 + 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.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-n@16.6.2(eslint@9.19.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + builtins: 5.1.0 + eslint: 9.19.0 + eslint-plugin-es-x: 7.8.0(eslint@9.19.0) + get-tsconfig: 4.8.1 + globals: 13.24.0 + ignore: 5.3.2 + is-builtin-module: 3.2.1 + is-core-module: 2.16.0 + minimatch: 3.1.2 + resolve: 1.22.9 + semver: 7.6.3 + + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2): + dependencies: + eslint: 9.19.0 + prettier: 3.4.2 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.2 + optionalDependencies: + '@types/eslint': 9.6.1 + eslint-config-prettier: 9.1.0(eslint@9.19.0) + + eslint-plugin-promise@6.6.0(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-plugin-react-hooks@5.1.0(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-plugin-react-refresh@0.4.18(eslint@9.19.0): + dependencies: + eslint: 9.19.0 + + eslint-plugin-react@7.37.2(eslint@9.19.0): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.0 + eslint: 9.19.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + 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 + + eslint-plugin-storybook@0.11.2(eslint@9.19.0)(typescript@5.7.3): + dependencies: + '@storybook/csf': 0.1.12 + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.19.0: dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.10.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + 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.4 + transitivePeerDependencies: + - supports-color - eslint-scope@5.1.1: + espree@10.3.0: dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -11311,6 +13636,8 @@ snapshots: dependencies: minimatch: 5.1.6 + filesize@10.1.6: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -11582,6 +13909,8 @@ snapshots: globals@14.0.0: {} + globals@15.14.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -12098,6 +14427,8 @@ snapshots: transitivePeerDependencies: - supports-color + jsdoc-type-pratt-parser@4.1.0: {} + jsdom@26.0.0: dependencies: cssstyle: 4.3.0 @@ -12426,7 +14757,11 @@ snapshots: dependencies: react: 18.3.1 - math-intrinsics@1.1.0: {} + markdown-to-jsx@7.7.2(react@19.0.0): + dependencies: + react: 19.0.0 + + math-intrinsics@1.0.0: {} mdast-util-definitions@4.0.0: dependencies: @@ -12439,6 +14774,13 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + mdast-util-from-markdown@1.3.1: dependencies: '@types/mdast': 3.0.15 @@ -12456,6 +14798,23 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-autolink-literal@1.0.3: dependencies: '@types/mdast': 3.0.15 @@ -12463,17 +14822,43 @@ snapshots: mdast-util-find-and-replace: 2.2.2 micromark-util-character: 1.2.0 + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + mdast-util-gfm-footnote@1.0.2: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 micromark-util-normalize-identifier: 1.1.0 + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-strikethrough@1.0.3: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-table@1.0.7: dependencies: '@types/mdast': 3.0.15 @@ -12483,11 +14868,30 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-task-list-item@1.0.2: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm@2.0.2: dependencies: mdast-util-from-markdown: 1.3.1 @@ -12500,11 +14904,28 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-phrasing@3.0.1: dependencies: '@types/mdast': 3.0.15 unist-util-is: 5.2.1 + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + mdast-util-to-markdown@1.5.0: dependencies: '@types/mdast': 3.0.15 @@ -12516,12 +14937,28 @@ snapshots: unist-util-visit: 4.1.2 zwitch: 2.0.4 + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + mdast-util-to-string@1.1.0: {} mdast-util-to-string@3.2.0: dependencies: '@types/mdast': 3.0.15 + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + media-typer@0.3.0: {} memoizerific@1.11.3: @@ -12573,6 +15010,25 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-core-commonmark@2.0.2: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-autolink-literal@1.0.5: dependencies: micromark-util-character: 1.2.0 @@ -12580,6 +15036,13 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-footnote@1.1.2: dependencies: micromark-core-commonmark: 1.1.0 @@ -12591,6 +15054,17 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-strikethrough@1.0.7: dependencies: micromark-util-chunked: 1.1.0 @@ -12600,6 +15074,15 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-table@1.0.7: dependencies: micromark-factory-space: 1.1.0 @@ -12608,10 +15091,22 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-tagfilter@1.0.2: dependencies: micromark-util-types: 1.1.0 + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.1 + micromark-extension-gfm-task-list-item@1.0.5: dependencies: micromark-factory-space: 1.1.0 @@ -12620,6 +15115,14 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm@2.0.3: dependencies: micromark-extension-gfm-autolink-literal: 1.0.5 @@ -12631,12 +15134,29 @@ snapshots: micromark-util-combine-extensions: 1.1.0 micromark-util-types: 1.1.0 + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-destination@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-label@1.1.0: dependencies: micromark-util-character: 1.2.0 @@ -12644,11 +15164,23 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-space@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.1 + micromark-factory-title@1.1.0: dependencies: micromark-factory-space: 1.1.0 @@ -12656,6 +15188,13 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-whitespace@1.1.0: dependencies: micromark-factory-space: 1.1.0 @@ -12663,30 +15202,61 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-character@1.2.0: dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-chunked@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-classify-character@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-combine-extensions@1.1.0: dependencies: micromark-util-chunked: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-decode-numeric-character-reference@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-decode-string@1.1.0: dependencies: decode-named-character-reference: 1.1.0 @@ -12694,24 +15264,49 @@ snapshots: micromark-util-decode-numeric-character-reference: 1.1.0 micromark-util-symbol: 1.1.0 + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + micromark-util-encode@1.1.0: {} + micromark-util-encode@2.0.1: {} + micromark-util-html-tag-name@1.2.0: {} + micromark-util-html-tag-name@2.0.1: {} + micromark-util-normalize-identifier@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-resolve-all@1.1.0: dependencies: micromark-util-types: 1.1.0 + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.1 + micromark-util-sanitize-uri@1.2.0: dependencies: micromark-util-character: 1.2.0 micromark-util-encode: 1.1.0 micromark-util-symbol: 1.1.0 + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-subtokenize@1.1.0: dependencies: micromark-util-chunked: 1.1.0 @@ -12719,10 +15314,21 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-util-subtokenize@2.0.4: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-symbol@1.1.0: {} + micromark-util-symbol@2.0.1: {} + micromark-util-types@1.1.0: {} + micromark-util-types@2.0.1: {} + micromark@3.2.0: dependencies: '@types/debug': 4.1.12 @@ -12745,6 +15351,28 @@ snapshots: transitivePeerDependencies: - supports-color + micromark@4.0.1: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -13556,11 +16184,25 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-docgen-typescript@2.2.2(typescript@5.8.2): + react-colorful@5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + react-confetti@6.2.2(react@19.0.0): + dependencies: + react: 19.0.0 + tween-functions: 1.2.0 + + react-docgen-typescript@2.2.2(typescript@5.7.2): dependencies: typescript: 5.8.2 - react-docgen@7.1.1: + react-docgen-typescript@2.2.2(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 '@babel/traverse': 7.26.10 @@ -13614,7 +16256,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + + react-remove-scroll@2.5.5(@types/react@18.3.17)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) @@ -13625,6 +16275,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + react-remove-scroll@2.5.5(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.0.8)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.0.8)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): dependencies: get-nonce: 1.0.1 @@ -13633,6 +16294,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + react-style-singleton@2.2.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + get-nonce: 1.0.1 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + react-test-renderer@19.0.0(react@19.0.0): dependencies: react: 19.0.0 @@ -13768,12 +16437,38 @@ snapshots: transitivePeerDependencies: - supports-color + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.1 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + remark-slug@6.1.0: dependencies: github-slugger: 1.5.0 mdast-util-to-string: 1.1.0 unist-util-visit: 2.0.3 + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -14117,6 +16812,16 @@ snapshots: - supports-color - utf-8-validate + storybook@8.5.3(prettier@3.4.2): + dependencies: + '@storybook/core': 8.5.3(prettier@3.4.2) + optionalDependencies: + prettier: 3.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + stream-shift@1.0.3: {} strict-event-emitter@0.5.1: {} @@ -14301,6 +17006,8 @@ snapshots: tinypool@1.0.2: {} + tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} tinyspy@3.0.2: {} @@ -14356,6 +17063,14 @@ snapshots: trough@2.2.0: {} + ts-api-utils@1.4.3(typescript@5.7.2): + dependencies: + typescript: 5.7.2 + + ts-api-utils@2.0.1(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} @@ -14418,6 +17133,12 @@ snapshots: transitivePeerDependencies: - supports-color + tween-functions@1.2.0: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + type-fest@0.16.0: {} type-fest@0.18.1: {} @@ -14441,6 +17162,16 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.23.0(eslint@9.19.0)(typescript@5.7.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + typescript@4.9.5: {} typescript@5.8.2: {} @@ -14475,6 +17206,16 @@ snapshots: trough: 2.2.0 vfile: 5.3.7 + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 @@ -14493,10 +17234,18 @@ snapshots: dependencies: '@types/unist': 2.0.11 + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position@3.0.3: dependencies: '@types/unist': 2.0.11 + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit-parents@3.1.1: dependencies: '@types/unist': 2.0.11 @@ -14507,6 +17256,11 @@ snapshots: '@types/unist': 2.0.11 unist-util-is: 5.2.1 + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit@2.0.3: dependencies: '@types/unist': 2.0.11 @@ -14519,6 +17273,12 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + universal-user-agent@6.0.1: {} universalify@0.2.0: {} @@ -14554,13 +17314,26 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + use-callback-ref@1.3.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@juggle/resize-observer': 3.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + use-resize-observer@9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@juggle/resize-observer': 3.4.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + use-sidecar@1.1.3(@types/react@18.3.17)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 @@ -14568,6 +17341,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + use-sidecar@1.1.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + util-deprecate@1.0.2: {} util@0.12.5: @@ -14605,6 +17386,11 @@ snapshots: '@types/unist': 2.0.11 unist-util-stringify-position: 3.0.3 + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + vfile@5.3.7: dependencies: '@types/unist': 2.0.11 @@ -14612,13 +17398,18 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-node@3.0.8(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0): + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vite-node@3.0.4(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 - pathe: 2.0.3 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + pathe: 2.0.2 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' - jiti @@ -14650,21 +17441,65 @@ snapshots: postcss: 8.5.3 rollup: 4.35.0 optionalDependencies: - '@types/node': 22.13.10 + vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + - typescript + + vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)): + dependencies: + debug: 4.4.0 + globrex: 0.1.2 + tsconfck: 3.1.4(typescript@5.7.3) + optionalDependencies: + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + - typescript + + vite@5.4.11(@types/node@22.12.0)(terser@5.37.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.28.1 + optionalDependencies: + '@types/node': 22.12.0 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): dependencies: - '@vitest/expect': 3.0.8 - '@vitest/mocker': 3.0.8(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.0.8 - '@vitest/runner': 3.0.8 - '@vitest/snapshot': 3.0.8 - '@vitest/spy': 3.0.8 - '@vitest/utils': 3.0.8 - chai: 5.2.0 + esbuild: 0.24.2 + postcss: 8.5.1 + rollup: 4.32.0 + optionalDependencies: + '@types/node': 22.12.0 + fsevents: 2.3.3 + terser: 5.37.0 + yaml: 2.6.1 + + vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): + dependencies: + esbuild: 0.24.2 + postcss: 8.5.1 + rollup: 4.32.0 + optionalDependencies: + '@types/node': 22.12.0 + fsevents: 2.3.3 + terser: 5.37.0 + yaml: 2.6.1 + + vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1): + dependencies: + '@vitest/expect': 3.0.4 + '@vitest/mocker': 3.0.4(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@vitest/pretty-format': 3.0.4 + '@vitest/runner': 3.0.4 + '@vitest/snapshot': 3.0.4 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 debug: 4.4.0 expect-type: 1.2.0 magic-string: 0.30.17 From 066d1802cb12db4921f6c37cf588adffa21c34d2 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 27 Mar 2025 10:44:47 +0100 Subject: [PATCH 005/165] Add new getAccessToken function. Resolve #617 --- package.json | 6 +- packages/core/package.json | 23 +- packages/core/src/auth/getAccessToken.spec.ts | 4 +- packages/core/tsconfig.json | 47 +- packages/core/tsup.config.ts | 15 +- pnpm-lock.yaml | 3241 +++++++---------- 6 files changed, 1308 insertions(+), 2028 deletions(-) diff --git a/package.json b/package.json index 5d0a5daa..464095d3 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "husky": "^9.1.7", - "lerna": "^8.1.9", - "typescript": "^5.7.3", - "vitest": "^3.0.4" + "lerna": "^8.2.1", + "typescript": "^5.8.2", + "vitest": "^3.0.9" }, "pnpm": { "overrides": { diff --git a/packages/core/package.json b/packages/core/package.json index 3b516ef5..09d3e787 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,20 +5,22 @@ "type": "module", "main": "./dist/index.js", "exports": { + "./package.json": "./package.json", ".": { "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" + "default": "./dist/index.cjs" } }, "keywords": ["jamstack", "headless", "ecommerce", "api", "components"], "scripts": { - "lint": "biome lint --error-on-warnings ./src", + "check-exports": "attw --pack .", + "lint": "biome lint --error-on-warnings ./src && tsc", "lint:fix": "pnpm biome lint --write ./src", "test": "pnpm run lint && vitest --silent", "test:watch": "vitest", "coverage": "vitest run --coverage", - "build": "tsup" + "build": "tsup", + "ci": "pnpm build && pnpm check-exports && pnpm lint" }, "publishConfig": { "access": "public" @@ -29,15 +31,16 @@ }, "license": "MIT", "devDependencies": { - "@vitest/coverage-v8": "^3.0.4", - "tsup": "^8.3.6", - "typescript": "^5.7.3", + "@arethetypeswrong/cli": "^0.17.4", + "@vitest/coverage-v8": "^3.0.9", + "tsup": "^8.4.0", + "typescript": "^5.8.2", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.4" + "vitest": "^3.0.9" }, "dependencies": { - "@commercelayer/js-auth": "^6.7.0", - "@commercelayer/sdk": "6.29.2", + "@commercelayer/js-auth": "^6.7.1", + "@commercelayer/sdk": "6.36.0", "jwt-decode": "^4.0.0" } } diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index ff92d323..a57d0a39 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,7 +1,7 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { coreTest } from "../../extender.js" -import { getAccessToken } from "./getAccessToken.js" +import { coreTest } from "../../extender" +import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ authenticate: vi.fn(), diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index c920654c..9c1f4f07 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,27 +1,30 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - /* Module Resolution Options */ - "module": "Node16", - "target": "ES2022", - "moduleResolution": "Node16", - "verbatimModuleSyntax": true, - /* Other Options */ + /* Base Options: */ + "esModuleInterop": true, + "skipLibCheck": true, + "target": "es2022", + "allowJs": true, "resolveJsonModule": true, - "declaration": true /* Generates corresponding '.d.ts' file. */, - "strict": true /* Enable all strict type-checking options. */, - "noUnusedLocals": true /* Report errors on unused locals. */, - "noUnusedParameters": true /* Report errors on unused parameters. */, - "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, - "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, - "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, - "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, - "types": ["vitest/globals"], - "baseUrl": "." /* Base directory to resolve non-absolute module names. */, - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "moduleDetection": "force", + "isolatedModules": true, + "verbatimModuleSyntax": true, + "lib": ["es2022"], + + /* Strictness */ + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + + /* If transpiling with TypeScript: */ + "module": "Preserve", + + /* Relative Paths */ + "baseUrl": ".", + "paths": { + "#sdk": ["src/sdk/index.ts"], + "#types": ["src/types/index.ts"] + } }, - "include": ["**/*.ts", ".eslintrc.cjs", "src/hooks/useAuthenticate.tsx"], - "exclude": ["node_modules"] + "exclude": ["node_modules", "dist", "coverage", "*.spec.ts"] } diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 486ecc49..39f89612 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -3,13 +3,10 @@ import { defineConfig } from "tsup" const env = process.env.NODE_ENV export default defineConfig((options) => ({ - sourcemap: true, // source map is only available in prod - clean: true, // clean dist before build - dts: true, // generate dts file for main module - format: ["cjs", "esm"], // generate cjs and esm files - minify: !options.watch, - bundle: true, - watch: env === "development", - target: "es2020", - entry: ["src/index.ts"], + entryPoints: ["src/index.ts"], + format: ["cjs", "esm"], + dts: true, + outDir: "dist", + clean: true, + treeshake: true, })) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01f5a02b..0d4206b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,39 +35,42 @@ importers: specifier: ^8.2.1 version: 8.2.1(encoding@0.1.13) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) + specifier: ^3.0.9 + version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) packages/core: dependencies: '@commercelayer/js-auth': - specifier: ^6.7.0 - version: 6.7.0 + specifier: ^6.7.1 + version: 6.7.1 '@commercelayer/sdk': - specifier: 6.29.2 - version: 6.29.2 + specifier: 6.36.0 + version: 6.36.0 jwt-decode: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@arethetypeswrong/cli': + specifier: ^0.17.4 + version: 0.17.4 '@vitest/coverage-v8': - specifier: ^3.0.4 - version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1)) + specifier: ^3.0.9 + version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) tsup: - specifier: ^8.3.6 - version: 8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1) + specifier: ^8.4.0 + version: 8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) + specifier: ^3.0.9 + version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) packages/docs: devDependencies: @@ -75,11 +78,8 @@ importers: specifier: ^7.26.9 version: 7.26.10 '@babel/preset-env': - specifier: ^7.26.0 - version: 7.26.0(@babel/core@7.26.0) - '@commercelayer/eslint-config-ts-react': - specifier: ^1.3.0 - version: 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2) + specifier: ^7.26.9 + version: 7.26.9(@babel/core@7.26.10) '@commercelayer/js-auth': specifier: ^6.7.1 version: 6.7.1 @@ -97,10 +97,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -124,7 +124,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -142,7 +142,7 @@ importers: version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) '@storybook/react-vite': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -157,7 +157,7 @@ importers: version: 18.3.18 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) babel-loader: specifier: ^9.2.1 version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)) @@ -169,7 +169,7 @@ importers: version: 4.0.0 msw: specifier: ^2.7.0 - version: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) + version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -190,10 +190,10 @@ importers: version: 5.8.2 vite: specifier: ^6.1.0 - version: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + version: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/document: dependencies: @@ -205,119 +205,119 @@ importers: version: 19.0.0(react@19.0.0) devDependencies: '@chromatic-com/storybook': - specifier: ^3.2.4 - version: 3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^3.2.6 + version: 3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@eslint/js': - specifier: ^9.19.0 - version: 9.19.0 + specifier: ^9.23.0 + version: 9.23.0 '@storybook/addon-docs': - specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^8.6.10 + version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-essentials': - specifier: ^8.5.3 - version: 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-interactions': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-links': - specifier: ^7.6.17 - version: 7.6.20(react@19.0.0) + specifier: ^8.6.10 + version: 8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-mdx-gfm': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-onboarding': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/blocks': - specifier: ^8.5.3 - version: 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@storybook/react': - specifier: ^8.5.3 - version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + specifier: ^8.6.10 + version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) '@storybook/react-vite': - specifier: ^8.5.3 - version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + specifier: ^8.6.10 + version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/test': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/theming': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^19.0.12 + version: 19.0.12 '@types/react-dom': - specifier: ^19.0.3 - version: 19.0.3(@types/react@19.0.8) + specifier: ^19.0.4 + version: 19.0.4(@types/react@19.0.12) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) eslint: - specifier: ^9.19.0 - version: 9.19.0 + specifier: ^9.23.0 + version: 9.23.0 eslint-plugin-react-hooks: - specifier: ^5.0.0 - version: 5.1.0(eslint@9.19.0) + specifier: ^5.2.0 + version: 5.2.0(eslint@9.23.0) eslint-plugin-react-refresh: - specifier: ^0.4.18 - version: 0.4.18(eslint@9.19.0) + specifier: ^0.4.19 + version: 0.4.19(eslint@9.23.0) eslint-plugin-storybook: - specifier: ^0.11.2 - version: 0.11.2(eslint@9.19.0)(typescript@5.7.3) + specifier: ^0.12.0 + version: 0.12.0(eslint@9.23.0)(typescript@5.8.2) globals: - specifier: ^15.14.0 - version: 15.14.0 + specifier: ^16.0.0 + version: 16.0.0 msw: - specifier: ^2.7.0 - version: 2.7.0(@types/node@22.12.0)(typescript@5.7.3) + specifier: ^2.7.3 + version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) remark-gfm: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.0.1 + version: 4.0.1 storybook: - specifier: ^8.5.3 - version: 8.5.3(prettier@3.4.2) + specifier: ^8.6.10 + version: 8.6.10(prettier@2.8.8) typescript: - specifier: ~5.7.2 - version: 5.7.3 + specifier: ~5.8.2 + version: 5.8.2 typescript-eslint: - specifier: ^8.22.0 - version: 8.23.0(eslint@9.19.0)(typescript@5.7.3) + specifier: ^8.28.0 + version: 8.28.0(eslint@9.23.0)(typescript@5.8.2) vite: - specifier: ^6.1.0 - version: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + specifier: ^6.2.3 + version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: '@adyen/adyen-web': - specifier: ^6.9.0 - version: 6.9.0 + specifier: ^6.11.0 + version: 6.11.0 '@commercelayer/organization-config': specifier: ^2.2.0 version: 2.2.0 '@commercelayer/sdk': - specifier: ^6.29.2 - version: 6.29.2 + specifier: ^6.36.0 + version: 6.36.0 '@stripe/react-stripe-js': - specifier: ^3.1.1 - version: 3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^3.5.1 + version: 3.5.1(@stripe/stripe-js@6.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@stripe/stripe-js': - specifier: ^5.6.0 - version: 5.6.0 + specifier: ^6.1.0 + version: 6.1.0 '@tanstack/react-table': - specifier: ^8.20.6 - version: 8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^8.21.2 + version: 8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/iframe-resizer': - specifier: ^3.5.13 - version: 3.5.13 + specifier: ^4.0.0 + version: 4.0.0 braintree-web: - specifier: ^3.115.2 - version: 3.116.3 + specifier: ^3.117.1 + version: 3.117.1 frames-react: specifier: ^1.2.2 - version: 1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3) + version: 1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(typescript@5.8.2) iframe-resizer: specifier: ^4.3.6 version: 4.4.5 @@ -335,32 +335,32 @@ importers: specifier: ^6.7.1 version: 6.7.1 '@faker-js/faker': - specifier: ^9.5.1 + specifier: ^9.6.0 version: 9.6.0 '@playwright/test': - specifier: ^1.50.1 - version: 1.51.0 + specifier: ^1.51.1 + version: 1.51.1 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': - specifier: ^3.96.16 - version: 3.96.16 + specifier: ^3.96.17 + version: 3.96.17 '@types/lodash': specifier: ^4.17.16 version: 4.17.16 '@types/node': - specifier: ^22.13.9 - version: 22.13.10 + specifier: ^22.13.14 + version: 22.13.14 '@types/prop-types': specifier: ^15.7.14 version: 15.7.14 '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^19.0.12 + version: 19.0.12 '@types/react-test-renderer': specifier: ^19.0.0 version: 19.0.0 @@ -369,10 +369,10 @@ importers: version: 1.8.8 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@vitest/coverage-v8': - specifier: ^3.0.7 - version: 3.0.8(vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.0.9 + version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) jsdom: specifier: ^26.0.0 version: 26.0.0 @@ -381,7 +381,7 @@ importers: version: 1.4.0 msw: specifier: ^2.7.3 - version: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) + version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) react: specifier: ^19.0.0 version: 19.0.0 @@ -401,30 +401,39 @@ importers: specifier: ^5.8.2 version: 5.8.2 vite: - specifier: ^6.2.0 - version: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.2.3 + version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.7 - version: 3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.0.9 + version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) packages: '@adobe/css-tools@4.4.1': resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} - '@adyen/adyen-web@6.8.0': - resolution: {integrity: sha512-qOCFk4c0tc+So3a4co+RX01eVQFJpnzHRmUTtEiWIetWYSaBX1+htovIoj6L1k4mhRXohyo2GjAJAlueoe8rVQ==} - - '@adyen/bento-design-tokens@1.10.0': - resolution: {integrity: sha512-ZaWLGTLLW0bh69mu9ibGMaZ2DXkrB07XU3gc5Mt1fTZgNDAnCsdfJ/Wq7BxW3zYhtQLU69oz0QayZ3RDKTlHEA==} + '@adyen/adyen-web@6.11.0': + resolution: {integrity: sha512-OSpTq+VN84hNPOV5RpHM8T4TYMgL8sMr0UDa+2yDeTEBTIlNdigCKgDWTXzOHIW/BuPWna4e9n1fuGYnCJgXlQ==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@andrewbranch/untar.js@1.0.3': + resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} + + '@arethetypeswrong/cli@0.17.4': + resolution: {integrity: sha512-AeiKxtf67XD/NdOqXgBOE5TZWH3EOCt+0GkbUpekOzngc+Q/cRZ5azjWyMxISxxfp0EItgm5NoSld9p7BAA5xQ==} + engines: {node: '>=18'} + hasBin: true + + '@arethetypeswrong/core@0.17.4': + resolution: {integrity: sha512-Izvir8iIoU+X4SKtDAa5kpb+9cpifclzsbA8x/AZY0k0gIfXYQ1fa1B6Epfe6vNA2YfDX8VtrZFgvnXB6aPEoQ==} + engines: {node: '>=18'} + '@asamuzakjp/css-color@3.1.1': resolution: {integrity: sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==} @@ -1037,6 +1046,9 @@ packages: cpu: [x64] os: [win32] + '@braidai/lang@1.1.0': + resolution: {integrity: sha512-xyJYkiyNQtTyCLeHxZmOs7rnB94D+N1IjKNArQIh8+8lTBOY7TFgwEV+Ow5a1uaBi5j2w9fLbWcJFTWLDItl5g==} + '@braintree/asset-loader@2.0.0': resolution: {integrity: sha512-7Zs3/g3lPTfkdtWr7cKh3tk1pDruXR++TXwGKkx7BPuTjjLNFul2JSfI+ScHzNU4u/gZNPNQagsSTlYxIhBgMA==} @@ -1076,8 +1088,8 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@chromatic-com/storybook@3.2.4': - resolution: {integrity: sha512-5/bOOYxfwZ2BktXeqcCpOVAoR6UCoeART5t9FVy22hoo8F291zOuX4y3SDgm10B1GVU/ZTtJWPT2X9wZFlxYLg==} + '@chromatic-com/storybook@3.2.6': + resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -1098,12 +1110,12 @@ packages: resolution: {integrity: sha512-0Afbon6//2KHCTb6bILk2L9Idj9dP8pw06V1CFtaz1wtAsX4iifubGpOPxHH6CuGi4DFHzgASJRz6+ZZbqb3kA==} engines: {node: '>=20'} - '@commercelayer/sdk@6.29.2': - resolution: {integrity: sha512-g7Tk0jR2ice0FTPaENN7D/XZOCtxO69UN5mLWBNh5ZnXNlGyS1HcNiakk0d7PHwb4ninLf9vjHsQ53QJCTctRw==} + '@commercelayer/sdk@6.36.0': + resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} engines: {node: '>=20'} - '@csstools/color-helpers@5.0.1': - resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.2': @@ -1440,32 +1452,36 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.1': - resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + '@eslint/config-helpers@0.2.0': + resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.19.0': - resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.5': - resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + '@eslint/js@9.23.0': + resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@faker-js/faker@9.4.0': - resolution: {integrity: sha512-85+k0AxaZSTowL0gXp8zYWDIrWclTbRPg/pm/V0dSFZ6W6D4lhcG3uuZl4zLsEKfEvs69xDbLN2cHQudwp95JA==} + '@eslint/plugin-kit@0.2.7': + resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@faker-js/faker@9.6.0': + resolution: {integrity: sha512-3vm4by+B5lvsFPSyep3ELWmZfE3kicDtmemVpuwl1yH7tqtnHdsA6hG8fbXedMVdkzgtvzWoRgjSB4Q+FHnZiw==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} '@fal-works/esbuild-plugin-global-externals@2.1.2': @@ -1486,6 +1502,26 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + engines: {node: '>=18.18'} + '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} @@ -1561,8 +1597,8 @@ packages: typescript: optional: true - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2': - resolution: {integrity: sha512-feQ+ntr+8hbVudnsTUapiMN9q8T90XA1d5jn9QzY09sNoj4iD9wi0PY1vsBFTda4ZjEaxRK9S81oarR2nj7TFQ==} + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0': + resolution: {integrity: sha512-qYDdL7fPwLRI+bJNurVcis+tNgJmvWjH4YTBGXTA8xMuxFrnAz6E5o35iyzyKbq5J5Lr8mJGfrR5GXl+WGwhgQ==} peerDependencies: typescript: '>= 4.3.x' vite: '>=4.5.2' @@ -1598,6 +1634,9 @@ packages: resolution: {integrity: sha512-Cz2u/fwc03D1EE6VFZCLMmI8FIUtGmxHQ3ECeNblsxv9i0YSKWe4Xm18sjO1xltG/K5ByiH8/HMeY9dlyAv22A==} engines: {node: '>=18.0.0'} + '@loaderkit/resolve@1.0.4': + resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} + '@mdx-js/react@2.3.0': resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} peerDependencies: @@ -1609,8 +1648,8 @@ packages: '@types/react': '>=16' react: '>=16' - '@mswjs/interceptors@0.37.6': - resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} + '@mswjs/interceptors@0.37.3': + resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.4': @@ -1825,8 +1864,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.51.0': - resolution: {integrity: sha512-dJ0dMbZeHhI+wb77+ljx/FeC8VBP6j/rj9OAojO08JI80wTZy6vRk9KvHKiDCUh4iMpEiseMgqRBIeW+eKX6RA==} + '@playwright/test@1.51.1': + resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==} engines: {node: '>=18'} hasBin: true @@ -1865,8 +1904,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.2': - resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} + '@radix-ui/react-collection@1.1.1': + resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2024,8 +2063,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.2': - resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + '@radix-ui/react-primitive@2.0.1': + resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2037,8 +2076,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.2': - resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + '@radix-ui/react-roving-focus@1.1.1': + resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2063,8 +2102,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.2': - resolution: {integrity: sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ==} + '@radix-ui/react-separator@1.1.1': + resolution: {integrity: sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2085,8 +2124,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-slot@1.1.2': - resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + '@radix-ui/react-slot@1.1.1': + resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -2094,8 +2133,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-toggle-group@1.1.2': - resolution: {integrity: sha512-JBm6s6aVG/nwuY5eadhU2zDi/IwYS0sDM5ZWb4nymv/hn3hZdkw+gENn0LP4iY1yCd7+bgJaCwueMYJIU3vk4A==} + '@radix-ui/react-toggle-group@1.1.1': + resolution: {integrity: sha512-OgDLZEA30Ylyz8YSXvnGqIHtERqnUt1KUYTKdw/y8u7Ci6zGiJfXc02jahmcSNK3YcErqioj/9flWC9S1ihfwg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2107,8 +2146,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.2': - resolution: {integrity: sha512-lntKchNWx3aCHuWKiDY+8WudiegQvBpDRAYL8dKLRvKEH8VOpl0XX6SSU/bUBqIRJbcTy4+MW06Wv8vgp10rzQ==} + '@radix-ui/react-toggle@1.1.1': + resolution: {integrity: sha512-i77tcgObYr743IonC1hrsnnPmszDRn8p+EGUsUt+5a/JFn28fxaM88Py6V2mc8J5kELMWishI0rLnuGLFD/nnQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2120,8 +2159,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toolbar@1.1.2': - resolution: {integrity: sha512-wT20eQ7ScFk+kBMDmHp+lMk18cgxhu35b2Bn5deUcPxiVwfn5vuZgi7NGcHu8ocdkinahmp4FaSZysKDyRVPWQ==} + '@radix-ui/react-toolbar@1.1.1': + resolution: {integrity: sha512-r7T80WOCHc2n3KRzFCbHWGVzkfVTCzDofGU4gqa5ZuIzgnVaLogGsdyifFJXWQDp0lAr5hrf+X9uqQdE0pa6Ww==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2374,29 +2413,33 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} - '@storybook/addon-actions@8.5.3': - resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} + '@storybook/addon-actions@8.6.10': + resolution: {integrity: sha512-g+aC1bFwIwZqxSVjw+BhJJeTmZPBhZT52AO6DUYWF+FZ2N3rjnaVKwT1gZYYhuYw2WtWw2wLivkXcq2L/IBbkg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} - '@storybook/addon-backgrounds@8.5.3': - resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} + '@storybook/addon-backgrounds@8.6.10': + resolution: {integrity: sha512-zou/VJSVDacuaQVJV22hbQEZrQBllcoxSw40EgSedqLv1qaVpC7Nz5LY9srl522LeoVEP+AOYKf9K7hLbm0o7w==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} - '@storybook/addon-controls@8.5.3': - resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} + '@storybook/addon-controls@8.6.10': + resolution: {integrity: sha512-aMw3NCVSq+vWEAp10kbBlbMx+7PIFFdgxMCh7b9N2DUR/5J4KCNFQosa8fAn03Noh2g5jgceqNyY6L4lDIu0Xw==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} @@ -2404,10 +2447,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-docs@8.5.3': - resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} + '@storybook/addon-docs@8.6.10': + resolution: {integrity: sha512-VnGtzwVaC8NvfhLr8UdIa6n38emU2SaDzfOTbvR1zibiqRmFDbo+kvAGSPOT6oIC5jZleUTLiIz0GzHxLuMxOQ==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} @@ -2415,26 +2458,26 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-essentials@8.5.3': - resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} + '@storybook/addon-essentials@8.6.10': + resolution: {integrity: sha512-8sKfAp3KkEjIHm02JhdazEKHlwO8VQgzAHk2fzHREgf24KqlCyF9BhDM1vG38fGdB+B+l1edZTE5a3NmcvK5Cg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} - '@storybook/addon-highlight@8.5.3': - resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} + '@storybook/addon-highlight@8.6.10': + resolution: {integrity: sha512-ZKl0yKzs/6xOpeDIiqHhfrJGQYA7jQ6cxO2nUm3zyqOnHZspef38VlqE63VttBq+mKnh9VbemmaTd2mUgQnm2A==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} - '@storybook/addon-interactions@8.5.3': - resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} + '@storybook/addon-interactions@8.6.10': + resolution: {integrity: sha512-BtuqLJj1L5a8a4RmnX5YjrGhiEfn7LTdQgn2m71F8DnMCwvvYLHQgYUcpjobMld1OZr3IKq4/zCqesaGET++fQ==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} @@ -2444,50 +2487,59 @@ packages: react: optional: true + '@storybook/addon-links@8.6.10': + resolution: {integrity: sha512-t7gRsFbOIAsqxb/5KA/LOywvx8USopqfW1KwLDBrDYaRUwkdiJVOSxjKB1a6cndFmqcGzucdXQx/PMmOQe9dig==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.10 + peerDependenciesMeta: + react: + optional: true + '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} - '@storybook/addon-mdx-gfm@8.5.3': - resolution: {integrity: sha512-jKfJir3E+jJkD1K9SvrzUQBhaQJbGd2DtcE5IusXe0NKBJegbBy+eMhh9K7ani/isTf8+ZkhoXR3DFWwi2IJhg==} + '@storybook/addon-mdx-gfm@8.6.10': + resolution: {integrity: sha512-9Ddu0AZ074O/hgooy2tFPvZqPzCJBQW57gGfCAj9PCvgRoALWsA7s5QHUlicq2r+iIxbKZv6o72ND+7Z9TwA7Q==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} - '@storybook/addon-measure@8.5.3': - resolution: {integrity: sha512-unb0bRsnISXWiCBBECxNUUdM12hHpV+1uJUu5OJHtKb26YpiQvewDFLTLjuZJ3NIAfw+F5232Q7K88AWJV6weg==} + '@storybook/addon-measure@8.6.10': + resolution: {integrity: sha512-ef5vAum7tMdiTsGsHOIHaLCyN0e3gLU2X4gzNelqH0/x/09C2QQaiOFDIpvbKt6HSjpHJeYcUOGzF7U/o4xVkw==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 - '@storybook/addon-onboarding@8.5.3': - resolution: {integrity: sha512-NZhYj3UZK65reO7mXcK7FPPu7QkLCRyIa6TpfQ3mRAocfjqg401mcBsRO37JNywYfHCZrU4w1l7pwpqjvcYceg==} + '@storybook/addon-onboarding@8.6.10': + resolution: {integrity: sha512-n4wtlZqYQiigtYCDCRXH1ilmGGv+DG5mggiTLpcLJEh9tZg2dGUptSyGARRF6igYYeiZTdDo8OPvwFUZc5N+vg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} - '@storybook/addon-outline@8.5.3': - resolution: {integrity: sha512-e1MkGN6XVdeRh2oUKGdqEDyAo2TD/47ashAAxw8DEiLRWgBMbQ+KBVH4EOG+dn5395jxh7YgRLJn/miqNnfN5g==} + '@storybook/addon-outline@8.6.10': + resolution: {integrity: sha512-Z5lQ/q9rULtlD99V1S3ymEU59tJGD2KHEdr4HRUgxo+fkyy7nOZDi88sOupoICBuAVYBIcxLKiMeYrUIwjHqtg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} - '@storybook/addon-toolbars@8.5.3': - resolution: {integrity: sha512-AWr9Per9WDrbFtNlbVlj6CiEwKOvOyoBt3bCuMHuRfTdqKwkwInEtyUi4//T8U+c1qs7KJBpsWV2vhIuc5sODg==} + '@storybook/addon-toolbars@8.6.10': + resolution: {integrity: sha512-cHhI+9r/Wt/l+E02V2UvybkmdembqjVUagLNHRIRQSqx0tH762G0OD3JzOC2nqmXMjABY2mUkADORhWERfMPjg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} - '@storybook/addon-viewport@8.5.3': - resolution: {integrity: sha512-OkLJ2B8+PiOEAd2HtRG6XewVjtw6AkBMgoSbfKCMr6TWSbuKrOeiwIMqqieAAPVNfsOQ8hTK6JGhr/KPRCKgRA==} + '@storybook/addon-viewport@8.6.10': + resolution: {integrity: sha512-0ATxfA+bHpTcdTUc83VVJF3XPJqe64Yl1I9UWnx/XG2gzo8avRA44pQe8ETH5Fwr7kAvDMqW6LXAisfsl20wrg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2501,12 +2553,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/blocks@8.5.3': - resolution: {integrity: sha512-a/PpHFmeBtVB9Q/6cNAnqfeCqMowsrI8nGka0Nl7BB3x1eJnS3I1Qo3Skht0LBEsmXOgXk4dwWxpeQL3qHMRkw==} + '@storybook/blocks@8.6.10': + resolution: {integrity: sha512-S9XVyN36utNAo78/IHUP1DpCw7vBw5Ef4iO9diF+MLtxP3jJwFXPFkyBSi7AnWig9FH3I8vYI1fh1a4/nk1H4g==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.6.10 peerDependenciesMeta: react: optional: true @@ -2531,10 +2583,10 @@ packages: vite-plugin-glimmerx: optional: true - '@storybook/builder-vite@8.5.3': - resolution: {integrity: sha512-MxriwzZSVidaXj3kpH/jCOJZUdF7ofcvxmvrMrNehH9UvXIGM6b73CBC5ucnptbnQ7qxYKdAZiMhQbPHZ9cqOQ==} + '@storybook/builder-vite@8.6.10': + resolution: {integrity: sha512-RXT4uflQSgXSHbWG+Z2Im5r7Ji1wj0Lyo6hVJZIBLEbaIbjfvPtP9CXlhK/z1h90cegHTnkYDd01RHwgmlKRrg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 vite: '>=4.5.2' '@storybook/channels@7.6.17': @@ -2565,8 +2617,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/components@8.5.3': - resolution: {integrity: sha512-iC9VbpM8Equ8wXI2syBzov+8wys4sGYW7Xfz67LdSVbCMhsH9FRtvgbDppJQC/ZDCofg4sTAHhWpDV/KAQ385A==} + '@storybook/components@8.6.10': + resolution: {integrity: sha512-9TE2aZU+1zjGO4R74jc4Dmx+pFb+9hm1vnlWH+WVfYV1nCSCZOMmMoO2J86PHPkR6RmPjcQJXz4ySdBbYiwKiw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2585,8 +2637,8 @@ packages: '@storybook/core-server@7.6.20': resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} - '@storybook/core@8.5.3': - resolution: {integrity: sha512-ZLlr2pltbj/hmC54lggJTnh09FCAJR62lIdiXNwa+V+/eJz0CfD8tfGmZGKPSmaQeZBpMwAOeRM97k2oLPF+0w==} + '@storybook/core@8.6.10': + resolution: {integrity: sha512-VyhE/9/idPeeObsx+DyD8RR2iEwLJGL9rYz61r+1IrpndIVnlYD+vjxc0Y/1jTG1RvShWzEF2A/vzsJ9PzXqcw==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: @@ -2596,10 +2648,10 @@ packages: '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} - '@storybook/csf-plugin@8.5.3': - resolution: {integrity: sha512-u5oyXTFg3KIy4h9qoNyiCG2mJF3OpkLO/AcM4lMAwQVnBvz8pwITvr4jDZByVjGmcIbgKJQnWX+BwdK2NI4yAw==} + '@storybook/csf-plugin@8.6.10': + resolution: {integrity: sha512-yjtFyjEvmmWUG1NzM81/CLI5rOUG311EoPmRnvbNpdzaVug4emC3rX9mR69DsrXfL7kLTDltDH8tjA7wLxpGMA==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2623,10 +2675,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.5.3': - resolution: {integrity: sha512-pxaTbGeju8MkwouIiaWX5DMWtpRruxqig8W3nZPOvzoSCCbQY+sLMQoyXxFlpGxLBjcvXivkL7AMVBKps5sFEQ==} + '@storybook/instrumenter@8.6.10': + resolution: {integrity: sha512-Hlps6V0lkhFMbgcJQRynVBne51ciG7Xv+YtiDCd0PQtvZu8+vVJr/ebWt3nCwpvkRHooYiud1ScA3K8McyA73w==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2634,8 +2686,8 @@ packages: '@storybook/manager-api@7.6.20': resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} - '@storybook/manager-api@8.5.3': - resolution: {integrity: sha512-JtfuMgQpKIPU0ARn1jNPce8FmknpM0Ap0mppWl+KGAWWGadJPDaX/nrY/19dT1kRgIhyOnbX6tgJxII4E9dE5w==} + '@storybook/manager-api@8.6.10': + resolution: {integrity: sha512-roJ2aXqbZfSh9IM4q34U2GpU0CDmUjTKGwAnYOS2SG6rGLPenPflIksW8A52cVFdzGa4eH/KzP2FIg5Zi1KLJQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2662,8 +2714,8 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - '@storybook/preview-api@8.5.3': - resolution: {integrity: sha512-dUsuXW+KgDg4tWXOB6dk5j5gwwRUzbPvicHAY9mzbpSVScbWXuE5T/S/9hHlbtfkhFroWQgPx2eB8z3rai+7RQ==} + '@storybook/preview-api@8.6.10': + resolution: {integrity: sha512-8ki1GgiUlcSqZD3Oe42Fy0uW3E7XPpMAyzO+NSnHCKKfNlZgi036Rr+FyGcKwG5lJyubWwNesPGQX5UHigYu4w==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2676,12 +2728,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-dom-shim@8.5.3': - resolution: {integrity: sha512-kNIGk6mpXW3Wy+uS9pH9b9w/54EPJnH+QXA6MX4EQgmxhMQlGlS/l/YZp+3jsVQW4YgTmqe740qB+ccJAKZxBQ==} + '@storybook/react-dom-shim@8.6.10': + resolution: {integrity: sha512-r4Q5stsoIlSEvOpOJgyFGPej+t9uuIzGI2ul83XNtiHEBs7xlmUN7qAm+U9cOuNZ7mPOXDKt9nZfUfCP5Ouhyw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} @@ -2691,14 +2743,14 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' - '@storybook/react-vite@8.5.3': - resolution: {integrity: sha512-F30u2Xf+X774wrfQzWgg7vRVJmmJFbBVGdULsAGonkdy1FUeYo7puPiD2Qg6hBYNDyIyxDXVOukkOvTlG7IBRg==} + '@storybook/react-vite@8.6.10': + resolution: {integrity: sha512-CyptES7yE1fnZWMN5xk6AFPuchjg4YN8VvBaC0YyveKhfeXlczGwG9nPU28ZY3I+Xzz5g/A6rBvgSRQ88hc/bQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.5.3 + '@storybook/test': 8.6.10 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 vite: '>=4.5.2' peerDependenciesMeta: '@storybook/test': @@ -2715,14 +2767,14 @@ packages: typescript: optional: true - '@storybook/react@8.5.3': - resolution: {integrity: sha512-QIdBSjsnwV/J919i4Fi7DlwxDKHU815t0c4B/w2KTMtKKBkk+Bge+vgVi0/lNqD3eF4w3yjVWGbkzUQZ63yiPg==} + '@storybook/react@8.6.10': + resolution: {integrity: sha512-QCs5nyXe+G2ZoZ1uspEsnSp7VYLJej5dJ1bSf22rrdHQde641zvC2HZQaba4dqR2YQxRCG9JtCdaQ3UVmnfzzA==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.5.3 + '@storybook/test': 8.6.10 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -2739,10 +2791,10 @@ packages: '@storybook/telemetry@7.6.20': resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} - '@storybook/test@8.5.3': - resolution: {integrity: sha512-2smoDbtU6Qh4yk0uD18qGfW6ll7lZBzKlF58Ha1CgWR4o+jpeeTQcfDLH9gG6sNrpojF7AVzMh/aN9BDHD+Chg==} + '@storybook/test@8.6.10': + resolution: {integrity: sha512-eCQueRB0SpwjnXcE5wmUNu2G7Z7nRzzHw+0QW2Yc3DoA5UwmOiuwTseZenQkD019dwvFJ87fHo1xXnDAamX1Tg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} @@ -2760,8 +2812,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/theming@8.5.3': - resolution: {integrity: sha512-Jvzw+gT1HNarkJo21WZBq5pU89qDN8u/pD3woSh/1c2h5RS6UylWjQHotPFpcBIQiUSrDFtvCU9xugJm4MD0+w==} + '@storybook/theming@8.6.10': + resolution: {integrity: sha512-4E5ArcJ/bhrWtlYzQDbtA3O3pha/Ys0Ja6X4waJQ5UJENzUMdVz6vTLSUHtG5hNRmSqreogxe4Ed88+0JtY7NQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2771,15 +2823,15 @@ packages: '@storybook/types@7.6.20': resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} - '@stripe/react-stripe-js@3.4.0': - resolution: {integrity: sha512-5m0vProlV2qyB7qXHSn25Ao79BjgJW/oiv2ynJ645dpdjeR7fyeb+KSrA4Esk7jqy+aKmdyn70TAIN0BVgh0MA==} + '@stripe/react-stripe-js@3.5.1': + resolution: {integrity: sha512-MFZ69qz70T0srU9nsPhQHFNbOxfL4fb9fokHKqJy0S6X53D8KJXD23iiKWGmLasMeqXNzBqLnuziE72QszeRLw==} peerDependencies: '@stripe/stripe-js': '>=1.44.1 <7.0.0' react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@5.6.0': - resolution: {integrity: sha512-w8CEY73X/7tw2KKlL3iOk679V9bWseE4GzNz3zlaYxcTjmcmWOathRb0emgo/QQ3eoNzmq68+2Y2gxluAv3xGw==} + '@stripe/stripe-js@6.1.0': + resolution: {integrity: sha512-/5zxRol+MU4I7fjZXPxP2M6E1nuHOxAzoc0tOEC/TLnC31Gzc+5EE93mIjoAnu28O1Sqpl7/BkceDHwnGmn75A==} engines: {node: '>=12.16'} '@tanstack/react-table@8.21.2': @@ -2820,6 +2872,12 @@ packages: '@types/react-dom': optional: true + '@testing-library/user-event@14.5.2': + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + '@testing-library/user-event@14.6.1': resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} engines: {node: '>=12', npm: '>=6'} @@ -2837,8 +2895,8 @@ packages: '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} - '@types/applepayjs@14.0.8': - resolution: {integrity: sha512-Yzf5OSitdS+/G8cjaAkPJ0+pBOEf9Vik1XUCdw6ul7Qh6Xb18wTlG/sWA5jKIme3x4fbyTGlSd4mfkvdtP9mRw==} + '@types/applepayjs@14.0.9': + resolution: {integrity: sha512-xEprYbb0TEP/XIiDPbVnTYpDai8fTFpsQfVSfTd81Is2GOMUy7ie019eyX6Mz2ECxfjoUVKaiGSL577roIeHCg==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -2858,8 +2916,8 @@ packages: '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - '@types/braintree-web@3.96.16': - resolution: {integrity: sha512-v9gbS2vxpM5Bu5xpUMbKpZVqLjU1SZrDNXtSNSQtKH7Jc8W3dD4n5WK5z+sdnCsZU31/OXkeM/y/mOi8KQjpFw==} + '@types/braintree-web@3.96.17': + resolution: {integrity: sha512-l+ujTICdA34gxov4AAsJLONNvYKbMyOYBnDU8syBhosCp/3IW2bJuZQEmUuOrliYeMmFm20ltQO9VHsRb8066g==} '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -2924,8 +2982,8 @@ packages: '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/iframe-resizer@3.5.13': - resolution: {integrity: sha512-/Np2ntlOWd/NOHs23Mj7QlNEnZ6SL02AWWdYZLm4RQNukDdpqpagfMAdin5FvQDLngR8LWfh/qUnYxuDmR8BCg==} + '@types/iframe-resizer@4.0.0': + resolution: {integrity: sha512-RKrT4goNVtqZvf9WPkV0cUcphQWXzLVW1IE4yOIY21c1W+obJJbcHFD1lQu5ncNHm/6TeQSeedVf9bmkx2NaGQ==} '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -2978,8 +3036,8 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - '@types/node@22.13.10': - resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} + '@types/node@22.13.14': + resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2999,8 +3057,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.0.3': - resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + '@types/react-dom@19.0.4': + resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} peerDependencies: '@types/react': ^19.0.0 @@ -3013,8 +3071,8 @@ packages: '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - '@types/react@19.0.8': - resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + '@types/react@19.0.12': + resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3052,110 +3110,43 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/eslint-plugin@8.23.0': - resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + '@typescript-eslint/eslint-plugin@8.28.0': + resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.23.0': - resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + '@typescript-eslint/parser@8.28.0': + resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/scope-manager@8.23.0': resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/scope-manager@8.28.0': + resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.23.0': - resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + '@typescript-eslint/type-utils@8.28.0': + resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/types@8.23.0': resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.28.0': + resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.23.0': resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} @@ -3163,11 +3154,11 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.28.0': + resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/utils@8.23.0': resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} @@ -3176,18 +3167,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.28.0': + resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/visitor-keys@8.23.0': resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.28.0': + resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@3.1.0': resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3198,13 +3192,13 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=4.5.2' + vite: '>=5.1.7' - '@vitest/coverage-v8@3.0.8': - resolution: {integrity: sha512-y7SAKsQirsEJ2F8bulBck4DoluhI2EEgTimHd6EEUgJBGKy9tC25cpywh1MH4FvDGoG2Unt7+asVd1kj4qOSAw==} + '@vitest/coverage-v8@3.0.9': + resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} peerDependencies: - '@vitest/browser': 3.0.8 - vitest: 3.0.8 + '@vitest/browser': 3.0.9 + vitest: 3.0.9 peerDependenciesMeta: '@vitest/browser': optional: true @@ -3212,11 +3206,11 @@ packages: '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - '@vitest/expect@3.0.4': - resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} + '@vitest/expect@3.0.9': + resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==} - '@vitest/mocker@3.0.8': - resolution: {integrity: sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==} + '@vitest/mocker@3.0.9': + resolution: {integrity: sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==} peerDependencies: msw: ^2.4.9 vite: '>=5.1.7' @@ -3232,20 +3226,20 @@ packages: '@vitest/pretty-format@2.1.9': resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} - '@vitest/pretty-format@3.0.4': - resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} + '@vitest/pretty-format@3.0.9': + resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} - '@vitest/runner@3.0.8': - resolution: {integrity: sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==} + '@vitest/runner@3.0.9': + resolution: {integrity: sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==} - '@vitest/snapshot@3.0.8': - resolution: {integrity: sha512-x8IlMGSEMugakInj44nUrLSILh/zy1f2/BgH0UeHpNyOocG18M9CWVIFBaXPt8TrqVZWmcPjwfG/ht5tnpba8A==} + '@vitest/snapshot@3.0.9': + resolution: {integrity: sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==} '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/spy@3.0.4': - resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + '@vitest/spy@3.0.9': + resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==} '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} @@ -3253,8 +3247,8 @@ packages: '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@vitest/utils@3.0.4': - resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} + '@vitest/utils@3.0.9': + resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3395,6 +3389,9 @@ packages: peerDependencies: ajv: ^8.8.2 + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -3406,6 +3403,10 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3588,8 +3589,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - braintree-web@3.116.3: - resolution: {integrity: sha512-pZVhmCA88g40XOZonKjD7RaS66tLJBA/EFfHqdqBr4+3IX73ssgmq2OfnWWOrVICgtMhFyG6fqtwwcYFewQ9Sg==} + braintree-web@3.117.1: + resolution: {integrity: sha512-Jv4NO0s90VYpbKMVL7IMigCyWhi+BlCqxS6Ub7auk6Jd4MUPToygKO3ryvvYVMmasm7pEVKRIAH16UMVfcq4FA==} browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} @@ -3614,13 +3615,6 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3692,6 +3686,14 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} @@ -3744,6 +3746,9 @@ packages: citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -3755,6 +3760,11 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} @@ -3813,6 +3823,10 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -4025,6 +4039,9 @@ packages: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -4164,6 +4181,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -4208,6 +4228,10 @@ packages: engines: {node: '>=4'} hasBin: true + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -4268,6 +4292,10 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -4277,128 +4305,19 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-love@43.1.0: - resolution: {integrity: sha512-r3+7mSaOl0BEGf8LEntPPDbWTDw8o0Dpy9vdts7m+NAuSpmz9C/gL+64lC0Z8nKNE4uwdymPGll4czGQiR+XmQ==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.4.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - typescript: '*' - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-standard-jsx@11.0.0: - resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} - peerDependencies: - eslint: ^8.8.0 - eslint-plugin-react: ^7.28.0 - - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-es-x@7.8.0: - resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-n@16.6.2: - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-prettier@5.2.1: - resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} - engines: {node: ^14.18.0 || >=16.0.0} - 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 - - eslint-plugin-promise@6.6.0: - resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {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 - eslint-plugin-react-refresh@0.4.18: - resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} + eslint-plugin-react-refresh@0.4.19: + resolution: {integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==} peerDependencies: eslint: '>=8.40' - eslint-plugin-react@7.37.2: - resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-plugin-storybook@0.11.2: - resolution: {integrity: sha512-0Z4DUklJrC+GHjCRXa7PYfPzWC15DaVnwaOYenpgXiCEijXPZkLKCms+rHhtoRcWccP7Z8DpOOaP1gc3P9oOwg==} + eslint-plugin-storybook@0.12.0: + resolution: {integrity: sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==} engines: {node: '>= 18'} peerDependencies: eslint: '>=8' @@ -4407,8 +4326,8 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -4419,8 +4338,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.19.0: - resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + eslint@9.23.0: + resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4438,6 +4357,10 @@ packages: engines: {node: '>=4'} hasBin: true + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -4511,6 +4434,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} @@ -4534,10 +4460,17 @@ packages: fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} @@ -4588,10 +4521,17 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flow-parser@0.265.2: resolution: {integrity: sha512-DX2mp5u3lNJHl5dH8R1KrcrDsiJC02zFcG95p4b0YcDCzZZW+v9za2Csv5bQ0cq4jNzGx0gFU9jFZyM7FOyNFw==} engines: {node: '>=0.4.0'} @@ -4787,22 +4727,14 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + globals@16.0.0: + resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} engines: {node: '>=18'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4817,6 +4749,9 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@16.10.0: resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -4863,6 +4798,9 @@ packages: headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -5312,6 +5250,9 @@ packages: engines: {node: '>=6'} hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -5322,9 +5263,15 @@ packages: resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-nice@1.1.4: resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} @@ -5356,6 +5303,9 @@ packages: resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} engines: {node: '>=18'} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -5381,6 +5331,10 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + libnpmaccess@8.0.6: resolution: {integrity: sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==} engines: {node: ^16.14.0 || >=18.0.0} @@ -5528,6 +5482,17 @@ packages: peerDependencies: react: '>= 0.14.0' + marked-terminal@7.3.0: + resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <16' + + marked@9.1.6: + resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} + engines: {node: '>= 16'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -5974,6 +5939,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5989,6 +5957,10 @@ packages: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} + node-emoji@2.2.0: + resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + engines: {node: '>=18'} + node-fetch-native@1.6.6: resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} @@ -6135,6 +6107,10 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + ora@5.3.0: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} @@ -6259,6 +6235,15 @@ packages: parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.2.1: resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} @@ -6370,13 +6355,13 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.51.0: - resolution: {integrity: sha512-x47yPE3Zwhlil7wlNU/iktF7t2r/URR3VLbH6EknJd/04Qc/PSJ0EY3CMXipmglLG+zyRxW6HNo2EGbKLHPWMg==} + playwright-core@1.51.1: + resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} engines: {node: '>=18'} hasBin: true - playwright@1.51.0: - resolution: {integrity: sha512-442pTfGM0xxfCYxuBa/Pu6B2OqxqqaYq39JS8QDMGThUvIOCd6s0ANDog3uwA0cHavVlnTQzGCN7Id2YekDSXA==} + playwright@1.51.1: + resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} engines: {node: '>=18'} hasBin: true @@ -6421,6 +6406,10 @@ packages: preact@10.22.1: resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -6585,8 +6574,8 @@ packages: peerDependencies: typescript: '>= 4.3.x' - react-docgen@7.1.1: - resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} + react-docgen@7.1.0: + resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} react-dom@18.3.1: @@ -6752,8 +6741,8 @@ packages: remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} @@ -6887,10 +6876,6 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -6978,6 +6963,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -7065,8 +7054,8 @@ packages: resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} hasBin: true - storybook@8.5.3: - resolution: {integrity: sha512-2WtNBZ45u1AhviRU+U+ld588tH8gDa702dNSq5C8UBaE9PlOsazGsyp90dw1s9YRvi+ejrjKAupQAU0GwwUiVg==} + storybook@8.6.10: + resolution: {integrity: sha512-7LUD9hNllMZZhDJutxgejrpWI89rsBF+p2kCfWoJ9EuBTgRy8bbVQZlG7bE1gf7qLmnabnklsFslTakS2SbKRw==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -7144,6 +7133,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -7243,8 +7236,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} tinypool@1.0.2: @@ -7306,8 +7299,8 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + tr46@5.1.0: + resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} engines: {node: '>=18'} tree-kill@1.2.2: @@ -7325,12 +7318,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - ts-api-utils@2.0.1: resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} engines: {node: '>=18.12'} @@ -7344,8 +7331,8 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tsc-alias@1.8.10: - resolution: {integrity: sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==} + tsc-alias@1.8.11: + resolution: {integrity: sha512-2DuEQ58A9Rj2NE2c1+/qaGKlshni9MCK95MJzRGhQG0CYLw0bE/ACgbhhTSf/p1svLelwqafOd8stQate2bYbg==} hasBin: true tsconfck@3.1.5: @@ -7368,8 +7355,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.3.6: - resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} + tsup@8.4.0: + resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7437,18 +7424,23 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.23.0: - resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==} + typescript-eslint@8.28.0: + resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true + typescript@5.6.1-rc: + resolution: {integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} @@ -7472,6 +7464,10 @@ packages: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} @@ -7568,6 +7564,9 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -7643,15 +7642,15 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@3.0.4: - resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} + vite-node@3.0.9: + resolution: {integrity: sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=4.5.2' + vite: '>=5.1.7' peerDependenciesMeta: vite: optional: true @@ -7696,8 +7695,8 @@ packages: yaml: optional: true - vite@6.1.0: - resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} + vite@6.2.3: + resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7736,16 +7735,16 @@ packages: yaml: optional: true - vitest@3.0.4: - resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} + vitest@3.0.9: + resolution: {integrity: sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.0.8 - '@vitest/ui': 3.0.8 + '@vitest/browser': 3.0.9 + '@vitest/ui': 3.0.9 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7856,6 +7855,10 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -7980,9 +7983,9 @@ snapshots: '@adobe/css-tools@4.4.1': {} - '@adyen/adyen-web@6.8.0': + '@adyen/adyen-web@6.11.0': dependencies: - '@types/applepayjs': 14.0.8 + '@types/applepayjs': 14.0.9 '@types/googlepay': 0.7.6 classnames: 2.5.1 preact: 10.22.1 @@ -7992,6 +7995,29 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 + '@andrewbranch/untar.js@1.0.3': {} + + '@arethetypeswrong/cli@0.17.4': + dependencies: + '@arethetypeswrong/core': 0.17.4 + chalk: 4.1.2 + cli-table3: 0.6.5 + commander: 10.0.1 + marked: 9.1.6 + marked-terminal: 7.3.0(marked@9.1.6) + semver: 7.7.1 + + '@arethetypeswrong/core@0.17.4': + dependencies: + '@andrewbranch/untar.js': 1.0.3 + '@loaderkit/resolve': 1.0.4 + cjs-module-lexer: 1.4.3 + fflate: 0.8.2 + lru-cache: 10.4.3 + semver: 7.7.1 + typescript: 5.6.1-rc + validate-npm-package-name: 5.0.1 + '@asamuzakjp/css-color@3.1.1': dependencies: '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) @@ -8751,6 +8777,8 @@ snapshots: '@biomejs/cli-win32-x64@1.9.4': optional: true + '@braidai/lang@1.1.0': {} + '@braintree/asset-loader@2.0.0': {} '@braintree/asset-loader@2.0.2': {} @@ -8784,13 +8812,13 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': + '@chromatic-com/storybook@3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: chromatic: 11.25.2 filesize: 10.1.6 jsonfile: 6.1.0 react-confetti: 6.2.2(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -8800,50 +8828,17 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commercelayer/eslint-config-ts-react@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2)': - dependencies: - '@commercelayer/eslint-config-ts': 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0) - eslint-plugin-react: 7.37.2(eslint@9.19.0) - react: 18.3.1 - typescript: 5.7.2 - transitivePeerDependencies: - - '@types/eslint' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - '@commercelayer/eslint-config-ts@1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-config-love: 43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2) - eslint-config-prettier: 9.1.0(eslint@9.19.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) - eslint-plugin-n: 16.6.2(eslint@9.19.0) - eslint-plugin-prettier: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2) - eslint-plugin-promise: 6.6.0(eslint@9.19.0) - prettier: 3.4.2 - typescript: 5.7.2 - transitivePeerDependencies: - - '@types/eslint' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color + '@commercelayer/js-auth@6.7.1': {} - '@commercelayer/js-auth@6.7.0': {} - - '@commercelayer/organization-config@2.0.0': + '@commercelayer/organization-config@2.2.0': dependencies: merge-anything: 5.1.7 '@commercelayer/sdk@6.35.0': {} - '@commercelayer/sdk@6.29.2': {} + '@commercelayer/sdk@6.36.0': {} + + '@csstools/color-helpers@5.0.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: @@ -8882,14 +8877,7 @@ snapshots: dependencies: react: 18.3.1 - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': - dependencies: - react: 19.0.0 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.1': optional: true '@esbuild/android-arm64@0.18.20': @@ -9030,52 +9018,51 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@esbuild/win32-x64@0.24.2': - optional: true - - '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.23.0)': dependencies: - eslint: 9.19.0 + eslint: 9.23.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.1': + '@eslint/config-array@0.19.2': dependencies: - '@eslint/object-schema': 2.1.5 + '@eslint/object-schema': 2.1.6 debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': + '@eslint/config-helpers@0.2.0': {} + + '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.2.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 debug: 4.4.0 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.19.0': {} + '@eslint/js@9.23.0': {} - '@eslint/object-schema@2.1.5': {} + '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.2.7': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.12.0 levn: 0.4.1 - '@faker-js/faker@9.4.0': {} + '@faker-js/faker@9.6.0': {} '@fal-works/esbuild-plugin-global-externals@2.1.2': {} @@ -9094,13 +9081,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/dom': 1.6.12 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@floating-ui/utils@0.2.8': {} + '@floating-ui/utils@0.2.9': {} '@humanfs/core@0.19.1': {} @@ -9113,21 +9094,21 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.2': {} '@hutson/parse-repository-url@3.0.2': {} - '@inquirer/confirm@5.1.8(@types/node@22.13.10)': + '@inquirer/confirm@5.1.8(@types/node@22.13.14)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.13.10) - '@inquirer/type': 3.0.5(@types/node@22.13.10) + '@inquirer/core': 10.1.9(@types/node@22.13.14) + '@inquirer/type': 3.0.5(@types/node@22.13.14) optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 - '@inquirer/core@10.1.9(@types/node@22.13.10)': + '@inquirer/core@10.1.9(@types/node@22.13.14)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.14) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -9135,13 +9116,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.5(@types/node@22.13.10)': + '@inquirer/type@3.0.5(@types/node@22.13.14)': optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@isaacs/cliui@8.0.2': dependencies: @@ -9192,7 +9173,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -9201,27 +9182,28 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: + glob: 10.4.5 magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.7.3) - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + react-docgen-typescript: 2.2.2(typescript@5.8.2) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.2 '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -9329,29 +9311,27 @@ snapshots: - supports-color - typescript - '@mdx-js/react@2.3.0(react@18.3.1)': + '@loaderkit/resolve@1.0.4': dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 18.3.1 + '@braidai/lang': 1.1.0 - '@mdx-js/react@2.3.0(react@19.0.0)': + '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 19.0.0 + '@types/react': 18.3.18 + react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@18.3.17)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 '@types/react': 18.3.18 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@19.0.8)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 18.3.1 + '@types/react': 19.0.12 + react: 19.0.0 '@mswjs/interceptors@0.37.3': dependencies: @@ -9641,9 +9621,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.51.0': + '@playwright/test@1.51.1': dependencies: - playwright: 1.51.0 + playwright: 1.51.1 '@radix-ui/number@1.0.1': dependencies: @@ -9655,75 +9635,40 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9732,104 +9677,51 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-context@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-context@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-direction@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-direction@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9838,36 +9730,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9877,235 +9750,116 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-id@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/rect': 1.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/rect': 1.0.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - aria-hidden: 1.2.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.5.5(@types/react@19.0.8)(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -10115,109 +9869,53 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.0.2(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-slot@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-slot@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -10226,26 +9924,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -10253,29 +9938,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -10283,55 +9953,27 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/rect': 1.0.1 @@ -10339,15 +9981,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/rect': 1.0.1 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -10355,33 +9989,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.0.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/rect@1.0.1': dependencies: @@ -10491,6 +10107,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sindresorhus/is@4.6.0': {} + '@storybook/addon-actions@7.6.20': dependencies: '@storybook/core-events': 7.6.20 @@ -10500,13 +10118,13 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-actions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-actions@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) uuid: 9.0.1 '@storybook/addon-backgrounds@7.6.20': @@ -10515,16 +10133,16 @@ snapshots: memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-backgrounds@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -10535,20 +10153,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-controls@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-controls@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -10571,54 +10189,25 @@ snapshots: - encoding - supports-color - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/addon-docs@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@jest/transform': 29.7.0 - '@mdx-js/react': 2.3.0(react@19.0.0) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/csf-plugin': 7.6.20 - '@storybook/csf-tools': 7.6.20 - '@storybook/global': 5.0.0 - '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.20 - '@storybook/postinstall': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - fs-extra: 11.2.0 + '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) + '@storybook/blocks': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - remark-external-links: 8.0.0 - remark-slug: 6.1.0 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - '@storybook/addon-docs@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@18.3.1) - '@storybook/blocks': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.5.3(prettier@3.4.2) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@types/react' - - '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -10637,18 +10226,18 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@storybook/addon-actions': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-backgrounds': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-controls': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-docs': 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-highlight': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-measure': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-outline': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-toolbars': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-viewport': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-essentials@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': + dependencies: + '@storybook/addon-actions': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-backgrounds': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-controls': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-docs': 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-highlight': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-measure': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-outline': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-toolbars': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-viewport': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -10657,10 +10246,10 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-highlight@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-highlight@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-interactions@7.6.20': dependencies: @@ -10670,13 +10259,13 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 - '@storybook/addon-interactions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-interactions@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) polished: 4.3.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-links@7.6.20(react@18.3.1)': @@ -10687,10 +10276,10 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-links@7.6.20(react@19.0.0)': + '@storybook/addon-links@8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/global': 5.0.0 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 @@ -10703,10 +10292,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-mdx-gfm@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-mdx-gfm@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - remark-gfm: 4.0.0 - storybook: 8.5.3(prettier@3.4.2) + remark-gfm: 4.0.1 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -10716,41 +10305,41 @@ snapshots: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - '@storybook/addon-measure@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-measure@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-onboarding@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - '@storybook/addon-outline@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-outline@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-toolbars@7.6.20': {} - '@storybook/addon-toolbars@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-toolbars@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 - '@storybook/addon-viewport@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-viewport@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: memoizerific: 1.11.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10769,11 +10358,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -10802,54 +10391,10 @@ snapshots: - encoding - supports-color - '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.12 - '@storybook/docs-tools': 7.6.20(encoding@0.1.13) - '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/preview-api': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - '@types/lodash': 4.17.14 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.7.2(react@19.0.0) - memoizerific: 1.11.3 - polished: 4.3.1 - react: 19.0.0 - react-colorful: 5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-dom: 19.0.0(react@19.0.0) - telejson: 7.2.0 - tocbot: 4.32.2 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - - '@storybook/blocks@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + '@storybook/blocks@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 - '@storybook/icons': 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.5.3(prettier@3.4.2) - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@storybook/blocks@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@storybook/csf': 0.1.12 '@storybook/icons': 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 @@ -10877,7 +10422,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -10895,20 +10440,20 @@ snapshots: fs-extra: 11.3.0 magic-string: 0.30.17 rollup: 3.29.5 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: - encoding - supports-color - '@storybook/builder-vite@8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@storybook/builder-vite@8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) browser-assert: 1.2.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@storybook/channels@7.6.17': dependencies: @@ -11004,14 +10549,14 @@ snapshots: jscodeshift: 0.15.2(@babel/preset-env@7.26.9(@babel/core@7.26.10)) lodash: 4.17.21 prettier: 2.8.8 - recast: 0.23.11 + recast: 0.23.9 transitivePeerDependencies: - supports-color - '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 @@ -11026,27 +10571,9 @@ snapshots: - '@types/react' - '@types/react-dom' - '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/components@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/csf': 0.1.12 - '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - memoizerific: 1.11.3 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - use-resize-observer: 9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - '@storybook/components@8.5.3(storybook@8.5.3(prettier@3.4.2))': - dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/core-client@7.6.20': dependencies: @@ -11138,23 +10665,24 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core@8.5.3(prettier@3.4.2)': + '@storybook/core@8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 + '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.24.2 - esbuild-register: 3.6.0(esbuild@0.24.2) + esbuild: 0.25.1 + esbuild-register: 3.6.0(esbuild@0.25.1) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.9 - semver: 7.6.3 + semver: 7.7.1 util: 0.12.5 - ws: 8.18.0 + ws: 8.18.1 optionalDependencies: - prettier: 3.4.2 + prettier: 2.8.8 transitivePeerDependencies: - bufferutil + - storybook - supports-color - utf-8-validate @@ -11165,10 +10693,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/csf-plugin@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/csf-plugin@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) - unplugin: 1.16.0 + storybook: 8.6.10(prettier@2.8.8) + unplugin: 1.16.1 '@storybook/csf-tools@7.6.20': dependencies: @@ -11179,7 +10707,7 @@ snapshots: '@storybook/csf': 0.1.13 '@storybook/types': 7.6.20 fs-extra: 11.3.0 - recast: 0.23.11 + recast: 0.23.9 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -11205,21 +10733,16 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@storybook/instrumenter@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/instrumenter@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -11261,29 +10784,9 @@ snapshots: - react - react-dom - '@storybook/manager-api@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.12 - '@storybook/global': 5.0.0 - '@storybook/router': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - store2: 2.14.3 - telejson: 7.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - react - - react-dom - - '@storybook/manager-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/manager-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/manager@7.6.20': {} @@ -11331,9 +10834,9 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/preview-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/preview@7.6.20': {} @@ -11342,35 +10845,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-dom-shim@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/react-dom-shim@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + storybook: 8.6.10(prettier@2.8.8) - '@storybook/react-dom-shim@8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))': + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.5.3(prettier@3.4.2) - - '@storybook/react-dom-shim@8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) - - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.32.0)(typescript@5.7.2)(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) - '@vitejs/plugin-react': 3.1.0(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)) + '@vitejs/plugin-react': 3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 - react-docgen: 7.1.1 + react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -11379,29 +10871,29 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@storybook/react-vite@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@rollup/pluginutils': 5.1.4(rollup@4.32.0) - '@storybook/builder-vite': 8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@storybook/react': 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@rollup/pluginutils': 5.1.4(rollup@4.35.0) + '@storybook/builder-vite': 8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/react': 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) find-up: 5.0.0 magic-string: 0.30.17 react: 19.0.0 react-docgen: 7.1.0 react-dom: 19.0.0(react@19.0.0) - resolve: 1.22.9 - storybook: 8.5.3(prettier@3.4.2) + resolve: 1.22.10 + storybook: 8.6.10(prettier@2.8.8) tsconfig-paths: 4.2.0 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)': + '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2)': dependencies: '@storybook/client-logger': 7.6.20 '@storybook/core-client': 7.6.20 @@ -11432,20 +10924,20 @@ snapshots: - encoding - supports-color - '@storybook/react@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/react@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)': dependencies: - '@storybook/components': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/components': 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/preview-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/theming': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/manager-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/preview-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) optionalDependencies: - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - typescript: 5.7.3 + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + typescript: 5.8.2 '@storybook/router@7.6.17': dependencies: @@ -11473,17 +10965,16 @@ snapshots: - encoding - supports-color - '@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/testing-library@0.2.2': dependencies: @@ -11509,18 +11000,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/theming@7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@storybook/theming@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/theming@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/types@7.6.17': dependencies: @@ -11536,18 +11018,18 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@stripe/react-stripe-js@3.1.1(@stripe/stripe-js@5.6.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@stripe/react-stripe-js@3.5.1(@stripe/stripe-js@6.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@stripe/stripe-js': 5.6.0 + '@stripe/stripe-js': 6.1.0 prop-types: 15.8.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@stripe/stripe-js@5.6.0': {} + '@stripe/stripe-js@6.1.0': {} - '@tanstack/react-table@8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@tanstack/react-table@8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@tanstack/table-core': 8.20.5 + '@tanstack/table-core': 8.21.2 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -11585,15 +11067,15 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 19.0.12 + '@types/react-dom': 19.0.4(@types/react@19.0.12) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -11614,7 +11096,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@types/applepayjs@14.0.8': {} + '@types/applepayjs@14.0.9': {} '@types/aria-query@5.0.4': {} @@ -11642,22 +11124,22 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.13.10 + '@types/node': 22.13.14 - '@types/braintree-web@3.96.16': + '@types/braintree-web@3.96.17': dependencies: '@types/googlepay': 0.7.6 '@types/paypal-checkout-components': 4.0.8 '@types/connect@3.4.38': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/debug@4.1.12': dependencies: @@ -11691,7 +11173,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11708,17 +11190,17 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/googlepay@0.7.6': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/http-errors@2.0.4': {} - '@types/iframe-resizer@3.5.13': {} + '@types/iframe-resizer@4.0.0': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -11760,14 +11242,14 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 form-data: 4.0.2 '@types/node@18.19.80': dependencies: undici-types: 5.26.5 - '@types/node@22.13.10': + '@types/node@22.13.14': dependencies: undici-types: 6.20.0 @@ -11783,29 +11265,29 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.0.3(@types/react@18.3.17)': + '@types/react-dom@19.0.4(@types/react@18.3.18)': dependencies: - '@types/react': 18.3.17 + '@types/react': 18.3.18 optional: true - '@types/react-dom@19.0.3(@types/react@19.0.8)': + '@types/react-dom@19.0.4(@types/react@19.0.12)': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react-window@1.8.8': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 - '@types/react@19.0.8': + '@types/react@19.0.12': dependencies: csstype: 3.1.3 @@ -11816,12 +11298,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.13.10 + '@types/node': 22.13.14 '@types/send': 0.17.4 '@types/statuses@2.0.5': {} @@ -11844,249 +11326,154 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.19.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 - eslint: 9.19.0 + '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.28.0 + eslint: 9.23.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@6.21.0(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - eslint: 9.19.0 - optionalDependencies: - typescript: 5.7.2 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.28.0 debug: 4.4.0 - eslint: 9.19.0 - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 - debug: 4.4.0 - eslint: 9.19.0 - typescript: 5.7.3 + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/scope-manager@8.28.0': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - debug: 4.4.0 - eslint: 9.19.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 - '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) debug: 4.4.0 - eslint: 9.19.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + eslint: 9.23.0 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.21.0': {} - - '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.28.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 debug: 4.4.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - eslint: 9.19.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.23.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - eslint: 9.19.0 - typescript: 5.7.3 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@7.18.0': + '@typescript-eslint/utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color '@typescript-eslint/visitor-keys@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@3.1.0(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': + '@typescript-eslint/visitor-keys@8.28.0': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - magic-string: 0.27.0 - react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.28.0 + eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) - '@types/babel__core': 7.20.5 + magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1))': + '@vitest/coverage-v8@3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -12100,7 +11487,7 @@ snapshots: std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + vitest: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -12108,24 +11495,24 @@ snapshots: dependencies: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 - chai: 5.1.2 + chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/expect@3.0.4': + '@vitest/expect@3.0.9': dependencies: - '@vitest/spy': 3.0.8 - '@vitest/utils': 3.0.8 + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.8(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@vitest/spy': 3.0.8 + '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + msw: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -12135,18 +11522,18 @@ snapshots: dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@3.0.4': + '@vitest/pretty-format@3.0.9': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.0.8': + '@vitest/runner@3.0.9': dependencies: - '@vitest/utils': 3.0.8 + '@vitest/utils': 3.0.9 pathe: 2.0.3 - '@vitest/snapshot@3.0.8': + '@vitest/snapshot@3.0.9': dependencies: - '@vitest/pretty-format': 3.0.8 + '@vitest/pretty-format': 3.0.9 magic-string: 0.30.17 pathe: 2.0.3 @@ -12154,7 +11541,7 @@ snapshots: dependencies: tinyspy: 3.0.2 - '@vitest/spy@3.0.4': + '@vitest/spy@3.0.9': dependencies: tinyspy: 3.0.2 @@ -12162,18 +11549,18 @@ snapshots: dependencies: '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 - loupe: 3.1.2 + loupe: 3.1.3 tinyrainbow: 1.2.0 '@vitest/utils@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 - loupe: 3.1.2 + loupe: 3.1.3 tinyrainbow: 1.2.0 - '@vitest/utils@3.0.4': + '@vitest/utils@3.0.9': dependencies: - '@vitest/pretty-format': 3.0.8 + '@vitest/pretty-format': 3.0.9 loupe: 3.1.3 tinyrainbow: 2.0.0 @@ -12299,6 +11686,10 @@ snapshots: dependencies: acorn: 7.4.1 + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + acorn-walk@7.2.0: {} acorn@7.4.1: {} @@ -12327,6 +11718,13 @@ snapshots: ajv: 8.17.1 fast-deep-equal: 3.1.3 + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -12340,6 +11738,10 @@ snapshots: dependencies: type-fest: 0.21.3 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -12538,7 +11940,7 @@ snapshots: dependencies: fill-range: 7.1.1 - braintree-web@3.116.3: + braintree-web@3.117.1: dependencies: '@braintree/asset-loader': 2.0.2 '@braintree/browser-detection': 2.0.2 @@ -12582,15 +11984,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} - - builtins@5.1.0: - dependencies: - semver: 7.6.3 - - bundle-require@5.1.0(esbuild@0.24.2): + bundle-require@5.1.0(esbuild@0.25.1): dependencies: - esbuild: 0.24.2 + esbuild: 0.25.1 load-tsconfig: 0.2.5 byte-size@8.1.1: {} @@ -12672,6 +12068,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.4.1: {} + + char-regex@1.0.2: {} + character-entities@2.0.2: {} chardet@0.7.0: {} @@ -12710,6 +12110,8 @@ snapshots: dependencies: consola: 3.4.0 + cjs-module-lexer@1.4.3: {} + classnames@2.5.1: {} clean-stack@2.2.0: {} @@ -12718,6 +12120,15 @@ snapshots: dependencies: restore-cursor: 3.1.0 + cli-highlight@2.1.11: + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + cli-spinners@2.6.1: {} cli-spinners@2.9.2: {} @@ -12771,6 +12182,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@10.0.1: {} + commander@11.1.0: {} commander@2.20.3: {} @@ -12987,6 +12400,8 @@ snapshots: which-collection: 1.0.2 which-typed-array: 1.1.19 + deep-is@0.1.4: {} + default-browser-id@3.0.0: dependencies: bplist-parser: 0.2.0 @@ -13113,6 +12528,8 @@ snapshots: emoji-regex@9.2.2: {} + emojilib@2.4.0: {} + encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -13148,6 +12565,8 @@ snapshots: envinfo@7.14.0: {} + environment@1.1.0: {} + err-code@2.0.3: {} error-ex@1.3.2: @@ -13194,10 +12613,10 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-register@3.6.0(esbuild@0.24.2): + esbuild-register@3.6.0(esbuild@0.25.1): dependencies: debug: 4.4.0 - esbuild: 0.24.2 + esbuild: 0.25.1 transitivePeerDependencies: - supports-color @@ -13260,6 +12679,8 @@ snapshots: escape-string-regexp@1.0.5: {} + escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} escodegen@2.1.0: @@ -13270,158 +12691,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - semver: 7.6.3 - - eslint-config-love@43.1.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0)(typescript@5.7.2): - dependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/parser': 6.21.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) - eslint-plugin-n: 16.6.2(eslint@9.19.0) - eslint-plugin-promise: 6.6.0(eslint@9.19.0) - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - - eslint-config-prettier@9.1.0(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.37.2(eslint@9.19.0))(eslint@9.19.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.23.0): dependencies: - eslint: 9.19.0 - eslint-plugin-react: 7.37.2(eslint@9.19.0) + eslint: 9.23.0 - eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0))(eslint-plugin-n@16.6.2(eslint@9.19.0))(eslint-plugin-promise@6.6.0(eslint@9.19.0))(eslint@9.19.0): + eslint-plugin-react-refresh@0.4.19(eslint@9.23.0): dependencies: - eslint: 9.19.0 - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0) - eslint-plugin-n: 16.6.2(eslint@9.19.0) - eslint-plugin-promise: 6.6.0(eslint@9.19.0) + eslint: 9.23.0 - eslint-import-resolver-node@0.3.9: + eslint-plugin-storybook@0.12.0(eslint@9.23.0)(typescript@5.8.2): dependencies: - debug: 3.2.7 - is-core-module: 2.16.0 - resolve: 1.22.9 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - eslint: 9.19.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-plugin-es-x@7.8.0(eslint@9.19.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - '@eslint-community/regexpp': 4.12.1 - eslint: 9.19.0 - eslint-compat-utils: 0.5.1(eslint@9.19.0) - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint@9.19.0): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.19.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0) - hasown: 2.0.2 - is-core-module: 2.16.0 - 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.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-n@16.6.2(eslint@9.19.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - builtins: 5.1.0 - eslint: 9.19.0 - eslint-plugin-es-x: 7.8.0(eslint@9.19.0) - get-tsconfig: 4.8.1 - globals: 13.24.0 - ignore: 5.3.2 - is-builtin-module: 3.2.1 - is-core-module: 2.16.0 - minimatch: 3.1.2 - resolve: 1.22.9 - semver: 7.6.3 - - eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.19.0))(eslint@9.19.0)(prettier@3.4.2): - dependencies: - eslint: 9.19.0 - prettier: 3.4.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.9.2 - optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 9.1.0(eslint@9.19.0) - - eslint-plugin-promise@6.6.0(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-plugin-react-hooks@5.1.0(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-plugin-react-refresh@0.4.18(eslint@9.19.0): - dependencies: - eslint: 9.19.0 - - eslint-plugin-react@7.37.2(eslint@9.19.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.0 - eslint: 9.19.0 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - 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 - - eslint-plugin-storybook@0.11.2(eslint@9.19.0)(typescript@5.7.3): - dependencies: - '@storybook/csf': 0.1.12 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 + '@storybook/csf': 0.1.13 + '@typescript-eslint/utils': 8.23.0(eslint@9.23.0)(typescript@5.8.2) + eslint: 9.23.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -13432,7 +12714,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.2.0: + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -13441,18 +12723,19 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.19.0: + eslint@9.23.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.10.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.19.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.2.0 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.23.0 + '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 + '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -13460,7 +12743,7 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 + eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 @@ -13482,12 +12765,16 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -13513,9 +12800,9 @@ snapshots: execa@5.0.0: dependencies: cross-spawn: 7.0.6 - get-stream: 6.0.0 + get-stream: 6.0.1 human-signals: 2.1.0 - is-stream: 2.0.0 + is-stream: 2.0.1 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 @@ -13603,6 +12890,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-levenshtein@2.0.6: {} + fast-uri@3.0.6: {} fastq@1.19.1: @@ -13623,10 +12912,16 @@ snapshots: fetch-retry@5.0.6: {} + fflate@0.8.2: {} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + file-system-cache@2.3.0: dependencies: fs-extra: 11.1.1 @@ -13694,8 +12989,15 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + flat@5.0.2: {} + flatted@3.3.3: {} + flow-parser@0.265.2: {} follow-redirects@1.15.9: {} @@ -13722,12 +13024,12 @@ snapshots: dependencies: '@braintree/uuid': 1.0.1 - frames-react@1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(typescript@5.7.3): + frames-react@1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(typescript@5.8.2): dependencies: classnames: 2.5.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - rollup-plugin-typescript2: 0.36.0(rollup@4.32.0)(typescript@5.7.3) + rollup-plugin-typescript2: 0.36.0(rollup@4.35.0)(typescript@5.8.2) tslib: 2.8.1 transitivePeerDependencies: - rollup @@ -13903,18 +13205,9 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} - globals@15.14.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 + globals@16.0.0: {} globby@11.1.0: dependencies: @@ -13931,6 +13224,8 @@ snapshots: graceful-fs@4.2.11: {} + graphemer@1.4.0: {} + graphql@16.10.0: {} gunzip-maybe@1.4.2: @@ -13975,6 +13270,8 @@ snapshots: headers-polyfill@4.0.3: {} + highlight.js@10.7.3: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -14325,13 +13622,13 @@ snapshots: jake@10.9.2: dependencies: async: 3.2.6 - chalk: 4.1.0 + chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 jest-diff@29.7.0: dependencies: - chalk: 4.1.0 + chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -14342,7 +13639,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.13.10 + '@types/node': 22.13.14 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14357,14 +13654,14 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.13.10 + '@types/node': 22.13.14 jest-regex-util@29.6.3: {} jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.13.14 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -14372,13 +13669,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.13.10 + '@types/node': 22.13.14 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14419,7 +13716,7 @@ snapshots: micromatch: 4.0.8 neo-async: 2.6.2 node-dir: 0.1.17 - recast: 0.23.11 + recast: 0.23.9 temp: 0.8.4 write-file-atomic: 2.4.3 optionalDependencies: @@ -14461,14 +13758,20 @@ snapshots: jsesc@3.1.0: {} + json-buffer@3.0.1: {} + json-parse-better-errors@1.0.2: {} json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@3.0.2: {} + json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-nice@1.1.4: {} json-stringify-safe@5.0.1: {} @@ -14491,6 +13794,10 @@ snapshots: jwt-decode@4.0.0: {} + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + kind-of@6.0.3: {} kleur@3.0.3: {} @@ -14596,6 +13903,11 @@ snapshots: leven@3.1.0: {} + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + libnpmaccess@8.0.6: dependencies: npm-package-arg: 11.0.2 @@ -14757,11 +14069,20 @@ snapshots: dependencies: react: 18.3.1 - markdown-to-jsx@7.7.2(react@19.0.0): + marked-terminal@7.3.0(marked@9.1.6): dependencies: - react: 19.0.0 + ansi-escapes: 7.0.0 + ansi-regex: 6.1.0 + chalk: 5.4.1 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 9.1.6 + node-emoji: 2.2.0 + supports-hyperlinks: 3.2.0 - math-intrinsics@1.0.0: {} + marked@9.1.6: {} + + math-intrinsics@1.1.0: {} mdast-util-definitions@4.0.0: dependencies: @@ -14802,7 +14123,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.1 @@ -15012,7 +14333,7 @@ snapshots: micromark-core-commonmark@2.0.2: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -15266,7 +14587,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -15355,7 +14676,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.0 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 micromark-factory-space: 2.0.1 @@ -15498,13 +14819,13 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2): + msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.13.10) - '@mswjs/interceptors': 0.37.6 + '@inquirer/confirm': 5.1.8(@types/node@22.13.14) + '@mswjs/interceptors': 0.37.3 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -15529,7 +14850,7 @@ snapshots: array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 - minimatch: 3.0.5 + minimatch: 3.1.2 mute-stream@0.0.8: {} @@ -15559,6 +14880,13 @@ snapshots: dependencies: minimatch: 3.1.2 + node-emoji@2.2.0: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + node-fetch-native@1.6.6: {} node-fetch@2.6.7(encoding@0.1.13): @@ -15674,7 +15002,7 @@ snapshots: '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 axios: 1.8.3 - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 @@ -15766,12 +15094,21 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -15915,6 +15252,14 @@ snapshots: dependencies: parse-path: 7.0.1 + parse5-htmlparser2-tree-adapter@6.0.1: + dependencies: + parse5: 6.0.1 + + parse5@5.1.1: {} + + parse5@6.0.1: {} + parse5@7.2.1: dependencies: entities: 4.5.0 @@ -15998,11 +15343,11 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - playwright-core@1.51.0: {} + playwright-core@1.51.1: {} - playwright@1.51.0: + playwright@1.51.1: dependencies: - playwright-core: 1.51.0 + playwright-core: 1.51.1 optionalDependencies: fsevents: 2.3.2 @@ -16016,12 +15361,12 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1(postcss@8.5.1)(yaml@2.6.1): + postcss-load-config@6.0.1(postcss@8.5.3)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.1 - yaml: 2.6.1 + postcss: 8.5.3 + yaml: 2.7.0 postcss-selector-parser@6.1.2: dependencies: @@ -16030,12 +15375,14 @@ snapshots: postcss@8.5.3: dependencies: - nanoid: 3.3.10 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 preact@10.22.1: {} + prelude-ls@1.2.1: {} + prettier@2.8.8: {} pretty-bytes@6.1.1: {} @@ -16184,24 +15531,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-colorful@5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-confetti@6.2.2(react@19.0.0): dependencies: react: 19.0.0 tween-functions: 1.2.0 - react-docgen-typescript@2.2.2(typescript@5.7.2): + react-docgen-typescript@2.2.2(typescript@5.8.2): dependencies: typescript: 5.8.2 - react-docgen-typescript@2.2.2(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 @@ -16256,15 +15594,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll-bar@2.3.8(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - - react-remove-scroll@2.5.5(@types/react@18.3.17)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) @@ -16275,18 +15605,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll@2.5.5(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.0.8)(react@19.0.0) - use-sidecar: 1.1.3(@types/react@19.0.8)(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - - react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 @@ -16294,14 +15613,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-style-singleton@2.2.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - get-nonce: 1.0.1 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - react-test-renderer@19.0.0(react@19.0.0): dependencies: react: 19.0.0 @@ -16437,7 +15748,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-gfm@4.0.0: + remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 mdast-util-gfm: 3.0.0 @@ -16597,12 +15908,6 @@ snapshots: scheduler@0.25.0: {} - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -16724,6 +16029,10 @@ snapshots: sisteransi@1.0.5: {} + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + slash@3.0.0: {} smart-buffer@4.2.0: {} @@ -16812,11 +16121,11 @@ snapshots: - supports-color - utf-8-validate - storybook@8.5.3(prettier@3.4.2): + storybook@8.6.10(prettier@2.8.8): dependencies: - '@storybook/core': 8.5.3(prettier@3.4.2) + '@storybook/core': 8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8)) optionalDependencies: - prettier: 3.4.2 + prettier: 2.8.8 transitivePeerDependencies: - bufferutil - supports-color @@ -16894,6 +16203,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} symbol-tree@3.2.4: {} @@ -16999,7 +16313,7 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.10: + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 @@ -17051,7 +16365,7 @@ snapshots: dependencies: punycode: 2.3.1 - tr46@5.0.0: + tr46@5.1.0: dependencies: punycode: 2.3.1 @@ -17063,19 +16377,15 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.4.3(typescript@5.7.2): - dependencies: - typescript: 5.7.2 - - ts-api-utils@2.0.1(typescript@5.7.3): + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - typescript: 5.7.3 + typescript: 5.8.2 ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} - tsc-alias@1.8.10: + tsc-alias@1.8.11: dependencies: chokidar: 3.6.0 commander: 9.5.0 @@ -17098,27 +16408,27 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1): + tsup@8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0): dependencies: - bundle-require: 5.1.0(esbuild@0.24.2) + bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 chokidar: 4.0.3 - consola: 3.2.3 + consola: 3.4.0 debug: 4.4.0 - esbuild: 0.24.2 + esbuild: 0.25.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.1)(yaml@2.6.1) + postcss-load-config: 6.0.1(postcss@8.5.3)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.32.0 + rollup: 4.35.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.10 + tinyglobby: 0.2.12 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.1 - typescript: 5.7.3 + postcss: 8.5.3 + typescript: 5.8.2 transitivePeerDependencies: - jiti - supports-color @@ -17162,18 +16472,20 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.23.0(eslint@9.19.0)(typescript@5.7.3): + typescript-eslint@8.28.0(eslint@9.23.0)(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 - typescript: 5.7.3 + '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color typescript@4.9.5: {} + typescript@5.6.1-rc: {} + typescript@5.8.2: {} ufo@1.5.4: {} @@ -17187,6 +16499,8 @@ snapshots: unicode-canonical-property-names-ecmascript@2.0.1: {} + unicode-emoji-modifier-base@1.0.0: {} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 @@ -17302,6 +16616,10 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -17314,26 +16632,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-callback-ref@1.3.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@juggle/resize-observer': 3.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-resize-observer@9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@juggle/resize-observer': 3.4.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - use-sidecar@1.1.3(@types/react@18.3.17)(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 @@ -17341,14 +16646,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-sidecar@1.1.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - detect-node-es: 1.1.0 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - util-deprecate@1.0.2: {} util@0.12.5: @@ -17403,13 +16700,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.0.4(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): + vite-node@3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 - pathe: 2.0.2 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + pathe: 2.0.3 + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -17424,82 +16721,60 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite@6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0): - dependencies: - esbuild: 0.25.1 - postcss: 8.5.3 - rollup: 4.35.0 - optionalDependencies: - vite: 6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 - tsconfck: 3.1.4(typescript@5.7.3) + tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.11(@types/node@22.12.0)(terser@5.37.0): + vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: - esbuild: 0.21.5 - postcss: 8.4.49 - rollup: 4.28.1 + esbuild: 0.25.1 + postcss: 8.5.3 + rollup: 4.35.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.14 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vitest@3.0.8(@types/debug@4.1.12)(@types/node@22.13.10)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): + vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: - esbuild: 0.24.2 - postcss: 8.5.1 - rollup: 4.32.0 + esbuild: 0.25.1 + postcss: 8.5.3 + rollup: 4.35.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.14 fsevents: 2.3.3 - terser: 5.37.0 - yaml: 2.6.1 + terser: 5.39.0 + yaml: 2.7.0 - vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1): + vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): dependencies: - esbuild: 0.24.2 - postcss: 8.5.1 - rollup: 4.32.0 - optionalDependencies: - '@types/node': 22.12.0 - fsevents: 2.3.3 - terser: 5.37.0 - yaml: 2.6.1 - - vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1): - dependencies: - '@vitest/expect': 3.0.4 - '@vitest/mocker': 3.0.4(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@vitest/pretty-format': 3.0.4 - '@vitest/runner': 3.0.4 - '@vitest/snapshot': 3.0.4 - '@vitest/spy': 3.0.4 - '@vitest/utils': 3.0.4 - chai: 5.1.2 + '@vitest/expect': 3.0.9 + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.0.9 + '@vitest/runner': 3.0.9 + '@vitest/snapshot': 3.0.9 + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 + chai: 5.2.0 debug: 4.4.0 expect-type: 1.2.0 magic-string: 0.30.17 @@ -17509,12 +16784,12 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.2(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.0.8(@types/node@22.13.10)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.13.10 + '@types/node': 22.13.14 jsdom: 26.0.0 transitivePeerDependencies: - jiti @@ -17653,6 +16928,8 @@ snapshots: dependencies: string-width: 4.2.3 + word-wrap@1.2.5: {} + wordwrap@1.0.0: {} wrap-ansi@6.2.0: From bc93a9e4a95882162e74dba4818846b4c40acb1c Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 27 Mar 2025 11:14:55 +0100 Subject: [PATCH 006/165] Fix vite types env --- packages/core/extender.ts | 5 +++-- packages/core/vite-env.d.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 packages/core/vite-env.d.ts diff --git a/packages/core/extender.ts b/packages/core/extender.ts index 3a6f35be..60eac721 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -4,10 +4,11 @@ import { getAccessToken } from "./src/auth/getAccessToken.js" const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE const domain = import.meta.env.VITE_DOMAIN -let accessToken: ReturnType = undefined +let accessToken: Awaited> | undefined = + undefined export const coreTest = test.extend({ - accessToken: async ({ _ }, use) => { + accessToken: async (_props, use) => { if (accessToken == null) { accessToken = await getAccessToken({ grantType: "client_credentials", diff --git a/packages/core/vite-env.d.ts b/packages/core/vite-env.d.ts new file mode 100644 index 00000000..2745e011 --- /dev/null +++ b/packages/core/vite-env.d.ts @@ -0,0 +1,11 @@ +/// + +interface ImportMetaEnv { + readonly VITE_SALES_CHANNEL_CLIENT_ID: string + readonly VITE_SALES_CHANNEL_SCOPE: string + readonly VITE_DOMAIN: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} From 03971c4128a46d0e83d99323fcabc241ce3e03ad Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 1 Apr 2025 15:24:48 +0200 Subject: [PATCH 007/165] Fix relative path for vitest --- packages/core/extender.ts | 12 ++++- packages/core/src/auth/getAccessToken.spec.ts | 33 +++++++----- packages/core/src/prices/getPrices.spec.ts | 47 +++++++++-------- packages/core/src/prices/getPrices.ts | 4 +- packages/core/src/sdk/index.ts | 2 +- packages/core/src/types/index.ts | 4 +- packages/core/tsconfig.json | 3 +- packages/core/vitest.config.ts | 2 + packages/document/package.json | 52 +++++++++---------- packages/react-components/package.json | 34 ++++++------ pnpm-lock.yaml | 4 +- 11 files changed, 110 insertions(+), 87 deletions(-) diff --git a/packages/core/extender.ts b/packages/core/extender.ts index 60eac721..d58d0fd8 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -7,8 +7,18 @@ const domain = import.meta.env.VITE_DOMAIN let accessToken: Awaited> | undefined = undefined +export interface CoreTestInterface { + accessToken: Awaited> + config: { + clientId: string + scope: string + domain: string + } +} + export const coreTest = test.extend({ - accessToken: async (_props, use) => { + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { if (accessToken == null) { accessToken = await getAccessToken({ grantType: "client_credentials", diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index a57d0a39..9e9f1f36 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,6 +1,6 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { coreTest } from "../../extender" +import { type CoreTestInterface, coreTest } from "#extender" import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ @@ -8,12 +8,13 @@ vi.mock("@commercelayer/js-auth", () => ({ })) describe("getAccessToken", () => { - coreTest( + coreTest( "should call authenticate with the correct parameters", async ({ accessToken, config }) => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } + // @ts-expect-error mockResolvedValue is not defined authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -23,16 +24,20 @@ describe("getAccessToken", () => { }, ) - coreTest("should throw an error if authenticate fails", async () => { - const grantType = "client_credentials" - const config = { - clientId: "test-client-id", - clientSecret: "test-client-secret", - } - const mockError = new Error("Authentication failed") - authenticate.mockRejectedValue(mockError) - await expect(getAccessToken({ grantType, config })).rejects.toThrow( - "Authentication failed", - ) - }) + coreTest( + "should throw an error if authenticate fails", + async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + // @ts-expect-error mockResolvedValue is not defined + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }, + ) }) diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts index bcef04c2..3570319c 100644 --- a/packages/core/src/prices/getPrices.spec.ts +++ b/packages/core/src/prices/getPrices.spec.ts @@ -1,30 +1,35 @@ import type { QueryFilter } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { coreTest } from "../../extender.js" +import { type CoreTestInterface, coreTest } from "#extender" import { getPrices } from "./getPrices.js" describe("getPrices", () => { - coreTest("should return a list of prices", async ({ accessToken }) => { - const token = accessToken?.accessToken - const result = await getPrices({ accessToken: token }) - expect(result).toBeDefined() - }) + coreTest( + "should return a list of prices", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }, + ) - coreTest("should return a single price", async ({ accessToken }) => { - const token = accessToken?.accessToken - const params: QueryFilter = { - filters: { - sku_code_eq: "DIGITALPRODUCT", - }, - } - - // Call the getPrices function - const result = await getPrices({ accessToken: token, ...params }) - // Assert the expected result - expect(result).toBeDefined() - expect(result.getRecordCount()).toBe(1) - // Add more assertions based on the expected behavior of the getPrices function - }) + coreTest( + "should return a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const params: QueryFilter = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } + // Call the getPrices function + const result = await getPrices({ accessToken: token, ...params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }, + ) // Add more test cases for different scenarios }) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index 7586f706..bc13fcd9 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,6 +1,6 @@ import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" -import { getSdk } from "../sdk/index.js" -import type { RequestConfig } from "../types/index.js" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" type GetPricesParams = RequestConfig & QueryParamsList diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index d9caedfc..786e0637 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,6 +1,6 @@ import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" import { jwtDecode } from "jwt-decode" -import type { Jwt, RequestConfig } from "src/types/index.js" +import type { Jwt, RequestConfig } from "#types" export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { const organization = jwtDecode(accessToken).organization.slug diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts index 93bd730f..d23de71e 100644 --- a/packages/core/src/types/index.ts +++ b/packages/core/src/types/index.ts @@ -1,2 +1,2 @@ -export type { RequestConfig } from './base.js' -export type { Jwt } from './jwt.js' +export type { RequestConfig } from "./base" +export type { Jwt } from "./jwt" diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 9c1f4f07..098e3c6d 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -23,7 +23,8 @@ "baseUrl": ".", "paths": { "#sdk": ["src/sdk/index.ts"], - "#types": ["src/types/index.ts"] + "#types": ["src/types/index.ts"], + "#extender": ["extender.ts"] } }, "exclude": ["node_modules", "dist", "coverage", "*.spec.ts"] diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts index a455d010..3c65cd6d 100644 --- a/packages/core/vitest.config.ts +++ b/packages/core/vitest.config.ts @@ -1,3 +1,4 @@ +import tsconfigPaths from "vite-tsconfig-paths" import { defineConfig } from "vitest/config" export default defineConfig({ @@ -9,4 +10,5 @@ export default defineConfig({ reporter: ["text", "json", "html"], }, }, + plugins: [tsconfigPaths()], }) diff --git a/packages/document/package.json b/packages/document/package.json index f179175e..a15856ef 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -16,33 +16,33 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@chromatic-com/storybook": "^3.2.4", - "@eslint/js": "^9.19.0", - "@storybook/addon-docs": "^7.6.17", - "@storybook/addon-essentials": "^8.5.3", - "@storybook/addon-interactions": "^8.5.3", - "@storybook/addon-links": "^7.6.17", - "@storybook/addon-mdx-gfm": "^8.5.3", - "@storybook/addon-onboarding": "^8.5.3", - "@storybook/blocks": "^8.5.3", - "@storybook/react": "^8.5.3", - "@storybook/react-vite": "^8.5.3", - "@storybook/test": "^8.5.3", - "@storybook/theming": "^8.5.3", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@chromatic-com/storybook": "^3.2.6", + "@eslint/js": "^9.23.0", + "@storybook/addon-docs": "^8.6.10", + "@storybook/addon-essentials": "^8.6.10", + "@storybook/addon-interactions": "^8.6.10", + "@storybook/addon-links": "^8.6.10", + "@storybook/addon-mdx-gfm": "^8.6.10", + "@storybook/addon-onboarding": "^8.6.10", + "@storybook/blocks": "^8.6.10", + "@storybook/react": "^8.6.10", + "@storybook/react-vite": "^8.6.10", + "@storybook/test": "^8.6.10", + "@storybook/theming": "^8.6.10", + "@types/react": "^19.0.12", + "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.19.0", - "eslint-plugin-react-hooks": "^5.0.0", - "eslint-plugin-react-refresh": "^0.4.18", - "eslint-plugin-storybook": "^0.11.2", - "globals": "^15.14.0", - "msw": "^2.7.0", - "remark-gfm": "^4.0.0", - "storybook": "^8.5.3", - "typescript": "~5.7.2", - "typescript-eslint": "^8.22.0", - "vite": "^6.1.0", + "eslint": "^9.23.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "eslint-plugin-storybook": "^0.12.0", + "globals": "^16.0.0", + "msw": "^2.7.3", + "remark-gfm": "^4.0.1", + "storybook": "^8.6.10", + "typescript": "~5.8.2", + "typescript-eslint": "^8.28.0", + "vite": "^6.2.3", "vite-tsconfig-paths": "^5.1.4" }, "eslintConfig": { diff --git a/packages/react-components/package.json b/packages/react-components/package.json index d4ede5ee..f982e2c6 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -157,14 +157,14 @@ }, "homepage": "https://github.com/commercelayer/commercelayer-react-components#readme", "dependencies": { - "@adyen/adyen-web": "^6.9.0", + "@adyen/adyen-web": "^6.11.0", "@commercelayer/organization-config": "^2.2.0", - "@commercelayer/sdk": "^6.34.0", - "@stripe/react-stripe-js": "^3.3.0", - "@stripe/stripe-js": "^5.9.2", + "@commercelayer/sdk": "^6.36.0", + "@stripe/react-stripe-js": "^3.5.1", + "@stripe/stripe-js": "^6.1.0", "@tanstack/react-table": "^8.21.2", - "@types/iframe-resizer": "^3.5.13", - "braintree-web": "^3.115.2", + "@types/iframe-resizer": "^4.0.0", + "braintree-web": "^3.117.1", "frames-react": "^1.2.2", "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", @@ -173,31 +173,31 @@ }, "devDependencies": { "@commercelayer/js-auth": "^6.7.1", - "@faker-js/faker": "^9.5.1", - "@playwright/test": "^1.50.1", + "@faker-js/faker": "^9.6.0", + "@playwright/test": "^1.51.1", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.2.0", - "@types/braintree-web": "^3.96.16", + "@types/braintree-web": "^3.96.17", "@types/lodash": "^4.17.16", - "@types/node": "^22.13.9", + "@types/node": "^22.13.14", "@types/prop-types": "^15.7.14", - "@types/react": "^19.0.8", + "@types/react": "^19.0.12", "@types/react-test-renderer": "^19.0.0", "@types/react-window": "^1.8.8", "@vitejs/plugin-react": "^4.3.4", - "@vitest/coverage-v8": "^3.0.7", + "@vitest/coverage-v8": "^3.0.9", "jsdom": "^26.0.0", "minimize-js": "^1.4.0", "msw": "^2.7.3", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-test-renderer": "^18.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-test-renderer": "^19.0.0", "tsc-alias": "^1.8.11", "tslib": "^2.8.1", "typescript": "^5.8.2", - "vite": "^6.2.0", + "vite": "^6.2.3", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.7" + "vitest": "^3.0.9" }, "peerDependencies": { "react": ">=18.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d4206b6..cabb29ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3192,7 +3192,7 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' '@vitest/coverage-v8@3.0.9': resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} @@ -7650,7 +7650,7 @@ packages: vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' peerDependenciesMeta: vite: optional: true From 0de1a66b9f5c7b7f34cb4181425eeadc7c7ae2cf Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 1 Apr 2025 16:33:28 +0200 Subject: [PATCH 008/165] Remove ts comment --- packages/core/src/auth/getAccessToken.spec.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index 9e9f1f36..efaee5bd 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -14,7 +14,6 @@ describe("getAccessToken", () => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } - // @ts-expect-error mockResolvedValue is not defined authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -33,7 +32,6 @@ describe("getAccessToken", () => { clientSecret: "test-client-secret", } const mockError = new Error("Authentication failed") - // @ts-expect-error mockResolvedValue is not defined authenticate.mockRejectedValue(mockError) await expect(getAccessToken({ grantType, config })).rejects.toThrow( "Authentication failed", From fe27e1ccd5a83b005386fcbd33d3f5e918efc214 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 2 Apr 2025 11:34:49 +0200 Subject: [PATCH 009/165] Add retrievePrice function. Resolve #621 --- .../core/src/prices/retrievePrice.spec.ts | 27 +++++++++++++++++++ packages/core/src/prices/retrievePrice.ts | 23 ++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 packages/core/src/prices/retrievePrice.spec.ts create mode 100644 packages/core/src/prices/retrievePrice.ts diff --git a/packages/core/src/prices/retrievePrice.spec.ts b/packages/core/src/prices/retrievePrice.spec.ts new file mode 100644 index 00000000..cb909ce1 --- /dev/null +++ b/packages/core/src/prices/retrievePrice.spec.ts @@ -0,0 +1,27 @@ +import type { QueryFilter } from "@commercelayer/sdk" +import { describe, expect } from "vitest" +import { type CoreTestInterface, coreTest } from "#extender" +import { getPrices } from "./getPrices.js" +import { retrievePrice } from "./retrievePrice.js" + +describe("retrievePrice", () => { + coreTest( + "should return a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await retrievePrice({ + id: id, + accessToken: token, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.sku_code).toBe(firstPrice.sku_code) + }, + ) +}) diff --git a/packages/core/src/prices/retrievePrice.ts b/packages/core/src/prices/retrievePrice.ts new file mode 100644 index 00000000..b7ce0786 --- /dev/null +++ b/packages/core/src/prices/retrievePrice.ts @@ -0,0 +1,23 @@ +import type { + ListResponse, + Price, + QueryParamsList, + QueryParamsRetrieve, +} from "@commercelayer/sdk" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" + +interface RetrievePrice extends RequestConfig { + id: string +} + +type RetrievePriceParams = RetrievePrice & QueryParamsRetrieve + +export async function retrievePrice({ + accessToken, + id, + ...params +}: RetrievePriceParams): Promise { + const sdk = getSdk({ accessToken }) + return await sdk.prices.retrieve(id, params) +} From e29a3d570b189ee03c4f2c8cca05dfdb357612a6 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 22 Apr 2025 17:37:37 +0200 Subject: [PATCH 010/165] Add updatePrice function, and tests, remove package jwt-decode --- package.json | 12 +- packages/core/extender.ts | 34 +- packages/core/package.json | 11 +- packages/core/src/auth/getAccessToken.spec.ts | 33 +- packages/core/src/auth/getAccessToken.ts | 5 +- packages/core/src/prices/getPrices.spec.ts | 48 +- packages/core/src/prices/getPrices.ts | 27 +- .../core/src/prices/retrievePrice.spec.ts | 37 +- packages/core/src/prices/retrievePrice.ts | 22 +- packages/core/src/prices/updatePrice.spec.ts | 39 + packages/core/src/prices/updatePrice.ts | 33 + packages/core/src/sdk/index.ts | 24 +- packages/core/src/types/base.ts | 5 + packages/core/src/types/index.ts | 1 - packages/core/src/types/jwt.ts | 38 - packages/core/tsconfig.json | 1 + packages/core/vite-env.d.ts | 2 + packages/document/package.json | 46 +- pnpm-lock.yaml | 1301 +++++++++++------ 19 files changed, 1097 insertions(+), 622 deletions(-) create mode 100644 packages/core/src/prices/updatePrice.spec.ts create mode 100644 packages/core/src/prices/updatePrice.ts delete mode 100644 packages/core/src/types/jwt.ts diff --git a/package.json b/package.json index 464095d3..95ef0fc0 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "husky": "^9.1.7", - "lerna": "^8.2.1", - "typescript": "^5.8.2", - "vitest": "^3.0.9" + "lerna": "^8.2.2", + "typescript": "^5.8.3", + "vitest": "^3.1.1" }, "pnpm": { "overrides": { @@ -43,6 +43,10 @@ "micromatch@<4.0.8": ">=4.0.8", "rollup@>=4.0.0 <4.22.4": ">=4.22.4", "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" - } + }, + "onlyBuiltDependencies": [ + "msw", + "nx" + ] } } diff --git a/packages/core/extender.ts b/packages/core/extender.ts index d58d0fd8..30006771 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -2,6 +2,8 @@ import { test } from "vitest" import { getAccessToken } from "./src/auth/getAccessToken.js" const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID +const integrationClientId = import.meta.env.VITE_INTEGRATION_CLIENT_ID +const integrationClientSecret = import.meta.env.VITE_INTEGRATION_CLIENT_SECRET const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE const domain = import.meta.env.VITE_DOMAIN let accessToken: Awaited> | undefined = @@ -11,12 +13,15 @@ export interface CoreTestInterface { accessToken: Awaited> config: { clientId: string - scope: string + scope?: string domain: string } } -export const coreTest = test.extend({ +/** + * This test is used to run integration tests with the sales channel client. + */ +export const coreTest = test.extend({ // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument accessToken: async ({}, use) => { if (accessToken == null) { @@ -38,3 +43,28 @@ export const coreTest = test.extend({ domain, }, }) + +/** + * This test is used to run integration tests with the integration client. + */ +export const coreIntegrationTest = test.extend({ + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId: integrationClientId, + clientSecret: integrationClientSecret, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId: integrationClientId, + domain, + }, +}) diff --git a/packages/core/package.json b/packages/core/package.json index 09d3e787..cb983630 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -32,15 +32,14 @@ "license": "MIT", "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", - "@vitest/coverage-v8": "^3.0.9", + "@vitest/coverage-v8": "^3.1.1", "tsup": "^8.4.0", - "typescript": "^5.8.2", + "typescript": "^5.8.3", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.9" + "vitest": "^3.1.1" }, "dependencies": { - "@commercelayer/js-auth": "^6.7.1", - "@commercelayer/sdk": "6.36.0", - "jwt-decode": "^4.0.0" + "@commercelayer/js-auth": "^6.7.2", + "@commercelayer/sdk": "6.39.0" } } diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index efaee5bd..415c3abb 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,6 +1,6 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ @@ -8,12 +8,13 @@ vi.mock("@commercelayer/js-auth", () => ({ })) describe("getAccessToken", () => { - coreTest( + coreTest( "should call authenticate with the correct parameters", async ({ accessToken, config }) => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } + // @ts-expect-error No types for this function authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -23,19 +24,17 @@ describe("getAccessToken", () => { }, ) - coreTest( - "should throw an error if authenticate fails", - async () => { - const grantType = "client_credentials" - const config = { - clientId: "test-client-id", - clientSecret: "test-client-secret", - } - const mockError = new Error("Authentication failed") - authenticate.mockRejectedValue(mockError) - await expect(getAccessToken({ grantType, config })).rejects.toThrow( - "Authentication failed", - ) - }, - ) + coreTest("should throw an error if authenticate fails", async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + // @ts-expect-error No types for this function + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }) }) diff --git a/packages/core/src/auth/getAccessToken.ts b/packages/core/src/auth/getAccessToken.ts index 56d91815..97f41bfa 100644 --- a/packages/core/src/auth/getAccessToken.ts +++ b/packages/core/src/auth/getAccessToken.ts @@ -8,9 +8,8 @@ interface AuthenticateProps { /** * Retrieves an access token using the provided grant type and configuration. * - * @param {AuthenticateProps} params - The parameters for authentication. - * @param {string} params.grantType - The type of grant to use for authentication. - * @param {object} params.config - The configuration object for authentication. + * @param {AuthenticateProps['grantType']} grantType - The type of grant to use for authentication. + * @param {AuthenticateProps['config']} config - The configuration object for authentication. * @returns {Promise>} A promise that resolves to the access token. */ export async function getAccessToken({ diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts index 3570319c..ac6369f8 100644 --- a/packages/core/src/prices/getPrices.spec.ts +++ b/packages/core/src/prices/getPrices.spec.ts @@ -1,35 +1,29 @@ -import type { QueryFilter } from "@commercelayer/sdk" +import type { Price, QueryParamsList } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getPrices } from "./getPrices.js" describe("getPrices", () => { - coreTest( - "should return a list of prices", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const result = await getPrices({ accessToken: token }) - expect(result).toBeDefined() - }, - ) + coreTest("should return a list of prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }) - coreTest( - "should return a single price", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const params: QueryFilter = { - filters: { - sku_code_eq: "DIGITALPRODUCT", - }, - } - // Call the getPrices function - const result = await getPrices({ accessToken: token, ...params }) - // Assert the expected result - expect(result).toBeDefined() - expect(result.getRecordCount()).toBe(1) - // Add more assertions based on the expected behavior of the getPrices function - }, - ) + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const params = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } satisfies QueryParamsList + // Call the getPrices function + const result = await getPrices({ accessToken: token, params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }) // Add more test cases for different scenarios }) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index bc13fcd9..53d9e737 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,13 +1,32 @@ -import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" +import type { + ListResponse, + Price, + QueryParamsList, + ResourcesConfig, +} from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" -type GetPricesParams = RequestConfig & QueryParamsList +interface GetPrices extends RequestConfig { + params?: QueryParamsList + options?: ResourcesConfig +} + +type GetPricesParams = GetPrices +/** + * Get a list of prices + * + * @param {string} accessToken - The access token to use for authentication. + * @param {QueryParamsList} params - Optional query parameters for the request. + * @param {ResourcesConfig} options - Optional request configuration. + * @returns {Promise>} - A promise that resolves to a list of price resources. + */ export async function getPrices({ accessToken, - ...params + params, + options, }: GetPricesParams): Promise> { const sdk = getSdk({ accessToken }) - return await sdk.prices.list(params) + return await sdk.prices.list(params, options) } diff --git a/packages/core/src/prices/retrievePrice.spec.ts b/packages/core/src/prices/retrievePrice.spec.ts index cb909ce1..3d23ac7b 100644 --- a/packages/core/src/prices/retrievePrice.spec.ts +++ b/packages/core/src/prices/retrievePrice.spec.ts @@ -1,27 +1,24 @@ import type { QueryFilter } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getPrices } from "./getPrices.js" import { retrievePrice } from "./retrievePrice.js" describe("retrievePrice", () => { - coreTest( - "should return a single price", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const firstPrice = (await getPrices({ accessToken: token })).first() - expect(firstPrice).toBeDefined() - if (!firstPrice) { - throw new Error("No price found") - } - const id = firstPrice?.id - const result = await retrievePrice({ - id: id, - accessToken: token, - }) - expect(result).toBeDefined() - expect(result.id).toBe(id) - expect(result.sku_code).toBe(firstPrice.sku_code) - }, - ) + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await retrievePrice({ + id: id, + accessToken: token, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.sku_code).toBe(firstPrice.sku_code) + }) }) diff --git a/packages/core/src/prices/retrievePrice.ts b/packages/core/src/prices/retrievePrice.ts index b7ce0786..0167d569 100644 --- a/packages/core/src/prices/retrievePrice.ts +++ b/packages/core/src/prices/retrievePrice.ts @@ -1,23 +1,29 @@ -import type { - ListResponse, - Price, - QueryParamsList, - QueryParamsRetrieve, -} from "@commercelayer/sdk" +import type { Price, QueryParamsRetrieve } from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" interface RetrievePrice extends RequestConfig { id: string + params?: QueryParamsRetrieve } type RetrievePriceParams = RetrievePrice & QueryParamsRetrieve +/** + * Retrieve a price + * + * @param {string} accessToken - The access token to use for authentication. + * @param {string} id - The ID of the price resource to retrieve. + * @param {QueryParamsRetrieve} params - Optional query parameters for the request. + * @param {RequestConfig} options - Optional request configuration. + * @returns {Promise} - The retrieved price resource. + */ export async function retrievePrice({ accessToken, id, - ...params + params, + options, }: RetrievePriceParams): Promise { const sdk = getSdk({ accessToken }) - return await sdk.prices.retrieve(id, params) + return await sdk.prices.retrieve(id, params, options) } diff --git a/packages/core/src/prices/updatePrice.spec.ts b/packages/core/src/prices/updatePrice.spec.ts new file mode 100644 index 00000000..716c18b5 --- /dev/null +++ b/packages/core/src/prices/updatePrice.spec.ts @@ -0,0 +1,39 @@ +import { describe, expect } from "vitest" +import { coreIntegrationTest } from "#extender" +import { getPrices } from "./getPrices" +import { updatePrice } from "./updatePrice" + +describe("updatePrice", () => { + coreIntegrationTest( + "should update a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await updatePrice({ + accessToken: token, + resource: { + id, + reference: "test-price", + }, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.reference).toBe("test-price") + const clean = await updatePrice({ + accessToken: token, + resource: { + id, + reference: "", + }, + }) + expect(clean).toBeDefined() + expect(clean.id).toBe(id) + expect(clean.reference).toBe("") + }, + ) +}) diff --git a/packages/core/src/prices/updatePrice.ts b/packages/core/src/prices/updatePrice.ts new file mode 100644 index 00000000..617c4e03 --- /dev/null +++ b/packages/core/src/prices/updatePrice.ts @@ -0,0 +1,33 @@ +import type { + Price, + PriceUpdate, + QueryParamsRetrieve, +} from "@commercelayer/sdk" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" + +interface UpdatePrice extends RequestConfig { + resource: PriceUpdate + params?: QueryParamsRetrieve +} + +type UpdatePriceParams = UpdatePrice + +/** + * Update a price + * + * @param {string} accessToken - The access token to use for authentication, must be an integration application. + * @param {PriceUpdate} resource - The price resource to update. + * @param {QueryParamsRetrieve} params - Optional query parameters for the request. + * @param {RequestConfig} options - Optional request configuration. + * @returns {Promise} - The updated price resource. + */ +export async function updatePrice({ + accessToken, + resource, + params, + options, +}: UpdatePriceParams): Promise { + const sdk = getSdk({ accessToken }) + return await sdk.prices.update(resource, params, options) +} diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index 786e0637..2fe821ed 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,8 +1,24 @@ +import { + type JWTIntegration, + type JWTSalesChannel, + type JWTWebApp, + jwtDecode, +} from "@commercelayer/js-auth" import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" -import { jwtDecode } from "jwt-decode" -import type { Jwt, RequestConfig } from "#types" +import type { RequestConfig } from "#types" +/** + * Get the Commerce Layer SDK instance + * + * @param {string} accessToken - The access token to use for authentication. + * @returns {CommerceLayerClient} - The Commerce Layer SDK instance. + */ export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { - const organization = jwtDecode(accessToken).organization.slug - return sdk({ accessToken, organization }) + const { payload } = jwtDecode(accessToken) + const { organization } = payload as + | JWTIntegration + | JWTWebApp + | JWTSalesChannel + const slug = organization.slug + return sdk({ accessToken, organization: slug }) } diff --git a/packages/core/src/types/base.ts b/packages/core/src/types/base.ts index bb1cd2e6..d97b408d 100644 --- a/packages/core/src/types/base.ts +++ b/packages/core/src/types/base.ts @@ -1,3 +1,8 @@ +import type { ResourcesConfig } from "@commercelayer/sdk" + export interface RequestConfig { accessToken: string + id?: string + params?: unknown + options?: ResourcesConfig } diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts index d23de71e..637e47a5 100644 --- a/packages/core/src/types/index.ts +++ b/packages/core/src/types/index.ts @@ -1,2 +1 @@ export type { RequestConfig } from "./base" -export type { Jwt } from "./jwt" diff --git a/packages/core/src/types/jwt.ts b/packages/core/src/types/jwt.ts deleted file mode 100644 index b39a8dc3..00000000 --- a/packages/core/src/types/jwt.ts +++ /dev/null @@ -1,38 +0,0 @@ -export interface Jwt { - organization: Organization - application: Application - market: Market - owner: Owner - scope: string - exp: number - test: boolean - rand: number - iat: number - iss: string -} - -interface Application { - id: string - kind: string - public: boolean -} - -interface Market { - id: string[] - price_list_id: string - stock_location_ids: string[] - geocoder_id: null - allows_external_prices: boolean -} - -interface Organization { - id: string - slug: string - enterprise: boolean - region: string -} - -interface Owner { - id: string - type: string -} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 098e3c6d..366986a2 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -10,6 +10,7 @@ "isolatedModules": true, "verbatimModuleSyntax": true, "lib": ["es2022"], + "noEmit": true, /* Strictness */ "strict": true, diff --git a/packages/core/vite-env.d.ts b/packages/core/vite-env.d.ts index 2745e011..c16c20fd 100644 --- a/packages/core/vite-env.d.ts +++ b/packages/core/vite-env.d.ts @@ -3,6 +3,8 @@ interface ImportMetaEnv { readonly VITE_SALES_CHANNEL_CLIENT_ID: string readonly VITE_SALES_CHANNEL_SCOPE: string + readonly VITE_INTEGRATION_CLIENT_ID: string + readonly VITE_INTEGRATION_CLIENT_SECRET: string readonly VITE_DOMAIN: string } diff --git a/packages/document/package.json b/packages/document/package.json index a15856ef..8b6d5d5c 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -12,37 +12,37 @@ "build-storybook": "storybook build" }, "dependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "^19.1.0", + "react-dom": "^19.1.0" }, "devDependencies": { "@chromatic-com/storybook": "^3.2.6", - "@eslint/js": "^9.23.0", - "@storybook/addon-docs": "^8.6.10", - "@storybook/addon-essentials": "^8.6.10", - "@storybook/addon-interactions": "^8.6.10", - "@storybook/addon-links": "^8.6.10", - "@storybook/addon-mdx-gfm": "^8.6.10", - "@storybook/addon-onboarding": "^8.6.10", - "@storybook/blocks": "^8.6.10", - "@storybook/react": "^8.6.10", - "@storybook/react-vite": "^8.6.10", - "@storybook/test": "^8.6.10", - "@storybook/theming": "^8.6.10", - "@types/react": "^19.0.12", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.23.0", + "@eslint/js": "^9.24.0", + "@storybook/addon-docs": "^8.6.12", + "@storybook/addon-essentials": "^8.6.12", + "@storybook/addon-interactions": "^8.6.12", + "@storybook/addon-links": "^8.6.12", + "@storybook/addon-mdx-gfm": "^8.6.12", + "@storybook/addon-onboarding": "^8.6.12", + "@storybook/blocks": "^8.6.12", + "@storybook/react": "^8.6.12", + "@storybook/react-vite": "^8.6.12", + "@storybook/test": "^8.6.12", + "@storybook/theming": "^8.6.12", + "@types/react": "^19.1.2", + "@types/react-dom": "^19.1.2", + "@vitejs/plugin-react": "^4.4.0", + "eslint": "^9.24.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "eslint-plugin-storybook": "^0.12.0", "globals": "^16.0.0", - "msw": "^2.7.3", + "msw": "^2.7.4", "remark-gfm": "^4.0.1", - "storybook": "^8.6.10", - "typescript": "~5.8.2", - "typescript-eslint": "^8.28.0", - "vite": "^6.2.3", + "storybook": "^8.6.12", + "typescript": "~5.8.3", + "typescript-eslint": "^8.30.1", + "vite": "^6.3.1", "vite-tsconfig-paths": "^5.1.4" }, "eslintConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cabb29ae..807abf60 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,45 +32,42 @@ importers: specifier: ^9.1.7 version: 9.1.7 lerna: - specifier: ^8.2.1 - version: 8.2.1(encoding@0.1.13) + specifier: ^8.2.2 + version: 8.2.2(encoding@0.1.13) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 vitest: - specifier: ^3.0.9 - version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.1.1 + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages/core: dependencies: '@commercelayer/js-auth': - specifier: ^6.7.1 - version: 6.7.1 + specifier: ^6.7.2 + version: 6.7.2 '@commercelayer/sdk': - specifier: 6.36.0 - version: 6.36.0 - jwt-decode: - specifier: ^4.0.0 - version: 4.0.0 + specifier: 6.39.0 + version: 6.39.0 devDependencies: '@arethetypeswrong/cli': specifier: ^0.17.4 version: 0.17.4 '@vitest/coverage-v8': - specifier: ^3.0.9 - version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.1.1 + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) tsup: specifier: ^8.4.0 - version: 8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0) + version: 8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.9 - version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.1.1 + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages/docs: devDependencies: @@ -97,10 +94,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -124,7 +121,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -198,96 +195,96 @@ importers: packages/document: dependencies: react: - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^19.1.0 + version: 19.1.0 react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^19.1.0 + version: 19.1.0(react@19.1.0) devDependencies: '@chromatic-com/storybook': specifier: ^3.2.6 - version: 3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + version: 3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@eslint/js': - specifier: ^9.23.0 - version: 9.23.0 + specifier: ^9.24.0 + version: 9.24.0 '@storybook/addon-docs': - specifier: ^8.6.10 - version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-essentials': - specifier: ^8.6.10 - version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-interactions': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-links': - specifier: ^8.6.10 - version: 8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-mdx-gfm': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-onboarding': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/blocks': - specifier: ^8.6.10 - version: 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@storybook/react': - specifier: ^8.6.10 - version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) + specifier: ^8.6.12 + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) '@storybook/react-vite': - specifier: ^8.6.10 - version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^8.6.12 + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/test': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/theming': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@types/react': - specifier: ^19.0.12 - version: 19.0.12 + specifier: ^19.1.2 + version: 19.1.2 '@types/react-dom': - specifier: ^19.0.4 - version: 19.0.4(@types/react@19.0.12) + specifier: ^19.1.2 + version: 19.1.2(@types/react@19.1.2) '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^4.4.0 + version: 4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) eslint: - specifier: ^9.23.0 - version: 9.23.0 + specifier: ^9.24.0 + version: 9.24.0 eslint-plugin-react-hooks: specifier: ^5.2.0 - version: 5.2.0(eslint@9.23.0) + version: 5.2.0(eslint@9.24.0) eslint-plugin-react-refresh: specifier: ^0.4.19 - version: 0.4.19(eslint@9.23.0) + version: 0.4.19(eslint@9.24.0) eslint-plugin-storybook: specifier: ^0.12.0 - version: 0.12.0(eslint@9.23.0)(typescript@5.8.2) + version: 0.12.0(eslint@9.24.0)(typescript@5.8.3) globals: specifier: ^16.0.0 version: 16.0.0 msw: - specifier: ^2.7.3 - version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) + specifier: ^2.7.4 + version: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) remark-gfm: specifier: ^4.0.1 version: 4.0.1 storybook: - specifier: ^8.6.10 - version: 8.6.10(prettier@2.8.8) + specifier: ^8.6.12 + version: 8.6.12(prettier@2.8.8) typescript: - specifier: ~5.8.2 - version: 5.8.2 + specifier: ~5.8.3 + version: 5.8.3 typescript-eslint: - specifier: ^8.28.0 - version: 8.28.0(eslint@9.23.0)(typescript@5.8.2) + specifier: ^8.30.1 + version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) vite: - specifier: ^6.2.3 - version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.3.1 + version: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: @@ -345,7 +342,7 @@ importers: version: 10.4.0 '@testing-library/react': specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/braintree-web': specifier: ^3.96.17 version: 3.96.17 @@ -1102,6 +1099,10 @@ packages: resolution: {integrity: sha512-GOfOGeLKhdjKa1qTq2KTF14rEKYYX7yvUYH1GYc4YuX3d5DNLqwQJK4eJN054GnAYl4YeyimVSqmLhiwC5OfBA==} engines: {node: '>=18.0.0'} + '@commercelayer/js-auth@6.7.2': + resolution: {integrity: sha512-kk4VqN2iEOreXFq76YqTP83KhBs09Z5Ez9nZNlikXWf5DXzkrOfShqqEwq8ezHjSOlqs4xVyxgQzsEdPP35CeQ==} + engines: {node: '>=18.0.0'} + '@commercelayer/organization-config@2.2.0': resolution: {integrity: sha512-v7vfLru0WiqocrPWfldmqhbG6VKYQcdu480SUCU4wTnDcXLVnlKfgaadkNnv+tVVZXh0qke8/uwrkNoi3VY/Bw==} engines: {node: '>=18', pnpm: '>=7'} @@ -1114,6 +1115,10 @@ packages: resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} engines: {node: '>=20'} + '@commercelayer/sdk@6.39.0': + resolution: {integrity: sha512-HzfXTAXvAe8UOd8E0SOokxjS9K/OVZJ+xX12nLxPS5OEPyAz5AnIzSfn9AVYiuii8QWAkVsjFfTq+4JouZzdEA==} + engines: {node: '>=20'} + '@csstools/color-helpers@5.0.2': resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} @@ -1452,8 +1457,8 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/config-helpers@0.2.0': @@ -1468,8 +1473,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.23.0': - resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==} + '@eslint/js@9.24.0': + resolution: {integrity: sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -1630,8 +1635,8 @@ packages: '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - '@lerna/create@8.2.1': - resolution: {integrity: sha512-Cz2u/fwc03D1EE6VFZCLMmI8FIUtGmxHQ3ECeNblsxv9i0YSKWe4Xm18sjO1xltG/K5ByiH8/HMeY9dlyAv22A==} + '@lerna/create@8.2.2': + resolution: {integrity: sha512-1yn1MvWn2Yz0SFgTTQnef2m1YedF7KwqLLVIOrGkgQrkVHzsveAIk1A1RcRa2yyUh+siKI1YcJ7lUZIEt+qQ3Q==} engines: {node: '>=18.0.0'} '@loaderkit/resolve@1.0.4': @@ -2420,26 +2425,26 @@ packages: '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} - '@storybook/addon-actions@8.6.10': - resolution: {integrity: sha512-g+aC1bFwIwZqxSVjw+BhJJeTmZPBhZT52AO6DUYWF+FZ2N3rjnaVKwT1gZYYhuYw2WtWw2wLivkXcq2L/IBbkg==} + '@storybook/addon-actions@8.6.12': + resolution: {integrity: sha512-B5kfiRvi35oJ0NIo53CGH66H471A3XTzrfaa6SxXEJsgxxSeKScG5YeXcCvLiZfvANRQ7QDsmzPUgg0o3hdMXw==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} - '@storybook/addon-backgrounds@8.6.10': - resolution: {integrity: sha512-zou/VJSVDacuaQVJV22hbQEZrQBllcoxSw40EgSedqLv1qaVpC7Nz5LY9srl522LeoVEP+AOYKf9K7hLbm0o7w==} + '@storybook/addon-backgrounds@8.6.12': + resolution: {integrity: sha512-lmIAma9BiiCTbJ8YfdZkXjpnAIrOUcgboLkt1f6XJ78vNEMnLNzD9gnh7Tssz1qrqvm34v9daDjIb+ggdiKp3Q==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} - '@storybook/addon-controls@8.6.10': - resolution: {integrity: sha512-aMw3NCVSq+vWEAp10kbBlbMx+7PIFFdgxMCh7b9N2DUR/5J4KCNFQosa8fAn03Noh2g5jgceqNyY6L4lDIu0Xw==} + '@storybook/addon-controls@8.6.12': + resolution: {integrity: sha512-9VSRPJWQVb9wLp21uvpxDGNctYptyUX0gbvxIWOHMH3R2DslSoq41lsC/oQ4l4zSHVdL+nq8sCTkhBxIsjKqdQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} @@ -2447,10 +2452,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-docs@8.6.10': - resolution: {integrity: sha512-VnGtzwVaC8NvfhLr8UdIa6n38emU2SaDzfOTbvR1zibiqRmFDbo+kvAGSPOT6oIC5jZleUTLiIz0GzHxLuMxOQ==} + '@storybook/addon-docs@8.6.12': + resolution: {integrity: sha512-kEezQjAf/p3SpDzLABgg4fbT48B6dkT2LiZCKTRmCrJVtuReaAr4R9MMM6Jsph6XjbIj/SvOWf3CMeOPXOs9sg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} @@ -2458,26 +2463,26 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-essentials@8.6.10': - resolution: {integrity: sha512-8sKfAp3KkEjIHm02JhdazEKHlwO8VQgzAHk2fzHREgf24KqlCyF9BhDM1vG38fGdB+B+l1edZTE5a3NmcvK5Cg==} + '@storybook/addon-essentials@8.6.12': + resolution: {integrity: sha512-Y/7e8KFlttaNfv7q2zoHMPdX6hPXHdsuQMAjYl5NG9HOAJREu4XBy4KZpbcozRe4ApZ78rYsN/MO1EuA+bNMIA==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} - '@storybook/addon-highlight@8.6.10': - resolution: {integrity: sha512-ZKl0yKzs/6xOpeDIiqHhfrJGQYA7jQ6cxO2nUm3zyqOnHZspef38VlqE63VttBq+mKnh9VbemmaTd2mUgQnm2A==} + '@storybook/addon-highlight@8.6.12': + resolution: {integrity: sha512-9FITVxdoycZ+eXuAZL9ElWyML/0fPPn9UgnnAkrU7zkMi+Segq/Tx7y+WWanC5zfWZrXAuG6WTOYEXeWQdm//w==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} - '@storybook/addon-interactions@8.6.10': - resolution: {integrity: sha512-BtuqLJj1L5a8a4RmnX5YjrGhiEfn7LTdQgn2m71F8DnMCwvvYLHQgYUcpjobMld1OZr3IKq4/zCqesaGET++fQ==} + '@storybook/addon-interactions@8.6.12': + resolution: {integrity: sha512-cTAJlTq6uVZBEbtwdXkXoPQ4jHOAGKQnYSezBT4pfNkdjn/FnEeaQhMBDzf14h2wr5OgBnJa6Lmd8LD9ficz4A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} @@ -2487,11 +2492,11 @@ packages: react: optional: true - '@storybook/addon-links@8.6.10': - resolution: {integrity: sha512-t7gRsFbOIAsqxb/5KA/LOywvx8USopqfW1KwLDBrDYaRUwkdiJVOSxjKB1a6cndFmqcGzucdXQx/PMmOQe9dig==} + '@storybook/addon-links@8.6.12': + resolution: {integrity: sha512-AfKujFHoAxhxq4yu+6NwylltS9lf5MPs1eLLXvOlwo3l7Y/c68OdxJ7j68vLQhs9H173WVYjKyjbjFxJWf/YYg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 peerDependenciesMeta: react: optional: true @@ -2499,47 +2504,47 @@ packages: '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} - '@storybook/addon-mdx-gfm@8.6.10': - resolution: {integrity: sha512-9Ddu0AZ074O/hgooy2tFPvZqPzCJBQW57gGfCAj9PCvgRoALWsA7s5QHUlicq2r+iIxbKZv6o72ND+7Z9TwA7Q==} + '@storybook/addon-mdx-gfm@8.6.12': + resolution: {integrity: sha512-OKI5+O8xyK8axGPFwkl38NGJ6Rjf7kyhiBPxw5NuHOjOnU/FL4Pw3QmY47TT96TVws27vP3gF5+FX8lj3Dd3rQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} - '@storybook/addon-measure@8.6.10': - resolution: {integrity: sha512-ef5vAum7tMdiTsGsHOIHaLCyN0e3gLU2X4gzNelqH0/x/09C2QQaiOFDIpvbKt6HSjpHJeYcUOGzF7U/o4xVkw==} + '@storybook/addon-measure@8.6.12': + resolution: {integrity: sha512-tACmwqqOvutaQSduw8SMb62wICaT1rWaHtMN3vtWXuxgDPSdJQxLP+wdVyRYMAgpxhLyIO7YRf++Hfha9RHgFg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 - '@storybook/addon-onboarding@8.6.10': - resolution: {integrity: sha512-n4wtlZqYQiigtYCDCRXH1ilmGGv+DG5mggiTLpcLJEh9tZg2dGUptSyGARRF6igYYeiZTdDo8OPvwFUZc5N+vg==} + '@storybook/addon-onboarding@8.6.12': + resolution: {integrity: sha512-/cgxaLy6tr6xO0+QO+qV5rPZS5/c15Daywvg/F03lifLGkMuyn/JDuhu0J5i1LbFsL1RYdf4sjrTOmLXbOT6+Q==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} - '@storybook/addon-outline@8.6.10': - resolution: {integrity: sha512-Z5lQ/q9rULtlD99V1S3ymEU59tJGD2KHEdr4HRUgxo+fkyy7nOZDi88sOupoICBuAVYBIcxLKiMeYrUIwjHqtg==} + '@storybook/addon-outline@8.6.12': + resolution: {integrity: sha512-1ylwm+n1s40S91No0v9T4tCjZORu3GbnjINlyjYTDLLhQHyBQd3nWR1Y1eewU4xH4cW9SnSLcMQFS/82xHqU6A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} - '@storybook/addon-toolbars@8.6.10': - resolution: {integrity: sha512-cHhI+9r/Wt/l+E02V2UvybkmdembqjVUagLNHRIRQSqx0tH762G0OD3JzOC2nqmXMjABY2mUkADORhWERfMPjg==} + '@storybook/addon-toolbars@8.6.12': + resolution: {integrity: sha512-HEcSzo1DyFtIu5/ikVOmh5h85C1IvK9iFKSzBR6ice33zBOaehVJK+Z5f487MOXxPsZ63uvWUytwPyViGInj+g==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} - '@storybook/addon-viewport@8.6.10': - resolution: {integrity: sha512-0ATxfA+bHpTcdTUc83VVJF3XPJqe64Yl1I9UWnx/XG2gzo8avRA44pQe8ETH5Fwr7kAvDMqW6LXAisfsl20wrg==} + '@storybook/addon-viewport@8.6.12': + resolution: {integrity: sha512-EXK2LArAnABsPP0leJKy78L/lbMWow+EIJfytEP5fHaW4EhMR6h7Hzaqzre6U0IMMr/jVFa1ci+m0PJ0eQc2bw==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2553,12 +2558,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/blocks@8.6.10': - resolution: {integrity: sha512-S9XVyN36utNAo78/IHUP1DpCw7vBw5Ef4iO9diF+MLtxP3jJwFXPFkyBSi7AnWig9FH3I8vYI1fh1a4/nk1H4g==} + '@storybook/blocks@8.6.12': + resolution: {integrity: sha512-DohlTq6HM1jDbHYiXL4ZvZ00VkhpUp5uftzj/CZDLY1fYHRjqtaTwWm2/OpceivMA8zDitLcq5atEZN+f+siTg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^8.6.10 + storybook: ^8.6.12 peerDependenciesMeta: react: optional: true @@ -2583,10 +2588,10 @@ packages: vite-plugin-glimmerx: optional: true - '@storybook/builder-vite@8.6.10': - resolution: {integrity: sha512-RXT4uflQSgXSHbWG+Z2Im5r7Ji1wj0Lyo6hVJZIBLEbaIbjfvPtP9CXlhK/z1h90cegHTnkYDd01RHwgmlKRrg==} + '@storybook/builder-vite@8.6.12': + resolution: {integrity: sha512-Gju21ud/3Qw4v2vLNaa5SuJECsI9ICNRr2G0UyCCzRvCHg8jpA9lDReu2NqhLDyFIuDG+ZYT38gcaHEUoNQ8KQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 vite: '>=4.5.2' '@storybook/channels@7.6.17': @@ -2617,8 +2622,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/components@8.6.10': - resolution: {integrity: sha512-9TE2aZU+1zjGO4R74jc4Dmx+pFb+9hm1vnlWH+WVfYV1nCSCZOMmMoO2J86PHPkR6RmPjcQJXz4ySdBbYiwKiw==} + '@storybook/components@8.6.12': + resolution: {integrity: sha512-FiaE8xvCdvKC2arYusgtlDNZ77b8ysr8njAYQZwwaIHjy27TbR2tEpLDCmUwSbANNmivtc/xGEiDDwcNppMWlQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2637,8 +2642,8 @@ packages: '@storybook/core-server@7.6.20': resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} - '@storybook/core@8.6.10': - resolution: {integrity: sha512-VyhE/9/idPeeObsx+DyD8RR2iEwLJGL9rYz61r+1IrpndIVnlYD+vjxc0Y/1jTG1RvShWzEF2A/vzsJ9PzXqcw==} + '@storybook/core@8.6.12': + resolution: {integrity: sha512-t+ZuDzAlsXKa6tLxNZT81gEAt4GNwsKP/Id2wluhmUWD/lwYW0uum1JiPUuanw8xD6TdakCW/7ULZc7aQUBLCQ==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: @@ -2648,10 +2653,10 @@ packages: '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} - '@storybook/csf-plugin@8.6.10': - resolution: {integrity: sha512-yjtFyjEvmmWUG1NzM81/CLI5rOUG311EoPmRnvbNpdzaVug4emC3rX9mR69DsrXfL7kLTDltDH8tjA7wLxpGMA==} + '@storybook/csf-plugin@8.6.12': + resolution: {integrity: sha512-6s8CnP1aoKPb3XtC0jRLUp8M5vTA8RhGAwQDKUsFpCC7g89JR9CaKs9FY2ZSzsNbjR15uASi7b3K8BzeYumYQg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2675,10 +2680,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.6.10': - resolution: {integrity: sha512-Hlps6V0lkhFMbgcJQRynVBne51ciG7Xv+YtiDCd0PQtvZu8+vVJr/ebWt3nCwpvkRHooYiud1ScA3K8McyA73w==} + '@storybook/instrumenter@8.6.12': + resolution: {integrity: sha512-VK5fYAF8jMwWP/u3YsmSwKGh+FeSY8WZn78flzRUwirp2Eg1WWjsqPRubAk7yTpcqcC/km9YMF3KbqfzRv2s/A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2686,8 +2691,8 @@ packages: '@storybook/manager-api@7.6.20': resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} - '@storybook/manager-api@8.6.10': - resolution: {integrity: sha512-roJ2aXqbZfSh9IM4q34U2GpU0CDmUjTKGwAnYOS2SG6rGLPenPflIksW8A52cVFdzGa4eH/KzP2FIg5Zi1KLJQ==} + '@storybook/manager-api@8.6.12': + resolution: {integrity: sha512-O0SpISeJLNTQvhSBOsWzzkCgs8vCjOq1578rwqHlC6jWWm4QmtfdyXqnv7rR1Hk08kQ+Dzqh0uhwHx0nfwy4nQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2714,8 +2719,8 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - '@storybook/preview-api@8.6.10': - resolution: {integrity: sha512-8ki1GgiUlcSqZD3Oe42Fy0uW3E7XPpMAyzO+NSnHCKKfNlZgi036Rr+FyGcKwG5lJyubWwNesPGQX5UHigYu4w==} + '@storybook/preview-api@8.6.12': + resolution: {integrity: sha512-84FE3Hrs0AYKHqpDZOwx1S/ffOfxBdL65lhCoeI8GoWwCkzwa9zEP3kvXBo/BnEDO7nAfxvMhjASTZXbKRJh5Q==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2728,12 +2733,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-dom-shim@8.6.10': - resolution: {integrity: sha512-r4Q5stsoIlSEvOpOJgyFGPej+t9uuIzGI2ul83XNtiHEBs7xlmUN7qAm+U9cOuNZ7mPOXDKt9nZfUfCP5Ouhyw==} + '@storybook/react-dom-shim@8.6.12': + resolution: {integrity: sha512-51QvoimkBzYs8s3rCYnY5h0cFqLz/Mh0vRcughwYaXckWzDBV8l67WBO5Xf5nBsukCbWyqBVPpEQLww8s7mrLA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} @@ -2743,14 +2748,14 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' - '@storybook/react-vite@8.6.10': - resolution: {integrity: sha512-CyptES7yE1fnZWMN5xk6AFPuchjg4YN8VvBaC0YyveKhfeXlczGwG9nPU28ZY3I+Xzz5g/A6rBvgSRQ88hc/bQ==} + '@storybook/react-vite@8.6.12': + resolution: {integrity: sha512-UA2Kule99oyFgHdhcuhrRwCKyWu/yMbqbl9U7NwowFHNwWWFjVMMir/AmfShb/H1C1DQ3LqOad6/QwJyPLjP8g==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.10 + '@storybook/test': 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 vite: '>=4.5.2' peerDependenciesMeta: '@storybook/test': @@ -2767,14 +2772,14 @@ packages: typescript: optional: true - '@storybook/react@8.6.10': - resolution: {integrity: sha512-QCs5nyXe+G2ZoZ1uspEsnSp7VYLJej5dJ1bSf22rrdHQde641zvC2HZQaba4dqR2YQxRCG9JtCdaQ3UVmnfzzA==} + '@storybook/react@8.6.12': + resolution: {integrity: sha512-NzxlHLA5DkDgZM/dMwTYinuzRs6rsUPmlqP+NIv6YaciQ4NGnTYyOC7R/SqI6HHFm8ZZ5eMYvpfiFmhZ9rU+rQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.10 + '@storybook/test': 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -2791,10 +2796,10 @@ packages: '@storybook/telemetry@7.6.20': resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} - '@storybook/test@8.6.10': - resolution: {integrity: sha512-eCQueRB0SpwjnXcE5wmUNu2G7Z7nRzzHw+0QW2Yc3DoA5UwmOiuwTseZenQkD019dwvFJ87fHo1xXnDAamX1Tg==} + '@storybook/test@8.6.12': + resolution: {integrity: sha512-0BK1Eg+VD0lNMB1BtxqHE3tP9FdkUmohtvWG7cq6lWvMrbCmAmh3VWai3RMCCDOukPFpjabOr8BBRLVvhNpv2w==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} @@ -2812,8 +2817,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/theming@8.6.10': - resolution: {integrity: sha512-4E5ArcJ/bhrWtlYzQDbtA3O3pha/Ys0Ja6X4waJQ5UJENzUMdVz6vTLSUHtG5hNRmSqreogxe4Ed88+0JtY7NQ==} + '@storybook/theming@8.6.12': + resolution: {integrity: sha512-6VjZg8HJ2Op7+KV7ihJpYrDnFtd9D1jrQnUS8LckcpuBXrIEbaut5+34ObY8ssQnSqkk2GwIZBBBQYQBCVvkOw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -3057,8 +3062,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.0.4': - resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} + '@types/react-dom@19.1.2': + resolution: {integrity: sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==} peerDependencies: '@types/react': ^19.0.0 @@ -3074,6 +3079,9 @@ packages: '@types/react@19.0.12': resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} + '@types/react@19.1.2': + resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3110,16 +3118,16 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.28.0': - resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} + '@typescript-eslint/eslint-plugin@8.30.1': + resolution: {integrity: sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.28.0': - resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} + '@typescript-eslint/parser@8.30.1': + resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3129,12 +3137,12 @@ packages: resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.28.0': - resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + '@typescript-eslint/scope-manager@8.30.1': + resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.28.0': - resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} + '@typescript-eslint/type-utils@8.30.1': + resolution: {integrity: sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3144,8 +3152,8 @@ packages: resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.28.0': - resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} + '@typescript-eslint/types@8.30.1': + resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.23.0': @@ -3154,8 +3162,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.28.0': - resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} + '@typescript-eslint/typescript-estree@8.30.1': + resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' @@ -3167,8 +3175,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.28.0': - resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + '@typescript-eslint/utils@8.30.1': + resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3178,8 +3186,8 @@ packages: resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.28.0': - resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} + '@typescript-eslint/visitor-keys@8.30.1': + resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitejs/plugin-react@3.1.0': @@ -3194,6 +3202,12 @@ packages: peerDependencies: vite: '>=4.5.2' + '@vitejs/plugin-react@4.4.0': + resolution: {integrity: sha512-x/EztcTKVj+TDeANY1WjNeYsvZjZdfWRMP/KXi5Yn8BoTzpa13ZltaQqKfvWYbX8CE10GOHHdC5v86jY9x8i/g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: '>=4.5.2' + '@vitest/coverage-v8@3.0.9': resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} peerDependencies: @@ -3203,12 +3217,24 @@ packages: '@vitest/browser': optional: true + '@vitest/coverage-v8@3.1.1': + resolution: {integrity: sha512-MgV6D2dhpD6Hp/uroUoAIvFqA8AuvXEFBC2eepG3WFc1pxTfdk1LEqqkWoWhjz+rytoqrnUUCdf6Lzco3iHkLQ==} + peerDependencies: + '@vitest/browser': 3.1.1 + vitest: 3.1.1 + peerDependenciesMeta: + '@vitest/browser': + optional: true + '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} '@vitest/expect@3.0.9': resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==} + '@vitest/expect@3.1.1': + resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} + '@vitest/mocker@3.0.9': resolution: {integrity: sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==} peerDependencies: @@ -3220,6 +3246,17 @@ packages: vite: optional: true + '@vitest/mocker@3.1.1': + resolution: {integrity: sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==} + peerDependencies: + msw: ^2.4.9 + vite: '>=5.1.7' + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} @@ -3229,18 +3266,30 @@ packages: '@vitest/pretty-format@3.0.9': resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} + '@vitest/pretty-format@3.1.1': + resolution: {integrity: sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==} + '@vitest/runner@3.0.9': resolution: {integrity: sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==} + '@vitest/runner@3.1.1': + resolution: {integrity: sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==} + '@vitest/snapshot@3.0.9': resolution: {integrity: sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==} + '@vitest/snapshot@3.1.1': + resolution: {integrity: sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==} + '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} '@vitest/spy@3.0.9': resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==} + '@vitest/spy@3.1.1': + resolution: {integrity: sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==} + '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} @@ -3250,6 +3299,9 @@ packages: '@vitest/utils@3.0.9': resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} + '@vitest/utils@3.1.1': + resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -4338,8 +4390,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.23.0: - resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} + eslint@9.24.0: + resolution: {integrity: sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -5322,8 +5374,8 @@ packages: resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} engines: {node: '>=14.0.0'} - lerna@8.2.1: - resolution: {integrity: sha512-Xwjv9/4ixp7fpBWhtvp7dz4NoQT8DEf7hzibHKCgu/8kmZUHeXsTn+TKspHqhI+p4YDmdkDnkg8xmymz73kVOg==} + lerna@8.2.2: + resolution: {integrity: sha512-GkqBELTG4k7rfzAwRok2pKBvhNo046Hfwcj7TuhDah3q58/BBBAqvIFLfqEI5fglnNOs6maMSn6/MWjccQE55A==} engines: {node: '>=18.0.0'} hasBin: true @@ -5912,6 +5964,16 @@ packages: typescript: optional: true + msw@2.7.4: + resolution: {integrity: sha512-A2kuMopOjAjNEYkn0AnB1uj+x7oBjLIunFk7Ud4icEnVWFf6iBekn8oXW4zIwcpfEdWP9sLqyVaHVzneWoGEww==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} @@ -6588,6 +6650,11 @@ packages: peerDependencies: react: ^19.0.0 + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + peerDependencies: + react: ^19.1.0 + react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} peerDependencies: @@ -6613,6 +6680,10 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -6656,6 +6727,10 @@ packages: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6876,6 +6951,9 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -7054,8 +7132,8 @@ packages: resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} hasBin: true - storybook@8.6.10: - resolution: {integrity: sha512-7LUD9hNllMZZhDJutxgejrpWI89rsBF+p2kCfWoJ9EuBTgRy8bbVQZlG7bE1gf7qLmnabnklsFslTakS2SbKRw==} + storybook@8.6.12: + resolution: {integrity: sha512-Z/nWYEHBTLK1ZBtAWdhxC0l5zf7ioJ7G4+zYqtTdYeb67gTnxNj80gehf8o8QY9L2zA2+eyMRGLC2V5fI7Z3Tw==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -7424,8 +7502,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.28.0: - resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==} + typescript-eslint@8.30.1: + resolution: {integrity: sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7446,6 +7524,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -7647,6 +7730,11 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true + vite-node@3.1.1: + resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: @@ -7735,6 +7823,46 @@ packages: yaml: optional: true + vite@6.3.1: + resolution: {integrity: sha512-kkzzkqtMESYklo96HKKPE5KKLkC1amlsqt+RjFMlX2AvbRB/0wghap19NdBxxwGZ+h/C6DLCrcEphPIItlGrRQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@3.0.9: resolution: {integrity: sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7763,6 +7891,34 @@ packages: jsdom: optional: true + vitest@3.1.1: + resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.1.1 + '@vitest/ui': 3.1.1 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} @@ -8812,13 +8968,13 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@chromatic-com/storybook@3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: chromatic: 11.25.2 filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.2.2(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + react-confetti: 6.2.2(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -8830,6 +8986,8 @@ snapshots: '@commercelayer/js-auth@6.7.1': {} + '@commercelayer/js-auth@6.7.2': {} + '@commercelayer/organization-config@2.2.0': dependencies: merge-anything: 5.1.7 @@ -8838,6 +8996,8 @@ snapshots: '@commercelayer/sdk@6.36.0': {} + '@commercelayer/sdk@6.39.0': {} + '@csstools/color-helpers@5.0.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': @@ -9018,14 +9178,14 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.23.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.24.0)': dependencies: - eslint: 9.23.0 + eslint: 9.24.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.0 @@ -9053,7 +9213,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.23.0': {} + '@eslint/js@9.24.0': {} '@eslint/object-schema@2.1.6': {} @@ -9196,14 +9356,14 @@ snapshots: optionalDependencies: typescript: 5.8.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 10.4.5 magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + react-docgen-typescript: 2.2.2(typescript@5.8.3) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -9229,7 +9389,7 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@lerna/create@8.2.1(encoding@0.1.13)(typescript@5.8.2)': + '@lerna/create@8.2.2(encoding@0.1.13)(typescript@5.8.3)': dependencies: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 @@ -9247,7 +9407,7 @@ snapshots: console-control-strings: 1.1.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.8.2) + cosmiconfig: 9.0.0(typescript@5.8.3) dedent: 1.5.3 execa: 5.0.0 fs-extra: 11.3.0 @@ -9318,7 +9478,7 @@ snapshots: '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.1.2 react: 18.3.1 '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': @@ -9327,11 +9487,11 @@ snapshots: '@types/react': 18.3.18 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.12 - react: 19.0.0 + '@types/react': 19.1.2 + react: 19.1.0 '@mswjs/interceptors@0.37.3': dependencies: @@ -9635,40 +9795,40 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9709,19 +9869,19 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9730,17 +9890,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9757,14 +9917,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -9774,19 +9934,19 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) @@ -9794,72 +9954,72 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9876,46 +10036,46 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9989,15 +10149,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/rect@1.0.1': dependencies: @@ -10118,13 +10278,13 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-actions@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-actions@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) uuid: 9.0.1 '@storybook/addon-backgrounds@7.6.20': @@ -10133,16 +10293,16 @@ snapshots: memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-backgrounds@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -10153,20 +10313,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-controls@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-controls@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -10189,25 +10349,25 @@ snapshots: - encoding - supports-color - '@storybook/addon-docs@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-docs@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) - '@storybook/blocks': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@mdx-js/react': 3.1.0(@types/react@19.1.2)(react@19.1.0) + '@storybook/blocks': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -10226,18 +10386,18 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': - dependencies: - '@storybook/addon-actions': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-backgrounds': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-controls': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-docs': 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-highlight': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-measure': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-outline': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-toolbars': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-viewport': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/addon-essentials@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': + dependencies: + '@storybook/addon-actions': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-backgrounds': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-controls': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-docs': 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-highlight': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-measure': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-outline': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-toolbars': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-viewport': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -10246,10 +10406,10 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-highlight@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-highlight@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-interactions@7.6.20': dependencies: @@ -10259,13 +10419,13 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 - '@storybook/addon-interactions@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-interactions@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/instrumenter': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) polished: 4.3.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-links@7.6.20(react@18.3.1)': @@ -10276,13 +10436,13 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-links@8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-links@8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: - react: 19.0.0 + react: 19.1.0 '@storybook/addon-mdx-gfm@7.6.20': dependencies: @@ -10292,10 +10452,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-mdx-gfm@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-mdx-gfm@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: remark-gfm: 4.0.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -10305,41 +10465,41 @@ snapshots: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - '@storybook/addon-measure@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-measure@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-onboarding@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - '@storybook/addon-outline@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-outline@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-toolbars@7.6.20': {} - '@storybook/addon-toolbars@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-toolbars@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 - '@storybook/addon-viewport@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-viewport@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: memoizerific: 1.11.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10358,11 +10518,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -10391,14 +10551,14 @@ snapshots: - encoding - supports-color - '@storybook/blocks@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/blocks@8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@storybook/icons': 1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/icons': 1.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) '@storybook/builder-manager@7.6.20(encoding@0.1.13)': dependencies: @@ -10447,13 +10607,13 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) browser-assert: 1.2.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@storybook/channels@7.6.17': dependencies: @@ -10553,10 +10713,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/components@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 @@ -10571,9 +10731,9 @@ snapshots: - '@types/react' - '@types/react-dom' - '@storybook/components@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/components@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/core-client@7.6.20': dependencies: @@ -10665,9 +10825,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core@8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/core@8.6.12(prettier@2.8.8)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) better-opn: 3.0.2 browser-assert: 1.2.1 esbuild: 0.25.1 @@ -10693,9 +10853,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/csf-plugin@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/csf-plugin@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) unplugin: 1.16.1 '@storybook/csf-tools@7.6.20': @@ -10733,16 +10893,16 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/icons@1.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - '@storybook/instrumenter@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/instrumenter@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10784,9 +10944,9 @@ snapshots: - react - react-dom - '@storybook/manager-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/manager-api@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/manager@7.6.20': {} @@ -10834,9 +10994,9 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/preview-api@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/preview@7.6.20': {} @@ -10845,11 +11005,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-dom-shim@8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/react-dom-shim@8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: @@ -10871,23 +11031,23 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react-vite@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@storybook/react': 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) + '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) find-up: 5.0.0 magic-string: 0.30.17 - react: 19.0.0 + react: 19.1.0 react-docgen: 7.1.0 - react-dom: 19.0.0(react@19.0.0) + react-dom: 19.1.0(react@19.1.0) resolve: 1.22.10 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) tsconfig-paths: 4.2.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) transitivePeerDependencies: - rollup - supports-color @@ -10924,20 +11084,20 @@ snapshots: - encoding - supports-color - '@storybook/react@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)': + '@storybook/react@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)': dependencies: - '@storybook/components': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/components': 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/preview-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/manager-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/preview-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) optionalDependencies: - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - typescript: 5.8.2 + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + typescript: 5.8.3 '@storybook/router@7.6.17': dependencies: @@ -10965,16 +11125,16 @@ snapshots: - encoding - supports-color - '@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/instrumenter': 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/testing-library@0.2.2': dependencies: @@ -11000,9 +11160,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/theming@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/theming@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/types@7.6.17': dependencies: @@ -11067,7 +11227,7 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 @@ -11075,7 +11235,7 @@ snapshots: react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.12 - '@types/react-dom': 19.0.4(@types/react@19.0.12) + '@types/react-dom': 19.1.2(@types/react@19.0.12) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -11265,22 +11425,27 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.0.4(@types/react@18.3.18)': + '@types/react-dom@19.1.2(@types/react@18.3.18)': dependencies: '@types/react': 18.3.18 optional: true - '@types/react-dom@19.0.4(@types/react@19.0.12)': + '@types/react-dom@19.1.2(@types/react@19.0.12)': dependencies: '@types/react': 19.0.12 + optional: true + + '@types/react-dom@19.1.2(@types/react@19.1.2)': + dependencies: + '@types/react': 19.1.2 '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 19.0.12 + '@types/react': 19.1.2 '@types/react-window@1.8.8': dependencies: - '@types/react': 19.0.12 + '@types/react': 19.1.2 '@types/react@18.3.18': dependencies: @@ -11291,6 +11456,10 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/react@19.1.2': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.6': {} '@types/semver@7.5.8': {} @@ -11326,32 +11495,32 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 - eslint: 9.23.0 + '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/type-utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.30.1 + eslint: 9.24.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.30.1 debug: 4.4.0 - eslint: 9.23.0 - typescript: 5.8.2 + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -11360,27 +11529,27 @@ snapshots: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/scope-manager@8.28.0': + '@typescript-eslint/scope-manager@8.30.1': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/visitor-keys': 8.30.1 - '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) debug: 4.4.0 - eslint: 9.23.0 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + eslint: 9.24.0 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/types@8.28.0': {} + '@typescript-eslint/types@8.30.1': {} - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 @@ -11389,44 +11558,44 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/visitor-keys': 8.30.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.23.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.23.0(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -11435,9 +11604,9 @@ snapshots: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.28.0': + '@typescript-eslint/visitor-keys@8.30.1': dependencies: - '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/types': 8.30.1 eslint-visitor-keys: 4.2.0 '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': @@ -11473,6 +11642,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-react@4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + '@vitest/coverage-v8@3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 @@ -11491,6 +11671,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 1.0.2 + debug: 4.4.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magic-string: 0.30.17 + magicast: 0.3.5 + std-env: 3.8.1 + test-exclude: 7.0.1 + tinyrainbow: 2.0.0 + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 @@ -11505,14 +11703,30 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/expect@3.1.1': + dependencies: + '@vitest/spy': 3.1.1 + '@vitest/utils': 3.1.1 + chai: 5.2.0 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: msw: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + + '@vitest/mocker@3.1.1(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + dependencies: + '@vitest/spy': 3.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -11526,17 +11740,32 @@ snapshots: dependencies: tinyrainbow: 2.0.0 + '@vitest/pretty-format@3.1.1': + dependencies: + tinyrainbow: 2.0.0 + '@vitest/runner@3.0.9': dependencies: '@vitest/utils': 3.0.9 pathe: 2.0.3 + '@vitest/runner@3.1.1': + dependencies: + '@vitest/utils': 3.1.1 + pathe: 2.0.3 + '@vitest/snapshot@3.0.9': dependencies: '@vitest/pretty-format': 3.0.9 magic-string: 0.30.17 pathe: 2.0.3 + '@vitest/snapshot@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + magic-string: 0.30.17 + pathe: 2.0.3 + '@vitest/spy@2.0.5': dependencies: tinyspy: 3.0.2 @@ -11545,6 +11774,10 @@ snapshots: dependencies: tinyspy: 3.0.2 + '@vitest/spy@3.1.1': + dependencies: + tinyspy: 3.0.2 + '@vitest/utils@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 @@ -11564,6 +11797,12 @@ snapshots: loupe: 3.1.3 tinyrainbow: 2.0.0 + '@vitest/utils@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + loupe: 3.1.3 + tinyrainbow: 2.0.0 + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -12315,14 +12554,14 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.8.2): + cosmiconfig@9.0.0(typescript@5.8.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 credit-card-type@10.0.2: {} @@ -12691,19 +12930,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-plugin-react-hooks@5.2.0(eslint@9.23.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.24.0): dependencies: - eslint: 9.23.0 + eslint: 9.24.0 - eslint-plugin-react-refresh@0.4.19(eslint@9.23.0): + eslint-plugin-react-refresh@0.4.19(eslint@9.24.0): dependencies: - eslint: 9.23.0 + eslint: 9.24.0 - eslint-plugin-storybook@0.12.0(eslint@9.23.0)(typescript@5.8.2): + eslint-plugin-storybook@0.12.0(eslint@9.24.0)(typescript@5.8.3): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.23.0(eslint@9.23.0)(typescript@5.8.2) - eslint: 9.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.24.0)(typescript@5.8.3) + eslint: 9.24.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -12723,15 +12962,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.23.0: + eslint@9.24.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 + '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.0 '@eslint/core': 0.12.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.23.0 + '@eslint/js': 9.24.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -13810,9 +14049,9 @@ snapshots: dotenv: 16.4.7 dotenv-expand: 10.0.0 - lerna@8.2.1(encoding@0.1.13): + lerna@8.2.2(encoding@0.1.13): dependencies: - '@lerna/create': 8.2.1(encoding@0.1.13)(typescript@5.8.2) + '@lerna/create': 8.2.2(encoding@0.1.13)(typescript@5.8.3) '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 @@ -13830,7 +14069,7 @@ snapshots: conventional-changelog-angular: 7.0.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.8.2) + cosmiconfig: 9.0.0(typescript@5.8.3) dedent: 1.5.3 envinfo: 7.13.0 execa: 5.0.0 @@ -13882,7 +14121,7 @@ snapshots: strong-log-transformer: 2.1.0 tar: 6.2.1 temp-dir: 1.0.0 - typescript: 5.8.2 + typescript: 5.8.3 upath: 2.0.1 uuid: 10.0.0 validate-npm-package-license: 3.0.4 @@ -14844,6 +15083,31 @@ snapshots: transitivePeerDependencies: - '@types/node' + msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.1.8(@types/node@22.13.14) + '@mswjs/interceptors': 0.37.3 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + graphql: 16.10.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + strict-event-emitter: 0.5.1 + type-fest: 4.37.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - '@types/node' + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 @@ -15531,15 +15795,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-confetti@6.2.2(react@19.0.0): + react-confetti@6.2.2(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 tween-functions: 1.2.0 react-docgen-typescript@2.2.2(typescript@5.8.2): dependencies: typescript: 5.8.2 + react-docgen-typescript@2.2.2(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 @@ -15566,6 +15834,11 @@ snapshots: react: 19.0.0 scheduler: 0.25.0 + react-dom@19.1.0(react@19.1.0): + dependencies: + react: 19.1.0 + scheduler: 0.26.0 + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -15586,6 +15859,8 @@ snapshots: react-refresh@0.14.2: {} + react-refresh@0.17.0: {} + react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 @@ -15625,6 +15900,8 @@ snapshots: react@19.0.0: {} + react@19.1.0: {} + read-cmd-shim@4.0.0: {} read-package-json-fast@3.0.2: @@ -15908,6 +16185,8 @@ snapshots: scheduler@0.25.0: {} + scheduler@0.26.0: {} + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -16121,9 +16400,9 @@ snapshots: - supports-color - utf-8-validate - storybook@8.6.10(prettier@2.8.8): + storybook@8.6.12(prettier@2.8.8): dependencies: - '@storybook/core': 8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/core': 8.6.12(prettier@2.8.8)(storybook@8.6.12(prettier@2.8.8)) optionalDependencies: prettier: 2.8.8 transitivePeerDependencies: @@ -16377,9 +16656,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.0.1(typescript@5.8.2): + ts-api-utils@2.0.1(typescript@5.8.3): dependencies: - typescript: 5.8.2 + typescript: 5.8.3 ts-dedent@2.2.0: {} @@ -16398,6 +16677,10 @@ snapshots: optionalDependencies: typescript: 5.8.2 + tsconfck@3.1.5(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -16408,7 +16691,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0): + tsup@8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 @@ -16428,7 +16711,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.3 - typescript: 5.8.2 + typescript: 5.8.3 transitivePeerDependencies: - jiti - supports-color @@ -16472,13 +16755,13 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.28.0(eslint@9.23.0)(typescript@5.8.2): + typescript-eslint@8.30.1(eslint@9.24.0)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -16488,6 +16771,8 @@ snapshots: typescript@5.8.2: {} + typescript@5.8.3: {} + ufo@1.5.4: {} uglify-js@3.19.3: @@ -16706,7 +16991,28 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-node@3.1.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 2.0.3 + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -16743,6 +17049,17 @@ snapshots: - supports-color - typescript + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): + dependencies: + debug: 4.4.0 + globrex: 0.1.2 + tsconfck: 3.1.5(typescript@5.8.3) + optionalDependencies: + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + - typescript + vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 @@ -16765,10 +17082,24 @@ snapshots: terser: 5.39.0 yaml: 2.7.0 + vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): + dependencies: + esbuild: 0.25.1 + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.35.0 + tinyglobby: 0.2.12 + optionalDependencies: + '@types/node': 22.13.14 + fsevents: 2.3.3 + terser: 5.39.0 + yaml: 2.7.0 + vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.9 - '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.9 '@vitest/runner': 3.0.9 '@vitest/snapshot': 3.0.9 @@ -16784,7 +17115,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-node: 3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -16805,6 +17136,46 @@ snapshots: - tsx - yaml + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): + dependencies: + '@vitest/expect': 3.1.1 + '@vitest/mocker': 3.1.1(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.1.1 + '@vitest/runner': 3.1.1 + '@vitest/snapshot': 3.1.1 + '@vitest/spy': 3.1.1 + '@vitest/utils': 3.1.1 + chai: 5.2.0 + debug: 4.4.0 + expect-type: 1.2.0 + magic-string: 0.30.17 + pathe: 2.0.3 + std-env: 3.8.1 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.1.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 22.13.14 + jsdom: 26.0.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 From 10a582b928d3f423e8a6bfefa0de3355df94ac62 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 16 Apr 2024 12:18:43 +0200 Subject: [PATCH 011/165] Create new core package --- packages/core/package.json | 42 ++++++++++++++++++++++++++++++++++++++ pnpm-lock.yaml | 31 ++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 packages/core/package.json diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 00000000..2558e295 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,42 @@ +{ + "name": "@commercelayer/core", + "version": "1.0.0", + "description": "Commerce Layer Components Core SDK", + "type": "module", + "main": "./dist/index.js", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "keywords": [ + "jamstack", + "headless", + "ecommerce", + "api", + "components" + ], + "scripts": { + "lint": "eslint src --ext .ts,.tsx", + "lint:fix": "eslint src --ext .ts,.tsx --fix", + "test": "pnpm run lint && vitest run --silent", + "test:watch": "vitest --silent", + "build": "tsup" + }, + "publishConfig": { + "access": "public" + }, + "author": { + "name": "Alessandro Casazza", + "email": "alessandro@commercelayer.io" + }, + "license": "MIT", + "devDependencies": { + "tsup": "^8.0.2", + "typescript": "^5.4.5", + "vite-tsconfig-paths": "^4.3.2", + "vitest": "^1.5.0" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba78f73d..995d4a2e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,6 +51,21 @@ importers: specifier: ^5.9.2 version: 5.9.2 + packages/core: + devDependencies: + tsup: + specifier: ^8.0.2 + version: 8.0.2(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + vite-tsconfig-paths: + specifier: ^4.3.2 + version: 4.3.2(typescript@5.4.5) + vitest: + specifier: ^1.5.0 + version: 1.5.0 + packages/docs: devDependencies: '@babel/core': @@ -10765,6 +10780,7 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true glob@9.3.5: dependencies: @@ -10907,6 +10923,7 @@ snapshots: dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true inherits@2.0.4: {} @@ -12233,6 +12250,7 @@ snapshots: once@1.4.0: dependencies: wrappy: 1.0.2 + dev: true onetime@5.1.2: dependencies: @@ -12841,6 +12859,19 @@ snapshots: reusify@1.1.0: {} + rimraf@2.6.3: + dependencies: + glob: 7.2.3 + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + dev: true + rimraf@4.4.1: dependencies: glob: 9.3.5 From ee8f0c2d8d9755a98da414ae29ff969d93471adc Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 19 Apr 2024 10:51:27 +0200 Subject: [PATCH 012/165] Add configuration and getPrices function --- .vscode/settings.json | 1 + packages/core/package.json | 4 +++ packages/core/src/index.ts | 0 packages/core/src/prices/getPrices.test.ts | 20 ++++++++++++ packages/core/src/prices/getPrices.ts | 13 ++++++++ packages/core/src/sdk/index.ts | 8 +++++ packages/core/src/types/base.ts | 3 ++ packages/core/src/types/index.ts | 2 ++ packages/core/src/types/jwt.ts | 38 ++++++++++++++++++++++ packages/core/tsconfig.json | 34 +++++++++++++++++++ packages/core/tsup.config.ts | 15 +++++++++ pnpm-lock.yaml | 13 ++++++-- 12 files changed, 148 insertions(+), 3 deletions(-) create mode 100644 packages/core/src/index.ts create mode 100644 packages/core/src/prices/getPrices.test.ts create mode 100644 packages/core/src/prices/getPrices.ts create mode 100644 packages/core/src/sdk/index.ts create mode 100644 packages/core/src/types/base.ts create mode 100644 packages/core/src/types/index.ts create mode 100644 packages/core/src/types/jwt.ts create mode 100644 packages/core/tsconfig.json create mode 100644 packages/core/tsup.config.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 6eb5b69d..47ed019a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,7 @@ "eslint.workingDirectories": [ "packages/react-components", "packages/docs", + "packages/core", ], "eslint.validate": [ "javascript", diff --git a/packages/core/package.json b/packages/core/package.json index 2558e295..280080f7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -38,5 +38,9 @@ "typescript": "^5.4.5", "vite-tsconfig-paths": "^4.3.2", "vitest": "^1.5.0" + }, + "dependencies": { + "@commercelayer/sdk": "6.0.0-rc.2", + "jwt-decode": "^4.0.0" } } \ No newline at end of file diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/core/src/prices/getPrices.test.ts b/packages/core/src/prices/getPrices.test.ts new file mode 100644 index 00000000..799a6735 --- /dev/null +++ b/packages/core/src/prices/getPrices.test.ts @@ -0,0 +1,20 @@ +import { getPrices } from './getPrices.js' + +describe('getPrices', () => { + test('should return a list of prices', async () => { + // Mock the necessary dependencies and setup test data + const accessToken = 'YOUR_ACCESS_TOKEN' + const params = { + // Set your desired parameters for the getPrices function + } + + // Call the getPrices function + const result = await getPrices({ accessToken, ...params }) + + // Assert the expected result + expect(result).toBeDefined() + // Add more assertions based on the expected behavior of the getPrices function + }) + + // Add more test cases for different scenarios +}) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts new file mode 100644 index 00000000..c86e5607 --- /dev/null +++ b/packages/core/src/prices/getPrices.ts @@ -0,0 +1,13 @@ +import type { ListResponse, Price, QueryParamsList } from '@commercelayer/sdk' +import { getSdk } from 'src/sdk/index.js' +import type { RequestConfig } from 'src/types/index.js' + +type GetPricesParams = RequestConfig & QueryParamsList + +export async function getPrices({ + accessToken, + ...params +}: GetPricesParams): Promise> { + const sdk = getSdk({ accessToken }) + return await sdk.prices.list(params) +} diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts new file mode 100644 index 00000000..7f9faad5 --- /dev/null +++ b/packages/core/src/sdk/index.ts @@ -0,0 +1,8 @@ +import type { Jwt, RequestConfig } from 'src/types/index.js' +import sdk, { type CommerceLayerClient } from '@commercelayer/sdk' +import { jwtDecode } from 'jwt-decode' + +export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { + const organization = jwtDecode(accessToken).organization.slug + return sdk.default({ accessToken, organization }) +} diff --git a/packages/core/src/types/base.ts b/packages/core/src/types/base.ts new file mode 100644 index 00000000..bb1cd2e6 --- /dev/null +++ b/packages/core/src/types/base.ts @@ -0,0 +1,3 @@ +export interface RequestConfig { + accessToken: string +} diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts new file mode 100644 index 00000000..93bd730f --- /dev/null +++ b/packages/core/src/types/index.ts @@ -0,0 +1,2 @@ +export type { RequestConfig } from './base.js' +export type { Jwt } from './jwt.js' diff --git a/packages/core/src/types/jwt.ts b/packages/core/src/types/jwt.ts new file mode 100644 index 00000000..b39a8dc3 --- /dev/null +++ b/packages/core/src/types/jwt.ts @@ -0,0 +1,38 @@ +export interface Jwt { + organization: Organization + application: Application + market: Market + owner: Owner + scope: string + exp: number + test: boolean + rand: number + iat: number + iss: string +} + +interface Application { + id: string + kind: string + public: boolean +} + +interface Market { + id: string[] + price_list_id: string + stock_location_ids: string[] + geocoder_id: null + allows_external_prices: boolean +} + +interface Organization { + id: string + slug: string + enterprise: boolean + region: string +} + +interface Owner { + id: string + type: string +} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 00000000..a2a6dc62 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Module Resolution Options */ + "module": "Node16", + "target": "ES2022", + "moduleResolution": "Node16", + "verbatimModuleSyntax": true, + /* Other Options */ + "resolveJsonModule": true, + "declaration": true /* Generates corresponding '.d.ts' file. */, + "strict": true /* Enable all strict type-checking options. */, + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, + "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, + "types": [ + "vitest/globals" + ], + "baseUrl": "." /* Base directory to resolve non-absolute module names. */, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + }, + "include": [ + "**/*.ts", + ".eslintrc.cjs" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts new file mode 100644 index 00000000..3f2a4c31 --- /dev/null +++ b/packages/core/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'tsup' + +const env = process.env['NODE_ENV'] + +export default defineConfig((options) => ({ + sourcemap: true, // source map is only available in prod + clean: true, // clean dist before build + dts: true, // generate dts file for main module + format: ['cjs', 'esm'], // generate cjs and esm files + minify: !options.watch, + bundle: true, + watch: env === 'development', + target: 'es2020', + entry: ['src/index.ts'] +})) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 995d4a2e..a03d7197 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,19 +52,26 @@ importers: version: 5.9.2 packages/core: + dependencies: + '@commercelayer/sdk': + specifier: 6.0.0-rc.2 + version: 6.0.0-rc.2 + jwt-decode: + specifier: ^4.0.0 + version: 4.0.0 devDependencies: tsup: specifier: ^8.0.2 - version: 8.0.2(typescript@5.4.5) + version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5) + version: 4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@20.12.7)(terser@5.30.3)) vitest: specifier: ^1.5.0 - version: 1.5.0 + version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0)(terser@5.30.3) packages/docs: devDependencies: From 0e48a58782fa00d350d9b5b2580ca63768cf99b6 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 6 Feb 2025 10:49:07 +0100 Subject: [PATCH 013/165] Add getPrices tests, biomejs, and global vitest config --- .vscode/settings.json | 22 +- biome.json | 78 ++-- packages/core/extender.ts | 29 ++ packages/core/package.json | 31 +- packages/core/src/auth/getAccessToken.spec.ts | 38 ++ packages/core/src/auth/getAccessToken.ts | 21 + packages/core/src/prices/getPrices.spec.ts | 30 ++ packages/core/src/prices/getPrices.test.ts | 20 - packages/core/src/prices/getPrices.ts | 6 +- packages/core/src/sdk/index.ts | 8 +- packages/core/tsconfig.json | 15 +- packages/core/tsup.config.ts | 12 +- packages/core/vitest.config.ts | 12 + .../{vitest.config.mts => _vitest.config.mts} | 0 packages/react-components/package.json | 2 +- packages/react-components/tsconfig.json | 68 +--- pnpm-lock.yaml | 365 ++++++++++++++---- vitest.workspace.ts | 3 + 18 files changed, 527 insertions(+), 233 deletions(-) create mode 100644 packages/core/extender.ts create mode 100644 packages/core/src/auth/getAccessToken.spec.ts create mode 100644 packages/core/src/auth/getAccessToken.ts create mode 100644 packages/core/src/prices/getPrices.spec.ts delete mode 100644 packages/core/src/prices/getPrices.test.ts create mode 100644 packages/core/vitest.config.ts rename packages/react-components/{vitest.config.mts => _vitest.config.mts} (100%) create mode 100644 vitest.workspace.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 47ed019a..184991f8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,22 +1,8 @@ { - "typescript.tsdk": "node_modules/typescript/lib", "editor.formatOnSave": true, - "javascript.format.enable": true, - "eslint.workingDirectories": [ - "packages/react-components", - "packages/docs", - "packages/core", - ], - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact" - ], - "css.validate": false, - "less.validate": false, - "scss.validate": false, + "editor.defaultFormatter": "biomejs.biome", "editor.codeActionsOnSave": { - "source.fixAll": "explicit" + "quickfix.biome": "explicit", + "source.organizeImports.biome": "explicit" } -} \ No newline at end of file +} diff --git a/biome.json b/biome.json index a3a2ea9c..7440f4c5 100644 --- a/biome.json +++ b/biome.json @@ -1,41 +1,41 @@ { - "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json", - "vcs": { - "enabled": false, - "clientKind": "git", - "useIgnoreFile": false - }, - "files": { - "ignoreUnknown": false, - "includes": ["**"] - }, - "formatter": { - "enabled": true, - "indentStyle": "space" - }, - "assist": { "actions": { "source": { "organizeImports": "on" } } }, - "linter": { - "enabled": true, - "rules": { - "recommended": true, - "style": { - "noParameterAssign": "error", - "useAsConstAssertion": "error", - "useDefaultParameterLast": "error", - "useEnumInitializers": "error", - "useSelfClosingElements": "error", - "useSingleVarDeclarator": "error", - "noUnusedTemplateLiteral": "error", - "useNumberNamespace": "error", - "noInferrableTypes": "error", - "noUselessElse": "error" - } - } - }, - "javascript": { - "formatter": { - "quoteStyle": "double", - "semicolons": "asNeeded" - } - } + "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "includes": ["**"] + }, + "formatter": { + "enabled": true, + "indentStyle": "space" + }, + "assist": { "actions": { "source": { "organizeImports": "on" } } }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "style": { + "noParameterAssign": "error", + "useAsConstAssertion": "error", + "useDefaultParameterLast": "error", + "useEnumInitializers": "error", + "useSelfClosingElements": "error", + "useSingleVarDeclarator": "error", + "noUnusedTemplateLiteral": "error", + "useNumberNamespace": "error", + "noInferrableTypes": "error", + "noUselessElse": "error" + } + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double", + "semicolons": "asNeeded" + } + } } diff --git a/packages/core/extender.ts b/packages/core/extender.ts new file mode 100644 index 00000000..3a6f35be --- /dev/null +++ b/packages/core/extender.ts @@ -0,0 +1,29 @@ +import { test } from "vitest" +import { getAccessToken } from "./src/auth/getAccessToken.js" + +const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID +const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE +const domain = import.meta.env.VITE_DOMAIN +let accessToken: ReturnType = undefined + +export const coreTest = test.extend({ + accessToken: async ({ _ }, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId, + scope, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId, + scope, + domain, + }, +}) diff --git a/packages/core/package.json b/packages/core/package.json index 280080f7..3b516ef5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -11,18 +11,13 @@ "types": "./dist/index.d.ts" } }, - "keywords": [ - "jamstack", - "headless", - "ecommerce", - "api", - "components" - ], + "keywords": ["jamstack", "headless", "ecommerce", "api", "components"], "scripts": { - "lint": "eslint src --ext .ts,.tsx", - "lint:fix": "eslint src --ext .ts,.tsx --fix", - "test": "pnpm run lint && vitest run --silent", - "test:watch": "vitest --silent", + "lint": "biome lint --error-on-warnings ./src", + "lint:fix": "pnpm biome lint --write ./src", + "test": "pnpm run lint && vitest --silent", + "test:watch": "vitest", + "coverage": "vitest run --coverage", "build": "tsup" }, "publishConfig": { @@ -34,13 +29,15 @@ }, "license": "MIT", "devDependencies": { - "tsup": "^8.0.2", - "typescript": "^5.4.5", - "vite-tsconfig-paths": "^4.3.2", - "vitest": "^1.5.0" + "@vitest/coverage-v8": "^3.0.4", + "tsup": "^8.3.6", + "typescript": "^5.7.3", + "vite-tsconfig-paths": "^5.1.4", + "vitest": "^3.0.4" }, "dependencies": { - "@commercelayer/sdk": "6.0.0-rc.2", + "@commercelayer/js-auth": "^6.7.0", + "@commercelayer/sdk": "6.29.2", "jwt-decode": "^4.0.0" } -} \ No newline at end of file +} diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts new file mode 100644 index 00000000..ff92d323 --- /dev/null +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -0,0 +1,38 @@ +import { authenticate } from "@commercelayer/js-auth" +import { describe, expect, vi } from "vitest" +import { coreTest } from "../../extender.js" +import { getAccessToken } from "./getAccessToken.js" + +vi.mock("@commercelayer/js-auth", () => ({ + authenticate: vi.fn(), +})) + +describe("getAccessToken", () => { + coreTest( + "should call authenticate with the correct parameters", + async ({ accessToken, config }) => { + const token = accessToken?.accessToken + const grantType = "client_credentials" + const mockToken = { accessToken: token } + authenticate.mockResolvedValue(mockToken) + const result = await getAccessToken({ grantType, config }) + await expect(authenticate).toHaveBeenCalledWith(grantType, config) + expect(result).toEqual(mockToken) + expect(result).toHaveProperty("accessToken") + expect(result.accessToken).toBe(mockToken.accessToken) + }, + ) + + coreTest("should throw an error if authenticate fails", async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }) +}) diff --git a/packages/core/src/auth/getAccessToken.ts b/packages/core/src/auth/getAccessToken.ts new file mode 100644 index 00000000..56d91815 --- /dev/null +++ b/packages/core/src/auth/getAccessToken.ts @@ -0,0 +1,21 @@ +import { authenticate } from "@commercelayer/js-auth" + +interface AuthenticateProps { + grantType: Parameters[0] + config: Parameters[1] +} + +/** + * Retrieves an access token using the provided grant type and configuration. + * + * @param {AuthenticateProps} params - The parameters for authentication. + * @param {string} params.grantType - The type of grant to use for authentication. + * @param {object} params.config - The configuration object for authentication. + * @returns {Promise>} A promise that resolves to the access token. + */ +export async function getAccessToken({ + grantType, + config, +}: AuthenticateProps): ReturnType { + return await authenticate(grantType, config) +} diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts new file mode 100644 index 00000000..bcef04c2 --- /dev/null +++ b/packages/core/src/prices/getPrices.spec.ts @@ -0,0 +1,30 @@ +import type { QueryFilter } from "@commercelayer/sdk" +import { describe, expect } from "vitest" +import { coreTest } from "../../extender.js" +import { getPrices } from "./getPrices.js" + +describe("getPrices", () => { + coreTest("should return a list of prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }) + + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const params: QueryFilter = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } + + // Call the getPrices function + const result = await getPrices({ accessToken: token, ...params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }) + + // Add more test cases for different scenarios +}) diff --git a/packages/core/src/prices/getPrices.test.ts b/packages/core/src/prices/getPrices.test.ts deleted file mode 100644 index 799a6735..00000000 --- a/packages/core/src/prices/getPrices.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { getPrices } from './getPrices.js' - -describe('getPrices', () => { - test('should return a list of prices', async () => { - // Mock the necessary dependencies and setup test data - const accessToken = 'YOUR_ACCESS_TOKEN' - const params = { - // Set your desired parameters for the getPrices function - } - - // Call the getPrices function - const result = await getPrices({ accessToken, ...params }) - - // Assert the expected result - expect(result).toBeDefined() - // Add more assertions based on the expected behavior of the getPrices function - }) - - // Add more test cases for different scenarios -}) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index c86e5607..7586f706 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,6 +1,6 @@ -import type { ListResponse, Price, QueryParamsList } from '@commercelayer/sdk' -import { getSdk } from 'src/sdk/index.js' -import type { RequestConfig } from 'src/types/index.js' +import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" +import { getSdk } from "../sdk/index.js" +import type { RequestConfig } from "../types/index.js" type GetPricesParams = RequestConfig & QueryParamsList diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index 7f9faad5..d9caedfc 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,8 +1,8 @@ -import type { Jwt, RequestConfig } from 'src/types/index.js' -import sdk, { type CommerceLayerClient } from '@commercelayer/sdk' -import { jwtDecode } from 'jwt-decode' +import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" +import { jwtDecode } from "jwt-decode" +import type { Jwt, RequestConfig } from "src/types/index.js" export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { const organization = jwtDecode(accessToken).organization.slug - return sdk.default({ accessToken, organization }) + return sdk({ accessToken, organization }) } diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index a2a6dc62..c920654c 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -16,19 +16,12 @@ "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, - "types": [ - "vitest/globals" - ], + "types": ["vitest/globals"], "baseUrl": "." /* Base directory to resolve non-absolute module names. */, "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, "skipLibCheck": true /* Skip type checking of declaration files. */, "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "include": [ - "**/*.ts", - ".eslintrc.cjs" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": ["**/*.ts", ".eslintrc.cjs", "src/hooks/useAuthenticate.tsx"], + "exclude": ["node_modules"] +} diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 3f2a4c31..486ecc49 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -1,15 +1,15 @@ -import { defineConfig } from 'tsup' +import { defineConfig } from "tsup" -const env = process.env['NODE_ENV'] +const env = process.env.NODE_ENV export default defineConfig((options) => ({ sourcemap: true, // source map is only available in prod clean: true, // clean dist before build dts: true, // generate dts file for main module - format: ['cjs', 'esm'], // generate cjs and esm files + format: ["cjs", "esm"], // generate cjs and esm files minify: !options.watch, bundle: true, - watch: env === 'development', - target: 'es2020', - entry: ['src/index.ts'] + watch: env === "development", + target: "es2020", + entry: ["src/index.ts"], })) diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts new file mode 100644 index 00000000..a455d010 --- /dev/null +++ b/packages/core/vitest.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + name: "core", + environment: "node", + coverage: { + provider: "v8", + reporter: ["text", "json", "html"], + }, + }, +}) diff --git a/packages/react-components/vitest.config.mts b/packages/react-components/_vitest.config.mts similarity index 100% rename from packages/react-components/vitest.config.mts rename to packages/react-components/_vitest.config.mts diff --git a/packages/react-components/package.json b/packages/react-components/package.json index b6ad61bb..c4fb0965 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -211,7 +211,7 @@ "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", "lodash": "^4.17.21", - "rapid-form": "2.1.0" + "rapid-form": "3.1.0" }, "devDependencies": { "@commercelayer/js-auth": "^6.7.2", diff --git a/packages/react-components/tsconfig.json b/packages/react-components/tsconfig.json index 8ddd0972..1b8e176f 100644 --- a/packages/react-components/tsconfig.json +++ b/packages/react-components/tsconfig.json @@ -32,49 +32,27 @@ // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ /* Additional Checks */ - "noUnusedLocals": true, /* Report errors on unused locals. */ - "noUnusedParameters": true, /* Report errors on unused parameters. */ - "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ - "types": [ - "vitest/globals" - ], + "noUnusedLocals": true /* Report errors on unused locals. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, + "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, + "types": ["vitest/globals"], /* Module Resolution Options */ "moduleResolution": "Node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, "baseUrl": "." /* Base directory to resolve non-absolute module names. */, "paths": { - "@commercelayer/react-components": [ - "src/index" - ], - "#components/*": [ - "src/components/*" - ], - "#components-utils/*": [ - "src/components/utils/*" - ], - "#reducers/*": [ - "src/reducers/*" - ], - "#context/*": [ - "src/context/*" - ], - "#typings/*": [ - "src/typings/*" - ], - "#typings": [ - "src/typings/index" - ], - "#utils/*": [ - "src/utils/*" - ], - "#config/*": [ - "src/config/*" - ], - "#hooks/*": [ - "src/hooks/*" - ] + "@commercelayer/react-components": ["src/index"], + "#components/*": ["src/components/*"], + "#components-utils/*": ["src/components/utils/*"], + "#reducers/*": ["src/reducers/*"], + "#context/*": ["src/context/*"], + "#typings/*": ["src/typings/*"], + "#typings": ["src/typings/index"], + "#utils/*": ["src/utils/*"], + "#config/*": ["src/config/*"], + "#hooks/*": ["src/hooks/*"] } /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */, // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ @@ -95,12 +73,6 @@ "skipLibCheck": true /* Skip type checking of declaration files. */, "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ }, - "include": [ - "**/*.ts", - "**/*.tsx", - "vitest.config.mts" - ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "include": ["**/*.ts", "**/*.tsx", "_vitest.config.mts"], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a03d7197..f964e072 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,25 +53,31 @@ importers: packages/core: dependencies: + '@commercelayer/js-auth': + specifier: ^6.7.0 + version: 6.7.0 '@commercelayer/sdk': - specifier: 6.0.0-rc.2 - version: 6.0.0-rc.2 + specifier: 6.29.2 + version: 6.29.2 jwt-decode: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@vitest/coverage-v8': + specifier: ^3.0.4 + version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1)) tsup: - specifier: ^8.0.2 - version: 8.0.2(postcss@8.4.38)(typescript@5.4.5) + specifier: ^8.3.6 + version: 8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1) typescript: - specifier: ^5.4.5 - version: 5.4.5 + specifier: ^5.7.3 + version: 5.7.3 vite-tsconfig-paths: - specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@20.12.7)(terser@5.30.3)) + specifier: ^5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) vitest: - specifier: ^1.5.0 - version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0)(terser@5.30.3) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) packages/docs: devDependencies: @@ -235,8 +241,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 rapid-form: - specifier: 2.1.0 - version: 2.1.0 + specifier: 3.1.0 + version: 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) devDependencies: '@commercelayer/js-auth': specifier: ^6.7.2 @@ -266,11 +272,11 @@ importers: specifier: ^15.7.15 version: 15.7.15 '@types/react': - specifier: ^18.3.1 - version: 18.3.18 + specifier: ^19.0.8 + version: 19.0.8 '@types/react-test-renderer': - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 '@types/react-window': specifier: ^1.8.8 version: 1.8.8 @@ -290,14 +296,14 @@ importers: specifier: ^2.11.1 version: 2.11.1(@types/node@24.3.1)(typescript@5.9.2) react: - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) react-test-renderer: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) tsc-alias: specifier: ^1.8.16 version: 1.8.16 @@ -1024,8 +1030,12 @@ packages: resolution: {integrity: sha512-uc/n8MDuoAXASSAgAwBIXKUFCtMufUDhqwNXiFwMqu+/gAEc2jqOcH2dO+RERsWpPF2vEveCxsu+oj+IcWBTGw==} engines: {node: '>=20'} - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@commercelayer/sdk@6.29.2': + resolution: {integrity: sha512-g7Tk0jR2ice0FTPaENN7D/XZOCtxO69UN5mLWBNh5ZnXNlGyS1HcNiakk0d7PHwb4ninLf9vjHsQ53QJCTctRw==} + engines: {node: '>=20'} + + '@csstools/color-helpers@5.0.1': + resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.2': @@ -2579,8 +2589,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-test-renderer@18.3.1': - resolution: {integrity: sha512-vAhnk0tG2eGa37lkU9+s5SoroCsRI08xnsWFiAXOuPH2jqzMbcXvKExXViPi1P5fIklDeCvXqyrdmipFaSkZrA==} + '@types/react-test-renderer@19.0.0': + resolution: {integrity: sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==} '@types/react-window@1.8.8': resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} @@ -2588,6 +2598,9 @@ packages: '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@19.0.8': + resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -2827,6 +2840,9 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -2993,6 +3009,19 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} @@ -4303,6 +4332,10 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -4416,6 +4449,10 @@ packages: resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} engines: {node: ^16.14.0 || >=18.0.0} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -4457,6 +4494,12 @@ packages: lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -5239,6 +5282,24 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.4.31' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} @@ -5366,8 +5427,11 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - rapid-form@2.1.0: - resolution: {integrity: sha512-tZwrgbQLUDK8AFgVsw2DVd8eCqxuujblrc4QPyML/3qneR1/RzaDx5HB29zdAgp8TS4OC17DlD8fiQNiJx+6Tg==} + rapid-form@3.1.0: + resolution: {integrity: sha512-gZf8H9O98xdUz8p4cHZng/JBigLfb6VrIezQdIh+xYejccMxvo5TnZmjIzd3HZA0keYT+t0uJazzRksvBBLPBw==} + peerDependencies: + react: ^16.9.0 + react-dom: ^16.9.0 raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} @@ -5393,6 +5457,11 @@ packages: peerDependencies: react: ^18.3.1 + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} peerDependencies: @@ -5411,6 +5480,9 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-is@19.0.0: + resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -5439,11 +5511,6 @@ packages: '@types/react': optional: true - react-shallow-renderer@16.15.0: - resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} @@ -5454,15 +5521,19 @@ packages: '@types/react': optional: true - react-test-renderer@18.3.1: - resolution: {integrity: sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==} + react-test-renderer@19.0.0: + resolution: {integrity: sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==} peerDependencies: - react: ^18.3.1 + react: ^19.0.0 react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5502,8 +5573,12 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recast@0.23.11: - resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + readdirp@4.1.1: + resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + engines: {node: '>= 14.18.0'} + + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} redent@3.0.0: @@ -5655,6 +5730,13 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -5774,6 +5856,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -5949,6 +6035,13 @@ packages: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -6035,10 +6128,17 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@5.1.0: - resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + treeverse@3.0.0: resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6076,6 +6176,25 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsup@8.3.6: + resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: '>=8.4.31' + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tuf-js@2.2.1: resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -6391,6 +6510,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -6427,6 +6549,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -7428,7 +7553,7 @@ snapshots: '@commercelayer/sdk@6.46.0': {} - '@csstools/color-helpers@5.0.2': {} + '@commercelayer/sdk@6.29.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: @@ -9136,8 +9261,8 @@ snapshots: dependencies: '@stripe/stripe-js': 7.9.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) '@stripe/stripe-js@7.9.0': {} @@ -9178,7 +9303,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: @@ -9364,19 +9489,23 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-test-renderer@18.3.1': + '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@types/react-window@1.8.8': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 + '@types/react@19.0.8': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.6': {} '@types/send@0.17.4': @@ -9662,6 +9791,8 @@ snapshots: ansi-styles@6.2.1: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -9878,6 +10009,17 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + builtin-modules@3.3.0: {} + + builtins@5.1.0: + dependencies: + semver: 7.6.3 + + bundle-require@5.1.0(esbuild@0.24.2): + dependencies: + esbuild: 0.24.2 + load-tsconfig: 0.2.5 + byte-size@8.1.1: {} bytes@3.1.2: {} @@ -10787,7 +10929,6 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true glob@9.3.5: dependencies: @@ -10798,6 +10939,17 @@ snapshots: globals@11.12.0: {} + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -10930,7 +11082,6 @@ snapshots: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true inherits@2.0.4: {} @@ -11242,6 +11393,8 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + joycon@3.1.1: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -11443,6 +11596,8 @@ snapshots: transitivePeerDependencies: - supports-color + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -11484,6 +11639,10 @@ snapshots: lodash.ismatch@4.4.0: {} + lodash.merge@4.6.2: {} + + lodash.sortby@4.7.0: {} + lodash@4.17.21: {} log-symbols@4.1.0: @@ -12257,7 +12416,6 @@ snapshots: once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true onetime@5.1.2: dependencies: @@ -12495,6 +12653,13 @@ snapshots: possible-typed-array-names@1.1.0: {} + postcss-load-config@6.0.1(postcss@8.5.1)(yaml@2.6.1): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + postcss: 8.5.1 + yaml: 2.6.1 + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -12599,7 +12764,11 @@ snapshots: range-parser@1.2.1: {} - rapid-form@2.1.0: {} + rapid-form@3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@example/basics': link:../../../../alessandrocasazza/Documents/GitHub/okeo-academy + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) raw-body@2.5.2: dependencies: @@ -12638,6 +12807,11 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-dom@19.0.0(react@19.0.0): + dependencies: + react: 19.0.0 + scheduler: 0.25.0 + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -12654,6 +12828,8 @@ snapshots: react-is@18.3.1: {} + react-is@19.0.0: {} + react-refresh@0.14.2: {} react-refresh@0.17.0: {} @@ -12677,13 +12853,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-shallow-renderer@16.15.0(react@18.3.1): - dependencies: - object-assign: 4.1.1 - react: 18.3.1 - react-is: 18.3.1 - - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 @@ -12691,17 +12861,18 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-test-renderer@18.3.1(react@18.3.1): + react-test-renderer@19.0.0(react@19.0.0): dependencies: - react: 18.3.1 - react-is: 18.3.1 - react-shallow-renderer: 16.15.0(react@18.3.1) - scheduler: 0.23.2 + react: 19.0.0 + react-is: 19.0.0 + scheduler: 0.25.0 react@18.3.1: dependencies: loose-envify: 1.4.0 + react@19.0.0: {} + read-cmd-shim@4.0.0: {} read-package-json-fast@3.0.2: @@ -12757,7 +12928,9 @@ snapshots: dependencies: picomatch: 2.3.1 - recast@0.23.11: + readdirp@4.1.1: {} + + recast@0.23.9: dependencies: ast-types: 0.16.1 esprima: 4.0.1 @@ -12877,7 +13050,6 @@ snapshots: rimraf@3.0.2: dependencies: glob: 7.2.3 - dev: true rimraf@4.4.1: dependencies: @@ -12959,6 +13131,14 @@ snapshots: dependencies: loose-envify: 1.4.0 + scheduler@0.25.0: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -13115,6 +13295,10 @@ snapshots: source-map@0.6.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + space-separated-tokens@1.1.5: {} spdx-correct@3.2.0: @@ -13289,6 +13473,14 @@ snapshots: text-extensions@1.9.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + through2@2.0.5: dependencies: readable-stream: 2.3.8 @@ -13364,10 +13556,16 @@ snapshots: tr46@0.0.3: {} - tr46@5.1.0: + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tr46@5.0.0: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + treeverse@3.0.0: {} trim-newlines@3.0.1: {} @@ -13402,6 +13600,33 @@ snapshots: tslib@2.8.1: {} + tsup@8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1): + dependencies: + bundle-require: 5.1.0(esbuild@0.24.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.2.3 + debug: 4.4.0 + esbuild: 0.24.2 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(postcss@8.5.1)(yaml@2.6.1) + resolve-from: 5.0.0 + rollup: 4.32.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.10 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.5.1 + typescript: 5.7.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tuf-js@2.2.1: dependencies: '@tufjs/models': 2.0.1 @@ -13733,6 +13958,8 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + webidl-conversions@7.0.0: {} webpack-sources@3.3.3: {} @@ -13785,6 +14012,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 00000000..cbf98059 --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,3 @@ +import { defineWorkspace } from "vitest/config" + +export default defineWorkspace(["packages/*"]) From 00121dab6f902674e18277d88c499f11d2a62097 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 11 Feb 2025 18:33:47 +0100 Subject: [PATCH 014/165] Add new documentation folder --- packages/document/.gitignore | 26 + .../.storybook/addon-gh-repository/Tool.tsx | 17 + .../addon-gh-repository/constants.ts | 5 + .../addon-gh-repository/manager.tsx | 13 + .../.storybook/commercelayer.theme.ts | 11 + packages/document/.storybook/main.ts | 78 + .../document/.storybook/manager-head.html | 3 + .../document/.storybook/preview-head.html | 13 + packages/document/.storybook/preview.tsx | 143 + packages/document/README.md | 50 + packages/document/eslint.config.js | 28 + packages/document/index.html | 13 + packages/document/mocks/browser.js | 6 + packages/document/mocks/data/adjustments.js | 39 + packages/document/mocks/data/bundles.js | 388 ++ packages/document/mocks/data/line_items.js | 82 + packages/document/mocks/data/markets.js | 447 ++ packages/document/mocks/data/orders.js | 3713 +++++++++++++++++ packages/document/mocks/data/tags.js | 42 + packages/document/mocks/handlers.js | 15 + packages/document/package.json | 53 + packages/document/public/app-logo.png | Bin 0 -> 28732 bytes packages/document/public/mockServiceWorker.js | 303 ++ .../document/public/storybook-preview.css | 38 + packages/document/public/welcome-hero.png | Bin 0 -> 103964 bytes packages/document/src/App.css | 42 + packages/document/src/App.tsx | 35 + packages/document/src/assets/react.svg | 1 + packages/document/src/index.css | 68 + packages/document/src/main.tsx | 10 + .../document/src/stories/_internals/Code.tsx | 3 + .../src/stories/_internals/CommerceLayer.tsx | 35 + .../src/stories/_internals/OrderStorage.tsx | 96 + .../src/stories/_internals/useGetToken.ts | 261 ++ .../getting-started/001.introduction.mdx | 55 + .../getting-started/002.authentication.mdx | 61 + .../getting-started/003.microfrontends.mdx | 17 + .../stories/getting-started/004.styling.mdx | 16 + .../getting-started/005.containers.mdx | 36 + packages/document/src/vite-env.d.ts | 1 + packages/document/tsconfig.app.json | 26 + packages/document/tsconfig.json | 7 + packages/document/tsconfig.node.json | 24 + packages/document/vite.config.ts | 7 + pnpm-lock.yaml | 2542 ++++++++++- 45 files changed, 8642 insertions(+), 227 deletions(-) create mode 100644 packages/document/.gitignore create mode 100644 packages/document/.storybook/addon-gh-repository/Tool.tsx create mode 100644 packages/document/.storybook/addon-gh-repository/constants.ts create mode 100644 packages/document/.storybook/addon-gh-repository/manager.tsx create mode 100644 packages/document/.storybook/commercelayer.theme.ts create mode 100644 packages/document/.storybook/main.ts create mode 100644 packages/document/.storybook/manager-head.html create mode 100644 packages/document/.storybook/preview-head.html create mode 100644 packages/document/.storybook/preview.tsx create mode 100644 packages/document/README.md create mode 100644 packages/document/eslint.config.js create mode 100644 packages/document/index.html create mode 100644 packages/document/mocks/browser.js create mode 100644 packages/document/mocks/data/adjustments.js create mode 100644 packages/document/mocks/data/bundles.js create mode 100644 packages/document/mocks/data/line_items.js create mode 100644 packages/document/mocks/data/markets.js create mode 100644 packages/document/mocks/data/orders.js create mode 100644 packages/document/mocks/data/tags.js create mode 100644 packages/document/mocks/handlers.js create mode 100644 packages/document/package.json create mode 100644 packages/document/public/app-logo.png create mode 100644 packages/document/public/mockServiceWorker.js create mode 100644 packages/document/public/storybook-preview.css create mode 100644 packages/document/public/welcome-hero.png create mode 100644 packages/document/src/App.css create mode 100644 packages/document/src/App.tsx create mode 100644 packages/document/src/assets/react.svg create mode 100644 packages/document/src/index.css create mode 100644 packages/document/src/main.tsx create mode 100644 packages/document/src/stories/_internals/Code.tsx create mode 100644 packages/document/src/stories/_internals/CommerceLayer.tsx create mode 100644 packages/document/src/stories/_internals/OrderStorage.tsx create mode 100644 packages/document/src/stories/_internals/useGetToken.ts create mode 100644 packages/document/src/stories/getting-started/001.introduction.mdx create mode 100644 packages/document/src/stories/getting-started/002.authentication.mdx create mode 100644 packages/document/src/stories/getting-started/003.microfrontends.mdx create mode 100644 packages/document/src/stories/getting-started/004.styling.mdx create mode 100644 packages/document/src/stories/getting-started/005.containers.mdx create mode 100644 packages/document/src/vite-env.d.ts create mode 100644 packages/document/tsconfig.app.json create mode 100644 packages/document/tsconfig.json create mode 100644 packages/document/tsconfig.node.json create mode 100644 packages/document/vite.config.ts diff --git a/packages/document/.gitignore b/packages/document/.gitignore new file mode 100644 index 00000000..f940a995 --- /dev/null +++ b/packages/document/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*storybook.log diff --git a/packages/document/.storybook/addon-gh-repository/Tool.tsx b/packages/document/.storybook/addon-gh-repository/Tool.tsx new file mode 100644 index 00000000..25f4aa10 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/Tool.tsx @@ -0,0 +1,17 @@ +import { A, IconButton, Icons, Separator } from '@storybook/components' +import React from 'react' +import { ADDON_NAME, REPOSITORY_URL, TOOL_ID } from './constants' + +export const Tool = () => { + return ( + <> + + + + +   repository + + + + ) +} diff --git a/packages/document/.storybook/addon-gh-repository/constants.ts b/packages/document/.storybook/addon-gh-repository/constants.ts new file mode 100644 index 00000000..da0fb807 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/constants.ts @@ -0,0 +1,5 @@ +export const ADDON_ID = 'addon-gh-repository' +export const ADDON_NAME = 'View repository' +export const TOOL_ID = `${ADDON_ID}/tool` +export const REPOSITORY_URL = + 'https://github.com/commercelayer/commercelayer-react-components' diff --git a/packages/document/.storybook/addon-gh-repository/manager.tsx b/packages/document/.storybook/addon-gh-repository/manager.tsx new file mode 100644 index 00000000..0963c403 --- /dev/null +++ b/packages/document/.storybook/addon-gh-repository/manager.tsx @@ -0,0 +1,13 @@ +import { addons, types } from "@storybook/manager-api" +import React from "react" +import { Tool } from "./Tool" +import { ADDON_ID, ADDON_NAME } from "./constants" + +addons.register(ADDON_ID, () => { + addons.add(ADDON_ID, { + title: ADDON_NAME, + type: types.TOOL, + match: ({ viewMode }) => !!viewMode?.match(/^(story|docs)$/), + render: () => , + }) +}) diff --git a/packages/document/.storybook/commercelayer.theme.ts b/packages/document/.storybook/commercelayer.theme.ts new file mode 100644 index 00000000..1b06740a --- /dev/null +++ b/packages/document/.storybook/commercelayer.theme.ts @@ -0,0 +1,11 @@ +import { create } from '@storybook/theming' + +export default create({ + base: 'light', + brandTitle: 'Commerce Layer', + // brandUrl: 'https://example.com', + brandImage: './app-logo.png', + brandTarget: '_self', + + textColor: '#101111' +}) diff --git a/packages/document/.storybook/main.ts b/packages/document/.storybook/main.ts new file mode 100644 index 00000000..451b989b --- /dev/null +++ b/packages/document/.storybook/main.ts @@ -0,0 +1,78 @@ +import { resolve } from "node:path" +import type { StorybookConfig } from "@storybook/react-vite" +import remarkGfm from "remark-gfm" +import { type UserConfig, mergeConfig } from "vite" +import tsconfigPaths from "vite-tsconfig-paths" + +const viteOverrides: UserConfig = { + base: process.env.VITE_BASE_URL, + plugins: [ + tsconfigPaths({ + projects: [ + resolve(import.meta.dirname, "../../react-components/tsconfig.json"), + resolve(import.meta.dirname, "../tsconfig.json"), + ], + }), + ], +} + +const storybookConfig: StorybookConfig = { + async viteFinal(config) { + return mergeConfig(config, viteOverrides) + }, + stories: ["../stories/**/*.mdx", "../stories/**/*.stories.@(js|jsx|ts|tsx)"], + addons: [ + "@storybook/addon-links", + "@storybook/addon-essentials", + "@storybook/addon-interactions", + { + name: "@storybook/addon-docs", + options: { + mdxPluginOptions: { + mdxCompileOptions: { + remarkPlugins: [remarkGfm], + }, + }, + }, + }, + ], + // @ts-expect-error This 'managerEntries' exists. + managerEntries: [ + resolve(import.meta.dirname, "./addon-gh-repository/manager.tsx"), + ], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + core: { + disableTelemetry: true, + }, + features: { + storyStoreV7: true, + }, + docs: { + autodocs: true, + docsMode: true, + }, + typescript: { + check: false, + reactDocgen: "react-docgen-typescript", + reactDocgenTypescriptOptions: { + propFilter: (prop) => { + if (["children", "className"].includes(prop.name)) { + return true + } + + if (prop.parent != null) { + return ( + !prop.parent.fileName.includes("@types/react") && + !prop.parent.fileName.includes("@emotion") + ) + } + return true + }, + }, + }, +} + +export default storybookConfig diff --git a/packages/document/.storybook/manager-head.html b/packages/document/.storybook/manager-head.html new file mode 100644 index 00000000..ece446c3 --- /dev/null +++ b/packages/document/.storybook/manager-head.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/document/.storybook/preview-head.html b/packages/document/.storybook/preview-head.html new file mode 100644 index 00000000..6448e887 --- /dev/null +++ b/packages/document/.storybook/preview-head.html @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/packages/document/.storybook/preview.tsx b/packages/document/.storybook/preview.tsx new file mode 100644 index 00000000..9632a948 --- /dev/null +++ b/packages/document/.storybook/preview.tsx @@ -0,0 +1,143 @@ +import { + Controls, + Description, + Primary, + Stories, + Subtitle, + Title, +} from "@storybook/blocks" +import type { Decorator, Parameters } from "@storybook/react" +import React from "react" +import { worker } from "../mocks/browser" + +export const parameters: Parameters = { + layout: "centered", + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + backgrounds: { + values: [ + { + name: "overlay", + value: "#F8F8F8", + }, + ], + }, + options: { + storySort: { + method: "alphabetical", + order: [ + "Getting Started", + // [ + // "Welcome", + // "Applications", + // "Custom apps", + // "Token provider", + // "Core SDK provider", + // ], + // "Atoms", + // "Forms", + // ["react-hook-form"], + // "Hooks", + // "Lists", + // "Composite", + // "Resources", + // "Examples", + ], + }, + }, + docs: { + page: () => ( + + + <Subtitle /> + <Description /> + <Primary /> + <Controls /> + <Stories includePrimary={false} /> + </React.Fragment> + ), + // source: { + // transform: (input: string) => + // prettier.format(input, { + // parser: 'babel', + // plugins: [prettierBabel] + // }), + // }, + }, +} + +// export const withContainer: Decorator = (Story, context) => { +// const { containerEnabled } = context.globals +// if (containerEnabled === true) { +// return ( +// <Container minHeight={false}> +// <Story /> +// </Container> +// ) +// } + +// return <Story /> +// } + +// export const withLocale: Decorator = (Story, context) => { +// const locale = "en-US" +// return ( +// <I18NProvider enforcedLocaleCode={locale}> +// <Story /> +// </I18NProvider> +// ) +// } + +// export const decorators: Decorator[] = [withLocale, withContainer] + +// export const globals = { +// [PARAM_KEY]: true, +// } + +// Storybook executes this module in both bootstap phase (Node) +// and a story's runtime (browser). However, we cannot call `setupWorker` +// in Node environment, so need to check if we're in a browser. +if (typeof global.process === "undefined") { + // Start the mocking when each story is loaded. + // Repetitive calls to the `.start()` method do not register a new worker, + // but check whether there's an existing once, reusing it, if so. + worker.start({ + serviceWorker: { + url: `${import.meta.env.BASE_URL}mockServiceWorker.js`, + }, + quiet: import.meta.env.PROD, + onUnhandledRequest: !import.meta.env.PROD + ? (req, reqPrint) => { + const url = new URL(req.url) + if (url.hostname === "mock.localhost") { + reqPrint.warning() + } + } + : () => {}, + }) +} + +const argTypesEnhancers: Preview["argTypesEnhancers"] = [ + (context) => { + // when the className prop comes from `JSX.IntrinsicElements['div' | 'span']` + // and is not documented, we add a default description + if ( + "className" in context.argTypes && + context.argTypes.className.description === "" + ) { + context.argTypes.className.description = + "CSS class name for the base component" + } + + return context.argTypes + }, +] + +export default { + parameters, + argTypesEnhancers, +} diff --git a/packages/document/README.md b/packages/document/README.md new file mode 100644 index 00000000..74872fd4 --- /dev/null +++ b/packages/document/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/packages/document/eslint.config.js b/packages/document/eslint.config.js new file mode 100644 index 00000000..092408a9 --- /dev/null +++ b/packages/document/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/packages/document/index.html b/packages/document/index.html new file mode 100644 index 00000000..e4b78eae --- /dev/null +++ b/packages/document/index.html @@ -0,0 +1,13 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Vite + React + TS + + +
+ + + diff --git a/packages/document/mocks/browser.js b/packages/document/mocks/browser.js new file mode 100644 index 00000000..c578a6eb --- /dev/null +++ b/packages/document/mocks/browser.js @@ -0,0 +1,6 @@ +// src/mocks/browser.js +import { setupWorker } from 'msw/browser' +import { handlers } from './handlers' + +// This configures a Service Worker with the given request handlers. +export const worker = setupWorker(...handlers) diff --git a/packages/document/mocks/data/adjustments.js b/packages/document/mocks/data/adjustments.js new file mode 100644 index 00000000..72d4a6f1 --- /dev/null +++ b/packages/document/mocks/data/adjustments.js @@ -0,0 +1,39 @@ +import { http } from 'msw' + +const restPost = http.post( + `https://mock.localhost/api/adjustments`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: { + id: 'eqJGhgEeBb', + type: 'adjustments', + links: { + self: 'https://mock.localhost/api/adjustments/eqJGhgEeBb' + }, + attributes: { + name: 'Manual adjustment', + currency_code: 'EUR', + amount_cents: -100, + amount_float: -1.0, + formatted_amount: '-€1,00', + created_at: '2023-08-23T15:59:30.059Z', + updated_at: '2023-08-23T15:59:30.059Z', + reference: null, + reference_origin: null, + metadata: {} + } + } + }) + ) + ) + }, 1000) + }) + } +) + +export default [restPost] diff --git a/packages/document/mocks/data/bundles.js b/packages/document/mocks/data/bundles.js new file mode 100644 index 00000000..7053b89e --- /dev/null +++ b/packages/document/mocks/data/bundles.js @@ -0,0 +1,388 @@ +import { http } from 'msw' + +const bundles = http.get( + 'https://mock.localhost/api/bundles?include=sku_list.sku_list_items.sku&filter[q][code_in]=WELCOME_KIT_001', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'PljQzimxgB', + type: 'bundles', + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB' + }, + attributes: { + code: 'SHIRTSETSINGLE', + name: 'Commerce Layer Shirt set single', + currency_code: 'EUR', + description: '', + image_url: '', + do_not_ship: false, + do_not_track: false, + price_amount_cents: 10500, + price_amount_float: 105.0, + formatted_price_amount: '€105,00', + compare_at_amount_cents: 10500, + compare_at_amount_float: 105.0, + formatted_compare_at_amount: '€105,00', + skus_count: 2, + created_at: '2022-03-11T10:20:48.680Z', + updated_at: '2022-03-11T10:20:48.680Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/market', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/market' + } + }, + sku_list: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/sku_list', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/sku_list' + }, + data: { type: 'sku_lists', id: 'myPrZIqano' } + }, + skus: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/skus', + related: 'https://mock.localhost/api/bundles/PljQzimxgB/skus' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/attachments', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/events', + related: + 'https://mock.localhost/api/bundles/PljQzimxgB/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/bundles/PljQzimxgB/relationships/tags', + related: 'https://mock.localhost/api/bundles/PljQzimxgB/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + included: [ + { + id: 'myPrZIqano', + type: 'sku_lists', + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano' + }, + attributes: { + name: 'CL SHIRTS (Single shipment)', + slug: 'cl-shirts-single-shipment', + description: '', + image_url: '', + manual: true, + sku_code_regex: null, + created_at: '2022-03-11T10:17:50.637Z', + updated_at: '2022-03-11T10:18:03.442Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/customer', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/customer' + } + }, + skus: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/skus', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/skus' + } + }, + sku_list_items: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/sku_list_items', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/sku_list_items' + }, + data: [ + { type: 'sku_list_items', id: 'LWKOPINkWM' }, + { type: 'sku_list_items', id: 'vWbjGINmWn' } + ] + }, + bundles: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/bundles', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/bundles' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/sku_lists/myPrZIqano/relationships/attachments', + related: + 'https://mock.localhost/api/sku_lists/myPrZIqano/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'LWKOPINkWM', + type: 'sku_list_items', + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM' + }, + attributes: { + position: 1, + sku_code: 'TSHIRTMS000000FFFFFFLXXX', + quantity: 1, + created_at: '2022-03-11T10:17:59.154Z', + updated_at: '2022-03-11T10:17:59.154Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + sku_list: { + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/relationships/sku_list', + related: + 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/sku_list' + } + }, + sku: { + links: { + self: 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/relationships/sku', + related: + 'https://mock.localhost/api/sku_list_items/LWKOPINkWM/sku' + }, + data: { type: 'skus', id: 'EWzPQSpRzn' } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWbjGINmWn', + type: 'sku_list_items', + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn' + }, + attributes: { + position: 2, + sku_code: 'SWEETHMUB7B7B7000000MXXX', + quantity: 1, + created_at: '2022-03-11T10:18:03.437Z', + updated_at: '2022-03-11T10:18:03.437Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + sku_list: { + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/relationships/sku_list', + related: + 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/sku_list' + } + }, + sku: { + links: { + self: 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/relationships/sku', + related: + 'https://mock.localhost/api/sku_list_items/vWbjGINmWn/sku' + }, + data: { type: 'skus', id: 'MBrxeSaGpZ' } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EWzPQSpRzn', + type: 'skus', + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn' + }, + attributes: { + code: 'TSHIRTMS000000FFFFFFLXXX', + name: 'Black Men T-Shirt with White Logo (L)', + description: + 'With a large front pouch pocket and drawstrings in a matching color, this hoodie is a sure crowd-favorite. It’s soft, stylish, and perfect for the cooler evenings.', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMS000000FFFFFFLXXX_FLAT.png', + pieces_per_pack: null, + weight: null, + unit_of_weight: '', + hs_tariff_number: '', + do_not_ship: false, + do_not_track: false, + inventory: null, + created_at: '2022-03-11T09:42:47.300Z', + updated_at: '2022-03-11T10:17:22.143Z', + reference: 'sku_69', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + shipping_category: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/shipping_category', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/shipping_category' + } + }, + prices: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/prices', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/prices' + } + }, + stock_items: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/stock_items', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/stock_items' + } + }, + delivery_lead_times: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/delivery_lead_times', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/delivery_lead_times' + } + }, + sku_options: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/sku_options', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/sku_options' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/attachments', + related: + 'https://mock.localhost/api/skus/EWzPQSpRzn/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/events', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/skus/EWzPQSpRzn/relationships/tags', + related: 'https://mock.localhost/api/skus/EWzPQSpRzn/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'MBrxeSaGpZ', + type: 'skus', + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ' + }, + attributes: { + code: 'SWEETHMUB7B7B7000000MXXX', + name: 'Sport Grey Unisex Hoodie Sweatshirt with Black Logo (M)', + description: + 'With a large front pouch pocket and drawstrings in a matching color, this hoodie is a sure crowd-favorite. It’s soft, stylish, and perfect for the cooler evenings.', + image_url: + 'https://data.commercelayer.app/seed/images/skus/HOODIEMX7F7F7F000000MXXX_FLAT.png', + pieces_per_pack: null, + weight: null, + unit_of_weight: '', + hs_tariff_number: '', + do_not_ship: false, + do_not_track: false, + inventory: null, + created_at: '2022-03-11T09:42:48.985Z', + updated_at: '2022-03-11T10:17:41.219Z', + reference: 'sku_70', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + shipping_category: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/shipping_category', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/shipping_category' + } + }, + prices: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/prices', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/prices' + } + }, + stock_items: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/stock_items', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/stock_items' + } + }, + delivery_lead_times: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/delivery_lead_times', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/delivery_lead_times' + } + }, + sku_options: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/sku_options', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/sku_options' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/attachments', + related: + 'https://mock.localhost/api/skus/MBrxeSaGpZ/attachments' + } + }, + events: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/events', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/events' + } + }, + tags: { + links: { + self: 'https://mock.localhost/api/skus/MBrxeSaGpZ/relationships/tags', + related: 'https://mock.localhost/api/skus/MBrxeSaGpZ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + } +) + +export default [bundles] diff --git a/packages/document/mocks/data/line_items.js b/packages/document/mocks/data/line_items.js new file mode 100644 index 00000000..95139b05 --- /dev/null +++ b/packages/document/mocks/data/line_items.js @@ -0,0 +1,82 @@ +import { http } from 'msw' + +const restPatch = http.patch( + `https://mock.localhost/api/line_items/:id`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve(res(ctx.status(200), ctx.body(`Update ${req.params.id}`))) + }, 1000) + }) + } +) + +const restDelete = http.delete( + `https://mock.localhost/api/line_items/:id`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve(res(ctx.status(200), ctx.body(`Removed ${req.params.id}`))) + }, 1000) + }) + } +) + +const restPost = http.post( + `https://mock.localhost/api/line_items`, + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: { + id: 'vrEAtOmRaz', + type: 'line_items', + links: { + self: 'https://mock.localhost/api/line_items/vrEAtOmRaz' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -100, + unit_amount_float: -1.0, + formatted_unit_amount: '-€1,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -100, + total_amount_float: -1.0, + formatted_total_amount: '-€1,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Manual adjustment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'adjustments', + frequency: null, + created_at: '2023-08-23T15:59:30.205Z', + updated_at: '2023-08-23T15:59:30.205Z', + reference: null, + reference_origin: null, + metadata: {} + } + } + }) + ) + ) + }, 1000) + }) + } +) + +export default [restPatch, restDelete, restPost] diff --git a/packages/document/mocks/data/markets.js b/packages/document/mocks/data/markets.js new file mode 100644 index 00000000..b5db10ae --- /dev/null +++ b/packages/document/mocks/data/markets.js @@ -0,0 +1,447 @@ +import { http } from 'msw' + +// used in HookedInputResourceGroup +const someMarkets = http.get( + 'https://mock.localhost/api/markets?fields[markets]=id,name&sort=name&page[size]=3', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'rlEPzheRgO', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO' + }, + attributes: { name: 'Adyen' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop' + }, + attributes: { name: 'Europe' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AlRevhXQga', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga' + }, + attributes: { name: 'Milan' }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + meta: { record_count: 5, page_count: 2 }, + links: { + first: + 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=1&page%5Bsize%5D=3&sort=name', + next: 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=2&page%5Bsize%5D=3&sort=name', + last: 'https://mock.localhost/api/markets?fields%5Bmarkets%5D=id%2Cname&page%5Bnumber%5D=2&page%5Bsize%5D=3&sort=name' + } + }) + ) + } +) + +// used in HookedInputResourceGroup +const allMarkets = http.get( + 'https://mock.localhost/api/markets?sort=name&page[number]=1&page[size]=25', + (req, res, ctx) => { + return res( + ctx.status(200), + ctx.json({ + data: [ + { + id: 'rlEPzheRgO', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO' + }, + attributes: { + number: 475, + name: 'Adyen', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: '5a4c961792866897db26dd3aad9c435e', + private: false, + disabled_at: null, + created_at: '2022-08-23T09:59:25.940Z', + updated_at: '2022-08-23T09:59:25.940Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/merchant', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/price_list', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/rlEPzheRgO/relationships/attachments', + related: + 'https://mock.localhost/api/markets/rlEPzheRgO/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + shared_secret: '4ea4390961025de791d5bb92e92744eb', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://mock.localhost/api/markets/dlQbPhNNop/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AlRevhXQga', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga' + }, + attributes: { + number: 418, + name: 'Milan', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: 'fc9954fc7ae851d9588d456656ba102f', + private: false, + disabled_at: null, + created_at: '2022-05-13T12:27:05.075Z', + updated_at: '2022-05-13T12:27:05.075Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/merchant', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/price_list', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/AlRevhXQga/relationships/attachments', + related: + 'https://mock.localhost/api/markets/AlRevhXQga/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'AjRevhQOoa', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa' + }, + attributes: { + number: 351, + name: 'UK', + facebook_pixel_id: null, + checkout_url: null, + external_prices_url: null, + external_order_validation_url: null, + shared_secret: 'a028eb9f9812ee2949da28cd3f8f5268', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:50.558Z', + updated_at: '2022-03-11T09:40:50.558Z', + reference: 'market_3', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/merchant', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/price_list', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/AjRevhQOoa/relationships/attachments', + related: + 'https://mock.localhost/api/markets/AjRevhQOoa/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EjDkXhNEoD', + type: 'markets', + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD' + }, + attributes: { + number: 349, + name: 'USA', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: '', + external_order_validation_url: null, + shared_secret: '60860b96e891725099e0b1a72dceb510', + private: false, + disabled_at: null, + created_at: '2022-02-24T14:08:20.092Z', + updated_at: '2022-03-21T09:37:44.202Z', + reference: 'market_2', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/merchant', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/merchant' + } + }, + price_list: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/price_list', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/price_list' + } + }, + inventory_model: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/inventory_model', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/subscription_model', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/tax_calculator', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/customer_group', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/customer_group' + } + }, + attachments: { + links: { + self: 'https://mock.localhost/api/markets/EjDkXhNEoD/relationships/attachments', + related: + 'https://mock.localhost/api/markets/EjDkXhNEoD/attachments' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ], + meta: { record_count: 5, page_count: 1 }, + links: { + first: + 'https://mock.localhost/api/markets?page%5Bnumber%5D=1&page%5Bsize%5D=25&sort=name', + last: 'https://mock.localhost/api/markets?page%5Bnumber%5D=1&page%5Bsize%5D=25&sort=name' + } + }) + ) + } +) + +export default [allMarkets, someMarkets] diff --git a/packages/document/mocks/data/orders.js b/packages/document/mocks/data/orders.js new file mode 100644 index 00000000..49afe454 --- /dev/null +++ b/packages/document/mocks/data/orders.js @@ -0,0 +1,3713 @@ +import { http } from 'msw' + +const order = { + id: 'NMWYhbGorj', + type: 'orders', + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj' + }, + attributes: { + number: 2485862, + autorefresh: true, + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'in_progress', + guest: true, + editable: false, + customer_email: 'customer@tk.com', + language_code: 'en', + currency_code: 'EUR', + tax_included: true, + tax_rate: null, + freight_taxable: null, + requires_billing_info: true, + country_code: 'IT', + shipping_country_code_lock: null, + coupon_code: null, + gift_card_code: '9951a05f-741a-4ab1-8405-2a7e57612792', + gift_card_or_coupon_code: '9951a05f-741a-4ab1-8405-2a7e57612792', + subtotal_amount_cents: 24400, + subtotal_amount_float: 244.0, + formatted_subtotal_amount: '€244,00', + shipping_amount_cents: 0, + shipping_amount_float: 0.0, + formatted_shipping_amount: '€0,00', + payment_method_amount_cents: 1000, + payment_method_amount_float: 10.0, + formatted_payment_method_amount: '€10,00', + discount_amount_cents: 0, + discount_amount_float: 0.0, + formatted_discount_amount: '€0,00', + adjustment_amount_cents: 0, + adjustment_amount_float: 0.0, + formatted_adjustment_amount: '€0,00', + gift_card_amount_cents: -10000, + gift_card_amount_float: -100.0, + formatted_gift_card_amount: '-€100,00', + total_tax_amount_cents: 0, + total_tax_amount_float: 0.0, + formatted_total_tax_amount: '€0,00', + subtotal_tax_amount_cents: 0, + subtotal_tax_amount_float: 0.0, + formatted_subtotal_tax_amount: '€0,00', + shipping_tax_amount_cents: 0, + shipping_tax_amount_float: 0.0, + formatted_shipping_tax_amount: '€0,00', + payment_method_tax_amount_cents: 0, + payment_method_tax_amount_float: 0.0, + formatted_payment_method_tax_amount: '€0,00', + adjustment_tax_amount_cents: 0, + adjustment_tax_amount_float: 0.0, + formatted_adjustment_tax_amount: '€0,00', + total_amount_cents: 25400, + total_amount_float: 254.0, + formatted_total_amount: '€254,00', + total_taxable_amount_cents: 25400, + total_taxable_amount_float: 254.0, + formatted_total_taxable_amount: '€254,00', + subtotal_taxable_amount_cents: 24400, + subtotal_taxable_amount_float: 244.0, + formatted_subtotal_taxable_amount: '€244,00', + shipping_taxable_amount_cents: 0, + shipping_taxable_amount_float: 0.0, + formatted_shipping_taxable_amount: '€0,00', + payment_method_taxable_amount_cents: 1000, + payment_method_taxable_amount_float: 10.0, + formatted_payment_method_taxable_amount: '€10,00', + adjustment_taxable_amount_cents: 0, + adjustment_taxable_amount_float: 0.0, + formatted_adjustment_taxable_amount: '€0,00', + total_amount_with_taxes_cents: 15400, + total_amount_with_taxes_float: 154.0, + formatted_total_amount_with_taxes: '€154,00', + fees_amount_cents: 0, + fees_amount_float: 0.0, + formatted_fees_amount: '€0,00', + duty_amount_cents: null, + duty_amount_float: null, + formatted_duty_amount: null, + skus_count: 6, + line_item_options_count: 0, + shipments_count: 2, + tax_calculations_count: 0, + validations_count: 0, + payment_source_details: { + type: 'stripe_payment', + payment_method_id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + payment_method_type: 'card', + payment_method_details: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + } + }, + token: '7fe6285a3dfdabeb8cb9324980743396', + cart_url: null, + return_url: null, + terms_url: null, + privacy_url: null, + checkout_url: null, + placed_at: '2023-05-16T11:06:22.012Z', + approved_at: '2023-05-16T14:18:16.775Z', + cancelled_at: null, + payment_updated_at: '2023-05-16T14:18:35.404Z', + fulfillment_updated_at: '2023-05-16T14:18:35.411Z', + refreshed_at: '2023-05-16T11:06:04.613Z', + archived_at: null, + expires_at: null, + subscription_created_at: null, + created_at: '2023-05-16T11:06:02.074Z', + updated_at: '2023-05-16T14:18:35.572Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/market', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/market' + }, + data: { type: 'markets', id: 'dlQbPhNNop' } + }, + customer: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/customer', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/customer' + }, + data: { type: 'customers', id: 'JkAdBhNGjQ' } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/shipping_address' + }, + data: { type: 'addresses', id: 'dPoNukZmnB' } + }, + billing_address: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/billing_address', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/billing_address' + }, + data: { type: 'addresses', id: 'dQxruwZDnB' } + }, + available_payment_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_payment_methods', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_payment_methods' + } + }, + available_customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_customer_payment_sources' + } + }, + available_free_skus: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_free_skus', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_free_skus' + } + }, + available_free_bundles: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/available_free_bundles', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/available_free_bundles' + } + }, + payment_method: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/payment_method', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/payment_method' + }, + data: { type: 'payment_methods', id: 'wmBvQsARml' } + }, + payment_source: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/payment_source', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/payment_source' + }, + data: { type: 'stripe_payments', id: 'onXELSmbQy' } + }, + line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/line_items', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/line_items' + }, + data: [ + { type: 'line_items', id: 'vaoMtAZlXy' }, + { type: 'line_items', id: 'kmnptjPlBv' }, + { type: 'line_items', id: 'vWEZtMGVKy' }, + { type: 'line_items', id: 'NqYatGaKnN' }, + { type: 'line_items', id: 'NoEntBwEdk' }, + { type: 'line_items', id: 'NlQmtMAnGy' } + ] + }, + shipments: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/shipments', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/shipments' + }, + data: [ + { type: 'shipments', id: 'YpLwCnNQgY' }, + { type: 'shipments', id: 'PabvCpOxRy' } + ] + }, + transactions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/transactions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/transactions' + }, + data: [ + { type: 'authorizations', id: 'nKZkPUDBVj' }, + { type: 'captures', id: 'kyAnxUgegE' } + ] + }, + authorizations: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/authorizations', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/authorizations' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/voids', + related: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/voids' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/refunds' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/returns' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_subscriptions' + } + }, + order_factories: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_factories', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_factories' + } + }, + order_copies: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/order_copies', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/order_copies' + } + }, + recurring_order_copies: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/recurring_order_copies', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/recurring_order_copies' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/attachments' + }, + data: [{ type: 'attachments', id: 'EqGrksxWNW' }] + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/tags', + related: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/orders/NMWYhbGorj/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } +} + +const orderDetail = http.get( + 'https://mock.localhost/api/orders/NMWYhbGorj?include=shipments,transactions,payment_method,payment_source,attachments', + async (req, res, ctx) => { + return await new Promise((resolve) => { + setTimeout(() => { + resolve( + res( + ctx.status(200), + ctx.json({ + data: order, + included: [ + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'JkAdBhNGjQ', + type: 'customers', + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ' + }, + attributes: { + email: 'customer@tk.com', + status: 'repeat', + has_password: false, + total_orders_count: 2753, + created_at: '2022-03-14T09:13:06.633Z', + updated_at: '2023-07-31T09:13:06.049Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_group' + } + }, + customer_addresses: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_addresses', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_addresses' + } + }, + customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_payment_sources' + } + }, + customer_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_subscriptions' + } + }, + orders: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/orders', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/orders' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/order_subscriptions' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/returns' + } + }, + sku_lists: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/sku_lists', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/sku_lists' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/events', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dPoNukZmnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.638Z', + updated_at: '2023-05-16T11:06:07.638Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dQxruwZDnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.493Z', + updated_at: '2023-05-16T11:06:07.493Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'wmBvQsARml', + type: 'payment_methods', + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml' + }, + attributes: { + payment_source_type: 'stripe_payments', + name: 'Stripe Payment', + currency_code: 'EUR', + moto: false, + require_capture: true, + auto_capture: false, + disabled_at: null, + price_amount_cents: 1000, + price_amount_float: 10.0, + formatted_price_amount: '€10,00', + auto_capture_max_amount_cents: null, + auto_capture_max_amount_float: null, + formatted_auto_capture_max_amount: null, + created_at: '2022-03-11T14:18:08.420Z', + updated_at: '2022-03-11T14:18:08.420Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/market', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/market' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/payment_gateway' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'onXELSmbQy', + type: 'stripe_payments', + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy' + }, + attributes: { + client_secret: + 'pi_3N8LhsK5j6INEBBI0JicoLOo_secret_CKWfEPSnvyBHIQrEfRXkrJYd7', + publishable_key: + 'pk_test_51KH86yK5j6INEBBIdkXoh0UwOoOlAbFZc3b8j0vjRHKQHdaUfEJm24F0A9QkrQXVlgh1nXJCpWR6PG3epaUWzE2z00BdEe9fho', + options: { + id: 'pm_1N8LhuK5j6INEBBI71U1QOlu', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: null, + address_line1_check: null, + address_postal_code_check: null + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235178, + customer: null, + livemode: false, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + }, + setup_future_usage: 'off_session', + intent_amount_cents: 15400 + }, + payment_method: { + id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235179, + customer: null, + livemode: false, + metadata: {}, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + } + }, + mismatched_amounts: false, + intent_amount_cents: 15400, + intent_amount_float: 154.0, + formatted_intent_amount: '€154,00', + return_url: null, + payment_instrument: { + issuer_type: 'card', + card_type: 'visa', + card_last_digits: '4242', + card_expiry_month: '2', + card_expiry_year: '2031' + }, + created_at: '2023-05-16T11:06:16.338Z', + updated_at: '2023-05-16T11:06:21.948Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/order' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/payment_gateway' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vaoMtAZlXy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -10000, + unit_amount_float: -100.0, + formatted_unit_amount: '-€100,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -10000, + total_amount_float: -100.0, + formatted_total_amount: '-€100,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Gift card: €100,00', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'gift_cards', + frequency: null, + created_at: '2023-05-16T11:06:14.674Z', + updated_at: '2023-05-16T11:06:14.674Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kmnptjPlBv', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 1000, + unit_amount_float: 10.0, + formatted_unit_amount: '€10,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 1000, + total_amount_float: 10.0, + formatted_total_amount: '€10,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Stripe Payment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'payment_methods', + frequency: null, + created_at: '2023-05-16T11:06:14.629Z', + updated_at: '2023-05-16T11:06:14.629Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWEZtMGVKy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/001', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.728Z', + updated_at: '2023-05-16T11:06:09.728Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NqYatGaKnN', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/002', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.602Z', + updated_at: '2023-05-16T11:06:09.602Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NoEntBwEdk', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk' + }, + attributes: { + sku_code: 'TSHIRTMMFFFFFF000000XLXX', + bundle_code: null, + quantity: 5, + currency_code: 'EUR', + unit_amount_cents: 2900, + unit_amount_float: 29.0, + formatted_unit_amount: '€29,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -5943, + discount_float: -59.43, + formatted_discount: '-€59,43', + total_amount_cents: 14500, + total_amount_float: 145.0, + formatted_total_amount: '€145,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'White Men T-Shirt with Black Logo (XL)', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMSFFFFFF000000XLXX_FLAT.png', + discount_breakdown: { + vaoMtAZlXy: { cents: -5943, weight: 0.5942622950819673 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.458Z', + updated_at: '2023-05-16T11:06:02.458Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NlQmtMAnGy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy' + }, + attributes: { + sku_code: 'CANVASAU000000FFFFFF1824', + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 9900, + unit_amount_float: 99.0, + formatted_unit_amount: '€99,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -4057, + discount_float: -40.57, + formatted_discount: '-€40,57', + total_amount_cents: 9900, + total_amount_float: 99.0, + formatted_total_amount: '€99,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Black Canvas with White Logo (18x24)', + image_url: + 'https://img.commercelayer.io/skus/CANVASAU000000FFFFFF.png?fm=jpg&q=90', + discount_breakdown: { + vaoMtAZlXy: { cents: -4057, weight: 0.4057377049180328 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.444Z', + updated_at: '2023-05-16T11:06:02.444Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'YpLwCnNQgY', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY' + }, + attributes: { + number: '2485862/S/001', + status: 'on_hold', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 5, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: '2023-07-21T14:12:13.287Z', + picking_at: '2023-07-21T14:12:08.574Z', + packing_at: '2023-07-21T14:10:54.107Z', + ready_to_ship_at: null, + shipped_at: null, + created_at: '2023-05-16T11:06:07.685Z', + updated_at: '2023-07-21T14:12:13.286Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'PabvCpOxRy', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy' + }, + attributes: { + number: '2485862/S/002', + status: 'shipped', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 1, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: null, + picking_at: '2023-05-16T14:18:35.559Z', + packing_at: '2023-05-16T14:20:24.459Z', + ready_to_ship_at: '2023-05-16T14:21:43.665Z', + shipped_at: '2023-05-16T14:22:42.632Z', + created_at: '2023-05-16T11:06:07.711Z', + updated_at: '2023-05-16T14:22:42.633Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'nKZkPUDBVj', + type: 'authorizations', + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj' + }, + attributes: { + number: '2485862/T/001', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T11:06:21.964Z', + updated_at: '2023-05-16T11:06:21.964Z', + reference: null, + reference_origin: null, + metadata: {}, + cvv_code: null, + cvv_message: null, + avs_code: null, + avs_message: null, + fraud_review: null, + capture_amount_cents: 0, + capture_amount_float: 0.0, + formatted_capture_amount: '€0,00', + capture_balance_cents: 0, + capture_balance_float: 0.0, + formatted_capture_balance: '€0,00', + void_balance_cents: 15400, + void_balance_float: 154.0, + formatted_void_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/order', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/versions' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/voids', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/voids' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kyAnxUgegE', + type: 'captures', + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE' + }, + attributes: { + number: '2485862/T/002', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T14:18:35.368Z', + updated_at: '2023-05-16T14:18:35.368Z', + reference: null, + reference_origin: null, + metadata: {}, + refund_amount_cents: 15400, + refund_amount_float: 154.0, + formatted_refund_amount: '€154,00', + refund_balance_cents: 15400, + refund_balance_float: 154.0, + formatted_refund_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/order', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/versions' + } + }, + reference_authorization: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/reference_authorization', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/reference_authorization' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/refunds' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/events', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EqGrksxWNW', + type: 'attachments', + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW' + }, + attributes: { + name: 'M. Montalbano', + description: 'Ehi there!', + url: null, + created_at: '2023-07-20T13:58:52.184Z', + updated_at: '2023-07-20T13:58:52.184Z', + reference: null, + reference_origin: 'app-orders--note', + metadata: {} + }, + relationships: { + attachable: { + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/relationships/attachable', + related: + 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/attachable' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + ) + }, 2000) + }) + } +) + +function getRandomFormattedPrice() { + return `€${Math.floor(Math.random() * 1000)}.00` +} + +function getRandomOrderStatus() { + const statues = [ + { + status: 'placed', + payment_status: 'authorized', + fulfillment_status: 'unfulfilled' + }, + { + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'in_progress' + }, + { + status: 'approved', + payment_status: 'paid', + fulfillment_status: 'fulfilled' + } + ] + return statues[Math.floor(Math.random() * statues.length)] +} + +const orderList = http.get( + 'https://mock.localhost/api/orders', + async (req, res, ctx) => { + const currentPage = parseInt( + req.url.searchParams.get('page[number]') ?? '1' + ) + const itemPerPage = parseInt(req.url.searchParams.get('page[size]') ?? '5') + const pageCount = itemPerPage <= 5 ? 1 : 3 + + return res( + ctx.delay(2000), + ctx.status(200), + ctx.json({ + data: Array(itemPerPage) + .fill(order) + .map((order, idx) => ({ + ...order, + id: `mocked-${currentPage}-${idx}`, + attributes: { + ...order.attributes, + number: parseInt(`26372${currentPage}${idx}`, 10), + formatted_total_amount: getRandomFormattedPrice(), + ...getRandomOrderStatus() + } + })), + meta: { + record_count: itemPerPage * pageCount, + page_count: pageCount + }, + included: [ + { + id: 'dlQbPhNNop', + type: 'markets', + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop' + }, + attributes: { + number: 350, + name: 'Europe', + facebook_pixel_id: null, + checkout_url: '', + external_prices_url: + 'https://pippo.malessani.commercelayer.dev/api/verify', + external_order_validation_url: '', + private: false, + disabled_at: null, + created_at: '2022-03-11T09:40:49.000Z', + updated_at: '2023-03-13T13:30:32.184Z', + reference: 'market_1', + reference_origin: 'CLI', + metadata: {} + }, + relationships: { + merchant: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/merchant', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/merchant' + } + }, + price_list: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/price_list', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/price_list' + } + }, + inventory_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/inventory_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/inventory_model' + } + }, + subscription_model: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/subscription_model', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/subscription_model' + } + }, + tax_calculator: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/tax_calculator', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/tax_calculator' + } + }, + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/customer_group' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/markets/dlQbPhNNop/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'JkAdBhNGjQ', + type: 'customers', + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ' + }, + attributes: { + email: 'customer@tk.com', + status: 'repeat', + has_password: false, + total_orders_count: 2753, + created_at: '2022-03-14T09:13:06.633Z', + updated_at: '2023-07-31T09:13:06.049Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + customer_group: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_group', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_group' + } + }, + customer_addresses: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_addresses', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_addresses' + } + }, + customer_payment_sources: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_payment_sources', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_payment_sources' + } + }, + customer_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/customer_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/customer_subscriptions' + } + }, + orders: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/orders', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/orders' + } + }, + order_subscriptions: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/order_subscriptions', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/order_subscriptions' + } + }, + returns: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/returns', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/returns' + } + }, + sku_lists: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/sku_lists', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/sku_lists' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/events', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/customers/JkAdBhNGjQ/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dPoNukZmnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.638Z', + updated_at: '2023-05-16T11:06:07.638Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dPoNukZmnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'dQxruwZDnB', + type: 'addresses', + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB' + }, + attributes: { + business: false, + first_name: 'Darth', + last_name: 'Vader', + company: null, + full_name: 'Darth Vader', + line_1: 'Via Morte Nera, 13', + line_2: 'Ragnatela, 99', + city: 'Cogorno', + zip_code: '16030', + state_code: 'GE', + country_code: 'IT', + phone: '+39 055 1234567890', + full_address: + 'Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + name: 'Darth Vader, Via Morte Nera, 13 Ragnatela, 99, 16030 Cogorno GE (IT) +39 055 1234567890', + email: null, + notes: null, + lat: null, + lng: null, + is_localized: false, + is_geocoded: false, + provider_name: null, + map_url: null, + static_map_url: null, + billing_info: 'ABCDEFGHIJKLMNOPQRSTUVWYXZ', + created_at: '2023-05-16T11:06:07.493Z', + updated_at: '2023-05-16T11:06:07.493Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + geocoder: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/geocoder', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/geocoder' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/events', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/tags' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/addresses/dQxruwZDnB/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'wmBvQsARml', + type: 'payment_methods', + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml' + }, + attributes: { + payment_source_type: 'stripe_payments', + name: 'Stripe Payment', + currency_code: 'EUR', + moto: false, + require_capture: true, + auto_capture: false, + disabled_at: null, + price_amount_cents: 1000, + price_amount_float: 10.0, + formatted_price_amount: '€10,00', + auto_capture_max_amount_cents: null, + auto_capture_max_amount_float: null, + formatted_auto_capture_max_amount: null, + created_at: '2022-03-11T14:18:08.420Z', + updated_at: '2022-03-11T14:18:08.420Z', + reference: '', + reference_origin: '', + metadata: {} + }, + relationships: { + market: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/market', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/market' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/payment_gateway' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/payment_methods/wmBvQsARml/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'onXELSmbQy', + type: 'stripe_payments', + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy' + }, + attributes: { + client_secret: + 'pi_3N8LhsK5j6INEBBI0JicoLOo_secret_CKWfEPSnvyBHIQrEfRXkrJYd7', + publishable_key: + 'pk_test_51KH86yK5j6INEBBIdkXoh0UwOoOlAbFZc3b8j0vjRHKQHdaUfEJm24F0A9QkrQXVlgh1nXJCpWR6PG3epaUWzE2z00BdEe9fho', + options: { + id: 'pm_1N8LhuK5j6INEBBI71U1QOlu', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: null, + address_line1_check: null, + address_postal_code_check: null + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235178, + customer: null, + livemode: false, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + }, + setup_future_usage: 'off_session', + intent_amount_cents: 15400 + }, + payment_method: { + id: 'pm_1N8LhuK5j6INEBBIHXkK0FFF', + card: { + brand: 'visa', + last4: '4242', + checks: { + cvc_check: 'pass', + address_line1_check: 'pass', + address_postal_code_check: 'pass' + }, + wallet: null, + country: 'US', + funding: 'credit', + exp_year: 2031, + networks: { available: ['visa'], preferred: null }, + exp_month: 2, + fingerprint: 'bVaeOEKRmYhi20Nj', + generated_from: null, + three_d_secure_usage: { supported: true } + }, + type: 'card', + object: 'payment_method', + created: 1684235179, + customer: null, + livemode: false, + metadata: {}, + billing_details: { + name: 'Darth Vader', + email: 'customer@tk.com', + phone: '+39 055 1234567890', + address: { + city: 'Cogorno', + line1: 'Via Morte Nera, 13', + line2: null, + state: 'GE', + country: 'IT', + postal_code: '16030' + } + } + }, + mismatched_amounts: false, + intent_amount_cents: 15400, + intent_amount_float: 154.0, + formatted_intent_amount: '€154,00', + return_url: null, + payment_instrument: { + issuer_type: 'card', + card_type: 'visa', + card_last_digits: '4242', + card_expiry_month: '2', + card_expiry_year: '2031' + }, + created_at: '2023-05-16T11:06:16.338Z', + updated_at: '2023-05-16T11:06:21.948Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/order' + } + }, + payment_gateway: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/payment_gateway', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/payment_gateway' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/stripe_payments/onXELSmbQy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vaoMtAZlXy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: -10000, + unit_amount_float: -100.0, + formatted_unit_amount: '-€100,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: -10000, + total_amount_float: -100.0, + formatted_total_amount: '-€100,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Gift card: €100,00', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'gift_cards', + frequency: null, + created_at: '2023-05-16T11:06:14.674Z', + updated_at: '2023-05-16T11:06:14.674Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vaoMtAZlXy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kmnptjPlBv', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 1000, + unit_amount_float: 10.0, + formatted_unit_amount: '€10,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 1000, + total_amount_float: 10.0, + formatted_total_amount: '€10,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Stripe Payment', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'payment_methods', + frequency: null, + created_at: '2023-05-16T11:06:14.629Z', + updated_at: '2023-05-16T11:06:14.629Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/kmnptjPlBv/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'vWEZtMGVKy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/001', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.728Z', + updated_at: '2023-05-16T11:06:09.728Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/vWEZtMGVKy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NqYatGaKnN', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN' + }, + attributes: { + sku_code: null, + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 0, + unit_amount_float: 0.0, + formatted_unit_amount: '€0,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: 0, + discount_float: 0.0, + formatted_discount: '€0,00', + total_amount_cents: 0, + total_amount_float: 0.0, + formatted_total_amount: '€0,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Shipment #2485862/S/002', + image_url: null, + discount_breakdown: {}, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'shipments', + frequency: null, + created_at: '2023-05-16T11:06:09.602Z', + updated_at: '2023-05-16T11:06:09.602Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NqYatGaKnN/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NoEntBwEdk', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk' + }, + attributes: { + sku_code: 'TSHIRTMMFFFFFF000000XLXX', + bundle_code: null, + quantity: 5, + currency_code: 'EUR', + unit_amount_cents: 2900, + unit_amount_float: 29.0, + formatted_unit_amount: '€29,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -5943, + discount_float: -59.43, + formatted_discount: '-€59,43', + total_amount_cents: 14500, + total_amount_float: 145.0, + formatted_total_amount: '€145,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'White Men T-Shirt with Black Logo (XL)', + image_url: + 'https://data.commercelayer.app/seed/images/skus/TSHIRTMSFFFFFF000000XLXX_FLAT.png', + discount_breakdown: { + vaoMtAZlXy: { cents: -5943, weight: 0.5942622950819673 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.458Z', + updated_at: '2023-05-16T11:06:02.458Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NoEntBwEdk/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'NlQmtMAnGy', + type: 'line_items', + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy' + }, + attributes: { + sku_code: 'CANVASAU000000FFFFFF1824', + bundle_code: null, + quantity: 1, + currency_code: 'EUR', + unit_amount_cents: 9900, + unit_amount_float: 99.0, + formatted_unit_amount: '€99,00', + options_amount_cents: 0, + options_amount_float: 0.0, + formatted_options_amount: '€0,00', + discount_cents: -4057, + discount_float: -40.57, + formatted_discount: '-€40,57', + total_amount_cents: 9900, + total_amount_float: 99.0, + formatted_total_amount: '€99,00', + tax_amount_cents: 0, + tax_amount_float: 0.0, + formatted_tax_amount: '€0,00', + name: 'Black Canvas with White Logo (18x24)', + image_url: + 'https://img.commercelayer.io/skus/CANVASAU000000FFFFFF.png?fm=jpg&q=90', + discount_breakdown: { + vaoMtAZlXy: { cents: -4057, weight: 0.4057377049180328 } + }, + tax_rate: 0.0, + tax_breakdown: {}, + item_type: 'skus', + frequency: null, + created_at: '2023-05-16T11:06:02.444Z', + updated_at: '2023-05-16T11:06:02.444Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/order' + } + }, + item: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/item', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/item' + } + }, + line_item_options: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/line_item_options', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/line_item_options' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/shipment_line_items' + } + }, + stock_reservations: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_reservations', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_reservations' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/stock_transfers' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/events' + } + }, + tags: { + links: { + self: 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/relationships/tags', + related: + 'https://alessani.commercelayer.co/api/line_items/NlQmtMAnGy/tags' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'YpLwCnNQgY', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY' + }, + attributes: { + number: '2485862/S/001', + status: 'on_hold', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 5, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: '2023-07-21T14:12:13.287Z', + picking_at: '2023-07-21T14:12:08.574Z', + packing_at: '2023-07-21T14:10:54.107Z', + ready_to_ship_at: null, + shipped_at: null, + created_at: '2023-05-16T11:06:07.685Z', + updated_at: '2023-07-21T14:12:13.286Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/YpLwCnNQgY/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'PabvCpOxRy', + type: 'shipments', + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy' + }, + attributes: { + number: '2485862/S/002', + status: 'shipped', + currency_code: 'EUR', + cost_amount_cents: 0, + cost_amount_float: 0.0, + formatted_cost_amount: '$0.00', + skus_count: 1, + selected_rate_id: null, + rates: [], + purchase_error_code: null, + purchase_error_message: null, + get_rates_errors: [], + get_rates_started_at: null, + get_rates_completed_at: null, + purchase_started_at: null, + purchase_completed_at: null, + purchase_failed_at: null, + on_hold_at: null, + picking_at: '2023-05-16T14:18:35.559Z', + packing_at: '2023-05-16T14:20:24.459Z', + ready_to_ship_at: '2023-05-16T14:21:43.665Z', + shipped_at: '2023-05-16T14:22:42.632Z', + created_at: '2023-05-16T11:06:07.711Z', + updated_at: '2023-05-16T14:22:42.633Z', + reference: null, + reference_origin: null, + metadata: {} + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/order', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/order' + } + }, + shipping_category: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_category', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_category' + } + }, + stock_location: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_location', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_location' + } + }, + origin_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/origin_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/origin_address' + } + }, + shipping_address: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_address', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_address' + } + }, + shipping_method: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipping_method', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipping_method' + } + }, + delivery_lead_time: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/delivery_lead_time', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/delivery_lead_time' + } + }, + shipment_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/shipment_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/shipment_line_items' + } + }, + stock_line_items: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_line_items', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_line_items' + } + }, + stock_transfers: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/stock_transfers', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/stock_transfers' + } + }, + available_shipping_methods: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/available_shipping_methods', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/available_shipping_methods' + } + }, + carrier_accounts: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/carrier_accounts', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/carrier_accounts' + } + }, + parcels: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/parcels', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/parcels' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/attachments' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/events', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/events' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/shipments/PabvCpOxRy/versions' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'nKZkPUDBVj', + type: 'authorizations', + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj' + }, + attributes: { + number: '2485862/T/001', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T11:06:21.964Z', + updated_at: '2023-05-16T11:06:21.964Z', + reference: null, + reference_origin: null, + metadata: {}, + cvv_code: null, + cvv_message: null, + avs_code: null, + avs_message: null, + fraud_review: null, + capture_amount_cents: 0, + capture_amount_float: 0.0, + formatted_capture_amount: '€0,00', + capture_balance_cents: 0, + capture_balance_float: 0.0, + formatted_capture_balance: '€0,00', + void_balance_cents: 15400, + void_balance_float: 154.0, + formatted_void_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/order', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/versions' + } + }, + captures: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/captures', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/captures' + } + }, + voids: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/voids', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/voids' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/relationships/events', + related: + 'https://alessani.commercelayer.co/api/authorizations/nKZkPUDBVj/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'kyAnxUgegE', + type: 'captures', + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE' + }, + attributes: { + number: '2485862/T/002', + currency_code: 'EUR', + amount_cents: 15400, + amount_float: 154.0, + formatted_amount: '€154,00', + succeeded: true, + message: 'Success!', + error_code: null, + error_detail: null, + token: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + gateway_transaction_id: 'pi_3N8LhsK5j6INEBBI0JicoLOo', + created_at: '2023-05-16T14:18:35.368Z', + updated_at: '2023-05-16T14:18:35.368Z', + reference: null, + reference_origin: null, + metadata: {}, + refund_amount_cents: 15400, + refund_amount_float: 154.0, + formatted_refund_amount: '€154,00', + refund_balance_cents: 15400, + refund_balance_float: 154.0, + formatted_refund_balance: '€154,00' + }, + relationships: { + order: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/order', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/order' + } + }, + attachments: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/attachments', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/attachments' + } + }, + versions: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/versions', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/versions' + } + }, + reference_authorization: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/reference_authorization', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/reference_authorization' + } + }, + refunds: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/refunds', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/refunds' + } + }, + events: { + links: { + self: 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/relationships/events', + related: + 'https://alessani.commercelayer.co/api/captures/kyAnxUgegE/events' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + }, + { + id: 'EqGrksxWNW', + type: 'attachments', + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW' + }, + attributes: { + name: 'M. Montalbano', + description: 'Ehi there!', + url: null, + created_at: '2023-07-20T13:58:52.184Z', + updated_at: '2023-07-20T13:58:52.184Z', + reference: null, + reference_origin: 'app-orders--note', + metadata: {} + }, + relationships: { + attachable: { + links: { + self: 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/relationships/attachable', + related: + 'https://alessani.commercelayer.co/api/attachments/EqGrksxWNW/attachable' + } + } + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + } + ] + }) + ) + } +) + +export default [orderDetail, orderList] diff --git a/packages/document/mocks/data/tags.js b/packages/document/mocks/data/tags.js new file mode 100644 index 00000000..3fdf23d7 --- /dev/null +++ b/packages/document/mocks/data/tags.js @@ -0,0 +1,42 @@ +import { HttpResponse, http } from 'msw' + +const mockedTags = Array(15) + .fill(null) + .map((item, idx) => ({ + id: Math.random().toString().substring(2, 12), + type: 'tags', + attributes: { + name: `tag-${idx}`, + created_at: '2023-03-17T14:07:36.604Z', + updated_at: '2023-03-17T14:07:36.604Z' + }, + meta: { mode: 'test', organization_id: 'WXlEOFrjnr' } + })) + +const customerTags = http.get( + `https://mock.localhost/api/customers/NMWYhbGorj/tags`, + async () => { + return HttpResponse.json( + { + data: mockedTags.slice(0, 2), + meta: { record_count: 2, page_count: 1 } + }, + { status: 200 } + ) + } +) + +const organizationTags = http.get( + `https://mock.localhost/api/tags`, + async () => { + return HttpResponse.json( + { + data: mockedTags, + meta: { record_count: 100, page_count: 10 } + }, + { status: 200 } + ) + } +) + +export default [customerTags, organizationTags] diff --git a/packages/document/mocks/handlers.js b/packages/document/mocks/handlers.js new file mode 100644 index 00000000..df071002 --- /dev/null +++ b/packages/document/mocks/handlers.js @@ -0,0 +1,15 @@ +import adjustments from './data/adjustments' +import bundles from './data/bundles' +import lineItems from './data/line_items' +import markets from './data/markets' +import orders from './data/orders' +import tags from './data/tags' + +export const handlers = [ + ...adjustments, + ...bundles, + ...lineItems, + ...markets, + ...orders, + ...tags +] diff --git a/packages/document/package.json b/packages/document/package.json new file mode 100644 index 00000000..f179175e --- /dev/null +++ b/packages/document/package.json @@ -0,0 +1,53 @@ +{ + "name": "document", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" + }, + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@chromatic-com/storybook": "^3.2.4", + "@eslint/js": "^9.19.0", + "@storybook/addon-docs": "^7.6.17", + "@storybook/addon-essentials": "^8.5.3", + "@storybook/addon-interactions": "^8.5.3", + "@storybook/addon-links": "^7.6.17", + "@storybook/addon-mdx-gfm": "^8.5.3", + "@storybook/addon-onboarding": "^8.5.3", + "@storybook/blocks": "^8.5.3", + "@storybook/react": "^8.5.3", + "@storybook/react-vite": "^8.5.3", + "@storybook/test": "^8.5.3", + "@storybook/theming": "^8.5.3", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.19.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.18", + "eslint-plugin-storybook": "^0.11.2", + "globals": "^15.14.0", + "msw": "^2.7.0", + "remark-gfm": "^4.0.0", + "storybook": "^8.5.3", + "typescript": "~5.7.2", + "typescript-eslint": "^8.22.0", + "vite": "^6.1.0", + "vite-tsconfig-paths": "^5.1.4" + }, + "eslintConfig": { + "extends": [ + "plugin:storybook/recommended" + ] + } +} diff --git a/packages/document/public/app-logo.png b/packages/document/public/app-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77e678b5bf1857fc4ea500ae856282d0aabe3996 GIT binary patch literal 28732 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 { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + const accept = request.headers.get('accept') || '' + + // Bypass server-sent events. + if (accept.includes('text/event-stream')) { + return + } + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = Math.random().toString(16).slice(2) + + event.respondWith( + handleRequest(event, requestId).catch((error) => { + if (error.name === 'NetworkError') { + console.warn( + '[MSW] Successfully emulated a network error for the "%s %s" request.', + request.method, + request.url, + ) + return + } + + // At this point, any exception indicates an issue with the original request/response. + console.error( + `\ +[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, + request.method, + request.url, + `${error.name}: ${error.message}`, + ) + }), + ) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const clonedResponse = response.clone() + sendToClient(client, { + type: 'RESPONSE', + payload: { + requestId, + type: clonedResponse.type, + ok: clonedResponse.ok, + status: clonedResponse.status, + statusText: clonedResponse.statusText, + body: + clonedResponse.body === null ? null : await clonedResponse.text(), + headers: Object.fromEntries(clonedResponse.headers.entries()), + redirected: clonedResponse.redirected, + }, + }) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + const clonedRequest = request.clone() + + function passthrough() { + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const headers = Object.fromEntries(clonedRequest.headers.entries()) + + // Remove MSW-specific request headers so the bypassed requests + // comply with the server's CORS preflight check. + // Operate with the headers as an object because request "Headers" + // are immutable. + delete headers['x-msw-bypass'] + + return fetch(clonedRequest, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Bypass requests with the explicit bypass header. + // Such requests can be issued by "ctx.fetch()". + if (request.headers.get('x-msw-bypass') === 'true') { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const clientMessage = await sendToClient(client, { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + mode: request.mode, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: await request.text(), + bodyUsed: request.bodyUsed, + keepalive: request.keepalive, + }, + }) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'MOCK_NOT_FOUND': { + return passthrough() + } + + case 'NETWORK_ERROR': { + const { name, message } = clientMessage.data + const networkError = new Error(message) + networkError.name = name + + // Rejecting a "respondWith" promise emulates a network error. + throw networkError + } + } + + return passthrough() +} + +function sendToClient(client, message) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [channel.port2]) + }) +} + +function sleep(timeMs) { + return new Promise((resolve) => { + setTimeout(resolve, timeMs) + }) +} + +async function respondWithMock(response) { + await sleep(response.delay) + return new Response(response.body, response) +} diff --git a/packages/document/public/storybook-preview.css b/packages/document/public/storybook-preview.css new file mode 100644 index 00000000..3d591793 --- /dev/null +++ b/packages/document/public/storybook-preview.css @@ -0,0 +1,38 @@ +/* Global */ +.sbdocs-wrapper ol { + list-style: decimal; +} + +/** Blockquote */ +span[type] { + display: block; + padding: 16px !important; + font-size: 14px !important; + color: #2e3438 !important; + margin: 16px 0; + border-left: 4px solid; +} +span[type]::before { + content: attr(title); + display: block; + font-weight: bold; +} +span[type] > p { + margin: 0; +} +span[type='info'] { + border-color: #3b82f6; + background-color: #dbebfe; +} +span[type='warning'] { + border-color: #f97317; + background-color: #ffedd5; +} +span[type='success'] { + border-color: #22c55f; + background-color: #ddfce7; +} +span[type='danger'] { + border-color: #ef4544; + background-color: #fee2e3; +} diff --git a/packages/document/public/welcome-hero.png b/packages/document/public/welcome-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..57c9193bb7778c712d774da1fd68cb13c17293cc GIT binary patch literal 103964 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 z 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 m&Hplk|1tyU|669T;MjP>7eA1we-Ym9�eQOINuZ@P7b&d + +

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/packages/document/src/assets/react.svg b/packages/document/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/packages/document/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/document/src/index.css b/packages/document/src/index.css new file mode 100644 index 00000000..6119ad9a --- /dev/null +++ b/packages/document/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/packages/document/src/main.tsx b/packages/document/src/main.tsx new file mode 100644 index 00000000..86e0ef88 --- /dev/null +++ b/packages/document/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from "react" +import { createRoot } from "react-dom/client" +import "./index.css" +import App from "./App.tsx" + +createRoot(document.getElementById("root")!).render( + + + , +) diff --git a/packages/document/src/stories/_internals/Code.tsx b/packages/document/src/stories/_internals/Code.tsx new file mode 100644 index 00000000..383c69b0 --- /dev/null +++ b/packages/document/src/stories/_internals/Code.tsx @@ -0,0 +1,3 @@ +export const Code: React.FC<{ children?: string }> = ({ children }) => { + return {children} +} diff --git a/packages/document/src/stories/_internals/CommerceLayer.tsx b/packages/document/src/stories/_internals/CommerceLayer.tsx new file mode 100644 index 00000000..e4bed7a8 --- /dev/null +++ b/packages/document/src/stories/_internals/CommerceLayer.tsx @@ -0,0 +1,35 @@ +import { type DefaultChildrenType } from '#typings/globals' +import CommerceLayerComponent from '#components/auth/CommerceLayer' +import { useGetToken } from './useGetToken' + +interface Props { + children: DefaultChildrenType + accessToken: + | 'customer-access-token' + | 'customer-orders-access-token' + | 'my-access-token' // guest token + endpoint?: string +} + +/** + * Custom setup for the `CommerceLayer` component that can be used in Storybook. + * without exposing the `accessToken` and `endpoint` props. + */ +function CommerceLayer({ children, ...props }: Props): JSX.Element { + const { accessToken, endpoint } = useGetToken({ + mode: + props.accessToken === 'customer-access-token' + ? 'customer' + : props.accessToken === 'customer-orders-access-token' + ? 'customer-orders' + : 'guest' + }) + + return ( + + {children} + + ) +} + +export default CommerceLayer diff --git a/packages/document/src/stories/_internals/OrderStorage.tsx b/packages/document/src/stories/_internals/OrderStorage.tsx new file mode 100644 index 00000000..41df3c7b --- /dev/null +++ b/packages/document/src/stories/_internals/OrderStorage.tsx @@ -0,0 +1,96 @@ +/* eslint-disable @typescript-eslint/no-misused-promises */ +import OrderStorageComponent from "#components/orders/OrderStorage"; +import useCommerceLayer from "#hooks/useCommerceLayer"; +import { useState, useEffect } from "react"; +import useOrderContainer from "#hooks/useOrderContainer"; +import type { CommerceLayerClient } from "@commercelayer/sdk"; + +export const OrderStorage = ({ + persistKey, + children, +}: { + persistKey: string; + children: React.ReactNode; +}): JSX.Element => { + const [orderId, setOrderId] = useState(localStorage.getItem(persistKey)); + const { sdkClient, accessToken } = useCommerceLayer(); + const cl = + accessToken != null && accessToken !== "" && sdkClient != null + ? sdkClient() + : undefined; + + useEffect(() => { + if (cl != null && orderId == null) { + createOrderWithItems(cl).then((orderId) => { + setOrderId(orderId); + localStorage.setItem(persistKey, orderId); + }); + } + }, [cl, persistKey]); + + if (cl == null || orderId == null) { + return
; + } + + return ( + + {children} + + ); +}; + +export const AddSampleItems = (): JSX.Element => { + const { sdkClient, accessToken } = useCommerceLayer(); + const { order, addToCart } = useOrderContainer(); + const cl = accessToken != null && accessToken !== "" && sdkClient(); + + if (cl == null || cl === false || order == null) return
loading...
; + + return ( +
+

Cart is empty

+ +
+ ); +}; + +async function createOrderWithItems(cl: CommerceLayerClient): Promise { + const order = await cl.orders.create({ + language_code: "en", + }); + await fillOrder(order.id, cl); + return order.id; +} + +async function fillOrder( + orderId: string, + cl: CommerceLayerClient, +): Promise { + await cl.line_items.create({ + item_type: "skus", + sku_code: "5PANECAP9D9CA1FFFFFFXXXX", + quantity: 2, + order: cl.orders.relationship(orderId), + }); + + await cl.line_items.create({ + item_type: "skus", + sku_code: "BACKPACK000000FFFFFFXXXX", + quantity: 3, + order: cl.orders.relationship(orderId), + }); +} diff --git a/packages/document/src/stories/_internals/useGetToken.ts b/packages/document/src/stories/_internals/useGetToken.ts new file mode 100644 index 00000000..966dd14f --- /dev/null +++ b/packages/document/src/stories/_internals/useGetToken.ts @@ -0,0 +1,261 @@ +import { authenticate } from '@commercelayer/js-auth' +import { useEffect, useMemo, useState } from 'react' +import Cookie from 'js-cookie' +import { jwtDecode } from 'jwt-decode' + +const salesChannel = { + clientId: 'Z5ypiDlsqgV8twWRz0GabrJvTKXad4U-PMoVAU-XvV0', + slug: 'react-components-store', + scope: 'market:15283', + domain: 'commercelayer.io' +} +const savedCustomerWithOrders = { + username: 'bruce@wayne.com', + password: '123456' +} + +type UserMode = 'customer' | 'customer-orders' | 'guest' +interface UseGetTokenOptions { + mode?: UserMode +} + +const getAccessTokenCookieName = (mode: UserMode): string => + `clToken.${salesChannel.slug}.${mode}` + +const getCustomerLoginCookieName = (mode: UserMode): string => + `clToken.customerLogin.${mode}` + +export function useGetToken( + options?: T +): { + accessToken: string + endpoint: string +} { + const mode = options?.mode ?? 'guest' + const [accessToken, setAccessToken] = useState( + Cookie.get(getAccessTokenCookieName(mode)) ?? '' + ) + const clientId = salesChannel.clientId + const slug = salesChannel.slug + const scope = salesChannel.scope + const domain = salesChannel.domain + + const initToken = useMemo(() => { + return async () => { + const user = + mode === 'customer' + ? await retrieveCustomerData({ + clientId, + slug, + scope, + domain, + mode + }) + : mode === 'customer-orders' + ? savedCustomerWithOrders + : undefined + + await generateNewToken({ + clientId, + slug, + scope, + domain, + user, + mode + }).then(({ accessToken, expires }) => { + setAccessToken(accessToken) + Cookie.set(getAccessTokenCookieName(mode), accessToken, { expires }) + }) + } + }, []) + + useEffect(() => { + if ( + accessToken == null || + accessToken === '' || + isTokenExpired({ accessToken, compareTo: new Date() }) + ) { + initToken() + } + }, [accessToken]) + + return { + accessToken, + endpoint: `https://${slug}.${domain}` + } +} + +async function retrieveCustomerData({ + clientId, + slug, + scope, + domain, + mode +}: { + clientId: string + slug: string + scope: string + domain: string + mode: UserMode +}): Promise<{ + username: string + password: string +}> { + const existingUser = Cookie.get(getCustomerLoginCookieName(mode)) + const savedEmail = parseEmailAddress(existingUser?.split(':')[0]) + const savedPassword = parsePassword(existingUser?.split(':')[1]) + + if (savedEmail != null && savedPassword != null) { + return { + username: savedEmail, + password: savedPassword + } + } + + const newEmail = `user-${generateRandomString(5)}-${generateRandomString( + 5 + )}@domain.com` + const newPassword = generateRandomString(10) + + const guestToken = await generateNewToken({ + clientId, + slug, + scope, + domain, + mode + }) + + await createNewCustomer({ + email: newEmail, + password: newPassword, + salesChannelToken: guestToken.accessToken, + slug, + domain + }) + + Cookie.set(getCustomerLoginCookieName(mode), `${newEmail}:${newPassword}`) + + return { + username: newEmail, + password: newPassword + } +} + +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +async function generateNewToken({ + clientId, + slug, + scope, + domain, + user, + mode +}: { + clientId: string + slug: string + scope: string + domain: string + user?: { username: string; password: string } + mode: UserMode +}) { + return user == null + ? await authenticate('client_credentials', { + clientId, + scope, + domain + }) + : await authenticate('password', { + clientId, + scope, + domain, + ...user + }).then((res) => { + if (res != null && 'error' in res) { + Cookie.remove(getCustomerLoginCookieName('customer')) + Cookie.remove(getCustomerLoginCookieName('customer-orders')) + Cookie.remove(getAccessTokenCookieName(mode)) + } + return res + }) +} + +function isTokenExpired({ + accessToken, + compareTo +}: { + accessToken?: string + compareTo: Date +}): boolean { + if (accessToken == null || accessToken === '') { + return true + } + + try { + const { exp } = jwtDecode<{ exp: number }>(accessToken) + + if (exp == null) { + return true + } + + const nowTime = Math.trunc(compareTo.getTime() / 1000) + return nowTime > exp + } catch { + return true + } +} + +function generateRandomString(length = 10): string { + const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + let result = '' + for (let i = 0; i < length; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)) + } + return result +} + +function parseEmailAddress(email?: string): string | undefined { + const re = /^[a-zA-Z0-9._%+-]+@domain\.com$/ + if (email == null) { + return undefined + } + return re.test(email) ? email : undefined +} + +function parsePassword(password?: string): string | undefined { + return password?.length === 10 ? password : undefined +} + +async function createNewCustomer({ + email, + password, + salesChannelToken, + slug, + domain +}: { + email: string + password: string + salesChannelToken: string + slug: string + domain: string +}): Promise { + const newCustomer = await fetch(`https://${slug}.${domain}/api/customers`, { + method: 'POST', + headers: { + Accept: 'application/vnd.api+json', + 'Content-Type': 'application/vnd.api+json', + Authorization: `Bearer ${salesChannelToken}` + }, + body: JSON.stringify({ + data: { + type: 'customers', + attributes: { + email, + password + } + } + }) + }) + + if (newCustomer.status !== 201) { + throw new Error('Error creating customer') + } +} diff --git a/packages/document/src/stories/getting-started/001.introduction.mdx b/packages/document/src/stories/getting-started/001.introduction.mdx new file mode 100644 index 00000000..51386c8d --- /dev/null +++ b/packages/document/src/stories/getting-started/001.introduction.mdx @@ -0,0 +1,55 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +![App Element splashscreen](welcome-hero.png) + +A collection of reusable React components that makes it super fast and simple to build your own custom commerce UI, leveraging Commerce Layer API. + +Under the hood, our React components are built on top of [Commerce Layer JS SDK](https://github.com/commercelayer/commercelayer-sdk) — feel free to use it if you want to develop your custom ones. + + +## Installation + +This library is [open sourced](https://github.com/commercelayer/commercelayer-react-components/) and served as [npm package](https://www.npmjs.com/package/@commercelayer/react-components) and need to be installed as dependency inside your project. + + + + + +## Import components into your project + +You can use ES6 named import with every single component you plan to use (in addition to `CommerceLayer` one), as follow: + + + +But you can also leverage treeshaking by importing only the components you need from its folder using either default or named export, as follow: + + diff --git a/packages/document/src/stories/getting-started/002.authentication.mdx b/packages/document/src/stories/getting-started/002.authentication.mdx new file mode 100644 index 00000000..802a5adf --- /dev/null +++ b/packages/document/src/stories/getting-started/002.authentication.mdx @@ -0,0 +1,61 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Authentication + +To get started with **Commerce Layer React Components** you need get the credentials that will allow you to perform the API calls they wrap. + +All requests to Commerce Layer API must be authenticated with an [OAuth2](https://oauth.net/2/) bearer token. +Hence, to use these components, you need to get a valid access token. + + +## Getting an access token + +If you are new to Commerce Layer, we suggest you to read the [Overview of Commerce Layer's OAuth 2.0](https://docs.commercelayer.io/core/applications) guide. + + +There are many ways to get an access token and the one you choose depends on your specific needs. + +You can get an access token by using one of the following methods: +- [API/OAuth requests](https://docs.commercelayer.io/core/authentication/client-credentials#getting-an-access-token) (i.e. `curl` or `postman`) +- [Commerce Layer CLI](https://github.com/commercelayer/commercelayer-cli) +- [Commerce Layer JS Auth Library](https://github.com/commercelayer/commercelayer-js-auth) + + +If you want to retrieve the access token from the **command line**, we suggest you to use the [Commerce Layer CLI](https://github.com/commercelayer/commercelayer-cli) +using the `commercelayer application:login` command ([view example](https://github.com/commercelayer/commercelayer-cli/blob/main/docs/applications.md#commercelayer-applicationslogin)), +followed by `commercelayer application:token` + +
+Otherwise, if you need to get it from a **web application**, you can use the Commerce Layer JS Auth library that works both in the browser and in Node.js environments. +
+ + + + +## Configure the `CommerceLayer` component +Once you got it, you can pass it as prop to the `CommerceLayer` component, as follow: + + ( + + {/* ... child components */} + +) +`} +/> + + +This token will be used to authorize the API calls of all its child components. +That's why the presence of (at least) one `CommerceLayer` component is mandatory — it must wrap every other component you need to use. + + +In case you need to fetch data with different tokens (i.e. from different organizations or using apps with different roles and permissions) +— nothing prevents you from putting as many `` components you want in the same page. + diff --git a/packages/document/src/stories/getting-started/003.microfrontends.mdx b/packages/document/src/stories/getting-started/003.microfrontends.mdx new file mode 100644 index 00000000..1bc7aba4 --- /dev/null +++ b/packages/document/src/stories/getting-started/003.microfrontends.mdx @@ -0,0 +1,17 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Micro frontends + +We use **Commerce Layer React Components** library in our official open sourced hosted applications. + +Feel free to check them out and see how it works in a real world application. + + +|Application|Description|Source| +|:-----------|:-----------|:----| +| Checkout | Checkout application that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-checkout) +| Cart | Shopping cart application that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-cart) +| My account | Customer portal application with personal account information and management that you can integrate with just a single link or use as an open-source reference for your projects. | [GitHub](https://github.com/commercelayer/mfe-my-account) +| Microstore | Production-ready, self-contained store. Each microstore will be accessible at a unique URL and configurable via URL query strings, with no development required. | [GitHub](https://github.com/commercelayer/mfe-microstore) diff --git a/packages/document/src/stories/getting-started/004.styling.mdx b/packages/document/src/stories/getting-started/004.styling.mdx new file mode 100644 index 00000000..6ce9259b --- /dev/null +++ b/packages/document/src/stories/getting-started/004.styling.mdx @@ -0,0 +1,16 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Styling the components + +This library does not provide any styling. They return simple html/jsx tags filled with fetched data. + +**It is up to you to style the components as you want**. + +Almost all components expose a `className` prop that allows you to add your own css classes. +Some components that renders multiple elements also expose other props to add classes to each specific elements. + + +All the examples in this documentation use [Tailwind CSS](https://tailwindcss.com/) to demostrate how the components can be styled. + diff --git a/packages/document/src/stories/getting-started/005.containers.mdx b/packages/document/src/stories/getting-started/005.containers.mdx new file mode 100644 index 00000000..b3d44fee --- /dev/null +++ b/packages/document/src/stories/getting-started/005.containers.mdx @@ -0,0 +1,36 @@ +import { Meta, Source } from '@storybook/addon-docs'; + + + +# Containers + +Getting used to the components hierarchy is important to understand how to use this library. + +All components need to be wrapped inside the main `` context that handles the authentication with the API layer. +**It needs to be placed at the top of the application**. + +Other components need to be wrapped inside their own containers in order to access to their specific context. +As example the `` component needs to be wrapped inside the `` or it won't work. +At the same time, the `` will not render any HTML since it just holds the data for the `` component. + + +To amultiple requests to the API, the library uses a cache system that stores the data in React contexts that we refer as containers.
+Less re-rendering of those containers means better performance and less requests to the API. +
+ + +## Hierarchy +Each container documentend in the Components section of this guide, highlights a list of **Requirements** and **Children** that are needed to make it work. + +Example: + + +Must be a child of `` component. + + + + +`` +`` +`` + diff --git a/packages/document/src/vite-env.d.ts b/packages/document/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/packages/document/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/document/tsconfig.app.json b/packages/document/tsconfig.app.json new file mode 100644 index 00000000..358ca9ba --- /dev/null +++ b/packages/document/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/packages/document/tsconfig.json b/packages/document/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/packages/document/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/document/tsconfig.node.json b/packages/document/tsconfig.node.json new file mode 100644 index 00000000..db0becc8 --- /dev/null +++ b/packages/document/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/document/vite.config.ts b/packages/document/vite.config.ts new file mode 100644 index 00000000..8b0f57b9 --- /dev/null +++ b/packages/document/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f964e072..f58209ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,7 +74,7 @@ importers: version: 5.7.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.0.11(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) vitest: specifier: ^3.0.4 version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) @@ -85,8 +85,11 @@ importers: specifier: ^7.26.9 version: 7.26.10 '@babel/preset-env': - specifier: ^7.26.9 - version: 7.26.9(@babel/core@7.26.10) + specifier: ^7.26.0 + version: 7.26.0(@babel/core@7.26.0) + '@commercelayer/eslint-config-ts-react': + specifier: ^1.3.0 + version: 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2) '@commercelayer/js-auth': specifier: ^6.7.1 version: 6.7.2 @@ -104,10 +107,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -131,7 +134,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -202,6 +205,100 @@ importers: specifier: ^5.1.4 version: 5.1.4(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) + packages/document: + dependencies: + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@chromatic-com/storybook': + specifier: ^3.2.4 + version: 3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@eslint/js': + specifier: ^9.19.0 + version: 9.19.0 + '@storybook/addon-docs': + specifier: ^7.6.17 + version: 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/addon-essentials': + specifier: ^8.5.3 + version: 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-interactions': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-links': + specifier: ^7.6.17 + version: 7.6.20(react@19.0.0) + '@storybook/addon-mdx-gfm': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-onboarding': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/blocks': + specifier: ^8.5.3 + version: 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react': + specifier: ^8.5.3 + version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + '@storybook/react-vite': + specifier: ^8.5.3 + version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@storybook/test': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/theming': + specifier: ^8.5.3 + version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@types/react': + specifier: ^19.0.8 + version: 19.0.8 + '@types/react-dom': + specifier: ^19.0.3 + version: 19.0.3(@types/react@19.0.8) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + eslint: + specifier: ^9.19.0 + version: 9.19.0 + eslint-plugin-react-hooks: + specifier: ^5.0.0 + version: 5.1.0(eslint@9.19.0) + eslint-plugin-react-refresh: + specifier: ^0.4.18 + version: 0.4.18(eslint@9.19.0) + eslint-plugin-storybook: + specifier: ^0.11.2 + version: 0.11.2(eslint@9.19.0)(typescript@5.7.3) + globals: + specifier: ^15.14.0 + version: 15.14.0 + msw: + specifier: ^2.7.0 + version: 2.7.0(@types/node@22.12.0)(typescript@5.7.3) + remark-gfm: + specifier: ^4.0.0 + version: 4.0.0 + storybook: + specifier: ^8.5.3 + version: 8.5.3(prettier@3.4.2) + typescript: + specifier: ~5.7.2 + version: 5.7.3 + typescript-eslint: + specifier: ^8.22.0 + version: 8.23.0(eslint@9.19.0)(typescript@5.7.3) + vite: + specifier: ^6.1.0 + version: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + packages/react-components: dependencies: '@adyen/adyen-web': @@ -2148,30 +2245,65 @@ packages: '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} + '@storybook/addon-actions@8.5.3': + resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} + '@storybook/addon-backgrounds@8.5.3': + resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} + '@storybook/addon-controls@8.5.3': + resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/addon-docs@8.5.3': + resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/addon-essentials@8.5.3': + resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} + '@storybook/addon-highlight@8.5.3': + resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} + '@storybook/addon-interactions@8.5.3': + resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} peerDependencies: @@ -2183,18 +2315,48 @@ packages: '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} + '@storybook/addon-mdx-gfm@8.5.3': + resolution: {integrity: sha512-jKfJir3E+jJkD1K9SvrzUQBhaQJbGd2DtcE5IusXe0NKBJegbBy+eMhh9K7ani/isTf8+ZkhoXR3DFWwi2IJhg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} + '@storybook/addon-measure@8.5.3': + resolution: {integrity: sha512-unb0bRsnISXWiCBBECxNUUdM12hHpV+1uJUu5OJHtKb26YpiQvewDFLTLjuZJ3NIAfw+F5232Q7K88AWJV6weg==} + peerDependencies: + storybook: ^8.5.3 + + '@storybook/addon-onboarding@8.5.3': + resolution: {integrity: sha512-NZhYj3UZK65reO7mXcK7FPPu7QkLCRyIa6TpfQ3mRAocfjqg401mcBsRO37JNywYfHCZrU4w1l7pwpqjvcYceg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} + '@storybook/addon-outline@8.5.3': + resolution: {integrity: sha512-e1MkGN6XVdeRh2oUKGdqEDyAo2TD/47ashAAxw8DEiLRWgBMbQ+KBVH4EOG+dn5395jxh7YgRLJn/miqNnfN5g==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} + '@storybook/addon-toolbars@8.5.3': + resolution: {integrity: sha512-AWr9Per9WDrbFtNlbVlj6CiEwKOvOyoBt3bCuMHuRfTdqKwkwInEtyUi4//T8U+c1qs7KJBpsWV2vhIuc5sODg==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} + '@storybook/addon-viewport@8.5.3': + resolution: {integrity: sha512-OkLJ2B8+PiOEAd2HtRG6XewVjtw6AkBMgoSbfKCMr6TWSbuKrOeiwIMqqieAAPVNfsOQ8hTK6JGhr/KPRCKgRA==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2222,6 +2384,12 @@ packages: vite-plugin-glimmerx: optional: true + '@storybook/builder-vite@8.5.3': + resolution: {integrity: sha512-MxriwzZSVidaXj3kpH/jCOJZUdF7ofcvxmvrMrNehH9UvXIGM6b73CBC5ucnptbnQ7qxYKdAZiMhQbPHZ9cqOQ==} + peerDependencies: + storybook: ^8.5.3 + vite: '>=4.5.2' + '@storybook/channels@7.6.17': resolution: {integrity: sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==} @@ -2243,6 +2411,11 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/components@8.5.3': + resolution: {integrity: sha512-iC9VbpM8Equ8wXI2syBzov+8wys4sGYW7Xfz67LdSVbCMhsH9FRtvgbDppJQC/ZDCofg4sTAHhWpDV/KAQ385A==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/core-client@7.6.20': resolution: {integrity: sha512-upQuQQinLmlOPKcT8yqXNtwIucZ4E4qegYZXH5HXRWoLAL6GQtW7sUVSIuFogdki8OXRncr/dz8OA+5yQyYS4w==} @@ -2263,9 +2436,22 @@ packages: prettier: optional: true + '@storybook/core@8.5.3': + resolution: {integrity: sha512-ZLlr2pltbj/hmC54lggJTnh09FCAJR62lIdiXNwa+V+/eJz0CfD8tfGmZGKPSmaQeZBpMwAOeRM97k2oLPF+0w==} + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} + '@storybook/csf-plugin@8.5.3': + resolution: {integrity: sha512-u5oyXTFg3KIy4h9qoNyiCG2mJF3OpkLO/AcM4lMAwQVnBvz8pwITvr4jDZByVjGmcIbgKJQnWX+BwdK2NI4yAw==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2278,6 +2464,18 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + '@storybook/icons@1.3.2': + resolution: {integrity: sha512-t3xcbCKkPvqyef8urBM0j/nP6sKtnlRkVgC+8JTbTAZQjaTmOjes3byEgzs89p4B/K6cJsg9wLW2k3SknLtYJw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + + '@storybook/instrumenter@8.5.3': + resolution: {integrity: sha512-pxaTbGeju8MkwouIiaWX5DMWtpRruxqig8W3nZPOvzoSCCbQY+sLMQoyXxFlpGxLBjcvXivkL7AMVBKps5sFEQ==} + peerDependencies: + storybook: ^8.5.3 + '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2304,6 +2502,11 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} + '@storybook/preview-api@8.5.3': + resolution: {integrity: sha512-dUsuXW+KgDg4tWXOB6dk5j5gwwRUzbPvicHAY9mzbpSVScbWXuE5T/S/9hHlbtfkhFroWQgPx2eB8z3rai+7RQ==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/preview@7.6.20': resolution: {integrity: sha512-cxYlZ5uKbCYMHoFpgleZqqGWEnqHrk5m5fT8bYSsDsdQ+X5wPcwI/V+v8dxYAdQcMphZVIlTjo6Dno9WG8qmVA==} @@ -2313,6 +2516,13 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/react-dom-shim@8.5.3': + resolution: {integrity: sha512-kNIGk6mpXW3Wy+uS9pH9b9w/54EPJnH+QXA6MX4EQgmxhMQlGlS/l/YZp+3jsVQW4YgTmqe740qB+ccJAKZxBQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} engines: {node: '>=16'} @@ -2321,6 +2531,19 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' + '@storybook/react-vite@8.5.3': + resolution: {integrity: sha512-F30u2Xf+X774wrfQzWgg7vRVJmmJFbBVGdULsAGonkdy1FUeYo7puPiD2Qg6hBYNDyIyxDXVOukkOvTlG7IBRg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + vite: '>=4.5.2' + peerDependenciesMeta: + '@storybook/test': + optional: true + '@storybook/react@7.6.20': resolution: {integrity: sha512-i5tKNgUbTNwlqBWGwPveDhh9ktlS0wGtd97A1ZgKZc3vckLizunlAFc7PRC1O/CMq5PTyxbuUb4RvRD2jWKwDA==} engines: {node: '>=16.0.0'} @@ -2332,6 +2555,21 @@ packages: typescript: optional: true + '@storybook/react@8.5.3': + resolution: {integrity: sha512-QIdBSjsnwV/J919i4Fi7DlwxDKHU815t0c4B/w2KTMtKKBkk+Bge+vgVi0/lNqD3eF4w3yjVWGbkzUQZ63yiPg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.5.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + typescript: '>= 4.2.x' + peerDependenciesMeta: + '@storybook/test': + optional: true + typescript: + optional: true + '@storybook/router@7.6.17': resolution: {integrity: sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==} @@ -2538,6 +2776,9 @@ packages: '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} @@ -2589,6 +2830,11 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react-dom@19.0.3': + resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + peerDependencies: + '@types/react': ^19.0.0 + '@types/react-test-renderer@19.0.0': resolution: {integrity: sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==} @@ -2619,6 +2865,9 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} @@ -2631,6 +2880,142 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/eslint-plugin@8.23.0': + resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.23.0': + resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/scope-manager@8.23.0': + resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/type-utils@8.23.0': + resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/types@8.23.0': + resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.23.0': + resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/utils@8.23.0': + resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/visitor-keys@8.23.0': + resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@3.1.0': resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3075,6 +3460,10 @@ packages: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + chalk@4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} @@ -3101,6 +3490,18 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chromatic@11.25.2: + resolution: {integrity: sha512-/9eQWn6BU1iFsop86t8Au21IksTRxwXAl7if8YHD05L2AbuMjClLWZo5cZojqrJHGKDhTqfrC2X2xE4uSm0iKw==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -3425,6 +3826,9 @@ packages: dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -3568,10 +3972,162 @@ packages: engines: {node: '>=6.0'} hasBin: true + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-love@43.1.0: + resolution: {integrity: sha512-r3+7mSaOl0BEGf8LEntPPDbWTDw8o0Dpy9vdts7m+NAuSpmz9C/gL+64lC0Z8nKNE4uwdymPGll4czGQiR+XmQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.4.0 + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 + typescript: '*' + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-config-standard-jsx@11.0.0: + resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} + peerDependencies: + eslint: ^8.8.0 + eslint-plugin-react: ^7.28.0 + + eslint-config-standard@17.1.0: + resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-n@16.6.2: + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + 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 + + eslint-plugin-promise@6.6.0: + resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + engines: {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 + + eslint-plugin-react-refresh@0.4.18: + resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} + peerDependencies: + eslint: '>=8.40' + + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-storybook@0.11.2: + resolution: {integrity: sha512-0Z4DUklJrC+GHjCRXa7PYfPzWC15DaVnwaOYenpgXiCEijXPZkLKCms+rHhtoRcWccP7Z8DpOOaP1gc3P9oOwg==} + engines: {node: '>= 18'} + peerDependencies: + eslint: '>=8' + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -3678,6 +4234,10 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -3900,6 +4460,22 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4593,39 +5169,72 @@ packages: mdast-util-find-and-replace@2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-from-markdown@1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + mdast-util-gfm-footnote@1.0.2: resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-strikethrough@1.0.3: resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + mdast-util-gfm-table@1.0.7: resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + mdast-util-gfm-task-list-item@1.0.2: resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm@2.0.2: resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-phrasing@3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + mdast-util-to-string@1.1.0: resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} mdast-util-to-string@3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -4658,87 +5267,171 @@ packages: micromark-core-commonmark@1.1.0: resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + micromark-core-commonmark@2.0.2: + resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} + micromark-extension-gfm-autolink-literal@1.0.5: resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + micromark-extension-gfm-footnote@1.1.2: resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + micromark-extension-gfm-strikethrough@1.0.7: resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + micromark-extension-gfm-table@1.0.7: resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-tagfilter@1.0.2: resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-task-list-item@1.0.5: resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + micromark-extension-gfm@2.0.3: resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-factory-destination@1.1.0: resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + micromark-factory-label@1.1.0: resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-space@1.1.0: resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + micromark-factory-title@1.1.0: resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + micromark-factory-whitespace@1.1.0: resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + micromark-util-character@1.2.0: resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + micromark-util-chunked@1.1.0: resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + micromark-util-classify-character@1.1.0: resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + micromark-util-combine-extensions@1.1.0: resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-decode-numeric-character-reference@1.1.0: resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-string@1.1.0: resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-encode@1.1.0: resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + micromark-util-html-tag-name@1.2.0: resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + micromark-util-normalize-identifier@1.1.0: resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + micromark-util-resolve-all@1.1.0: resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + micromark-util-sanitize-uri@1.2.0: resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + micromark-util-subtokenize@1.1.0: resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + micromark-util-subtokenize@2.0.4: + resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==} + micromark-util-symbol@1.1.0: resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + micromark-util-types@1.1.0: resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + micromark@3.2.0: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + micromark@4.0.1: + resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -5443,6 +6136,12 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + react-confetti@6.2.2: + resolution: {integrity: sha512-K+kTyOPgX+ZujMZ+Rmb7pZdHBvg+DzinG/w4Eh52WOB8/pfO38efnnrtEZNJmjTvLxc16RBYO+tPM68Fg8viBA==} + engines: {node: '>=16'} + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 + react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -5619,9 +6318,18 @@ packages: remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-slug@6.1.0: resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6073,6 +6781,10 @@ packages: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -6150,6 +6862,18 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -6234,6 +6958,13 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + typescript-eslint@8.23.0: + resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -6282,6 +7013,9 @@ packages: unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6296,21 +7030,33 @@ packages: unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-visit-parents@3.1.1: resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit@2.0.3: resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} @@ -6406,6 +7152,9 @@ packages: vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} @@ -7590,7 +8339,14 @@ snapshots: dependencies: react: 18.3.1 - '@esbuild/aix-ppc64@0.25.1': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': + dependencies: + react: 19.0.0 + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.24.2': optional: true '@esbuild/android-arm64@0.25.1': @@ -7682,7 +8438,26 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.9': {} + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/dom': 1.6.12 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@floating-ui/utils@0.2.8': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} '@hutson/parse-repository-url@3.0.2': {} @@ -7934,16 +8709,28 @@ snapshots: '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.0.8 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': + '@mdx-js/react@2.3.0(react@19.0.0)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.0.8 + react: 19.0.0 + + '@mdx-js/react@3.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 '@types/react': 18.3.18 react: 18.3.1 - '@mswjs/interceptors@0.37.6': + '@mdx-js/react@3.1.0(@types/react@19.0.8)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.0.8 + react: 18.3.1 + + '@mswjs/interceptors@0.37.3': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -8248,37 +9035,75 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-collection@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-collection@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8287,50 +9112,104 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-context@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-direction@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-direction@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-direction@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8339,16 +9218,36 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-scope@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8358,109 +9257,235 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-id@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-popper@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.17)(react@18.3.1) '@radix-ui/rect': 1.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/rect': 1.0.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-portal@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-roving-focus@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-select@1.2.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.5.5(@types/react@19.0.8)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-separator@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -8470,65 +9495,137 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-slot@1.1.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-toggle-group@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 - '@radix-ui/react-toggle@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-toolbar@1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.10 + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.17)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8536,14 +9633,29 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8551,27 +9663,55 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.17)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-previous@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/rect': 1.0.1 @@ -8579,7 +9719,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-rect@1.0.1(@types/react@19.0.8)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/rect': 1.0.1 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.17)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -8587,14 +9735,33 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-visually-hidden@1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-use-size@1.0.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.8 + + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.17 + '@types/react-dom': 19.0.3(@types/react@18.3.17) + + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.7 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) '@radix-ui/rect@1.0.1': dependencies: @@ -8718,15 +9885,31 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 + '@storybook/addon-actions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@types/uuid': 9.0.8 + dequal: 2.0.3 + polished: 4.3.1 + storybook: 8.5.3(prettier@3.4.2) + uuid: 9.0.1 + '@storybook/addon-backgrounds@7.6.20': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-backgrounds@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + + '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -8737,13 +9920,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-docs@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + dequal: 2.0.3 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -8766,12 +9956,54 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@jest/transform': 29.7.0 + '@mdx-js/react': 2.3.0(react@19.0.0) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/csf-plugin': 7.6.20 + '@storybook/csf-tools': 7.6.20 + '@storybook/global': 5.0.0 + '@storybook/mdx2-csf': 1.1.0 + '@storybook/node-logger': 7.6.20 + '@storybook/postinstall': 7.6.20 + '@storybook/preview-api': 7.6.20 + '@storybook/react-dom-shim': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + fs-extra: 11.2.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + remark-external-links: 8.0.0 + remark-slug: 6.1.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/addon-docs@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@18.3.1) + '@storybook/blocks': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -8790,10 +10022,31 @@ snapshots: - encoding - supports-color + '@storybook/addon-essentials@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/addon-actions': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-backgrounds': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-controls': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-docs': 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-highlight': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-measure': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-outline': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-toolbars': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-viewport': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + '@storybook/addon-highlight@7.6.20': dependencies: '@storybook/global': 5.0.0 + '@storybook/addon-highlight@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-interactions@7.6.20': dependencies: '@storybook/global': 5.0.0 @@ -8802,6 +10055,15 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 + '@storybook/addon-interactions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + polished: 4.3.1 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + '@storybook/addon-links@7.6.20(react@18.3.1)': dependencies: '@storybook/csf': 0.1.13 @@ -8810,6 +10072,14 @@ snapshots: optionalDependencies: react: 18.3.1 + '@storybook/addon-links@7.6.20(react@19.0.0)': + dependencies: + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + ts-dedent: 2.2.0 + optionalDependencies: + react: 19.0.0 + '@storybook/addon-mdx-gfm@7.6.20': dependencies: '@storybook/node-logger': 7.6.20 @@ -8818,22 +10088,55 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/addon-mdx-gfm@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + remark-gfm: 4.0.0 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + '@storybook/addon-measure@7.6.20': dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 + '@storybook/addon-measure@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + tiny-invariant: 1.3.3 + + '@storybook/addon-onboarding@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 + '@storybook/addon-outline@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + '@storybook/addon-toolbars@7.6.20': {} + '@storybook/addon-toolbars@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 + '@storybook/addon-viewport@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + memoizerific: 1.11.3 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/manager-api': 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -8851,11 +10154,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -8909,6 +10212,14 @@ snapshots: - encoding - supports-color + '@storybook/builder-vite@8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + browser-assert: 1.2.1 + storybook: 8.5.3(prettier@3.4.2) + ts-dedent: 2.2.0 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + '@storybook/channels@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -8942,8 +10253,8 @@ snapshots: '@storybook/components@7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.2(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 @@ -8958,6 +10269,28 @@ snapshots: - '@types/react' - '@types/react-dom' + '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/client-logger': 7.6.20 + '@storybook/csf': 0.1.12 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/types': 7.6.20 + memoizerific: 1.11.3 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + use-resize-observer: 9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + '@storybook/components@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/core-client@7.6.20': dependencies: '@storybook/client-logger': 7.6.20 @@ -9021,6 +10354,26 @@ snapshots: - supports-color - utf-8-validate + '@storybook/core@8.5.3(prettier@3.4.2)': + dependencies: + '@storybook/csf': 0.1.12 + better-opn: 3.0.2 + browser-assert: 1.2.1 + esbuild: 0.24.2 + esbuild-register: 3.6.0(esbuild@0.24.2) + jsdoc-type-pratt-parser: 4.1.0 + process: 0.11.10 + recast: 0.23.9 + semver: 7.6.3 + util: 0.12.5 + ws: 8.18.0 + optionalDependencies: + prettier: 3.4.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@storybook/csf-plugin@7.6.20': dependencies: '@storybook/csf-tools': 7.6.20 @@ -9028,6 +10381,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/csf-plugin@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + unplugin: 1.16.0 + '@storybook/csf-tools@7.6.20': dependencies: '@babel/generator': 7.26.10 @@ -9061,6 +10419,22 @@ snapshots: '@storybook/global@5.0.0': {} + '@storybook/icons@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@storybook/instrumenter@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + '@storybook/global': 5.0.0 + '@vitest/utils': 2.1.9 + storybook: 8.5.3(prettier@3.4.2) + '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.17 @@ -9145,6 +10519,10 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 + '@storybook/preview-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + dependencies: + storybook: 8.5.3(prettier@3.4.2) + '@storybook/preview@7.6.20': {} '@storybook/react-dom-shim@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -9172,6 +10550,28 @@ snapshots: - typescript - vite-plugin-glimmerx + '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + dependencies: + '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + '@storybook/builder-vite': 8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + '@storybook/react': 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + find-up: 5.0.0 + magic-string: 0.30.17 + react: 19.0.0 + react-docgen: 7.1.0 + react-dom: 19.0.0(react@19.0.0) + resolve: 1.22.9 + storybook: 8.5.3(prettier@3.4.2) + tsconfig-paths: 4.2.0 + vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + optionalDependencies: + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + transitivePeerDependencies: + - rollup + - supports-color + - typescript + '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)': dependencies: '@storybook/client-logger': 7.6.20 @@ -9203,6 +10603,21 @@ snapshots: - encoding - supports-color + '@storybook/react@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)': + dependencies: + '@storybook/components': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/global': 5.0.0 + '@storybook/manager-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/preview-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/react-dom-shim': 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/theming': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + storybook: 8.5.3(prettier@3.4.2) + optionalDependencies: + '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + typescript: 5.7.3 + '@storybook/router@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -9304,6 +10719,11 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': + dependencies: + '@testing-library/dom': 10.4.0 '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: @@ -9446,6 +10866,10 @@ snapshots: dependencies: '@types/unist': 2.0.11 + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/mdx@2.0.13': {} '@types/mime@1.3.5': {} @@ -9489,6 +10913,15 @@ snapshots: '@types/range-parser@1.2.7': {} + '@types/react-dom@19.0.3(@types/react@18.3.17)': + dependencies: + '@types/react': 18.3.17 + optional: true + + '@types/react-dom@19.0.3(@types/react@19.0.8)': + dependencies: + '@types/react': 19.0.8 + '@types/react-test-renderer@19.0.0': dependencies: '@types/react': 19.0.8 @@ -9502,46 +10935,246 @@ snapshots: '@types/prop-types': 15.7.14 csstype: 3.1.3 - '@types/react@19.0.8': + '@types/react@19.0.8': + dependencies: + csstype: 3.1.3 + + '@types/resolve@1.20.6': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 24.3.1 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 24.3.1 + '@types/send': 0.17.4 + + '@types/statuses@2.0.5': {} + + '@types/tough-cookie@4.0.5': {} + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/uuid@9.0.8': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@16.0.9': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@vitejs/plugin-react@3.1.0(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0))': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 9.19.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.23.0 + eslint: 9.19.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0 + eslint: 9.19.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + eslint: 9.19.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.4.0 + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/scope-manager@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/scope-manager@8.23.0': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) + debug: 4.4.0 + eslint: 9.19.0 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.19.0 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/types@8.23.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 + debug: 4.4.0 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 2.0.1(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': dependencies: - csstype: 3.1.3 - - '@types/resolve@1.20.6': {} + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + eslint: 9.19.0 + transitivePeerDependencies: + - supports-color + - typescript - '@types/send@0.17.4': + '@typescript-eslint/utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': dependencies: - '@types/mime': 1.3.5 - '@types/node': 24.3.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@typescript-eslint/scope-manager': 8.23.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color - '@types/serve-static@1.15.7': + '@typescript-eslint/visitor-keys@6.21.0': dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 24.3.1 - '@types/send': 0.17.4 - - '@types/statuses@2.0.5': {} - - '@types/tough-cookie@4.0.5': {} - - '@types/unist@2.0.11': {} - - '@types/uuid@9.0.8': {} - - '@types/yargs-parser@21.0.3': {} + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 - '@types/yargs@16.0.9': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@types/yargs-parser': 21.0.3 + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 - '@types/yargs@17.0.33': + '@typescript-eslint/visitor-keys@8.23.0': dependencies: - '@types/yargs-parser': 21.0.3 + '@typescript-eslint/types': 8.23.0 + eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@3.1.0(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) magic-string: 0.27.0 react-refresh: 0.14.2 vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) @@ -10084,6 +11717,11 @@ snapshots: loupe: 3.1.3 pathval: 2.0.0 + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.0: dependencies: ansi-styles: 4.3.0 @@ -10114,6 +11752,8 @@ snapshots: chownr@2.0.0: {} + chromatic@11.25.2: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -10406,6 +12046,8 @@ snapshots: dom-accessibility-api@0.5.16: {} + dom-accessibility-api@0.6.3: {} + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 @@ -10512,59 +12154,72 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.1): dependencies: - debug: 4.4.1 - esbuild: 0.25.1 + '@storybook/csf': 0.1.12 + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color + - typescript - esbuild@0.25.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.1 - '@esbuild/android-arm': 0.25.1 - '@esbuild/android-arm64': 0.25.1 - '@esbuild/android-x64': 0.25.1 - '@esbuild/darwin-arm64': 0.25.1 - '@esbuild/darwin-x64': 0.25.1 - '@esbuild/freebsd-arm64': 0.25.1 - '@esbuild/freebsd-x64': 0.25.1 - '@esbuild/linux-arm': 0.25.1 - '@esbuild/linux-arm64': 0.25.1 - '@esbuild/linux-ia32': 0.25.1 - '@esbuild/linux-loong64': 0.25.1 - '@esbuild/linux-mips64el': 0.25.1 - '@esbuild/linux-ppc64': 0.25.1 - '@esbuild/linux-riscv64': 0.25.1 - '@esbuild/linux-s390x': 0.25.1 - '@esbuild/linux-x64': 0.25.1 - '@esbuild/netbsd-arm64': 0.25.1 - '@esbuild/netbsd-x64': 0.25.1 - '@esbuild/openbsd-arm64': 0.25.1 - '@esbuild/openbsd-x64': 0.25.1 - '@esbuild/sunos-x64': 0.25.1 - '@esbuild/win32-arm64': 0.25.1 - '@esbuild/win32-ia32': 0.25.1 - '@esbuild/win32-x64': 0.25.1 - - escalade@3.2.0: {} - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@5.0.0: {} + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 - escodegen@2.1.0: + eslint-scope@8.2.0: dependencies: - esprima: 4.0.1 + esrecurse: 4.3.0 estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.19.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.10.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + 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.4 + transitivePeerDependencies: + - supports-color - eslint-scope@5.1.1: + espree@10.3.0: dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -10693,6 +12348,8 @@ snapshots: dependencies: minimatch: 5.1.6 + filesize@10.1.6: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -10945,6 +12602,8 @@ snapshots: globals@14.0.0: {} + globals@15.14.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -11732,7 +13391,11 @@ snapshots: dependencies: react: 18.3.1 - math-intrinsics@1.1.0: {} + markdown-to-jsx@7.7.2(react@19.0.0): + dependencies: + react: 19.0.0 + + math-intrinsics@1.0.0: {} mdast-util-definitions@4.0.0: dependencies: @@ -11745,6 +13408,13 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + mdast-util-from-markdown@1.3.1: dependencies: '@types/mdast': 3.0.15 @@ -11762,6 +13432,23 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-autolink-literal@1.0.3: dependencies: '@types/mdast': 3.0.15 @@ -11769,17 +13456,43 @@ snapshots: mdast-util-find-and-replace: 2.2.2 micromark-util-character: 1.2.0 + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + mdast-util-gfm-footnote@1.0.2: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 micromark-util-normalize-identifier: 1.1.0 + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-strikethrough@1.0.3: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-table@1.0.7: dependencies: '@types/mdast': 3.0.15 @@ -11789,11 +13502,30 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-task-list-item@1.0.2: dependencies: '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-gfm@2.0.2: dependencies: mdast-util-from-markdown: 1.3.1 @@ -11806,11 +13538,28 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-phrasing@3.0.1: dependencies: '@types/mdast': 3.0.15 unist-util-is: 5.2.1 + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + mdast-util-to-markdown@1.5.0: dependencies: '@types/mdast': 3.0.15 @@ -11822,12 +13571,28 @@ snapshots: unist-util-visit: 4.1.2 zwitch: 2.0.4 + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + mdast-util-to-string@1.1.0: {} mdast-util-to-string@3.2.0: dependencies: '@types/mdast': 3.0.15 + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + media-typer@0.3.0: {} memoizerific@1.11.3: @@ -11879,6 +13644,25 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-core-commonmark@2.0.2: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-autolink-literal@1.0.5: dependencies: micromark-util-character: 1.2.0 @@ -11886,6 +13670,13 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-footnote@1.1.2: dependencies: micromark-core-commonmark: 1.1.0 @@ -11897,6 +13688,17 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-strikethrough@1.0.7: dependencies: micromark-util-chunked: 1.1.0 @@ -11906,6 +13708,15 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-table@1.0.7: dependencies: micromark-factory-space: 1.1.0 @@ -11914,10 +13725,22 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm-tagfilter@1.0.2: dependencies: micromark-util-types: 1.1.0 + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.1 + micromark-extension-gfm-task-list-item@1.0.5: dependencies: micromark-factory-space: 1.1.0 @@ -11926,6 +13749,14 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-extension-gfm@2.0.3: dependencies: micromark-extension-gfm-autolink-literal: 1.0.5 @@ -11937,12 +13768,29 @@ snapshots: micromark-util-combine-extensions: 1.1.0 micromark-util-types: 1.1.0 + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-destination@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-label@1.1.0: dependencies: micromark-util-character: 1.2.0 @@ -11950,11 +13798,23 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-space@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-types: 1.1.0 + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.1 + micromark-factory-title@1.1.0: dependencies: micromark-factory-space: 1.1.0 @@ -11962,6 +13822,13 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-factory-whitespace@1.1.0: dependencies: micromark-factory-space: 1.1.0 @@ -11969,30 +13836,61 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-character@1.2.0: dependencies: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-chunked@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-classify-character@1.1.0: dependencies: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-combine-extensions@1.1.0: dependencies: micromark-util-chunked: 1.1.0 micromark-util-types: 1.1.0 + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-decode-numeric-character-reference@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-decode-string@1.1.0: dependencies: decode-named-character-reference: 1.1.0 @@ -12000,24 +13898,49 @@ snapshots: micromark-util-decode-numeric-character-reference: 1.1.0 micromark-util-symbol: 1.1.0 + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + micromark-util-encode@1.1.0: {} + micromark-util-encode@2.0.1: {} + micromark-util-html-tag-name@1.2.0: {} + micromark-util-html-tag-name@2.0.1: {} + micromark-util-normalize-identifier@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-resolve-all@1.1.0: dependencies: micromark-util-types: 1.1.0 + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.1 + micromark-util-sanitize-uri@1.2.0: dependencies: micromark-util-character: 1.2.0 micromark-util-encode: 1.1.0 micromark-util-symbol: 1.1.0 + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-subtokenize@1.1.0: dependencies: micromark-util-chunked: 1.1.0 @@ -12025,10 +13948,21 @@ snapshots: micromark-util-types: 1.1.0 uvu: 0.5.6 + micromark-util-subtokenize@2.0.4: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + micromark-util-symbol@1.1.0: {} + micromark-util-symbol@2.0.1: {} + micromark-util-types@1.1.0: {} + micromark-util-types@2.0.1: {} + micromark@3.2.0: dependencies: '@types/debug': 4.1.12 @@ -12051,6 +13985,28 @@ snapshots: transitivePeerDependencies: - supports-color + micromark@4.0.1: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -12786,7 +14742,11 @@ snapshots: dependencies: typescript: 5.8.3 - react-docgen@7.1.1: + react-docgen-typescript@2.2.2(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 '@babel/traverse': 7.26.10 @@ -12842,7 +14802,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + + react-remove-scroll@2.5.5(@types/react@18.3.17)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) @@ -12853,6 +14821,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + react-remove-scroll@2.5.5(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.0.8)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.0.8)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): dependencies: get-nonce: 1.0.1 @@ -12861,6 +14840,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + react-style-singleton@2.2.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + get-nonce: 1.0.1 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + react-test-renderer@19.0.0(react@19.0.0): dependencies: react: 19.0.0 @@ -12996,12 +14983,38 @@ snapshots: transitivePeerDependencies: - supports-color + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.1 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + remark-slug@6.1.0: dependencies: github-slugger: 1.5.0 mdast-util-to-string: 1.1.0 unist-util-visit: 2.0.3 + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -13511,6 +15524,8 @@ snapshots: tinypool@1.1.1: {} + tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} tinyspy@4.0.3: {} @@ -13572,6 +15587,14 @@ snapshots: trough@2.2.0: {} + ts-api-utils@1.4.3(typescript@5.7.2): + dependencies: + typescript: 5.7.2 + + ts-api-utils@2.0.1(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + ts-dedent@2.2.0: {} tsc-alias@1.8.16: @@ -13656,6 +15679,16 @@ snapshots: typedarray@0.0.6: {} + typescript-eslint@8.23.0(eslint@9.19.0)(typescript@5.7.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + eslint: 9.19.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + typescript@4.9.5: {} typescript@5.8.3: {} @@ -13692,6 +15725,16 @@ snapshots: trough: 2.2.0 vfile: 5.3.7 + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 @@ -13706,10 +15749,18 @@ snapshots: dependencies: '@types/unist': 2.0.11 + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position@3.0.3: dependencies: '@types/unist': 2.0.11 + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit-parents@3.1.1: dependencies: '@types/unist': 2.0.11 @@ -13720,6 +15771,11 @@ snapshots: '@types/unist': 2.0.11 unist-util-is: 5.2.1 + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit@2.0.3: dependencies: '@types/unist': 2.0.11 @@ -13732,6 +15788,12 @@ snapshots: unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + universal-user-agent@6.0.1: {} universalify@0.2.0: {} @@ -13765,13 +15827,26 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + use-callback-ref@1.3.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@juggle/resize-observer': 3.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + use-resize-observer@9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@juggle/resize-observer': 3.4.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + use-sidecar@1.1.3(@types/react@18.3.17)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 @@ -13779,6 +15854,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 + use-sidecar@1.1.3(@types/react@19.0.8)(react@19.0.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.8 + util-deprecate@1.0.2: {} util@0.12.5: @@ -13816,6 +15899,11 @@ snapshots: '@types/unist': 2.0.11 unist-util-stringify-position: 3.0.3 + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + vfile@5.3.7: dependencies: '@types/unist': 2.0.11 From 3cdae8cd220210b7b6b142deb8513eb7eb6e3321 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 27 Mar 2025 10:44:47 +0100 Subject: [PATCH 015/165] Add new getAccessToken function. Resolve #617 --- packages/core/package.json | 23 +- packages/core/src/auth/getAccessToken.spec.ts | 4 +- packages/core/tsconfig.json | 47 +- packages/core/tsup.config.ts | 15 +- pnpm-lock.yaml | 2252 +++++++---------- 5 files changed, 935 insertions(+), 1406 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 3b516ef5..09d3e787 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,20 +5,22 @@ "type": "module", "main": "./dist/index.js", "exports": { + "./package.json": "./package.json", ".": { "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" + "default": "./dist/index.cjs" } }, "keywords": ["jamstack", "headless", "ecommerce", "api", "components"], "scripts": { - "lint": "biome lint --error-on-warnings ./src", + "check-exports": "attw --pack .", + "lint": "biome lint --error-on-warnings ./src && tsc", "lint:fix": "pnpm biome lint --write ./src", "test": "pnpm run lint && vitest --silent", "test:watch": "vitest", "coverage": "vitest run --coverage", - "build": "tsup" + "build": "tsup", + "ci": "pnpm build && pnpm check-exports && pnpm lint" }, "publishConfig": { "access": "public" @@ -29,15 +31,16 @@ }, "license": "MIT", "devDependencies": { - "@vitest/coverage-v8": "^3.0.4", - "tsup": "^8.3.6", - "typescript": "^5.7.3", + "@arethetypeswrong/cli": "^0.17.4", + "@vitest/coverage-v8": "^3.0.9", + "tsup": "^8.4.0", + "typescript": "^5.8.2", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.4" + "vitest": "^3.0.9" }, "dependencies": { - "@commercelayer/js-auth": "^6.7.0", - "@commercelayer/sdk": "6.29.2", + "@commercelayer/js-auth": "^6.7.1", + "@commercelayer/sdk": "6.36.0", "jwt-decode": "^4.0.0" } } diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index ff92d323..a57d0a39 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,7 +1,7 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { coreTest } from "../../extender.js" -import { getAccessToken } from "./getAccessToken.js" +import { coreTest } from "../../extender" +import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ authenticate: vi.fn(), diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index c920654c..9c1f4f07 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,27 +1,30 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - /* Module Resolution Options */ - "module": "Node16", - "target": "ES2022", - "moduleResolution": "Node16", - "verbatimModuleSyntax": true, - /* Other Options */ + /* Base Options: */ + "esModuleInterop": true, + "skipLibCheck": true, + "target": "es2022", + "allowJs": true, "resolveJsonModule": true, - "declaration": true /* Generates corresponding '.d.ts' file. */, - "strict": true /* Enable all strict type-checking options. */, - "noUnusedLocals": true /* Report errors on unused locals. */, - "noUnusedParameters": true /* Report errors on unused parameters. */, - "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, - "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, - "noUncheckedIndexedAccess": true /* Include 'undefined' in index signature results */, - "noPropertyAccessFromIndexSignature": true /* Require undeclared properties from index signatures to use element accesses. */, - "types": ["vitest/globals"], - "baseUrl": "." /* Base directory to resolve non-absolute module names. */, - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "moduleDetection": "force", + "isolatedModules": true, + "verbatimModuleSyntax": true, + "lib": ["es2022"], + + /* Strictness */ + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + + /* If transpiling with TypeScript: */ + "module": "Preserve", + + /* Relative Paths */ + "baseUrl": ".", + "paths": { + "#sdk": ["src/sdk/index.ts"], + "#types": ["src/types/index.ts"] + } }, - "include": ["**/*.ts", ".eslintrc.cjs", "src/hooks/useAuthenticate.tsx"], - "exclude": ["node_modules"] + "exclude": ["node_modules", "dist", "coverage", "*.spec.ts"] } diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 486ecc49..39f89612 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -3,13 +3,10 @@ import { defineConfig } from "tsup" const env = process.env.NODE_ENV export default defineConfig((options) => ({ - sourcemap: true, // source map is only available in prod - clean: true, // clean dist before build - dts: true, // generate dts file for main module - format: ["cjs", "esm"], // generate cjs and esm files - minify: !options.watch, - bundle: true, - watch: env === "development", - target: "es2020", - entry: ["src/index.ts"], + entryPoints: ["src/index.ts"], + format: ["cjs", "esm"], + dts: true, + outDir: "dist", + clean: true, + treeshake: true, })) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f58209ea..f6d904c8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,30 +54,33 @@ importers: packages/core: dependencies: '@commercelayer/js-auth': - specifier: ^6.7.0 - version: 6.7.0 + specifier: ^6.7.1 + version: 6.7.1 '@commercelayer/sdk': - specifier: 6.29.2 - version: 6.29.2 + specifier: 6.36.0 + version: 6.36.0 jwt-decode: specifier: ^4.0.0 version: 4.0.0 devDependencies: + '@arethetypeswrong/cli': + specifier: ^0.17.4 + version: 0.17.4 '@vitest/coverage-v8': - specifier: ^3.0.4 - version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1)) + specifier: ^3.0.9 + version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) tsup: - specifier: ^8.3.6 - version: 8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1) + specifier: ^8.4.0 + version: 8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0) typescript: - specifier: ^5.7.3 - version: 5.7.3 + specifier: ^5.8.2 + version: 5.8.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/debug@4.1.12)(@types/node@22.12.0)(jsdom@26.0.0)(msw@2.7.0(@types/node@22.12.0)(typescript@5.7.3))(terser@5.37.0)(yaml@2.6.1) + specifier: ^3.0.9 + version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) packages/docs: devDependencies: @@ -85,11 +88,8 @@ importers: specifier: ^7.26.9 version: 7.26.10 '@babel/preset-env': - specifier: ^7.26.0 - version: 7.26.0(@babel/core@7.26.0) - '@commercelayer/eslint-config-ts-react': - specifier: ^1.3.0 - version: 1.4.5(@types/eslint@9.6.1)(eslint@9.19.0)(react@18.3.1)(typescript@5.7.2) + specifier: ^7.26.9 + version: 7.26.9(@babel/core@7.26.10) '@commercelayer/js-auth': specifier: ^6.7.1 version: 6.7.2 @@ -107,10 +107,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -134,7 +134,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -215,89 +215,89 @@ importers: version: 19.0.0(react@19.0.0) devDependencies: '@chromatic-com/storybook': - specifier: ^3.2.4 - version: 3.2.4(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^3.2.6 + version: 3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@eslint/js': - specifier: ^9.19.0 - version: 9.19.0 + specifier: ^9.23.0 + version: 9.23.0 '@storybook/addon-docs': - specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^8.6.10 + version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-essentials': - specifier: ^8.5.3 - version: 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-interactions': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-links': - specifier: ^7.6.17 - version: 7.6.20(react@19.0.0) + specifier: ^8.6.10 + version: 8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-mdx-gfm': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/addon-onboarding': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/blocks': - specifier: ^8.5.3 - version: 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) '@storybook/react': - specifier: ^8.5.3 - version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + specifier: ^8.6.10 + version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) '@storybook/react-vite': - specifier: ^8.5.3 - version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + specifier: ^8.6.10 + version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/test': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/theming': - specifier: ^8.5.3 - version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) + specifier: ^8.6.10 + version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^19.0.12 + version: 19.0.12 '@types/react-dom': - specifier: ^19.0.3 - version: 19.0.3(@types/react@19.0.8) + specifier: ^19.0.4 + version: 19.0.4(@types/react@19.0.12) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) eslint: - specifier: ^9.19.0 - version: 9.19.0 + specifier: ^9.23.0 + version: 9.23.0 eslint-plugin-react-hooks: - specifier: ^5.0.0 - version: 5.1.0(eslint@9.19.0) + specifier: ^5.2.0 + version: 5.2.0(eslint@9.23.0) eslint-plugin-react-refresh: - specifier: ^0.4.18 - version: 0.4.18(eslint@9.19.0) + specifier: ^0.4.19 + version: 0.4.19(eslint@9.23.0) eslint-plugin-storybook: - specifier: ^0.11.2 - version: 0.11.2(eslint@9.19.0)(typescript@5.7.3) + specifier: ^0.12.0 + version: 0.12.0(eslint@9.23.0)(typescript@5.8.2) globals: - specifier: ^15.14.0 - version: 15.14.0 + specifier: ^16.0.0 + version: 16.0.0 msw: - specifier: ^2.7.0 - version: 2.7.0(@types/node@22.12.0)(typescript@5.7.3) + specifier: ^2.7.3 + version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) remark-gfm: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.0.1 + version: 4.0.1 storybook: - specifier: ^8.5.3 - version: 8.5.3(prettier@3.4.2) + specifier: ^8.6.10 + version: 8.6.10(prettier@2.8.8) typescript: - specifier: ~5.7.2 - version: 5.7.3 + specifier: ~5.8.2 + version: 5.8.2 typescript-eslint: - specifier: ^8.22.0 - version: 8.23.0(eslint@9.19.0)(typescript@5.7.3) + specifier: ^8.28.0 + version: 8.28.0(eslint@9.23.0)(typescript@5.8.2) vite: - specifier: ^6.1.0 - version: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + specifier: ^6.2.3 + version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: @@ -320,8 +320,8 @@ importers: specifier: ^8.21.3 version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/iframe-resizer': - specifier: ^3.5.13 - version: 3.5.13 + specifier: ^4.0.0 + version: 4.0.0 braintree-web: specifier: ^3.129.0 version: 3.129.0 @@ -369,8 +369,8 @@ importers: specifier: ^15.7.15 version: 15.7.15 '@types/react': - specifier: ^19.0.8 - version: 19.0.8 + specifier: ^19.0.12 + version: 19.0.12 '@types/react-test-renderer': specifier: ^19.0.0 version: 19.0.0 @@ -429,6 +429,18 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@andrewbranch/untar.js@1.0.3': + resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} + + '@arethetypeswrong/cli@0.17.4': + resolution: {integrity: sha512-AeiKxtf67XD/NdOqXgBOE5TZWH3EOCt+0GkbUpekOzngc+Q/cRZ5azjWyMxISxxfp0EItgm5NoSld9p7BAA5xQ==} + engines: {node: '>=18'} + hasBin: true + + '@arethetypeswrong/core@0.17.4': + resolution: {integrity: sha512-Izvir8iIoU+X4SKtDAa5kpb+9cpifclzsbA8x/AZY0k0gIfXYQ1fa1B6Epfe6vNA2YfDX8VtrZFgvnXB6aPEoQ==} + engines: {node: '>=18'} + '@asamuzakjp/css-color@3.1.1': resolution: {integrity: sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==} @@ -1072,6 +1084,9 @@ packages: cpu: [x64] os: [win32] + '@braidai/lang@1.1.0': + resolution: {integrity: sha512-xyJYkiyNQtTyCLeHxZmOs7rnB94D+N1IjKNArQIh8+8lTBOY7TFgwEV+Ow5a1uaBi5j2w9fLbWcJFTWLDItl5g==} + '@braintree/asset-loader@2.0.0': resolution: {integrity: sha512-7Zs3/g3lPTfkdtWr7cKh3tk1pDruXR++TXwGKkx7BPuTjjLNFul2JSfI+ScHzNU4u/gZNPNQagsSTlYxIhBgMA==} @@ -1127,12 +1142,12 @@ packages: resolution: {integrity: sha512-uc/n8MDuoAXASSAgAwBIXKUFCtMufUDhqwNXiFwMqu+/gAEc2jqOcH2dO+RERsWpPF2vEveCxsu+oj+IcWBTGw==} engines: {node: '>=20'} - '@commercelayer/sdk@6.29.2': - resolution: {integrity: sha512-g7Tk0jR2ice0FTPaENN7D/XZOCtxO69UN5mLWBNh5ZnXNlGyS1HcNiakk0d7PHwb4ninLf9vjHsQ53QJCTctRw==} + '@commercelayer/sdk@6.36.0': + resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} engines: {node: '>=20'} - '@csstools/color-helpers@5.0.1': - resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.2': @@ -1342,6 +1357,26 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + engines: {node: '>=18.18'} + '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} @@ -1457,6 +1492,9 @@ packages: resolution: {integrity: sha512-f+68+iojcQ0tZRMfCgQyJdsdz+YPu3/d+0Zo1RJz92bgBxTCiEU+dHACVq1n3sEjm/YWPnFGdag8U5EYYmP3WA==} engines: {node: '>=18.0.0'} + '@loaderkit/resolve@1.0.4': + resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} + '@mdx-js/react@2.3.0': resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} peerDependencies: @@ -1468,8 +1506,8 @@ packages: '@types/react': '>=16' react: '>=16' - '@mswjs/interceptors@0.37.6': - resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} + '@mswjs/interceptors@0.37.3': + resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} engines: {node: '>=18'} '@mswjs/interceptors@0.39.2': @@ -1725,8 +1763,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.2': - resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} + '@radix-ui/react-collection@1.1.1': + resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1884,8 +1922,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.2': - resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + '@radix-ui/react-primitive@2.0.1': + resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1897,8 +1935,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.2': - resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + '@radix-ui/react-roving-focus@1.1.1': + resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1923,8 +1961,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.2': - resolution: {integrity: sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ==} + '@radix-ui/react-separator@1.1.1': + resolution: {integrity: sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1945,8 +1983,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-slot@1.1.2': - resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + '@radix-ui/react-slot@1.1.1': + resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1954,8 +1992,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-toggle-group@1.1.2': - resolution: {integrity: sha512-JBm6s6aVG/nwuY5eadhU2zDi/IwYS0sDM5ZWb4nymv/hn3hZdkw+gENn0LP4iY1yCd7+bgJaCwueMYJIU3vk4A==} + '@radix-ui/react-toggle-group@1.1.1': + resolution: {integrity: sha512-OgDLZEA30Ylyz8YSXvnGqIHtERqnUt1KUYTKdw/y8u7Ci6zGiJfXc02jahmcSNK3YcErqioj/9flWC9S1ihfwg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1967,8 +2005,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.2': - resolution: {integrity: sha512-lntKchNWx3aCHuWKiDY+8WudiegQvBpDRAYL8dKLRvKEH8VOpl0XX6SSU/bUBqIRJbcTy4+MW06Wv8vgp10rzQ==} + '@radix-ui/react-toggle@1.1.1': + resolution: {integrity: sha512-i77tcgObYr743IonC1hrsnnPmszDRn8p+EGUsUt+5a/JFn28fxaM88Py6V2mc8J5kELMWishI0rLnuGLFD/nnQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1980,8 +2018,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toolbar@1.1.2': - resolution: {integrity: sha512-wT20eQ7ScFk+kBMDmHp+lMk18cgxhu35b2Bn5deUcPxiVwfn5vuZgi7NGcHu8ocdkinahmp4FaSZysKDyRVPWQ==} + '@radix-ui/react-toolbar@1.1.1': + resolution: {integrity: sha512-r7T80WOCHc2n3KRzFCbHWGVzkfVTCzDofGU4gqa5ZuIzgnVaLogGsdyifFJXWQDp0lAr5hrf+X9uqQdE0pa6Ww==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2242,29 +2280,33 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} - '@storybook/addon-actions@8.5.3': - resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} + '@storybook/addon-actions@8.6.10': + resolution: {integrity: sha512-g+aC1bFwIwZqxSVjw+BhJJeTmZPBhZT52AO6DUYWF+FZ2N3rjnaVKwT1gZYYhuYw2WtWw2wLivkXcq2L/IBbkg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} - '@storybook/addon-backgrounds@8.5.3': - resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} + '@storybook/addon-backgrounds@8.6.10': + resolution: {integrity: sha512-zou/VJSVDacuaQVJV22hbQEZrQBllcoxSw40EgSedqLv1qaVpC7Nz5LY9srl522LeoVEP+AOYKf9K7hLbm0o7w==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} - '@storybook/addon-controls@8.5.3': - resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} + '@storybook/addon-controls@8.6.10': + resolution: {integrity: sha512-aMw3NCVSq+vWEAp10kbBlbMx+7PIFFdgxMCh7b9N2DUR/5J4KCNFQosa8fAn03Noh2g5jgceqNyY6L4lDIu0Xw==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} @@ -2272,10 +2314,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-docs@8.5.3': - resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} + '@storybook/addon-docs@8.6.10': + resolution: {integrity: sha512-VnGtzwVaC8NvfhLr8UdIa6n38emU2SaDzfOTbvR1zibiqRmFDbo+kvAGSPOT6oIC5jZleUTLiIz0GzHxLuMxOQ==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} @@ -2283,26 +2325,26 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-essentials@8.5.3': - resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} + '@storybook/addon-essentials@8.6.10': + resolution: {integrity: sha512-8sKfAp3KkEjIHm02JhdazEKHlwO8VQgzAHk2fzHREgf24KqlCyF9BhDM1vG38fGdB+B+l1edZTE5a3NmcvK5Cg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} - '@storybook/addon-highlight@8.5.3': - resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} + '@storybook/addon-highlight@8.6.10': + resolution: {integrity: sha512-ZKl0yKzs/6xOpeDIiqHhfrJGQYA7jQ6cxO2nUm3zyqOnHZspef38VlqE63VttBq+mKnh9VbemmaTd2mUgQnm2A==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} - '@storybook/addon-interactions@8.5.3': - resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} + '@storybook/addon-interactions@8.6.10': + resolution: {integrity: sha512-BtuqLJj1L5a8a4RmnX5YjrGhiEfn7LTdQgn2m71F8DnMCwvvYLHQgYUcpjobMld1OZr3IKq4/zCqesaGET++fQ==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} @@ -2312,50 +2354,59 @@ packages: react: optional: true + '@storybook/addon-links@8.6.10': + resolution: {integrity: sha512-t7gRsFbOIAsqxb/5KA/LOywvx8USopqfW1KwLDBrDYaRUwkdiJVOSxjKB1a6cndFmqcGzucdXQx/PMmOQe9dig==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.6.10 + peerDependenciesMeta: + react: + optional: true + '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} - '@storybook/addon-mdx-gfm@8.5.3': - resolution: {integrity: sha512-jKfJir3E+jJkD1K9SvrzUQBhaQJbGd2DtcE5IusXe0NKBJegbBy+eMhh9K7ani/isTf8+ZkhoXR3DFWwi2IJhg==} + '@storybook/addon-mdx-gfm@8.6.10': + resolution: {integrity: sha512-9Ddu0AZ074O/hgooy2tFPvZqPzCJBQW57gGfCAj9PCvgRoALWsA7s5QHUlicq2r+iIxbKZv6o72ND+7Z9TwA7Q==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} - '@storybook/addon-measure@8.5.3': - resolution: {integrity: sha512-unb0bRsnISXWiCBBECxNUUdM12hHpV+1uJUu5OJHtKb26YpiQvewDFLTLjuZJ3NIAfw+F5232Q7K88AWJV6weg==} + '@storybook/addon-measure@8.6.10': + resolution: {integrity: sha512-ef5vAum7tMdiTsGsHOIHaLCyN0e3gLU2X4gzNelqH0/x/09C2QQaiOFDIpvbKt6HSjpHJeYcUOGzF7U/o4xVkw==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 - '@storybook/addon-onboarding@8.5.3': - resolution: {integrity: sha512-NZhYj3UZK65reO7mXcK7FPPu7QkLCRyIa6TpfQ3mRAocfjqg401mcBsRO37JNywYfHCZrU4w1l7pwpqjvcYceg==} + '@storybook/addon-onboarding@8.6.10': + resolution: {integrity: sha512-n4wtlZqYQiigtYCDCRXH1ilmGGv+DG5mggiTLpcLJEh9tZg2dGUptSyGARRF6igYYeiZTdDo8OPvwFUZc5N+vg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} - '@storybook/addon-outline@8.5.3': - resolution: {integrity: sha512-e1MkGN6XVdeRh2oUKGdqEDyAo2TD/47ashAAxw8DEiLRWgBMbQ+KBVH4EOG+dn5395jxh7YgRLJn/miqNnfN5g==} + '@storybook/addon-outline@8.6.10': + resolution: {integrity: sha512-Z5lQ/q9rULtlD99V1S3ymEU59tJGD2KHEdr4HRUgxo+fkyy7nOZDi88sOupoICBuAVYBIcxLKiMeYrUIwjHqtg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} - '@storybook/addon-toolbars@8.5.3': - resolution: {integrity: sha512-AWr9Per9WDrbFtNlbVlj6CiEwKOvOyoBt3bCuMHuRfTdqKwkwInEtyUi4//T8U+c1qs7KJBpsWV2vhIuc5sODg==} + '@storybook/addon-toolbars@8.6.10': + resolution: {integrity: sha512-cHhI+9r/Wt/l+E02V2UvybkmdembqjVUagLNHRIRQSqx0tH762G0OD3JzOC2nqmXMjABY2mUkADORhWERfMPjg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} - '@storybook/addon-viewport@8.5.3': - resolution: {integrity: sha512-OkLJ2B8+PiOEAd2HtRG6XewVjtw6AkBMgoSbfKCMr6TWSbuKrOeiwIMqqieAAPVNfsOQ8hTK6JGhr/KPRCKgRA==} + '@storybook/addon-viewport@8.6.10': + resolution: {integrity: sha512-0ATxfA+bHpTcdTUc83VVJF3XPJqe64Yl1I9UWnx/XG2gzo8avRA44pQe8ETH5Fwr7kAvDMqW6LXAisfsl20wrg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2384,10 +2435,10 @@ packages: vite-plugin-glimmerx: optional: true - '@storybook/builder-vite@8.5.3': - resolution: {integrity: sha512-MxriwzZSVidaXj3kpH/jCOJZUdF7ofcvxmvrMrNehH9UvXIGM6b73CBC5ucnptbnQ7qxYKdAZiMhQbPHZ9cqOQ==} + '@storybook/builder-vite@8.6.10': + resolution: {integrity: sha512-RXT4uflQSgXSHbWG+Z2Im5r7Ji1wj0Lyo6hVJZIBLEbaIbjfvPtP9CXlhK/z1h90cegHTnkYDd01RHwgmlKRrg==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 vite: '>=4.5.2' '@storybook/channels@7.6.17': @@ -2411,8 +2462,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/components@8.5.3': - resolution: {integrity: sha512-iC9VbpM8Equ8wXI2syBzov+8wys4sGYW7Xfz67LdSVbCMhsH9FRtvgbDppJQC/ZDCofg4sTAHhWpDV/KAQ385A==} + '@storybook/components@8.6.10': + resolution: {integrity: sha512-9TE2aZU+1zjGO4R74jc4Dmx+pFb+9hm1vnlWH+WVfYV1nCSCZOMmMoO2J86PHPkR6RmPjcQJXz4ySdBbYiwKiw==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2436,8 +2487,8 @@ packages: prettier: optional: true - '@storybook/core@8.5.3': - resolution: {integrity: sha512-ZLlr2pltbj/hmC54lggJTnh09FCAJR62lIdiXNwa+V+/eJz0CfD8tfGmZGKPSmaQeZBpMwAOeRM97k2oLPF+0w==} + '@storybook/core@8.6.10': + resolution: {integrity: sha512-VyhE/9/idPeeObsx+DyD8RR2iEwLJGL9rYz61r+1IrpndIVnlYD+vjxc0Y/1jTG1RvShWzEF2A/vzsJ9PzXqcw==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: @@ -2447,10 +2498,10 @@ packages: '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} - '@storybook/csf-plugin@8.5.3': - resolution: {integrity: sha512-u5oyXTFg3KIy4h9qoNyiCG2mJF3OpkLO/AcM4lMAwQVnBvz8pwITvr4jDZByVjGmcIbgKJQnWX+BwdK2NI4yAw==} + '@storybook/csf-plugin@8.6.10': + resolution: {integrity: sha512-yjtFyjEvmmWUG1NzM81/CLI5rOUG311EoPmRnvbNpdzaVug4emC3rX9mR69DsrXfL7kLTDltDH8tjA7wLxpGMA==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2471,10 +2522,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.5.3': - resolution: {integrity: sha512-pxaTbGeju8MkwouIiaWX5DMWtpRruxqig8W3nZPOvzoSCCbQY+sLMQoyXxFlpGxLBjcvXivkL7AMVBKps5sFEQ==} + '@storybook/instrumenter@8.6.10': + resolution: {integrity: sha512-Hlps6V0lkhFMbgcJQRynVBne51ciG7Xv+YtiDCd0PQtvZu8+vVJr/ebWt3nCwpvkRHooYiud1ScA3K8McyA73w==} peerDependencies: - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2502,8 +2553,8 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - '@storybook/preview-api@8.5.3': - resolution: {integrity: sha512-dUsuXW+KgDg4tWXOB6dk5j5gwwRUzbPvicHAY9mzbpSVScbWXuE5T/S/9hHlbtfkhFroWQgPx2eB8z3rai+7RQ==} + '@storybook/preview-api@8.6.10': + resolution: {integrity: sha512-8ki1GgiUlcSqZD3Oe42Fy0uW3E7XPpMAyzO+NSnHCKKfNlZgi036Rr+FyGcKwG5lJyubWwNesPGQX5UHigYu4w==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2516,12 +2567,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-dom-shim@8.5.3': - resolution: {integrity: sha512-kNIGk6mpXW3Wy+uS9pH9b9w/54EPJnH+QXA6MX4EQgmxhMQlGlS/l/YZp+3jsVQW4YgTmqe740qB+ccJAKZxBQ==} + '@storybook/react-dom-shim@8.6.10': + resolution: {integrity: sha512-r4Q5stsoIlSEvOpOJgyFGPej+t9uuIzGI2ul83XNtiHEBs7xlmUN7qAm+U9cOuNZ7mPOXDKt9nZfUfCP5Ouhyw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} @@ -2531,14 +2582,14 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' - '@storybook/react-vite@8.5.3': - resolution: {integrity: sha512-F30u2Xf+X774wrfQzWgg7vRVJmmJFbBVGdULsAGonkdy1FUeYo7puPiD2Qg6hBYNDyIyxDXVOukkOvTlG7IBRg==} + '@storybook/react-vite@8.6.10': + resolution: {integrity: sha512-CyptES7yE1fnZWMN5xk6AFPuchjg4YN8VvBaC0YyveKhfeXlczGwG9nPU28ZY3I+Xzz5g/A6rBvgSRQ88hc/bQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.5.3 + '@storybook/test': 8.6.10 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 vite: '>=4.5.2' peerDependenciesMeta: '@storybook/test': @@ -2555,14 +2606,14 @@ packages: typescript: optional: true - '@storybook/react@8.5.3': - resolution: {integrity: sha512-QIdBSjsnwV/J919i4Fi7DlwxDKHU815t0c4B/w2KTMtKKBkk+Bge+vgVi0/lNqD3eF4w3yjVWGbkzUQZ63yiPg==} + '@storybook/react@8.6.10': + resolution: {integrity: sha512-QCs5nyXe+G2ZoZ1uspEsnSp7VYLJej5dJ1bSf22rrdHQde641zvC2HZQaba4dqR2YQxRCG9JtCdaQ3UVmnfzzA==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.5.3 + '@storybook/test': 8.6.10 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 + storybook: ^8.6.10 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -2648,6 +2699,12 @@ packages: '@types/react-dom': optional: true + '@testing-library/user-event@14.5.2': + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + '@testing-library/user-event@14.6.1': resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} engines: {node: '>=12', npm: '>=6'} @@ -2749,8 +2806,8 @@ packages: '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/iframe-resizer@3.5.13': - resolution: {integrity: sha512-/Np2ntlOWd/NOHs23Mj7QlNEnZ6SL02AWWdYZLm4RQNukDdpqpagfMAdin5FvQDLngR8LWfh/qUnYxuDmR8BCg==} + '@types/iframe-resizer@4.0.0': + resolution: {integrity: sha512-RKrT4goNVtqZvf9WPkV0cUcphQWXzLVW1IE4yOIY21c1W+obJJbcHFD1lQu5ncNHm/6TeQSeedVf9bmkx2NaGQ==} '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -2830,8 +2887,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.0.3': - resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + '@types/react-dom@19.0.4': + resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} peerDependencies: '@types/react': ^19.0.0 @@ -2844,8 +2901,8 @@ packages: '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - '@types/react@19.0.8': - resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} + '@types/react@19.0.12': + resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -2880,110 +2937,43 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/eslint-plugin@8.23.0': - resolution: {integrity: sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==} + '@typescript-eslint/eslint-plugin@8.28.0': + resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.23.0': - resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} + '@typescript-eslint/parser@8.28.0': + resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/scope-manager@8.23.0': resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/scope-manager@8.28.0': + resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.23.0': - resolution: {integrity: sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==} + '@typescript-eslint/type-utils@8.28.0': + resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/types@8.23.0': resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.28.0': + resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.23.0': resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} @@ -2991,11 +2981,11 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.28.0': + resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/utils@8.23.0': resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} @@ -3004,18 +2994,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.28.0': + resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/visitor-keys@8.23.0': resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.28.0': + resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-react@3.1.0': resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3026,7 +3019,7 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=4.5.2' + vite: '>=5.1.7' '@vitejs/plugin-react@5.0.2': resolution: {integrity: sha512-tmyFgixPZCx2+e6VO9TNITWcCQl8+Nl/E8YbAyPVv85QCc7/A3JrdfG2A8gIzvVhWuzMOVrFW1aReaNxrI6tbw==} @@ -3194,6 +3187,9 @@ packages: peerDependencies: ajv: ^8.8.2 + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -3205,6 +3201,10 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3394,13 +3394,6 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3472,6 +3465,14 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} @@ -3525,6 +3526,11 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} @@ -3579,6 +3585,10 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -3872,6 +3882,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -3963,6 +3976,10 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -3972,128 +3989,19 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-love@43.1.0: - resolution: {integrity: sha512-r3+7mSaOl0BEGf8LEntPPDbWTDw8o0Dpy9vdts7m+NAuSpmz9C/gL+64lC0Z8nKNE4uwdymPGll4czGQiR+XmQ==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.4.0 - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - typescript: '*' - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-standard-jsx@11.0.0: - resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} - peerDependencies: - eslint: ^8.8.0 - eslint-plugin-react: ^7.28.0 - - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-es-x@7.8.0: - resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-n@16.6.2: - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-prettier@5.2.1: - resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} - engines: {node: ^14.18.0 || >=16.0.0} - 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 - - eslint-plugin-promise@6.6.0: - resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {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 - eslint-plugin-react-refresh@0.4.18: - resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} + eslint-plugin-react-refresh@0.4.19: + resolution: {integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==} peerDependencies: eslint: '>=8.40' - eslint-plugin-react@7.37.2: - resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-plugin-storybook@0.11.2: - resolution: {integrity: sha512-0Z4DUklJrC+GHjCRXa7PYfPzWC15DaVnwaOYenpgXiCEijXPZkLKCms+rHhtoRcWccP7Z8DpOOaP1gc3P9oOwg==} + eslint-plugin-storybook@0.12.0: + resolution: {integrity: sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==} engines: {node: '>= 18'} peerDependencies: eslint: '>=8' @@ -4102,8 +4010,8 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -4114,8 +4022,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.19.0: - resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + eslint@9.23.0: + resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4133,6 +4041,10 @@ packages: engines: {node: '>=4'} hasBin: true + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -4198,6 +4110,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} @@ -4224,10 +4139,17 @@ packages: picomatch: optional: true + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} @@ -4270,6 +4192,10 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -4460,22 +4386,14 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + globals@16.0.0: + resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} engines: {node: '>=18'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4490,6 +4408,9 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@16.10.0: resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -4532,6 +4453,9 @@ packages: headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -4956,6 +4880,9 @@ packages: engines: {node: '>=6'} hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -4966,9 +4893,15 @@ packages: resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-nice@1.1.4: resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} @@ -5000,6 +4933,9 @@ packages: resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} engines: {node: '>=18'} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -5159,6 +5095,17 @@ packages: peerDependencies: react: '>= 0.14.0' + marked-terminal@7.3.0: + resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <16' + + marked@9.1.6: + resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} + engines: {node: '>= 16'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -5593,6 +5540,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5738,6 +5688,10 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + ora@5.3.0: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} @@ -5851,6 +5805,15 @@ packages: parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.2.1: resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} @@ -6004,6 +5967,10 @@ packages: preact@10.22.1: resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -6147,8 +6114,8 @@ packages: peerDependencies: typescript: '>= 4.3.x' - react-docgen@7.1.1: - resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} + react-docgen@7.1.0: + resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} react-dom@18.3.1: @@ -6318,8 +6285,8 @@ packages: remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} @@ -6441,10 +6408,6 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -6681,6 +6644,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -6843,8 +6810,8 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + tr46@5.1.0: + resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} engines: {node: '>=18'} tree-kill@1.2.2: @@ -6862,12 +6829,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - ts-api-utils@2.0.1: resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} engines: {node: '>=18.12'} @@ -6900,8 +6861,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.3.6: - resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} + tsup@8.4.0: + resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -6958,12 +6919,12 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.23.0: - resolution: {integrity: sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==} + typescript-eslint@8.28.0: + resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} @@ -6998,6 +6959,10 @@ packages: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} @@ -7086,6 +7051,9 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -7331,6 +7299,10 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -7451,6 +7423,29 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 + '@andrewbranch/untar.js@1.0.3': {} + + '@arethetypeswrong/cli@0.17.4': + dependencies: + '@arethetypeswrong/core': 0.17.4 + chalk: 4.1.2 + cli-table3: 0.6.5 + commander: 10.0.1 + marked: 9.1.6 + marked-terminal: 7.3.0(marked@9.1.6) + semver: 7.7.1 + + '@arethetypeswrong/core@0.17.4': + dependencies: + '@andrewbranch/untar.js': 1.0.3 + '@loaderkit/resolve': 1.0.4 + cjs-module-lexer: 1.4.3 + fflate: 0.8.2 + lru-cache: 10.4.3 + semver: 7.7.1 + typescript: 5.6.1-rc + validate-npm-package-name: 5.0.1 + '@asamuzakjp/css-color@3.1.1': dependencies: '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) @@ -8259,6 +8254,8 @@ snapshots: '@biomejs/cli-win32-x64@2.2.4': optional: true + '@braidai/lang@1.1.0': {} + '@braintree/asset-loader@2.0.0': {} '@braintree/asset-loader@2.0.3': {} @@ -8302,7 +8299,9 @@ snapshots: '@commercelayer/sdk@6.46.0': {} - '@commercelayer/sdk@6.29.2': {} + '@commercelayer/sdk@6.36.0': {} + + '@csstools/color-helpers@5.0.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: @@ -8339,14 +8338,7 @@ snapshots: dependencies: react: 18.3.1 - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': - dependencies: - react: 19.0.0 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.1': optional: true '@esbuild/android-arm64@0.25.1': @@ -8438,13 +8430,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/dom': 1.6.12 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@floating-ui/utils@0.2.8': {} + '@floating-ui/utils@0.2.9': {} '@humanfs/core@0.19.1': {} @@ -8457,7 +8443,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.2': {} '@hutson/parse-repository-url@3.0.2': {} @@ -8706,29 +8692,27 @@ snapshots: - supports-color - typescript - '@mdx-js/react@2.3.0(react@18.3.1)': + '@loaderkit/resolve@1.0.4': dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 18.3.1 + '@braidai/lang': 1.1.0 - '@mdx-js/react@2.3.0(react@19.0.0)': + '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 19.0.0 + '@types/react': 18.3.18 + react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@18.3.17)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 '@types/react': 18.3.18 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@19.0.8)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.8 - react: 18.3.1 + '@types/react': 19.0.12 + react: 19.0.0 '@mswjs/interceptors@0.37.3': dependencies: @@ -9035,75 +9019,40 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9112,104 +9061,51 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.17)(react@18.3.1)': - dependencies: - react: 18.3.1 + react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-context@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-context@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-direction@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-direction@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9218,36 +9114,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9257,235 +9134,116 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-id@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/rect': 1.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/rect': 1.0.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - aria-hidden: 1.2.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.5.5(@types/react@19.0.8)(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9495,109 +9253,53 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.0.2(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-slot@1.1.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-slot@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.17)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.17)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9606,26 +9308,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -9633,29 +9322,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -9663,55 +9337,27 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/rect': 1.0.1 @@ -9719,15 +9365,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.0.1(@types/react@19.0.8)(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/rect': 1.0.1 - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.17)(react@18.3.1)': + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -9735,33 +9373,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.0.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.10 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.17 - '@types/react-dom': 19.0.3(@types/react@18.3.17) - - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 19.0.4(@types/react@18.3.18) '@radix-ui/rect@1.0.1': dependencies: @@ -9876,6 +9496,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sindresorhus/is@4.6.0': {} + '@storybook/addon-actions@7.6.20': dependencies: '@storybook/core-events': 7.6.20 @@ -9885,13 +9507,13 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-actions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-actions@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) uuid: 9.0.1 '@storybook/addon-backgrounds@7.6.20': @@ -9900,16 +9522,16 @@ snapshots: memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-backgrounds@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -9920,20 +9542,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-controls@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-controls@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -9956,54 +9578,25 @@ snapshots: - encoding - supports-color - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/addon-docs@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@jest/transform': 29.7.0 - '@mdx-js/react': 2.3.0(react@19.0.0) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(encoding@0.1.13)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/csf-plugin': 7.6.20 - '@storybook/csf-tools': 7.6.20 - '@storybook/global': 5.0.0 - '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.20 - '@storybook/postinstall': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - fs-extra: 11.2.0 + '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) + '@storybook/blocks': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - remark-external-links: 8.0.0 - remark-slug: 6.1.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - - '@storybook/addon-docs@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@18.3.1) - '@storybook/blocks': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -10022,18 +9615,18 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': - dependencies: - '@storybook/addon-actions': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-backgrounds': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-controls': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-docs': 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-highlight': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-measure': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-outline': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-toolbars': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-viewport': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - storybook: 8.5.3(prettier@3.4.2) + '@storybook/addon-essentials@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': + dependencies: + '@storybook/addon-actions': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-backgrounds': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-controls': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-docs': 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-highlight': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-measure': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-outline': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-toolbars': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/addon-viewport': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -10042,10 +9635,10 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-highlight@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-highlight@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-interactions@7.6.20': dependencies: @@ -10055,13 +9648,13 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 - '@storybook/addon-interactions@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-interactions@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) polished: 4.3.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-links@7.6.20(react@18.3.1)': @@ -10072,10 +9665,10 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-links@7.6.20(react@19.0.0)': + '@storybook/addon-links@8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 '@storybook/global': 5.0.0 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 @@ -10088,10 +9681,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-mdx-gfm@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-mdx-gfm@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - remark-gfm: 4.0.0 - storybook: 8.5.3(prettier@3.4.2) + remark-gfm: 4.0.1 + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -10101,41 +9694,41 @@ snapshots: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - '@storybook/addon-measure@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-measure@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-onboarding@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - '@storybook/addon-outline@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-outline@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-toolbars@7.6.20': {} - '@storybook/addon-toolbars@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-toolbars@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 - '@storybook/addon-viewport@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-viewport@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: memoizerific: 1.11.3 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10154,11 +9747,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -10212,13 +9805,13 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@storybook/builder-vite@8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) browser-assert: 1.2.1 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) ts-dedent: 2.2.0 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@storybook/channels@7.6.17': dependencies: @@ -10269,27 +9862,9 @@ snapshots: - '@types/react' - '@types/react-dom' - '@storybook/components@7.6.20(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/client-logger': 7.6.20 - '@storybook/csf': 0.1.12 - '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.20(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@storybook/types': 7.6.20 - memoizerific: 1.11.3 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - use-resize-observer: 9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - '@storybook/components@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/components@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/core-client@7.6.20': dependencies: @@ -10354,23 +9929,24 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core@8.5.3(prettier@3.4.2)': + '@storybook/core@8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8))': dependencies: - '@storybook/csf': 0.1.12 + '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.24.2 - esbuild-register: 3.6.0(esbuild@0.24.2) + esbuild: 0.25.1 + esbuild-register: 3.6.0(esbuild@0.25.1) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.9 - semver: 7.6.3 + semver: 7.7.1 util: 0.12.5 - ws: 8.18.0 + ws: 8.18.1 optionalDependencies: - prettier: 3.4.2 + prettier: 2.8.8 transitivePeerDependencies: - bufferutil + - storybook - supports-color - utf-8-validate @@ -10381,10 +9957,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/csf-plugin@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/csf-plugin@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) - unplugin: 1.16.0 + storybook: 8.6.10(prettier@2.8.8) + unplugin: 1.16.1 '@storybook/csf-tools@7.6.20': dependencies: @@ -10395,7 +9971,7 @@ snapshots: '@storybook/csf': 0.1.13 '@storybook/types': 7.6.20 fs-extra: 11.3.0 - recast: 0.23.11 + recast: 0.23.9 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -10419,21 +9995,16 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@storybook/instrumenter@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/instrumenter@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10519,9 +10090,9 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview-api@8.5.3(storybook@8.5.3(prettier@3.4.2))': + '@storybook/preview-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': dependencies: - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) '@storybook/preview@7.6.20': {} @@ -10539,7 +10110,7 @@ snapshots: '@vitejs/plugin-react': 3.1.0(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 - react-docgen: 7.1.1 + react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) transitivePeerDependencies: @@ -10550,23 +10121,23 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.32.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1))': + '@storybook/react-vite@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@rollup/pluginutils': 5.1.4(rollup@4.32.0) - '@storybook/builder-vite': 8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1)) - '@storybook/react': 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@rollup/pluginutils': 5.1.4(rollup@4.35.0) + '@storybook/builder-vite': 8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/react': 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) find-up: 5.0.0 magic-string: 0.30.17 react: 19.0.0 react-docgen: 7.1.0 react-dom: 19.0.0(react@19.0.0) - resolve: 1.22.9 - storybook: 8.5.3(prettier@3.4.2) + resolve: 1.22.10 + storybook: 8.6.10(prettier@2.8.8) tsconfig-paths: 4.2.0 - vite: 6.1.0(@types/node@22.12.0)(terser@5.37.0)(yaml@2.6.1) + vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) transitivePeerDependencies: - rollup - supports-color @@ -10603,20 +10174,20 @@ snapshots: - encoding - supports-color - '@storybook/react@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)': + '@storybook/react@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)': dependencies: - '@storybook/components': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/components': 8.6.10(storybook@8.6.10(prettier@2.8.8)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/preview-api': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.5.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.5.3(prettier@3.4.2)) - '@storybook/theming': 8.5.3(storybook@8.5.3(prettier@3.4.2)) + '@storybook/manager-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/preview-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - storybook: 8.5.3(prettier@3.4.2) + storybook: 8.6.10(prettier@2.8.8) optionalDependencies: - '@storybook/test': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - typescript: 5.7.3 + '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + typescript: 5.8.2 '@storybook/router@7.6.17': dependencies: @@ -10718,8 +10289,8 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 19.0.12 + '@types/react-dom': 19.0.4(@types/react@19.0.12) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -10842,7 +10413,7 @@ snapshots: '@types/http-errors@2.0.4': {} - '@types/iframe-resizer@3.5.13': {} + '@types/iframe-resizer@4.0.0': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -10913,29 +10484,29 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.0.3(@types/react@18.3.17)': + '@types/react-dom@19.0.4(@types/react@18.3.18)': dependencies: - '@types/react': 18.3.17 + '@types/react': 18.3.18 optional: true - '@types/react-dom@19.0.3(@types/react@19.0.8)': + '@types/react-dom@19.0.4(@types/react@19.0.12)': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react-window@1.8.8': dependencies: - '@types/react': 19.0.8 + '@types/react': 19.0.12 '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 - '@types/react@19.0.8': + '@types/react@19.0.12': dependencies: csstype: 3.1.3 @@ -10993,184 +10564,113 @@ snapshots: '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 - eslint: 9.19.0 + '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.28.0 + eslint: 9.23.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@6.21.0(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - eslint: 9.19.0 - optionalDependencies: - typescript: 5.7.2 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.28.0 debug: 4.4.0 - eslint: 9.19.0 - optionalDependencies: - typescript: 5.7.2 + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.23.0 - debug: 4.4.0 - eslint: 9.19.0 - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': + '@typescript-eslint/scope-manager@8.28.0': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - debug: 4.4.0 - eslint: 9.19.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 - '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) debug: 4.4.0 - eslint: 9.19.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + eslint: 9.23.0 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@6.21.0': {} - - '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)': - dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.28.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/types': 8.23.0 + '@typescript-eslint/visitor-keys': 8.23.0 debug: 4.4.0 - globby: 11.1.0 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/visitor-keys': 8.23.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/visitor-keys': 8.28.0 debug: 4.4.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.18.0(eslint@9.19.0)(typescript@5.7.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) - eslint: 9.19.0 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/utils@8.23.0(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.23.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - eslint: 9.19.0 - typescript: 5.7.3 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@6.21.0': + '@typescript-eslint/utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@typescript-eslint/scope-manager': 8.28.0 + '@typescript-eslint/types': 8.28.0 + '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color '@typescript-eslint/visitor-keys@8.23.0': dependencies: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@3.1.0(vite@5.4.11(@types/node@22.12.0)(terser@5.37.0))': + '@typescript-eslint/visitor-keys@8.28.0': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) @@ -11186,7 +10686,7 @@ snapshots: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) - '@types/babel__core': 7.20.5 + magic-string: 0.27.0 react-refresh: 0.14.2 vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) transitivePeerDependencies: @@ -11373,6 +10873,10 @@ snapshots: dependencies: acorn: 7.4.1 + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + acorn-walk@7.2.0: {} acorn@7.4.1: {} @@ -11399,6 +10903,13 @@ snapshots: ajv: 8.17.1 fast-deep-equal: 3.1.3 + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -11412,6 +10923,10 @@ snapshots: dependencies: type-fest: 0.21.3 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -11642,15 +11157,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} - - builtins@5.1.0: - dependencies: - semver: 7.6.3 - - bundle-require@5.1.0(esbuild@0.24.2): + bundle-require@5.1.0(esbuild@0.25.1): dependencies: - esbuild: 0.24.2 + esbuild: 0.25.1 load-tsconfig: 0.2.5 byte-size@8.1.1: {} @@ -11732,6 +11241,10 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.4.1: {} + + char-regex@1.0.2: {} + character-entities@2.0.2: {} chardet@0.7.0: {} @@ -11768,6 +11281,15 @@ snapshots: dependencies: restore-cursor: 3.1.0 + cli-highlight@2.1.11: + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + cli-spinners@2.6.1: {} cli-spinners@2.9.2: {} @@ -11815,6 +11337,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@10.0.1: {} + commander@11.1.0: {} commander@2.20.3: {} @@ -12082,6 +11606,8 @@ snapshots: emoji-regex@9.2.2: {} + emojilib@2.4.0: {} + encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -12154,9 +11680,9 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.1): dependencies: - '@storybook/csf': 0.1.12 - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 + '@storybook/csf': 0.1.13 + '@typescript-eslint/utils': 8.23.0(eslint@9.23.0)(typescript@5.8.2) + eslint: 9.23.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -12167,7 +11693,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.2.0: + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -12176,18 +11702,19 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.19.0: + eslint@9.23.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.10.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.19.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.2.0 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.23.0 + '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 + '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -12195,7 +11722,7 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 + eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 @@ -12217,12 +11744,16 @@ snapshots: espree@10.3.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -12317,6 +11848,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-levenshtein@2.0.6: {} + fast-uri@3.0.6: {} fastq@1.19.1: @@ -12335,10 +11868,16 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fflate@0.8.2: {} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + file-system-cache@2.3.0: dependencies: fs-extra: 11.1.1 @@ -12396,6 +11935,11 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + flat@5.0.2: {} follow-redirects@1.15.9: {} @@ -12596,18 +12140,9 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} - globals@15.14.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 + globals@16.0.0: {} globby@11.1.0: dependencies: @@ -12624,6 +12159,8 @@ snapshots: graceful-fs@4.2.11: {} + graphemer@1.4.0: {} + graphql@16.10.0: {} handlebars@4.7.8: @@ -12659,6 +12196,8 @@ snapshots: headers-polyfill@4.0.3: {} + highlight.js@10.7.3: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -12994,7 +12533,7 @@ snapshots: jake@10.9.2: dependencies: async: 3.2.6 - chalk: 4.1.0 + chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 @@ -13104,14 +12643,20 @@ snapshots: jsesc@3.1.0: {} + json-buffer@3.0.1: {} + json-parse-better-errors@1.0.2: {} json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@3.0.2: {} + json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-nice@1.1.4: {} json-stringify-safe@5.0.1: {} @@ -13134,6 +12679,10 @@ snapshots: jwt-decode@4.0.0: {} + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + kind-of@6.0.3: {} kleur@4.1.5: {} @@ -13391,11 +12940,20 @@ snapshots: dependencies: react: 18.3.1 - markdown-to-jsx@7.7.2(react@19.0.0): + marked-terminal@7.3.0(marked@9.1.6): dependencies: - react: 19.0.0 + ansi-escapes: 7.0.0 + ansi-regex: 6.1.0 + chalk: 5.4.1 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 9.1.6 + node-emoji: 2.2.0 + supports-hyperlinks: 3.2.0 + + marked@9.1.6: {} - math-intrinsics@1.0.0: {} + math-intrinsics@1.1.0: {} mdast-util-definitions@4.0.0: dependencies: @@ -13436,7 +12994,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.1 @@ -13646,7 +13204,7 @@ snapshots: micromark-core-commonmark@2.0.2: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -13900,7 +13458,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -13989,7 +13547,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.0 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 micromark-factory-space: 2.0.1 @@ -14383,6 +13941,15 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + ora@5.3.0: dependencies: bl: 4.1.0 @@ -14524,6 +14091,14 @@ snapshots: dependencies: parse-path: 7.0.1 + parse5-htmlparser2-tree-adapter@6.0.1: + dependencies: + parse5: 6.0.1 + + parse5@5.1.1: {} + + parse5@6.0.1: {} + parse5@7.2.1: dependencies: entities: 4.5.0 @@ -14609,12 +14184,12 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1(postcss@8.5.1)(yaml@2.6.1): + postcss-load-config@6.0.1(postcss@8.5.3)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.1 - yaml: 2.6.1 + postcss: 8.5.3 + yaml: 2.7.0 postcss-selector-parser@6.1.2: dependencies: @@ -14742,10 +14317,6 @@ snapshots: dependencies: typescript: 5.8.3 - react-docgen-typescript@2.2.2(typescript@5.7.3): - dependencies: - typescript: 5.7.3 - react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 @@ -14802,15 +14373,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll-bar@2.3.8(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - - react-remove-scroll@2.5.5(@types/react@18.3.17)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) @@ -14821,18 +14384,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll@2.5.5(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@19.0.0) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.0.8)(react@19.0.0) - use-sidecar: 1.1.3(@types/react@19.0.8)(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - - react-style-singleton@2.2.3(@types/react@18.3.17)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 @@ -14840,14 +14392,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-style-singleton@2.2.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - get-nonce: 1.0.1 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - react-test-renderer@19.0.0(react@19.0.0): dependencies: react: 19.0.0 @@ -14983,7 +14527,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-gfm@4.0.0: + remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 mdast-util-gfm: 3.0.0 @@ -15146,12 +14690,6 @@ snapshots: scheduler@0.25.0: {} - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -15423,6 +14961,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} symbol-tree@3.2.4: {} @@ -15575,7 +15118,7 @@ snapshots: dependencies: punycode: 2.3.1 - tr46@5.0.0: + tr46@5.1.0: dependencies: punycode: 2.3.1 @@ -15587,13 +15130,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.4.3(typescript@5.7.2): + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - typescript: 5.7.2 - - ts-api-utils@2.0.1(typescript@5.7.3): - dependencies: - typescript: 5.7.3 + typescript: 5.8.2 ts-dedent@2.2.0: {} @@ -15623,27 +15162,27 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.6(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1): + tsup@8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0): dependencies: - bundle-require: 5.1.0(esbuild@0.24.2) + bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 chokidar: 4.0.3 - consola: 3.2.3 + consola: 3.4.0 debug: 4.4.0 - esbuild: 0.24.2 + esbuild: 0.25.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.1)(yaml@2.6.1) + postcss-load-config: 6.0.1(postcss@8.5.3)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.32.0 + rollup: 4.35.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.10 + tinyglobby: 0.2.12 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.1 - typescript: 5.7.3 + postcss: 8.5.3 + typescript: 5.8.2 transitivePeerDependencies: - jiti - supports-color @@ -15679,13 +15218,13 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.23.0(eslint@9.19.0)(typescript@5.7.3): + typescript-eslint@8.28.0(eslint@9.23.0)(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0)(typescript@5.7.3) - eslint: 9.19.0 - typescript: 5.7.3 + '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 transitivePeerDependencies: - supports-color @@ -15706,6 +15245,8 @@ snapshots: unicode-canonical-property-names-ecmascript@2.0.1: {} + unicode-emoji-modifier-base@1.0.0: {} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 @@ -15815,6 +15356,10 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -15827,26 +15372,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-callback-ref@1.3.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@juggle/resize-observer': 3.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-resize-observer@9.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@juggle/resize-observer': 3.4.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - use-sidecar@1.1.3(@types/react@18.3.17)(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 @@ -15854,14 +15386,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-sidecar@1.1.3(@types/react@19.0.8)(react@19.0.0): - dependencies: - detect-node-es: 1.1.0 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - util-deprecate@1.0.2: {} util@0.12.5: @@ -16148,6 +15672,8 @@ snapshots: dependencies: string-width: 4.2.3 + word-wrap@1.2.5: {} + wordwrap@1.0.0: {} wrap-ansi@6.2.0: From bedfaee9080f02c1d002facb10688ef64e7e228b Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 27 Mar 2025 11:14:55 +0100 Subject: [PATCH 016/165] Fix vite types env --- packages/core/extender.ts | 5 +++-- packages/core/vite-env.d.ts | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 packages/core/vite-env.d.ts diff --git a/packages/core/extender.ts b/packages/core/extender.ts index 3a6f35be..60eac721 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -4,10 +4,11 @@ import { getAccessToken } from "./src/auth/getAccessToken.js" const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE const domain = import.meta.env.VITE_DOMAIN -let accessToken: ReturnType = undefined +let accessToken: Awaited> | undefined = + undefined export const coreTest = test.extend({ - accessToken: async ({ _ }, use) => { + accessToken: async (_props, use) => { if (accessToken == null) { accessToken = await getAccessToken({ grantType: "client_credentials", diff --git a/packages/core/vite-env.d.ts b/packages/core/vite-env.d.ts new file mode 100644 index 00000000..2745e011 --- /dev/null +++ b/packages/core/vite-env.d.ts @@ -0,0 +1,11 @@ +/// + +interface ImportMetaEnv { + readonly VITE_SALES_CHANNEL_CLIENT_ID: string + readonly VITE_SALES_CHANNEL_SCOPE: string + readonly VITE_DOMAIN: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} From 8669e20909445ff106774f89ff7a44695b201ae5 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 1 Apr 2025 15:24:48 +0200 Subject: [PATCH 017/165] Fix relative path for vitest --- packages/core/extender.ts | 12 ++++- packages/core/src/auth/getAccessToken.spec.ts | 33 +++++++----- packages/core/src/prices/getPrices.spec.ts | 47 +++++++++-------- packages/core/src/prices/getPrices.ts | 4 +- packages/core/src/sdk/index.ts | 2 +- packages/core/src/types/index.ts | 4 +- packages/core/tsconfig.json | 3 +- packages/core/vitest.config.ts | 2 + packages/document/package.json | 52 +++++++++---------- pnpm-lock.yaml | 4 +- 10 files changed, 93 insertions(+), 70 deletions(-) diff --git a/packages/core/extender.ts b/packages/core/extender.ts index 60eac721..d58d0fd8 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -7,8 +7,18 @@ const domain = import.meta.env.VITE_DOMAIN let accessToken: Awaited> | undefined = undefined +export interface CoreTestInterface { + accessToken: Awaited> + config: { + clientId: string + scope: string + domain: string + } +} + export const coreTest = test.extend({ - accessToken: async (_props, use) => { + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { if (accessToken == null) { accessToken = await getAccessToken({ grantType: "client_credentials", diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index a57d0a39..9e9f1f36 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,6 +1,6 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { coreTest } from "../../extender" +import { type CoreTestInterface, coreTest } from "#extender" import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ @@ -8,12 +8,13 @@ vi.mock("@commercelayer/js-auth", () => ({ })) describe("getAccessToken", () => { - coreTest( + coreTest( "should call authenticate with the correct parameters", async ({ accessToken, config }) => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } + // @ts-expect-error mockResolvedValue is not defined authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -23,16 +24,20 @@ describe("getAccessToken", () => { }, ) - coreTest("should throw an error if authenticate fails", async () => { - const grantType = "client_credentials" - const config = { - clientId: "test-client-id", - clientSecret: "test-client-secret", - } - const mockError = new Error("Authentication failed") - authenticate.mockRejectedValue(mockError) - await expect(getAccessToken({ grantType, config })).rejects.toThrow( - "Authentication failed", - ) - }) + coreTest( + "should throw an error if authenticate fails", + async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + // @ts-expect-error mockResolvedValue is not defined + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }, + ) }) diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts index bcef04c2..3570319c 100644 --- a/packages/core/src/prices/getPrices.spec.ts +++ b/packages/core/src/prices/getPrices.spec.ts @@ -1,30 +1,35 @@ import type { QueryFilter } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { coreTest } from "../../extender.js" +import { type CoreTestInterface, coreTest } from "#extender" import { getPrices } from "./getPrices.js" describe("getPrices", () => { - coreTest("should return a list of prices", async ({ accessToken }) => { - const token = accessToken?.accessToken - const result = await getPrices({ accessToken: token }) - expect(result).toBeDefined() - }) + coreTest( + "should return a list of prices", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }, + ) - coreTest("should return a single price", async ({ accessToken }) => { - const token = accessToken?.accessToken - const params: QueryFilter = { - filters: { - sku_code_eq: "DIGITALPRODUCT", - }, - } - - // Call the getPrices function - const result = await getPrices({ accessToken: token, ...params }) - // Assert the expected result - expect(result).toBeDefined() - expect(result.getRecordCount()).toBe(1) - // Add more assertions based on the expected behavior of the getPrices function - }) + coreTest( + "should return a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const params: QueryFilter = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } + // Call the getPrices function + const result = await getPrices({ accessToken: token, ...params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }, + ) // Add more test cases for different scenarios }) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index 7586f706..bc13fcd9 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,6 +1,6 @@ import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" -import { getSdk } from "../sdk/index.js" -import type { RequestConfig } from "../types/index.js" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" type GetPricesParams = RequestConfig & QueryParamsList diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index d9caedfc..786e0637 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,6 +1,6 @@ import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" import { jwtDecode } from "jwt-decode" -import type { Jwt, RequestConfig } from "src/types/index.js" +import type { Jwt, RequestConfig } from "#types" export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { const organization = jwtDecode(accessToken).organization.slug diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts index 93bd730f..d23de71e 100644 --- a/packages/core/src/types/index.ts +++ b/packages/core/src/types/index.ts @@ -1,2 +1,2 @@ -export type { RequestConfig } from './base.js' -export type { Jwt } from './jwt.js' +export type { RequestConfig } from "./base" +export type { Jwt } from "./jwt" diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 9c1f4f07..098e3c6d 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -23,7 +23,8 @@ "baseUrl": ".", "paths": { "#sdk": ["src/sdk/index.ts"], - "#types": ["src/types/index.ts"] + "#types": ["src/types/index.ts"], + "#extender": ["extender.ts"] } }, "exclude": ["node_modules", "dist", "coverage", "*.spec.ts"] diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts index a455d010..3c65cd6d 100644 --- a/packages/core/vitest.config.ts +++ b/packages/core/vitest.config.ts @@ -1,3 +1,4 @@ +import tsconfigPaths from "vite-tsconfig-paths" import { defineConfig } from "vitest/config" export default defineConfig({ @@ -9,4 +10,5 @@ export default defineConfig({ reporter: ["text", "json", "html"], }, }, + plugins: [tsconfigPaths()], }) diff --git a/packages/document/package.json b/packages/document/package.json index f179175e..a15856ef 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -16,33 +16,33 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@chromatic-com/storybook": "^3.2.4", - "@eslint/js": "^9.19.0", - "@storybook/addon-docs": "^7.6.17", - "@storybook/addon-essentials": "^8.5.3", - "@storybook/addon-interactions": "^8.5.3", - "@storybook/addon-links": "^7.6.17", - "@storybook/addon-mdx-gfm": "^8.5.3", - "@storybook/addon-onboarding": "^8.5.3", - "@storybook/blocks": "^8.5.3", - "@storybook/react": "^8.5.3", - "@storybook/react-vite": "^8.5.3", - "@storybook/test": "^8.5.3", - "@storybook/theming": "^8.5.3", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", + "@chromatic-com/storybook": "^3.2.6", + "@eslint/js": "^9.23.0", + "@storybook/addon-docs": "^8.6.10", + "@storybook/addon-essentials": "^8.6.10", + "@storybook/addon-interactions": "^8.6.10", + "@storybook/addon-links": "^8.6.10", + "@storybook/addon-mdx-gfm": "^8.6.10", + "@storybook/addon-onboarding": "^8.6.10", + "@storybook/blocks": "^8.6.10", + "@storybook/react": "^8.6.10", + "@storybook/react-vite": "^8.6.10", + "@storybook/test": "^8.6.10", + "@storybook/theming": "^8.6.10", + "@types/react": "^19.0.12", + "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.19.0", - "eslint-plugin-react-hooks": "^5.0.0", - "eslint-plugin-react-refresh": "^0.4.18", - "eslint-plugin-storybook": "^0.11.2", - "globals": "^15.14.0", - "msw": "^2.7.0", - "remark-gfm": "^4.0.0", - "storybook": "^8.5.3", - "typescript": "~5.7.2", - "typescript-eslint": "^8.22.0", - "vite": "^6.1.0", + "eslint": "^9.23.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "eslint-plugin-storybook": "^0.12.0", + "globals": "^16.0.0", + "msw": "^2.7.3", + "remark-gfm": "^4.0.1", + "storybook": "^8.6.10", + "typescript": "~5.8.2", + "typescript-eslint": "^8.28.0", + "vite": "^6.2.3", "vite-tsconfig-paths": "^5.1.4" }, "eslintConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6d904c8..2e4d55a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3019,7 +3019,7 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' '@vitejs/plugin-react@5.0.2': resolution: {integrity: sha512-tmyFgixPZCx2+e6VO9TNITWcCQl8+Nl/E8YbAyPVv85QCc7/A3JrdfG2A8gIzvVhWuzMOVrFW1aReaNxrI6tbw==} @@ -7134,7 +7134,7 @@ packages: vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' peerDependenciesMeta: vite: optional: true From 48bc56beb0324aaa5c45fbf0137888b64254292f Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 1 Apr 2025 16:33:28 +0200 Subject: [PATCH 018/165] Remove ts comment --- packages/core/src/auth/getAccessToken.spec.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index 9e9f1f36..efaee5bd 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -14,7 +14,6 @@ describe("getAccessToken", () => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } - // @ts-expect-error mockResolvedValue is not defined authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -33,7 +32,6 @@ describe("getAccessToken", () => { clientSecret: "test-client-secret", } const mockError = new Error("Authentication failed") - // @ts-expect-error mockResolvedValue is not defined authenticate.mockRejectedValue(mockError) await expect(getAccessToken({ grantType, config })).rejects.toThrow( "Authentication failed", From 6a7aacf1f7a867c8dd5f7bb7df1acdd19f2fb308 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 2 Apr 2025 11:34:49 +0200 Subject: [PATCH 019/165] Add retrievePrice function. Resolve #621 --- .../core/src/prices/retrievePrice.spec.ts | 27 +++++++++++++++++++ packages/core/src/prices/retrievePrice.ts | 23 ++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 packages/core/src/prices/retrievePrice.spec.ts create mode 100644 packages/core/src/prices/retrievePrice.ts diff --git a/packages/core/src/prices/retrievePrice.spec.ts b/packages/core/src/prices/retrievePrice.spec.ts new file mode 100644 index 00000000..cb909ce1 --- /dev/null +++ b/packages/core/src/prices/retrievePrice.spec.ts @@ -0,0 +1,27 @@ +import type { QueryFilter } from "@commercelayer/sdk" +import { describe, expect } from "vitest" +import { type CoreTestInterface, coreTest } from "#extender" +import { getPrices } from "./getPrices.js" +import { retrievePrice } from "./retrievePrice.js" + +describe("retrievePrice", () => { + coreTest( + "should return a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await retrievePrice({ + id: id, + accessToken: token, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.sku_code).toBe(firstPrice.sku_code) + }, + ) +}) diff --git a/packages/core/src/prices/retrievePrice.ts b/packages/core/src/prices/retrievePrice.ts new file mode 100644 index 00000000..b7ce0786 --- /dev/null +++ b/packages/core/src/prices/retrievePrice.ts @@ -0,0 +1,23 @@ +import type { + ListResponse, + Price, + QueryParamsList, + QueryParamsRetrieve, +} from "@commercelayer/sdk" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" + +interface RetrievePrice extends RequestConfig { + id: string +} + +type RetrievePriceParams = RetrievePrice & QueryParamsRetrieve + +export async function retrievePrice({ + accessToken, + id, + ...params +}: RetrievePriceParams): Promise { + const sdk = getSdk({ accessToken }) + return await sdk.prices.retrieve(id, params) +} From 10c1bd4e2919a9845fae9f4d47d38e9d356626f9 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 22 Apr 2025 17:37:37 +0200 Subject: [PATCH 020/165] Add updatePrice function, and tests, remove package jwt-decode --- packages/core/extender.ts | 34 +- packages/core/package.json | 11 +- packages/core/src/auth/getAccessToken.spec.ts | 33 +- packages/core/src/auth/getAccessToken.ts | 5 +- packages/core/src/prices/getPrices.spec.ts | 48 +- packages/core/src/prices/getPrices.ts | 27 +- .../core/src/prices/retrievePrice.spec.ts | 37 +- packages/core/src/prices/retrievePrice.ts | 22 +- packages/core/src/prices/updatePrice.spec.ts | 39 + packages/core/src/prices/updatePrice.ts | 33 + packages/core/src/sdk/index.ts | 24 +- packages/core/src/types/base.ts | 5 + packages/core/src/types/index.ts | 1 - packages/core/src/types/jwt.ts | 38 - packages/core/tsconfig.json | 1 + packages/core/vite-env.d.ts | 2 + packages/document/package.json | 46 +- pnpm-lock.yaml | 822 ++++++++++-------- 18 files changed, 692 insertions(+), 536 deletions(-) create mode 100644 packages/core/src/prices/updatePrice.spec.ts create mode 100644 packages/core/src/prices/updatePrice.ts delete mode 100644 packages/core/src/types/jwt.ts diff --git a/packages/core/extender.ts b/packages/core/extender.ts index d58d0fd8..30006771 100644 --- a/packages/core/extender.ts +++ b/packages/core/extender.ts @@ -2,6 +2,8 @@ import { test } from "vitest" import { getAccessToken } from "./src/auth/getAccessToken.js" const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID +const integrationClientId = import.meta.env.VITE_INTEGRATION_CLIENT_ID +const integrationClientSecret = import.meta.env.VITE_INTEGRATION_CLIENT_SECRET const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE const domain = import.meta.env.VITE_DOMAIN let accessToken: Awaited> | undefined = @@ -11,12 +13,15 @@ export interface CoreTestInterface { accessToken: Awaited> config: { clientId: string - scope: string + scope?: string domain: string } } -export const coreTest = test.extend({ +/** + * This test is used to run integration tests with the sales channel client. + */ +export const coreTest = test.extend({ // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument accessToken: async ({}, use) => { if (accessToken == null) { @@ -38,3 +43,28 @@ export const coreTest = test.extend({ domain, }, }) + +/** + * This test is used to run integration tests with the integration client. + */ +export const coreIntegrationTest = test.extend({ + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId: integrationClientId, + clientSecret: integrationClientSecret, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId: integrationClientId, + domain, + }, +}) diff --git a/packages/core/package.json b/packages/core/package.json index 09d3e787..cb983630 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -32,15 +32,14 @@ "license": "MIT", "devDependencies": { "@arethetypeswrong/cli": "^0.17.4", - "@vitest/coverage-v8": "^3.0.9", + "@vitest/coverage-v8": "^3.1.1", "tsup": "^8.4.0", - "typescript": "^5.8.2", + "typescript": "^5.8.3", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.9" + "vitest": "^3.1.1" }, "dependencies": { - "@commercelayer/js-auth": "^6.7.1", - "@commercelayer/sdk": "6.36.0", - "jwt-decode": "^4.0.0" + "@commercelayer/js-auth": "^6.7.2", + "@commercelayer/sdk": "6.39.0" } } diff --git a/packages/core/src/auth/getAccessToken.spec.ts b/packages/core/src/auth/getAccessToken.spec.ts index efaee5bd..415c3abb 100644 --- a/packages/core/src/auth/getAccessToken.spec.ts +++ b/packages/core/src/auth/getAccessToken.spec.ts @@ -1,6 +1,6 @@ import { authenticate } from "@commercelayer/js-auth" import { describe, expect, vi } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getAccessToken } from "./getAccessToken" vi.mock("@commercelayer/js-auth", () => ({ @@ -8,12 +8,13 @@ vi.mock("@commercelayer/js-auth", () => ({ })) describe("getAccessToken", () => { - coreTest( + coreTest( "should call authenticate with the correct parameters", async ({ accessToken, config }) => { const token = accessToken?.accessToken const grantType = "client_credentials" const mockToken = { accessToken: token } + // @ts-expect-error No types for this function authenticate.mockResolvedValue(mockToken) const result = await getAccessToken({ grantType, config }) await expect(authenticate).toHaveBeenCalledWith(grantType, config) @@ -23,19 +24,17 @@ describe("getAccessToken", () => { }, ) - coreTest( - "should throw an error if authenticate fails", - async () => { - const grantType = "client_credentials" - const config = { - clientId: "test-client-id", - clientSecret: "test-client-secret", - } - const mockError = new Error("Authentication failed") - authenticate.mockRejectedValue(mockError) - await expect(getAccessToken({ grantType, config })).rejects.toThrow( - "Authentication failed", - ) - }, - ) + coreTest("should throw an error if authenticate fails", async () => { + const grantType = "client_credentials" + const config = { + clientId: "test-client-id", + clientSecret: "test-client-secret", + } + const mockError = new Error("Authentication failed") + // @ts-expect-error No types for this function + authenticate.mockRejectedValue(mockError) + await expect(getAccessToken({ grantType, config })).rejects.toThrow( + "Authentication failed", + ) + }) }) diff --git a/packages/core/src/auth/getAccessToken.ts b/packages/core/src/auth/getAccessToken.ts index 56d91815..97f41bfa 100644 --- a/packages/core/src/auth/getAccessToken.ts +++ b/packages/core/src/auth/getAccessToken.ts @@ -8,9 +8,8 @@ interface AuthenticateProps { /** * Retrieves an access token using the provided grant type and configuration. * - * @param {AuthenticateProps} params - The parameters for authentication. - * @param {string} params.grantType - The type of grant to use for authentication. - * @param {object} params.config - The configuration object for authentication. + * @param {AuthenticateProps['grantType']} grantType - The type of grant to use for authentication. + * @param {AuthenticateProps['config']} config - The configuration object for authentication. * @returns {Promise>} A promise that resolves to the access token. */ export async function getAccessToken({ diff --git a/packages/core/src/prices/getPrices.spec.ts b/packages/core/src/prices/getPrices.spec.ts index 3570319c..ac6369f8 100644 --- a/packages/core/src/prices/getPrices.spec.ts +++ b/packages/core/src/prices/getPrices.spec.ts @@ -1,35 +1,29 @@ -import type { QueryFilter } from "@commercelayer/sdk" +import type { Price, QueryParamsList } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getPrices } from "./getPrices.js" describe("getPrices", () => { - coreTest( - "should return a list of prices", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const result = await getPrices({ accessToken: token }) - expect(result).toBeDefined() - }, - ) + coreTest("should return a list of prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const result = await getPrices({ accessToken: token }) + expect(result).toBeDefined() + }) - coreTest( - "should return a single price", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const params: QueryFilter = { - filters: { - sku_code_eq: "DIGITALPRODUCT", - }, - } - // Call the getPrices function - const result = await getPrices({ accessToken: token, ...params }) - // Assert the expected result - expect(result).toBeDefined() - expect(result.getRecordCount()).toBe(1) - // Add more assertions based on the expected behavior of the getPrices function - }, - ) + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const params = { + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + } satisfies QueryParamsList + // Call the getPrices function + const result = await getPrices({ accessToken: token, params }) + // Assert the expected result + expect(result).toBeDefined() + expect(result.getRecordCount()).toBe(1) + // Add more assertions based on the expected behavior of the getPrices function + }) // Add more test cases for different scenarios }) diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index bc13fcd9..53d9e737 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,13 +1,32 @@ -import type { ListResponse, Price, QueryParamsList } from "@commercelayer/sdk" +import type { + ListResponse, + Price, + QueryParamsList, + ResourcesConfig, +} from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" -type GetPricesParams = RequestConfig & QueryParamsList +interface GetPrices extends RequestConfig { + params?: QueryParamsList + options?: ResourcesConfig +} + +type GetPricesParams = GetPrices +/** + * Get a list of prices + * + * @param {string} accessToken - The access token to use for authentication. + * @param {QueryParamsList} params - Optional query parameters for the request. + * @param {ResourcesConfig} options - Optional request configuration. + * @returns {Promise>} - A promise that resolves to a list of price resources. + */ export async function getPrices({ accessToken, - ...params + params, + options, }: GetPricesParams): Promise> { const sdk = getSdk({ accessToken }) - return await sdk.prices.list(params) + return await sdk.prices.list(params, options) } diff --git a/packages/core/src/prices/retrievePrice.spec.ts b/packages/core/src/prices/retrievePrice.spec.ts index cb909ce1..3d23ac7b 100644 --- a/packages/core/src/prices/retrievePrice.spec.ts +++ b/packages/core/src/prices/retrievePrice.spec.ts @@ -1,27 +1,24 @@ import type { QueryFilter } from "@commercelayer/sdk" import { describe, expect } from "vitest" -import { type CoreTestInterface, coreTest } from "#extender" +import { coreTest } from "#extender" import { getPrices } from "./getPrices.js" import { retrievePrice } from "./retrievePrice.js" describe("retrievePrice", () => { - coreTest( - "should return a single price", - async ({ accessToken }) => { - const token = accessToken?.accessToken - const firstPrice = (await getPrices({ accessToken: token })).first() - expect(firstPrice).toBeDefined() - if (!firstPrice) { - throw new Error("No price found") - } - const id = firstPrice?.id - const result = await retrievePrice({ - id: id, - accessToken: token, - }) - expect(result).toBeDefined() - expect(result.id).toBe(id) - expect(result.sku_code).toBe(firstPrice.sku_code) - }, - ) + coreTest("should return a single price", async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await retrievePrice({ + id: id, + accessToken: token, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.sku_code).toBe(firstPrice.sku_code) + }) }) diff --git a/packages/core/src/prices/retrievePrice.ts b/packages/core/src/prices/retrievePrice.ts index b7ce0786..0167d569 100644 --- a/packages/core/src/prices/retrievePrice.ts +++ b/packages/core/src/prices/retrievePrice.ts @@ -1,23 +1,29 @@ -import type { - ListResponse, - Price, - QueryParamsList, - QueryParamsRetrieve, -} from "@commercelayer/sdk" +import type { Price, QueryParamsRetrieve } from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" interface RetrievePrice extends RequestConfig { id: string + params?: QueryParamsRetrieve } type RetrievePriceParams = RetrievePrice & QueryParamsRetrieve +/** + * Retrieve a price + * + * @param {string} accessToken - The access token to use for authentication. + * @param {string} id - The ID of the price resource to retrieve. + * @param {QueryParamsRetrieve} params - Optional query parameters for the request. + * @param {RequestConfig} options - Optional request configuration. + * @returns {Promise} - The retrieved price resource. + */ export async function retrievePrice({ accessToken, id, - ...params + params, + options, }: RetrievePriceParams): Promise { const sdk = getSdk({ accessToken }) - return await sdk.prices.retrieve(id, params) + return await sdk.prices.retrieve(id, params, options) } diff --git a/packages/core/src/prices/updatePrice.spec.ts b/packages/core/src/prices/updatePrice.spec.ts new file mode 100644 index 00000000..716c18b5 --- /dev/null +++ b/packages/core/src/prices/updatePrice.spec.ts @@ -0,0 +1,39 @@ +import { describe, expect } from "vitest" +import { coreIntegrationTest } from "#extender" +import { getPrices } from "./getPrices" +import { updatePrice } from "./updatePrice" + +describe("updatePrice", () => { + coreIntegrationTest( + "should update a single price", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const firstPrice = (await getPrices({ accessToken: token })).first() + expect(firstPrice).toBeDefined() + if (!firstPrice) { + throw new Error("No price found") + } + const id = firstPrice?.id + const result = await updatePrice({ + accessToken: token, + resource: { + id, + reference: "test-price", + }, + }) + expect(result).toBeDefined() + expect(result.id).toBe(id) + expect(result.reference).toBe("test-price") + const clean = await updatePrice({ + accessToken: token, + resource: { + id, + reference: "", + }, + }) + expect(clean).toBeDefined() + expect(clean.id).toBe(id) + expect(clean.reference).toBe("") + }, + ) +}) diff --git a/packages/core/src/prices/updatePrice.ts b/packages/core/src/prices/updatePrice.ts new file mode 100644 index 00000000..617c4e03 --- /dev/null +++ b/packages/core/src/prices/updatePrice.ts @@ -0,0 +1,33 @@ +import type { + Price, + PriceUpdate, + QueryParamsRetrieve, +} from "@commercelayer/sdk" +import { getSdk } from "#sdk" +import type { RequestConfig } from "#types" + +interface UpdatePrice extends RequestConfig { + resource: PriceUpdate + params?: QueryParamsRetrieve +} + +type UpdatePriceParams = UpdatePrice + +/** + * Update a price + * + * @param {string} accessToken - The access token to use for authentication, must be an integration application. + * @param {PriceUpdate} resource - The price resource to update. + * @param {QueryParamsRetrieve} params - Optional query parameters for the request. + * @param {RequestConfig} options - Optional request configuration. + * @returns {Promise} - The updated price resource. + */ +export async function updatePrice({ + accessToken, + resource, + params, + options, +}: UpdatePriceParams): Promise { + const sdk = getSdk({ accessToken }) + return await sdk.prices.update(resource, params, options) +} diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index 786e0637..2fe821ed 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -1,8 +1,24 @@ +import { + type JWTIntegration, + type JWTSalesChannel, + type JWTWebApp, + jwtDecode, +} from "@commercelayer/js-auth" import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" -import { jwtDecode } from "jwt-decode" -import type { Jwt, RequestConfig } from "#types" +import type { RequestConfig } from "#types" +/** + * Get the Commerce Layer SDK instance + * + * @param {string} accessToken - The access token to use for authentication. + * @returns {CommerceLayerClient} - The Commerce Layer SDK instance. + */ export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { - const organization = jwtDecode(accessToken).organization.slug - return sdk({ accessToken, organization }) + const { payload } = jwtDecode(accessToken) + const { organization } = payload as + | JWTIntegration + | JWTWebApp + | JWTSalesChannel + const slug = organization.slug + return sdk({ accessToken, organization: slug }) } diff --git a/packages/core/src/types/base.ts b/packages/core/src/types/base.ts index bb1cd2e6..d97b408d 100644 --- a/packages/core/src/types/base.ts +++ b/packages/core/src/types/base.ts @@ -1,3 +1,8 @@ +import type { ResourcesConfig } from "@commercelayer/sdk" + export interface RequestConfig { accessToken: string + id?: string + params?: unknown + options?: ResourcesConfig } diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts index d23de71e..637e47a5 100644 --- a/packages/core/src/types/index.ts +++ b/packages/core/src/types/index.ts @@ -1,2 +1 @@ export type { RequestConfig } from "./base" -export type { Jwt } from "./jwt" diff --git a/packages/core/src/types/jwt.ts b/packages/core/src/types/jwt.ts deleted file mode 100644 index b39a8dc3..00000000 --- a/packages/core/src/types/jwt.ts +++ /dev/null @@ -1,38 +0,0 @@ -export interface Jwt { - organization: Organization - application: Application - market: Market - owner: Owner - scope: string - exp: number - test: boolean - rand: number - iat: number - iss: string -} - -interface Application { - id: string - kind: string - public: boolean -} - -interface Market { - id: string[] - price_list_id: string - stock_location_ids: string[] - geocoder_id: null - allows_external_prices: boolean -} - -interface Organization { - id: string - slug: string - enterprise: boolean - region: string -} - -interface Owner { - id: string - type: string -} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 098e3c6d..366986a2 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -10,6 +10,7 @@ "isolatedModules": true, "verbatimModuleSyntax": true, "lib": ["es2022"], + "noEmit": true, /* Strictness */ "strict": true, diff --git a/packages/core/vite-env.d.ts b/packages/core/vite-env.d.ts index 2745e011..c16c20fd 100644 --- a/packages/core/vite-env.d.ts +++ b/packages/core/vite-env.d.ts @@ -3,6 +3,8 @@ interface ImportMetaEnv { readonly VITE_SALES_CHANNEL_CLIENT_ID: string readonly VITE_SALES_CHANNEL_SCOPE: string + readonly VITE_INTEGRATION_CLIENT_ID: string + readonly VITE_INTEGRATION_CLIENT_SECRET: string readonly VITE_DOMAIN: string } diff --git a/packages/document/package.json b/packages/document/package.json index a15856ef..8b6d5d5c 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -12,37 +12,37 @@ "build-storybook": "storybook build" }, "dependencies": { - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "^19.1.0", + "react-dom": "^19.1.0" }, "devDependencies": { "@chromatic-com/storybook": "^3.2.6", - "@eslint/js": "^9.23.0", - "@storybook/addon-docs": "^8.6.10", - "@storybook/addon-essentials": "^8.6.10", - "@storybook/addon-interactions": "^8.6.10", - "@storybook/addon-links": "^8.6.10", - "@storybook/addon-mdx-gfm": "^8.6.10", - "@storybook/addon-onboarding": "^8.6.10", - "@storybook/blocks": "^8.6.10", - "@storybook/react": "^8.6.10", - "@storybook/react-vite": "^8.6.10", - "@storybook/test": "^8.6.10", - "@storybook/theming": "^8.6.10", - "@types/react": "^19.0.12", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react": "^4.3.4", - "eslint": "^9.23.0", + "@eslint/js": "^9.24.0", + "@storybook/addon-docs": "^8.6.12", + "@storybook/addon-essentials": "^8.6.12", + "@storybook/addon-interactions": "^8.6.12", + "@storybook/addon-links": "^8.6.12", + "@storybook/addon-mdx-gfm": "^8.6.12", + "@storybook/addon-onboarding": "^8.6.12", + "@storybook/blocks": "^8.6.12", + "@storybook/react": "^8.6.12", + "@storybook/react-vite": "^8.6.12", + "@storybook/test": "^8.6.12", + "@storybook/theming": "^8.6.12", + "@types/react": "^19.1.2", + "@types/react-dom": "^19.1.2", + "@vitejs/plugin-react": "^4.4.0", + "eslint": "^9.24.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "eslint-plugin-storybook": "^0.12.0", "globals": "^16.0.0", - "msw": "^2.7.3", + "msw": "^2.7.4", "remark-gfm": "^4.0.1", - "storybook": "^8.6.10", - "typescript": "~5.8.2", - "typescript-eslint": "^8.28.0", - "vite": "^6.2.3", + "storybook": "^8.6.12", + "typescript": "~5.8.3", + "typescript-eslint": "^8.30.1", + "vite": "^6.3.1", "vite-tsconfig-paths": "^5.1.4" }, "eslintConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e4d55a0..9d1f3cfc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,33 +54,30 @@ importers: packages/core: dependencies: '@commercelayer/js-auth': - specifier: ^6.7.1 - version: 6.7.1 + specifier: ^6.7.2 + version: 6.7.2 '@commercelayer/sdk': - specifier: 6.36.0 - version: 6.36.0 - jwt-decode: - specifier: ^4.0.0 - version: 4.0.0 + specifier: 6.39.0 + version: 6.39.0 devDependencies: '@arethetypeswrong/cli': specifier: ^0.17.4 version: 0.17.4 '@vitest/coverage-v8': - specifier: ^3.0.9 - version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.1.1 + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) tsup: specifier: ^8.4.0 - version: 8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0) + version: 8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0) typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.9 - version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.1.1 + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages/docs: devDependencies: @@ -107,10 +104,10 @@ importers: version: 7.6.20 '@storybook/addon-docs': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-essentials': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': specifier: ^7.6.17 version: 7.6.20 @@ -134,7 +131,7 @@ importers: version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/blocks': specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 @@ -208,96 +205,96 @@ importers: packages/document: dependencies: react: - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^19.1.0 + version: 19.1.0 react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^19.1.0 + version: 19.1.0(react@19.1.0) devDependencies: '@chromatic-com/storybook': specifier: ^3.2.6 - version: 3.2.6(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + version: 3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@eslint/js': - specifier: ^9.23.0 - version: 9.23.0 + specifier: ^9.24.0 + version: 9.24.0 '@storybook/addon-docs': - specifier: ^8.6.10 - version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-essentials': - specifier: ^8.6.10 - version: 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-interactions': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-links': - specifier: ^8.6.10 - version: 8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-mdx-gfm': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/addon-onboarding': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/blocks': - specifier: ^8.6.10 - version: 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) '@storybook/react': - specifier: ^8.6.10 - version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) + specifier: ^8.6.12 + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) '@storybook/react-vite': - specifier: ^8.6.10 - version: 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^8.6.12 + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@storybook/test': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/theming': - specifier: ^8.6.10 - version: 8.6.10(storybook@8.6.10(prettier@2.8.8)) + specifier: ^8.6.12 + version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@types/react': - specifier: ^19.0.12 - version: 19.0.12 + specifier: ^19.1.2 + version: 19.1.2 '@types/react-dom': - specifier: ^19.0.4 - version: 19.0.4(@types/react@19.0.12) + specifier: ^19.1.2 + version: 19.1.2(@types/react@19.1.2) '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^4.4.0 + version: 4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) eslint: - specifier: ^9.23.0 - version: 9.23.0 + specifier: ^9.24.0 + version: 9.24.0 eslint-plugin-react-hooks: specifier: ^5.2.0 - version: 5.2.0(eslint@9.23.0) + version: 5.2.0(eslint@9.24.0) eslint-plugin-react-refresh: specifier: ^0.4.19 - version: 0.4.19(eslint@9.23.0) + version: 0.4.19(eslint@9.24.0) eslint-plugin-storybook: specifier: ^0.12.0 - version: 0.12.0(eslint@9.23.0)(typescript@5.8.2) + version: 0.12.0(eslint@9.24.0)(typescript@5.8.3) globals: specifier: ^16.0.0 version: 16.0.0 msw: - specifier: ^2.7.3 - version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) + specifier: ^2.7.4 + version: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) remark-gfm: specifier: ^4.0.1 version: 4.0.1 storybook: - specifier: ^8.6.10 - version: 8.6.10(prettier@2.8.8) + specifier: ^8.6.12 + version: 8.6.12(prettier@2.8.8) typescript: - specifier: ~5.8.2 - version: 5.8.2 + specifier: ~5.8.3 + version: 5.8.3 typescript-eslint: - specifier: ^8.28.0 - version: 8.28.0(eslint@9.23.0)(typescript@5.8.2) + specifier: ^8.30.1 + version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) vite: - specifier: ^6.2.3 - version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.3.1 + version: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: @@ -1146,6 +1143,10 @@ packages: resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} engines: {node: '>=20'} + '@commercelayer/sdk@6.39.0': + resolution: {integrity: sha512-HzfXTAXvAe8UOd8E0SOokxjS9K/OVZJ+xX12nLxPS5OEPyAz5AnIzSfn9AVYiuii8QWAkVsjFfTq+4JouZzdEA==} + engines: {node: '>=20'} + '@csstools/color-helpers@5.0.2': resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} @@ -2287,26 +2288,26 @@ packages: '@storybook/addon-actions@7.6.20': resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} - '@storybook/addon-actions@8.6.10': - resolution: {integrity: sha512-g+aC1bFwIwZqxSVjw+BhJJeTmZPBhZT52AO6DUYWF+FZ2N3rjnaVKwT1gZYYhuYw2WtWw2wLivkXcq2L/IBbkg==} + '@storybook/addon-actions@8.6.12': + resolution: {integrity: sha512-B5kfiRvi35oJ0NIo53CGH66H471A3XTzrfaa6SxXEJsgxxSeKScG5YeXcCvLiZfvANRQ7QDsmzPUgg0o3hdMXw==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-backgrounds@7.6.20': resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} - '@storybook/addon-backgrounds@8.6.10': - resolution: {integrity: sha512-zou/VJSVDacuaQVJV22hbQEZrQBllcoxSw40EgSedqLv1qaVpC7Nz5LY9srl522LeoVEP+AOYKf9K7hLbm0o7w==} + '@storybook/addon-backgrounds@8.6.12': + resolution: {integrity: sha512-lmIAma9BiiCTbJ8YfdZkXjpnAIrOUcgboLkt1f6XJ78vNEMnLNzD9gnh7Tssz1qrqvm34v9daDjIb+ggdiKp3Q==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-controls@7.6.20': resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} - '@storybook/addon-controls@8.6.10': - resolution: {integrity: sha512-aMw3NCVSq+vWEAp10kbBlbMx+7PIFFdgxMCh7b9N2DUR/5J4KCNFQosa8fAn03Noh2g5jgceqNyY6L4lDIu0Xw==} + '@storybook/addon-controls@8.6.12': + resolution: {integrity: sha512-9VSRPJWQVb9wLp21uvpxDGNctYptyUX0gbvxIWOHMH3R2DslSoq41lsC/oQ4l4zSHVdL+nq8sCTkhBxIsjKqdQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-docs@7.6.20': resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} @@ -2314,10 +2315,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-docs@8.6.10': - resolution: {integrity: sha512-VnGtzwVaC8NvfhLr8UdIa6n38emU2SaDzfOTbvR1zibiqRmFDbo+kvAGSPOT6oIC5jZleUTLiIz0GzHxLuMxOQ==} + '@storybook/addon-docs@8.6.12': + resolution: {integrity: sha512-kEezQjAf/p3SpDzLABgg4fbT48B6dkT2LiZCKTRmCrJVtuReaAr4R9MMM6Jsph6XjbIj/SvOWf3CMeOPXOs9sg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-essentials@7.6.20': resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} @@ -2325,26 +2326,26 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/addon-essentials@8.6.10': - resolution: {integrity: sha512-8sKfAp3KkEjIHm02JhdazEKHlwO8VQgzAHk2fzHREgf24KqlCyF9BhDM1vG38fGdB+B+l1edZTE5a3NmcvK5Cg==} + '@storybook/addon-essentials@8.6.12': + resolution: {integrity: sha512-Y/7e8KFlttaNfv7q2zoHMPdX6hPXHdsuQMAjYl5NG9HOAJREu4XBy4KZpbcozRe4ApZ78rYsN/MO1EuA+bNMIA==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-highlight@7.6.20': resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} - '@storybook/addon-highlight@8.6.10': - resolution: {integrity: sha512-ZKl0yKzs/6xOpeDIiqHhfrJGQYA7jQ6cxO2nUm3zyqOnHZspef38VlqE63VttBq+mKnh9VbemmaTd2mUgQnm2A==} + '@storybook/addon-highlight@8.6.12': + resolution: {integrity: sha512-9FITVxdoycZ+eXuAZL9ElWyML/0fPPn9UgnnAkrU7zkMi+Segq/Tx7y+WWanC5zfWZrXAuG6WTOYEXeWQdm//w==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-interactions@7.6.20': resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} - '@storybook/addon-interactions@8.6.10': - resolution: {integrity: sha512-BtuqLJj1L5a8a4RmnX5YjrGhiEfn7LTdQgn2m71F8DnMCwvvYLHQgYUcpjobMld1OZr3IKq4/zCqesaGET++fQ==} + '@storybook/addon-interactions@8.6.12': + resolution: {integrity: sha512-cTAJlTq6uVZBEbtwdXkXoPQ4jHOAGKQnYSezBT4pfNkdjn/FnEeaQhMBDzf14h2wr5OgBnJa6Lmd8LD9ficz4A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-links@7.6.20': resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} @@ -2354,11 +2355,11 @@ packages: react: optional: true - '@storybook/addon-links@8.6.10': - resolution: {integrity: sha512-t7gRsFbOIAsqxb/5KA/LOywvx8USopqfW1KwLDBrDYaRUwkdiJVOSxjKB1a6cndFmqcGzucdXQx/PMmOQe9dig==} + '@storybook/addon-links@8.6.12': + resolution: {integrity: sha512-AfKujFHoAxhxq4yu+6NwylltS9lf5MPs1eLLXvOlwo3l7Y/c68OdxJ7j68vLQhs9H173WVYjKyjbjFxJWf/YYg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 peerDependenciesMeta: react: optional: true @@ -2366,47 +2367,47 @@ packages: '@storybook/addon-mdx-gfm@7.6.20': resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} - '@storybook/addon-mdx-gfm@8.6.10': - resolution: {integrity: sha512-9Ddu0AZ074O/hgooy2tFPvZqPzCJBQW57gGfCAj9PCvgRoALWsA7s5QHUlicq2r+iIxbKZv6o72ND+7Z9TwA7Q==} + '@storybook/addon-mdx-gfm@8.6.12': + resolution: {integrity: sha512-OKI5+O8xyK8axGPFwkl38NGJ6Rjf7kyhiBPxw5NuHOjOnU/FL4Pw3QmY47TT96TVws27vP3gF5+FX8lj3Dd3rQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-measure@7.6.20': resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} - '@storybook/addon-measure@8.6.10': - resolution: {integrity: sha512-ef5vAum7tMdiTsGsHOIHaLCyN0e3gLU2X4gzNelqH0/x/09C2QQaiOFDIpvbKt6HSjpHJeYcUOGzF7U/o4xVkw==} + '@storybook/addon-measure@8.6.12': + resolution: {integrity: sha512-tACmwqqOvutaQSduw8SMb62wICaT1rWaHtMN3vtWXuxgDPSdJQxLP+wdVyRYMAgpxhLyIO7YRf++Hfha9RHgFg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 - '@storybook/addon-onboarding@8.6.10': - resolution: {integrity: sha512-n4wtlZqYQiigtYCDCRXH1ilmGGv+DG5mggiTLpcLJEh9tZg2dGUptSyGARRF6igYYeiZTdDo8OPvwFUZc5N+vg==} + '@storybook/addon-onboarding@8.6.12': + resolution: {integrity: sha512-/cgxaLy6tr6xO0+QO+qV5rPZS5/c15Daywvg/F03lifLGkMuyn/JDuhu0J5i1LbFsL1RYdf4sjrTOmLXbOT6+Q==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-outline@7.6.20': resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} - '@storybook/addon-outline@8.6.10': - resolution: {integrity: sha512-Z5lQ/q9rULtlD99V1S3ymEU59tJGD2KHEdr4HRUgxo+fkyy7nOZDi88sOupoICBuAVYBIcxLKiMeYrUIwjHqtg==} + '@storybook/addon-outline@8.6.12': + resolution: {integrity: sha512-1ylwm+n1s40S91No0v9T4tCjZORu3GbnjINlyjYTDLLhQHyBQd3nWR1Y1eewU4xH4cW9SnSLcMQFS/82xHqU6A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-toolbars@7.6.20': resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} - '@storybook/addon-toolbars@8.6.10': - resolution: {integrity: sha512-cHhI+9r/Wt/l+E02V2UvybkmdembqjVUagLNHRIRQSqx0tH762G0OD3JzOC2nqmXMjABY2mUkADORhWERfMPjg==} + '@storybook/addon-toolbars@8.6.12': + resolution: {integrity: sha512-HEcSzo1DyFtIu5/ikVOmh5h85C1IvK9iFKSzBR6ice33zBOaehVJK+Z5f487MOXxPsZ63uvWUytwPyViGInj+g==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addon-viewport@7.6.20': resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} - '@storybook/addon-viewport@8.6.10': - resolution: {integrity: sha512-0ATxfA+bHpTcdTUc83VVJF3XPJqe64Yl1I9UWnx/XG2gzo8avRA44pQe8ETH5Fwr7kAvDMqW6LXAisfsl20wrg==} + '@storybook/addon-viewport@8.6.12': + resolution: {integrity: sha512-EXK2LArAnABsPP0leJKy78L/lbMWow+EIJfytEP5fHaW4EhMR6h7Hzaqzre6U0IMMr/jVFa1ci+m0PJ0eQc2bw==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2435,10 +2436,10 @@ packages: vite-plugin-glimmerx: optional: true - '@storybook/builder-vite@8.6.10': - resolution: {integrity: sha512-RXT4uflQSgXSHbWG+Z2Im5r7Ji1wj0Lyo6hVJZIBLEbaIbjfvPtP9CXlhK/z1h90cegHTnkYDd01RHwgmlKRrg==} + '@storybook/builder-vite@8.6.12': + resolution: {integrity: sha512-Gju21ud/3Qw4v2vLNaa5SuJECsI9ICNRr2G0UyCCzRvCHg8jpA9lDReu2NqhLDyFIuDG+ZYT38gcaHEUoNQ8KQ==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 vite: '>=4.5.2' '@storybook/channels@7.6.17': @@ -2462,8 +2463,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/components@8.6.10': - resolution: {integrity: sha512-9TE2aZU+1zjGO4R74jc4Dmx+pFb+9hm1vnlWH+WVfYV1nCSCZOMmMoO2J86PHPkR6RmPjcQJXz4ySdBbYiwKiw==} + '@storybook/components@8.6.12': + resolution: {integrity: sha512-FiaE8xvCdvKC2arYusgtlDNZ77b8ysr8njAYQZwwaIHjy27TbR2tEpLDCmUwSbANNmivtc/xGEiDDwcNppMWlQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2487,8 +2488,8 @@ packages: prettier: optional: true - '@storybook/core@8.6.10': - resolution: {integrity: sha512-VyhE/9/idPeeObsx+DyD8RR2iEwLJGL9rYz61r+1IrpndIVnlYD+vjxc0Y/1jTG1RvShWzEF2A/vzsJ9PzXqcw==} + '@storybook/core@8.6.12': + resolution: {integrity: sha512-t+ZuDzAlsXKa6tLxNZT81gEAt4GNwsKP/Id2wluhmUWD/lwYW0uum1JiPUuanw8xD6TdakCW/7ULZc7aQUBLCQ==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: @@ -2498,10 +2499,10 @@ packages: '@storybook/csf-plugin@7.6.20': resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} - '@storybook/csf-plugin@8.6.10': - resolution: {integrity: sha512-yjtFyjEvmmWUG1NzM81/CLI5rOUG311EoPmRnvbNpdzaVug4emC3rX9mR69DsrXfL7kLTDltDH8tjA7wLxpGMA==} + '@storybook/csf-plugin@8.6.12': + resolution: {integrity: sha512-6s8CnP1aoKPb3XtC0jRLUp8M5vTA8RhGAwQDKUsFpCC7g89JR9CaKs9FY2ZSzsNbjR15uASi7b3K8BzeYumYQg==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/csf-tools@7.6.20': resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} @@ -2522,10 +2523,10 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.6.10': - resolution: {integrity: sha512-Hlps6V0lkhFMbgcJQRynVBne51ciG7Xv+YtiDCd0PQtvZu8+vVJr/ebWt3nCwpvkRHooYiud1ScA3K8McyA73w==} + '@storybook/instrumenter@8.6.12': + resolution: {integrity: sha512-VK5fYAF8jMwWP/u3YsmSwKGh+FeSY8WZn78flzRUwirp2Eg1WWjsqPRubAk7yTpcqcC/km9YMF3KbqfzRv2s/A==} peerDependencies: - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} @@ -2553,8 +2554,8 @@ packages: '@storybook/preview-api@7.6.20': resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - '@storybook/preview-api@8.6.10': - resolution: {integrity: sha512-8ki1GgiUlcSqZD3Oe42Fy0uW3E7XPpMAyzO+NSnHCKKfNlZgi036Rr+FyGcKwG5lJyubWwNesPGQX5UHigYu4w==} + '@storybook/preview-api@8.6.12': + resolution: {integrity: sha512-84FE3Hrs0AYKHqpDZOwx1S/ffOfxBdL65lhCoeI8GoWwCkzwa9zEP3kvXBo/BnEDO7nAfxvMhjASTZXbKRJh5Q==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 @@ -2567,12 +2568,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-dom-shim@8.6.10': - resolution: {integrity: sha512-r4Q5stsoIlSEvOpOJgyFGPej+t9uuIzGI2ul83XNtiHEBs7xlmUN7qAm+U9cOuNZ7mPOXDKt9nZfUfCP5Ouhyw==} + '@storybook/react-dom-shim@8.6.12': + resolution: {integrity: sha512-51QvoimkBzYs8s3rCYnY5h0cFqLz/Mh0vRcughwYaXckWzDBV8l67WBO5Xf5nBsukCbWyqBVPpEQLww8s7mrLA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 '@storybook/react-vite@7.6.20': resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} @@ -2582,14 +2583,14 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: '>=4.5.2' - '@storybook/react-vite@8.6.10': - resolution: {integrity: sha512-CyptES7yE1fnZWMN5xk6AFPuchjg4YN8VvBaC0YyveKhfeXlczGwG9nPU28ZY3I+Xzz5g/A6rBvgSRQ88hc/bQ==} + '@storybook/react-vite@8.6.12': + resolution: {integrity: sha512-UA2Kule99oyFgHdhcuhrRwCKyWu/yMbqbl9U7NwowFHNwWWFjVMMir/AmfShb/H1C1DQ3LqOad6/QwJyPLjP8g==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.10 + '@storybook/test': 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 vite: '>=4.5.2' peerDependenciesMeta: '@storybook/test': @@ -2606,14 +2607,14 @@ packages: typescript: optional: true - '@storybook/react@8.6.10': - resolution: {integrity: sha512-QCs5nyXe+G2ZoZ1uspEsnSp7VYLJej5dJ1bSf22rrdHQde641zvC2HZQaba4dqR2YQxRCG9JtCdaQ3UVmnfzzA==} + '@storybook/react@8.6.12': + resolution: {integrity: sha512-NzxlHLA5DkDgZM/dMwTYinuzRs6rsUPmlqP+NIv6YaciQ4NGnTYyOC7R/SqI6HHFm8ZZ5eMYvpfiFmhZ9rU+rQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.6.10 + '@storybook/test': 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.10 + storybook: ^8.6.12 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -2887,8 +2888,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.0.4': - resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} + '@types/react-dom@19.1.2': + resolution: {integrity: sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==} peerDependencies: '@types/react': ^19.0.0 @@ -2904,6 +2905,9 @@ packages: '@types/react@19.0.12': resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} + '@types/react@19.1.2': + resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -2937,16 +2941,16 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.28.0': - resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} + '@typescript-eslint/eslint-plugin@8.30.1': + resolution: {integrity: sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.28.0': - resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} + '@typescript-eslint/parser@8.30.1': + resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2956,12 +2960,12 @@ packages: resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.28.0': - resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + '@typescript-eslint/scope-manager@8.30.1': + resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.28.0': - resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} + '@typescript-eslint/type-utils@8.30.1': + resolution: {integrity: sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -2971,8 +2975,8 @@ packages: resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.28.0': - resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} + '@typescript-eslint/types@8.30.1': + resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.23.0': @@ -2981,8 +2985,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/typescript-estree@8.28.0': - resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} + '@typescript-eslint/typescript-estree@8.30.1': + resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.9.0' @@ -2994,8 +2998,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.28.0': - resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + '@typescript-eslint/utils@8.30.1': + resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3005,8 +3009,8 @@ packages: resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.28.0': - resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} + '@typescript-eslint/visitor-keys@8.30.1': + resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitejs/plugin-react@3.1.0': @@ -4022,8 +4026,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.23.0: - resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} + eslint@9.24.0: + resolution: {integrity: sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -5516,6 +5520,16 @@ packages: typescript: optional: true + msw@2.7.4: + resolution: {integrity: sha512-A2kuMopOjAjNEYkn0AnB1uj+x7oBjLIunFk7Ud4icEnVWFf6iBekn8oXW4zIwcpfEdWP9sLqyVaHVzneWoGEww==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} @@ -6128,6 +6142,11 @@ packages: peerDependencies: react: ^19.0.0 + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + peerDependencies: + react: ^19.1.0 + react-element-to-jsx-string@15.0.0: resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} peerDependencies: @@ -6200,6 +6219,10 @@ packages: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6408,6 +6431,9 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + schema-utils@4.3.0: resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} engines: {node: '>= 10.13.0'} @@ -6919,8 +6945,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.28.0: - resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==} + typescript-eslint@8.30.1: + resolution: {integrity: sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8301,6 +8327,8 @@ snapshots: '@commercelayer/sdk@6.36.0': {} + '@commercelayer/sdk@6.39.0': {} + '@csstools/color-helpers@5.0.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': @@ -8699,7 +8727,7 @@ snapshots: '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 19.1.2 react: 18.3.1 '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': @@ -8708,11 +8736,11 @@ snapshots: '@types/react': 18.3.18 react: 18.3.1 - '@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.12 - react: 19.0.0 + '@types/react': 19.1.2 + react: 19.1.0 '@mswjs/interceptors@0.37.3': dependencies: @@ -9019,40 +9047,40 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9093,19 +9121,19 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9114,17 +9142,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9141,14 +9169,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) @@ -9158,19 +9186,19 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) @@ -9178,72 +9206,72 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-select@1.2.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@1.2.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9260,46 +9288,46 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -9373,15 +9401,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 - '@types/react-dom': 19.0.4(@types/react@18.3.18) + '@types/react-dom': 19.1.2(@types/react@18.3.18) '@radix-ui/rect@1.0.1': dependencies: @@ -9507,13 +9535,13 @@ snapshots: polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-actions@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-actions@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) uuid: 9.0.1 '@storybook/addon-backgrounds@7.6.20': @@ -9522,16 +9550,16 @@ snapshots: memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-backgrounds@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -9542,20 +9570,20 @@ snapshots: - react-dom - supports-color - '@storybook/addon-controls@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-controls@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - '@storybook/addon-docs@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-docs@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/csf-plugin': 7.6.20 '@storybook/csf-tools': 7.6.20 '@storybook/global': 5.0.0 @@ -9578,25 +9606,25 @@ snapshots: - encoding - supports-color - '@storybook/addon-docs@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-docs@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) - '@storybook/blocks': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@mdx-js/react': 3.1.0(@types/react@19.1.2)(react@19.1.0) + '@storybook/blocks': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-essentials@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/addon-actions': 7.6.20 '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-controls': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-highlight': 7.6.20 '@storybook/addon-measure': 7.6.20 '@storybook/addon-outline': 7.6.20 @@ -9615,18 +9643,18 @@ snapshots: - encoding - supports-color - '@storybook/addon-essentials@8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8))': - dependencies: - '@storybook/addon-actions': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-backgrounds': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-controls': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-docs': 8.6.10(@types/react@19.0.12)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-highlight': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-measure': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-outline': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-toolbars': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/addon-viewport': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/addon-essentials@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': + dependencies: + '@storybook/addon-actions': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-backgrounds': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-controls': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-docs': 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-highlight': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-measure': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-outline': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-toolbars': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/addon-viewport': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -9635,10 +9663,10 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-highlight@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-highlight@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-interactions@7.6.20': dependencies: @@ -9648,13 +9676,13 @@ snapshots: polished: 4.3.1 ts-dedent: 2.2.0 - '@storybook/addon-interactions@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-interactions@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/instrumenter': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) polished: 4.3.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-links@7.6.20(react@18.3.1)': @@ -9665,13 +9693,13 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-links@8.6.10(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-links@8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 optionalDependencies: - react: 19.0.0 + react: 19.1.0 '@storybook/addon-mdx-gfm@7.6.20': dependencies: @@ -9681,10 +9709,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-mdx-gfm@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-mdx-gfm@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: remark-gfm: 4.0.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -9694,41 +9722,41 @@ snapshots: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - '@storybook/addon-measure@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-measure@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-onboarding@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-outline@7.6.20': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - '@storybook/addon-outline@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-outline@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 '@storybook/addon-toolbars@7.6.20': {} - '@storybook/addon-toolbars@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-toolbars@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addon-viewport@7.6.20': dependencies: memoizerific: 1.11.3 - '@storybook/addon-viewport@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/addon-viewport@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: memoizerific: 1.11.3 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -9747,11 +9775,11 @@ snapshots: - react - react-dom - '@storybook/blocks@7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.0.4(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/core-events': 7.6.20 '@storybook/csf': 0.1.13 '@storybook/docs-tools': 7.6.20(encoding@0.1.13) @@ -9805,13 +9833,13 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@storybook/csf-plugin': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) browser-assert: 1.2.1 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) ts-dedent: 2.2.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) '@storybook/channels@7.6.17': dependencies: @@ -9862,9 +9890,9 @@ snapshots: - '@types/react' - '@types/react-dom' - '@storybook/components@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/components@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/core-client@7.6.20': dependencies: @@ -9929,9 +9957,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core@8.6.10(prettier@2.8.8)(storybook@8.6.10(prettier@2.8.8))': + '@storybook/core@8.6.12(prettier@2.8.8)(storybook@8.6.12(prettier@2.8.8))': dependencies: - '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) better-opn: 3.0.2 browser-assert: 1.2.1 esbuild: 0.25.1 @@ -9957,9 +9985,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/csf-plugin@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/csf-plugin@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) unplugin: 1.16.1 '@storybook/csf-tools@7.6.20': @@ -9995,16 +10023,16 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/icons@1.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - '@storybook/instrumenter@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/instrumenter@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10090,9 +10118,9 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview-api@8.6.10(storybook@8.6.10(prettier@2.8.8))': + '@storybook/preview-api@8.6.12(storybook@8.6.12(prettier@2.8.8))': dependencies: - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) '@storybook/preview@7.6.20': {} @@ -10121,23 +10149,23 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react-vite@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 8.6.10(storybook@8.6.10(prettier@2.8.8))(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@storybook/react': 8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2) + '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) find-up: 5.0.0 magic-string: 0.30.17 - react: 19.0.0 + react: 19.1.0 react-docgen: 7.1.0 - react-dom: 19.0.0(react@19.0.0) + react-dom: 19.1.0(react@19.1.0) resolve: 1.22.10 - storybook: 8.6.10(prettier@2.8.8) + storybook: 8.6.12(prettier@2.8.8) tsconfig-paths: 4.2.0 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) transitivePeerDependencies: - rollup - supports-color @@ -10174,20 +10202,20 @@ snapshots: - encoding - supports-color - '@storybook/react@8.6.10(@storybook/test@8.6.10(storybook@8.6.10(prettier@2.8.8)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8))(typescript@5.8.2)': + '@storybook/react@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)': dependencies: - '@storybook/components': 8.6.10(storybook@8.6.10(prettier@2.8.8)) + '@storybook/components': 8.6.12(storybook@8.6.12(prettier@2.8.8)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/preview-api': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.10(prettier@2.8.8)) - '@storybook/theming': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - storybook: 8.6.10(prettier@2.8.8) + '@storybook/manager-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/preview-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 8.6.12(prettier@2.8.8) optionalDependencies: - '@storybook/test': 8.6.10(storybook@8.6.10(prettier@2.8.8)) - typescript: 5.8.2 + '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + typescript: 5.8.3 '@storybook/router@7.6.17': dependencies: @@ -10290,7 +10318,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 19.0.12 - '@types/react-dom': 19.0.4(@types/react@19.0.12) + '@types/react-dom': 19.1.2(@types/react@19.0.12) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -10484,22 +10512,27 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.0.4(@types/react@18.3.18)': + '@types/react-dom@19.1.2(@types/react@18.3.18)': dependencies: '@types/react': 18.3.18 optional: true - '@types/react-dom@19.0.4(@types/react@19.0.12)': + '@types/react-dom@19.1.2(@types/react@19.0.12)': dependencies: '@types/react': 19.0.12 + optional: true + + '@types/react-dom@19.1.2(@types/react@19.1.2)': + dependencies: + '@types/react': 19.1.2 '@types/react-test-renderer@19.0.0': dependencies: - '@types/react': 19.0.12 + '@types/react': 19.1.2 '@types/react-window@1.8.8': dependencies: - '@types/react': 19.0.12 + '@types/react': 19.1.2 '@types/react@18.3.18': dependencies: @@ -10510,6 +10543,10 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/react@19.1.2': + dependencies: + csstype: 3.1.3 + '@types/resolve@1.20.6': {} '@types/send@0.17.4': @@ -10564,29 +10601,29 @@ snapshots: '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/type-utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 - eslint: 9.23.0 + '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/type-utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.30.1 + eslint: 9.24.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.30.1 debug: 4.4.0 - eslint: 9.23.0 - typescript: 5.8.2 + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -10595,27 +10632,27 @@ snapshots: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/scope-manager@8.28.0': + '@typescript-eslint/scope-manager@8.30.1': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/visitor-keys': 8.30.1 - '@typescript-eslint/type-utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) debug: 4.4.0 - eslint: 9.23.0 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + eslint: 9.24.0 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/types@8.28.0': {} + '@typescript-eslint/types@8.30.1': {} - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 @@ -10624,44 +10661,44 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/visitor-keys': 8.30.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.2) - typescript: 5.8.2 + ts-api-utils: 2.0.1(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.23.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.23.0(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.28.0(eslint@9.23.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) + '@typescript-eslint/scope-manager': 8.30.1 + '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -10670,7 +10707,7 @@ snapshots: '@typescript-eslint/types': 8.23.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.28.0': + '@typescript-eslint/visitor-keys@8.30.1': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) @@ -10766,6 +10803,12 @@ snapshots: loupe: 3.1.4 tinyrainbow: 2.0.0 + '@vitest/utils@3.1.1': + dependencies: + '@vitest/pretty-format': 3.1.1 + loupe: 3.1.3 + tinyrainbow: 2.0.0 + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -11681,8 +11724,8 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.1): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.23.0(eslint@9.23.0)(typescript@5.8.2) - eslint: 9.23.0 + '@typescript-eslint/utils': 8.23.0(eslint@9.24.0)(typescript@5.8.3) + eslint: 9.24.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color @@ -11702,15 +11745,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.23.0: + eslint@9.24.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.23.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 + '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.0 '@eslint/core': 0.12.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.23.0 + '@eslint/js': 9.24.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -14317,6 +14360,10 @@ snapshots: dependencies: typescript: 5.8.3 + react-docgen-typescript@2.2.2(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + react-docgen@7.1.0: dependencies: '@babel/core': 7.26.10 @@ -14343,6 +14390,11 @@ snapshots: react: 19.0.0 scheduler: 0.25.0 + react-dom@19.1.0(react@19.1.0): + dependencies: + react: 19.1.0 + scheduler: 0.26.0 + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -14404,6 +14456,8 @@ snapshots: react@19.0.0: {} + react@19.1.0: {} + read-cmd-shim@4.0.0: {} read-package-json-fast@3.0.2: @@ -14690,6 +14744,8 @@ snapshots: scheduler@0.25.0: {} + scheduler@0.26.0: {} + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -15130,9 +15186,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.0.1(typescript@5.8.2): + ts-api-utils@2.0.1(typescript@5.8.3): dependencies: - typescript: 5.8.2 + typescript: 5.8.3 ts-dedent@2.2.0: {} @@ -15162,7 +15218,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.4.0(postcss@8.5.3)(typescript@5.8.2)(yaml@2.7.0): + tsup@8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.25.1) cac: 6.7.14 @@ -15182,7 +15238,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.3 - typescript: 5.8.2 + typescript: 5.8.3 transitivePeerDependencies: - jiti - supports-color @@ -15218,13 +15274,13 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.28.0(eslint@9.23.0)(typescript@5.8.2): + typescript-eslint@8.30.1(eslint@9.24.0)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.28.0(eslint@9.23.0)(typescript@5.8.2) - eslint: 9.23.0 - typescript: 5.8.2 + '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + eslint: 9.24.0 + typescript: 5.8.3 transitivePeerDependencies: - supports-color From 08213a7ffa5c04e7be2b1f83a20752716ab01140 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 17 Dec 2025 16:57:09 +0100 Subject: [PATCH 021/165] Add new hook usePrices and unit tests, update commercelayer/sdk to v7 into the core package --- .vscode/settings.json | 6 +- package.json | 6 +- packages/core/package.json | 26 +- packages/core/src/auth/index.ts | 1 + packages/core/src/index.ts | 2 + packages/core/src/prices/getPrices.ts | 15 +- packages/core/src/prices/index.ts | 4 + .../core/src/prices/retrievePrice.spec.ts | 1 - packages/core/src/prices/retrievePrice.ts | 10 +- packages/core/src/prices/updatePrice.ts | 13 +- packages/core/src/sdk/index.ts | 9 +- packages/core/tsup.config.ts | 5 +- packages/core/vitest.config.ts | 1 + packages/docs/package.json | 62 +- packages/document/package.json | 56 +- packages/hooks/extender.ts | 69 + packages/hooks/package.json | 59 + packages/hooks/src/index.ts | 0 packages/hooks/src/prices/usePrices.test.ts | 133 + packages/hooks/src/prices/usePrices.ts | 64 + packages/hooks/tsconfig.json | 32 + packages/hooks/tsup.config.ts | 12 + packages/hooks/vite-env.d.ts | 13 + packages/hooks/vitest.config.ts | 15 + packages/react-components/package.json | 50 +- pnpm-lock.yaml | 10427 ++++++---------- 26 files changed, 4703 insertions(+), 6388 deletions(-) create mode 100644 packages/core/src/auth/index.ts create mode 100644 packages/core/src/prices/index.ts create mode 100644 packages/hooks/extender.ts create mode 100644 packages/hooks/package.json create mode 100644 packages/hooks/src/index.ts create mode 100644 packages/hooks/src/prices/usePrices.test.ts create mode 100644 packages/hooks/src/prices/usePrices.ts create mode 100644 packages/hooks/tsconfig.json create mode 100644 packages/hooks/tsup.config.ts create mode 100644 packages/hooks/vite-env.d.ts create mode 100644 packages/hooks/vitest.config.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 184991f8..5991e486 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,7 @@ "editor.formatOnSave": true, "editor.defaultFormatter": "biomejs.biome", "editor.codeActionsOnSave": { - "quickfix.biome": "explicit", - "source.organizeImports.biome": "explicit" - } + "source.fixAll.biome": "explicit" + }, + "biome.configurationPath": "./biome.json" } diff --git a/package.json b/package.json index 139c79c3..30f6269f 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,10 @@ "dep:minor": "pnpm dep:major -t minor -i" }, "devDependencies": { - "@biomejs/biome": "^2.2.4", + "@biomejs/biome": "^2.3.8", "husky": "^9.1.7", - "lerna": "^8.2.3", - "typescript": "^5.9.2" + "lerna": "^9.0.3", + "typescript": "^5.9.3" }, "pnpm": { "overrides": { diff --git a/packages/core/package.json b/packages/core/package.json index cb983630..2a6c2f18 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@commercelayer/core", "version": "1.0.0", - "description": "Commerce Layer Components Core SDK", + "description": "Commerce Layer Core", "type": "module", "main": "./dist/index.js", "exports": { @@ -11,12 +11,18 @@ "default": "./dist/index.cjs" } }, - "keywords": ["jamstack", "headless", "ecommerce", "api", "components"], + "keywords": [ + "jamstack", + "headless", + "ecommerce", + "api", + "components" + ], "scripts": { "check-exports": "attw --pack .", "lint": "biome lint --error-on-warnings ./src && tsc", "lint:fix": "pnpm biome lint --write ./src", - "test": "pnpm run lint && vitest --silent", + "test": "pnpm run lint && vitest run --silent", "test:watch": "vitest", "coverage": "vitest run --coverage", "build": "tsup", @@ -31,15 +37,15 @@ }, "license": "MIT", "devDependencies": { - "@arethetypeswrong/cli": "^0.17.4", - "@vitest/coverage-v8": "^3.1.1", - "tsup": "^8.4.0", - "typescript": "^5.8.3", + "@arethetypeswrong/cli": "^0.18.2", + "@vitest/coverage-v8": "^4.0.15", + "tsup": "^8.5.1", + "typescript": "^5.9.3", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.1.1" + "vitest": "^4.0.15" }, "dependencies": { - "@commercelayer/js-auth": "^6.7.2", - "@commercelayer/sdk": "6.39.0" + "@commercelayer/js-auth": "^7.1.0", + "@commercelayer/sdk": "7.4.1" } } diff --git a/packages/core/src/auth/index.ts b/packages/core/src/auth/index.ts new file mode 100644 index 00000000..91c54e8e --- /dev/null +++ b/packages/core/src/auth/index.ts @@ -0,0 +1 @@ +export { getAccessToken } from "./getAccessToken" diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index e69de29b..4ced7667 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -0,0 +1,2 @@ +export * from "./auth" +export * from "./prices" diff --git a/packages/core/src/prices/getPrices.ts b/packages/core/src/prices/getPrices.ts index 53d9e737..a64031a9 100644 --- a/packages/core/src/prices/getPrices.ts +++ b/packages/core/src/prices/getPrices.ts @@ -1,8 +1,9 @@ -import type { - ListResponse, - Price, - QueryParamsList, - ResourcesConfig, +import { + type ListResponse, + type Price, + prices, + type QueryParamsList, + type ResourcesConfig, } from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" @@ -27,6 +28,6 @@ export async function getPrices({ params, options, }: GetPricesParams): Promise> { - const sdk = getSdk({ accessToken }) - return await sdk.prices.list(params, options) + getSdk({ accessToken }) + return await prices.list(params, options) } diff --git a/packages/core/src/prices/index.ts b/packages/core/src/prices/index.ts new file mode 100644 index 00000000..dd1333cb --- /dev/null +++ b/packages/core/src/prices/index.ts @@ -0,0 +1,4 @@ +export type { Price } from "@commercelayer/sdk" +export { getPrices } from "./getPrices" +export { retrievePrice } from "./retrievePrice" +export { updatePrice } from "./updatePrice" diff --git a/packages/core/src/prices/retrievePrice.spec.ts b/packages/core/src/prices/retrievePrice.spec.ts index 3d23ac7b..bcbc304d 100644 --- a/packages/core/src/prices/retrievePrice.spec.ts +++ b/packages/core/src/prices/retrievePrice.spec.ts @@ -1,4 +1,3 @@ -import type { QueryFilter } from "@commercelayer/sdk" import { describe, expect } from "vitest" import { coreTest } from "#extender" import { getPrices } from "./getPrices.js" diff --git a/packages/core/src/prices/retrievePrice.ts b/packages/core/src/prices/retrievePrice.ts index 0167d569..815b98ae 100644 --- a/packages/core/src/prices/retrievePrice.ts +++ b/packages/core/src/prices/retrievePrice.ts @@ -1,4 +1,8 @@ -import type { Price, QueryParamsRetrieve } from "@commercelayer/sdk" +import { + type Price, + prices, + type QueryParamsRetrieve, +} from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" @@ -24,6 +28,6 @@ export async function retrievePrice({ params, options, }: RetrievePriceParams): Promise { - const sdk = getSdk({ accessToken }) - return await sdk.prices.retrieve(id, params, options) + getSdk({ accessToken }) + return await prices.retrieve(id, params, options) } diff --git a/packages/core/src/prices/updatePrice.ts b/packages/core/src/prices/updatePrice.ts index 617c4e03..6defbc4b 100644 --- a/packages/core/src/prices/updatePrice.ts +++ b/packages/core/src/prices/updatePrice.ts @@ -1,7 +1,8 @@ -import type { - Price, - PriceUpdate, - QueryParamsRetrieve, +import { + type Price, + type PriceUpdate, + prices, + type QueryParamsRetrieve, } from "@commercelayer/sdk" import { getSdk } from "#sdk" import type { RequestConfig } from "#types" @@ -28,6 +29,6 @@ export async function updatePrice({ params, options, }: UpdatePriceParams): Promise { - const sdk = getSdk({ accessToken }) - return await sdk.prices.update(resource, params, options) + getSdk({ accessToken }) + return await prices.update(resource, params, options) } diff --git a/packages/core/src/sdk/index.ts b/packages/core/src/sdk/index.ts index 2fe821ed..5a7336d3 100644 --- a/packages/core/src/sdk/index.ts +++ b/packages/core/src/sdk/index.ts @@ -4,21 +4,22 @@ import { type JWTWebApp, jwtDecode, } from "@commercelayer/js-auth" -import sdk, { type CommerceLayerClient } from "@commercelayer/sdk" +import sdk from "@commercelayer/sdk" import type { RequestConfig } from "#types" /** * Get the Commerce Layer SDK instance * * @param {string} accessToken - The access token to use for authentication. - * @returns {CommerceLayerClient} - The Commerce Layer SDK instance. + * @returns {void} */ -export function getSdk({ accessToken }: RequestConfig): CommerceLayerClient { +export function getSdk({ accessToken }: RequestConfig): void { const { payload } = jwtDecode(accessToken) const { organization } = payload as | JWTIntegration | JWTWebApp | JWTSalesChannel const slug = organization.slug - return sdk({ accessToken, organization: slug }) + const cl = sdk({ accessToken, organization: slug }) + cl.addRawResponseReader() } diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index 39f89612..26e341d9 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -1,11 +1,10 @@ import { defineConfig } from "tsup" -const env = process.env.NODE_ENV - -export default defineConfig((options) => ({ +export default defineConfig(() => ({ entryPoints: ["src/index.ts"], format: ["cjs", "esm"], dts: true, + splitting: true, outDir: "dist", clean: true, treeshake: true, diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts index 3c65cd6d..a0f1e3e6 100644 --- a/packages/core/vitest.config.ts +++ b/packages/core/vitest.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ coverage: { provider: "v8", reporter: ["text", "json", "html"], + exclude: ["**/extender.ts"], }, }, plugins: [tsconfigPaths()], diff --git a/packages/docs/package.json b/packages/docs/package.json index f73e780e..8951b346 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -3,45 +3,45 @@ "name": "docs", "version": "4.28.3", "devDependencies": { - "@babel/core": "^7.26.9", - "@babel/preset-env": "^7.26.9", - "@commercelayer/js-auth": "^6.7.1", - "@commercelayer/sdk": "^6.32.0", - "@mdx-js/react": "^3.1.0", - "@storybook/addon-actions": "^7.6.17", - "@storybook/addon-backgrounds": "^7.6.17", - "@storybook/addon-docs": "^7.6.17", - "@storybook/addon-essentials": "^7.6.17", - "@storybook/addon-interactions": "^7.6.17", - "@storybook/addon-links": "^7.6.17", - "@storybook/addon-mdx-gfm": "^7.6.17", - "@storybook/addon-measure": "^7.6.17", - "@storybook/addon-outline": "^7.6.17", + "@babel/core": "^7.28.5", + "@babel/preset-env": "^7.28.5", + "@commercelayer/js-auth": "^7.1.0", + "@commercelayer/sdk": "^7.4.1", + "@mdx-js/react": "^3.1.1", + "@storybook/addon-actions": "^9.0.8", + "@storybook/addon-backgrounds": "^9.0.8", + "@storybook/addon-docs": "^10.1.6", + "@storybook/addon-essentials": "^8.6.14", + "@storybook/addon-interactions": "^8.6.14", + "@storybook/addon-links": "^10.1.6", + "@storybook/addon-mdx-gfm": "^8.6.14", + "@storybook/addon-measure": "^9.0.8", + "@storybook/addon-outline": "^9.0.8", "@storybook/addons": "^7.6.17", "@storybook/api": "^7.6.17", - "@storybook/blocks": "^7.6.17", + "@storybook/blocks": "^8.6.14", "@storybook/client-api": "^7.6.17", - "@storybook/client-logger": "^7.6.17", - "@storybook/manager-api": "^7.6.17", - "@storybook/node-logger": "^8.4.2", - "@storybook/react": "^7.6.17", - "@storybook/react-vite": "^7.6.17", + "@storybook/client-logger": "^8.6.14", + "@storybook/manager-api": "^8.6.14", + "@storybook/node-logger": "^8.6.14", + "@storybook/react": "^10.1.6", + "@storybook/react-vite": "^10.1.6", "@storybook/testing-library": "^0.2.2", - "@storybook/theming": "^7.6.17", + "@storybook/theming": "^8.6.14", "@types/js-cookie": "^3.0.6", - "@types/react": "^18.3.3", - "@vitejs/plugin-react": "^4.3.4", - "babel-loader": "^9.2.1", + "@types/react": "^19.2.7", + "@vitejs/plugin-react": "^5.1.2", + "babel-loader": "^10.0.0", "js-cookie": "^3.0.5", "jwt-decode": "^4.0.0", - "msw": "^2.7.0", + "msw": "^2.12.4", "prop-types": "^15.8.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "storybook": "^8.0.0", - "type-fest": "^4.35.0", - "typescript": "^5.7.3", - "vite": "^6.1.0", + "react": "^19.2.1", + "react-dom": "^19.2.1", + "storybook": "^10.1.6", + "type-fest": "^5.3.1", + "typescript": "^5.9.3", + "vite": "^7.2.7", "vite-tsconfig-paths": "^5.1.4" }, "scripts": { diff --git a/packages/document/package.json b/packages/document/package.json index 8b6d5d5c..4c42f9fc 100644 --- a/packages/document/package.json +++ b/packages/document/package.json @@ -12,37 +12,37 @@ "build-storybook": "storybook build" }, "dependencies": { - "react": "^19.1.0", - "react-dom": "^19.1.0" + "react": "^19.2.1", + "react-dom": "^19.2.1" }, "devDependencies": { - "@chromatic-com/storybook": "^3.2.6", - "@eslint/js": "^9.24.0", - "@storybook/addon-docs": "^8.6.12", - "@storybook/addon-essentials": "^8.6.12", - "@storybook/addon-interactions": "^8.6.12", - "@storybook/addon-links": "^8.6.12", - "@storybook/addon-mdx-gfm": "^8.6.12", - "@storybook/addon-onboarding": "^8.6.12", - "@storybook/blocks": "^8.6.12", - "@storybook/react": "^8.6.12", - "@storybook/react-vite": "^8.6.12", - "@storybook/test": "^8.6.12", - "@storybook/theming": "^8.6.12", - "@types/react": "^19.1.2", - "@types/react-dom": "^19.1.2", - "@vitejs/plugin-react": "^4.4.0", - "eslint": "^9.24.0", - "eslint-plugin-react-hooks": "^5.2.0", - "eslint-plugin-react-refresh": "^0.4.19", - "eslint-plugin-storybook": "^0.12.0", - "globals": "^16.0.0", - "msw": "^2.7.4", + "@chromatic-com/storybook": "^4.1.3", + "@eslint/js": "^9.39.1", + "@storybook/addon-docs": "^10.1.6", + "@storybook/addon-essentials": "^8.6.14", + "@storybook/addon-interactions": "^8.6.14", + "@storybook/addon-links": "^10.1.6", + "@storybook/addon-mdx-gfm": "^8.6.14", + "@storybook/addon-onboarding": "^10.1.6", + "@storybook/blocks": "^8.6.14", + "@storybook/react": "^10.1.6", + "@storybook/react-vite": "^10.1.6", + "@storybook/test": "^8.6.14", + "@storybook/theming": "^8.6.14", + "@types/react": "^19.2.7", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.1.2", + "eslint": "^9.39.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.24", + "eslint-plugin-storybook": "^10.1.6", + "globals": "^16.5.0", + "msw": "^2.12.4", "remark-gfm": "^4.0.1", - "storybook": "^8.6.12", - "typescript": "~5.8.3", - "typescript-eslint": "^8.30.1", - "vite": "^6.3.1", + "storybook": "^10.1.6", + "typescript": "~5.9.3", + "typescript-eslint": "^8.49.0", + "vite": "^7.2.7", "vite-tsconfig-paths": "^5.1.4" }, "eslintConfig": { diff --git a/packages/hooks/extender.ts b/packages/hooks/extender.ts new file mode 100644 index 00000000..7e33c378 --- /dev/null +++ b/packages/hooks/extender.ts @@ -0,0 +1,69 @@ +import { getAccessToken } from "@commercelayer/core" +import { test } from "vitest" + +const clientId = import.meta.env.VITE_SALES_CHANNEL_CLIENT_ID +const integrationClientId = import.meta.env.VITE_INTEGRATION_CLIENT_ID +const integrationClientSecret = import.meta.env.VITE_INTEGRATION_CLIENT_SECRET +const scope = import.meta.env.VITE_SALES_CHANNEL_SCOPE +const domain = import.meta.env.VITE_DOMAIN +let accessToken: Awaited> | undefined + +export interface CoreTestInterface { + accessToken: Awaited> + config: { + clientId: string + scope?: string + domain: string + } +} + +/** + * This test is used to run integration tests with the sales channel client. + */ +export const coreTest = test.extend({ + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId, + scope, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId, + scope, + domain, + }, +}) + +/** + * This test is used to run integration tests with the integration client. + */ +export const coreIntegrationTest = test.extend({ + // biome-ignore lint/correctness/noEmptyPattern: need to object destructure as the first argument + accessToken: async ({}, use) => { + if (accessToken == null) { + accessToken = await getAccessToken({ + grantType: "client_credentials", + config: { + clientId: integrationClientId, + clientSecret: integrationClientSecret, + domain, + }, + }) + } + use(accessToken) + accessToken = undefined + }, + config: { + clientId: integrationClientId, + domain, + }, +}) diff --git a/packages/hooks/package.json b/packages/hooks/package.json new file mode 100644 index 00000000..b7dcb3ee --- /dev/null +++ b/packages/hooks/package.json @@ -0,0 +1,59 @@ +{ + "name": "@commercelayer/hooks", + "version": "1.0.0", + "description": "Commerce Layer React Hooks", + "type": "module", + "main": "./dist/index.js", + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "default": "./dist/index.cjs" + } + }, + "keywords": [ + "jamstack", + "headless", + "ecommerce", + "api", + "components" + ], + "scripts": { + "check-exports": "attw --pack .", + "lint": "biome lint --error-on-warnings ./src && tsc", + "lint:fix": "pnpm biome lint --write ./src", + "test": "pnpm run lint && vitest run --silent", + "test:watch": "vitest", + "coverage": "vitest run --coverage", + "build": "tsup", + "ci": "pnpm build && pnpm check-exports && pnpm lint" + }, + "publishConfig": { + "access": "public" + }, + "author": { + "name": "Alessandro Casazza", + "email": "alessandro@commercelayer.io" + }, + "license": "MIT", + "devDependencies": { + "@arethetypeswrong/cli": "^0.18.2", + "@commercelayer/sdk": "^7.4.1", + "@testing-library/react": "^16.3.0", + "@types/react": "^19.2.7", + "@types/react-dom": "^19.2.3", + "@vitest/coverage-v8": "^4.0.15", + "react": "^19.2.1", + "react-dom": "^19.2.1", + "tsup": "^8.5.1", + "typescript": "^5.9.3", + "vite-tsconfig-paths": "^5.1.4", + "vitest": "^4.0.15" + }, + "dependencies": { + "@commercelayer/core": "workspace:*" + }, + "peerDependencies": { + "react": ">=19.2.1" + } +} diff --git a/packages/hooks/src/index.ts b/packages/hooks/src/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/hooks/src/prices/usePrices.test.ts b/packages/hooks/src/prices/usePrices.test.ts new file mode 100644 index 00000000..fa2fc6e3 --- /dev/null +++ b/packages/hooks/src/prices/usePrices.test.ts @@ -0,0 +1,133 @@ +import { act, renderHook, waitFor } from "@testing-library/react" +import { describe, expect } from "vitest" +import { coreIntegrationTest, coreTest } from "#extender" +import { usePrices } from "./usePrices" + +describe("usePrices", () => { + coreTest("should return a list of prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const { result } = renderHook(() => usePrices(token)) + + expect(result.current.prices).toEqual([]) + + act(() => { + result.current.fetchPrices() + }) + + await waitFor(() => { + expect(result.current.prices.length).toBeGreaterThan(0) + }) + }) + + coreIntegrationTest( + "should return a list of prices with an integration token", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const { result } = renderHook(() => usePrices(token)) + + expect(result.current.prices).toEqual([]) + + act(() => { + result.current.fetchPrices() + }) + + await waitFor(() => { + expect(result.current.prices.length).toBeGreaterThan(0) + }) + }, + ) + + coreTest("should handle errors gracefully", async () => { + const token = "invalid-token" + const { result } = renderHook(() => usePrices(token)) + + act(() => { + result.current.fetchPrices() + }) + + await waitFor(() => { + expect(result.current.error).toBeDefined() + expect(result.current.prices).toEqual([]) + }) + }) + + coreTest("should clear prices", async ({ accessToken }) => { + const token = accessToken?.accessToken + const { result } = renderHook(() => usePrices(token)) + + // First fetch some prices + act(() => { + result.current.fetchPrices() + }) + + await waitFor(() => { + expect(result.current.prices.length).toBeGreaterThan(0) + }) + + // Then clear them + act(() => { + result.current.clearPrices() + }) + + expect(result.current.prices).toEqual([]) + }) + + coreTest("should clear errors", async () => { + const token = "invalid-token" + const { result } = renderHook(() => usePrices(token)) + + // Trigger an error + act(() => { + result.current.fetchPrices() + }) + + await waitFor(() => { + expect(result.current.error).toBeDefined() + }) + + // Clear the error + act(() => { + result.current.clearError() + }) + + expect(result.current.error).toBeNull() + }) + + coreTest("should filter prices by parameters", async ({ accessToken }) => { + const token = accessToken?.accessToken + const { result } = renderHook(() => usePrices(token)) + + act(() => { + result.current.fetchPrices({ + filters: { + sku_code_eq: "DIGITALPRODUCT", + }, + }) + }) + + await waitFor(() => { + expect(result.current.prices).toBeDefined() + expect(result.current.error).toBe(null) + }) + }) + + coreTest( + "should show pending state during fetch", + async ({ accessToken }) => { + const token = accessToken?.accessToken + const { result } = renderHook(() => usePrices(token)) + + expect(result.current.isPending).toBe(false) + + act(() => { + result.current.fetchPrices() + }) + + expect(result.current.isPending).toBe(true) + + await waitFor(() => { + expect(result.current.isPending).toBe(false) + }) + }, + ) +}) diff --git a/packages/hooks/src/prices/usePrices.ts b/packages/hooks/src/prices/usePrices.ts new file mode 100644 index 00000000..86112d9c --- /dev/null +++ b/packages/hooks/src/prices/usePrices.ts @@ -0,0 +1,64 @@ +import { getPrices, type Price } from "@commercelayer/core" +import { useCallback, useState, useTransition } from "react" + +interface UsePricesState { + prices: Price[] + error: string | null +} + +interface UsePricesReturn extends UsePricesState { + isPending: boolean + fetchPrices: (params?: Parameters[0]["params"]) => void + clearPrices: () => void + clearError: () => void +} + +export function usePrices(accessToken: string): UsePricesReturn { + const [isPending, startTransition] = useTransition() + const [state, setState] = useState({ + prices: [], + error: null, + }) + + const fetchPrices = useCallback( + (params?: Parameters[0]["params"]) => { + setState((prev: UsePricesState) => ({ ...prev, error: null })) + + startTransition(async () => { + try { + const prices = await getPrices({ + accessToken, + params, + }) + setState((prev: UsePricesState) => ({ + ...prev, + prices: prices, + })) + } catch (error: unknown) { + setState((prev: UsePricesState) => ({ + ...prev, + error: + error instanceof Error ? error.message : "Failed to fetch prices", + })) + } + }) + }, + [accessToken], + ) + + const clearPrices = useCallback(() => { + setState((prev: UsePricesState) => ({ ...prev, prices: [] })) + }, []) + + const clearError = useCallback(() => { + setState((prev: UsePricesState) => ({ ...prev, error: null })) + }, []) + + return { + ...state, + isPending, + fetchPrices, + clearPrices, + clearError, + } +} diff --git a/packages/hooks/tsconfig.json b/packages/hooks/tsconfig.json new file mode 100644 index 00000000..366986a2 --- /dev/null +++ b/packages/hooks/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + /* Base Options: */ + "esModuleInterop": true, + "skipLibCheck": true, + "target": "es2022", + "allowJs": true, + "resolveJsonModule": true, + "moduleDetection": "force", + "isolatedModules": true, + "verbatimModuleSyntax": true, + "lib": ["es2022"], + "noEmit": true, + + /* Strictness */ + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + + /* If transpiling with TypeScript: */ + "module": "Preserve", + + /* Relative Paths */ + "baseUrl": ".", + "paths": { + "#sdk": ["src/sdk/index.ts"], + "#types": ["src/types/index.ts"], + "#extender": ["extender.ts"] + } + }, + "exclude": ["node_modules", "dist", "coverage", "*.spec.ts"] +} diff --git a/packages/hooks/tsup.config.ts b/packages/hooks/tsup.config.ts new file mode 100644 index 00000000..39f89612 --- /dev/null +++ b/packages/hooks/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "tsup" + +const env = process.env.NODE_ENV + +export default defineConfig((options) => ({ + entryPoints: ["src/index.ts"], + format: ["cjs", "esm"], + dts: true, + outDir: "dist", + clean: true, + treeshake: true, +})) diff --git a/packages/hooks/vite-env.d.ts b/packages/hooks/vite-env.d.ts new file mode 100644 index 00000000..c16c20fd --- /dev/null +++ b/packages/hooks/vite-env.d.ts @@ -0,0 +1,13 @@ +/// + +interface ImportMetaEnv { + readonly VITE_SALES_CHANNEL_CLIENT_ID: string + readonly VITE_SALES_CHANNEL_SCOPE: string + readonly VITE_INTEGRATION_CLIENT_ID: string + readonly VITE_INTEGRATION_CLIENT_SECRET: string + readonly VITE_DOMAIN: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/packages/hooks/vitest.config.ts b/packages/hooks/vitest.config.ts new file mode 100644 index 00000000..e5380544 --- /dev/null +++ b/packages/hooks/vitest.config.ts @@ -0,0 +1,15 @@ +import tsconfigPaths from "vite-tsconfig-paths" +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + name: "hooks", + environment: "jsdom", + coverage: { + provider: "v8", + reporter: ["text", "json", "html"], + exclude: ["**/extender.ts"], + }, + }, + plugins: [tsconfigPaths()], +}) diff --git a/packages/react-components/package.json b/packages/react-components/package.json index c4fb0965..b94015da 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -199,14 +199,14 @@ }, "homepage": "https://github.com/commercelayer/commercelayer-react-components#readme", "dependencies": { - "@adyen/adyen-web": "^6.21.0", - "@commercelayer/organization-config": "^2.4.0", - "@commercelayer/sdk": "^6.46.0", - "@stripe/react-stripe-js": "^4.0.2", - "@stripe/stripe-js": "^7.9.0", + "@adyen/adyen-web": "^6.26.0", + "@commercelayer/organization-config": "^2.5.0", + "@commercelayer/sdk": "^7.4.1", + "@stripe/react-stripe-js": "^5.4.1", + "@stripe/stripe-js": "^8.5.3", "@tanstack/react-table": "^8.21.3", - "@types/iframe-resizer": "^3.5.13", - "braintree-web": "^3.129.0", + "@types/iframe-resizer": "^4.0.0", + "braintree-web": "^3.133.0", "frames-react": "^1.2.3", "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", @@ -214,32 +214,32 @@ "rapid-form": "3.1.0" }, "devDependencies": { - "@commercelayer/js-auth": "^6.7.2", - "@faker-js/faker": "^10.0.0", - "@playwright/test": "^1.55.0", + "@commercelayer/js-auth": "^7.1.0", + "@faker-js/faker": "^10.1.0", + "@playwright/test": "^1.57.0", "@testing-library/dom": "^10.4.1", "@testing-library/react": "^16.3.0", "@types/braintree-web": "^3.96.17", - "@types/lodash": "^4.17.20", - "@types/node": "^24.3.1", + "@types/lodash": "^4.17.21", + "@types/node": "^24.10.2", "@types/prop-types": "^15.7.15", - "@types/react": "^18.3.1", - "@types/react-test-renderer": "^18.3.1", - "@types/react-window": "^1.8.8", - "@vitejs/plugin-react": "^5.0.2", - "@vitest/coverage-v8": "^3.2.4", - "jsdom": "^26.1.0", + "@types/react": "^19.2.7", + "@types/react-test-renderer": "^19.1.0", + "@types/react-window": "^2.0.0", + "@vitejs/plugin-react": "^5.1.2", + "@vitest/coverage-v8": "^4.0.15", + "jsdom": "^27.3.0", "minimize-js": "^1.4.0", - "msw": "^2.11.1", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-test-renderer": "^18.3.1", + "msw": "^2.12.4", + "react": "^19.2.1", + "react-dom": "^19.2.1", + "react-test-renderer": "^19.2.1", "tsc-alias": "^1.8.16", "tslib": "^2.8.1", - "typescript": "^5.9.2", - "vite": "^7.1.5", + "typescript": "^5.9.3", + "vite": "^7.2.7", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "peerDependencies": { "react": ">=18.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d1f3cfc..d71ccb97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,135 +39,135 @@ importers: .: devDependencies: '@biomejs/biome': - specifier: ^2.2.4 - version: 2.2.4 + specifier: ^2.3.8 + version: 2.3.8 husky: specifier: ^9.1.7 version: 9.1.7 lerna: - specifier: ^8.2.3 - version: 8.2.3(encoding@0.1.13) + specifier: ^9.0.3 + version: 9.0.3(@types/node@24.10.2) typescript: - specifier: ^5.9.2 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 packages/core: dependencies: '@commercelayer/js-auth': - specifier: ^6.7.2 - version: 6.7.2 + specifier: ^7.1.0 + version: 7.1.0 '@commercelayer/sdk': - specifier: 6.39.0 - version: 6.39.0 + specifier: 7.4.1 + version: 7.4.1 devDependencies: '@arethetypeswrong/cli': - specifier: ^0.17.4 - version: 0.17.4 + specifier: ^0.18.2 + version: 0.18.2 '@vitest/coverage-v8': - specifier: ^3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^4.0.15 + version: 4.0.15(vitest@4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0)) tsup: - specifier: ^8.4.0 - version: 8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0) + specifier: ^8.5.1 + version: 8.5.1(postcss@8.5.6)(typescript@5.9.3)(yaml@2.7.0) typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.3 + version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) vitest: - specifier: ^3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + specifier: ^4.0.15 + version: 4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0) packages/docs: devDependencies: '@babel/core': - specifier: ^7.26.9 - version: 7.26.10 + specifier: ^7.28.5 + version: 7.28.5 '@babel/preset-env': - specifier: ^7.26.9 - version: 7.26.9(@babel/core@7.26.10) + specifier: ^7.28.5 + version: 7.28.5(@babel/core@7.28.5) '@commercelayer/js-auth': - specifier: ^6.7.1 - version: 6.7.2 + specifier: ^7.1.0 + version: 7.1.0 '@commercelayer/sdk': - specifier: ^6.32.0 - version: 6.38.0 + specifier: ^7.4.1 + version: 7.4.1 '@mdx-js/react': - specifier: ^3.1.0 - version: 3.1.0(@types/react@18.3.18)(react@18.3.1) + specifier: ^3.1.1 + version: 3.1.1(@types/react@19.2.7)(react@19.2.1) '@storybook/addon-actions': - specifier: ^7.6.17 - version: 7.6.20 + specifier: ^9.0.8 + version: 9.0.8 '@storybook/addon-backgrounds': - specifier: ^7.6.17 - version: 7.6.20 + specifier: ^9.0.8 + version: 9.0.8 '@storybook/addon-docs': - specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^10.1.6 + version: 10.1.6(@types/react@19.2.7)(esbuild@0.27.0)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0)) '@storybook/addon-essentials': - specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^8.6.14 + version: 8.6.14(@types/react@19.2.7)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-interactions': - specifier: ^7.6.17 - version: 7.6.20 + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-links': - specifier: ^7.6.17 - version: 7.6.20(react@18.3.1) + specifier: ^10.1.6 + version: 10.1.6(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-mdx-gfm': - specifier: ^7.6.17 - version: 7.6.20 + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-measure': - specifier: ^7.6.17 - version: 7.6.20 + specifier: ^9.0.8 + version: 9.0.8 '@storybook/addon-outline': - specifier: ^7.6.17 - version: 7.6.20 + specifier: ^9.0.8 + version: 9.0.8 '@storybook/addons': specifier: ^7.6.17 - version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/api': specifier: ^7.6.17 - version: 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/blocks': - specifier: ^7.6.17 - version: 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^8.6.14 + version: 8.6.14(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/client-api': specifier: ^7.6.17 version: 7.6.17 '@storybook/client-logger': - specifier: ^7.6.17 - version: 7.6.20 + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/manager-api': - specifier: ^7.6.17 - version: 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/node-logger': - specifier: ^8.4.2 - version: 8.6.6(storybook@8.6.14(prettier@2.8.8)) + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/react': - specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) + specifier: ^10.1.6 + version: 10.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3) '@storybook/react-vite': - specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.49.0)(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) + specifier: ^10.1.6 + version: 10.1.6(esbuild@0.27.0)(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 '@storybook/theming': - specifier: ^7.6.17 - version: 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@types/js-cookie': specifier: ^3.0.6 version: 3.0.6 '@types/react': - specifier: ^18.3.3 - version: 18.3.18 + specifier: ^19.2.7 + version: 19.2.7 '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.3.4(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) + specifier: ^5.1.2 + version: 5.1.2(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) babel-loader: - specifier: ^9.2.1 - version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.1)) + specifier: ^10.0.0 + version: 10.0.0(@babel/core@7.28.5)(webpack@5.98.0(esbuild@0.27.0)) js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -175,156 +175,199 @@ importers: specifier: ^4.0.0 version: 4.0.0 msw: - specifier: ^2.7.0 - version: 2.7.3(@types/node@24.9.1)(typescript@5.8.3) + specifier: ^2.12.4 + version: 2.12.4(@types/node@24.10.2)(typescript@5.9.3) prop-types: specifier: ^15.8.1 version: 15.8.1 react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: ^19.2.1 + version: 19.2.1 react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.1 + version: 19.2.1(react@19.2.1) storybook: - specifier: ^8.0.0 - version: 8.6.14(prettier@2.8.8) + specifier: ^10.1.6 + version: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) type-fest: - specifier: ^4.35.0 - version: 4.37.0 + specifier: ^5.3.1 + version: 5.3.1 typescript: - specifier: ^5.7.3 - version: 5.8.3 + specifier: ^5.9.3 + version: 5.9.3 vite: - specifier: '>=6.4.1' - version: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) + specifier: ^7.2.7 + version: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) packages/document: dependencies: react: - specifier: ^19.1.0 - version: 19.1.0 + specifier: ^19.2.1 + version: 19.2.1 react-dom: - specifier: ^19.1.0 - version: 19.1.0(react@19.1.0) + specifier: ^19.2.1 + version: 19.2.1(react@19.2.1) devDependencies: '@chromatic-com/storybook': - specifier: ^3.2.6 - version: 3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + specifier: ^4.1.3 + version: 4.1.3(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@eslint/js': - specifier: ^9.24.0 - version: 9.24.0 + specifier: ^9.39.1 + version: 9.39.1 '@storybook/addon-docs': - specifier: ^8.6.12 - version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) + specifier: ^10.1.6 + version: 10.1.6(@types/react@19.2.7)(esbuild@0.27.0)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0)) '@storybook/addon-essentials': - specifier: ^8.6.12 - version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) + specifier: ^8.6.14 + version: 8.6.14(@types/react@19.2.7)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-interactions': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-links': - specifier: ^8.6.12 - version: 8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + specifier: ^10.1.6 + version: 10.1.6(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-mdx-gfm': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/addon-onboarding': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) + specifier: ^10.1.6 + version: 10.1.6(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/blocks': - specifier: ^8.6.12 - version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) + specifier: ^8.6.14 + version: 8.6.14(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/react': - specifier: ^8.6.12 - version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) + specifier: ^10.1.6 + version: 10.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3) '@storybook/react-vite': - specifier: ^8.6.12 - version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^10.1.6 + version: 10.1.6(esbuild@0.27.0)(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0)) '@storybook/test': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@storybook/theming': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) + specifier: ^8.6.14 + version: 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) '@types/react': - specifier: ^19.1.2 - version: 19.1.2 + specifier: ^19.2.7 + version: 19.2.7 '@types/react-dom': - specifier: ^19.1.2 - version: 19.1.2(@types/react@19.1.2) + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': - specifier: ^4.4.0 - version: 4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^5.1.2 + version: 5.1.2(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) eslint: - specifier: ^9.24.0 - version: 9.24.0 + specifier: ^9.39.1 + version: 9.39.1 eslint-plugin-react-hooks: - specifier: ^5.2.0 - version: 5.2.0(eslint@9.24.0) + specifier: ^7.0.1 + version: 7.0.1(eslint@9.39.1) eslint-plugin-react-refresh: - specifier: ^0.4.19 - version: 0.4.19(eslint@9.24.0) + specifier: ^0.4.24 + version: 0.4.24(eslint@9.39.1) eslint-plugin-storybook: - specifier: ^0.12.0 - version: 0.12.0(eslint@9.24.0)(typescript@5.8.3) + specifier: ^10.1.6 + version: 10.1.6(eslint@9.39.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3) globals: - specifier: ^16.0.0 - version: 16.0.0 + specifier: ^16.5.0 + version: 16.5.0 msw: - specifier: ^2.7.4 - version: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) + specifier: ^2.12.4 + version: 2.12.4(@types/node@24.10.2)(typescript@5.9.3) remark-gfm: specifier: ^4.0.1 version: 4.0.1 storybook: - specifier: ^8.6.12 - version: 8.6.12(prettier@2.8.8) + specifier: ^10.1.6 + version: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) typescript: - specifier: ~5.8.3 - version: 5.8.3 + specifier: ~5.9.3 + version: 5.9.3 typescript-eslint: - specifier: ^8.30.1 - version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.49.0 + version: 8.49.0(eslint@9.39.1)(typescript@5.9.3) vite: - specifier: ^6.3.1 - version: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + specifier: ^7.2.7 + version: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) + + packages/hooks: + dependencies: + '@commercelayer/core': + specifier: workspace:* + version: link:../core + devDependencies: + '@arethetypeswrong/cli': + specifier: ^0.18.2 + version: 0.18.2 + '@commercelayer/sdk': + specifier: ^7.4.1 + version: 7.4.1 + '@testing-library/react': + specifier: ^16.3.0 + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@types/react': + specifier: ^19.2.7 + version: 19.2.7 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.7) + '@vitest/coverage-v8': + specifier: ^4.0.15 + version: 4.0.15(vitest@4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0)) + react: + specifier: ^19.2.1 + version: 19.2.1 + react-dom: + specifier: ^19.2.1 + version: 19.2.1(react@19.2.1) + tsup: + specifier: ^8.5.1 + version: 8.5.1(postcss@8.5.6)(typescript@5.9.3)(yaml@2.7.0) + typescript: + specifier: ^5.9.3 + version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) + vitest: + specifier: ^4.0.15 + version: 4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0) packages/react-components: dependencies: '@adyen/adyen-web': - specifier: ^6.21.0 - version: 6.21.0 + specifier: ^6.26.0 + version: 6.26.0 '@commercelayer/organization-config': - specifier: ^2.4.0 - version: 2.4.0 + specifier: ^2.5.0 + version: 2.5.0 '@commercelayer/sdk': - specifier: ^6.46.0 - version: 6.46.0 + specifier: ^7.4.1 + version: 7.4.1 '@stripe/react-stripe-js': - specifier: ^4.0.2 - version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^5.4.1 + version: 5.4.1(@stripe/stripe-js@8.5.3)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@stripe/stripe-js': - specifier: ^7.9.0 - version: 7.9.0 + specifier: ^8.5.3 + version: 8.5.3 '@tanstack/react-table': specifier: ^8.21.3 - version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 8.21.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/iframe-resizer': specifier: ^4.0.0 version: 4.0.0 braintree-web: - specifier: ^3.129.0 - version: 3.129.0 + specifier: ^3.133.0 + version: 3.133.0 frames-react: specifier: ^1.2.3 - version: 1.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.49.0)(typescript@5.9.2) + version: 1.2.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(rollup@4.49.0)(typescript@5.9.3) iframe-resizer: specifier: ^4.3.6 version: 4.4.5 @@ -336,68 +379,68 @@ importers: version: 4.17.21 rapid-form: specifier: 3.1.0 - version: 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 3.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) devDependencies: '@commercelayer/js-auth': - specifier: ^6.7.2 - version: 6.7.2 + specifier: ^7.1.0 + version: 7.1.0 '@faker-js/faker': - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^10.1.0 + version: 10.1.0 '@playwright/test': - specifier: ^1.55.0 - version: 1.55.0 + specifier: ^1.57.0 + version: 1.57.0 '@testing-library/dom': specifier: ^10.4.1 version: 10.4.1 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.1)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/braintree-web': specifier: ^3.96.17 version: 3.96.17 '@types/lodash': - specifier: ^4.17.20 - version: 4.17.20 + specifier: ^4.17.21 + version: 4.17.21 '@types/node': - specifier: ^24.3.1 - version: 24.3.1 + specifier: ^24.10.2 + version: 24.10.2 '@types/prop-types': specifier: ^15.7.15 version: 15.7.15 '@types/react': - specifier: ^19.0.12 - version: 19.0.12 + specifier: ^19.2.7 + version: 19.2.7 '@types/react-test-renderer': - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^19.1.0 + version: 19.1.0 '@types/react-window': - specifier: ^1.8.8 - version: 1.8.8 + specifier: ^2.0.0 + version: 2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@vitejs/plugin-react': - specifier: ^5.0.2 - version: 5.0.2(vite@7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0)) + specifier: ^5.1.2 + version: 5.1.2(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) '@vitest/coverage-v8': - specifier: ^3.2.4 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.1)(jsdom@26.1.0)(msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2))(terser@5.44.0)(yaml@2.7.0)) + specifier: ^4.0.15 + version: 4.0.15(vitest@4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0)) jsdom: - specifier: ^26.1.0 - version: 26.1.0 + specifier: ^27.3.0 + version: 27.3.0(postcss@8.5.6) minimize-js: specifier: ^1.4.0 version: 1.4.0 msw: - specifier: ^2.11.1 - version: 2.11.1(@types/node@24.3.1)(typescript@5.9.2) + specifier: ^2.12.4 + version: 2.12.4(@types/node@24.10.2)(typescript@5.9.3) react: - specifier: ^19.0.0 - version: 19.0.0 + specifier: ^19.2.1 + version: 19.2.1 react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^19.2.1 + version: 19.2.1(react@19.2.1) react-test-renderer: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) + specifier: ^19.2.1 + version: 19.2.1(react@19.2.1) tsc-alias: specifier: ^1.8.16 version: 1.8.16 @@ -405,41 +448,49 @@ importers: specifier: ^2.8.1 version: 2.8.1 typescript: - specifier: ^5.9.2 - version: 5.9.2 + specifier: ^5.9.3 + version: 5.9.3 vite: - specifier: '>=7.1.11' - version: 7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0) + specifier: ^7.2.7 + version: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.2)(vite@7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) vitest: - specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.1)(jsdom@26.1.0)(msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2))(terser@5.44.0)(yaml@2.7.0) + specifier: ^4.0.15 + version: 4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0) packages: - '@adyen/adyen-web@6.21.0': - resolution: {integrity: sha512-9K3+xejKBGSsJV+BlEJwui5ipKmG5c+QYaUq2ufTBpbo3vDa1VHArSZQ8K+eSwMAFzBAYoV/I8Jln8a5vG4Y5A==} + '@acemir/cssom@0.9.28': + resolution: {integrity: sha512-LuS6IVEivI75vKN8S04qRD+YySP0RmU/cV8UNukhQZvprxF+76Z43TNo/a08eCodaGhT1Us8etqS1ZRY9/Or0A==} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + '@adobe/css-tools@4.4.4': + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} + + '@adyen/adyen-web@6.26.0': + resolution: {integrity: sha512-W2416a57KFecL4nHWpjoFgVrOzb97ImrFamc/FFpG6O+jOdB2KeFcQNYBTE90XL+zZsX6U4/BLXniUm+yLawUA==} '@andrewbranch/untar.js@1.0.3': resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} - '@arethetypeswrong/cli@0.17.4': - resolution: {integrity: sha512-AeiKxtf67XD/NdOqXgBOE5TZWH3EOCt+0GkbUpekOzngc+Q/cRZ5azjWyMxISxxfp0EItgm5NoSld9p7BAA5xQ==} - engines: {node: '>=18'} + '@arethetypeswrong/cli@0.18.2': + resolution: {integrity: sha512-PcFM20JNlevEDKBg4Re29Rtv2xvjvQZzg7ENnrWFSS0PHgdP2njibVFw+dRUhNkPgNfac9iUqO0ohAXqQL4hbw==} + engines: {node: '>=20'} hasBin: true - '@arethetypeswrong/core@0.17.4': - resolution: {integrity: sha512-Izvir8iIoU+X4SKtDAa5kpb+9cpifclzsbA8x/AZY0k0gIfXYQ1fa1B6Epfe6vNA2YfDX8VtrZFgvnXB6aPEoQ==} - engines: {node: '>=18'} + '@arethetypeswrong/core@0.18.2': + resolution: {integrity: sha512-GiwTmBFOU1/+UVNqqCGzFJYfBXEytUkiI+iRZ6Qx7KmUVtLm00sYySkfe203C9QtPG11yOz1ZaMek8dT/xnlgg==} + engines: {node: '>=20'} + + '@asamuzakjp/css-color@4.1.0': + resolution: {integrity: sha512-9xiBAtLn4aNsa4mDnpovJvBn72tNEIACyvlqaNJ+ADemR+yeMJWnBudOi2qGDviJa7SwcDOU/TRh5dnET7qk0w==} + + '@asamuzakjp/dom-selector@6.7.6': + resolution: {integrity: sha512-hBaJER6A9MpdG3WgdlOolHmbOYvSk46y7IQN/1+iqiCuUu6iWdQrs9DGKF8ocqsEqWujWf/V7b7vaDgiUmIvUg==} - '@asamuzakjp/css-color@3.1.1': - resolution: {integrity: sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==} + '@asamuzakjp/nwsapi@2.3.9': + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} @@ -449,44 +500,40 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.5': resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.10': - resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.3': - resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.10': - resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} '@babel/generator@7.28.3': resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.26.5': - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.27.2': resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.26.9': - resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} + '@babel/helper-create-class-features-plugin@7.28.5': + resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -497,8 +544,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.5': + resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -506,60 +559,42 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.28.3': resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.26.5': - resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': @@ -574,62 +609,58 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} + '@babel/helper-wrap-function@7.28.3': + resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.10': - resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.3': - resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.10': - resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} + '@babel/parser@7.28.3': + resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': + resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': + resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -640,14 +671,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} + '@babel/plugin-syntax-import-assertions@7.27.1': + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -658,236 +689,236 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.26.8': - resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==} + '@babel/plugin-transform-async-generator-functions@7.28.0': + resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} + '@babel/plugin-transform-async-to-generator@7.27.1': + resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.26.5': - resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} + '@babel/plugin-transform-block-scoping@7.28.5': + resolution: {integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} + '@babel/plugin-transform-class-properties@7.27.1': + resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} + '@babel/plugin-transform-class-static-block@7.28.3': + resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} + '@babel/plugin-transform-classes@7.28.4': + resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} + '@babel/plugin-transform-computed-properties@7.27.1': + resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} + '@babel/plugin-transform-dotall-regex@7.27.1': + resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} + '@babel/plugin-transform-explicit-resource-management@7.28.0': + resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + '@babel/plugin-transform-exponentiation-operator@7.28.5': + resolution: {integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.26.9': - resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + '@babel/plugin-transform-json-strings@7.27.1': + resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} + '@babel/plugin-transform-logical-assignment-operators@7.28.5': + resolution: {integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} + '@babel/plugin-transform-modules-systemjs@7.28.5': + resolution: {integrity: sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6': - resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': + resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + '@babel/plugin-transform-numeric-separator@7.27.1': + resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + '@babel/plugin-transform-object-rest-spread@7.28.4': + resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + '@babel/plugin-transform-optional-catch-binding@7.27.1': + resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + '@babel/plugin-transform-optional-chaining@7.28.5': + resolution: {integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + '@babel/plugin-transform-private-methods@7.27.1': + resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + '@babel/plugin-transform-private-property-in-object@7.27.1': + resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.25.9': - resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -898,92 +929,86 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.25.9': - resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.27.1': resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + '@babel/plugin-transform-regenerator@7.28.4': + resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + '@babel/plugin-transform-regexp-modifiers@7.27.1': + resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + '@babel/plugin-transform-spread@7.27.1': + resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.26.8': - resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.26.7': - resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==} + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + '@babel/plugin-transform-unicode-property-regex@7.27.1': + resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + '@babel/plugin-transform-unicode-sets-regex@7.27.1': + resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.26.9': - resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==} + '@babel/preset-env@7.28.5': + resolution: {integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -997,86 +1022,79 @@ packages: resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} engines: {node: '>=6.9.0'} - '@babel/template@7.26.9': - resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} - engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.10': - resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.3': resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.10': - resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} engines: {node: '>=6.9.0'} '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} - '@base2/pretty-print-object@1.0.1': - resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@biomejs/biome@2.2.4': - resolution: {integrity: sha512-TBHU5bUy/Ok6m8c0y3pZiuO/BZoY/OcGxoLlrfQof5s8ISVwbVBdFINPQZyFfKwil8XibYWb7JMwnT8wT4WVPg==} + '@biomejs/biome@2.3.8': + resolution: {integrity: sha512-Qjsgoe6FEBxWAUzwFGFrB+1+M8y/y5kwmg5CHac+GSVOdmOIqsAiXM5QMVGZJ1eCUCLlPZtq4aFAQ0eawEUuUA==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.2.4': - resolution: {integrity: sha512-RJe2uiyaloN4hne4d2+qVj3d3gFJFbmrr5PYtkkjei1O9c+BjGXgpUPVbi8Pl8syumhzJjFsSIYkcLt2VlVLMA==} + '@biomejs/cli-darwin-arm64@2.3.8': + resolution: {integrity: sha512-HM4Zg9CGQ3txTPflxD19n8MFPrmUAjaC7PQdLkugeeC0cQ+PiVrd7i09gaBS/11QKsTDBJhVg85CEIK9f50Qww==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.2.4': - resolution: {integrity: sha512-cFsdB4ePanVWfTnPVaUX+yr8qV8ifxjBKMkZwN7gKb20qXPxd/PmwqUH8mY5wnM9+U0QwM76CxFyBRJhC9tQwg==} + '@biomejs/cli-darwin-x64@2.3.8': + resolution: {integrity: sha512-lUDQ03D7y/qEao7RgdjWVGCu+BLYadhKTm40HkpJIi6kn8LSv5PAwRlew/DmwP4YZ9ke9XXoTIQDO1vAnbRZlA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.2.4': - resolution: {integrity: sha512-7TNPkMQEWfjvJDaZRSkDCPT/2r5ESFPKx+TEev+I2BXDGIjfCZk2+b88FOhnJNHtksbOZv8ZWnxrA5gyTYhSsQ==} + '@biomejs/cli-linux-arm64-musl@2.3.8': + resolution: {integrity: sha512-PShR4mM0sjksUMyxbyPNMxoKFPVF48fU8Qe8Sfx6w6F42verbwRLbz+QiKNiDPRJwUoMG1nPM50OBL3aOnTevA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@2.2.4': - resolution: {integrity: sha512-M/Iz48p4NAzMXOuH+tsn5BvG/Jb07KOMTdSVwJpicmhN309BeEyRyQX+n1XDF0JVSlu28+hiTQ2L4rZPvu7nMw==} + '@biomejs/cli-linux-arm64@2.3.8': + resolution: {integrity: sha512-Uo1OJnIkJgSgF+USx970fsM/drtPcQ39I+JO+Fjsaa9ZdCN1oysQmy6oAGbyESlouz+rzEckLTF6DS7cWse95g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@2.2.4': - resolution: {integrity: sha512-m41nFDS0ksXK2gwXL6W6yZTYPMH0LughqbsxInSKetoH6morVj43szqKx79Iudkp8WRT5SxSh7qVb8KCUiewGg==} + '@biomejs/cli-linux-x64-musl@2.3.8': + resolution: {integrity: sha512-YGLkqU91r1276uwSjiUD/xaVikdxgV1QpsicT0bIA1TaieM6E5ibMZeSyjQ/izBn4tKQthUSsVZacmoJfa3pDA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@2.2.4': - resolution: {integrity: sha512-orr3nnf2Dpb2ssl6aihQtvcKtLySLta4E2UcXdp7+RTa7mfJjBgIsbS0B9GC8gVu0hjOu021aU8b3/I1tn+pVQ==} + '@biomejs/cli-linux-x64@2.3.8': + resolution: {integrity: sha512-QDPMD5bQz6qOVb3kiBui0zKZXASLo0NIQ9JVJio5RveBEFgDgsvJFUvZIbMbUZT3T00M/1wdzwWXk4GIh0KaAw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@2.2.4': - resolution: {integrity: sha512-NXnfTeKHDFUWfxAefa57DiGmu9VyKi0cDqFpdI+1hJWQjGJhJutHPX0b5m+eXvTKOaf+brU+P0JrQAZMb5yYaQ==} + '@biomejs/cli-win32-arm64@2.3.8': + resolution: {integrity: sha512-H4IoCHvL1fXKDrTALeTKMiE7GGWFAraDwBYFquE/L/5r1927Te0mYIGseXi4F+lrrwhSWbSGt5qPFswNoBaCxg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.2.4': - resolution: {integrity: sha512-3Y4V4zVRarVh/B/eSHczR4LYoSVyv3Dfuvm3cWs5w/HScccS0+Wt/lHOcDTRYeHjQmMYVC3rIRWqyN2EI52+zg==} + '@biomejs/cli-win32-x64@2.3.8': + resolution: {integrity: sha512-RguzimPoZWtBapfKhKjcWXBVI91tiSprqdBYu7tWhgN8pKRZhw24rFeNZTNf6UiBfjCYCi9eFQs/JzJZIhuK4w==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -1093,8 +1111,8 @@ packages: '@braintree/browser-detection@1.17.2': resolution: {integrity: sha512-DdEX09uYs6kHwGt4cbONlxlta/0hfmrDUncP6EtfZxFVywNF9LeRUyon+2LihJTbqgSnGqz9ZL450hkqBd6oSw==} - '@braintree/browser-detection@2.0.2': - resolution: {integrity: sha512-Zrv/pyodvwv/hsjsBKXKVcwHZOkx4A/5Cy2hViXtqghAhLd3483bYUIfHZJE5JKTrd018ny1FI5pN1PHFtW7vw==} + '@braintree/browser-detection@2.1.0': + resolution: {integrity: sha512-TbWESQre3wXBC3uag8X8xdr0zfD+FuhgUiuRxp2nkJagHB+NgA40zDOI8McGKijYFG7HeeAzNHW1MhFdEE1Blg==} '@braintree/event-emitter@0.4.1': resolution: {integrity: sha512-X41357O3OXUDlnwMvS1m0GQEn3zB3s3flOBeg2J5OBvLvdJEIAVpPkblABPtsPrlciDSvfv1aSG5ixHPgFH0Zg==} @@ -1114,65 +1132,60 @@ packages: '@braintree/wrap-promise@2.1.0': resolution: {integrity: sha512-UIrJB+AfKU0CCfbMoWrsGpd2D/hBpY/SGgFI6WRHPOwhaZ3g9rz1weiJ6eb6L9KgVyunT7s2tckcPkbHw+NzeA==} - '@bundled-es-modules/cookie@2.0.1': - resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} - - '@bundled-es-modules/statuses@1.0.1': - resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + '@chromatic-com/storybook@4.1.3': + resolution: {integrity: sha512-hc0HO9GAV9pxqDE6fTVOV5KeLpTiCfV8Jrpk5ogKLiIgeq2C+NPjpt74YnrZTjiK8E19fYcMP+2WY9ZtX7zHmw==} + engines: {node: '>=20.0.0', yarn: '>=1.22.18'} + peerDependencies: + storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 - '@bundled-es-modules/tough-cookie@0.1.6': - resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} - '@commercelayer/js-auth@6.7.2': - resolution: {integrity: sha512-kk4VqN2iEOreXFq76YqTP83KhBs09Z5Ez9nZNlikXWf5DXzkrOfShqqEwq8ezHjSOlqs4xVyxgQzsEdPP35CeQ==} - engines: {node: '>=18.0.0'} + '@commercelayer/js-auth@7.1.0': + resolution: {integrity: sha512-YOzr3PjDIE0QyBiiAXz6ypgxODl8iWRNeWVRsEzRrQChuO5U1vNo25HRt4HI0AlYS6PoAcLCiMHz+9AGz7WZZQ==} + engines: {node: '>=20.0.0'} - '@commercelayer/organization-config@2.4.0': - resolution: {integrity: sha512-65r3YS3GssircqSyScQhKNXWm4iN5eegA7u/FUhD+5Ny+X1kq/CylzysQmZ+HR3UciMhDFIV0BvATaAZuJVPEw==} + '@commercelayer/organization-config@2.5.0': + resolution: {integrity: sha512-Qa3FvXpYyPQQhOnZG3Qn3TiOzwBVi23LcF6ByqyUZDidOdXzXNgSV7FNWnt8BOn5XkwSaZ12NXDmSwju2Nfkrg==} engines: {node: '>=18', pnpm: '>=7'} - '@commercelayer/sdk@6.38.0': - resolution: {integrity: sha512-fv6GrTFWkQJC4yb86Fix560+S/lKLegTEFpQNTsnNpE8JLkzF63B1dyCWpbGcOtsbCK37I/CXsQf6eof1R15qA==} - engines: {node: '>=20'} - - '@commercelayer/sdk@6.46.0': - resolution: {integrity: sha512-uc/n8MDuoAXASSAgAwBIXKUFCtMufUDhqwNXiFwMqu+/gAEc2jqOcH2dO+RERsWpPF2vEveCxsu+oj+IcWBTGw==} + '@commercelayer/sdk@7.4.1': + resolution: {integrity: sha512-T0/7YIg4KGt0hjXKd2HwDlcpyXSwfzc5w4NjYVnpNNS9ObcLbQFQVvlonyYqWxKlkkoV5PyyEtvhD5xxx95pfQ==} engines: {node: '>=20'} - '@commercelayer/sdk@6.36.0': - resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} - engines: {node: '>=20'} - - '@commercelayer/sdk@6.39.0': - resolution: {integrity: sha512-HzfXTAXvAe8UOd8E0SOokxjS9K/OVZJ+xX12nLxPS5OEPyAz5AnIzSfn9AVYiuii8QWAkVsjFfTq+4JouZzdEA==} - engines: {node: '>=20'} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} + engines: {node: '>=18'} - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-calc@2.1.2': - resolution: {integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==} + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.8': - resolution: {integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==} + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-parser-algorithms@3.0.4': - resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + '@csstools/css-syntax-patches-for-csstree@1.0.14': + resolution: {integrity: sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.3 + postcss: '>=8.4.31' - '@csstools/css-tokenizer@3.0.3': - resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} '@emnapi/core@1.3.1': @@ -1189,174 +1202,359 @@ packages: peerDependencies: react: '>=16.8.0' - '@esbuild/aix-ppc64@0.25.1': - resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.27.0': + resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.1': - resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.27.0': + resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.1': - resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.27.0': + resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.1': - resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.27.0': + resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.1': - resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.27.0': + resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.1': - resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.0': + resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.1': - resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.27.0': + resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.1': - resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.0': + resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.1': - resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.27.0': + resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.1': - resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.27.0': + resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.1': - resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.27.0': + resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.1': - resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + '@esbuild/linux-loong64@0.25.12': + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.27.0': + resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.1': - resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + '@esbuild/linux-mips64el@0.25.12': + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.27.0': + resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.1': - resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + '@esbuild/linux-ppc64@0.25.12': + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.27.0': + resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.1': - resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + '@esbuild/linux-riscv64@0.25.12': + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.0': + resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.1': - resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + '@esbuild/linux-s390x@0.25.12': + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.27.0': + resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.1': - resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + '@esbuild/linux-x64@0.25.12': + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.27.0': + resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.1': - resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + '@esbuild/netbsd-arm64@0.25.12': + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.27.0': + resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.1': - resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + '@esbuild/netbsd-x64@0.25.12': + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.0': + resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.1': - resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + '@esbuild/openbsd-arm64@0.25.12': + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.27.0': + resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.1': - resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + '@esbuild/openbsd-x64@0.25.12': + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.0': + resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.1': - resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + '@esbuild/openharmony-arm64@0.25.12': + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.27.0': + resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.12': + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.1': - resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + '@esbuild/sunos-x64@0.27.0': + resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.12': + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.27.0': + resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.1': - resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + '@esbuild/win32-ia32@0.25.12': + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.1': - resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + '@esbuild/win32-ia32@0.27.0': + resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.12': + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@faker-js/faker@10.0.0': - resolution: {integrity: sha512-UollFEUkVXutsaP+Vndjxar40Gs5JL2HeLcl8xO1QAjJgOdhc3OmBFWyEylS+RddWaaBiAzH+5/17PLQJwDiLw==} - engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'} + '@esbuild/win32-x64@0.27.0': + resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.1': + resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@faker-js/faker@10.1.0': + resolution: {integrity: sha512-C3mrr3b5dRVlKPJdfrAXS8+dq+rq8Qm5SNRazca0JKgw1HQERFmrVb0towvMmw5uu8hHKNiQasMaR/tydf3Zsg==} + engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -1382,6 +1580,28 @@ packages: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + + '@inquirer/checkbox@4.3.2': + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/confirm@5.1.8': resolution: {integrity: sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg==} engines: {node: '>=18'} @@ -1400,12 +1620,17 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.11': - resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/type@3.0.5': - resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==} + '@inquirer/editor@4.2.23': + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1413,39 +1638,146 @@ packages: '@types/node': optional: true - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/string-locale-compare@1.1.0': - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + '@inquirer/expand@4.0.23': + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} + '@inquirer/figures@1.0.11': + resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} + engines: {node: '>=18'} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@inquirer/input@4.3.1': + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@jest/types@27.5.1': - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@inquirer/number@3.0.23': + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.23': + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.11': + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.2.2': + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@inquirer/select@4.4.2': + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0': - resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@3.0.5': + resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/get-type@30.1.0': + resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1': + resolution: {integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==} peerDependencies: typescript: '>= 4.3.x' vite: '>=4.5.2' @@ -1456,68 +1788,45 @@ packages: '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.11': resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} - '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@juggle/resize-observer@3.4.0': - resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - - '@lerna/create@8.2.3': - resolution: {integrity: sha512-f+68+iojcQ0tZRMfCgQyJdsdz+YPu3/d+0Zo1RJz92bgBxTCiEU+dHACVq1n3sEjm/YWPnFGdag8U5EYYmP3WA==} - engines: {node: '>=18.0.0'} + '@lerna/create@9.0.3': + resolution: {integrity: sha512-hUTEWrR8zH+/Z3bp/R1aLm6DW8vB/BB7KH7Yeg4fMfrvSwxegiLVW9uJFAzWkK4mzEagmj/Dti85Yg9MN13t0g==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@loaderkit/resolve@1.0.4': resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} - '@mdx-js/react@2.3.0': - resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} - peerDependencies: - react: '>=16' - - '@mdx-js/react@3.1.0': - resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} + '@mdx-js/react@3.1.1': + resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} peerDependencies: '@types/react': '>=16' react: '>=16' - '@mswjs/interceptors@0.37.3': - resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} - engines: {node: '>=18'} - - '@mswjs/interceptors@0.39.2': - resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} + '@mswjs/interceptors@0.40.0': + resolution: {integrity: sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + '@neoconfetti/react@1.0.0': + resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1530,126 +1839,145 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/agent@2.2.2': - resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/agent@3.0.0': + resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==} + engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/arborist@7.5.4': - resolution: {integrity: sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/agent@4.0.0': + resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/arborist@9.1.6': + resolution: {integrity: sha512-c5Pr3EG8UP5ollkJy2x+UdEQC5sEHe3H9whYn6hb2HJimAKS4zmoJkx5acCiR/g4P38RnCSMlsYQyyHnKYeLvQ==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true - '@npmcli/fs@3.1.1': - resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/fs@4.0.0': + resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} + engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/git@5.0.8': - resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/fs@5.0.0': + resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} + engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/installed-package-contents@2.1.0': - resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/git@6.0.3': + resolution: {integrity: sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/git@7.0.1': + resolution: {integrity: sha512-+XTFxK2jJF/EJJ5SoAzXk3qwIDfvFc5/g+bD274LZ7uY7LE8sTfG6Z8rOanPl2ZEvZWqNvmEdtXC25cE54VcoA==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/installed-package-contents@3.0.0': + resolution: {integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==} + engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - '@npmcli/map-workspaces@3.0.6': - resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/installed-package-contents@4.0.0': + resolution: {integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true - '@npmcli/metavuln-calculator@7.1.1': - resolution: {integrity: sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/map-workspaces@5.0.3': + resolution: {integrity: sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==} + engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/name-from-folder@2.0.0': - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/metavuln-calculator@9.0.3': + resolution: {integrity: sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==} + engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/node-gyp@3.0.0': - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/name-from-folder@3.0.0': + resolution: {integrity: sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==} + engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/package-json@5.2.0': - resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/name-from-folder@4.0.0': + resolution: {integrity: sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==} + engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/promise-spawn@7.0.2': - resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/node-gyp@4.0.0': + resolution: {integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==} + engines: {node: ^18.17.0 || >=20.5.0} - '@npmcli/query@3.1.0': - resolution: {integrity: sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/node-gyp@5.0.0': + resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} + engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/redact@2.0.1': - resolution: {integrity: sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/package-json@7.0.2': + resolution: {integrity: sha512-0ylN3U5htO1SJTmy2YI78PZZjLkKUGg7EKgukb2CRi0kzyoDr0cfjHAzi7kozVhj2V3SxN1oyKqZ2NSo40z00g==} + engines: {node: ^20.17.0 || >=22.9.0} - '@npmcli/run-script@8.1.0': - resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==} - engines: {node: ^16.14.0 || >=18.0.0} + '@npmcli/promise-spawn@8.0.3': + resolution: {integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/promise-spawn@9.0.1': + resolution: {integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==} + engines: {node: ^20.17.0 || >=22.9.0} - '@nx/devkit@20.6.0': - resolution: {integrity: sha512-w2GkzXSE3OFnQrE0jTmc4Uf2P92kmiHAmNCtppyJ97M2nEBodecf8p3Ghp6jZj0TjGqeJQv7hKOB/HzAnRl+KQ==} + '@npmcli/query@4.0.1': + resolution: {integrity: sha512-4OIPFb4weUUwkDXJf4Hh1inAn8neBGq3xsH4ZsAaN6FK3ldrFkH7jSpCc7N9xesi0Sp+EBXJ9eGMDrEww2Ztqw==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/redact@3.2.2': + resolution: {integrity: sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/run-script@10.0.2': + resolution: {integrity: sha512-9lCTqxaoa9c9cdkzSSx+q/qaYrCrUPEwTWzLkVYg1/T8ESH3BG9vmb1zRc6ODsBVB0+gnGRSqSr01pxTS1yX3A==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@nx/devkit@22.2.0': + resolution: {integrity: sha512-7Rark2NbfEP8eMOAAK/5QPz29tV0vOPIV5oSDqmDJVCzQEeZXntNvjO1e6Qqgy4DnXPR7sajk3rS7Kfhy9pqpA==} peerDependencies: - nx: '>= 19 <= 21' + nx: '>= 21 <= 23 || ^22.0.0-0' - '@nx/nx-darwin-arm64@20.6.0': - resolution: {integrity: sha512-qJcXeZvMpYVxTA35wZ24+MR2PO+0wd4sEB4fuS4pNFo/TqOlwKgK2LUFk+sU1xZjdcUkk9Cf3w4o0ySg5tgJcQ==} - engines: {node: '>= 10'} + '@nx/nx-darwin-arm64@22.2.0': + resolution: {integrity: sha512-X50NmpoPdMgM37HfYFAySzzLpmR+OiLX0cxnmrAKID6hs1hVtTiPF5zvZ01W+9hU/G0kPfeEChHArUUIUC+jAg==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@20.6.0': - resolution: {integrity: sha512-JDh/glX95yyMdEsf81KkhuM56FbHC56ZC4VC5x2b6biEMyWEP4G18eUZPhrAkpTDHsiKmwefOiJfXzscR8y74g==} - engines: {node: '>= 10'} + '@nx/nx-darwin-x64@22.2.0': + resolution: {integrity: sha512-w85LW+hXKmKAlI4o9DmusMLV+wK+w7eKS/it5ObaU3Cel1faZRJBzXT08d7DZNI7frGivVSc6ISC1JZ+BYodnA==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@20.6.0': - resolution: {integrity: sha512-KQNNEk6bNAfbW3vYdzBKrOKPrX3wFaME5LQfE0Be0c4GrGo8zO3yxHGEDZeM2W7muR+xRx8j9P3NUOAR9h7RpQ==} - engines: {node: '>= 10'} + '@nx/nx-freebsd-x64@22.2.0': + resolution: {integrity: sha512-dtgdg6f0BLXdYd4BBGyPZ9yU7XYbPPrq0xxRjqXW7pWKXAL6palaouWPo1xsHfcopMhJYFpDJpuihZZMpPHgAw==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@20.6.0': - resolution: {integrity: sha512-a/FsFaNLa+dXwSxkg7K88m3VJ6fK16oCLqMX6QNSuTcXsdcSWYPoMkjsuiYXPOjLQjozukOWMjDswUeuMqrehA==} - engines: {node: '>= 10'} + '@nx/nx-linux-arm-gnueabihf@22.2.0': + resolution: {integrity: sha512-5Y7qNEf8NYKlWK5F9V6Ib1eqDfJnUP+ZsQdPjp4rM4lwfpy+MIoLpPh0V3hkr+1jzMISR9ZV6Uh/M4I/frNORg==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@20.6.0': - resolution: {integrity: sha512-M3vVf9eLQPYog0/I+TZT5IMjOp1wtkQXPJzZbnqMIerTMLlHSRYkuwox2Qc8C1EmvMm100MDZU440/doOK7Jig==} - engines: {node: '>= 10'} + '@nx/nx-linux-arm64-gnu@22.2.0': + resolution: {integrity: sha512-vmu+nzv2Kjr6h/9mJix4kYM97WaMwfTEm0osaSHzYyA/DyKtrCuCLxRalXJvH4GuS8ZhDVdGKq2g0c2SE3sxMA==} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@20.6.0': - resolution: {integrity: sha512-GGce7WhJp6LSclwCK2fGgztD+hKslqDA01SCUPrXOiJ8UGp1goUDXvMZoDxeldcxt3ptIeazb5VW3hTE9WSXYA==} - engines: {node: '>= 10'} + '@nx/nx-linux-arm64-musl@22.2.0': + resolution: {integrity: sha512-kX47bMhmHWXOUQWYP3VlwnhEb9zqFq9KfI1qVSLjkgLbozKACE8f12DXLXw7cyc+iXl0fU+RjpELSAxAKY2gVA==} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@20.6.0': - resolution: {integrity: sha512-9bpu3xPCCnwn++Wdpnh5BTDjqCNs/C7dSBWMUM5GMyRcnZUVjwAboevmLGXEOqL5kW6MvXgRqiYgv6vSjNHsrw==} - engines: {node: '>= 10'} + '@nx/nx-linux-x64-gnu@22.2.0': + resolution: {integrity: sha512-cUsb+puiSYLFlbZwzX9FiNV5xYlm/9vEFcFWXOci2zCcJODr3/dPFTkgjwwJXWyNkkSCe+nptTjT6TTUlguTzw==} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@20.6.0': - resolution: {integrity: sha512-oWuEJyQeJvGGvmjYRMLkX8nazYuDytNn6gORCQCNpI6h4svQ8SgPLfgmAHFXmqjsIULTE5RuGc0X06lT+fDATw==} - engines: {node: '>= 10'} + '@nx/nx-linux-x64-musl@22.2.0': + resolution: {integrity: sha512-4HBAnRo1mKZEGoe8KczyLPigytMNjB9B5IMGJKGqkfaFUtcQjc0+weT1IxKGL9NYMKUU9L3RRf0IUd9vrjcRpQ==} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@20.6.0': - resolution: {integrity: sha512-MgYRBYDbdyLAA+/cF5dao9kvk2zvwS6i8PMZA1Jj9ltVwPOz30Qj5gx0PmwsOlAV784aG4OX26Wa/XlXwZqjXg==} - engines: {node: '>= 10'} + '@nx/nx-win32-arm64-msvc@22.2.0': + resolution: {integrity: sha512-6UwsKD9uL3Iwj/D0RSrq2ByHAASnNg8ao4SxikJBXh1+lDPiY/7QxNZP8hzQHOJBh+bL11I/48QzA+j5pMevCw==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@20.6.0': - resolution: {integrity: sha512-xfCaefdf1dHQxqN8OLfiA8Cq9b8F1HqVnpWYVB6zoD/TCsmRhV8KLbUlnv2n4AK+ZYu7H1AgAFF9lC4vDeeoTQ==} - engines: {node: '>= 10'} + '@nx/nx-win32-x64-msvc@22.2.0': + resolution: {integrity: sha512-YXrpMtnVkw0PmoP++6ixPtmx2/Iu+SXoT3p2Hj7PgzYnSe6VQzI/mCN/X7QeOjq8VpC6/KIty+Rg9I9lsb9Hdw==} cpu: [x64] os: [win32] @@ -1717,429 +2045,20 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - '@paypal/accelerated-checkout-loader@1.1.0': - resolution: {integrity: sha512-S2KkIpq15VnxYyI0tycvfYiNsqdsg2a92El2huYUVLsWnBbubl8toYK8khaP5nnxZ0MGl9mEB9Y9axmfOw2Yvg==} + '@paypal/accelerated-checkout-loader@1.2.1': + resolution: {integrity: sha512-tO7CbodhsG8YRMTQTu2TW3wSTXbMWBigI/xvnrgXt20Ror8j6WdEbhavseFv4U4MYC2UYItehGtmpHSfyxY58Q==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.55.0': - resolution: {integrity: sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==} + '@playwright/test@1.57.0': + resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==} engines: {node: '>=18'} hasBin: true - '@radix-ui/number@1.0.1': - resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} - - '@radix-ui/primitive@1.0.1': - resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} - - '@radix-ui/primitive@1.1.1': - resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} - - '@radix-ui/react-arrow@1.0.3': - resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-collection@1.0.3': - resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-collection@1.1.1': - resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==} - 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 - - '@radix-ui/react-compose-refs@1.0.1': - resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-compose-refs@1.1.1': - resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-context@1.0.1': - resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-direction@1.0.1': - resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-direction@1.1.0': - resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-dismissable-layer@1.0.4': - resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-focus-guards@1.0.1': - resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-focus-scope@1.0.3': - resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-id@1.0.1': - resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-popper@1.1.2': - resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-portal@1.0.3': - resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@1.0.3': - resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.0.1': - resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} - 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 - - '@radix-ui/react-roving-focus@1.1.1': - resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==} - 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 - - '@radix-ui/react-select@1.2.2': - resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-separator@1.1.1': - resolution: {integrity: sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==} - 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 - - '@radix-ui/react-slot@1.0.2': - resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-slot@1.1.1': - resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-toggle-group@1.1.1': - resolution: {integrity: sha512-OgDLZEA30Ylyz8YSXvnGqIHtERqnUt1KUYTKdw/y8u7Ci6zGiJfXc02jahmcSNK3YcErqioj/9flWC9S1ihfwg==} - 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 - - '@radix-ui/react-toggle@1.1.1': - resolution: {integrity: sha512-i77tcgObYr743IonC1hrsnnPmszDRn8p+EGUsUt+5a/JFn28fxaM88Py6V2mc8J5kELMWishI0rLnuGLFD/nnQ==} - 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 - - '@radix-ui/react-toolbar@1.1.1': - resolution: {integrity: sha512-r7T80WOCHc2n3KRzFCbHWGVzkfVTCzDofGU4gqa5ZuIzgnVaLogGsdyifFJXWQDp0lAr5hrf+X9uqQdE0pa6Ww==} - 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 - - '@radix-ui/react-use-callback-ref@1.0.1': - resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.0.1': - resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-escape-keydown@1.0.3': - resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.0.1': - resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-previous@1.0.1': - resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-rect@1.0.1': - resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-size@1.0.1': - resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-visually-hidden@1.0.3': - resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/rect@1.0.1': - resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} - - '@rolldown/pluginutils@1.0.0-beta.34': - resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==} + '@rolldown/pluginutils@1.0.0-beta.53': + resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -2254,160 +2173,130 @@ packages: cpu: [x64] os: [win32] - '@sigstore/bundle@2.3.2': - resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} - engines: {node: ^16.14.0 || >=18.0.0} + '@sigstore/bundle@4.0.0': + resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} + engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/core@1.1.0': - resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} - engines: {node: ^16.14.0 || >=18.0.0} + '@sigstore/core@3.0.0': + resolution: {integrity: sha512-NgbJ+aW9gQl/25+GIEGYcCyi8M+ng2/5X04BMuIgoDfgvp18vDcoNHOQjQsG9418HGNYRxG3vfEXaR1ayD37gg==} + engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/protobuf-specs@0.3.3': - resolution: {integrity: sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==} + '@sigstore/protobuf-specs@0.5.0': + resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} engines: {node: ^18.17.0 || >=20.5.0} - '@sigstore/sign@2.3.2': - resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==} - engines: {node: ^16.14.0 || >=18.0.0} + '@sigstore/sign@4.0.1': + resolution: {integrity: sha512-KFNGy01gx9Y3IBPG/CergxR9RZpN43N+lt3EozEfeoyqm8vEiLxwRl3ZO5sPx3Obv1ix/p7FWOlPc2Jgwfp9PA==} + engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/tuf@2.3.4': - resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==} - engines: {node: ^16.14.0 || >=18.0.0} + '@sigstore/tuf@4.0.0': + resolution: {integrity: sha512-0QFuWDHOQmz7t66gfpfNO6aEjoFrdhkJaej/AOqb4kqWZVbPWFZifXZzkxyQBB1OwTbkhdT3LNpMFxwkTvf+2w==} + engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/verify@1.2.1': - resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==} - engines: {node: ^16.14.0 || >=18.0.0} + '@sigstore/verify@3.0.0': + resolution: {integrity: sha512-moXtHH33AobOhTZF8xcX1MpOFqdvfCk7v6+teJL8zymBiDXwEsQH6XG9HGx2VIxnJZNm4cNSzflTLDnQLmIdmw==} + engines: {node: ^20.17.0 || >=22.9.0} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.34.41': + resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - '@storybook/addon-actions@7.6.20': - resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} - '@storybook/addon-actions@8.6.12': - resolution: {integrity: sha512-B5kfiRvi35oJ0NIo53CGH66H471A3XTzrfaa6SxXEJsgxxSeKScG5YeXcCvLiZfvANRQ7QDsmzPUgg0o3hdMXw==} + '@storybook/addon-actions@8.6.14': + resolution: {integrity: sha512-mDQxylxGGCQSK7tJPkD144J8jWh9IU9ziJMHfB84PKpI/V5ZgqMDnpr2bssTrUaGDqU5e1/z8KcRF+Melhs9pQ==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 - '@storybook/addon-backgrounds@7.6.20': - resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} + '@storybook/addon-actions@9.0.8': + resolution: {integrity: sha512-LFePu7PPnWN0Il/uoUpmA5T0J0C7d6haJIbg0pXrjxW2MQVSYXE4S4LSUz8fOImltBDV3xAl6tLPYHFj6VcrOA==} - '@storybook/addon-backgrounds@8.6.12': - resolution: {integrity: sha512-lmIAma9BiiCTbJ8YfdZkXjpnAIrOUcgboLkt1f6XJ78vNEMnLNzD9gnh7Tssz1qrqvm34v9daDjIb+ggdiKp3Q==} + '@storybook/addon-backgrounds@8.6.14': + resolution: {integrity: sha512-l9xS8qWe5n4tvMwth09QxH2PmJbCctEvBAc1tjjRasAfrd69f7/uFK4WhwJAstzBTNgTc8VXI4w8ZR97i1sFbg==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 - '@storybook/addon-controls@7.6.20': - resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} + '@storybook/addon-backgrounds@9.0.8': + resolution: {integrity: sha512-4Vvr4wYHtiZ8UVWdCahK0XEMU4zNgInnNcVQ31YkUg41MVSY+aoZqtNuxOuRbFzUtjL9/aVsbY0Sg9Lp1/EJ4g==} - '@storybook/addon-controls@8.6.12': - resolution: {integrity: sha512-9VSRPJWQVb9wLp21uvpxDGNctYptyUX0gbvxIWOHMH3R2DslSoq41lsC/oQ4l4zSHVdL+nq8sCTkhBxIsjKqdQ==} + '@storybook/addon-controls@8.6.14': + resolution: {integrity: sha512-IiQpkNJdiRyA4Mq9mzjZlvQugL/aE7hNgVxBBGPiIZG6wb6Ht9hNnBYpap5ZXXFKV9p2qVI0FZK445ONmAa+Cw==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 - '@storybook/addon-docs@7.6.20': - resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} + '@storybook/addon-docs@10.1.6': + resolution: {integrity: sha512-+/hTCxh+qTgAmUKkGGwD3oQ+VKj9Li8TTU0jQl8tcUxX1490fo0q2Eov8dOnfV66cxHxd3RgKaB4KHOaHoj0jQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + storybook: ^10.1.6 - '@storybook/addon-docs@8.6.12': - resolution: {integrity: sha512-kEezQjAf/p3SpDzLABgg4fbT48B6dkT2LiZCKTRmCrJVtuReaAr4R9MMM6Jsph6XjbIj/SvOWf3CMeOPXOs9sg==} + '@storybook/addon-docs@8.6.14': + resolution: {integrity: sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 - '@storybook/addon-essentials@7.6.20': - resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} + '@storybook/addon-essentials@8.6.14': + resolution: {integrity: sha512-5ZZSHNaW9mXMOFkoPyc3QkoNGdJHETZydI62/OASR0lmPlJ1065TNigEo5dJddmZNn0/3bkE8eKMAzLnO5eIdA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + storybook: ^8.6.14 - '@storybook/addon-essentials@8.6.12': - resolution: {integrity: sha512-Y/7e8KFlttaNfv7q2zoHMPdX6hPXHdsuQMAjYl5NG9HOAJREu4XBy4KZpbcozRe4ApZ78rYsN/MO1EuA+bNMIA==} + '@storybook/addon-highlight@8.6.14': + resolution: {integrity: sha512-4H19OJlapkofiE9tM6K/vsepf4ir9jMm9T+zw5L85blJZxhKZIbJ6FO0TCG9PDc4iPt3L6+aq5B0X29s9zicNQ==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 - '@storybook/addon-highlight@7.6.20': - resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} - - '@storybook/addon-highlight@8.6.12': - resolution: {integrity: sha512-9FITVxdoycZ+eXuAZL9ElWyML/0fPPn9UgnnAkrU7zkMi+Segq/Tx7y+WWanC5zfWZrXAuG6WTOYEXeWQdm//w==} + '@storybook/addon-interactions@8.6.14': + resolution: {integrity: sha512-8VmElhm2XOjh22l/dO4UmXxNOolGhNiSpBcls2pqWSraVh4a670EyYBZsHpkXqfNHo2YgKyZN3C91+9zfH79qQ==} peerDependencies: - storybook: ^8.6.12 - - '@storybook/addon-interactions@7.6.20': - resolution: {integrity: sha512-uH+OIxLtvfnnmdN3Uf8MwzfEFYtaqSA6Hir6QNPc643se0RymM8mULN0rzRyvspwd6OagWdtOxsws3aHk02KTA==} + storybook: ^8.6.14 - '@storybook/addon-interactions@8.6.12': - resolution: {integrity: sha512-cTAJlTq6uVZBEbtwdXkXoPQ4jHOAGKQnYSezBT4pfNkdjn/FnEeaQhMBDzf14h2wr5OgBnJa6Lmd8LD9ficz4A==} + '@storybook/addon-links@10.1.6': + resolution: {integrity: sha512-koOvo7ny1TCVkZ9WCJ3PoOwWOv+mK5UOcWzAuiYf2LBAvMyOObX89dNdjvu+R77J4mRxY45XHJF0tgAzGKeHNQ==} peerDependencies: - storybook: ^8.6.12 - - '@storybook/addon-links@7.6.20': - resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.1.6 peerDependenciesMeta: react: optional: true - '@storybook/addon-links@8.6.12': - resolution: {integrity: sha512-AfKujFHoAxhxq4yu+6NwylltS9lf5MPs1eLLXvOlwo3l7Y/c68OdxJ7j68vLQhs9H173WVYjKyjbjFxJWf/YYg==} + '@storybook/addon-mdx-gfm@8.6.14': + resolution: {integrity: sha512-ClfngOSwFrhc3x2dXSzfBSSbzz4VHzUs0XOg9V8fj1bgQhmPoMz9OD3vIjbnJOC33wORbC0ZpfcQPt3RGILYrA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 - peerDependenciesMeta: - react: - optional: true - - '@storybook/addon-mdx-gfm@7.6.20': - resolution: {integrity: sha512-htfiooRdIYIjdKpxFjJAT+b90iatraI7yfmgF8VmpGTPqjyjGDZccUFCaE7op9S2smLZi4zYYGd+fqA5NtykkQ==} + storybook: ^8.6.14 - '@storybook/addon-mdx-gfm@8.6.12': - resolution: {integrity: sha512-OKI5+O8xyK8axGPFwkl38NGJ6Rjf7kyhiBPxw5NuHOjOnU/FL4Pw3QmY47TT96TVws27vP3gF5+FX8lj3Dd3rQ==} + '@storybook/addon-measure@8.6.14': + resolution: {integrity: sha512-1Tlyb72NX8aAqm6I6OICsUuGOP6hgnXcuFlXucyhKomPa6j3Eu2vKu561t/f0oGtAK2nO93Z70kVaEh5X+vaGw==} peerDependencies: - storybook: ^8.6.12 - - '@storybook/addon-measure@7.6.20': - resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} + storybook: ^8.6.14 - '@storybook/addon-measure@8.6.12': - resolution: {integrity: sha512-tACmwqqOvutaQSduw8SMb62wICaT1rWaHtMN3vtWXuxgDPSdJQxLP+wdVyRYMAgpxhLyIO7YRf++Hfha9RHgFg==} - peerDependencies: - storybook: ^8.6.12 + '@storybook/addon-measure@9.0.8': + resolution: {integrity: sha512-+DAsl7o8Hh4cw+U29c1+IqeLJWVu3swy/wgGhZBpIyhfz22b55cTlquEjwXRV26KBkuQBZih8XhZPU689rc7Rg==} - '@storybook/addon-onboarding@8.6.12': - resolution: {integrity: sha512-/cgxaLy6tr6xO0+QO+qV5rPZS5/c15Daywvg/F03lifLGkMuyn/JDuhu0J5i1LbFsL1RYdf4sjrTOmLXbOT6+Q==} + '@storybook/addon-onboarding@10.1.6': + resolution: {integrity: sha512-E4iuMK9Lm6ipcJ7y/+RQkQGeDR3QevjihtZMQWGK7yngltiJ1z9QdBl9Bcxl/QPGlQhfXLC/JSh98hQoOALOlQ==} peerDependencies: - storybook: ^8.6.12 - - '@storybook/addon-outline@7.6.20': - resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} + storybook: ^10.1.6 - '@storybook/addon-outline@8.6.12': - resolution: {integrity: sha512-1ylwm+n1s40S91No0v9T4tCjZORu3GbnjINlyjYTDLLhQHyBQd3nWR1Y1eewU4xH4cW9SnSLcMQFS/82xHqU6A==} + '@storybook/addon-outline@8.6.14': + resolution: {integrity: sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 - '@storybook/addon-toolbars@7.6.20': - resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} + '@storybook/addon-outline@9.0.8': + resolution: {integrity: sha512-lHrm8xraDjy77zH07OsFmb7wshdwVZXw7RTub+MPo4Gql2vRxr/0cjEj9EUkeaxEyP2oQclgWBmYZvAM25vQtw==} - '@storybook/addon-toolbars@8.6.12': - resolution: {integrity: sha512-HEcSzo1DyFtIu5/ikVOmh5h85C1IvK9iFKSzBR6ice33zBOaehVJK+Z5f487MOXxPsZ63uvWUytwPyViGInj+g==} + '@storybook/addon-toolbars@8.6.14': + resolution: {integrity: sha512-W/wEXT8h3VyZTVfWK/84BAcjAxTdtRiAkT2KAN0nbSHxxB5KEM1MjKpKu2upyzzMa3EywITqbfy4dP6lpkVTwQ==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 - '@storybook/addon-viewport@7.6.20': - resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} - - '@storybook/addon-viewport@8.6.12': - resolution: {integrity: sha512-EXK2LArAnABsPP0leJKy78L/lbMWow+EIJfytEP5fHaW4EhMR6h7Hzaqzre6U0IMMr/jVFa1ci+m0PJ0eQc2bw==} + '@storybook/addon-viewport@8.6.14': + resolution: {integrity: sha512-gNzVQbMqRC+/4uQTPI2ZrWuRHGquTMZpdgB9DrD88VTEjNudP+J6r8myLfr2VvGksBbUMHkGHMXHuIhrBEnXYA==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 '@storybook/addons@7.6.17': resolution: {integrity: sha512-Ok18Y698Ccyg++MoUNJNHY0cXUvo8ETFIRLJk1g9ElJ70j6kPgNnzW2pAtZkBNmswHtofZ7pT156cj96k/LgfA==} @@ -2415,104 +2304,67 @@ packages: '@storybook/api@7.6.17': resolution: {integrity: sha512-l92PI+5XL4zB/o4IBWFCKQWTXvPg9hR45DCJqlPHrLZStiR6Xj1mbrtOjUlgIOH+nYb/SZFZqO53hhrs7X4Nvg==} - '@storybook/blocks@7.6.20': - resolution: {integrity: sha512-xADKGEOJWkG0UD5jbY4mBXRlmj2C+CIupDL0/hpzvLvwobxBMFPKZIkcZIMvGvVnI/Ui+tJxQxLSuJ5QsPthUw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/builder-vite@7.6.20': - resolution: {integrity: sha512-q3vf8heE7EaVYTWlm768ewaJ9lh6v/KfoPPeHxXxzSstg4ByP9kg4E1mrfAo/l6broE9E9zo3/Q4gsM/G/rw8Q==} + '@storybook/blocks@8.6.14': + resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} peerDependencies: - '@preact/preset-vite': '*' - typescript: '>= 4.3.x' - vite: '>=4.5.2' - vite-plugin-glimmerx: '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.6.14 peerDependenciesMeta: - '@preact/preset-vite': - optional: true - typescript: + react: optional: true - vite-plugin-glimmerx: + react-dom: optional: true - '@storybook/builder-vite@8.6.12': - resolution: {integrity: sha512-Gju21ud/3Qw4v2vLNaa5SuJECsI9ICNRr2G0UyCCzRvCHg8jpA9lDReu2NqhLDyFIuDG+ZYT38gcaHEUoNQ8KQ==} + '@storybook/builder-vite@10.1.6': + resolution: {integrity: sha512-dXfpSFmg8thg3uVCbZMPR36W36Ktd1MBW6Rl3rQOzDWaV2v0Qbp3s0QOgI8VIJ22L+JGN1TlSgsU2FMzH5xDKw==} peerDependencies: - storybook: ^8.6.12 - vite: '>=4.5.2' + storybook: ^10.1.6 + vite: '>=5.1.7' '@storybook/channels@7.6.17': resolution: {integrity: sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==} - '@storybook/channels@7.6.20': - resolution: {integrity: sha512-4hkgPSH6bJclB2OvLnkZOGZW1WptJs09mhQ6j6qLjgBZzL/ZdD6priWSd7iXrmPiN5TzUobkG4P4Dp7FjkiO7A==} - '@storybook/client-api@7.6.17': resolution: {integrity: sha512-rsxKBRLtUmBXbxG79Pf1GzUuMDMsFdhNR/a5k7kIA/mlEsvWD8are/aH/zk1oLr7+5QOqEkiXLL6+Erry7dzXA==} '@storybook/client-logger@7.6.17': resolution: {integrity: sha512-6WBYqixAXNAXlSaBWwgljWpAu10tPRBJrcFvx2gPUne58EeMM20Gi/iHYBz2kMCY+JLAgeIH7ZxInqwO8vDwiQ==} - '@storybook/client-logger@7.6.20': - resolution: {integrity: sha512-NwG0VIJQCmKrSaN5GBDFyQgTAHLNishUPLW1NrzqTDNAhfZUoef64rPQlinbopa0H4OXmlB+QxbQIb3ubeXmSQ==} - - '@storybook/components@7.6.20': - resolution: {integrity: sha512-0d8u4m558R+W5V+rseF/+e9JnMciADLXTpsILrG+TBhwECk0MctIWW18bkqkujdCm8kDZr5U2iM/5kS1Noy7Ug==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/components@8.6.12': - resolution: {integrity: sha512-FiaE8xvCdvKC2arYusgtlDNZ77b8ysr8njAYQZwwaIHjy27TbR2tEpLDCmUwSbANNmivtc/xGEiDDwcNppMWlQ==} + '@storybook/client-logger@8.6.14': + resolution: {integrity: sha512-DqB54TiXr58nCS2QO2YxxY14uc0yGEhgTgtw1eIGFEC1RKxgbOos+4lDtwhU7EYI6kHewVlZ4NXi85wnj/Qq+A==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core-client@7.6.20': - resolution: {integrity: sha512-upQuQQinLmlOPKcT8yqXNtwIucZ4E4qegYZXH5HXRWoLAL6GQtW7sUVSIuFogdki8OXRncr/dz8OA+5yQyYS4w==} - - '@storybook/core-common@7.6.20': - resolution: {integrity: sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==} - '@storybook/core-events@7.6.17': resolution: {integrity: sha512-AriWMCm/k1cxlv10f+jZ1wavThTRpLaN3kY019kHWbYT9XgaSuLU67G7GPr3cGnJ6HuA6uhbzu8qtqVCd6OfXA==} - '@storybook/core-events@7.6.20': - resolution: {integrity: sha512-tlVDuVbDiNkvPDFAu+0ou3xBBYbx9zUURQz4G9fAq0ScgBOs/bpzcRrFb4mLpemUViBAd47tfZKdH4MAX45KVQ==} - - '@storybook/core@8.6.14': - resolution: {integrity: sha512-1P/w4FSNRqP8j3JQBOi3yGt8PVOgSRbP66Ok520T78eJBeqx9ukCfl912PQZ7SPbW3TIunBwLXMZOjZwBB/JmA==} + '@storybook/csf-plugin@10.1.6': + resolution: {integrity: sha512-PAxzfiPCJiEZx/u2AfJ85u+2XpNVs8Aw+MgECpZdFMcX7jUP21MtfAu5L+9sehv1HomFsytbuO+D3C3IkdJRrw==} peerDependencies: - prettier: ^2 || ^3 + esbuild: '>=0.25.0' + rollup: '>=4.22.4' + storybook: ^10.1.6 + vite: '>=4.5.2' + webpack: '*' peerDependenciesMeta: - prettier: + esbuild: optional: true - - '@storybook/core@8.6.12': - resolution: {integrity: sha512-t+ZuDzAlsXKa6tLxNZT81gEAt4GNwsKP/Id2wluhmUWD/lwYW0uum1JiPUuanw8xD6TdakCW/7ULZc7aQUBLCQ==} - peerDependencies: - prettier: ^2 || ^3 - peerDependenciesMeta: - prettier: + rollup: + optional: true + vite: + optional: true + webpack: optional: true - '@storybook/csf-plugin@7.6.20': - resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} - - '@storybook/csf-plugin@8.6.12': - resolution: {integrity: sha512-6s8CnP1aoKPb3XtC0jRLUp8M5vTA8RhGAwQDKUsFpCC7g89JR9CaKs9FY2ZSzsNbjR15uASi7b3K8BzeYumYQg==} + '@storybook/csf-plugin@8.6.14': + resolution: {integrity: sha512-dErtc9teAuN+eelN8FojzFE635xlq9cNGGGEu0WEmMUQ4iJ8pingvBO1N8X3scz4Ry7KnxX++NNf3J3gpxS8qQ==} peerDependencies: - storybook: ^8.6.12 - - '@storybook/csf-tools@7.6.20': - resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} + storybook: ^8.6.14 '@storybook/csf@0.1.13': resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} - '@storybook/docs-tools@7.6.20': - resolution: {integrity: sha512-Bw2CcCKQ5xGLQgtexQsI1EGT6y5epoFzOINi0FSTGJ9Wm738nRp5LH3dLk1GZLlywIXcYwOEThb2pM+pZeRQxQ==} - '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -2523,110 +2375,73 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.6.12': - resolution: {integrity: sha512-VK5fYAF8jMwWP/u3YsmSwKGh+FeSY8WZn78flzRUwirp2Eg1WWjsqPRubAk7yTpcqcC/km9YMF3KbqfzRv2s/A==} + '@storybook/icons@2.0.1': + resolution: {integrity: sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@storybook/instrumenter@8.6.14': + resolution: {integrity: sha512-iG4MlWCcz1L7Yu8AwgsnfVAmMbvyRSk700Mfy2g4c8y5O+Cv1ejshE1LBBsCwHgkuqU0H4R0qu4g23+6UnUemQ==} peerDependencies: - storybook: ^8.6.12 + storybook: ^8.6.14 '@storybook/manager-api@7.6.17': resolution: {integrity: sha512-IJIV1Yc6yw1dhCY4tReHCfBnUKDqEBnMyHp3mbXpsaHxnxJZrXO45WjRAZIKlQKhl/Ge1CrnznmHRCmYgqmrWg==} - '@storybook/manager-api@7.6.20': - resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} - - '@storybook/mdx2-csf@1.1.0': - resolution: {integrity: sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==} - - '@storybook/node-logger@7.6.20': - resolution: {integrity: sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==} - - '@storybook/node-logger@8.6.6': - resolution: {integrity: sha512-t9QiOXiNSrMJbbXAUxay7IOP/iKzoGLOINxwSe+X9k/QOMV3n58/Xm6TtM4pItlapvD+2WHvmQcFVUGihDFl2w==} + '@storybook/manager-api@8.6.14': + resolution: {integrity: sha512-ez0Zihuy17udLbfHZQXkGqwtep0mSGgHcNzGN7iZrMP1m+VmNo+7aGCJJdvXi7+iU3yq8weXSQFWg5DqWgLS7g==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/postinstall@7.6.20': - resolution: {integrity: sha512-AN4WPeNma2xC2/K/wP3I/GMbBUyeSGD3+86ZFFJFO1QmE/Zea6E+1aVlTd1iKHQUcNkZ9bZTrqkhPGVYx10pIw==} - - '@storybook/preview-api@7.6.17': - resolution: {integrity: sha512-wLfDdI9RWo1f2zzFe54yRhg+2YWyxLZvqdZnSQ45mTs4/7xXV5Wfbv3QNTtcdw8tT3U5KRTrN1mTfTCiRJc0Kw==} - - '@storybook/preview-api@7.6.20': - resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} - - '@storybook/preview-api@8.6.12': - resolution: {integrity: sha512-84FE3Hrs0AYKHqpDZOwx1S/ffOfxBdL65lhCoeI8GoWwCkzwa9zEP3kvXBo/BnEDO7nAfxvMhjASTZXbKRJh5Q==} + '@storybook/node-logger@8.6.14': + resolution: {integrity: sha512-/H67NMvc9hDOaNgVragsHaeXQ5JzwAQfyx1QeL4vlx2SPGoWXmxpoRXZTpOJRaNOhKlYh6sDj/3Lx2xOH5IxnQ==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/preview@7.6.20': - resolution: {integrity: sha512-cxYlZ5uKbCYMHoFpgleZqqGWEnqHrk5m5fT8bYSsDsdQ+X5wPcwI/V+v8dxYAdQcMphZVIlTjo6Dno9WG8qmVA==} - - '@storybook/react-dom-shim@7.6.20': - resolution: {integrity: sha512-SRvPDr9VWcS24ByQOVmbfZ655y5LvjXRlsF1I6Pr9YZybLfYbu3L5IicfEHT4A8lMdghzgbPFVQaJez46DTrkg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/react-dom-shim@8.6.12': - resolution: {integrity: sha512-51QvoimkBzYs8s3rCYnY5h0cFqLz/Mh0vRcughwYaXckWzDBV8l67WBO5Xf5nBsukCbWyqBVPpEQLww8s7mrLA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 + '@storybook/preview-api@7.6.17': + resolution: {integrity: sha512-wLfDdI9RWo1f2zzFe54yRhg+2YWyxLZvqdZnSQ45mTs4/7xXV5Wfbv3QNTtcdw8tT3U5KRTrN1mTfTCiRJc0Kw==} - '@storybook/react-vite@7.6.20': - resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} - engines: {node: '>=16'} + '@storybook/react-dom-shim@10.1.6': + resolution: {integrity: sha512-hJI+mIDKioKMWL8YH32alkULmUW6A1iOljghF6fSLYI2TtGdfMLnoXogEnb0o11J8zhMUBXORrOGO0UL2+T69g==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - vite: '>=4.5.2' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.1.6 - '@storybook/react-vite@8.6.12': - resolution: {integrity: sha512-UA2Kule99oyFgHdhcuhrRwCKyWu/yMbqbl9U7NwowFHNwWWFjVMMir/AmfShb/H1C1DQ3LqOad6/QwJyPLjP8g==} - engines: {node: '>=18.0.0'} + '@storybook/react-dom-shim@8.6.14': + resolution: {integrity: sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==} peerDependencies: - '@storybook/test': 8.6.12 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 - vite: '>=4.5.2' - peerDependenciesMeta: - '@storybook/test': - optional: true + storybook: ^8.6.14 - '@storybook/react@7.6.20': - resolution: {integrity: sha512-i5tKNgUbTNwlqBWGwPveDhh9ktlS0wGtd97A1ZgKZc3vckLizunlAFc7PRC1O/CMq5PTyxbuUb4RvRD2jWKwDA==} - engines: {node: '>=16.0.0'} + '@storybook/react-vite@10.1.6': + resolution: {integrity: sha512-tULry4YrQbGYf27Sz9SgSPR8zEvhC6nUEROlU56nzxaBgsB/zylVWtPFoYWwicjiHGBogReoIiPsnP6r0yXBFQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.1.6 + vite: '>=5.1.7' - '@storybook/react@8.6.12': - resolution: {integrity: sha512-NzxlHLA5DkDgZM/dMwTYinuzRs6rsUPmlqP+NIv6YaciQ4NGnTYyOC7R/SqI6HHFm8ZZ5eMYvpfiFmhZ9rU+rQ==} - engines: {node: '>=18.0.0'} + '@storybook/react@10.1.6': + resolution: {integrity: sha512-ZX2mRojaFe3x0zESb7y33mflAek8lJSe+loufVrrYoXVOV7M4GnuLfoGu3jAR8cZbQA+2XbF8tMsnQn4Jc2HFg==} peerDependencies: - '@storybook/test': 8.6.12 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.12 - typescript: '>= 4.2.x' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.1.6 + typescript: '>= 4.9.x' peerDependenciesMeta: - '@storybook/test': - optional: true typescript: optional: true '@storybook/router@7.6.17': resolution: {integrity: sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==} - '@storybook/router@7.6.20': - resolution: {integrity: sha512-mCzsWe6GrH47Xb1++foL98Zdek7uM5GhaSlrI7blWVohGa0qIUYbfJngqR4ZsrXmJeeEvqowobh+jlxg3IJh+w==} + '@storybook/test@8.6.14': + resolution: {integrity: sha512-GkPNBbbZmz+XRdrhMtkxPotCLOQ1BaGNp/gFZYdGDk2KmUWBKmvc5JxxOhtoXM2703IzNFlQHSSNnhrDZYuLlw==} + peerDependencies: + storybook: ^8.6.14 '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} @@ -2638,12 +2453,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/theming@7.6.20': - resolution: {integrity: sha512-iT1pXHkSkd35JsCte6Qbanmprx5flkqtSHC6Gi6Umqoxlg9IjiLPmpHbaIXzoC06DSW93hPj5Zbi1lPlTvRC7Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/theming@8.6.14': resolution: {integrity: sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==} peerDependencies: @@ -2652,18 +2461,15 @@ packages: '@storybook/types@7.6.17': resolution: {integrity: sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q==} - '@storybook/types@7.6.20': - resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} - - '@stripe/react-stripe-js@4.0.2': - resolution: {integrity: sha512-l2wau+8/LOlHl+Sz8wQ1oDuLJvyw51nQCsu6/ljT6smqzTszcMHifjAJoXlnMfcou3+jK/kQyVe04u/ufyTXgg==} + '@stripe/react-stripe-js@5.4.1': + resolution: {integrity: sha512-ipeYcAHa4EPmjwfv0lFE+YDVkOQ0TMKkFWamW+BqmnSkEln/hO8rmxGPPWcd9WjqABx6Ro8Xg4pAS7evCcR9cw==} peerDependencies: - '@stripe/stripe-js': '>=1.44.1 <8.0.0' + '@stripe/stripe-js': '>=8.0.0 <9.0.0' react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@7.9.0': - resolution: {integrity: sha512-ggs5k+/0FUJcIgNY08aZTqpBTtbExkJMYMLSMwyucrhtWexVOEY1KJmhBsxf+E/Q15f5rbwBpj+t0t2AW2oCsQ==} + '@stripe/stripe-js@8.5.3': + resolution: {integrity: sha512-UM0GHAxlTN7v0lCK2P6t0VOlvBIdApIQxhnM3yZ2kupQ4PpSrLsK/n/NyYKtw2NJGMaNRRD1IicWS7fSL2sFtA==} engines: {node: '>=12.16'} '@tanstack/react-table@8.21.3': @@ -2677,6 +2483,10 @@ packages: resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} engines: {node: '>=12'} + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} + '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} @@ -2685,6 +2495,14 @@ packages: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} + '@testing-library/jest-dom@6.5.0': + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + + '@testing-library/jest-dom@6.9.1': + resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/react@16.3.0': resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} engines: {node: '>=18'} @@ -2716,9 +2534,9 @@ packages: resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} - '@tufjs/models@2.0.1': - resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} - engines: {node: ^16.14.0 || >=18.0.0} + '@tufjs/models@4.0.0': + resolution: {integrity: sha512-h5x5ga/hh82COe+GoD4+gKUeV4T3iaYOxqLt41GRKApinPI7DMidhCmNVTjKfhCWFJIGXaFJee07XczdT4jdZQ==} + engines: {node: ^20.17.0 || >=22.9.0} '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} @@ -2741,6 +2559,9 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} @@ -2753,36 +2574,21 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - '@types/doctrine@0.0.3': - resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} - '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - '@types/escodegen@0.0.6': - resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -2792,17 +2598,11 @@ packages: '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - '@types/find-cache-dir@3.2.1': - resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/googlepay@0.7.6': resolution: {integrity: sha512-5003wG+qvf4Ktf1hC9IJuRakNzQov00+Xf09pAWGJLpdOjUrq0SSLCpXX7pwSeTG9r5hrdzq1iFyZcW7WVyr4g==} - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/googlepay@0.7.8': + resolution: {integrity: sha512-EHl7G7jIeit/Px/fi/Du/19SZDvqrRhy0DjJX40Vzs/97m3sro9mzVyAYNC0pfzpWGDY+zPjtTLEfhV+OYWUcQ==} '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} @@ -2810,29 +2610,14 @@ packages: '@types/iframe-resizer@4.0.0': resolution: {integrity: sha512-RKrT4goNVtqZvf9WPkV0cUcphQWXzLVW1IE4yOIY21c1W+obJJbcHFD1lQu5ncNHm/6TeQSeedVf9bmkx2NaGQ==} - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/js-cookie@3.0.6': resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/lodash@4.17.16': - resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} - - '@types/lodash@4.17.20': - resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} - - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/lodash@4.17.21': + resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -2846,26 +2631,14 @@ packages: '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node-fetch@2.6.12': - resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - - '@types/node@18.19.80': - resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - - '@types/node@24.3.1': - resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==} - - '@types/node@24.9.1': - resolution: {integrity: sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==} + '@types/node@24.10.2': + resolution: {integrity: sha512-WOhQTZ4G8xZ1tjJTvKOpyEVSGgOTvJAfDK3FNFgELyaTpzhdgHVHeqW8V+UJvzF5BT+/B54T/1S2K6gd9c7bbA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2873,12 +2646,6 @@ packages: '@types/paypal-checkout-components@4.0.8': resolution: {integrity: sha512-Z3IWbFPGdgL3O+Bg+TyVmMT8S3uGBsBjw3a8uRNR4OlYWa9m895djENErJMYU8itoki9rtcQMzoHOSFn8NFb1A==} - '@types/pretty-hrtime@1.0.3': - resolution: {integrity: sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==} - - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} @@ -2888,25 +2655,20 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.1.2': - resolution: {integrity: sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==} + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: - '@types/react': ^19.0.0 + '@types/react': ^19.2.0 - '@types/react-test-renderer@19.0.0': - resolution: {integrity: sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==} + '@types/react-test-renderer@19.1.0': + resolution: {integrity: sha512-XD0WZrHqjNrxA/MaR9O22w/RNidWR9YZmBdRGI7wcnWGrv/3dA8wKCJ8m63Sn+tLJhcjmuhOi629N66W6kgWzQ==} - '@types/react-window@1.8.8': - resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} + '@types/react-window@2.0.0': + resolution: {integrity: sha512-E8hMDtImEpMk1SjswSvqoSmYvk7GEtyVaTa/GJV++FdDNuMVVEzpAClyJ0nqeKYBrMkGiyH6M1+rPLM0Nu1exQ==} + deprecated: This is a stub types definition. react-window provides its own type definitions, so you do not need this installed. - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - - '@types/react@19.0.12': - resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==} - - '@types/react@19.1.2': - resolution: {integrity: sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==} + '@types/react@19.2.7': + resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -2917,14 +2679,8 @@ packages: '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@types/statuses@2.0.5': - resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} - - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/statuses@2.0.6': + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -2932,58 +2688,55 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@16.0.9': - resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} - - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - - '@typescript-eslint/eslint-plugin@8.30.1': - resolution: {integrity: sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==} + '@typescript-eslint/eslint-plugin@8.49.0': + resolution: {integrity: sha512-JXij0vzIaTtCwu6SxTh8qBc66kmf1xs7pI4UOiMDFVct6q86G0Zs7KRcEoJgY3Cav3x5Tq0MF5jwgpgLqgKG3A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.49.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.30.1': - resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==} + '@typescript-eslint/parser@8.49.0': + resolution: {integrity: sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.23.0': - resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} + '@typescript-eslint/project-service@8.49.0': + resolution: {integrity: sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/scope-manager@8.30.1': resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.30.1': - resolution: {integrity: sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==} + '@typescript-eslint/scope-manager@8.49.0': + resolution: {integrity: sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.49.0': + resolution: {integrity: sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.23.0': - resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} + '@typescript-eslint/type-utils@8.49.0': + resolution: {integrity: sha512-KTExJfQ+svY8I10P4HdxKzWsvtVnsuCifU5MvXrRwoP2KOlNZ9ADNEWWsQTJgMxLzS5VLQKDjkCT/YzgsnqmZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@8.30.1': resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.23.0': - resolution: {integrity: sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==} + '@typescript-eslint/types@8.49.0': + resolution: {integrity: sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/typescript-estree@8.30.1': resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==} @@ -2991,12 +2744,11 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.23.0': - resolution: {integrity: sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==} + '@typescript-eslint/typescript-estree@8.49.0': + resolution: {integrity: sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/utils@8.30.1': resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==} @@ -3005,44 +2757,45 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.23.0': - resolution: {integrity: sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==} + '@typescript-eslint/utils@8.49.0': + resolution: {integrity: sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@8.30.1': resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitejs/plugin-react@3.1.0': - resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: '>=4.5.2' - - '@vitejs/plugin-react@4.3.4': - resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: '>=4.5.2' + '@typescript-eslint/visitor-keys@8.49.0': + resolution: {integrity: sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitejs/plugin-react@5.0.2': - resolution: {integrity: sha512-tmyFgixPZCx2+e6VO9TNITWcCQl8+Nl/E8YbAyPVv85QCc7/A3JrdfG2A8gIzvVhWuzMOVrFW1aReaNxrI6tbw==} + '@vitejs/plugin-react@5.1.2': + resolution: {integrity: sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: '>=4.5.2' - '@vitest/coverage-v8@3.2.4': - resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} + '@vitest/coverage-v8@4.0.15': + resolution: {integrity: sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==} peerDependencies: - '@vitest/browser': 3.2.4 - vitest: 3.2.4 + '@vitest/browser': 4.0.15 + vitest: 4.0.15 peerDependenciesMeta: '@vitest/browser': optional: true + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + '@vitest/expect@4.0.15': + resolution: {integrity: sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==} + '@vitest/mocker@3.2.4': resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: @@ -3054,21 +2807,56 @@ packages: vite: optional: true + '@vitest/mocker@4.0.15': + resolution: {integrity: sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==} + peerDependencies: + msw: ^2.4.9 + vite: '>=6.4.1' + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + + '@vitest/pretty-format@2.1.9': + resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + '@vitest/pretty-format@4.0.15': + resolution: {integrity: sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==} + + '@vitest/runner@4.0.15': + resolution: {integrity: sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==} + + '@vitest/snapshot@4.0.15': + resolution: {integrity: sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==} - '@vitest/snapshot@3.2.4': - resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + '@vitest/spy@4.0.15': + resolution: {integrity: sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==} + + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + '@vitest/utils@2.1.9': + resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@vitest/utils@4.0.15': + resolution: {integrity: sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3135,33 +2923,15 @@ packages: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.14.1: - resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.15.0: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} @@ -3236,9 +3006,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - app-root-dir@1.0.2: - resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} - aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -3248,10 +3015,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} - engines: {node: '>=10'} - aria-query@5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} @@ -3266,9 +3029,6 @@ packages: resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} engines: {node: '>=8'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -3284,9 +3044,6 @@ packages: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} - assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} - assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -3295,8 +3052,8 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} - ast-v8-to-istanbul@0.3.3: - resolution: {integrity: sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==} + ast-v8-to-istanbul@0.3.8: + resolution: {integrity: sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==} async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -3311,29 +3068,25 @@ packages: axios@1.12.2: resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} - babel-loader@9.2.1: - resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} - engines: {node: '>= 14.15.0'} + babel-loader@10.0.0: + resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==} + engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} peerDependencies: '@babel/core': ^7.12.0 - webpack: '>=5' - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + webpack: '>=5.61.0' - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + babel-plugin-polyfill-corejs2@0.4.14: + resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.11.1: - resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + babel-plugin-polyfill-regenerator@0.6.5: + resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -3346,16 +3099,19 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.9.6: + resolution: {integrity: sha512-v9BVVpOTLB59C9E7aSnmIF8h7qRsFpx+A2nugVMTszEOMcfjlZMsXRm4LF23I3Z9AJxc8ANpIvzbzONoX9VJlg==} + hasBin: true + before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - better-opn@3.0.2: - resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} - engines: {node: '>=12.0.0'} + bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} - bin-links@4.0.4: - resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + bin-links@5.0.0: + resolution: {integrity: sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==} + engines: {node: ^18.17.0 || >=20.5.0} binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} @@ -3364,10 +3120,6 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -3378,19 +3130,18 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - braintree-web@3.129.0: - resolution: {integrity: sha512-cV9u4ov/br1cayF8mHsQrXag0P3e7KyNSXjGTZyJ3ne2dwFpGpArrmTq91xSVTxF/xnXRCvZb/FewBy2ayJAcQ==} - - browser-assert@1.2.1: - resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} + braintree-web@3.133.0: + resolution: {integrity: sha512-52jSTXKNjTuy9YRiG8JcT1RrgXe04d+w4M1zlvtsQxRaBuUKZZPvWVig6DkIEa4SO4m87cEgKuJrkfB8KKxh4A==} browserslist@4.24.4: resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3402,23 +3153,23 @@ packages: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: '>=0.18' + esbuild: '>=0.25.0' byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - cacache@18.0.4: - resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} - engines: {node: ^16.14.0 || >=18.0.0} + cacache@19.0.1: + resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + cacache@20.0.3: + resolution: {integrity: sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==} + engines: {node: ^20.17.0 || >=22.9.0} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -3447,6 +3198,9 @@ packages: caniuse-lite@1.0.30001705: resolution: {integrity: sha512-S0uyMMiYvA7CxNgomYBwwwPUnWzFD83f3B1ce5jHUfHTH//QL6hHsreI8RVC5606R4ssqravelYO5TU6t8sEyg==} + caniuse-lite@1.0.30001760: + resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} + card-validator@10.0.3: resolution: {integrity: sha512-xOEDsK3hojV0OIpmrR64eZGpngnOqRDEP20O+WSRtvjLSW6nyekW4i2N9SzYg679uFO3RyHcFHxb+mml5tXc4A==} @@ -3457,6 +3211,10 @@ packages: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} + chai@6.2.1: + resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + engines: {node: '>=18'} + chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} @@ -3480,8 +3238,8 @@ packages: character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} @@ -3491,12 +3249,20 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chromatic@11.25.2: - resolution: {integrity: sha512-/9eQWn6BU1iFsop86t8Au21IksTRxwXAl7if8YHD05L2AbuMjClLWZo5cZojqrJHGKDhTqfrC2X2xE4uSm0iKw==} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + chromatic@13.3.4: + resolution: {integrity: sha512-TR5rvyH0ESXobBB3bV8jc87AEAFQC7/n+Eb4XWhJz6hW3YNxIQPVjcbgLv+a4oKHEl1dUBueWSoIQsOVGTd+RQ==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -3519,6 +3285,9 @@ packages: resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} engines: {node: '>=8'} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -3543,9 +3312,9 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} @@ -3558,10 +3327,6 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -3570,6 +3335,10 @@ packages: resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + cmd-shim@7.0.0: + resolution: {integrity: sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==} + engines: {node: ^18.17.0 || >=20.5.0} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -3600,6 +3369,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} @@ -3607,9 +3380,6 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -3623,16 +3393,15 @@ packages: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} @@ -3668,19 +3437,12 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} - - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} - core-js-compat@3.41.0: - resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} + core-js-compat@3.47.0: + resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -3701,46 +3463,36 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - cssstyle@4.3.0: - resolution: {integrity: sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==} - engines: {node: '>=18'} + cssstyle@5.3.4: + resolution: {integrity: sha512-KyOS/kJMEq5O9GdPnaf82noigg5X5DYn0kZPJTaAsCUaBizp6Xa1y9D4Qoqf/JazEXWuruErHgVXwjN5391ZJw==} + engines: {node: '>=20'} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + data-urls@6.0.0: + resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==} + engines: {node: '>=20'} dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -3758,8 +3510,8 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - decimal.js@10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} decode-named-character-reference@1.1.0: resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} @@ -3780,6 +3532,9 @@ packages: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -3799,10 +3554,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} @@ -3810,24 +3561,15 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@5.0.0: resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} engines: {node: '>=4'} - detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detectincognitojs@1.6.0: + resolution: {integrity: sha512-aOmVmzcPdm1Vovuc0ZHr5Vk86ZSMBUXyvTD2S4JRFZZzg0/gbW8FmM+jDFxKSaDwvlpgH3B103rnxJfAX2ZGqA==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -3847,10 +3589,6 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} - dotenv-expand@11.0.7: resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} engines: {node: '>=12'} @@ -3869,9 +3607,6 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} @@ -3880,6 +3615,9 @@ packages: electron-to-chromium@1.5.119: resolution: {integrity: sha512-Ku4NMzUjz3e3Vweh7PhApPrZSS4fyiCIbcIrG9eKrriYVLmbMepETR/v6SU7xPm98QTqMSYiCwfO89QNjXLkbQ==} + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3889,13 +3627,9 @@ packages: emojilib@2.4.0: resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} + empathic@2.0.0: + resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} + engines: {node: '>=14'} encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -3911,8 +3645,8 @@ packages: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} env-paths@2.2.1: @@ -3928,6 +3662,10 @@ packages: engines: {node: '>=4'} hasBin: true + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -3945,9 +3683,6 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-module-lexer@0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -3959,13 +3694,13 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.25.0' + esbuild@0.25.12: + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + engines: {node: '>=18'} + hasBin: true - esbuild@0.25.1: - resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + esbuild@0.27.0: + resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} engines: {node: '>=18'} hasBin: true @@ -3973,9 +3708,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -3988,34 +3720,29 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.19: - resolution: {integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==} + eslint-plugin-react-refresh@0.4.24: + resolution: {integrity: sha512-nLHIW7TEq3aLrEYWpVaJ1dRgFR+wLDPN8e8FpYAql/bMV2oBEfC37K0gLEGgv9fy66juNShSMV8OkTqzltcG/w==} peerDependencies: eslint: '>=8.40' - eslint-plugin-storybook@0.12.0: - resolution: {integrity: sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==} - engines: {node: '>= 18'} + eslint-plugin-storybook@10.1.6: + resolution: {integrity: sha512-EHMJ2cWmww3cOhB0bNonbqsm1MG7163em+uJEfuAvgBftsCaul7dGGq8izTKxurF/nospYUTYEB3bIJRStP0BQ==} peerDependencies: eslint: '>=8' + storybook: ^10.1.6 eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -4026,8 +3753,12 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.24.0: - resolution: {integrity: sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.39.1: + resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4036,8 +3767,8 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -4071,10 +3802,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -4086,24 +3813,16 @@ packages: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} engines: {node: '>=10'} - expect-type@1.2.1: - resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} exponential-backoff@3.1.2: resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} - engines: {node: '>= 0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4123,17 +3842,6 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fdir@6.4.5: - resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -4168,18 +3876,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} - find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} - find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} - find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} @@ -4192,9 +3892,8 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + fix-dts-default-cjs-exports@1.0.1: + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -4204,6 +3903,9 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -4225,10 +3927,6 @@ packages: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - framebus@6.0.3: resolution: {integrity: sha512-G/N2p+kFZ1xPBge7tbtTq2KcTR1kSKs1rVbTqH//WdtvJSexS33fsTTOq3yfUWvUczqhujyaFc+omawC9YyRBg==} @@ -4238,10 +3936,6 @@ packages: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - front-matter@4.0.2: resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} @@ -4299,14 +3993,6 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -4354,9 +4040,6 @@ packages: gitconfiglocal@1.0.0: resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -4365,12 +4048,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-promise@4.2.2: - resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==} - engines: {node: '>=12'} - peerDependencies: - glob: ^7.1.6 - glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -4378,24 +4055,25 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + hasBin: true + + glob@13.0.0: + resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} + engines: {node: 20 || >=22} glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@16.0.0: - resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} globby@11.1.0: @@ -4412,11 +4090,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - graphql@16.10.0: - resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} + graphql@16.12.0: + resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} handlebars@4.7.8: @@ -4457,6 +4132,12 @@ packages: headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} @@ -4467,9 +4148,13 @@ packages: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} + hosted-git-info@8.1.0: + resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} + engines: {node: ^18.17.0 || >=20.5.0} + + hosted-git-info@9.0.2: + resolution: {integrity: sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==} + engines: {node: ^20.17.0 || >=22.9.0} html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} @@ -4478,17 +4163,9 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -4506,14 +4183,14 @@ packages: engines: {node: '>=18'} hasBin: true - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -4521,14 +4198,18 @@ packages: resolution: {integrity: sha512-U8bCywf/Gh07O69RXo6dXAzTtODQrxaHGHRI7Nt4ipXsuq6EMxVsOP/jjaP43YtXz/ibESS0uSVDN3sOGCzSmw==} engines: {node: '>=0.8.0'} - ignore-walk@6.0.5: - resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ignore-walk@8.0.0: + resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} + engines: {node: ^20.17.0 || >=22.9.0} ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -4546,30 +4227,35 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@4.1.3: - resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@5.0.0: + resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} + engines: {node: ^18.17.0 || >=20.5.0} - init-package-json@6.0.3: - resolution: {integrity: sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==} - engines: {node: ^16.14.0 || >=18.0.0} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + init-package-json@8.2.2: + resolution: {integrity: sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA==} + engines: {node: ^20.17.0 || >=22.9.0} inject-stylesheet@6.0.2: resolution: {integrity: sha512-sswMueya1LXEfwcy7KXPuq3zAW6HvgAeViApEhIaCviCkP4XYoKrQj8ftEmxPmIHn88X4R3xOAsnN/QCPvVKWw==} - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + inquirer@12.9.6: + resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} @@ -4579,14 +4265,6 @@ packages: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-absolute-url@3.0.3: - resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} - engines: {node: '>=8'} - is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -4610,10 +4288,6 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -4643,10 +4317,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4655,17 +4325,10 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-nan@1.3.2: - resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} - engines: {node: '>= 0.4'} - is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -4689,14 +4352,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -4735,10 +4390,6 @@ packages: resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} engines: {node: '>=0.10.0'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -4772,18 +4423,10 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} @@ -4792,50 +4435,30 @@ packages: resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -4854,20 +4477,16 @@ packages: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-type-pratt-parser@4.8.0: - resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} - engines: {node: '>=12.0.0'} - - jsdom@26.1.0: - resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} - engines: {node: '>=18'} + jsdom@27.3.0: + resolution: {integrity: sha512-GtldT42B8+jefDUC4yUKAvsaOrH7PDHmZxZXNgF2xMmymjUbRYJvpAybZAKEmXDGTM0mCsz8duOa4vTm5AY2Kg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -4893,9 +4512,13 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + json-parse-even-better-errors@4.0.0: + resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} + engines: {node: ^18.17.0 || >=20.5.0} + + json-parse-even-better-errors@5.0.0: + resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + engines: {node: ^20.17.0 || >=22.9.0} json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -4944,26 +4567,22 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - lazy-universal-dotenv@4.0.0: - resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} - engines: {node: '>=14.0.0'} - - lerna@8.2.3: - resolution: {integrity: sha512-rmuDU+92eWUnnyaPg3Ise339pTxF+r2hu8ky/soCfbGpUoW4kCwsDza3P/LtQJWrKwZWHcosEitfYvxGUWZ16A==} - engines: {node: '>=18.0.0'} + lerna@9.0.3: + resolution: {integrity: sha512-wCsJWKX8FaGJoWX2K5gL5q7ReqQNxNsS92AW5glBe/JzWEtoM/jgXXGrEzQzORMb8rTXYFjUjpn60et+i8XugA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true - libnpmaccess@8.0.6: - resolution: {integrity: sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==} - engines: {node: ^16.14.0 || >=18.0.0} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} - libnpmpublish@9.0.9: - resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} - engines: {node: ^16.14.0 || >=18.0.0} + libnpmaccess@10.0.3: + resolution: {integrity: sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + libnpmpublish@11.1.2: + resolution: {integrity: sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA==} + engines: {node: ^20.17.0 || >=22.9.0} lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} @@ -4984,6 +4603,10 @@ packages: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.1: resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} @@ -5000,10 +4623,6 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} @@ -5013,9 +4632,6 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -5030,15 +4646,16 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} - loupe@3.1.4: resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.4: + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -5050,15 +4667,14 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + magicast@0.5.1: + resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -5072,12 +4688,13 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-fetch-happen@13.0.1: - resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} - engines: {node: ^16.14.0 || >=18.0.0} + make-fetch-happen@14.0.3: + resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} + engines: {node: ^18.17.0 || >=20.5.0} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + make-fetch-happen@15.0.2: + resolution: {integrity: sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ==} + engines: {node: ^20.17.0 || >=22.9.0} map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} @@ -5093,12 +4710,6 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - markdown-to-jsx@7.7.4: - resolution: {integrity: sha512-1bSfXyBKi+EYS3YY+e0Csuxf8oZ3decdfhOav/Z7Wrk89tjudyL5FOmwZQUoy0/qVXGUl+6Q3s2SWtpDEWITfQ==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' - marked-terminal@7.3.0: resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} engines: {node: '>=16.0.0'} @@ -5114,81 +4725,41 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdast-util-definitions@4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} - - mdast-util-find-and-replace@2.2.2: - resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} - mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - mdast-util-gfm-autolink-literal@1.0.3: - resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} - mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@1.0.2: - resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} - mdast-util-gfm-footnote@2.0.0: resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - mdast-util-gfm-strikethrough@1.0.3: - resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} - mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - mdast-util-gfm-table@1.0.7: - resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} - mdast-util-gfm-table@2.0.0: resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - mdast-util-gfm-task-list-item@1.0.2: - resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} - mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@2.0.2: - resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} - mdast-util-gfm@3.0.0: resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - mdast-util-phrasing@3.0.1: - resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} - mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-markdown@1.5.0: - resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} - mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - mdast-util-to-string@1.1.0: - resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} - - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} memoizerific@1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} @@ -5201,9 +4772,6 @@ packages: resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} engines: {node: '>=12.13'} - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -5211,175 +4779,87 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - micromark-core-commonmark@2.0.2: resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} - micromark-extension-gfm-autolink-literal@1.0.5: - resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} - micromark-extension-gfm-autolink-literal@2.1.0: resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - micromark-extension-gfm-footnote@1.1.2: - resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} - micromark-extension-gfm-footnote@2.1.0: resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - micromark-extension-gfm-strikethrough@1.0.7: - resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} - micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@1.0.7: - resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} - micromark-extension-gfm-table@2.1.1: resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - micromark-extension-gfm-tagfilter@1.0.2: - resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} - micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - micromark-extension-gfm-task-list-item@1.0.5: - resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} - micromark-extension-gfm-task-list-item@2.1.0: resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - micromark-extension-gfm@2.0.3: - resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} - micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} - micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - micromark-factory-label@2.0.1: resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - micromark-factory-space@2.0.1: resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - micromark-factory-title@2.0.1: resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - micromark-factory-whitespace@2.0.1: resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - micromark-util-character@2.1.1: resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - micromark-util-chunked@2.0.1: resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - micromark-util-classify-character@2.0.1: resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - micromark-util-combine-extensions@2.0.1: resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - micromark-util-decode-numeric-character-reference@2.0.2: resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - micromark-util-decode-string@2.0.1: resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} - micromark-util-html-tag-name@2.0.1: resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - micromark-util-normalize-identifier@2.0.1: resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - micromark-util-resolve-all@2.0.1: resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - micromark-util-subtokenize@2.0.4: resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==} - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - micromark-util-types@2.0.1: resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - micromark@4.0.1: resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} @@ -5395,11 +4875,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -5408,6 +4883,10 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + minimatch@3.0.5: resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} @@ -5445,9 +4924,9 @@ packages: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} - minipass-fetch@3.0.5: - resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + minipass-fetch@4.0.1: + resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} + engines: {node: ^18.17.0 || >=20.5.0} minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} @@ -5481,47 +4960,27 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + modify-values@1.0.1: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.11.1: - resolution: {integrity: sha512-dGSRx0AJmQVQfpGXTsAAq4JFdwdhOBdJ6sJS/jnN0ac3s0NZB6daacHF1z5Pefx+IejmvuiLWw260RlyQOf3sQ==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - typescript: '>= 4.8.x' - peerDependenciesMeta: - typescript: - optional: true - - msw@2.7.3: - resolution: {integrity: sha512-+mycXv8l2fEAjFZ5sjrtjJDmm2ceKGjrNbBr1durRg6VkU9fNUE/gsmQ51hWbHqs+l35W1iM+ZsmOD9Fd6lspw==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - typescript: '>= 4.8.x' - peerDependenciesMeta: - typescript: - optional: true - - msw@2.7.4: - resolution: {integrity: sha512-A2kuMopOjAjNEYkn0AnB1uj+x7oBjLIunFk7Ud4icEnVWFf6iBekn8oXW4zIwcpfEdWP9sLqyVaHVzneWoGEww==} + msw@2.12.4: + resolution: {integrity: sha512-rHNiVfTyKhzc0EjoXUBVGteNKBevdjOlVC6GlIRXpy+/3LHEIGRovnB5WPjcvmNODVQ1TNFnoa7wsGbd0V3epg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -5534,13 +4993,6 @@ packages: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -5549,6 +5001,9 @@ packages: resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==} engines: {node: '>=12.0.0'} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -5557,52 +5012,34 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-emoji@2.2.0: + resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + engines: {node: '>=18'} - node-gyp@10.3.1: - resolution: {integrity: sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==} - engines: {node: ^16.14.0 || >=18.0.0} + node-gyp@11.5.0: + resolution: {integrity: sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==} + engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} hasBin: true normalize-package-data@2.5.0: @@ -5612,51 +5049,64 @@ packages: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} - normalize-package-data@6.0.2: - resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} - engines: {node: ^16.14.0 || >=18.0.0} - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - npm-bundled@3.0.1: - resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-bundled@4.0.0: + resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} + engines: {node: ^18.17.0 || >=20.5.0} - npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-bundled@5.0.0: + resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} + engines: {node: ^20.17.0 || >=22.9.0} - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-install-checks@7.1.2: + resolution: {integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==} + engines: {node: ^18.17.0 || >=20.5.0} - npm-package-arg@11.0.2: - resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} - engines: {node: ^16.14.0 || >=18.0.0} + npm-install-checks@8.0.0: + resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} + engines: {node: ^20.17.0 || >=22.9.0} - npm-packlist@8.0.2: - resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-normalize-package-bin@4.0.0: + resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} + engines: {node: ^18.17.0 || >=20.5.0} - npm-pick-manifest@9.1.0: - resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} - engines: {node: ^16.14.0 || >=18.0.0} + npm-normalize-package-bin@5.0.0: + resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} + engines: {node: ^20.17.0 || >=22.9.0} - npm-registry-fetch@17.1.0: - resolution: {integrity: sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==} - engines: {node: ^16.14.0 || >=18.0.0} + npm-package-arg@12.0.2: + resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-package-arg@13.0.1: + resolution: {integrity: sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-packlist@10.0.3: + resolution: {integrity: sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-pick-manifest@10.0.0: + resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + npm-pick-manifest@11.0.3: + resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-registry-fetch@19.1.0: + resolution: {integrity: sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw==} + engines: {node: ^20.17.0 || >=22.9.0} npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - nwsapi@2.2.18: - resolution: {integrity: sha512-p1TRH/edngVEHVbwqWnxUViEmq5znDvyB+Sik5cmuLpGOIfDf/39zLiq3swPF8Vakqn+gvNiOQAZu8djYlQILA==} - - nx@20.6.0: - resolution: {integrity: sha512-2b9YeQPXShw62KeOHfZ/0FqeHx28GK15uoIh7jfNg0hzVnvLVSJrThUjWHY0a8F4km+B4VKeKO8a3KtdN2cwig==} + nx@22.2.0: + resolution: {integrity: sha512-EOPtpGLA11jM8AJ7g8cLuhCHam0SANDsp1t1aalcx5fXIy/Av24XaHUKm1rk3lJHGLoGgfae0THg5OQ3JKJQ8g==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -5687,9 +5137,8 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -5710,10 +5159,6 @@ packages: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} @@ -5733,10 +5178,6 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} @@ -5749,10 +5190,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map-series@2.1.0: resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} engines: {node: '>=8'} @@ -5761,6 +5198,10 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} + p-pipe@3.1.0: resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} engines: {node: '>=8'} @@ -5792,18 +5233,23 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - pacote@18.0.6: - resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==} - engines: {node: ^16.14.0 || >=18.0.0} + pacote@21.0.1: + resolution: {integrity: sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + + pacote@21.0.4: + resolution: {integrity: sha512-RplP/pDW0NNNDh3pnaoIWYPvNenS7UqMbXyvMqJczosiFWTeGGwJC2NQBLqKf4rGLFfwCOnntw1aEp9Jiqm1MA==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-conflict-json@3.0.1: - resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + parse-conflict-json@4.0.0: + resolution: {integrity: sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==} + engines: {node: ^18.17.0 || >=20.5.0} parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} @@ -5828,12 +5274,8 @@ packages: parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + parse5@8.0.0: + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} @@ -5843,14 +5285,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -5862,8 +5296,9 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -5890,10 +5325,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -5922,21 +5353,16 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - - pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.56.1: - resolution: {integrity: sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==} + playwright-core@1.57.0: + resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} engines: {node: '>=18'} hasBin: true - playwright@1.56.1: - resolution: {integrity: sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==} + playwright@1.57.0: + resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} engines: {node: '>=18'} hasBin: true @@ -5970,8 +5396,8 @@ packages: yaml: optional: true - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} postcss@8.5.6: @@ -5998,28 +5424,24 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - pretty-hrtime@1.0.3: - resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} - engines: {node: '>= 0.8'} + proc-log@5.0.0: + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} + engines: {node: ^18.17.0 || >=20.5.0} - proc-log@4.2.0: - resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - proggy@2.0.0: - resolution: {integrity: sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + proggy@3.0.0: + resolution: {integrity: sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==} + engines: {node: ^18.17.0 || >=20.5.0} progress-barjs@2.2.1: resolution: {integrity: sha512-pgNtlw+gZ/nqQJDYKUbAnyhZPdyiBoxB3gzXcmF7Cl2JhD8I87Z501T3rr97OHoSzx3JFfNcY9ANiAVPF4qPxA==} @@ -6030,14 +5452,6 @@ packages: promise-call-limit@3.0.2: resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - promise-polyfill@8.2.3: resolution: {integrity: sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==} @@ -6045,9 +5459,9 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} - promzard@1.0.2: - resolution: {integrity: sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + promzard@2.0.0: + resolution: {integrity: sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==} + engines: {node: ^18.17.0 || >=20.5.0} prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -6055,31 +5469,17 @@ packages: protocols@2.0.2: resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-lit@1.5.2: resolution: {integrity: sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==} engines: {node: '>=12'} @@ -6097,139 +5497,64 @@ packages: randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - rapid-form@3.1.0: resolution: {integrity: sha512-gZf8H9O98xdUz8p4cHZng/JBigLfb6VrIezQdIh+xYejccMxvo5TnZmjIzd3HZA0keYT+t0uJazzRksvBBLPBw==} peerDependencies: react: ^16.9.0 react-dom: ^16.9.0 - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - - react-colorful@5.6.1: - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - react-confetti@6.2.2: - resolution: {integrity: sha512-K+kTyOPgX+ZujMZ+Rmb7pZdHBvg+DzinG/w4Eh52WOB8/pfO38efnnrtEZNJmjTvLxc16RBYO+tPM68Fg8viBA==} - engines: {node: '>=16'} - peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 - react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: typescript: '>= 4.3.x' - react-docgen@7.1.0: - resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} - engines: {node: '>=16.14.0'} - - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} - peerDependencies: - react: ^19.0.0 - - react-dom@19.1.0: - resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} - peerDependencies: - react: ^19.1.0 + react-docgen@8.0.2: + resolution: {integrity: sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==} + engines: {node: ^20.9.0 || >=22} - react-element-to-jsx-string@15.0.0: - resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} + react-dom@19.2.1: + resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==} peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + react: ^19.2.1 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - react-is@18.1.0: - resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-is@19.0.0: - resolution: {integrity: sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==} - - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} - - react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} - engines: {node: '>=0.10.0'} - - react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - react-remove-scroll@2.5.5: - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - 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 + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-test-renderer@19.0.0: - resolution: {integrity: sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==} - peerDependencies: - react: ^19.0.0 + react-is@19.2.1: + resolution: {integrity: sha512-L7BnWgRbMwzMAubQcS7sXdPdNLmKlucPlopgAzx7FtYbksWZgEWiuYM5x9T6UqS2Ne0rsgQTq5kY2SGqpzUkYA==} - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} engines: {node: '>=0.10.0'} - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} - engines: {node: '>=0.10.0'} + react-test-renderer@19.2.1: + resolution: {integrity: sha512-xsyf515ij+d8Rs/tsDZSJYXn+GdYO/IOw9BVFtjJbrrFR+dL1yZQQN1ChxY6otYAsCeAHhU0XsKyJUzP6omyvQ==} + peerDependencies: + react: ^19.2.1 + + react-window@2.2.3: + resolution: {integrity: sha512-gTRqQYC8ojbiXyd9duYFiSn2TJw0ROXCgYjenOvNKITWzK0m0eCvkUsEUM08xvydkMh7ncp+LE0uS3DeNGZxnQ==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - react@19.1.0: - resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + react@19.2.1: + resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==} engines: {node: '>=0.10.0'} read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read-cmd-shim@5.0.0: + resolution: {integrity: sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==} + engines: {node: ^18.17.0 || >=20.5.0} read-pkg-up@3.0.0: resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} @@ -6247,9 +5572,9 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} - read@3.0.1: - resolution: {integrity: sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + read@4.1.0: + resolution: {integrity: sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA==} + engines: {node: ^18.17.0 || >=20.5.0} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -6278,15 +5603,16 @@ packages: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -6295,6 +5621,10 @@ packages: resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} engines: {node: '>=4'} + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} @@ -6302,11 +5632,9 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true - remark-external-links@8.0.0: - resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==} - - remark-gfm@3.0.1: - resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + hasBin: true remark-gfm@4.0.1: resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} @@ -6314,9 +5642,6 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-slug@6.1.0: - resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} - remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} @@ -6328,9 +5653,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -6366,6 +5688,9 @@ packages: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} + rettime@0.7.0: + resolution: {integrity: sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6381,21 +5706,13 @@ packages: rollup: '>=4.22.4' typescript: '>=2.4.0' - rollup@3.29.5: - resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.49.0: resolution: {integrity: sha512-3IVq0cGJ6H7fKXXEdVt+RcYvRCt8beYY9K1760wGQwSAHZcS9eot1zDG5axUbcp/kWRi5zKIIDX8MoKv/TzvZA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + run-async@4.0.6: + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} engines: {node: '>=0.12.0'} run-parallel@1.2.0: @@ -6404,10 +5721,6 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -6425,18 +5738,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - - scheduler@0.26.0: - resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} - - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} - engines: {node: '>= 10.13.0'} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} schema-utils@4.3.3: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} @@ -6455,17 +5758,14 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -6477,13 +5777,6 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -6518,9 +5811,13 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sigstore@2.3.1: - resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} - engines: {node: ^16.14.0 || >=18.0.0} + sigstore@4.0.0: + resolution: {integrity: sha512-Gw/FgHtrLM9WP8P5lLcSGh9OQcrTruWCELAiS48ik1QbL0cH+dfjomiRTUE9zzz+D1N6rOLkwXUvVmXZAsNE0Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -6553,12 +5850,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -6584,19 +5878,23 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - ssri@10.0.6: - resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ssri@12.0.0: + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + ssri@13.0.0: + resolution: {integrity: sha512-yizwGBpbCn4YomB2lzhZqrHLJoqFGXihNbib3ozhqF/cIp5ue+xSmOQrjNasEE62hFxsCcg/V/z23t4n8jMEng==} + engines: {node: ^20.17.0 || >=22.9.0} stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} @@ -6605,8 +5903,8 @@ packages: store2@2.14.4: resolution: {integrity: sha512-srTItn1GOvyvOycgxjAnPA63FZNwy0PTyUBFMHRM+hVFltAeoh0LmNBz9SZqUS9mMqGk8rfyWyXn3GH5ReJ8Zw==} - storybook@8.6.14: - resolution: {integrity: sha512-sVKbCj/OTx67jhmauhxc2dcr1P+yOgz/x3h0krwjyMgdc5Oubvxyg4NYDZmzAw+ym36g/lzH8N0Ccp4dwtdfxw==} + storybook@10.1.6: + resolution: {integrity: sha512-IK3iJvOi5rKJzudNN3KDnKu3YPY4WtVZOXU/POBaA/S+J4n3QcDT2XEysm27dLZZQVC8sMSCOqIM83HImIeh0g==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -6659,8 +5957,14 @@ packages: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} engines: {node: '>=12'} - strip-literal@3.0.0: - resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -6684,6 +5988,10 @@ packages: synchronous-promise@2.0.17: resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} + tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -6696,6 +6004,10 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + tar@7.5.2: + resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} + engines: {node: '>=18'} + telejson@7.2.0: resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} @@ -6724,14 +6036,6 @@ packages: engines: {node: '>=10'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} - engines: {node: '>=18'} - text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -6758,22 +6062,18 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + tinyglobby@0.2.12: resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} - tinyrainbow@1.2.0: resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} @@ -6782,20 +6082,21 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + tinyspy@4.0.3: resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} engines: {node: '>=14.0.0'} - tldts-core@6.1.84: - resolution: {integrity: sha512-NaQa1W76W2aCGjXybvnMYzGSM4x8fvG2AN/pla7qxcg0ZHbooOPhA8kctmOZUDfZyhDL27OGNbwAeig8P4p1vg==} - tldts-core@7.0.13: resolution: {integrity: sha512-Td0LeWLgXJGsikI4mO82fRexgPCEyTcwWiXJERF/GBHX3Dm+HQq/wx4HnYowCbiwQ8d+ENLZc+ktbZw8H+0oEA==} - tldts@6.1.84: - resolution: {integrity: sha512-aRGIbCIF3teodtUFAYSdQONVmDRy21REM3o6JnqWn5ZkQBJJ4gHxhw6OfwQ+WkSAi3ASamrS4N4nyazWx6uTYg==} - hasBin: true - tldts@7.0.13: resolution: {integrity: sha512-z/SgnxiICGb7Gli0z7ci9BZdjy1tQORUbdmzEUA7NbIJKWhdONn78Ji8gV0PAGfHPyEd+I+W2rMzhLjWkv2Olg==} hasBin: true @@ -6804,41 +6105,17 @@ packages: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - tocbot@4.35.2: - resolution: {integrity: sha512-PyPp8sCxjPdqDdEqW8NjW5GKSSLp3TsXZPeiVl57ZPbFcIh1/U1T1XqLfelDsVRQNjVLn5kkS5mSQe/p89PH3Q==} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} - - tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} - engines: {node: '>=16'} - tough-cookie@6.0.0: resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} engines: {node: '>=16'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tr46@5.1.0: - resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} - engines: {node: '>=18'} + tr46@6.0.0: + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} + engines: {node: '>=20'} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} @@ -6861,10 +6138,19 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tsc-alias@1.8.16: resolution: {integrity: sha512-QjCyu55NFyRSBAl6+MTFwplpFcnm2Pq01rR/uxfqJoLMm6X3O14KEGtaSDZpJYaE1bJBGDjD0eSuiIWPe2T58g==} engines: {node: '>=16.20.2'} @@ -6887,8 +6173,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.4.0: - resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==} + tsup@8.5.1: + resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -6906,9 +6192,13 @@ packages: typescript: optional: true - tuf-js@2.2.1: - resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} - engines: {node: ^16.14.0 || >=18.0.0} + tuf-js@4.0.0: + resolution: {integrity: sha512-Lq7ieeGvXDXwpoSmOSgLWVdsGGV9J4a77oDTAPe/Ltrqnnm/ETaRlBAQTH5JatEh8KXuE6sddf9qAv1Q2282Hg==} + engines: {node: ^20.17.0 || >=22.9.0} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} @@ -6934,50 +6224,43 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.37.0: - resolution: {integrity: sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==} - engines: {node: '>=16'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-fest@5.3.1: + resolution: {integrity: sha512-VCn+LMHbd4t6sF3wfU/+HKT63C9OoyrSIf4b+vtWHpt2U7/4InZG467YDNMFMR70DdHjAdpPWmw2lzRdg0Xqqg==} + engines: {node: '>=20'} typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.30.1: - resolution: {integrity: sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==} + typescript-eslint@8.49.0: + resolution: {integrity: sha512-zRSVH1WXD0uXczCXw+nsdjGPUdx4dfrs5VQoHnUWmv1U3oNlAKv4FUNdLDhVUg+gYn+a5hUESqch//Rv5wVhrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.6.1-rc: + resolution: {integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==} engines: {node: '>=14.17'} hasBin: true - typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} - undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -6997,76 +6280,63 @@ packages: resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-filename@4.0.0: + resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} + engines: {node: ^18.17.0 || >=20.5.0} - unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + unique-filename@5.0.0: + resolution: {integrity: sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==} + engines: {node: ^20.17.0 || >=22.9.0} - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + unique-slug@5.0.0: + resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} + engines: {node: ^18.17.0 || >=20.5.0} - unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unique-slug@6.0.0: + resolution: {integrity: sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==} + engines: {node: ^20.17.0 || >=22.9.0} unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - - unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - - unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - unplugin@1.16.1: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + + until-async@3.0.2: + resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} + upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} @@ -7077,61 +6347,31 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} + update-browserslist-db@1.2.2: + resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} + hasBin: true peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + browserslist: '>= 4.21.0' - use-resize-observer@9.1.0: - resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} - peerDependencies: - react: 16.8.0 - 18 - react-dom: 16.8.0 - 18 + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -7139,34 +6379,26 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + validate-npm-package-name@6.0.2: + resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} + engines: {node: ^18.17.0 || >=20.5.0} vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - - vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=4.5.2' + vite: '>=7.1.11' peerDependenciesMeta: vite: optional: true - vite@7.1.12: - resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==} + vite@7.2.7: + resolution: {integrity: sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -7205,26 +6437,32 @@ packages: yaml: optional: true - vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vitest@4.0.15: + resolution: {integrity: sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.4 - '@vitest/ui': 3.2.4 + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.15 + '@vitest/browser-preview': 4.0.15 + '@vitest/browser-webdriverio': 4.0.15 + '@vitest/ui': 4.0.15 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true - '@types/debug': + '@opentelemetry/api': optional: true '@types/node': optional: true - '@vitest/browser': + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': optional: true '@vitest/ui': optional: true @@ -7237,11 +6475,9 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - walk-up-path@3.0.1: - resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} watchpack@2.4.4: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} @@ -7250,15 +6486,9 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + webidl-conversions@8.0.0: + resolution: {integrity: sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==} + engines: {node: '>=20'} webpack-sources@3.3.3: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} @@ -7285,15 +6515,9 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + whatwg-url@15.1.0: + resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} + engines: {node: '>=20'} which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} @@ -7312,9 +6536,14 @@ packages: engines: {node: '>= 8'} hasBin: true - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + which@6.0.0: + resolution: {integrity: sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==} + engines: {node: ^20.17.0 || >=22.9.0} hasBin: true why-is-node-running@2.3.0: @@ -7350,14 +6579,14 @@ packages: write-file-atomic@2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - write-file-atomic@5.0.1: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + write-file-atomic@6.0.0: + resolution: {integrity: sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==} + engines: {node: ^18.17.0 || >=20.5.0} + write-json-file@3.2.0: resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} engines: {node: '>=6'} @@ -7378,6 +6607,18 @@ packages: utf-8-validate: optional: true + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} @@ -7399,6 +6640,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@2.7.0: resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} @@ -7424,36 +6669,44 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.2.0: - resolution: {integrity: sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==} - engines: {node: '>=12.20'} - yoctocolors-cjs@2.1.2: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.1.13: + resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: - '@adyen/adyen-web@6.21.0': + '@acemir/cssom@0.9.28': {} + + '@adobe/css-tools@4.4.4': {} + + '@adyen/adyen-web@6.26.0': dependencies: '@types/applepayjs': 14.0.9 - '@types/googlepay': 0.7.6 + '@types/googlepay': 0.7.8 classnames: 2.5.1 preact: 10.22.1 - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - '@andrewbranch/untar.js@1.0.3': {} - '@arethetypeswrong/cli@0.17.4': + '@arethetypeswrong/cli@0.18.2': dependencies: - '@arethetypeswrong/core': 0.17.4 + '@arethetypeswrong/core': 0.18.2 chalk: 4.1.2 cli-table3: 0.6.5 commander: 10.0.1 @@ -7461,24 +6714,34 @@ snapshots: marked-terminal: 7.3.0(marked@9.1.6) semver: 7.7.1 - '@arethetypeswrong/core@0.17.4': + '@arethetypeswrong/core@0.18.2': dependencies: '@andrewbranch/untar.js': 1.0.3 '@loaderkit/resolve': 1.0.4 cjs-module-lexer: 1.4.3 fflate: 0.8.2 - lru-cache: 10.4.3 + lru-cache: 11.2.4 semver: 7.7.1 typescript: 5.6.1-rc validate-npm-package-name: 5.0.1 - '@asamuzakjp/css-color@3.1.1': + '@asamuzakjp/css-color@4.1.0': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - lru-cache: 10.4.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + lru-cache: 11.2.4 + + '@asamuzakjp/dom-selector@6.7.6': + dependencies: + '@asamuzakjp/nwsapi': 2.3.9 + bidi-js: 1.0.3 + css-tree: 3.1.0 + is-potential-custom-element-name: 1.0.1 + lru-cache: 11.2.4 + + '@asamuzakjp/nwsapi@2.3.9': {} '@babel/code-frame@7.26.2': dependencies: @@ -7492,42 +6755,22 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.8': {} - '@babel/compat-data@7.27.5': {} - '@babel/core@7.26.10': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.10 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helpers': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 - convert-source-map: 2.0.0 - debug: 4.4.0 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/compat-data@7.28.5': {} - '@babel/core@7.28.3': + '@babel/core@7.28.5': dependencies: - '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) - '@babel/helpers': 7.28.3 - '@babel/parser': 7.28.3 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -7536,33 +6779,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.26.10': - dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - '@babel/generator@7.28.3': dependencies: '@babel/parser': 7.28.3 '@babel/types': 7.28.2 '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.2 - '@babel/helper-compilation-targets@7.26.5': + '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 7.28.2 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -7572,32 +6811,39 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.26.9(@babel/core@7.26.10)': + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@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.26.5(@babel/core@7.26.10) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.10)': + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.10)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - debug: 4.4.0 + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -7605,619 +6851,581 @@ snapshots: '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.25.9': - dependencies: - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.25.9': + '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.3 - '@babel/types': 7.28.2 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.3 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.25.9': + '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.26.10 - - '@babel/helper-plugin-utils@7.26.5': {} + '@babel/types': 7.28.2 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.3 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.10)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/traverse': 7.28.3 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.25.9': {} '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-identifier@7.28.5': {} '@babel/helper-validator-option@7.27.1': {} - '@babel/helper-wrap-function@7.25.9': + '@babel/helper-wrap-function@7.28.3': dependencies: - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.3 + '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color - '@babel/helpers@7.26.10': - dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 - - '@babel/helpers@7.28.3': + '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - - '@babel/parser@7.26.10': - dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/parser@7.28.3': dependencies: '@babel/types': 7.28.2 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)': + '@babel/parser@7.28.5': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.10 + '@babel/types': 7.28.5 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 + '@babel/core': 7.28.5 - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/traverse': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.10)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) - '@babel/traverse': 7.26.10 - globals: 11.12.0 + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/template': 7.26.9 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.10)': + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.10)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/traverse': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.10)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.10) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.3)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - regenerator-transform: 0.15.2 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.10)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.10)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.10) - '@babel/helper-plugin-utils': 7.26.5 - - '@babel/preset-env@7.26.9(@babel/core@7.26.10)': - dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.10) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.10) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.10) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.10) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.10) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.10) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.10) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.10) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.10) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.10) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.10) - core-js-compat: 3.41.0 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/preset-env@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.47.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.10)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.26.10 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.2 esutils: 2.0.3 '@babel/runtime@7.26.10': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.26.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 - '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 - - '@babel/traverse@7.26.10': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 - debug: 4.4.0 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@babel/traverse@7.28.3': dependencies: @@ -8231,53 +7439,63 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.26.10': + '@babel/traverse@7.28.5': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@base2/pretty-print-object@1.0.1': {} + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@bcoe/v8-coverage@1.0.2': {} - '@biomejs/biome@2.2.4': + '@biomejs/biome@2.3.8': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.2.4 - '@biomejs/cli-darwin-x64': 2.2.4 - '@biomejs/cli-linux-arm64': 2.2.4 - '@biomejs/cli-linux-arm64-musl': 2.2.4 - '@biomejs/cli-linux-x64': 2.2.4 - '@biomejs/cli-linux-x64-musl': 2.2.4 - '@biomejs/cli-win32-arm64': 2.2.4 - '@biomejs/cli-win32-x64': 2.2.4 - - '@biomejs/cli-darwin-arm64@2.2.4': + '@biomejs/cli-darwin-arm64': 2.3.8 + '@biomejs/cli-darwin-x64': 2.3.8 + '@biomejs/cli-linux-arm64': 2.3.8 + '@biomejs/cli-linux-arm64-musl': 2.3.8 + '@biomejs/cli-linux-x64': 2.3.8 + '@biomejs/cli-linux-x64-musl': 2.3.8 + '@biomejs/cli-win32-arm64': 2.3.8 + '@biomejs/cli-win32-x64': 2.3.8 + + '@biomejs/cli-darwin-arm64@2.3.8': optional: true - '@biomejs/cli-darwin-x64@2.2.4': + '@biomejs/cli-darwin-x64@2.3.8': optional: true - '@biomejs/cli-linux-arm64-musl@2.2.4': + '@biomejs/cli-linux-arm64-musl@2.3.8': optional: true - '@biomejs/cli-linux-arm64@2.2.4': + '@biomejs/cli-linux-arm64@2.3.8': optional: true - '@biomejs/cli-linux-x64-musl@2.2.4': + '@biomejs/cli-linux-x64-musl@2.3.8': optional: true - '@biomejs/cli-linux-x64@2.2.4': + '@biomejs/cli-linux-x64@2.3.8': optional: true - '@biomejs/cli-win32-arm64@2.2.4': + '@biomejs/cli-win32-arm64@2.3.8': optional: true - '@biomejs/cli-win32-x64@2.2.4': + '@biomejs/cli-win32-x64@2.3.8': optional: true '@braidai/lang@1.1.0': {} @@ -8288,7 +7506,9 @@ snapshots: '@braintree/browser-detection@1.17.2': {} - '@braintree/browser-detection@2.0.2': {} + '@braintree/browser-detection@2.1.0': + dependencies: + detectincognitojs: 1.6.0 '@braintree/event-emitter@0.4.1': {} @@ -8302,52 +7522,52 @@ snapshots: '@braintree/wrap-promise@2.1.0': {} - '@bundled-es-modules/cookie@2.0.1': - dependencies: - cookie: 0.7.2 - - '@bundled-es-modules/statuses@1.0.1': + '@chromatic-com/storybook@4.1.3(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - statuses: 2.0.1 + '@neoconfetti/react': 1.0.0 + chromatic: 13.3.4 + filesize: 10.1.6 + jsonfile: 6.1.0 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + strip-ansi: 7.1.0 + transitivePeerDependencies: + - '@chromatic-com/cypress' + - '@chromatic-com/playwright' - '@bundled-es-modules/tough-cookie@0.1.6': - dependencies: - '@types/tough-cookie': 4.0.5 - tough-cookie: 4.1.4 + '@colors/colors@1.5.0': + optional: true - '@commercelayer/js-auth@6.7.2': {} + '@commercelayer/js-auth@7.1.0': {} - '@commercelayer/organization-config@2.4.0': + '@commercelayer/organization-config@2.5.0': dependencies: merge-anything: 5.1.7 - '@commercelayer/sdk@6.38.0': {} + '@commercelayer/sdk@7.4.1': {} - '@commercelayer/sdk@6.46.0': {} + '@csstools/color-helpers@5.1.0': {} - '@commercelayer/sdk@6.36.0': {} - - '@commercelayer/sdk@6.39.0': {} - - '@csstools/color-helpers@5.0.2': {} + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/color-helpers': 5.1.0 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/color-helpers': 5.0.2 - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-syntax-patches-for-csstree@1.0.14(postcss@8.5.6)': dependencies: - '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.6 - '@csstools/css-tokenizer@3.0.3': {} + '@csstools/css-tokenizer@3.0.4': {} '@emnapi/core@1.3.1': dependencies: @@ -8362,103 +7582,213 @@ snapshots: dependencies: tslib: 2.8.1 - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.1)': dependencies: - react: 18.3.1 + react: 19.2.1 + + '@esbuild/aix-ppc64@0.25.12': + optional: true + + '@esbuild/aix-ppc64@0.27.0': + optional: true + + '@esbuild/android-arm64@0.25.12': + optional: true + + '@esbuild/android-arm64@0.27.0': + optional: true + + '@esbuild/android-arm@0.25.12': + optional: true + + '@esbuild/android-arm@0.27.0': + optional: true + + '@esbuild/android-x64@0.25.12': + optional: true + + '@esbuild/android-x64@0.27.0': + optional: true + + '@esbuild/darwin-arm64@0.25.12': + optional: true + + '@esbuild/darwin-arm64@0.27.0': + optional: true + + '@esbuild/darwin-x64@0.25.12': + optional: true + + '@esbuild/darwin-x64@0.27.0': + optional: true + + '@esbuild/freebsd-arm64@0.25.12': + optional: true + + '@esbuild/freebsd-arm64@0.27.0': + optional: true + + '@esbuild/freebsd-x64@0.25.12': + optional: true + + '@esbuild/freebsd-x64@0.27.0': + optional: true + + '@esbuild/linux-arm64@0.25.12': + optional: true + + '@esbuild/linux-arm64@0.27.0': + optional: true + + '@esbuild/linux-arm@0.25.12': + optional: true + + '@esbuild/linux-arm@0.27.0': + optional: true + + '@esbuild/linux-ia32@0.25.12': + optional: true + + '@esbuild/linux-ia32@0.27.0': + optional: true + + '@esbuild/linux-loong64@0.25.12': + optional: true + + '@esbuild/linux-loong64@0.27.0': + optional: true + + '@esbuild/linux-mips64el@0.25.12': + optional: true + + '@esbuild/linux-mips64el@0.27.0': + optional: true - '@esbuild/aix-ppc64@0.25.1': + '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/android-arm64@0.25.1': + '@esbuild/linux-ppc64@0.27.0': optional: true - '@esbuild/android-arm@0.25.1': + '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/android-x64@0.25.1': + '@esbuild/linux-riscv64@0.27.0': optional: true - '@esbuild/darwin-arm64@0.25.1': + '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/darwin-x64@0.25.1': + '@esbuild/linux-s390x@0.27.0': optional: true - '@esbuild/freebsd-arm64@0.25.1': + '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.25.1': + '@esbuild/linux-x64@0.27.0': optional: true - '@esbuild/linux-arm64@0.25.1': + '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/linux-arm@0.25.1': + '@esbuild/netbsd-arm64@0.27.0': optional: true - '@esbuild/linux-ia32@0.25.1': + '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/linux-loong64@0.25.1': + '@esbuild/netbsd-x64@0.27.0': optional: true - '@esbuild/linux-mips64el@0.25.1': + '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.25.1': + '@esbuild/openbsd-arm64@0.27.0': optional: true - '@esbuild/linux-riscv64@0.25.1': + '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/linux-s390x@0.25.1': + '@esbuild/openbsd-x64@0.27.0': optional: true - '@esbuild/linux-x64@0.25.1': + '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.25.1': + '@esbuild/openharmony-arm64@0.27.0': optional: true - '@esbuild/netbsd-x64@0.25.1': + '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.25.1': + '@esbuild/sunos-x64@0.27.0': optional: true - '@esbuild/openbsd-x64@0.25.1': + '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/sunos-x64@0.25.1': + '@esbuild/win32-arm64@0.27.0': optional: true - '@esbuild/win32-arm64@0.25.1': + '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.25.1': + '@esbuild/win32-ia32@0.27.0': optional: true - '@esbuild/win32-x64@0.25.1': + '@esbuild/win32-x64@0.25.12': optional: true - '@faker-js/faker@10.0.0': {} + '@esbuild/win32-x64@0.27.0': + optional: true + + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1)': + dependencies: + eslint: 9.39.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 - '@floating-ui/core@1.6.9': + '@eslint/core@0.17.0': dependencies: - '@floating-ui/utils': 0.2.9 + '@types/json-schema': 7.0.15 - '@floating-ui/dom@1.6.13': + '@eslint/eslintrc@3.3.3': dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 + ajv: 6.12.6 + debug: 4.4.1 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color - '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@eslint/js@9.39.1': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': dependencies: - '@floating-ui/dom': 1.6.13 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@eslint/core': 0.17.0 + levn: 0.4.1 - '@floating-ui/utils@0.2.9': {} + '@faker-js/faker@10.1.0': {} '@humanfs/core@0.19.1': {} @@ -8475,55 +7805,162 @@ snapshots: '@hutson/parse-repository-url@3.0.2': {} - '@inquirer/confirm@5.1.8(@types/node@24.3.1)': + '@inquirer/ansi@1.0.2': {} + + '@inquirer/checkbox@4.3.2(@types/node@24.10.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/confirm@5.1.21(@types/node@24.10.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/confirm@5.1.8(@types/node@24.10.2)': + dependencies: + '@inquirer/core': 10.1.9(@types/node@24.10.2) + '@inquirer/type': 3.0.5(@types/node@24.10.2) + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/core@10.1.9(@types/node@24.10.2)': + dependencies: + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@24.10.2) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/core@10.3.2(@types/node@24.10.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.2) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/editor@4.2.23(@types/node@24.10.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/external-editor': 1.0.3(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/expand@4.0.23(@types/node@24.10.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/external-editor@1.0.3(@types/node@24.10.2)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.0 + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/figures@1.0.11': {} + + '@inquirer/figures@1.0.15': {} + + '@inquirer/input@4.3.1(@types/node@24.10.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/number@3.0.23(@types/node@24.10.2)': dependencies: - '@inquirer/core': 10.1.9(@types/node@24.3.1) - '@inquirer/type': 3.0.5(@types/node@24.3.1) + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.2 - '@inquirer/confirm@5.1.8(@types/node@24.9.1)': + '@inquirer/password@4.0.23(@types/node@24.10.2)': dependencies: - '@inquirer/core': 10.1.9(@types/node@24.9.1) - '@inquirer/type': 3.0.5(@types/node@24.9.1) + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) + optionalDependencies: + '@types/node': 24.10.2 + + '@inquirer/prompts@7.10.1(@types/node@24.10.2)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@24.10.2) + '@inquirer/confirm': 5.1.21(@types/node@24.10.2) + '@inquirer/editor': 4.2.23(@types/node@24.10.2) + '@inquirer/expand': 4.0.23(@types/node@24.10.2) + '@inquirer/input': 4.3.1(@types/node@24.10.2) + '@inquirer/number': 3.0.23(@types/node@24.10.2) + '@inquirer/password': 4.0.23(@types/node@24.10.2) + '@inquirer/rawlist': 4.1.11(@types/node@24.10.2) + '@inquirer/search': 3.2.2(@types/node@24.10.2) + '@inquirer/select': 4.4.2(@types/node@24.10.2) optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.10.2 - '@inquirer/core@10.1.9(@types/node@24.3.1)': + '@inquirer/rawlist@4.1.11(@types/node@24.10.2)': dependencies: - '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@24.3.1) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.2 - '@inquirer/core@10.1.9(@types/node@24.9.1)': + '@inquirer/search@3.2.2(@types/node@24.10.2)': dependencies: - '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@24.9.1) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.2) + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.10.2 - '@inquirer/figures@1.0.11': {} + '@inquirer/select@4.4.2(@types/node@24.10.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.10.2 - '@inquirer/type@3.0.5(@types/node@24.3.1)': + '@inquirer/type@3.0.10(@types/node@24.10.2)': optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.2 - '@inquirer/type@3.0.5(@types/node@24.9.1)': + '@inquirer/type@3.0.5(@types/node@24.10.2)': optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.10.2 + + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 '@isaacs/cliui@8.0.2': dependencies: @@ -8534,177 +7971,117 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/string-locale-compare@1.1.0': {} - - '@istanbuljs/load-nyc-config@1.1.0': + '@isaacs/fs-minipass@4.0.1': dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} + minipass: 7.1.2 - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 + '@isaacs/string-locale-compare@1.1.0': {} - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.26.10 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color + '@jest/diff-sequences@30.0.1': {} - '@jest/types@27.5.1': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 24.3.1 - '@types/yargs': 16.0.9 - chalk: 4.1.2 + '@jest/get-type@30.1.0': {} - '@jest/types@29.6.3': + '@jest/schemas@30.0.5': dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 24.3.1 - '@types/yargs': 17.0.33 - chalk: 4.1.2 + '@sinclair/typebox': 0.34.41 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))': dependencies: - glob: 7.2.3 - glob-promise: 4.2.2(glob@7.2.3) - magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.8.3) - vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) + glob: 10.4.5 + magic-string: 0.30.17 + react-docgen-typescript: 2.2.2(typescript@5.9.3) + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@jridgewell/trace-mapping@0.3.30': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@juggle/resize-observer@3.4.0': {} - - '@lerna/create@8.2.3(encoding@0.1.13)(typescript@5.9.2)': + '@lerna/create@9.0.3(@types/node@24.10.2)(typescript@5.9.3)': dependencies: - '@npmcli/arborist': 7.5.4 - '@npmcli/package-json': 5.2.0 - '@npmcli/run-script': 8.1.0 - '@nx/devkit': 20.6.0(nx@20.6.0) + '@npmcli/arborist': 9.1.6 + '@npmcli/package-json': 7.0.2 + '@npmcli/run-script': 10.0.2 + '@nx/devkit': 22.2.0(nx@22.2.0) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 20.1.2 aproba: 2.0.0 byte-size: 8.1.1 chalk: 4.1.0 - clone-deep: 4.0.1 cmd-shim: 6.0.3 color-support: 1.1.3 columnify: 1.6.0 console-control-strings: 1.1.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.9.2) + cosmiconfig: 9.0.0(typescript@5.9.3) dedent: 1.5.3 execa: 5.0.0 fs-extra: 11.3.0 get-stream: 6.0.0 git-url-parse: 14.0.0 glob-parent: 6.0.2 - graceful-fs: 4.2.11 has-unicode: 2.0.1 ini: 1.3.8 - init-package-json: 6.0.3 - inquirer: 8.2.6 + init-package-json: 8.2.2 + inquirer: 12.9.6(@types/node@24.10.2) is-ci: 3.0.1 is-stream: 2.0.0 - js-yaml: 4.1.0 - libnpmpublish: 9.0.9 + js-yaml: 4.1.1 + libnpmpublish: 11.1.2 load-json-file: 6.2.0 - lodash: 4.17.21 make-dir: 4.0.0 + make-fetch-happen: 15.0.2 minimatch: 3.0.5 multimatch: 5.0.0 - node-fetch: 2.6.7(encoding@0.1.13) - npm-package-arg: 11.0.2 - npm-packlist: 8.0.2 - npm-registry-fetch: 17.1.0 - nx: 20.6.0 + npm-package-arg: 13.0.1 + npm-packlist: 10.0.3 + npm-registry-fetch: 19.1.0 + nx: 22.2.0 p-map: 4.0.0 p-map-series: 2.1.0 p-queue: 6.6.2 p-reduce: 2.1.0 - pacote: 18.0.6 + pacote: 21.0.1 pify: 5.0.0 read-cmd-shim: 4.0.0 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.7.1 + semver: 7.7.2 set-blocking: 2.0.0 signal-exit: 3.0.7 slash: 3.0.0 - ssri: 10.0.6 + ssri: 12.0.0 string-width: 4.2.3 tar: 6.2.1 temp-dir: 1.0.0 through: 2.3.8 tinyglobby: 0.2.12 upath: 2.0.1 - uuid: 10.0.0 + uuid: 11.1.0 validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.1 + validate-npm-package-name: 6.0.2 wide-align: 1.1.5 write-file-atomic: 5.0.1 write-pkg: 4.0.0 @@ -8713,10 +8090,9 @@ snapshots: transitivePeerDependencies: - '@swc-node/register' - '@swc/core' + - '@types/node' - babel-plugin-macros - - bluebird - debug - - encoding - supports-color - typescript @@ -8724,34 +8100,13 @@ snapshots: dependencies: '@braidai/lang': 1.1.0 - '@mdx-js/react@2.3.0(react@18.3.1)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.1.2 - react: 18.3.1 - - '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': + '@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 - react: 18.3.1 - - '@mdx-js/react@3.1.0(@types/react@19.1.2)(react@19.1.0)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.1.2 - react: 19.1.0 - - '@mswjs/interceptors@0.37.3': - dependencies: - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/logger': 0.3.0 - '@open-draft/until': 2.1.0 - is-node-process: 1.2.0 - outvariant: 1.4.3 - strict-event-emitter: 0.5.1 + '@types/react': 19.2.7 + react: 19.2.1 - '@mswjs/interceptors@0.39.2': + '@mswjs/interceptors@0.40.0': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -8766,6 +8121,8 @@ snapshots: '@emnapi/runtime': 1.3.1 '@tybys/wasm-util': 0.9.0 + '@neoconfetti/react@1.0.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -8778,7 +8135,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@npmcli/agent@2.2.2': + '@npmcli/agent@3.0.0': dependencies: agent-base: 7.1.3 http-proxy-agent: 7.0.2 @@ -8788,634 +8145,283 @@ snapshots: transitivePeerDependencies: - supports-color - '@npmcli/arborist@7.5.4': + '@npmcli/agent@4.0.0': + dependencies: + agent-base: 7.1.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 11.2.4 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/arborist@9.1.6': dependencies: '@isaacs/string-locale-compare': 1.1.0 - '@npmcli/fs': 3.1.1 - '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/map-workspaces': 3.0.6 - '@npmcli/metavuln-calculator': 7.1.1 - '@npmcli/name-from-folder': 2.0.0 - '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.2.0 - '@npmcli/query': 3.1.0 - '@npmcli/redact': 2.0.1 - '@npmcli/run-script': 8.1.0 - bin-links: 4.0.4 - cacache: 18.0.4 + '@npmcli/fs': 4.0.0 + '@npmcli/installed-package-contents': 3.0.0 + '@npmcli/map-workspaces': 5.0.3 + '@npmcli/metavuln-calculator': 9.0.3 + '@npmcli/name-from-folder': 3.0.0 + '@npmcli/node-gyp': 4.0.0 + '@npmcli/package-json': 7.0.2 + '@npmcli/query': 4.0.1 + '@npmcli/redact': 3.2.2 + '@npmcli/run-script': 10.0.2 + bin-links: 5.0.0 + cacache: 20.0.3 common-ancestor-path: 1.0.1 - hosted-git-info: 7.0.2 - json-parse-even-better-errors: 3.0.2 + hosted-git-info: 9.0.2 json-stringify-nice: 1.1.4 - lru-cache: 10.4.3 - minimatch: 9.0.5 - nopt: 7.2.1 - npm-install-checks: 6.3.0 - npm-package-arg: 11.0.2 - npm-pick-manifest: 9.1.0 - npm-registry-fetch: 17.1.0 - pacote: 18.0.6 - parse-conflict-json: 3.0.1 - proc-log: 4.2.0 - proggy: 2.0.0 + lru-cache: 11.2.4 + minimatch: 10.1.1 + nopt: 8.1.0 + npm-install-checks: 7.1.2 + npm-package-arg: 13.0.1 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.0 + pacote: 21.0.4 + parse-conflict-json: 4.0.0 + proc-log: 5.0.0 + proggy: 3.0.0 promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 - read-package-json-fast: 3.0.2 - semver: 7.7.1 - ssri: 10.0.6 + semver: 7.7.2 + ssri: 12.0.0 treeverse: 3.0.0 - walk-up-path: 3.0.1 + walk-up-path: 4.0.0 transitivePeerDependencies: - - bluebird - supports-color - '@npmcli/fs@3.1.1': + '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.1 + semver: 7.7.2 - '@npmcli/git@5.0.8': + '@npmcli/fs@5.0.0': dependencies: - '@npmcli/promise-spawn': 7.0.2 - ini: 4.1.3 + semver: 7.7.2 + + '@npmcli/git@6.0.3': + dependencies: + '@npmcli/promise-spawn': 8.0.3 + ini: 5.0.0 lru-cache: 10.4.3 - npm-pick-manifest: 9.1.0 - proc-log: 4.2.0 - promise-inflight: 1.0.1 + npm-pick-manifest: 10.0.0 + proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.7.1 - which: 4.0.0 - transitivePeerDependencies: - - bluebird + semver: 7.7.2 + which: 5.0.0 - '@npmcli/installed-package-contents@2.1.0': + '@npmcli/git@7.0.1': dependencies: - npm-bundled: 3.0.1 - npm-normalize-package-bin: 3.0.1 + '@npmcli/promise-spawn': 9.0.1 + ini: 6.0.0 + lru-cache: 11.2.4 + npm-pick-manifest: 11.0.3 + proc-log: 6.1.0 + promise-retry: 2.0.1 + semver: 7.7.2 + which: 6.0.0 - '@npmcli/map-workspaces@3.0.6': + '@npmcli/installed-package-contents@3.0.0': dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.4.5 - minimatch: 9.0.5 - read-package-json-fast: 3.0.2 + npm-bundled: 4.0.0 + npm-normalize-package-bin: 4.0.0 - '@npmcli/metavuln-calculator@7.1.1': + '@npmcli/installed-package-contents@4.0.0': dependencies: - cacache: 18.0.4 - json-parse-even-better-errors: 3.0.2 - pacote: 18.0.6 - proc-log: 4.2.0 - semver: 7.7.1 + npm-bundled: 5.0.0 + npm-normalize-package-bin: 5.0.0 + + '@npmcli/map-workspaces@5.0.3': + dependencies: + '@npmcli/name-from-folder': 4.0.0 + '@npmcli/package-json': 7.0.2 + glob: 13.0.0 + minimatch: 10.1.1 + + '@npmcli/metavuln-calculator@9.0.3': + dependencies: + cacache: 20.0.3 + json-parse-even-better-errors: 5.0.0 + pacote: 21.0.4 + proc-log: 6.1.0 + semver: 7.7.2 transitivePeerDependencies: - - bluebird - supports-color - '@npmcli/name-from-folder@2.0.0': {} + '@npmcli/name-from-folder@3.0.0': {} - '@npmcli/node-gyp@3.0.0': {} + '@npmcli/name-from-folder@4.0.0': {} - '@npmcli/package-json@5.2.0': + '@npmcli/node-gyp@4.0.0': {} + + '@npmcli/node-gyp@5.0.0': {} + + '@npmcli/package-json@7.0.2': dependencies: - '@npmcli/git': 5.0.8 - glob: 10.4.5 - hosted-git-info: 7.0.2 - json-parse-even-better-errors: 3.0.2 - normalize-package-data: 6.0.2 - proc-log: 4.2.0 - semver: 7.7.1 - transitivePeerDependencies: - - bluebird + '@npmcli/git': 7.0.1 + glob: 11.1.0 + hosted-git-info: 9.0.2 + json-parse-even-better-errors: 5.0.0 + proc-log: 6.1.0 + semver: 7.7.2 + validate-npm-package-license: 3.0.4 + + '@npmcli/promise-spawn@8.0.3': + dependencies: + which: 5.0.0 - '@npmcli/promise-spawn@7.0.2': + '@npmcli/promise-spawn@9.0.1': dependencies: - which: 4.0.0 + which: 6.0.0 - '@npmcli/query@3.1.0': + '@npmcli/query@4.0.1': dependencies: - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.1.1 - '@npmcli/redact@2.0.1': {} + '@npmcli/redact@3.2.2': {} - '@npmcli/run-script@8.1.0': + '@npmcli/run-script@10.0.2': dependencies: - '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.2.0 - '@npmcli/promise-spawn': 7.0.2 - node-gyp: 10.3.1 - proc-log: 4.2.0 - which: 4.0.0 + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.2 + '@npmcli/promise-spawn': 9.0.1 + node-gyp: 11.5.0 + proc-log: 6.1.0 + which: 5.0.0 transitivePeerDependencies: - - bluebird - supports-color - '@nx/devkit@20.6.0(nx@20.6.0)': + '@nx/devkit@22.2.0(nx@22.2.0)': dependencies: + '@zkochan/js-yaml': 0.0.7 ejs: 3.1.10 enquirer: 2.3.6 - ignore: 5.3.2 minimatch: 9.0.3 - nx: 20.6.0 - semver: 7.7.1 - tmp: 0.2.5 + nx: 22.2.0 + semver: 7.7.2 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/nx-darwin-arm64@20.6.0': - optional: true - - '@nx/nx-darwin-x64@20.6.0': - optional: true - - '@nx/nx-freebsd-x64@20.6.0': - optional: true - - '@nx/nx-linux-arm-gnueabihf@20.6.0': - optional: true - - '@nx/nx-linux-arm64-gnu@20.6.0': - optional: true - - '@nx/nx-linux-arm64-musl@20.6.0': - optional: true - - '@nx/nx-linux-x64-gnu@20.6.0': + '@nx/nx-darwin-arm64@22.2.0': optional: true - '@nx/nx-linux-x64-musl@20.6.0': + '@nx/nx-darwin-x64@22.2.0': optional: true - '@nx/nx-win32-arm64-msvc@20.6.0': + '@nx/nx-freebsd-x64@22.2.0': optional: true - '@nx/nx-win32-x64-msvc@20.6.0': - optional: true - - '@octokit/auth-token@4.0.0': {} - - '@octokit/core@5.2.0': - dependencies: - '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.1.1 - '@octokit/request': 8.4.1 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.8.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.1 - - '@octokit/endpoint@9.0.6': - dependencies: - '@octokit/types': 13.8.0 - universal-user-agent: 6.0.1 - - '@octokit/graphql@7.1.1': - dependencies: - '@octokit/request': 8.4.1 - '@octokit/types': 13.8.0 - universal-user-agent: 6.0.1 - - '@octokit/openapi-types@23.0.1': {} - - '@octokit/plugin-enterprise-rest@6.0.1': {} - - '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.0)': - dependencies: - '@octokit/core': 5.2.0 - '@octokit/types': 13.8.0 - - '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.0)': - dependencies: - '@octokit/core': 5.2.0 - - '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.0)': - dependencies: - '@octokit/core': 5.2.0 - '@octokit/types': 13.8.0 - - '@octokit/request-error@5.1.1': - dependencies: - '@octokit/types': 13.8.0 - deprecation: 2.3.1 - once: 1.4.0 - - '@octokit/request@8.4.1': - dependencies: - '@octokit/endpoint': 9.0.6 - '@octokit/request-error': 5.1.1 - '@octokit/types': 13.8.0 - universal-user-agent: 6.0.1 - - '@octokit/rest@20.1.2': - dependencies: - '@octokit/core': 5.2.0 - '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.0) - '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.0) - '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.0) - - '@octokit/types@13.8.0': - dependencies: - '@octokit/openapi-types': 23.0.1 - - '@open-draft/deferred-promise@2.2.0': {} - - '@open-draft/logger@0.3.0': - dependencies: - is-node-process: 1.2.0 - outvariant: 1.4.3 - - '@open-draft/until@2.1.0': {} - - '@paypal/accelerated-checkout-loader@1.1.0': - dependencies: - '@braintree/asset-loader': 2.0.0 - envify: 4.1.0 - typescript: 4.9.5 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@playwright/test@1.55.0': - dependencies: - playwright: 1.56.1 - - '@radix-ui/number@1.0.1': - dependencies: - '@babel/runtime': 7.26.10 - - '@radix-ui/primitive@1.0.1': - dependencies: - '@babel/runtime': 7.26.10 - - '@radix-ui/primitive@1.1.1': {} - - '@radix-ui/react-arrow@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) - - '@radix-ui/react-collection@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) - - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) - - '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@nx/nx-linux-arm-gnueabihf@22.2.0': + optional: true - '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@nx/nx-linux-arm64-gnu@22.2.0': + optional: true - '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@nx/nx-linux-arm64-musl@22.2.0': + optional: true - '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@nx/nx-linux-x64-gnu@22.2.0': + optional: true - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@nx/nx-linux-x64-musl@22.2.0': + optional: true - '@radix-ui/react-popper@1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/rect': 1.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@nx/nx-win32-arm64-msvc@22.2.0': + optional: true - '@radix-ui/react-portal@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@nx/nx-win32-x64-msvc@22.2.0': + optional: true - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@octokit/auth-token@4.0.0': {} - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@octokit/core@5.2.0': dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) - - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.1 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.8.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 - '@radix-ui/react-select@1.2.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@octokit/endpoint@9.0.6': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@octokit/graphql@7.1.1': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@octokit/request': 8.4.1 + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 - '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@octokit/openapi-types@23.0.1': {} - '@radix-ui/react-slot@1.1.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@octokit/plugin-enterprise-rest@6.0.1': {} - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@octokit/plugin-paginate-rest@11.4.4-cjs.2(@octokit/core@5.2.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) - - '@radix-ui/react-toolbar@1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.1(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@octokit/core': 5.2.0 + '@octokit/types': 13.8.0 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@octokit/plugin-request-log@4.0.1(@octokit/core@5.2.0)': dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@octokit/core': 5.2.0 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1(@octokit/core@5.2.0)': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@octokit/core': 5.2.0 + '@octokit/types': 13.8.0 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@octokit/request-error@5.1.1': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@octokit/types': 13.8.0 + deprecation: 2.3.1 + once: 1.4.0 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@octokit/request@8.4.1': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': + '@octokit/rest@20.1.2': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@octokit/core': 5.2.0 + '@octokit/plugin-paginate-rest': 11.4.4-cjs.2(@octokit/core@5.2.0) + '@octokit/plugin-request-log': 4.0.1(@octokit/core@5.2.0) + '@octokit/plugin-rest-endpoint-methods': 13.3.2-cjs.1(@octokit/core@5.2.0) - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@octokit/types@13.8.0': dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@octokit/openapi-types': 23.0.1 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@open-draft/deferred-promise@2.2.0': {} - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@open-draft/logger@0.3.0': dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + is-node-process: 1.2.0 + outvariant: 1.4.3 - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/rect': 1.0.1 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@open-draft/until@2.1.0': {} - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': + '@paypal/accelerated-checkout-loader@1.2.1': dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 + '@braintree/asset-loader': 2.0.0 + envify: 4.1.0 + typescript: 4.9.5 - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 19.1.2(@types/react@18.3.18) + '@pkgjs/parseargs@0.11.0': + optional: true - '@radix-ui/rect@1.0.1': + '@playwright/test@1.57.0': dependencies: - '@babel/runtime': 7.26.10 + playwright: 1.57.0 - '@rolldown/pluginutils@1.0.0-beta.34': {} + '@rolldown/pluginutils@1.0.0-beta.53': {} '@rollup/pluginutils@4.2.1': dependencies: @@ -9424,9 +8430,9 @@ snapshots: '@rollup/pluginutils@5.1.4(rollup@4.49.0)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.49.0 @@ -9490,356 +8496,213 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.49.0': optional: true - '@sigstore/bundle@2.3.2': + '@sigstore/bundle@4.0.0': dependencies: - '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/protobuf-specs': 0.5.0 - '@sigstore/core@1.1.0': {} + '@sigstore/core@3.0.0': {} - '@sigstore/protobuf-specs@0.3.3': {} + '@sigstore/protobuf-specs@0.5.0': {} - '@sigstore/sign@2.3.2': + '@sigstore/sign@4.0.1': dependencies: - '@sigstore/bundle': 2.3.2 - '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.3 - make-fetch-happen: 13.0.1 - proc-log: 4.2.0 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.0.0 + '@sigstore/protobuf-specs': 0.5.0 + make-fetch-happen: 15.0.2 + proc-log: 5.0.0 promise-retry: 2.0.1 transitivePeerDependencies: - supports-color - '@sigstore/tuf@2.3.4': + '@sigstore/tuf@4.0.0': dependencies: - '@sigstore/protobuf-specs': 0.3.3 - tuf-js: 2.2.1 + '@sigstore/protobuf-specs': 0.5.0 + tuf-js: 4.0.0 transitivePeerDependencies: - supports-color - '@sigstore/verify@1.2.1': + '@sigstore/verify@3.0.0': dependencies: - '@sigstore/bundle': 2.3.2 - '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.0.0 + '@sigstore/protobuf-specs': 0.5.0 - '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.34.41': {} '@sindresorhus/is@4.6.0': {} - '@storybook/addon-actions@7.6.20': - dependencies: - '@storybook/core-events': 7.6.20 - '@storybook/global': 5.0.0 - '@types/uuid': 9.0.8 - dequal: 2.0.3 - polished: 4.3.1 - uuid: 9.0.1 + '@standard-schema/spec@1.0.0': {} - '@storybook/addon-actions@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-actions@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) uuid: 9.0.1 - '@storybook/addon-backgrounds@7.6.20': - dependencies: - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - ts-dedent: 2.2.0 + '@storybook/addon-actions@9.0.8': {} - '@storybook/addon-backgrounds@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-backgrounds@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 - '@storybook/addon-controls@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - lodash: 4.17.21 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - encoding - - react - - react-dom - - supports-color + '@storybook/addon-backgrounds@9.0.8': {} - '@storybook/addon-controls@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-controls@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.6.12(prettier@2.8.8) - ts-dedent: 2.2.0 - - '@storybook/addon-docs@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@jest/transform': 29.7.0 - '@mdx-js/react': 2.3.0(react@18.3.1) - '@storybook/blocks': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/csf-plugin': 7.6.20 - '@storybook/csf-tools': 7.6.20 - '@storybook/global': 5.0.0 - '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.20 - '@storybook/postinstall': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 - fs-extra: 11.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - remark-external-links: 8.0.0 - remark-slug: 6.1.0 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - '@storybook/addon-docs@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-docs@10.1.6(@types/react@19.2.7)(esbuild@0.27.0)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.1.2)(react@19.1.0) - '@storybook/blocks': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) - '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - storybook: 8.6.12(prettier@2.8.8) + '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.1) + '@storybook/csf-plugin': 10.1.6(esbuild@0.27.0)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0)) + '@storybook/icons': 2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@storybook/react-dom-shim': 10.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - - '@storybook/addon-essentials@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@storybook/addon-actions': 7.6.20 - '@storybook/addon-backgrounds': 7.6.20 - '@storybook/addon-controls': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-highlight': 7.6.20 - '@storybook/addon-measure': 7.6.20 - '@storybook/addon-outline': 7.6.20 - '@storybook/addon-toolbars': 7.6.20 - '@storybook/addon-viewport': 7.6.20 - '@storybook/core-common': 7.6.20(encoding@0.1.13) - '@storybook/manager-api': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/node-logger': 7.6.20 - '@storybook/preview-api': 7.6.20 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + - esbuild + - rollup + - vite + - webpack + + '@storybook/addon-docs@8.6.14(@types/react@19.2.7)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': + dependencies: + '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.1) + '@storybook/blocks': 8.6.14(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/csf-plugin': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/react-dom-shim': 8.6.14(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - '@storybook/addon-essentials@8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8))': - dependencies: - '@storybook/addon-actions': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-backgrounds': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-controls': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-docs': 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-highlight': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-measure': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-outline': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-toolbars': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-viewport': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - storybook: 8.6.12(prettier@2.8.8) + '@storybook/addon-essentials@8.6.14(@types/react@19.2.7)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': + dependencies: + '@storybook/addon-actions': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-backgrounds': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-controls': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-docs': 8.6.14(@types/react@19.2.7)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-highlight': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-measure': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-outline': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-toolbars': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/addon-viewport': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-highlight@7.6.20': - dependencies: - '@storybook/global': 5.0.0 - - '@storybook/addon-highlight@8.6.12(storybook@8.6.12(prettier@2.8.8))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.6.12(prettier@2.8.8) - - '@storybook/addon-interactions@7.6.20': + '@storybook/addon-highlight@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 - '@storybook/types': 7.6.20 - jest-mock: 27.5.1 - polished: 4.3.1 - ts-dedent: 2.2.0 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/addon-interactions@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-interactions@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + '@storybook/instrumenter': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@storybook/test': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) polished: 4.3.1 - storybook: 8.6.12(prettier@2.8.8) - ts-dedent: 2.2.0 - - '@storybook/addon-links@7.6.20(react@18.3.1)': - dependencies: - '@storybook/csf': 0.1.13 - '@storybook/global': 5.0.0 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 - optionalDependencies: - react: 18.3.1 - '@storybook/addon-links@8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-links@10.1.6(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.12(prettier@2.8.8) - ts-dedent: 2.2.0 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) optionalDependencies: - react: 19.1.0 - - '@storybook/addon-mdx-gfm@7.6.20': - dependencies: - '@storybook/node-logger': 7.6.20 - remark-gfm: 3.0.1 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color + react: 19.2.1 - '@storybook/addon-mdx-gfm@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-mdx-gfm@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: remark-gfm: 4.0.1 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - '@storybook/addon-measure@7.6.20': - dependencies: - '@storybook/global': 5.0.0 - tiny-invariant: 1.3.3 - - '@storybook/addon-measure@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-measure@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.6.12(storybook@8.6.12(prettier@2.8.8))': - dependencies: - storybook: 8.6.12(prettier@2.8.8) + '@storybook/addon-measure@9.0.8': {} - '@storybook/addon-outline@7.6.20': + '@storybook/addon-onboarding@10.1.6(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - '@storybook/global': 5.0.0 - ts-dedent: 2.2.0 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/addon-outline@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-outline@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 - '@storybook/addon-toolbars@7.6.20': {} - - '@storybook/addon-toolbars@8.6.12(storybook@8.6.12(prettier@2.8.8))': - dependencies: - storybook: 8.6.12(prettier@2.8.8) + '@storybook/addon-outline@9.0.8': {} - '@storybook/addon-viewport@7.6.20': + '@storybook/addon-toolbars@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - memoizerific: 1.11.3 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/addon-viewport@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/addon-viewport@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: memoizerific: 1.11.3 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/addons@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addons@7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@storybook/manager-api': 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/manager-api': 7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/preview-api': 7.6.17 '@storybook/types': 7.6.17 transitivePeerDependencies: - react - react-dom - '@storybook/api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/api@7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@storybook/client-logger': 7.6.17 - '@storybook/manager-api': 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/manager-api': 7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1) transitivePeerDependencies: - react - react-dom - '@storybook/blocks@7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@8.6.14(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/components': 7.6.20(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.13 - '@storybook/docs-tools': 7.6.20(encoding@0.1.13) - '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/preview-api': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 - '@types/lodash': 4.17.16 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.7.4(react@18.3.1) - memoizerific: 1.11.3 - polished: 4.3.1 - react: 18.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - telejson: 7.2.0 - tocbot: 4.35.2 + '@storybook/icons': 1.3.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - encoding - - supports-color - - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0))': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-common': 7.6.20(encoding@0.1.13) - '@storybook/csf-plugin': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/preview': 7.6.20 - '@storybook/preview-api': 7.6.20 - '@storybook/types': 7.6.20 - '@types/find-cache-dir': 3.2.1 - browser-assert: 1.2.1 - es-module-lexer: 0.9.3 - express: 4.21.2 - find-cache-dir: 3.3.2 - fs-extra: 11.3.0 - magic-string: 0.30.17 - rollup: 3.29.5 - vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - encoding - - supports-color + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@10.1.6(esbuild@0.27.0)(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0))': dependencies: - '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - browser-assert: 1.2.1 - storybook: 8.6.12(prettier@2.8.8) + '@storybook/csf-plugin': 10.1.6(esbuild@0.27.0)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0)) + '@vitest/mocker': 3.2.4(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) ts-dedent: 2.2.0 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) + transitivePeerDependencies: + - esbuild + - msw + - rollup + - webpack '@storybook/channels@7.6.17': dependencies: @@ -9850,15 +8713,6 @@ snapshots: telejson: 7.2.0 tiny-invariant: 1.3.3 - '@storybook/channels@7.6.20': - dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/global': 5.0.0 - qs: 6.14.0 - telejson: 7.2.0 - tiny-invariant: 1.3.3 - '@storybook/client-api@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 @@ -9868,173 +8722,52 @@ snapshots: dependencies: '@storybook/global': 5.0.0 - '@storybook/client-logger@7.6.20': - dependencies: - '@storybook/global': 5.0.0 - - '@storybook/components@7.6.20(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/client-logger@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.1(@types/react-dom@19.0.3(@types/react@18.3.17))(@types/react@18.3.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/client-logger': 7.6.20 - '@storybook/csf': 0.1.13 - '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 - memoizerific: 1.11.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - use-resize-observer: 9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - - '@storybook/components@8.6.12(storybook@8.6.12(prettier@2.8.8))': - dependencies: - storybook: 8.6.12(prettier@2.8.8) - - '@storybook/core-client@7.6.20': - dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/preview-api': 7.6.20 - - '@storybook/core-common@7.6.20(encoding@0.1.13)': - dependencies: - '@storybook/core-events': 7.6.20 - '@storybook/node-logger': 7.6.20 - '@storybook/types': 7.6.20 - '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.80 - '@types/node-fetch': 2.6.12 - '@types/pretty-hrtime': 1.0.3 - chalk: 4.1.2 - esbuild: 0.25.1 - esbuild-register: 3.6.0(esbuild@0.25.1) - file-system-cache: 2.3.0 - find-cache-dir: 3.3.2 - find-up: 5.0.0 - fs-extra: 11.3.0 - glob: 10.4.5 - handlebars: 4.7.8 - lazy-universal-dotenv: 4.0.0 - node-fetch: 2.7.0(encoding@0.1.13) - picomatch: 2.3.1 - pkg-dir: 5.0.0 - pretty-hrtime: 1.0.3 - resolve-from: 5.0.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - encoding - - supports-color + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/core-events@7.6.17': dependencies: ts-dedent: 2.2.0 - '@storybook/core-events@7.6.20': - dependencies: - ts-dedent: 2.2.0 - - '@storybook/core@8.6.14(prettier@2.8.8)(storybook@8.6.14(prettier@2.8.8))': - dependencies: - '@storybook/theming': 8.6.14(storybook@8.6.14(prettier@2.8.8)) - better-opn: 3.0.2 - browser-assert: 1.2.1 - esbuild: 0.25.1 - esbuild-register: 3.6.0(esbuild@0.25.1) - jsdoc-type-pratt-parser: 4.8.0 - process: 0.11.10 - recast: 0.23.11 - semver: 7.7.1 - util: 0.12.5 - ws: 8.18.1 - optionalDependencies: - prettier: 2.8.8 - transitivePeerDependencies: - - bufferutil - - storybook - - supports-color - - utf-8-validate - - '@storybook/core@8.6.12(prettier@2.8.8)(storybook@8.6.12(prettier@2.8.8))': - dependencies: - '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - better-opn: 3.0.2 - browser-assert: 1.2.1 - esbuild: 0.25.1 - esbuild-register: 3.6.0(esbuild@0.25.1) - jsdoc-type-pratt-parser: 4.1.0 - process: 0.11.10 - recast: 0.23.9 - semver: 7.7.1 - util: 0.12.5 - ws: 8.18.1 - optionalDependencies: - prettier: 2.8.8 - transitivePeerDependencies: - - bufferutil - - storybook - - supports-color - - utf-8-validate - - '@storybook/csf-plugin@7.6.20': + '@storybook/csf-plugin@10.1.6(esbuild@0.27.0)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0))': dependencies: - '@storybook/csf-tools': 7.6.20 - unplugin: 1.16.1 - transitivePeerDependencies: - - supports-color + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + unplugin: 2.3.11 + optionalDependencies: + esbuild: 0.27.0 + rollup: 4.49.0 + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) + webpack: 5.98.0(esbuild@0.27.0) - '@storybook/csf-plugin@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/csf-plugin@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) unplugin: 1.16.1 - '@storybook/csf-tools@7.6.20': - dependencies: - '@babel/generator': 7.26.10 - '@babel/parser': 7.26.10 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 - '@storybook/csf': 0.1.13 - '@storybook/types': 7.6.20 - fs-extra: 11.3.0 - recast: 0.23.9 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - '@storybook/csf@0.1.13': dependencies: type-fest: 2.19.0 - '@storybook/docs-tools@7.6.20(encoding@0.1.13)': - dependencies: - '@storybook/core-common': 7.6.20(encoding@0.1.13) - '@storybook/preview-api': 7.6.20 - '@storybook/types': 7.6.20 - '@types/doctrine': 0.0.3 - assert: 2.1.0 - doctrine: 3.0.0 - lodash: 4.17.21 - transitivePeerDependencies: - - encoding - - supports-color - '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@storybook/icons@1.3.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + + '@storybook/icons@2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - '@storybook/instrumenter@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/instrumenter@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/manager-api@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/manager-api@7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@storybook/channels': 7.6.17 '@storybook/client-logger': 7.6.17 @@ -10042,7 +8775,7 @@ snapshots: '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 '@storybook/router': 7.6.17 - '@storybook/theming': 7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/theming': 7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/types': 7.6.17 dequal: 2.0.3 lodash: 4.17.21 @@ -10054,35 +8787,13 @@ snapshots: - react - react-dom - '@storybook/manager-api@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/manager-api@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.13 - '@storybook/global': 5.0.0 - '@storybook/router': 7.6.20 - '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - store2: 2.14.4 - telejson: 7.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - react - - react-dom + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/mdx2-csf@1.1.0': {} - - '@storybook/node-logger@7.6.20': {} - - '@storybook/node-logger@8.6.6(storybook@8.6.14(prettier@2.8.8))': + '@storybook/node-logger@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - storybook: 8.6.14(prettier@2.8.8) - - '@storybook/postinstall@7.6.20': {} + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/preview-api@7.6.17': dependencies: @@ -10101,133 +8812,70 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview-api@7.6.20': - dependencies: - '@storybook/channels': 7.6.20 - '@storybook/client-logger': 7.6.20 - '@storybook/core-events': 7.6.20 - '@storybook/csf': 0.1.13 - '@storybook/global': 5.0.0 - '@storybook/types': 7.6.20 - '@types/qs': 6.9.18 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.14.0 - synchronous-promise: 2.0.17 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/preview-api@8.6.12(storybook@8.6.12(prettier@2.8.8))': + '@storybook/react-dom-shim@10.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - storybook: 8.6.12(prettier@2.8.8) - - '@storybook/preview@7.6.20': {} + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/react-dom-shim@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/react-dom-shim@8.6.14(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.49.0)(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0))': + '@storybook/react-vite@10.1.6(esbuild@0.27.0)(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.49.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) - '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) - '@vitejs/plugin-react': 3.1.0(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)) + '@storybook/builder-vite': 10.1.6(esbuild@0.27.0)(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(rollup@4.49.0)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))(webpack@5.98.0(esbuild@0.27.0)) + '@storybook/react': 10.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3) + empathic: 2.0.0 magic-string: 0.30.17 - react: 18.3.1 - react-docgen: 7.1.0 - react-dom: 18.3.1(react@18.3.1) - vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) - transitivePeerDependencies: - - '@preact/preset-vite' - - encoding - - rollup - - supports-color - - typescript - - vite-plugin-glimmerx - - '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) - find-up: 5.0.0 - magic-string: 0.30.17 - react: 19.1.0 - react-docgen: 7.1.0 - react-dom: 19.1.0(react@19.1.0) + react: 19.2.1 + react-docgen: 8.0.2 + react-dom: 19.2.1(react@19.2.1) resolve: 1.22.10 - storybook: 8.6.12(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) tsconfig-paths: 4.2.0 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - optionalDependencies: - '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) transitivePeerDependencies: + - esbuild + - msw - rollup - supports-color - typescript + - webpack - '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)': + '@storybook/react@10.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3)': dependencies: - '@storybook/client-logger': 7.6.20 - '@storybook/core-client': 7.6.20 - '@storybook/docs-tools': 7.6.20(encoding@0.1.13) '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.20 - '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 7.6.20 - '@types/escodegen': 0.0.6 - '@types/estree': 0.0.51 - '@types/node': 18.19.80 - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - acorn-walk: 7.2.0 - escodegen: 2.1.0 - html-tags: 3.3.1 - lodash: 4.17.21 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - ts-dedent: 2.2.0 - type-fest: 2.19.0 - util-deprecate: 1.0.2 + '@storybook/react-dom-shim': 10.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + react: 19.2.1 + react-docgen: 8.0.2 + react-dom: 19.2.1(react@19.2.1) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - - encoding - supports-color - '@storybook/react@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)': - dependencies: - '@storybook/components': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/preview-api': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) - '@storybook/theming': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - storybook: 8.6.12(prettier@2.8.8) - optionalDependencies: - '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - typescript: 5.8.3 - '@storybook/router@7.6.17': dependencies: '@storybook/client-logger': 7.6.17 memoizerific: 1.11.3 qs: 6.14.0 - '@storybook/router@7.6.20': + '@storybook/test@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - '@storybook/client-logger': 7.6.20 - memoizerific: 1.11.3 - qs: 6.14.0 + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)) + '@testing-library/dom': 10.4.0 + '@testing-library/jest-dom': 6.5.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/expect': 2.0.5 + '@vitest/spy': 2.0.5 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/testing-library@0.2.2': dependencies: @@ -10235,27 +8883,18 @@ snapshots: '@testing-library/user-event': 14.6.1(@testing-library/dom@9.3.4) ts-dedent: 2.2.0 - '@storybook/theming@7.6.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/theming@7.6.17(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.1) '@storybook/client-logger': 7.6.17 '@storybook/global': 5.0.0 memoizerific: 1.11.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - '@storybook/theming@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/theming@8.6.14(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))': dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) - '@storybook/client-logger': 7.6.20 - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@storybook/theming@8.6.14(storybook@8.6.14(prettier@2.8.8))': - dependencies: - storybook: 8.6.14(prettier@2.8.8) + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@storybook/types@7.6.17': dependencies: @@ -10264,30 +8903,34 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@storybook/types@7.6.20': - dependencies: - '@storybook/channels': 7.6.20 - '@types/babel__core': 7.20.5 - '@types/express': 4.17.21 - file-system-cache: 2.3.0 - - '@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@stripe/react-stripe-js@5.4.1(@stripe/stripe-js@8.5.3)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@stripe/stripe-js': 7.9.0 + '@stripe/stripe-js': 8.5.3 prop-types: 15.8.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - '@stripe/stripe-js@7.9.0': {} + '@stripe/stripe-js@8.5.3': {} - '@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-table@8.21.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@tanstack/table-core': 8.21.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) '@tanstack/table-core@8.21.3': {} + '@testing-library/dom@10.4.0': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.26.10 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + '@testing-library/dom@10.4.1': dependencies: '@babel/code-frame': 7.27.1 @@ -10310,27 +8953,50 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/jest-dom@6.5.0': + dependencies: + '@adobe/css-tools': 4.4.4 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + + '@testing-library/jest-dom@6.9.1': + dependencies: + '@adobe/css-tools': 4.4.4 + aria-query: 5.3.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + picocolors: 1.1.1 + redent: 3.0.0 + + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: - '@types/react': 19.0.12 - '@types/react-dom': 19.1.2(@types/react@19.0.12) + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: '@testing-library/dom': 10.4.0 + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': + dependencies: + '@testing-library/dom': 10.4.1 + '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: '@testing-library/dom': 9.3.4 '@tufjs/canonical-json@2.0.0': {} - '@tufjs/models@2.0.1': + '@tufjs/models@4.0.0': dependencies: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.5 @@ -10345,29 +9011,33 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.28.3 + '@babel/types': 7.28.2 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.2 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.28.3 + '@babel/types': 7.28.2 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.2 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.28.2 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.3.1 + '@types/node': 24.10.2 '@types/braintree-web@3.96.17': dependencies: @@ -10380,9 +9050,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.3.1 - - '@types/cookie@0.6.0': {} + '@types/node': 24.10.2 '@types/debug@4.1.12': dependencies: @@ -10390,12 +9058,8 @@ snapshots: '@types/deep-eql@4.0.2': {} - '@types/doctrine@0.0.3': {} - '@types/doctrine@0.0.9': {} - '@types/escodegen@0.0.6': {} - '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -10406,15 +9070,11 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 - '@types/estree@0.0.51': {} - - '@types/estree@1.0.6': {} - '@types/estree@1.0.8': {} '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.2 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -10426,44 +9086,19 @@ snapshots: '@types/qs': 6.9.18 '@types/serve-static': 1.15.7 - '@types/find-cache-dir@3.2.1': {} - - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 24.3.1 - '@types/googlepay@0.7.6': {} - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 24.3.1 + '@types/googlepay@0.7.8': {} '@types/http-errors@2.0.4': {} '@types/iframe-resizer@4.0.0': {} - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - '@types/js-cookie@3.0.6': {} '@types/json-schema@7.0.15': {} - '@types/lodash@4.17.16': {} - - '@types/lodash@4.17.20': {} - - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.11 + '@types/lodash@4.17.21': {} '@types/mdast@4.0.4': dependencies: @@ -10475,26 +9110,11 @@ snapshots: '@types/minimatch@3.0.5': {} - '@types/minimatch@5.1.2': {} - '@types/minimist@1.2.5': {} '@types/ms@2.1.0': {} - '@types/node-fetch@2.6.12': - dependencies: - '@types/node': 24.3.1 - form-data: 4.0.4 - - '@types/node@18.19.80': - dependencies: - undici-types: 5.26.5 - - '@types/node@24.3.1': - dependencies: - undici-types: 7.10.0 - - '@types/node@24.9.1': + '@types/node@24.10.2': dependencies: undici-types: 7.16.0 @@ -10502,264 +9122,214 @@ snapshots: '@types/paypal-checkout-components@4.0.8': {} - '@types/pretty-hrtime@1.0.3': {} - - '@types/prop-types@15.7.14': {} - '@types/prop-types@15.7.15': {} '@types/qs@6.9.18': {} '@types/range-parser@1.2.7': {} - '@types/react-dom@19.1.2(@types/react@18.3.18)': - dependencies: - '@types/react': 18.3.18 - optional: true - - '@types/react-dom@19.1.2(@types/react@19.0.12)': - dependencies: - '@types/react': 19.0.12 - optional: true - - '@types/react-dom@19.1.2(@types/react@19.1.2)': - dependencies: - '@types/react': 19.1.2 - - '@types/react-test-renderer@19.0.0': + '@types/react-dom@19.2.3(@types/react@19.2.7)': dependencies: - '@types/react': 19.1.2 + '@types/react': 19.2.7 - '@types/react-window@1.8.8': + '@types/react-test-renderer@19.1.0': dependencies: - '@types/react': 19.1.2 + '@types/react': 19.2.7 - '@types/react@18.3.18': + '@types/react-window@2.0.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 - - '@types/react@19.0.12': - dependencies: - csstype: 3.1.3 + react-window: 2.2.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + transitivePeerDependencies: + - react + - react-dom - '@types/react@19.1.2': + '@types/react@19.2.7': dependencies: - csstype: 3.1.3 + csstype: 3.2.3 '@types/resolve@1.20.6': {} '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.3.1 + '@types/node': 24.10.2 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 24.3.1 + '@types/node': 24.10.2 '@types/send': 0.17.4 - '@types/statuses@2.0.5': {} - - '@types/tough-cookie@4.0.5': {} - - '@types/unist@2.0.11': {} + '@types/statuses@2.0.6': {} '@types/unist@3.0.3': {} '@types/uuid@9.0.8': {} - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@16.0.9': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@types/yargs@17.0.33': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@vitejs/plugin-react@3.1.0(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0))': + '@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.19.0 - graphemer: 1.4.0 - ignore: 5.3.2 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.49.0(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.49.0 + '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.49.0 + eslint: 9.39.1 + ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: - typescript: 5.7.2 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': + '@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/type-utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.30.1 - eslint: 9.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 + '@typescript-eslint/scope-manager': 8.49.0 + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.49.0 + debug: 4.4.1 + eslint: 9.39.1 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/project-service@8.49.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 - eslint: 9.24.0 - typescript: 5.8.3 + '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) + '@typescript-eslint/types': 8.49.0 + debug: 4.4.1 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.23.0': - dependencies: - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/scope-manager@8.30.1': dependencies: '@typescript-eslint/types': 8.30.1 '@typescript-eslint/visitor-keys': 8.30.1 - '@typescript-eslint/type-utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.49.0': dependencies: - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - debug: 4.4.0 - eslint: 9.24.0 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.23.0': {} + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/visitor-keys': 8.49.0 - '@typescript-eslint/types@8.30.1': {} + '@typescript-eslint/tsconfig-utils@8.49.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.49.0(eslint@9.39.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/visitor-keys': 8.23.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) + debug: 4.4.1 + eslint: 9.39.1 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)': + '@typescript-eslint/types@8.30.1': {} + + '@typescript-eslint/types@8.49.0': {} + + '@typescript-eslint/typescript-estree@8.30.1(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.30.1 '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 + debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.0.1(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.23.0(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.49.0(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.3) - eslint: 9.24.0 - typescript: 5.8.3 + '@typescript-eslint/project-service': 8.49.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/visitor-keys': 8.49.0 + debug: 4.4.1 + minimatch: 9.0.5 + semver: 7.7.1 + tinyglobby: 0.2.15 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.30.1(eslint@9.39.1)(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) '@typescript-eslint/scope-manager': 8.30.1 '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - eslint: 9.24.0 - typescript: 5.8.3 + '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.9.3) + eslint: 9.39.1 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.23.0': + '@typescript-eslint/utils@8.49.0(eslint@9.39.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.23.0 - eslint-visitor-keys: 4.2.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) + '@typescript-eslint/scope-manager': 8.49.0 + '@typescript-eslint/types': 8.49.0 + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + eslint: 9.39.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color '@typescript-eslint/visitor-keys@8.30.1': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - magic-string: 0.27.0 - react-refresh: 0.14.2 - vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.30.1 + eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react@4.3.4(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0))': + '@typescript-eslint/visitor-keys@8.49.0': dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) - magic-string: 0.27.0 - react-refresh: 0.14.2 - vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.49.0 + eslint-visitor-keys: 4.2.1 - '@vitejs/plugin-react@5.0.2(vite@7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0))': + '@vitejs/plugin-react@5.1.2(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))': dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.3) - '@rolldown/pluginutils': 1.0.0-beta.34 + '@babel/core': 7.28.5 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5) + '@rolldown/pluginutils': 1.0.0-beta.53 '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0) + react-refresh: 0.18.0 + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.1)(jsdom@26.1.0)(msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2))(terser@5.44.0)(yaml@2.7.0))': + '@vitest/coverage-v8@4.0.15(vitest@4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0))': dependencies: - '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - ast-v8-to-istanbul: 0.3.3 - debug: 4.4.1 + '@vitest/utils': 4.0.15 + ast-v8-to-istanbul: 0.3.8 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magic-string: 0.30.17 - magicast: 0.3.5 - std-env: 3.9.0 - test-exclude: 7.0.1 - tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.1)(jsdom@26.1.0)(msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2))(terser@5.44.0)(yaml@2.7.0) + istanbul-reports: 3.2.0 + magicast: 0.5.1 + obug: 2.1.1 + std-env: 3.10.0 + tinyrainbow: 3.0.3 + vitest: 4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.2.0 + tinyrainbow: 1.2.0 + '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.2 @@ -10768,46 +9338,93 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2))(vite@7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0))': + '@vitest/expect@4.0.15': + dependencies: + '@standard-schema/spec': 1.0.0 + '@types/chai': 5.2.2 + '@vitest/spy': 4.0.15 + '@vitest/utils': 4.0.15 + chai: 6.2.1 + tinyrainbow: 3.0.3 + + '@vitest/mocker@3.2.4(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.11.1(@types/node@24.3.1)(typescript@5.9.2) - vite: 7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0) + msw: 2.12.4(@types/node@24.10.2)(typescript@5.9.3) + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) + + '@vitest/mocker@4.0.15(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0))': + dependencies: + '@vitest/spy': 4.0.15 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + msw: 2.12.4(@types/node@24.10.2)(typescript@5.9.3) + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) + + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.9': + dependencies: + tinyrainbow: 1.2.0 '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.2.4': + '@vitest/pretty-format@4.0.15': dependencies: - '@vitest/utils': 3.2.4 + tinyrainbow: 3.0.3 + + '@vitest/runner@4.0.15': + dependencies: + '@vitest/utils': 4.0.15 pathe: 2.0.3 - strip-literal: 3.0.0 - '@vitest/snapshot@3.2.4': + '@vitest/snapshot@4.0.15': dependencies: - '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.17 + '@vitest/pretty-format': 4.0.15 + magic-string: 0.30.21 pathe: 2.0.3 + '@vitest/spy@2.0.5': + dependencies: + tinyspy: 3.0.2 + '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.3 + '@vitest/spy@4.0.15': {} + + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.4 + tinyrainbow: 1.2.0 + + '@vitest/utils@2.1.9': + dependencies: + '@vitest/pretty-format': 2.1.9 + loupe: 3.1.4 + tinyrainbow: 1.2.0 + '@vitest/utils@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 loupe: 3.1.4 tinyrainbow: 2.0.0 - '@vitest/utils@3.1.1': + '@vitest/utils@4.0.15': dependencies: - '@vitest/pretty-format': 3.1.1 - loupe: 3.1.3 - tinyrainbow: 2.0.0 + '@vitest/pretty-format': 4.0.15 + tinyrainbow: 3.0.3 '@webassemblyjs/ast@1.14.1': dependencies: @@ -10905,26 +9522,11 @@ snapshots: jsonparse: 1.3.1 through: 2.3.8 - abbrev@2.0.0: {} - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 + abbrev@3.0.1: {} - acorn-jsx@5.3.2(acorn@8.14.1): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.1 - - acorn-walk@7.2.0: {} - - acorn@7.4.1: {} - - acorn@8.14.1: {} + acorn: 8.15.0 acorn@8.15.0: {} @@ -10989,8 +9591,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - app-root-dir@1.0.2: {} - aproba@2.0.0: {} argparse@1.0.10: @@ -10999,10 +9599,6 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.4: - dependencies: - tslib: 2.8.1 - aria-query@5.1.3: dependencies: deep-equal: 2.2.3 @@ -11018,33 +9614,23 @@ snapshots: array-differ@3.0.0: {} - array-flatten@1.1.1: {} - array-ify@1.0.0: {} array-union@2.1.0: {} - arrify@1.0.1: {} - - arrify@2.0.1: {} - - assert@2.1.0: - dependencies: - call-bind: 1.0.8 - is-nan: 1.3.2 - object-is: 1.1.6 - object.assign: 4.1.7 - util: 0.12.5 - + arrify@1.0.1: {} + + arrify@2.0.1: {} + assertion-error@2.0.1: {} ast-types@0.16.1: dependencies: tslib: 2.8.1 - ast-v8-to-istanbul@0.3.3: + ast-v8-to-istanbul@0.3.8: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 js-tokens: 9.0.1 @@ -11064,44 +9650,33 @@ snapshots: transitivePeerDependencies: - debug - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.1)): - dependencies: - '@babel/core': 7.26.10 - find-cache-dir: 4.0.0 - schema-utils: 4.3.0 - webpack: 5.98.0(esbuild@0.25.1) - - babel-plugin-istanbul@6.1.1: + babel-loader@10.0.0(@babel/core@7.28.5)(webpack@5.98.0(esbuild@0.27.0)): dependencies: - '@babel/helper-plugin-utils': 7.26.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.28.5 + find-up: 5.0.0 + webpack: 5.98.0(esbuild@0.27.0) - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.10): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: - '@babel/compat-data': 7.26.8 - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) - core-js-compat: 3.41.0 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.10): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): dependencies: - '@babel/core': 7.26.10 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.10) + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -11111,18 +9686,21 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.9.6: {} + before-after-hook@2.2.3: {} - better-opn@3.0.2: + bidi-js@1.0.3: dependencies: - open: 8.4.2 + require-from-string: 2.0.2 - bin-links@4.0.4: + bin-links@5.0.0: dependencies: - cmd-shim: 6.0.3 - npm-normalize-package-bin: 3.0.1 - read-cmd-shim: 4.0.0 - write-file-atomic: 5.0.1 + cmd-shim: 7.0.0 + npm-normalize-package-bin: 4.0.0 + proc-log: 5.0.0 + read-cmd-shim: 5.0.0 + write-file-atomic: 6.0.0 binary-extensions@2.3.0: {} @@ -11132,23 +9710,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.3: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -11162,17 +9723,17 @@ snapshots: dependencies: fill-range: 7.1.1 - braintree-web@3.129.0: + braintree-web@3.133.0: dependencies: '@braintree/asset-loader': 2.0.3 - '@braintree/browser-detection': 2.0.2 + '@braintree/browser-detection': 2.1.0 '@braintree/event-emitter': 0.4.1 '@braintree/extended-promise': 1.0.0 '@braintree/iframer': 2.0.1 '@braintree/sanitize-url': 7.0.4 '@braintree/uuid': 1.0.1 '@braintree/wrap-promise': 2.1.0 - '@paypal/accelerated-checkout-loader': 1.1.0 + '@paypal/accelerated-checkout-loader': 1.2.1 card-validator: 10.0.3 credit-card-type: 10.1.0 framebus: 6.0.3 @@ -11180,8 +9741,6 @@ snapshots: promise-polyfill: 8.2.3 restricted-input: 4.0.3 - browser-assert@1.2.1: {} - browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001705 @@ -11189,9 +9748,13 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) - bser@2.1.1: + browserslist@4.28.1: dependencies: - node-int64: 0.4.0 + baseline-browser-mapping: 2.9.6 + caniuse-lite: 1.0.30001760 + electron-to-chromium: 1.5.267 + node-releases: 2.0.27 + update-browserslist-db: 1.2.2(browserslist@4.28.1) buffer-from@1.1.2: {} @@ -11200,20 +9763,18 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bundle-require@5.1.0(esbuild@0.25.1): + bundle-require@5.1.0(esbuild@0.27.0): dependencies: - esbuild: 0.25.1 + esbuild: 0.27.0 load-tsconfig: 0.2.5 byte-size@8.1.1: {} - bytes@3.1.2: {} - cac@6.7.14: {} - cacache@18.0.4: + cacache@19.0.1: dependencies: - '@npmcli/fs': 3.1.1 + '@npmcli/fs': 4.0.0 fs-minipass: 3.0.3 glob: 10.4.5 lru-cache: 10.4.3 @@ -11221,10 +9782,24 @@ snapshots: minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - p-map: 4.0.0 - ssri: 10.0.6 - tar: 6.2.1 - unique-filename: 3.0.0 + p-map: 7.0.4 + ssri: 12.0.0 + tar: 7.5.2 + unique-filename: 4.0.0 + + cacache@20.0.3: + dependencies: + '@npmcli/fs': 5.0.0 + fs-minipass: 3.0.3 + glob: 13.0.0 + lru-cache: 11.2.4 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 7.0.4 + ssri: 13.0.0 + unique-filename: 5.0.0 call-bind-apply-helpers@1.0.2: dependencies: @@ -11255,6 +9830,8 @@ snapshots: caniuse-lite@1.0.30001705: {} + caniuse-lite@1.0.30001760: {} + card-validator@10.0.3: dependencies: credit-card-type: 10.1.0 @@ -11266,9 +9843,11 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 + loupe: 3.1.4 pathval: 2.0.0 + chai@6.2.1: {} + chalk@3.0.0: dependencies: ansi-styles: 4.3.0 @@ -11290,7 +9869,7 @@ snapshots: character-entities@2.0.2: {} - chardet@0.7.0: {} + chardet@2.1.1: {} check-error@2.1.1: {} @@ -11306,9 +9885,15 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.1 + chownr@2.0.0: {} - chromatic@11.25.2: {} + chownr@3.0.0: {} + + chromatic@13.3.4: {} chrome-trace-event@1.0.4: {} @@ -11316,6 +9901,8 @@ snapshots: ci-info@4.2.0: {} + cjs-module-lexer@1.4.3: {} + classnames@2.5.1: {} clean-stack@2.2.0: {} @@ -11337,7 +9924,11 @@ snapshots: cli-spinners@2.9.2: {} - cli-width@3.0.0: {} + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 cli-width@4.1.0: {} @@ -11353,16 +9944,12 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - clone@1.0.4: {} cmd-shim@6.0.3: {} + cmd-shim@7.0.0: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -11386,12 +9973,12 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@9.5.0: {} common-ancestor-path@1.0.1: {} - common-path-prefix@3.0.0: {} - commondir@1.0.1: {} compare-func@2.0.0: @@ -11408,13 +9995,11 @@ snapshots: readable-stream: 3.6.2 typedarray: 0.0.6 - console-control-strings@1.1.0: {} + confbox@0.1.8: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 + consola@3.4.2: {} - content-type@1.0.5: {} + console-control-strings@1.1.0: {} conventional-changelog-angular@7.0.0: dependencies: @@ -11443,7 +10028,7 @@ snapshots: handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.7.1 + semver: 7.7.2 split: 1.0.1 conventional-commits-filter@3.0.0: @@ -11470,26 +10055,22 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie@0.7.1: {} + cookie@1.1.1: {} - cookie@0.7.2: {} - - core-js-compat@3.41.0: + core-js-compat@3.47.0: dependencies: - browserslist: 4.24.4 + browserslist: 4.28.1 core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.9.2): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 credit-card-type@10.1.0: {} @@ -11499,32 +10080,34 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + + css.escape@1.5.1: {} + cssesc@3.0.0: {} - cssstyle@4.3.0: + cssstyle@5.3.4(postcss@8.5.6): dependencies: - '@asamuzakjp/css-color': 3.1.1 - rrweb-cssom: 0.8.0 + '@asamuzakjp/css-color': 4.1.0 + '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6) + css-tree: 3.1.0 + transitivePeerDependencies: + - postcss - csstype@3.1.3: {} + csstype@3.2.3: {} dargs@7.0.0: {} - data-urls@5.0.0: + data-urls@6.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 + whatwg-url: 15.1.0 dateformat@3.0.3: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@4.4.0: - dependencies: - ms: 2.1.3 - debug@4.4.1: dependencies: ms: 2.1.3 @@ -11536,7 +10119,7 @@ snapshots: decamelize@1.2.0: {} - decimal.js@10.5.0: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.1.0: dependencies: @@ -11567,6 +10150,8 @@ snapshots: which-collection: 1.0.2 which-typed-array: 1.1.19 + deep-is@0.1.4: {} + defaults@1.0.4: dependencies: clone: 1.0.4 @@ -11587,21 +10172,17 @@ snapshots: delayed-stream@1.0.0: {} - depd@2.0.0: {} - deprecation@2.3.1: {} dequal@2.0.3: {} - destroy@1.2.0: {} - detect-indent@5.0.0: {} - detect-node-es@1.1.0: {} - - diff-sequences@29.6.3: {} + detectincognitojs@1.6.0: {} - diff@5.2.0: {} + devlop@1.1.0: + dependencies: + dequal: 2.0.3 dir-glob@3.0.1: dependencies: @@ -11619,8 +10200,6 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv-expand@10.0.0: {} - dotenv-expand@11.0.7: dependencies: dotenv: 16.4.7 @@ -11637,23 +10216,21 @@ snapshots: eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - ejs@3.1.10: dependencies: jake: 10.9.2 electron-to-chromium@1.5.119: {} + electron-to-chromium@1.5.267: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} emojilib@2.4.0: {} - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} + empathic@2.0.0: {} encoding@0.1.13: dependencies: @@ -11673,7 +10250,7 @@ snapshots: dependencies: ansi-colors: 4.1.3 - entities@4.5.0: {} + entities@6.0.1: {} env-paths@2.2.1: {} @@ -11684,6 +10261,8 @@ snapshots: envinfo@7.13.0: {} + environment@1.1.0: {} + err-code@2.0.3: {} error-ex@1.3.2: @@ -11706,8 +10285,6 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.1.0 - es-module-lexer@0.9.3: {} - es-module-lexer@1.7.0: {} es-object-atoms@1.1.1: @@ -11721,12 +10298,92 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - esbuild-register@3.6.0(esbuild@0.25.1): + esbuild@0.25.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.12 + '@esbuild/android-arm': 0.25.12 + '@esbuild/android-arm64': 0.25.12 + '@esbuild/android-x64': 0.25.12 + '@esbuild/darwin-arm64': 0.25.12 + '@esbuild/darwin-x64': 0.25.12 + '@esbuild/freebsd-arm64': 0.25.12 + '@esbuild/freebsd-x64': 0.25.12 + '@esbuild/linux-arm': 0.25.12 + '@esbuild/linux-arm64': 0.25.12 + '@esbuild/linux-ia32': 0.25.12 + '@esbuild/linux-loong64': 0.25.12 + '@esbuild/linux-mips64el': 0.25.12 + '@esbuild/linux-ppc64': 0.25.12 + '@esbuild/linux-riscv64': 0.25.12 + '@esbuild/linux-s390x': 0.25.12 + '@esbuild/linux-x64': 0.25.12 + '@esbuild/netbsd-arm64': 0.25.12 + '@esbuild/netbsd-x64': 0.25.12 + '@esbuild/openbsd-arm64': 0.25.12 + '@esbuild/openbsd-x64': 0.25.12 + '@esbuild/openharmony-arm64': 0.25.12 + '@esbuild/sunos-x64': 0.25.12 + '@esbuild/win32-arm64': 0.25.12 + '@esbuild/win32-ia32': 0.25.12 + '@esbuild/win32-x64': 0.25.12 + + esbuild@0.27.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.0 + '@esbuild/android-arm': 0.27.0 + '@esbuild/android-arm64': 0.27.0 + '@esbuild/android-x64': 0.27.0 + '@esbuild/darwin-arm64': 0.27.0 + '@esbuild/darwin-x64': 0.27.0 + '@esbuild/freebsd-arm64': 0.27.0 + '@esbuild/freebsd-x64': 0.27.0 + '@esbuild/linux-arm': 0.27.0 + '@esbuild/linux-arm64': 0.27.0 + '@esbuild/linux-ia32': 0.27.0 + '@esbuild/linux-loong64': 0.27.0 + '@esbuild/linux-mips64el': 0.27.0 + '@esbuild/linux-ppc64': 0.27.0 + '@esbuild/linux-riscv64': 0.27.0 + '@esbuild/linux-s390x': 0.27.0 + '@esbuild/linux-x64': 0.27.0 + '@esbuild/netbsd-arm64': 0.27.0 + '@esbuild/netbsd-x64': 0.27.0 + '@esbuild/openbsd-arm64': 0.27.0 + '@esbuild/openbsd-x64': 0.27.0 + '@esbuild/openharmony-arm64': 0.27.0 + '@esbuild/sunos-x64': 0.27.0 + '@esbuild/win32-arm64': 0.27.0 + '@esbuild/win32-ia32': 0.27.0 + '@esbuild/win32-x64': 0.27.0 + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-plugin-react-hooks@7.0.1(eslint@9.39.1): + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.3 + eslint: 9.39.1 + hermes-parser: 0.25.1 + zod: 4.1.13 + zod-validation-error: 4.0.2(zod@4.1.13) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-refresh@0.4.24(eslint@9.39.1): dependencies: - '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.23.0(eslint@9.24.0)(typescript@5.8.3) - eslint: 9.24.0 - ts-dedent: 2.2.0 + eslint: 9.39.1 + + eslint-plugin-storybook@10.1.6(eslint@9.39.1)(storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(typescript@5.9.3): + dependencies: + '@typescript-eslint/utils': 8.30.1(eslint@9.39.1)(typescript@5.9.3) + eslint: 9.39.1 + storybook: 10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) transitivePeerDependencies: - supports-color - typescript @@ -11736,7 +10393,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.3.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -11745,29 +10402,30 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.24.0: + eslint-visitor-keys@4.2.1: {} + + eslint@9.39.1: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.0 - '@eslint/config-helpers': 0.2.0 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.24.0 - '@eslint/plugin-kit': 0.2.7 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.1 + '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.1 escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -11785,11 +10443,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -11809,12 +10467,10 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 esutils@2.0.3: {} - etag@1.8.1: {} - eventemitter3@4.0.7: {} events@3.3.0: {} @@ -11831,54 +10487,12 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - expect-type@1.2.1: {} + expect-type@1.3.0: {} exponential-backoff@3.1.2: {} - express@4.21.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - extend@3.0.2: {} - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.2.5 - fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -11899,14 +10513,6 @@ snapshots: dependencies: reusify: 1.1.0 - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - - fdir@6.4.5(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -11936,29 +10542,12 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.3.1: - 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 - transitivePeerDependencies: - - supports-color - find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 make-dir: 3.1.0 pkg-dir: 4.2.0 - find-cache-dir@4.0.0: - dependencies: - common-path-prefix: 3.0.0 - pkg-dir: 7.0.0 - find-up@2.1.0: dependencies: locate-path: 2.0.0 @@ -11973,10 +10562,11 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@6.3.0: + fix-dts-default-cjs-exports@1.0.1: dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 + magic-string: 0.30.17 + mlly: 1.8.0 + rollup: 4.49.0 flat-cache@4.0.1: dependencies: @@ -11985,6 +10575,8 @@ snapshots: flat@5.0.2: {} + flatted@3.3.3: {} + follow-redirects@1.15.9: {} for-each@0.3.5: @@ -12004,25 +10596,21 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - forwarded@0.2.0: {} - framebus@6.0.3: dependencies: '@braintree/uuid': 1.0.1 - frames-react@1.2.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.49.0)(typescript@5.9.2): + frames-react@1.2.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(rollup@4.49.0)(typescript@5.9.3): dependencies: classnames: 2.5.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rollup-plugin-typescript2: 0.36.0(rollup@4.49.0)(typescript@5.9.2) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + rollup-plugin-typescript2: 0.36.0(rollup@4.49.0)(typescript@5.9.3) tslib: 2.8.1 transitivePeerDependencies: - rollup - typescript - fresh@0.5.2: {} - front-matter@4.0.2: dependencies: js-yaml: 3.14.1 @@ -12084,10 +10672,6 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 - get-nonce@1.0.1: {} - - get-package-type@0.1.0: {} - get-pkg-repo@4.2.1: dependencies: '@hutson/parse-repository-url': 3.0.2 @@ -12124,7 +10708,7 @@ snapshots: git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 7.7.1 + semver: 7.7.2 git-up@7.0.0: dependencies: @@ -12139,8 +10723,6 @@ snapshots: dependencies: ini: 1.3.8 - github-slugger@1.5.0: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -12149,11 +10731,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-promise@4.2.2(glob@7.2.3): - dependencies: - '@types/glob': 7.2.0 - glob: 7.2.3 - glob-to-regexp@0.4.1: {} glob@10.4.5: @@ -12165,14 +10742,20 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@7.2.3: + glob@11.1.0: dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.1.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.1 + + glob@13.0.0: + dependencies: + minimatch: 10.1.1 + minipass: 7.1.2 + path-scurry: 2.0.1 glob@9.3.5: dependencies: @@ -12181,11 +10764,9 @@ snapshots: minipass: 4.2.8 path-scurry: 1.11.1 - globals@11.12.0: {} - globals@14.0.0: {} - globals@16.0.0: {} + globals@16.5.0: {} globby@11.1.0: dependencies: @@ -12202,9 +10783,7 @@ snapshots: graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - - graphql@16.10.0: {} + graphql@16.12.0: {} handlebars@4.7.8: dependencies: @@ -12239,6 +10818,12 @@ snapshots: headers-polyfill@4.0.3: {} + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + highlight.js@10.7.3: {} hosted-git-info@2.8.9: {} @@ -12247,39 +10832,33 @@ snapshots: dependencies: lru-cache: 6.0.0 - hosted-git-info@7.0.2: + hosted-git-info@8.1.0: dependencies: lru-cache: 10.4.3 + hosted-git-info@9.0.2: + dependencies: + lru-cache: 11.2.4 + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 html-escaper@2.0.2: {} - html-tags@3.3.1: {} - http-cache-semantics@4.1.1: {} - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -12287,11 +10866,11 @@ snapshots: husky@9.1.7: {} - iconv-lite@0.4.24: + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.6.3: + iconv-lite@0.7.0: dependencies: safer-buffer: 2.1.2 @@ -12299,12 +10878,14 @@ snapshots: iframe-resizer@4.4.5: {} - ignore-walk@6.0.5: + ignore-walk@8.0.0: dependencies: - minimatch: 9.0.5 + minimatch: 10.1.1 ignore@5.3.2: {} + ignore@7.0.5: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -12319,48 +10900,37 @@ snapshots: indent-string@4.0.0: {} - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - inherits@2.0.4: {} ini@1.3.8: {} - ini@4.1.3: {} + ini@5.0.0: {} - init-package-json@6.0.3: + ini@6.0.0: {} + + init-package-json@8.2.2: dependencies: - '@npmcli/package-json': 5.2.0 - npm-package-arg: 11.0.2 - promzard: 1.0.2 - read: 3.0.1 - semver: 7.7.1 + '@npmcli/package-json': 7.0.2 + npm-package-arg: 13.0.1 + promzard: 2.0.0 + read: 4.1.0 + semver: 7.7.2 validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.1 - transitivePeerDependencies: - - bluebird + validate-npm-package-name: 6.0.2 inject-stylesheet@6.0.2: {} - inquirer@8.2.6: + inquirer@12.9.6(@types/node@24.10.2): dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.10.2) + '@inquirer/prompts': 7.10.1(@types/node@24.10.2) + '@inquirer/type': 3.0.10(@types/node@24.10.2) + mute-stream: 2.0.0 + run-async: 4.0.6 rxjs: 7.8.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 + optionalDependencies: + '@types/node': 24.10.2 internal-slot@1.1.0: dependencies: @@ -12373,10 +10943,6 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} - - is-absolute-url@3.0.3: {} - is-arguments@1.2.0: dependencies: call-bound: 1.0.4 @@ -12403,8 +10969,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-buffer@2.0.5: {} - is-callable@1.2.7: {} is-ci@3.0.1: @@ -12426,28 +10990,14 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.0: - dependencies: - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 is-interactive@1.0.0: {} - is-lambda@1.0.1: {} - is-map@2.0.3: {} - is-nan@1.3.2: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - is-node-process@1.2.0: {} is-number-object@1.1.1: @@ -12463,12 +11013,6 @@ snapshots: is-plain-obj@4.1.0: {} - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - - is-plain-object@5.0.0: {} - is-potential-custom-element-name@1.0.1: {} is-regex@1.2.1: @@ -12507,10 +11051,6 @@ snapshots: dependencies: text-extensions: 1.9.0 - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - is-unicode-supported@0.1.0: {} is-weakmap@2.0.2: {} @@ -12534,20 +11074,8 @@ snapshots: isexe@3.1.1: {} - isobject@3.0.1: {} - istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.26.10 - '@babel/parser': 7.26.10 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 @@ -12556,13 +11084,13 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 debug: 4.4.1 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -12573,6 +11101,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + jake@10.9.2: dependencies: async: 3.2.6 @@ -12580,57 +11112,16 @@ snapshots: filelist: 1.0.4 minimatch: 3.1.2 - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 24.3.1 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-mock@27.5.1: - dependencies: - '@jest/types': 27.5.1 - '@types/node': 24.3.1 - - jest-regex-util@29.6.3: {} - - jest-util@29.7.0: + jest-diff@30.2.0: dependencies: - '@jest/types': 29.6.3 - '@types/node': 24.3.1 + '@jest/diff-sequences': 30.0.1 + '@jest/get-type': 30.1.0 chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 + pretty-format: 30.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 24.9.1 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest-worker@29.7.0: - dependencies: - '@types/node': 24.3.1 - jest-util: 29.7.0 + '@types/node': 24.10.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -12647,38 +11138,37 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 jsbn@1.1.0: {} - jsdoc-type-pratt-parser@4.8.0: {} - - jsdom@26.1.0: + jsdom@27.3.0(postcss@8.5.6): dependencies: - cssstyle: 4.3.0 - data-urls: 5.0.0 - decimal.js: 10.5.0 + '@acemir/cssom': 0.9.28 + '@asamuzakjp/dom-selector': 6.7.6 + cssstyle: 5.3.4(postcss@8.5.6) + data-urls: 6.0.0 + decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.18 - parse5: 7.2.1 - rrweb-cssom: 0.8.0 + parse5: 8.0.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.1.2 + tough-cookie: 6.0.0 w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 + webidl-conversions: 8.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - ws: 8.18.1 + whatwg-url: 15.1.0 + ws: 8.18.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil + - postcss - supports-color - utf-8-validate @@ -12692,7 +11182,9 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-parse-even-better-errors@3.0.2: {} + json-parse-even-better-errors@4.0.0: {} + + json-parse-even-better-errors@5.0.0: {} json-schema-traverse@0.4.1: {} @@ -12728,27 +11220,18 @@ snapshots: kind-of@6.0.3: {} - kleur@4.1.5: {} - - lazy-universal-dotenv@4.0.0: - dependencies: - app-root-dir: 1.0.2 - dotenv: 16.4.7 - dotenv-expand: 10.0.0 - - lerna@8.2.3(encoding@0.1.13): + lerna@9.0.3(@types/node@24.10.2): dependencies: - '@lerna/create': 8.2.3(encoding@0.1.13)(typescript@5.9.2) - '@npmcli/arborist': 7.5.4 - '@npmcli/package-json': 5.2.0 - '@npmcli/run-script': 8.1.0 - '@nx/devkit': 20.6.0(nx@20.6.0) + '@lerna/create': 9.0.3(@types/node@24.10.2)(typescript@5.9.3) + '@npmcli/arborist': 9.1.6 + '@npmcli/package-json': 7.0.2 + '@npmcli/run-script': 10.0.2 + '@nx/devkit': 22.2.0(nx@22.2.0) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 20.1.2 aproba: 2.0.0 byte-size: 8.1.1 chalk: 4.1.0 - clone-deep: 4.0.1 cmd-shim: 6.0.3 color-support: 1.1.3 columnify: 1.6.0 @@ -12756,7 +11239,7 @@ snapshots: conventional-changelog-angular: 7.0.0 conventional-changelog-core: 5.0.1 conventional-recommended-bump: 7.0.1 - cosmiconfig: 9.0.0(typescript@5.9.2) + cosmiconfig: 9.0.0(typescript@5.9.3) dedent: 1.5.3 envinfo: 7.13.0 execa: 5.0.0 @@ -12765,54 +11248,52 @@ snapshots: get-stream: 6.0.0 git-url-parse: 14.0.0 glob-parent: 6.0.2 - graceful-fs: 4.2.11 has-unicode: 2.0.1 import-local: 3.1.0 ini: 1.3.8 - init-package-json: 6.0.3 - inquirer: 8.2.6 + init-package-json: 8.2.2 + inquirer: 12.9.6(@types/node@24.10.2) is-ci: 3.0.1 is-stream: 2.0.0 - jest-diff: 29.7.0 - js-yaml: 4.1.0 - libnpmaccess: 8.0.6 - libnpmpublish: 9.0.9 + jest-diff: 30.2.0 + js-yaml: 4.1.1 + libnpmaccess: 10.0.3 + libnpmpublish: 11.1.2 load-json-file: 6.2.0 - lodash: 4.17.21 make-dir: 4.0.0 + make-fetch-happen: 15.0.2 minimatch: 3.0.5 multimatch: 5.0.0 - node-fetch: 2.6.7(encoding@0.1.13) - npm-package-arg: 11.0.2 - npm-packlist: 8.0.2 - npm-registry-fetch: 17.1.0 - nx: 20.6.0 + npm-package-arg: 13.0.1 + npm-packlist: 10.0.3 + npm-registry-fetch: 19.1.0 + nx: 22.2.0 p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 p-queue: 6.6.2 p-reduce: 2.1.0 p-waterfall: 2.1.1 - pacote: 18.0.6 + pacote: 21.0.1 pify: 5.0.0 read-cmd-shim: 4.0.0 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.7.1 + semver: 7.7.2 set-blocking: 2.0.0 signal-exit: 3.0.7 slash: 3.0.0 - ssri: 10.0.6 + ssri: 12.0.0 string-width: 4.2.3 tar: 6.2.1 temp-dir: 1.0.0 through: 2.3.8 tinyglobby: 0.2.12 - typescript: 5.9.2 + typescript: 5.9.3 upath: 2.0.1 - uuid: 10.0.0 + uuid: 11.1.0 validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.1 + validate-npm-package-name: 6.0.2 wide-align: 1.1.5 write-file-atomic: 5.0.1 write-pkg: 4.0.0 @@ -12821,29 +11302,33 @@ snapshots: transitivePeerDependencies: - '@swc-node/register' - '@swc/core' + - '@types/node' - babel-plugin-macros - - bluebird - debug - - encoding - supports-color - libnpmaccess@8.0.6: + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + libnpmaccess@10.0.3: dependencies: - npm-package-arg: 11.0.2 - npm-registry-fetch: 17.1.0 + npm-package-arg: 13.0.1 + npm-registry-fetch: 19.1.0 transitivePeerDependencies: - supports-color - libnpmpublish@9.0.9: + libnpmpublish@11.1.2: dependencies: + '@npmcli/package-json': 7.0.2 ci-info: 4.2.0 - normalize-package-data: 6.0.2 - npm-package-arg: 11.0.2 - npm-registry-fetch: 17.1.0 - proc-log: 4.2.0 - semver: 7.7.1 - sigstore: 2.3.1 - ssri: 10.0.6 + npm-package-arg: 13.0.1 + npm-registry-fetch: 19.1.0 + proc-log: 5.0.0 + semver: 7.7.2 + sigstore: 4.0.0 + ssri: 12.0.0 transitivePeerDependencies: - supports-color @@ -12867,6 +11352,8 @@ snapshots: strip-bom: 4.0.0 type-fest: 0.6.0 + load-tsconfig@0.2.5: {} + loader-runner@4.3.1: {} locate-path@2.0.0: @@ -12882,18 +11369,12 @@ snapshots: dependencies: p-locate: 5.0.0 - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - lodash.debounce@4.0.8: {} lodash.ismatch@4.4.0: {} lodash.merge@4.6.2: {} - lodash.sortby@4.7.0: {} - lodash@4.17.21: {} log-symbols@4.1.0: @@ -12907,12 +11388,12 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} - loupe@3.1.4: {} lru-cache@10.4.3: {} + lru-cache@11.2.4: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -12923,18 +11404,18 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.27.0: + magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.17: + magic-string@0.30.21: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.3.5: + magicast@0.5.1: dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 source-map-js: 1.2.1 make-dir@2.1.0: @@ -12948,28 +11429,39 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 - make-fetch-happen@13.0.1: + make-fetch-happen@14.0.3: dependencies: - '@npmcli/agent': 2.2.2 - cacache: 18.0.4 + '@npmcli/agent': 3.0.0 + cacache: 19.0.1 http-cache-semantics: 4.1.1 - is-lambda: 1.0.1 minipass: 7.1.2 - minipass-fetch: 3.0.5 + minipass-fetch: 4.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - proc-log: 4.2.0 + negotiator: 1.0.0 + proc-log: 5.0.0 promise-retry: 2.0.1 - ssri: 10.0.6 + ssri: 12.0.0 transitivePeerDependencies: - supports-color - makeerror@1.0.12: + make-fetch-happen@15.0.2: dependencies: - tmpl: 1.0.5 + '@npmcli/agent': 4.0.0 + cacache: 20.0.3 + http-cache-semantics: 4.1.1 + minipass: 7.1.2 + minipass-fetch: 4.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 1.0.0 + proc-log: 5.0.0 + promise-retry: 2.0.1 + ssri: 12.0.0 + transitivePeerDependencies: + - supports-color map-obj@1.0.1: {} @@ -12979,10 +11471,6 @@ snapshots: markdown-table@3.0.4: {} - markdown-to-jsx@7.7.4(react@18.3.1): - dependencies: - react: 18.3.1 - marked-terminal@7.3.0(marked@9.1.6): dependencies: ansi-escapes: 7.0.0 @@ -12998,17 +11486,6 @@ snapshots: math-intrinsics@1.1.0: {} - mdast-util-definitions@4.0.0: - dependencies: - unist-util-visit: 2.0.3 - - mdast-util-find-and-replace@2.2.2: - dependencies: - '@types/mdast': 3.0.15 - escape-string-regexp: 5.0.0 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 @@ -13016,23 +11493,6 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - mdast-util-from-markdown@1.3.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - decode-named-character-reference: 1.1.0 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 @@ -13050,13 +11510,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-autolink-literal@1.0.3: - dependencies: - '@types/mdast': 3.0.15 - ccount: 2.0.1 - mdast-util-find-and-replace: 2.2.2 - micromark-util-character: 1.2.0 - mdast-util-gfm-autolink-literal@2.0.1: dependencies: '@types/mdast': 4.0.4 @@ -13065,12 +11518,6 @@ snapshots: mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@1.0.2: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-util-normalize-identifier: 1.1.0 - mdast-util-gfm-footnote@2.0.0: dependencies: '@types/mdast': 4.0.4 @@ -13081,11 +11528,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-strikethrough@1.0.3: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.4 @@ -13094,15 +11536,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-table@1.0.7: - dependencies: - '@types/mdast': 3.0.15 - markdown-table: 3.0.4 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - mdast-util-gfm-table@2.0.0: dependencies: '@types/mdast': 4.0.4 @@ -13113,11 +11546,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@1.0.2: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - mdast-util-gfm-task-list-item@2.0.0: dependencies: '@types/mdast': 4.0.4 @@ -13127,18 +11555,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm@2.0.2: - dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-gfm-autolink-literal: 1.0.3 - mdast-util-gfm-footnote: 1.0.2 - mdast-util-gfm-strikethrough: 1.0.3 - mdast-util-gfm-table: 1.0.7 - mdast-util-gfm-task-list-item: 1.0.2 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - mdast-util-gfm@3.0.0: dependencies: mdast-util-from-markdown: 2.0.2 @@ -13151,27 +11567,11 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-phrasing@3.0.1: - dependencies: - '@types/mdast': 3.0.15 - unist-util-is: 5.2.1 - mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - mdast-util-to-markdown@1.5.0: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - longest-streak: 3.1.0 - mdast-util-phrasing: 3.0.1 - mdast-util-to-string: 3.2.0 - micromark-util-decode-string: 1.1.0 - unist-util-visit: 4.1.2 - zwitch: 2.0.4 - mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 @@ -13184,17 +11584,11 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@1.1.0: {} - - mdast-util-to-string@3.2.0: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 - media-typer@0.3.0: {} + mdn-data@2.12.2: {} memoizerific@1.11.3: dependencies: @@ -13218,33 +11612,10 @@ snapshots: dependencies: is-what: 4.1.16 - merge-descriptors@1.0.3: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} - methods@1.1.2: {} - - micromark-core-commonmark@1.1.0: - dependencies: - decode-named-character-reference: 1.1.0 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-core-commonmark@2.0.2: dependencies: decode-named-character-reference: 1.1.0 @@ -13264,13 +11635,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-extension-gfm-autolink-literal@1.0.5: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 @@ -13278,17 +11642,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-extension-gfm-footnote@1.1.2: - dependencies: - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-extension-gfm-footnote@2.1.0: dependencies: devlop: 1.1.0 @@ -13300,15 +11653,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-extension-gfm-strikethrough@1.0.7: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-extension-gfm-strikethrough@2.1.0: dependencies: devlop: 1.1.0 @@ -13318,14 +11662,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-extension-gfm-table@1.0.7: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-extension-gfm-table@2.1.1: dependencies: devlop: 1.1.0 @@ -13334,22 +11670,10 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-extension-gfm-tagfilter@1.0.2: - dependencies: - micromark-util-types: 1.1.0 - micromark-extension-gfm-tagfilter@2.0.0: dependencies: micromark-util-types: 2.0.1 - micromark-extension-gfm-task-list-item@1.0.5: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-extension-gfm-task-list-item@2.1.0: dependencies: devlop: 1.1.0 @@ -13358,17 +11682,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-extension-gfm@2.0.3: - dependencies: - micromark-extension-gfm-autolink-literal: 1.0.5 - micromark-extension-gfm-footnote: 1.1.2 - micromark-extension-gfm-strikethrough: 1.0.7 - micromark-extension-gfm-table: 1.0.7 - micromark-extension-gfm-tagfilter: 1.0.2 - micromark-extension-gfm-task-list-item: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 - micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.1.0 @@ -13380,25 +11693,12 @@ snapshots: micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.1 - micromark-factory-destination@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-factory-label@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 @@ -13406,23 +11706,11 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-factory-space@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-types: 2.0.1 - micromark-factory-title@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 @@ -13430,13 +11718,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-factory-whitespace@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 @@ -13444,61 +11725,30 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-util-character@1.2.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-util-chunked@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-chunked@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-classify-character@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-classify-character@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-util-combine-extensions@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - micromark-util-combine-extensions@2.0.1: dependencies: micromark-util-chunked: 2.0.1 micromark-util-types: 2.0.1 - micromark-util-decode-numeric-character-reference@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-decode-numeric-character-reference@2.0.2: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-decode-string@1.1.0: - dependencies: - decode-named-character-reference: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-decode-string@2.0.1: dependencies: decode-named-character-reference: 1.1.0 @@ -13506,49 +11756,24 @@ snapshots: micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-encode@1.1.0: {} - micromark-util-encode@2.0.1: {} - micromark-util-html-tag-name@1.2.0: {} - micromark-util-html-tag-name@2.0.1: {} - micromark-util-normalize-identifier@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-normalize-identifier@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-resolve-all@1.1.0: - dependencies: - micromark-util-types: 1.1.0 - micromark-util-resolve-all@2.0.1: dependencies: micromark-util-types: 2.0.1 - micromark-util-sanitize-uri@1.2.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-sanitize-uri@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - micromark-util-subtokenize@2.0.4: dependencies: devlop: 1.1.0 @@ -13556,40 +11781,14 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - micromark-util-symbol@1.1.0: {} - micromark-util-symbol@2.0.1: {} - micromark-util-types@1.1.0: {} - micromark-util-types@2.0.1: {} - micromark@3.2.0: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.1 - decode-named-character-reference: 1.1.0 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.1 decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -13619,12 +11818,14 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} - mimic-fn@2.1.0: {} min-indent@1.0.1: {} + minimatch@10.1.1: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.0.5: dependencies: brace-expansion: 1.1.12 @@ -13661,7 +11862,7 @@ snapshots: dependencies: commander: 11.1.0 dts-minify: 0.3.3 - esbuild: 0.25.1 + esbuild: 0.27.0 glob: 10.4.5 pretty-bytes: 6.1.1 progress-barjs: 2.2.1 @@ -13671,11 +11872,11 @@ snapshots: dependencies: minipass: 7.1.2 - minipass-fetch@3.0.5: + minipass-fetch@4.0.1: dependencies: minipass: 7.1.2 minipass-sized: 1.0.3 - minizlib: 2.1.2 + minizlib: 3.1.0 optionalDependencies: encoding: 0.1.13 @@ -13706,63 +11907,45 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mkdirp@1.0.4: {} + minizlib@3.1.0: + dependencies: + minipass: 7.1.2 - modify-values@1.0.1: {} + mkdirp@1.0.4: {} - mri@1.2.0: {} + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 - ms@2.0.0: {} + modify-values@1.0.1: {} ms@2.1.3: {} - msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2): + msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3): dependencies: - '@bundled-es-modules/cookie': 2.0.1 - '@bundled-es-modules/statuses': 1.0.1 - '@inquirer/confirm': 5.1.8(@types/node@24.3.1) - '@mswjs/interceptors': 0.39.2 + '@inquirer/confirm': 5.1.8(@types/node@24.10.2) + '@mswjs/interceptors': 0.40.0 '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - graphql: 16.10.0 + '@types/statuses': 2.0.6 + cookie: 1.1.1 + graphql: 16.12.0 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 path-to-regexp: 6.3.0 picocolors: 1.1.1 + rettime: 0.7.0 + statuses: 2.0.2 strict-event-emitter: 0.5.1 tough-cookie: 6.0.0 - type-fest: 4.37.0 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - '@types/node' - - msw@2.7.3(@types/node@24.9.1)(typescript@5.8.3): - dependencies: - '@bundled-es-modules/cookie': 2.0.1 - '@bundled-es-modules/statuses': 1.0.1 - '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@24.9.1) - '@mswjs/interceptors': 0.37.6 - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - graphql: 16.10.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 - path-to-regexp: 6.3.0 - picocolors: 1.1.1 - strict-event-emitter: 0.5.1 - type-fest: 4.37.0 + type-fest: 5.3.1 + until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - '@types/node' @@ -13774,58 +11957,55 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.2 - mute-stream@0.0.8: {} - - mute-stream@1.0.0: {} - mute-stream@2.0.0: {} mylas@2.1.13: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.11: {} - negotiator@0.6.3: {} + natural-compare@1.4.0: {} - negotiator@0.6.4: {} + negotiator@1.0.0: {} neo-async@2.6.2: {} - node-fetch@2.6.7(encoding@0.1.13): + node-emoji@2.2.0: dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - - node-fetch@2.7.0(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 - node-gyp@10.3.1: + node-gyp@11.5.0: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.2 - glob: 10.4.5 graceful-fs: 4.2.11 - make-fetch-happen: 13.0.1 - nopt: 7.2.1 - proc-log: 4.2.0 - semver: 7.7.1 - tar: 6.2.1 - which: 4.0.0 + make-fetch-happen: 14.0.3 + nopt: 8.1.0 + proc-log: 5.0.0 + semver: 7.7.2 + tar: 7.5.2 + tinyglobby: 0.2.15 + which: 5.0.0 transitivePeerDependencies: - supports-color - node-int64@0.4.0: {} - node-machine-id@1.1.12: {} node-releases@2.0.19: {} - nopt@7.2.1: + node-releases@2.0.27: {} + + nopt@8.1.0: dependencies: - abbrev: 2.0.0 + abbrev: 3.0.1 normalize-package-data@2.5.0: dependencies: @@ -13838,55 +12018,74 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.1 - semver: 7.7.1 + semver: 7.7.2 validate-npm-package-license: 3.0.4 - normalize-package-data@6.0.2: + normalize-path@3.0.0: {} + + npm-bundled@4.0.0: dependencies: - hosted-git-info: 7.0.2 - semver: 7.7.1 - validate-npm-package-license: 3.0.4 + npm-normalize-package-bin: 4.0.0 - normalize-path@3.0.0: {} + npm-bundled@5.0.0: + dependencies: + npm-normalize-package-bin: 5.0.0 - npm-bundled@3.0.1: + npm-install-checks@7.1.2: dependencies: - npm-normalize-package-bin: 3.0.1 + semver: 7.7.2 - npm-install-checks@6.3.0: + npm-install-checks@8.0.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 - npm-normalize-package-bin@3.0.1: {} + npm-normalize-package-bin@4.0.0: {} - npm-package-arg@11.0.2: + npm-normalize-package-bin@5.0.0: {} + + npm-package-arg@12.0.2: dependencies: - hosted-git-info: 7.0.2 - proc-log: 4.2.0 - semver: 7.7.1 - validate-npm-package-name: 5.0.1 + hosted-git-info: 8.1.0 + proc-log: 5.0.0 + semver: 7.7.2 + validate-npm-package-name: 6.0.2 - npm-packlist@8.0.2: + npm-package-arg@13.0.1: dependencies: - ignore-walk: 6.0.5 + hosted-git-info: 9.0.2 + proc-log: 5.0.0 + semver: 7.7.2 + validate-npm-package-name: 6.0.2 - npm-pick-manifest@9.1.0: + npm-packlist@10.0.3: dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.2 - semver: 7.7.1 + ignore-walk: 8.0.0 + proc-log: 6.1.0 - npm-registry-fetch@17.1.0: + npm-pick-manifest@10.0.0: dependencies: - '@npmcli/redact': 2.0.1 + npm-install-checks: 7.1.2 + npm-normalize-package-bin: 4.0.0 + npm-package-arg: 12.0.2 + semver: 7.7.2 + + npm-pick-manifest@11.0.3: + dependencies: + npm-install-checks: 8.0.0 + npm-normalize-package-bin: 5.0.0 + npm-package-arg: 13.0.1 + semver: 7.7.2 + + npm-registry-fetch@19.1.0: + dependencies: + '@npmcli/redact': 3.2.2 jsonparse: 1.3.1 - make-fetch-happen: 13.0.1 + make-fetch-happen: 15.0.2 minipass: 7.1.2 - minipass-fetch: 3.0.5 - minizlib: 2.1.2 - npm-package-arg: 11.0.2 - proc-log: 4.2.0 + minipass-fetch: 4.0.1 + minizlib: 3.1.0 + npm-package-arg: 13.0.1 + proc-log: 5.0.0 transitivePeerDependencies: - supports-color @@ -13894,9 +12093,7 @@ snapshots: dependencies: path-key: 3.1.1 - nwsapi@2.2.18: {} - - nx@20.6.0: + nx@22.2.0: dependencies: '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 @@ -13913,8 +12110,8 @@ snapshots: figures: 3.2.0 flat: 5.0.2 front-matter: 4.0.2 - ignore: 5.3.2 - jest-diff: 29.7.0 + ignore: 7.0.5 + jest-diff: 30.2.0 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 minimatch: 9.0.3 @@ -13923,26 +12120,27 @@ snapshots: open: 8.4.2 ora: 5.3.0 resolve.exports: 2.0.3 - semver: 7.7.1 + semver: 7.7.2 string-width: 4.2.3 tar-stream: 2.2.0 tmp: 0.2.5 + tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 yaml: 2.7.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 20.6.0 - '@nx/nx-darwin-x64': 20.6.0 - '@nx/nx-freebsd-x64': 20.6.0 - '@nx/nx-linux-arm-gnueabihf': 20.6.0 - '@nx/nx-linux-arm64-gnu': 20.6.0 - '@nx/nx-linux-arm64-musl': 20.6.0 - '@nx/nx-linux-x64-gnu': 20.6.0 - '@nx/nx-linux-x64-musl': 20.6.0 - '@nx/nx-win32-arm64-msvc': 20.6.0 - '@nx/nx-win32-x64-msvc': 20.6.0 + '@nx/nx-darwin-arm64': 22.2.0 + '@nx/nx-darwin-x64': 22.2.0 + '@nx/nx-freebsd-x64': 22.2.0 + '@nx/nx-linux-arm-gnueabihf': 22.2.0 + '@nx/nx-linux-arm64-gnu': 22.2.0 + '@nx/nx-linux-arm64-musl': 22.2.0 + '@nx/nx-linux-x64-gnu': 22.2.0 + '@nx/nx-linux-x64-musl': 22.2.0 + '@nx/nx-win32-arm64-msvc': 22.2.0 + '@nx/nx-win32-x64-msvc': 22.2.0 transitivePeerDependencies: - debug @@ -13966,9 +12164,7 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 + obug@2.1.1: {} once@1.4.0: dependencies: @@ -14004,18 +12200,6 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - outvariant@1.4.3: {} p-finally@1.0.0: {} @@ -14032,10 +12216,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.2.0 - p-locate@2.0.0: dependencies: p-limit: 1.3.0 @@ -14048,16 +12228,14 @@ snapshots: dependencies: p-limit: 3.1.0 - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - p-map-series@2.1.0: {} p-map@4.0.0: dependencies: aggregate-error: 3.1.0 + p-map@7.0.4: {} + p-pipe@3.1.0: {} p-queue@6.6.2: @@ -14081,36 +12259,57 @@ snapshots: package-json-from-dist@1.0.1: {} - pacote@18.0.6: + pacote@21.0.1: dependencies: - '@npmcli/git': 5.0.8 - '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/package-json': 5.2.0 - '@npmcli/promise-spawn': 7.0.2 - '@npmcli/run-script': 8.1.0 - cacache: 18.0.4 + '@npmcli/git': 6.0.3 + '@npmcli/installed-package-contents': 3.0.0 + '@npmcli/package-json': 7.0.2 + '@npmcli/promise-spawn': 8.0.3 + '@npmcli/run-script': 10.0.2 + cacache: 20.0.3 fs-minipass: 3.0.3 minipass: 7.1.2 - npm-package-arg: 11.0.2 - npm-packlist: 8.0.2 - npm-pick-manifest: 9.1.0 - npm-registry-fetch: 17.1.0 - proc-log: 4.2.0 + npm-package-arg: 13.0.1 + npm-packlist: 10.0.3 + npm-pick-manifest: 10.0.0 + npm-registry-fetch: 19.1.0 + proc-log: 5.0.0 promise-retry: 2.0.1 - sigstore: 2.3.1 - ssri: 10.0.6 - tar: 6.2.1 + sigstore: 4.0.0 + ssri: 12.0.0 + tar: 7.5.2 + transitivePeerDependencies: + - supports-color + + pacote@21.0.4: + dependencies: + '@npmcli/git': 7.0.1 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/package-json': 7.0.2 + '@npmcli/promise-spawn': 9.0.1 + '@npmcli/run-script': 10.0.2 + cacache: 20.0.3 + fs-minipass: 3.0.3 + minipass: 7.1.2 + npm-package-arg: 13.0.1 + npm-packlist: 10.0.3 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.0 + proc-log: 6.1.0 + promise-retry: 2.0.1 + sigstore: 4.0.0 + ssri: 13.0.0 + tar: 7.5.2 transitivePeerDependencies: - - bluebird - supports-color parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-conflict-json@3.0.1: + parse-conflict-json@4.0.0: dependencies: - json-parse-even-better-errors: 3.0.2 + json-parse-even-better-errors: 4.0.0 just-diff: 6.0.2 just-diff-apply: 5.5.0 @@ -14142,20 +12341,14 @@ snapshots: parse5@6.0.1: {} - parse5@7.2.1: + parse5@8.0.0: dependencies: - entities: 4.5.0 - - parseurl@1.3.3: {} + entities: 6.0.1 path-exists@3.0.0: {} path-exists@4.0.0: {} - path-exists@5.0.0: {} - - path-is-absolute@1.0.1: {} - path-key@3.1.1: {} path-parse@1.0.7: {} @@ -14165,7 +12358,10 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.12: {} + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.2 path-to-regexp@6.3.0: {} @@ -14183,8 +12379,6 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} - picomatch@4.0.3: {} pify@2.3.0: {} @@ -14201,19 +12395,17 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-dir@5.0.0: + pkg-types@1.3.1: dependencies: - find-up: 5.0.0 - - pkg-dir@7.0.0: - dependencies: - find-up: 6.3.0 + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 - playwright-core@1.56.1: {} + playwright-core@1.57.0: {} - playwright@1.56.1: + playwright@1.57.0: dependencies: - playwright-core: 1.56.1 + playwright-core: 1.57.0 optionalDependencies: fsevents: 2.3.2 @@ -14227,14 +12419,14 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1(postcss@8.5.3)(yaml@2.7.0): + postcss-load-config@6.0.1(postcss@8.5.6)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.3 + postcss: 8.5.6 yaml: 2.7.0 - postcss-selector-parser@6.1.2: + postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -14247,6 +12439,8 @@ snapshots: preact@10.22.1: {} + prelude-ls@1.2.1: {} + prettier@2.8.8: optional: true @@ -14258,21 +12452,19 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@29.7.0: + pretty-format@30.2.0: dependencies: - '@jest/schemas': 29.6.3 + '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-hrtime@1.0.3: {} + proc-log@5.0.0: {} - proc-log@4.2.0: {} + proc-log@6.1.0: {} process-nextick-args@2.0.1: {} - process@0.11.10: {} - - proggy@2.0.0: {} + proggy@3.0.0: {} progress-barjs@2.2.1: {} @@ -14280,8 +12472,6 @@ snapshots: promise-call-limit@3.0.2: {} - promise-inflight@1.0.1: {} - promise-polyfill@8.2.3: {} promise-retry@2.0.1: @@ -14289,9 +12479,9 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 - promzard@1.0.2: + promzard@2.0.0: dependencies: - read: 3.0.1 + read: 4.1.0 prop-types@15.8.1: dependencies: @@ -14301,29 +12491,14 @@ snapshots: protocols@2.0.2: {} - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - proxy-from-env@1.1.0: {} - psl@1.15.0: - dependencies: - punycode: 2.3.1 - punycode@2.3.1: {} - qs@6.13.0: - dependencies: - side-channel: 1.1.0 - qs@6.14.0: dependencies: side-channel: 1.1.0 - querystringify@2.2.0: {} - queue-lit@1.5.2: {} queue-microtask@1.2.3: {} @@ -14336,41 +12511,23 @@ snapshots: dependencies: safe-buffer: 5.2.1 - range-parser@1.2.1: {} - - rapid-form@3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + rapid-form@3.1.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@example/basics': link:../../../../alessandrocasazza/Documents/GitHub/okeo-academy - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - - react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react-docgen-typescript@2.2.2(typescript@5.8.3): - dependencies: - typescript: 5.8.3 + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - react-docgen-typescript@2.2.2(typescript@5.8.3): + react-docgen-typescript@2.2.2(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - react-docgen@7.1.0: + react-docgen@8.0.2: dependencies: - '@babel/core': 7.26.10 - '@babel/traverse': 7.26.10 - '@babel/types': 7.26.10 + '@babel/core': 7.28.5 + '@babel/traverse': 7.28.3 + '@babel/types': 7.28.2 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 @@ -14379,91 +12536,37 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-dom@19.0.0(react@19.0.0): - dependencies: - react: 19.0.0 - scheduler: 0.25.0 - - react-dom@19.1.0(react@19.1.0): + react-dom@19.2.1(react@19.2.1): dependencies: - react: 19.1.0 - scheduler: 0.26.0 - - react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@base2/pretty-print-object': 1.0.1 - is-plain-object: 5.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.1.0 + react: 19.2.1 + scheduler: 0.27.0 react-is@16.13.1: {} react-is@17.0.2: {} - react-is@18.1.0: {} - react-is@18.3.1: {} - react-is@19.0.0: {} - - react-refresh@0.14.2: {} - - react-refresh@0.17.0: {} - - react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.18 + react-is@19.2.1: {} - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 + react-refresh@0.18.0: {} - react-test-renderer@19.0.0(react@19.0.0): + react-test-renderer@19.2.1(react@19.2.1): dependencies: - react: 19.0.0 - react-is: 19.0.0 - scheduler: 0.25.0 + react: 19.2.1 + react-is: 19.2.1 + scheduler: 0.27.0 - react@18.3.1: + react-window@2.2.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - loose-envify: 1.4.0 - - react@19.0.0: {} + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - react@19.1.0: {} + react@19.2.1: {} read-cmd-shim@4.0.0: {} - read-package-json-fast@3.0.2: - dependencies: - json-parse-even-better-errors: 3.0.2 - npm-normalize-package-bin: 3.0.1 + read-cmd-shim@5.0.0: {} read-pkg-up@3.0.0: dependencies: @@ -14489,9 +12592,9 @@ snapshots: parse-json: 5.2.0 type-fest: 0.6.0 - read@3.0.1: + read@4.1.0: dependencies: - mute-stream: 1.0.0 + mute-stream: 2.0.0 readable-stream@2.3.8: dependencies: @@ -14528,7 +12631,11 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - regenerate-unicode-properties@10.2.0: + regenerate-unicode-properties@10.2.0: + dependencies: + regenerate: 1.4.2 + + regenerate-unicode-properties@10.2.2: dependencies: regenerate: 1.4.2 @@ -14536,10 +12643,6 @@ snapshots: regenerator-runtime@0.14.1: {} - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.26.10 - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -14558,28 +12661,24 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.0 + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + regjsgen@0.8.0: {} regjsparser@0.12.0: dependencies: jsesc: 3.0.2 - remark-external-links@8.0.0: - dependencies: - extend: 3.0.2 - is-absolute-url: 3.0.3 - mdast-util-definitions: 4.0.0 - space-separated-tokens: 1.1.5 - unist-util-visit: 2.0.3 - - remark-gfm@3.0.1: + regjsparser@0.13.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-gfm: 2.0.2 - micromark-extension-gfm: 2.0.3 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color + jsesc: 3.1.0 remark-gfm@4.0.1: dependencies: @@ -14601,12 +12700,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-slug@6.1.0: - dependencies: - github-slugger: 1.5.0 - mdast-util-to-string: 1.1.0 - unist-util-visit: 2.0.3 - remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -14617,8 +12710,6 @@ snapshots: require-from-string@2.0.2: {} - requires-port@1.0.0: {} - resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -14648,25 +12739,15 @@ snapshots: retry@0.12.0: {} - reusify@1.1.0: {} - - rimraf@2.6.3: - dependencies: - glob: 7.2.3 - - rimraf@2.7.1: - dependencies: - glob: 7.2.3 + rettime@0.7.0: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 + reusify@1.1.0: {} rimraf@4.4.1: dependencies: glob: 9.3.5 - rollup-plugin-typescript2@0.36.0(rollup@4.49.0)(typescript@5.9.2): + rollup-plugin-typescript2@0.36.0(rollup@4.49.0)(typescript@5.9.3): dependencies: '@rollup/pluginutils': 4.2.1 find-cache-dir: 3.3.2 @@ -14674,11 +12755,7 @@ snapshots: rollup: 4.49.0 semver: 7.7.1 tslib: 2.8.1 - typescript: 5.9.2 - - rollup@3.29.5: - optionalDependencies: - fsevents: 2.3.3 + typescript: 5.9.3 rollup@4.49.0: dependencies: @@ -14706,9 +12783,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.49.0 fsevents: 2.3.3 - rrweb-cssom@0.8.0: {} - - run-async@2.4.1: {} + run-async@4.0.6: {} run-parallel@1.2.0: dependencies: @@ -14718,10 +12793,6 @@ snapshots: dependencies: tslib: 2.8.1 - sade@1.8.1: - dependencies: - mri: 1.2.0 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -14738,20 +12809,7 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 - - scheduler@0.25.0: {} - - scheduler@0.26.0: {} - - schema-utils@4.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + scheduler@0.27.0: {} schema-utils@4.3.3: dependencies: @@ -14766,37 +12824,12 @@ snapshots: semver@7.7.1: {} - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color + semver@7.7.2: {} serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color - set-blocking@2.0.0: {} set-function-length@1.2.2: @@ -14815,12 +12848,6 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} - - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -14861,17 +12888,21 @@ snapshots: signal-exit@4.1.0: {} - sigstore@2.3.1: + sigstore@4.0.0: dependencies: - '@sigstore/bundle': 2.3.2 - '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.3 - '@sigstore/sign': 2.3.2 - '@sigstore/tuf': 2.3.4 - '@sigstore/verify': 1.2.1 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.0.0 + '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/sign': 4.0.1 + '@sigstore/tuf': 4.0.0 + '@sigstore/verify': 3.0.0 transitivePeerDependencies: - supports-color + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + slash@3.0.0: {} smart-buffer@4.2.0: {} @@ -14902,11 +12933,7 @@ snapshots: source-map@0.6.1: {} - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - - space-separated-tokens@1.1.5: {} + source-map@0.7.6: {} spdx-correct@3.2.0: dependencies: @@ -14934,15 +12961,19 @@ snapshots: sprintf-js@1.1.3: {} - ssri@10.0.6: + ssri@12.0.0: + dependencies: + minipass: 7.1.2 + + ssri@13.0.0: dependencies: minipass: 7.1.2 stackback@0.0.2: {} - statuses@2.0.1: {} + statuses@2.0.2: {} - std-env@3.9.0: {} + std-env@3.10.0: {} stop-iteration-iterator@1.1.0: dependencies: @@ -14951,14 +12982,26 @@ snapshots: store2@2.14.4: {} - storybook@8.6.14(prettier@2.8.8): + storybook@10.1.6(@testing-library/dom@10.4.1)(prettier@2.8.8)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - '@storybook/core': 8.6.14(prettier@2.8.8)(storybook@8.6.14(prettier@2.8.8)) + '@storybook/global': 5.0.0 + '@storybook/icons': 2.0.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@testing-library/jest-dom': 6.9.1 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@vitest/expect': 3.2.4 + '@vitest/spy': 3.2.4 + esbuild: 0.27.0 + recast: 0.23.9 + semver: 7.7.1 + use-sync-external-store: 1.6.0(react@19.2.1) + ws: 8.18.1 optionalDependencies: prettier: 2.8.8 transitivePeerDependencies: + - '@testing-library/dom' - bufferutil - - supports-color + - react + - react-dom - utf-8-validate strict-event-emitter@0.5.1: {} @@ -15005,9 +13048,17 @@ snapshots: dependencies: min-indent: 1.0.1 - strip-literal@3.0.0: + strip-json-comments@3.1.1: {} + + sucrase@3.35.1: dependencies: - js-tokens: 9.0.1 + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + tinyglobby: 0.2.15 + ts-interface-checker: 0.1.13 supports-color@7.2.0: dependencies: @@ -15028,6 +13079,8 @@ snapshots: synchronous-promise@2.0.17: {} + tagged-tag@1.0.0: {} + tapable@2.3.0: {} tar-stream@2.2.0: @@ -15047,22 +13100,30 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + tar@7.5.2: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.1.0 + yallist: 5.0.0 + telejson@7.2.0: dependencies: memoizerific: 1.11.3 temp-dir@1.0.0: {} - terser-webpack-plugin@5.3.14(esbuild@0.25.1)(webpack@5.98.0(esbuild@0.25.1)): + terser-webpack-plugin@5.3.14(esbuild@0.27.0)(webpack@5.98.0(esbuild@0.27.0)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.44.0 - webpack: 5.98.0(esbuild@0.25.1) + webpack: 5.98.0(esbuild@0.27.0) optionalDependencies: - esbuild: 0.25.1 + esbuild: 0.27.0 terser@5.44.0: dependencies: @@ -15071,18 +13132,6 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - test-exclude@7.0.1: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 10.4.5 - minimatch: 9.0.5 - text-extensions@1.9.0: {} thenify-all@1.6.0: @@ -15106,36 +13155,29 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.12: - dependencies: - fdir: 6.4.5(picomatch@4.0.2) - picomatch: 4.0.2 + tinyexec@1.0.2: {} - tinyglobby@0.2.14: + tinyglobby@0.2.12: dependencies: - fdir: 6.4.5(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - tinypool@1.1.1: {} - tinyrainbow@1.2.0: {} tinyrainbow@2.0.0: {} - tinyspy@4.0.3: {} + tinyrainbow@3.0.3: {} - tldts-core@6.1.84: {} + tinyspy@3.0.2: {} - tldts-core@7.0.13: {} + tinyspy@4.0.3: {} - tldts@6.1.84: - dependencies: - tldts-core: 6.1.84 + tldts-core@7.0.13: {} tldts@7.0.13: dependencies: @@ -15143,38 +13185,15 @@ snapshots: tmp@0.2.5: {} - tmpl@1.0.5: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - tocbot@4.35.2: {} - - toidentifier@1.0.1: {} - - tough-cookie@4.1.4: - dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 - - tough-cookie@5.1.2: - dependencies: - tldts: 6.1.84 - tough-cookie@6.0.0: dependencies: tldts: 7.0.13 - tr46@0.0.3: {} - - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - - tr46@5.1.0: + tr46@6.0.0: dependencies: punycode: 2.3.1 @@ -15186,12 +13205,18 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.0.1(typescript@5.8.3): + ts-api-utils@2.0.1(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 ts-dedent@2.2.0: {} + ts-interface-checker@0.1.13: {} + tsc-alias@1.8.16: dependencies: chokidar: 3.6.0 @@ -15202,13 +13227,9 @@ snapshots: normalize-path: 3.0.0 plimit-lit: 1.6.1 - tsconfck@3.1.5(typescript@5.8.3): + tsconfck@3.1.5(typescript@5.9.3): optionalDependencies: - typescript: 5.8.3 - - tsconfck@3.1.5(typescript@5.9.2): - optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 tsconfig-paths@4.2.0: dependencies: @@ -15218,41 +13239,46 @@ snapshots: tslib@2.8.1: {} - tsup@8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0): + tsup@8.5.1(postcss@8.5.6)(typescript@5.9.3)(yaml@2.7.0): dependencies: - bundle-require: 5.1.0(esbuild@0.25.1) + bundle-require: 5.1.0(esbuild@0.27.0) cac: 6.7.14 chokidar: 4.0.3 - consola: 3.4.0 - debug: 4.4.0 - esbuild: 0.25.1 + consola: 3.4.2 + debug: 4.4.1 + esbuild: 0.27.0 + fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.3)(yaml@2.7.0) + postcss-load-config: 6.0.1(postcss@8.5.6)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.35.0 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 + rollup: 4.49.0 + source-map: 0.7.6 + sucrase: 3.35.1 tinyexec: 0.3.2 - tinyglobby: 0.2.12 + tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.3 - typescript: 5.8.3 + postcss: 8.5.6 + typescript: 5.9.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - tuf-js@2.2.1: + tuf-js@4.0.0: dependencies: - '@tufjs/models': 2.0.1 + '@tufjs/models': 4.0.0 debug: 4.4.1 - make-fetch-happen: 13.0.1 + make-fetch-happen: 15.0.2 transitivePeerDependencies: - supports-color + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + type-fest@0.18.1: {} type-fest@0.21.3: {} @@ -15265,38 +13291,34 @@ snapshots: type-fest@2.19.0: {} - type-fest@4.37.0: {} - - type-is@1.6.18: + type-fest@5.3.1: dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 + tagged-tag: 1.0.0 typedarray@0.0.6: {} - typescript-eslint@8.30.1(eslint@9.24.0)(typescript@5.8.3): + typescript-eslint@8.49.0(eslint@9.39.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - eslint: 9.24.0 - typescript: 5.8.3 + '@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.49.0(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3) + eslint: 9.39.1 + typescript: 5.9.3 transitivePeerDependencies: - supports-color typescript@4.9.5: {} - typescript@5.8.3: {} + typescript@5.6.1-rc: {} - typescript@5.9.2: {} + typescript@5.9.3: {} + + ufo@1.6.1: {} uglify-js@3.19.3: optional: true - undici-types@5.26.5: {} - - undici-types@7.10.0: {} - undici-types@7.16.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -15310,17 +13332,9 @@ snapshots: unicode-match-property-value-ecmascript@2.2.0: {} - unicode-property-aliases-ecmascript@2.1.0: {} + unicode-match-property-value-ecmascript@2.2.1: {} - unified@10.1.2: - dependencies: - '@types/unist': 2.0.11 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 5.3.7 + unicode-property-aliases-ecmascript@2.1.0: {} unified@11.0.5: dependencies: @@ -15332,59 +13346,35 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unique-filename@3.0.0: + unique-filename@4.0.0: dependencies: - unique-slug: 4.0.0 + unique-slug: 5.0.0 - unique-slug@4.0.0: + unique-filename@5.0.0: dependencies: - imurmurhash: 0.1.4 + unique-slug: 6.0.0 - unist-util-is@4.1.0: {} + unique-slug@5.0.0: + dependencies: + imurmurhash: 0.1.4 - unist-util-is@5.2.1: + unique-slug@6.0.0: dependencies: - '@types/unist': 2.0.11 + imurmurhash: 0.1.4 unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@3.1.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - - unist-util-visit-parents@5.1.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - unist-util-visit@2.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - - unist-util-visit@4.1.2: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -15393,17 +13383,22 @@ snapshots: universal-user-agent@6.0.1: {} - universalify@0.2.0: {} - universalify@2.0.1: {} - unpipe@1.0.0: {} - unplugin@1.16.1: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 + webpack-virtual-modules: 0.6.2 + + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.15.0 + picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 + until-async@3.0.2: {} + upath@2.0.1: {} update-browserslist-db@1.1.3(browserslist@4.24.4): @@ -15412,59 +13407,26 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - - use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): + update-browserslist-db@1.2.2(browserslist@4.28.1): dependencies: - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 - use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + uri-js@4.4.1: dependencies: - '@juggle/resize-observer': 3.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + punycode: 2.3.1 - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + use-sync-external-store@1.6.0(react@19.2.1): dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 + react: 19.2.1 util-deprecate@1.0.2: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.0 - is-typed-array: 1.1.15 - which-typed-array: 1.1.19 - - utils-merge@1.0.1: {} - - uuid@10.0.0: {} + uuid@11.1.0: {} uuid@9.0.1: {} - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -15472,125 +13434,68 @@ snapshots: validate-npm-package-name@5.0.1: {} - vary@1.1.2: {} - - vfile-message@3.1.4: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position: 3.0.3 + validate-npm-package-name@6.0.2: {} vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile@5.3.7: + vfile@6.0.3: dependencies: - '@types/unist': 2.0.11 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 + '@types/unist': 3.0.3 + vfile-message: 4.0.2 - vite-node@3.2.4(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)): dependencies: - cac: 6.7.14 debug: 4.4.1 - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0)): - dependencies: - debug: 4.4.0 - globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.3) - optionalDependencies: - vite: 7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0)): - dependencies: - debug: 4.4.0 globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.9.2) + tsconfck: 3.1.5(typescript@5.9.3) optionalDependencies: - vite: 7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0) + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0): + vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0): dependencies: - esbuild: 0.25.1 + esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.49.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.2 fsevents: 2.3.3 terser: 5.44.0 yaml: 2.7.0 - vite@7.1.12(@types/node@24.9.1)(terser@5.44.0)(yaml@2.7.0): + vitest@4.0.15(@types/node@24.10.2)(jsdom@27.3.0(postcss@8.5.6))(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.7.0): dependencies: - esbuild: 0.25.1 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.49.0 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 24.9.1 - fsevents: 2.3.3 - terser: 5.44.0 - yaml: 2.7.0 - - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.1)(jsdom@26.1.0)(msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2))(terser@5.44.0)(yaml@2.7.0): - dependencies: - '@types/chai': 5.2.2 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@24.3.1)(typescript@5.9.2))(vite@7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.2.0 - debug: 4.4.1 - expect-type: 1.2.1 - magic-string: 0.30.17 + '@vitest/expect': 4.0.15 + '@vitest/mocker': 4.0.15(msw@2.12.4(@types/node@24.10.2)(typescript@5.9.3))(vite@7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0)) + '@vitest/pretty-format': 4.0.15 + '@vitest/runner': 4.0.15 + '@vitest/snapshot': 4.0.15 + '@vitest/spy': 4.0.15 + '@vitest/utils': 4.0.15 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.2 - std-env: 3.9.0 + picomatch: 4.0.3 + std-env: 3.10.0 tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: 7.1.12(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0) - vite-node: 3.2.4(@types/node@24.3.1)(terser@5.44.0)(yaml@2.7.0) + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.2.7(@types/node@24.10.2)(terser@5.44.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 24.3.1 - jsdom: 26.1.0 + '@types/node': 24.10.2 + jsdom: 27.3.0(postcss@8.5.6) transitivePeerDependencies: - jiti - less @@ -15600,7 +13505,6 @@ snapshots: - sass-embedded - stylus - sugarss - - supports-color - terser - tsx - yaml @@ -15609,11 +13513,7 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - walk-up-path@3.0.1: {} - - walker@1.0.8: - dependencies: - makeerror: 1.0.12 + walk-up-path@4.0.0: {} watchpack@2.4.4: dependencies: @@ -15624,17 +13524,13 @@ snapshots: dependencies: defaults: 1.0.4 - webidl-conversions@3.0.1: {} - - webidl-conversions@4.0.2: {} - - webidl-conversions@7.0.0: {} + webidl-conversions@8.0.0: {} webpack-sources@3.3.3: {} webpack-virtual-modules@0.6.2: {} - webpack@5.98.0(esbuild@0.25.1): + webpack@5.98.0(esbuild@0.27.0): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -15656,7 +13552,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(esbuild@0.25.1)(webpack@5.98.0(esbuild@0.25.1)) + terser-webpack-plugin: 5.3.14(esbuild@0.27.0)(webpack@5.98.0(esbuild@0.27.0)) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -15670,21 +13566,10 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.2.0: - dependencies: - tr46: 5.1.0 - webidl-conversions: 7.0.0 - - whatwg-url@5.0.0: + whatwg-url@15.1.0: dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 + tr46: 6.0.0 + webidl-conversions: 8.0.0 which-boxed-primitive@1.1.1: dependencies: @@ -15715,7 +13600,11 @@ snapshots: dependencies: isexe: 2.0.0 - which@4.0.0: + which@5.0.0: + dependencies: + isexe: 3.1.1 + + which@6.0.0: dependencies: isexe: 3.1.1 @@ -15758,12 +13647,12 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - write-file-atomic@4.0.2: + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 - signal-exit: 3.0.7 + signal-exit: 4.1.0 - write-file-atomic@5.0.1: + write-file-atomic@6.0.0: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 @@ -15785,6 +13674,8 @@ snapshots: ws@8.18.1: {} + ws@8.18.3: {} + xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} @@ -15797,6 +13688,8 @@ snapshots: yallist@4.0.0: {} + yallist@5.0.0: {} + yaml@2.7.0: {} yargs-parser@20.2.9: {} @@ -15825,8 +13718,14 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.2.0: {} - yoctocolors-cjs@2.1.2: {} + yoctocolors-cjs@2.1.3: {} + + zod-validation-error@4.0.2(zod@4.1.13): + dependencies: + zod: 4.1.13 + + zod@4.1.13: {} + zwitch@2.0.4: {} From 7007962125abf6671d455338b876378394b33518 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 2 Apr 2025 18:09:29 +0200 Subject: [PATCH 022/165] Expose Adyen dropin events (onReady, onSelect) --- package.json | 102 +++++++++--------- .../payment_source/AdyenPayment.tsx | 19 ++++ 2 files changed, 71 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index 95ef0fc0..1ac36c47 100644 --- a/package.json +++ b/package.json @@ -1,52 +1,54 @@ { - "name": "root", - "private": true, - "author": { - "name": "Alessandro Casazza", - "email": "alessandro@commercelayer.io" - }, - "scripts": { - "preinstall": "npx only-allow pnpm", - "build": "pnpm -r build", - "prepare": "husky", - "test": "pnpm -r test", - "docs:dev": "pnpm --filter docs storybook", - "docs:build": "pnpm --filter docs build-storybook", - "components:build:dev": "pnpm --filter react-components build:dev", - "components:build": "pnpm --filter react-components build", - "make:version": "lerna version --no-private", - "make:version:force": "lerna version --no-private --force-publish", - "dep:major": "pnpm dlx npm-check-updates --packageFile '**/package.json' -u -i", - "dep:minor": "pnpm dep:major -t minor -i" - }, - "devDependencies": { - "@biomejs/biome": "1.9.4", - "husky": "^9.1.7", - "lerna": "^8.2.2", - "typescript": "^5.8.3", - "vitest": "^3.1.1" - }, - "pnpm": { - "overrides": { - "postcss@<8.4.31": ">=8.4.31", - "graphql@>=16.3.0 <16.8.1": ">=16.8.1", - "vite@>=4.4.0 <4.4.12": ">=4.4.12", - "@babel/traverse@<7.23.2": ">=7.23.2", - "vite@>=4.0.0 <=4.5.1": ">=4.5.2", - "follow-redirects@<1.15.4": ">=1.15.4", - "express@<4.19.2": ">=4.19.2", - "vite@>=5.1.0 <=5.1.6": ">=5.1.7", - "tar@<6.2.1": ">=6.2.1", - "ejs@<3.1.10": ">=3.1.10", - "braces@<3.0.3": ">=3.0.3", - "ws@>=8.0.0 <8.17.1": ">=8.17.1", - "micromatch@<4.0.8": ">=4.0.8", - "rollup@>=4.0.0 <4.22.4": ">=4.22.4", - "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" - }, - "onlyBuiltDependencies": [ - "msw", - "nx" - ] - } + "name": "root", + "private": true, + "author": { + "name": "Alessandro Casazza", + "email": "alessandro@commercelayer.io" + }, + "scripts": { + "preinstall": "npx only-allow pnpm", + "build": "pnpm -r build", + "prepare": "husky", + "test": "pnpm -r test", + "docs:dev": "pnpm --filter docs storybook", + "docs:build": "pnpm --filter docs build-storybook", + "components:build:dev": "pnpm --filter react-components build:dev", + "components:build": "pnpm --filter react-components build", + "make:version": "lerna version --no-private", + "make:version:force": "lerna version --no-private --force-publish", + "dep:major": "pnpm dlx npm-check-updates --packageFile '**/package.json' -u -i", + "dep:minor": "pnpm dep:major -t minor -i" + }, + "devDependencies": { + "@biomejs/biome": "1.9.4", + "husky": "^9.1.7", + "lerna": "^8.2.1", + "typescript": "^5.8.2" + }, + "pnpm": { + "overrides": { + "postcss@<8.4.31": ">=8.4.31", + "graphql@>=16.3.0 <16.8.1": ">=16.8.1", + "vite@>=4.4.0 <4.4.12": ">=4.4.12", + "@babel/traverse@<7.23.2": ">=7.23.2", + "vite@>=4.0.0 <=4.5.1": ">=4.5.2", + "follow-redirects@<1.15.4": ">=1.15.4", + "express@<4.19.2": ">=4.19.2", + "vite@>=5.1.0 <=5.1.6": ">=5.1.7", + "tar@<6.2.1": ">=6.2.1", + "ejs@<3.1.10": ">=3.1.10", + "braces@<3.0.3": ">=3.0.3", + "ws@>=8.0.0 <8.17.1": ">=8.17.1", + "micromatch@<4.0.8": ">=4.0.8", + "rollup@>=4.0.0 <4.22.4": ">=4.22.4", + "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" + }, + "onlyBuiltDependencies": [ + "@biomejs/biome", + "esbuild", + "iframe-resizer", + "msw", + "nx" + ] + } } diff --git a/packages/react-components/src/components/payment_source/AdyenPayment.tsx b/packages/react-components/src/components/payment_source/AdyenPayment.tsx index dbb72708..862ea116 100644 --- a/packages/react-components/src/components/payment_source/AdyenPayment.tsx +++ b/packages/react-components/src/components/payment_source/AdyenPayment.tsx @@ -76,6 +76,17 @@ export interface AdyenPaymentConfig { recurringDetailReference: string shopperReference: string | undefined }) => Promise + /** + * Callback function to be called when the Adyen component is ready. + * @returns void. + */ + onReady?: () => void + /** + * onSelect callback function to be called when a payment method is selected. + * @param component - The selected payment method component. + * @returns void. + */ + onSelect?: (component: UIElement) => void giftcardErrorComponent?: (message: string) => JSX.Element } @@ -101,6 +112,8 @@ export function AdyenPayment({ styles, onDisableStoredPaymentMethod, giftcardErrorComponent, + onReady, + onSelect, } = { ...defaultConfig, ...config, @@ -580,6 +593,12 @@ export function AdyenPayment({ setPaymentRef({ ref }) } } + if (onSelect) { + onSelect(component) + } + }, + onReady() { + if (onReady) onReady() }, }).mount("#adyen-dropin") if (dropin && checkout) { From 90f3811013f06cd114907a7c17c021adfb397c50 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 2 Apr 2025 19:59:30 +0200 Subject: [PATCH 023/165] v4.21.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 9e33df17..64a082b1 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.20.6", + "version": "4.21.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index f982e2c6..dded2f64 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.20.6", + "version": "4.21.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 1ff895d6349f605cf23fac02ac1c4a603318698d Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 9 Apr 2025 16:52:03 +0200 Subject: [PATCH 024/165] Add stripe connected account --- package.json | 2 +- packages/react-components/package.json | 30 +- .../payment_gateways/StripeGateway.tsx | 46 +- .../payment_source/StripePayment.tsx | 130 +-- pnpm-lock.yaml | 836 ++++-------------- 5 files changed, 275 insertions(+), 769 deletions(-) diff --git a/package.json b/package.json index 1ac36c47..f3b03b2a 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@biomejs/biome": "1.9.4", "husky": "^9.1.7", "lerna": "^8.2.1", - "typescript": "^5.8.2" + "typescript": "^5.8.3" }, "pnpm": { "overrides": { diff --git a/packages/react-components/package.json b/packages/react-components/package.json index dded2f64..4d666599 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -159,11 +159,11 @@ "dependencies": { "@adyen/adyen-web": "^6.11.0", "@commercelayer/organization-config": "^2.2.0", - "@commercelayer/sdk": "^6.36.0", - "@stripe/react-stripe-js": "^3.5.1", - "@stripe/stripe-js": "^6.1.0", + "@commercelayer/sdk": "^6.38.0", + "@stripe/react-stripe-js": "^3.6.0", + "@stripe/stripe-js": "^7.0.0", "@tanstack/react-table": "^8.21.2", - "@types/iframe-resizer": "^4.0.0", + "@types/iframe-resizer": "^3.5.13", "braintree-web": "^3.117.1", "frames-react": "^1.2.2", "iframe-resizer": "^4.3.6", @@ -172,32 +172,32 @@ "rapid-form": "3.1.0" }, "devDependencies": { - "@commercelayer/js-auth": "^6.7.1", + "@commercelayer/js-auth": "^6.7.2", "@faker-js/faker": "^9.6.0", "@playwright/test": "^1.51.1", "@testing-library/dom": "^10.4.0", - "@testing-library/react": "^16.2.0", + "@testing-library/react": "^16.3.0", "@types/braintree-web": "^3.96.17", "@types/lodash": "^4.17.16", - "@types/node": "^22.13.14", + "@types/node": "^22.14.0", "@types/prop-types": "^15.7.14", "@types/react": "^19.0.12", "@types/react-test-renderer": "^19.0.0", "@types/react-window": "^1.8.8", "@vitejs/plugin-react": "^4.3.4", - "@vitest/coverage-v8": "^3.0.9", + "@vitest/coverage-v8": "^3.1.1", "jsdom": "^26.0.0", "minimize-js": "^1.4.0", "msw": "^2.7.3", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-test-renderer": "^19.0.0", - "tsc-alias": "^1.8.11", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-test-renderer": "^18.3.1", + "tsc-alias": "^1.8.13", "tslib": "^2.8.1", - "typescript": "^5.8.2", - "vite": "^6.2.3", + "typescript": "^5.8.3", + "vite": "^6.2.5", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.0.9" + "vitest": "^3.1.1" }, "peerDependencies": { "react": ">=18.0.0" diff --git a/packages/react-components/src/components/payment_gateways/StripeGateway.tsx b/packages/react-components/src/components/payment_gateways/StripeGateway.tsx index 6ee87e5c..e9eb72d7 100644 --- a/packages/react-components/src/components/payment_gateways/StripeGateway.tsx +++ b/packages/react-components/src/components/payment_gateways/StripeGateway.tsx @@ -1,19 +1,19 @@ -import type { GatewayBaseType } from '#components/payment_gateways/PaymentGateway' -import StripePayment from '#components/payment_source/StripePayment' -import CustomerContext from '#context/CustomerContext' -import OrderContext from '#context/OrderContext' -import PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext' -import PaymentMethodContext from '#context/PaymentMethodContext' -import PaymentSourceContext from '#context/PaymentSourceContext' +import type { GatewayBaseType } from "#components/payment_gateways/PaymentGateway" +import StripePayment from "#components/payment_source/StripePayment" +import CustomerContext from "#context/CustomerContext" +import OrderContext from "#context/OrderContext" +import PaymentMethodChildrenContext from "#context/PaymentMethodChildrenContext" +import PaymentMethodContext from "#context/PaymentMethodContext" +import PaymentSourceContext from "#context/PaymentSourceContext" import { getPaymentConfig, - type PaymentResource -} from '#reducers/PaymentMethodReducer' -import getCardDetails from '#utils/getCardDetails' -import type { StripeElementLocale } from '@stripe/stripe-js' -import isEmpty from 'lodash/isEmpty' -import { useContext, type JSX } from 'react'; -import PaymentCardsTemplate from '../utils/PaymentCardsTemplate' + type PaymentResource, +} from "#reducers/PaymentMethodReducer" +import getCardDetails from "#utils/getCardDetails" +import type { StripeElementLocale } from "@stripe/stripe-js" +import isEmpty from "lodash/isEmpty" +import { useContext, type JSX } from "react" +import PaymentCardsTemplate from "../utils/PaymentCardsTemplate" type Props = GatewayBaseType @@ -35,16 +35,18 @@ export function StripeGateway(props: Props): JSX.Element | null { const { payments, isGuest } = useContext(CustomerContext) const { currentPaymentMethodId, config, paymentSource } = useContext(PaymentMethodContext) - const paymentResource: PaymentResource = 'stripe_payments' + const paymentResource: PaymentResource = "stripe_payments" const locale = order?.language_code as StripeElementLocale if (!readonly && payment?.id !== currentPaymentMethodId) return null // @ts-expect-error no type const publishableKey = paymentSource?.publishable_key // @ts-expect-error no type + const connectedAccount = paymentSource?.connected_account + // @ts-expect-error no type const clientSecret = paymentSource?.client_secret const stripeConfig = config - ? getPaymentConfig<'stripe_payments'>(paymentResource, config).stripePayment + ? getPaymentConfig<"stripe_payments">(paymentResource, config).stripePayment : {} const customerPayments = !isEmpty(payments) && payments @@ -55,21 +57,21 @@ export function StripeGateway(props: Props): JSX.Element | null { if (readonly || showCard) { const card = getCardDetails({ customerPayment: { - payment_source: paymentSource + payment_source: paymentSource, }, - paymentType: paymentResource + paymentType: paymentResource, }) - if (card?.brand === '') { + if (card?.brand === "") { card.brand = // @ts-expect-error missing type - paymentSource?.payment_instrument?.issuer_type ?? 'credit-card' + paymentSource?.payment_instrument?.issuer_type ?? "credit-card" } const value = { ...card, showCard, handleEditClick, readonly, - paymentSource + paymentSource, } return card?.brand == null ? null : ( @@ -91,6 +93,7 @@ export function StripeGateway(props: Props): JSX.Element | null { show={show} templateCustomerSaveToWallet={templateCustomerSaveToWallet} publishableKey={publishableKey} + connectedAccount={connectedAccount} clientSecret={clientSecret} expressPayments={expressPayments} locale={locale} @@ -103,6 +106,7 @@ export function StripeGateway(props: Props): JSX.Element | null { - interface OnSubmitArgs { - event: SubmitEvent + event: HTMLFormElement | null stripe: Stripe | null elements: StripeElements | null } const defaultOptions: StripePaymentElementOptions = { layout: { - type: 'accordion', + type: "accordion", defaultCollapsed: false, radios: true, - spacedAccordionItems: false + spacedAccordionItems: false, }, - fields: { billingDetails: 'never' } + fields: { billingDetails: "never" }, } -const defaultAppearance: StripeElementsOptions['appearance'] = { - theme: 'stripe', +const defaultAppearance: StripeElementsOptions["appearance"] = { + theme: "stripe", variables: { - colorText: '#32325d', - fontFamily: '"Helvetica Neue", Helvetica, sans-serif' - } + colorText: "#32325d", + fontFamily: '"Helvetica Neue", Helvetica, sans-serif', + }, } function StripePaymentForm({ options = defaultOptions, - templateCustomerSaveToWallet + templateCustomerSaveToWallet, + stripe, }: StripePaymentFormProps): JSX.Element { const ref = useRef(null) const { currentPaymentMethodType, setPaymentMethodErrors, setPaymentRef } = useContext(PaymentMethodContext) const { order } = useContext(OrderContext) - const stripe = useStripe() const elements = useElements() + // biome-ignore lint/correctness/useExhaustiveDependencies: Avoid rerendering the form useEffect(() => { if (ref.current && stripe && elements) { ref.current.onsubmit = async () => { return await onSubmit({ - event: ref.current as any, + event: ref.current, stripe, - elements + elements, }) } setPaymentRef({ ref }) @@ -88,7 +85,7 @@ function StripePaymentForm({ const onSubmit = async ({ event, stripe, - elements + elements, }: OnSubmitArgs): Promise => { if (!stripe) return false @@ -97,51 +94,50 @@ function StripePaymentForm({ event?.elements?.save_payment_source_to_customer_wallet?.checked if (savePaymentSourceToCustomerWallet) setCustomerOrderParam( - '_save_payment_source_to_customer_wallet', - savePaymentSourceToCustomerWallet + "_save_payment_source_to_customer_wallet", + savePaymentSourceToCustomerWallet, ) if (elements != null) { const billingInfo = order?.billing_address - const email = order?.customer_email ?? '' + const email = order?.customer_email ?? "" const billingDetails = { - name: billingInfo?.full_name ?? '', + name: billingInfo?.full_name ?? "", email, phone: billingInfo?.phone, address: { city: billingInfo?.city, country: billingInfo?.country_code, line1: billingInfo?.line_1, - line2: billingInfo?.line_2 ?? '', - postal_code: billingInfo?.zip_code ?? '', - state: billingInfo?.state_code - } + line2: billingInfo?.line_2 ?? "", + postal_code: billingInfo?.zip_code ?? "", + state: billingInfo?.state_code, + }, } const url = new URL(window.location.href) - const cleanUrl = `${url.origin}${url.pathname}?accessToken=${url.searchParams.get('accessToken')}` + const cleanUrl = `${url.origin}${url.pathname}?accessToken=${url.searchParams.get("accessToken")}` const { error } = await stripe.confirmPayment({ elements, confirmParams: { return_url: cleanUrl, payment_method_data: { - billing_details: billingDetails - } + billing_details: billingDetails, + }, }, - redirect: 'if_required' + redirect: "if_required", }) if (error) { console.error(error) setPaymentMethodErrors([ { - code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE', - resource: 'payment_methods', + code: "PAYMENT_INTENT_AUTHENTICATION_FAILURE", + resource: "payment_methods", field: currentPaymentMethodType, - message: error.message ?? '' - } + message: error.message ?? "", + }, ]) return false - } else { - return true } + return true } return false } @@ -150,11 +146,11 @@ function StripePaymentForm({
{/* */} {templateCustomerSaveToWallet && ( - + {templateCustomerSaveToWallet} )} @@ -162,14 +158,15 @@ function StripePaymentForm({ ) } -type Props = PaymentMethodConfig['stripePayment'] & - Omit & - Partial & { +type Props = PaymentMethodConfig["stripePayment"] & + Omit & + Partial & { show?: boolean publishableKey: string locale?: StripeElementLocale clientSecret: string expressPayments?: boolean + connectedAccount?: string } export function StripePayment({ @@ -177,8 +174,9 @@ export function StripePayment({ show, options, clientSecret, - locale = 'auto', + locale = "auto", expressPayments = false, + connectedAccount, ...p }: Props): JSX.Element | null { const [isLoaded, setIsLoaded] = useState(false) @@ -190,13 +188,16 @@ export function StripePayment({ appearance, ...divProps } = p + // biome-ignore lint/correctness/useExhaustiveDependencies: Avoid refreshing the stripe object useEffect(() => { if (show && publishableKey) { - import('@stripe/stripe-js').then(({ loadStripe }) => { + import("@stripe/stripe-js").then(({ loadStripe }) => { const getStripe = async (): Promise => { - const res = await loadStripe(publishableKey, { - locale - }) + const options = { + locale, + ...(connectedAccount ? { stripeAccount: connectedAccount } : {}), + } satisfies StripeConstructorOptions + const res = await loadStripe(publishableKey, options) if (res != null) { setStripe(res) setIsLoaded(true) @@ -208,11 +209,11 @@ export function StripePayment({ return () => { setIsLoaded(false) } - }, [show, publishableKey]) + }, [show, publishableKey, connectedAccount]) const elementsOptions: StripeElementsOptions = { clientSecret, appearance: { ...defaultAppearance, ...appearance }, - fonts + fonts, } return isLoaded && stripe != null && clientSecret != null ? (
@@ -221,6 +222,7 @@ export function StripePayment({ ) : ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 807abf60..854d70f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,37 +37,6 @@ importers: typescript: specifier: ^5.8.3 version: 5.8.3 - vitest: - specifier: ^3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) - - packages/core: - dependencies: - '@commercelayer/js-auth': - specifier: ^6.7.2 - version: 6.7.2 - '@commercelayer/sdk': - specifier: 6.39.0 - version: 6.39.0 - devDependencies: - '@arethetypeswrong/cli': - specifier: ^0.17.4 - version: 0.17.4 - '@vitest/coverage-v8': - specifier: ^3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) - tsup: - specifier: ^8.4.0 - version: 8.4.0(postcss@8.5.3)(typescript@5.8.3)(yaml@2.7.0) - typescript: - specifier: ^5.8.3 - version: 5.8.3 - vite-tsconfig-paths: - specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - vitest: - specifier: ^3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages/docs: devDependencies: @@ -139,7 +108,7 @@ importers: version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) '@storybook/react-vite': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -154,7 +123,7 @@ importers: version: 18.3.18 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) babel-loader: specifier: ^9.2.1 version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)) @@ -166,7 +135,7 @@ importers: version: 4.0.0 msw: specifier: ^2.7.0 - version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) + version: 2.7.3(@types/node@22.14.0)(typescript@5.8.2) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -187,104 +156,10 @@ importers: version: 5.8.2 vite: specifier: ^6.1.0 - version: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + version: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - - packages/document: - dependencies: - react: - specifier: ^19.1.0 - version: 19.1.0 - react-dom: - specifier: ^19.1.0 - version: 19.1.0(react@19.1.0) - devDependencies: - '@chromatic-com/storybook': - specifier: ^3.2.6 - version: 3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) - '@eslint/js': - specifier: ^9.24.0 - version: 9.24.0 - '@storybook/addon-docs': - specifier: ^8.6.12 - version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-essentials': - specifier: ^8.6.12 - version: 8.6.12(@types/react@19.1.2)(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-interactions': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-links': - specifier: ^8.6.12 - version: 8.6.12(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-mdx-gfm': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/addon-onboarding': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/blocks': - specifier: ^8.6.12 - version: 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8)) - '@storybook/react': - specifier: ^8.6.12 - version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) - '@storybook/react-vite': - specifier: ^8.6.12 - version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@storybook/test': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@storybook/theming': - specifier: ^8.6.12 - version: 8.6.12(storybook@8.6.12(prettier@2.8.8)) - '@types/react': - specifier: ^19.1.2 - version: 19.1.2 - '@types/react-dom': - specifier: ^19.1.2 - version: 19.1.2(@types/react@19.1.2) - '@vitejs/plugin-react': - specifier: ^4.4.0 - version: 4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - eslint: - specifier: ^9.24.0 - version: 9.24.0 - eslint-plugin-react-hooks: - specifier: ^5.2.0 - version: 5.2.0(eslint@9.24.0) - eslint-plugin-react-refresh: - specifier: ^0.4.19 - version: 0.4.19(eslint@9.24.0) - eslint-plugin-storybook: - specifier: ^0.12.0 - version: 0.12.0(eslint@9.24.0)(typescript@5.8.3) - globals: - specifier: ^16.0.0 - version: 16.0.0 - msw: - specifier: ^2.7.4 - version: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) - remark-gfm: - specifier: ^4.0.1 - version: 4.0.1 - storybook: - specifier: ^8.6.12 - version: 8.6.12(prettier@2.8.8) - typescript: - specifier: ~5.8.3 - version: 5.8.3 - typescript-eslint: - specifier: ^8.30.1 - version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) - vite: - specifier: ^6.3.1 - version: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - vite-tsconfig-paths: - specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: @@ -295,14 +170,14 @@ importers: specifier: ^2.2.0 version: 2.2.0 '@commercelayer/sdk': - specifier: ^6.36.0 - version: 6.36.0 + specifier: ^6.38.0 + version: 6.38.0 '@stripe/react-stripe-js': - specifier: ^3.5.1 - version: 3.5.1(@stripe/stripe-js@6.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^3.6.0 + version: 3.6.0(@stripe/stripe-js@7.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@stripe/stripe-js': - specifier: ^6.1.0 - version: 6.1.0 + specifier: ^7.0.0 + version: 7.0.0 '@tanstack/react-table': specifier: ^8.21.2 version: 8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -314,7 +189,7 @@ importers: version: 3.117.1 frames-react: specifier: ^1.2.2 - version: 1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(typescript@5.8.2) + version: 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3) iframe-resizer: specifier: ^4.3.6 version: 4.4.5 @@ -329,8 +204,8 @@ importers: version: 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) devDependencies: '@commercelayer/js-auth': - specifier: ^6.7.1 - version: 6.7.1 + specifier: ^6.7.2 + version: 6.7.2 '@faker-js/faker': specifier: ^9.6.0 version: 9.6.0 @@ -341,8 +216,8 @@ importers: specifier: ^10.4.0 version: 10.4.0 '@testing-library/react': - specifier: ^16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^16.3.0 + version: 16.3.0(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/braintree-web': specifier: ^3.96.17 version: 3.96.17 @@ -350,8 +225,8 @@ importers: specifier: ^4.17.16 version: 4.17.16 '@types/node': - specifier: ^22.13.14 - version: 22.13.14 + specifier: ^22.14.0 + version: 22.14.0 '@types/prop-types': specifier: ^15.7.14 version: 15.7.14 @@ -366,10 +241,10 @@ importers: version: 1.8.8 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) '@vitest/coverage-v8': - specifier: ^3.0.9 - version: 3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.1.1 + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) jsdom: specifier: ^26.0.0 version: 26.0.0 @@ -378,7 +253,7 @@ importers: version: 1.4.0 msw: specifier: ^2.7.3 - version: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) + version: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) react: specifier: ^19.0.0 version: 19.0.0 @@ -389,29 +264,26 @@ importers: specifier: ^19.0.0 version: 19.0.0(react@19.0.0) tsc-alias: - specifier: ^1.8.11 - version: 1.8.11 + specifier: ^1.8.13 + version: 1.8.13 tslib: specifier: ^2.8.1 version: 2.8.1 typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 vite: - specifier: ^6.2.3 - version: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.2.5 + version: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.0.9 - version: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.1.1 + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages: - '@adobe/css-tools@4.4.1': - resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} - '@adyen/adyen-web@6.11.0': resolution: {integrity: sha512-OSpTq+VN84hNPOV5RpHM8T4TYMgL8sMr0UDa+2yDeTEBTIlNdigCKgDWTXzOHIW/BuPWna4e9n1fuGYnCJgXlQ==} @@ -1111,12 +983,8 @@ packages: resolution: {integrity: sha512-0Afbon6//2KHCTb6bILk2L9Idj9dP8pw06V1CFtaz1wtAsX4iifubGpOPxHH6CuGi4DFHzgASJRz6+ZZbqb3kA==} engines: {node: '>=20'} - '@commercelayer/sdk@6.36.0': - resolution: {integrity: sha512-qM/8/RwyGA41GoSyMCRO5ZpxUElzc47rHVWX+oeZkmuV0Tad01Q7ZsYY5ZrAEswbICj6jRpFg82B9Wpv3gwsZg==} - engines: {node: '>=20'} - - '@commercelayer/sdk@6.39.0': - resolution: {integrity: sha512-HzfXTAXvAe8UOd8E0SOokxjS9K/OVZJ+xX12nLxPS5OEPyAz5AnIzSfn9AVYiuii8QWAkVsjFfTq+4JouZzdEA==} + '@commercelayer/sdk@6.38.0': + resolution: {integrity: sha512-fv6GrTFWkQJC4yb86Fix560+S/lKLegTEFpQNTsnNpE8JLkzF63B1dyCWpbGcOtsbCK37I/CXsQf6eof1R15qA==} engines: {node: '>=20'} '@csstools/color-helpers@5.0.2': @@ -2828,15 +2696,15 @@ packages: '@storybook/types@7.6.20': resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} - '@stripe/react-stripe-js@3.5.1': - resolution: {integrity: sha512-MFZ69qz70T0srU9nsPhQHFNbOxfL4fb9fokHKqJy0S6X53D8KJXD23iiKWGmLasMeqXNzBqLnuziE72QszeRLw==} + '@stripe/react-stripe-js@3.6.0': + resolution: {integrity: sha512-zEnaUmTOsu7zhl3RWbZ0l1dRiad+QIbcAYzQfF+yYelURJowhAwesRHKWH+qGAIBEpkO6/VCLFHhVLH9DtPlnw==} peerDependencies: - '@stripe/stripe-js': '>=1.44.1 <7.0.0' + '@stripe/stripe-js': '>=1.44.1 <8.0.0' react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@6.1.0': - resolution: {integrity: sha512-/5zxRol+MU4I7fjZXPxP2M6E1nuHOxAzoc0tOEC/TLnC31Gzc+5EE93mIjoAnu28O1Sqpl7/BkceDHwnGmn75A==} + '@stripe/stripe-js@7.0.0': + resolution: {integrity: sha512-0AWkP+hoIXB5O34FGY7jh687ZPlOqLqMkJDkiSXcp4TaWWidnxjsZSp0xkjyAWbIz4+j1BFXDAK01Rqb7ceBRA==} engines: {node: '>=12.16'} '@tanstack/react-table@8.21.2': @@ -2858,12 +2726,8 @@ packages: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} - '@testing-library/jest-dom@6.5.0': - resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - - '@testing-library/react@16.2.0': - resolution: {integrity: sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==} + '@testing-library/react@16.3.0': + resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 @@ -3041,8 +2905,8 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - '@types/node@22.13.14': - resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==} + '@types/node@22.14.0': + resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3200,22 +3064,7 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=4.5.2' - - '@vitejs/plugin-react@4.4.0': - resolution: {integrity: sha512-x/EztcTKVj+TDeANY1WjNeYsvZjZdfWRMP/KXi5Yn8BoTzpa13ZltaQqKfvWYbX8CE10GOHHdC5v86jY9x8i/g==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: '>=4.5.2' - - '@vitest/coverage-v8@3.0.9': - resolution: {integrity: sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==} - peerDependencies: - '@vitest/browser': 3.0.9 - vitest: 3.0.9 - peerDependenciesMeta: - '@vitest/browser': - optional: true + vite: '>=5.1.7' '@vitest/coverage-v8@3.1.1': resolution: {integrity: sha512-MgV6D2dhpD6Hp/uroUoAIvFqA8AuvXEFBC2eepG3WFc1pxTfdk1LEqqkWoWhjz+rytoqrnUUCdf6Lzco3iHkLQ==} @@ -3226,26 +3075,9 @@ packages: '@vitest/browser': optional: true - '@vitest/expect@2.0.5': - resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - - '@vitest/expect@3.0.9': - resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==} - '@vitest/expect@3.1.1': resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} - '@vitest/mocker@3.0.9': - resolution: {integrity: sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==} - peerDependencies: - msw: ^2.4.9 - vite: '>=5.1.7' - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - '@vitest/mocker@3.1.1': resolution: {integrity: sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==} peerDependencies: @@ -3257,48 +3089,18 @@ packages: vite: optional: true - '@vitest/pretty-format@2.0.5': - resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - - '@vitest/pretty-format@2.1.9': - resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} - - '@vitest/pretty-format@3.0.9': - resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} - '@vitest/pretty-format@3.1.1': resolution: {integrity: sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==} - '@vitest/runner@3.0.9': - resolution: {integrity: sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==} - '@vitest/runner@3.1.1': resolution: {integrity: sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==} - '@vitest/snapshot@3.0.9': - resolution: {integrity: sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==} - '@vitest/snapshot@3.1.1': resolution: {integrity: sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==} - '@vitest/spy@2.0.5': - resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - - '@vitest/spy@3.0.9': - resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==} - '@vitest/spy@3.1.1': resolution: {integrity: sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==} - '@vitest/utils@2.0.5': - resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - - '@vitest/utils@2.1.9': - resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - - '@vitest/utils@3.0.9': - resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} - '@vitest/utils@3.1.1': resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} @@ -7406,11 +7208,9 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tsc-alias@1.8.11: - resolution: {integrity: sha512-2DuEQ58A9Rj2NE2c1+/qaGKlshni9MCK95MJzRGhQG0CYLw0bE/ACgbhhTSf/p1svLelwqafOd8stQate2bYbg==} + tsc-alias@1.8.13: + resolution: {integrity: sha512-hpuglrm2DoHZE62L8ntYqRNiSQ7J8kvIxEsajzY/QfGOm7EcdhgG5asqoWYi2E2KX0SqUuhOTnV8Ry8D/TnsEA==} + engines: {node: '>=16.20.2'} hasBin: true tsconfck@3.1.5: @@ -7540,8 +7340,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -7722,14 +7522,6 @@ packages: vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - vite-node@3.0.9: - resolution: {integrity: sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - vite-node@3.1.1: resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7738,7 +7530,7 @@ packages: vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=4.5.2' + vite: '>=5.1.7' peerDependenciesMeta: vite: optional: true @@ -7783,8 +7575,8 @@ packages: yaml: optional: true - vite@6.2.3: - resolution: {integrity: sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==} + vite@6.2.5: + resolution: {integrity: sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7823,6 +7615,40 @@ packages: yaml: optional: true + vitest@3.1.1: + resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.1.1 + '@vitest/ui': 3.1.1 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vite@6.3.1: resolution: {integrity: sha512-kkzzkqtMESYklo96HKKPE5KKLkC1amlsqt+RjFMlX2AvbRB/0wghap19NdBxxwGZ+h/C6DLCrcEphPIItlGrRQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -8137,8 +7963,6 @@ packages: snapshots: - '@adobe/css-tools@4.4.1': {} - '@adyen/adyen-web@6.11.0': dependencies: '@types/applepayjs': 14.0.9 @@ -8994,9 +8818,7 @@ snapshots: '@commercelayer/sdk@6.35.0': {} - '@commercelayer/sdk@6.36.0': {} - - '@commercelayer/sdk@6.39.0': {} + '@commercelayer/sdk@6.38.0': {} '@csstools/color-helpers@5.0.2': {} @@ -9258,17 +9080,17 @@ snapshots: '@hutson/parse-repository-url@3.0.2': {} - '@inquirer/confirm@5.1.8(@types/node@22.13.14)': + '@inquirer/confirm@5.1.8(@types/node@22.14.0)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.13.14) - '@inquirer/type': 3.0.5(@types/node@22.13.14) + '@inquirer/core': 10.1.9(@types/node@22.14.0) + '@inquirer/type': 3.0.5(@types/node@22.14.0) optionalDependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 - '@inquirer/core@10.1.9(@types/node@22.13.14)': + '@inquirer/core@10.1.9(@types/node@22.14.0)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.13.14) + '@inquirer/type': 3.0.5(@types/node@22.14.0) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -9276,13 +9098,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.5(@types/node@22.13.14)': + '@inquirer/type@3.0.5(@types/node@22.14.0)': optionalDependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@isaacs/cliui@8.0.2': dependencies: @@ -9333,7 +9155,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -9342,17 +9164,17 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 @@ -9389,7 +9211,7 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@lerna/create@8.2.2(encoding@0.1.13)(typescript@5.8.3)': + '@lerna/create@8.2.1(encoding@0.1.13)(typescript@5.8.3)': dependencies: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 @@ -10582,7 +10404,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -10600,7 +10422,7 @@ snapshots: fs-extra: 11.3.0 magic-string: 0.30.17 rollup: 3.29.5 - vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: @@ -11005,24 +10827,18 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-dom-shim@8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - storybook: 8.6.12(prettier@2.8.8) - - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) - '@vitejs/plugin-react': 3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitejs/plugin-react': 3.1.0(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) - vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -11178,14 +10994,14 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@stripe/react-stripe-js@3.5.1(@stripe/stripe-js@6.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@stripe/react-stripe-js@3.6.0(@stripe/stripe-js@7.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@stripe/stripe-js': 6.1.0 + '@stripe/stripe-js': 7.0.0 prop-types: 15.8.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@stripe/stripe-js@6.1.0': {} + '@stripe/stripe-js@7.0.0': {} '@tanstack/react-table@8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: @@ -11217,17 +11033,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.5.0': - dependencies: - '@adobe/css-tools': 4.4.1 - aria-query: 5.3.0 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - lodash: 4.17.21 - redent: 3.0.0 - - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.2(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 @@ -11284,7 +11090,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/braintree-web@3.96.17': dependencies: @@ -11293,13 +11099,13 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/debug@4.1.12': dependencies: @@ -11333,7 +11139,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11350,13 +11156,13 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/googlepay@0.7.6': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/http-errors@2.0.4': {} @@ -11402,16 +11208,16 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 form-data: 4.0.2 '@types/node@18.19.80': dependencies: undici-types: 5.26.5 - '@types/node@22.13.14': + '@types/node@22.14.0': dependencies: - undici-types: 6.20.0 + undici-types: 6.21.0 '@types/normalize-package-data@2.4.4': {} @@ -11467,12 +11273,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.13.14 + '@types/node': 22.14.0 '@types/send': 0.17.4 '@types/statuses@2.0.5': {} @@ -11495,165 +11301,40 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/type-utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.30.1 - eslint: 9.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 - eslint: 9.24.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.23.0': - dependencies: - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/visitor-keys': 8.23.0 - - '@typescript-eslint/scope-manager@8.30.1': - dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 - - '@typescript-eslint/type-utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - debug: 4.4.0 - eslint: 9.24.0 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.23.0': {} - - '@typescript-eslint/types@8.30.1': {} - - '@typescript-eslint/typescript-estree@8.23.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/visitor-keys': 8.23.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.23.0(eslint@9.24.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) - '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/types': 8.23.0 - '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.8.3) - eslint: 9.24.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.24.0) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - eslint: 9.24.0 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.23.0': - dependencies: - '@typescript-eslint/types': 8.23.0 - eslint-visitor-keys: 4.2.0 - - '@typescript-eslint/visitor-keys@8.30.1': - dependencies: - '@typescript-eslint/types': 8.30.1 - eslint-visitor-keys: 4.2.0 - - '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.4.0(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': - dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - '@vitest/coverage-v8@3.0.9(vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0))': + '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -11667,42 +11348,10 @@ snapshots: std-env: 3.8.1 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magic-string: 0.30.17 - magicast: 0.3.5 - std-env: 3.8.1 - test-exclude: 7.0.1 - tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - '@vitest/expect@2.0.5': - dependencies: - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 - chai: 5.2.0 - tinyrainbow: 1.2.0 - - '@vitest/expect@3.0.9': - dependencies: - '@vitest/spy': 3.0.9 - '@vitest/utils': 3.0.9 - chai: 5.2.0 - tinyrainbow: 2.0.0 - '@vitest/expect@3.1.1': dependencies: '@vitest/spy': 3.1.1 @@ -11710,93 +11359,34 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': - dependencies: - '@vitest/spy': 3.0.9 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - msw: 2.7.3(@types/node@22.13.14)(typescript@5.8.2) - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - - '@vitest/mocker@3.1.1(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.4(@types/node@22.13.14)(typescript@5.8.3) - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - - '@vitest/pretty-format@2.0.5': - dependencies: - tinyrainbow: 1.2.0 - - '@vitest/pretty-format@2.1.9': - dependencies: - tinyrainbow: 1.2.0 - - '@vitest/pretty-format@3.0.9': - dependencies: - tinyrainbow: 2.0.0 + msw: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) '@vitest/pretty-format@3.1.1': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.0.9': - dependencies: - '@vitest/utils': 3.0.9 - pathe: 2.0.3 - '@vitest/runner@3.1.1': dependencies: '@vitest/utils': 3.1.1 pathe: 2.0.3 - '@vitest/snapshot@3.0.9': - dependencies: - '@vitest/pretty-format': 3.0.9 - magic-string: 0.30.17 - pathe: 2.0.3 - '@vitest/snapshot@3.1.1': dependencies: '@vitest/pretty-format': 3.1.1 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@2.0.5': - dependencies: - tinyspy: 3.0.2 - - '@vitest/spy@3.0.9': - dependencies: - tinyspy: 3.0.2 - '@vitest/spy@3.1.1': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.0.5': - dependencies: - '@vitest/pretty-format': 2.0.5 - estree-walker: 3.0.3 - loupe: 3.1.3 - tinyrainbow: 1.2.0 - - '@vitest/utils@2.1.9': - dependencies: - '@vitest/pretty-format': 2.1.9 - loupe: 3.1.3 - tinyrainbow: 1.2.0 - - '@vitest/utils@3.0.9': - dependencies: - '@vitest/pretty-format': 3.0.9 - loupe: 3.1.3 - tinyrainbow: 2.0.0 - '@vitest/utils@3.1.1': dependencies: '@vitest/pretty-format': 3.1.1 @@ -13263,12 +12853,12 @@ snapshots: dependencies: '@braintree/uuid': 1.0.1 - frames-react@1.2.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.35.0)(typescript@5.8.2): + frames-react@1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3): dependencies: classnames: 2.5.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - rollup-plugin-typescript2: 0.36.0(rollup@4.35.0)(typescript@5.8.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rollup-plugin-typescript2: 0.36.0(rollup@4.35.0)(typescript@5.8.3) tslib: 2.8.1 transitivePeerDependencies: - rollup @@ -13878,7 +13468,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.13.14 + '@types/node': 22.14.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13893,14 +13483,14 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.13.14 + '@types/node': 22.14.0 jest-regex-util@29.6.3: {} jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.14 + '@types/node': 22.14.0 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13908,13 +13498,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14051,7 +13641,7 @@ snapshots: lerna@8.2.2(encoding@0.1.13): dependencies: - '@lerna/create': 8.2.2(encoding@0.1.13)(typescript@5.8.3) + '@lerna/create': 8.2.1(encoding@0.1.13)(typescript@5.8.3) '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 @@ -15058,13 +14648,13 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2): + msw@2.7.3(@types/node@22.14.0)(typescript@5.8.2): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.13.14) - '@mswjs/interceptors': 0.37.3 + '@inquirer/confirm': 5.1.8(@types/node@22.14.0) + '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -15083,13 +14673,13 @@ snapshots: transitivePeerDependencies: - '@types/node' - msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3): + msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.13.14) - '@mswjs/interceptors': 0.37.3 + '@inquirer/confirm': 5.1.8(@types/node@22.14.0) + '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -16108,7 +15698,7 @@ snapshots: dependencies: glob: 9.3.5 - rollup-plugin-typescript2@0.36.0(rollup@4.35.0)(typescript@5.8.2): + rollup-plugin-typescript2@0.36.0(rollup@4.35.0)(typescript@5.8.3): dependencies: '@rollup/pluginutils': 4.2.1 find-cache-dir: 3.3.2 @@ -16116,7 +15706,7 @@ snapshots: rollup: 4.35.0 semver: 7.7.1 tslib: 2.8.1 - typescript: 5.8.2 + typescript: 5.8.3 rollup@3.29.5: optionalDependencies: @@ -16662,9 +16252,7 @@ snapshots: ts-dedent@2.2.0: {} - ts-interface-checker@0.1.13: {} - - tsc-alias@1.8.11: + tsc-alias@1.8.13: dependencies: chokidar: 3.6.0 commander: 9.5.0 @@ -16780,7 +16368,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.20.0: {} + undici-types@6.21.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -16980,39 +16568,13 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vfile@6.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.2 - - vite-node@3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): - dependencies: - cac: 6.7.14 - debug: 4.4.0 - es-module-lexer: 1.6.0 - pathe: 2.0.3 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vite-node@3.1.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): + vite-node@3.1.1(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -17027,62 +16589,40 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): - dependencies: - debug: 4.4.0 - globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.2) - optionalDependencies: - vite: 6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.2.2(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): + vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 postcss: 8.5.3 rollup: 4.35.0 optionalDependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vite@6.2.3(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): - dependencies: - esbuild: 0.25.1 - postcss: 8.5.3 - rollup: 4.35.0 - optionalDependencies: - '@types/node': 22.13.14 - fsevents: 2.3.3 - terser: 5.39.0 - yaml: 2.7.0 - - vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0): + vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 fdir: 6.4.3(picomatch@4.0.2) @@ -17091,55 +16631,15 @@ snapshots: rollup: 4.35.0 tinyglobby: 0.2.12 optionalDependencies: - '@types/node': 22.13.14 + '@types/node': 22.14.0 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vitest@3.0.9(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(terser@5.39.0)(yaml@2.7.0): - dependencies: - '@vitest/expect': 3.0.9 - '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.8.2))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.0.9 - '@vitest/runner': 3.0.9 - '@vitest/snapshot': 3.0.9 - '@vitest/spy': 3.0.9 - '@vitest/utils': 3.0.9 - chai: 5.2.0 - debug: 4.4.0 - expect-type: 1.2.0 - magic-string: 0.30.17 - pathe: 2.0.3 - std-env: 3.8.1 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinypool: 1.0.2 - tinyrainbow: 2.0.0 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.0.9(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 22.13.14 - jsdom: 26.0.0 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.13.14)(jsdom@26.0.0)(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(msw@2.7.4(@types/node@22.13.14)(typescript@5.8.3))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/mocker': 3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -17155,12 +16655,12 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.1.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.1.1(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.13.14 + '@types/node': 22.14.0 jsdom: 26.0.0 transitivePeerDependencies: - jiti From 142a4c72fe5a697dd04bdc06d15ba14887ea1122 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 10 Apr 2025 09:58:40 +0200 Subject: [PATCH 025/165] v4.22.0-beta.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 64a082b1..c8f39e0c 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.21.0", + "version": "4.22.0-beta.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 4d666599..b8ffdc9a 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.21.0", + "version": "4.22.0-beta.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From e388bc3a99f38a7bca1537ad0392445da04f83ee Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 11 Apr 2025 10:52:19 +0200 Subject: [PATCH 026/165] v4.22.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index c8f39e0c..d0506f74 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.22.0-beta.0", + "version": "4.22.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index b8ffdc9a..641a21b5 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.22.0-beta.0", + "version": "4.22.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 5ada98c043a492fcb9bfe56fc03503352a445296 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 14 May 2025 17:38:36 +0200 Subject: [PATCH 027/165] Add new CKO flow library --- .../components/orders/PlaceOrderButton.tsx | 9 + .../components/orders/PlaceOrderContainer.tsx | 89 +++-- .../payment_gateways/PaymentGateway.tsx | 84 ++-- .../payment_methods/PaymentMethod.tsx | 87 ++-- .../payment_source/CheckoutComPayment.tsx | 334 +++++++++------- .../src/reducers/PaymentMethodReducer.ts | 376 +++++++++--------- .../src/reducers/PlaceOrderReducer.ts | 1 - .../src/utils/getCardDetails.ts | 2 +- .../src/utils/getPaymentAttributes.ts | 78 ++-- .../src/utils/snakeToCamelCase.ts | 23 +- pnpm-lock.yaml | 238 ++--------- 11 files changed, 616 insertions(+), 705 deletions(-) diff --git a/packages/react-components/src/components/orders/PlaceOrderButton.tsx b/packages/react-components/src/components/orders/PlaceOrderButton.tsx index 29d6f228..36efc4f5 100644 --- a/packages/react-components/src/components/orders/PlaceOrderButton.tsx +++ b/packages/react-components/src/components/orders/PlaceOrderButton.tsx @@ -313,6 +313,15 @@ export function PlaceOrderButton(props: Props): JSX.Element { ): Promise => { e?.preventDefault() e?.stopPropagation() + const isAlreadyPlaced = order?.status === "placed" + if (isAlreadyPlaced) { + setPlaceOrderStatus?.({ status: "placing" }) + onClick?.({ + placed: true, + order: order, + }) + return + } setIsLoading(true) let isValid = true setForceDisable(true) diff --git a/packages/react-components/src/components/orders/PlaceOrderContainer.tsx b/packages/react-components/src/components/orders/PlaceOrderContainer.tsx index 4c8641d7..3f7bcce2 100644 --- a/packages/react-components/src/components/orders/PlaceOrderContainer.tsx +++ b/packages/react-components/src/components/orders/PlaceOrderContainer.tsx @@ -1,4 +1,4 @@ -import PlaceOrderContext from '#context/PlaceOrderContext' +import PlaceOrderContext from "#context/PlaceOrderContext" import { type ReactNode, type RefObject, @@ -6,18 +6,18 @@ import { useEffect, useReducer, type JSX, -} from 'react'; +} from "react" import placeOrderReducer, { placeOrderInitialState, type PlaceOrderOptions, placeOrderPermitted, setButtonRef, - setPlaceOrderStatus -} from '#reducers/PlaceOrderReducer' -import OrderContext from '#context/OrderContext' -import CommerceLayerContext from '#context/CommerceLayerContext' -import { setPlaceOrder } from '../../reducers/PlaceOrderReducer' -import useCustomContext from '#utils/hooks/useCustomContext' + setPlaceOrderStatus, +} from "#reducers/PlaceOrderReducer" +import OrderContext from "#context/OrderContext" +import CommerceLayerContext from "#context/CommerceLayerContext" +import { setPlaceOrder } from "../../reducers/PlaceOrderReducer" +import useCustomContext from "#utils/hooks/useCustomContext" interface Props { children: ReactNode @@ -27,7 +27,7 @@ export function PlaceOrderContainer(props: Props): JSX.Element { const { children, options } = props const [state, dispatch] = useReducer( placeOrderReducer, - placeOrderInitialState + placeOrderInitialState, ) const { order, @@ -35,53 +35,54 @@ export function PlaceOrderContainer(props: Props): JSX.Element { setOrderErrors, include, addResourceToInclude, - includeLoaded + includeLoaded, } = useCustomContext({ context: OrderContext, - contextComponentName: 'OrderContainer', - currentComponentName: 'PlaceOrderContainer', - key: 'order' + contextComponentName: "OrderContainer", + currentComponentName: "PlaceOrderContainer", + key: "order", }) const config = useContext(CommerceLayerContext) + // biome-ignore lint/correctness/useExhaustiveDependencies: Infinite loop useEffect(() => { - if (!include?.includes('shipments.available_shipping_methods')) { + if (!include?.includes("shipments.available_shipping_methods")) { addResourceToInclude({ newResource: [ - 'shipments.available_shipping_methods', - 'shipments.stock_line_items.line_item', - 'shipments.shipping_method', - 'shipments.stock_transfers.line_item', - 'shipments.stock_location' - ] + "shipments.available_shipping_methods", + "shipments.stock_line_items.line_item", + "shipments.shipping_method", + "shipments.stock_transfers.line_item", + "shipments.stock_location", + ], }) - } else if (!includeLoaded?.['shipments.available_shipping_methods']) { + } else if (!includeLoaded?.["shipments.available_shipping_methods"]) { addResourceToInclude({ newResourceLoaded: { - 'shipments.available_shipping_methods': true, - 'shipments.stock_line_items.line_item': true, - 'shipments.shipping_method': true, - 'shipments.stock_transfers.line_item': true, - 'shipments.stock_location': true - } + "shipments.available_shipping_methods": true, + "shipments.stock_line_items.line_item": true, + "shipments.shipping_method": true, + "shipments.stock_transfers.line_item": true, + "shipments.stock_location": true, + }, }) } - if (!include?.includes('billing_address')) { + if (!include?.includes("billing_address")) { addResourceToInclude({ - newResource: 'billing_address' + newResource: "billing_address", }) } else if (!includeLoaded?.billing_address) { addResourceToInclude({ - newResourceLoaded: { billing_address: true } + newResourceLoaded: { billing_address: true }, }) } - if (!include?.includes('shipping_address')) { + if (!include?.includes("shipping_address")) { addResourceToInclude({ - newResource: 'shipping_address', - resourcesIncluded: include + newResource: "shipping_address", + resourcesIncluded: include, }) } else if (!includeLoaded?.shipping_address) { addResourceToInclude({ - newResourceLoaded: { shipping_address: true } + newResourceLoaded: { shipping_address: true }, }) } if (order) { @@ -90,8 +91,8 @@ export function PlaceOrderContainer(props: Props): JSX.Element { dispatch, order, options: { - ...options - } + ...options, + }, }) } }, [order, include, includeLoaded]) @@ -99,12 +100,12 @@ export function PlaceOrderContainer(props: Props): JSX.Element { ...state, setPlaceOrder: async ({ paymentSource, - currentCustomerPaymentSourceId + currentCustomerPaymentSourceId, }: { - paymentSource?: Parameters['0']['paymentSource'] + paymentSource?: Parameters["0"]["paymentSource"] currentCustomerPaymentSourceId?: Parameters< typeof setPlaceOrder - >['0']['currentCustomerPaymentSourceId'] + >["0"]["currentCustomerPaymentSourceId"] }) => await setPlaceOrder({ config, @@ -114,10 +115,10 @@ export function PlaceOrderContainer(props: Props): JSX.Element { paymentSource, include, setOrder, - currentCustomerPaymentSourceId + currentCustomerPaymentSourceId, }), setPlaceOrderStatus: ({ - status + status, }: Parameters[0]) => { setPlaceOrderStatus({ status, dispatch }) }, @@ -127,13 +128,13 @@ export function PlaceOrderContainer(props: Props): JSX.Element { dispatch, order, options: { - ...options - } + ...options, + }, }) }, setButtonRef: (ref: RefObject) => { setButtonRef(ref, dispatch) - } + }, } return ( diff --git a/packages/react-components/src/components/payment_gateways/PaymentGateway.tsx b/packages/react-components/src/components/payment_gateways/PaymentGateway.tsx index 33e4458e..996f567c 100644 --- a/packages/react-components/src/components/payment_gateways/PaymentGateway.tsx +++ b/packages/react-components/src/components/payment_gateways/PaymentGateway.tsx @@ -1,26 +1,27 @@ -import OrderContext from '#context/OrderContext' -import PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext' -import PaymentMethodContext from '#context/PaymentMethodContext' -import type { PaymentResource } from '#reducers/PaymentMethodReducer' -import type { LoaderType } from '#typings' -import { useContext, useEffect, useState, type JSX } from 'react'; -import type { PaymentSourceProps } from '../payment_source/PaymentSource' -import getLoaderComponent from '#utils/getLoaderComponent' -import AdyenGateway from './AdyenGateway' -import StripeGateway from './StripeGateway' -import BraintreeGateway from './BraintreeGateway' -import PaypalGateway from './PaypalGateway' -import WireTransferGateway from './WireTransferGateway' -import CustomerContext from '#context/CustomerContext' -import CheckoutComGateway from './CheckoutComGateway' -import KlarnaGateway from './KlarnaGateway' +import OrderContext from "#context/OrderContext" +import PaymentMethodChildrenContext from "#context/PaymentMethodChildrenContext" +import PaymentMethodContext from "#context/PaymentMethodContext" +import type { PaymentResource } from "#reducers/PaymentMethodReducer" +import type { LoaderType } from "#typings" +import { useContext, useEffect, useState, type JSX } from "react" +import type { PaymentSourceProps } from "../payment_source/PaymentSource" +import getLoaderComponent from "#utils/getLoaderComponent" +import AdyenGateway from "./AdyenGateway" +import StripeGateway from "./StripeGateway" +import BraintreeGateway from "./BraintreeGateway" +import PaypalGateway from "./PaypalGateway" +import WireTransferGateway from "./WireTransferGateway" +import CustomerContext from "#context/CustomerContext" +import CheckoutComGateway from "./CheckoutComGateway" +import KlarnaGateway from "./KlarnaGateway" import { + getCkoAttributes, getExternalPaymentAttributes, getPaypalAttributes, - getStripeAttributes -} from '#utils/getPaymentAttributes' -import ExternalGateway from './ExternalGateway' -import PlaceOrderContext from '#context/PlaceOrderContext' + getStripeAttributes, +} from "#utils/getPaymentAttributes" +import ExternalGateway from "./ExternalGateway" +import PlaceOrderContext from "#context/PlaceOrderContext" export type GatewayBaseType = Props & { show: boolean @@ -44,7 +45,7 @@ export function PaymentGateway({ templateCustomerSaveToWallet, onClickCustomerCards, show, - loader = 'Loading...', + loader = "Loading...", ...p }: Props): JSX.Element | null { const loaderComponent = getLoaderComponent(loader) @@ -58,7 +59,7 @@ export function PaymentGateway({ config, currentPaymentMethodType, setPaymentSource, - paymentSource + paymentSource, } = useContext(PaymentMethodContext) const paymentResource = readonly ? currentPaymentMethodType @@ -71,24 +72,27 @@ export function PaymentGateway({ !expressPayments ) { let attributes: Record | undefined = {} - if (config != null && paymentResource === 'paypal_payments') { + if (config != null && paymentResource === "paypal_payments") { attributes = getPaypalAttributes(paymentResource, config) } - if (config != null && paymentResource === 'external_payments') { + if (config != null && paymentResource === "external_payments") { attributes = getExternalPaymentAttributes(paymentResource, config) } - if (config != null && paymentResource === 'stripe_payments') { + if (config != null && paymentResource === "stripe_payments") { attributes = getStripeAttributes(paymentResource, config) - if (attributes != null && attributes['return_url'] == null) { - attributes['return_url'] = window.location.href + if (attributes != null && attributes["return_url"] == null) { + attributes["return_url"] = window.location.href } } + if (config != null && paymentResource === "checkout_com_payments") { + attributes = getCkoAttributes(paymentResource, config) + } const setPaymentSources = async (): Promise => { if (order != null) { await setPaymentSource({ paymentResource, order, - attributes + attributes, }) } if (getCustomerPaymentSources) getCustomerPaymentSources() @@ -118,7 +122,7 @@ export function PaymentGateway({ if (expressPayments && show) setLoading(false) if ( order?.status != null && - !['draft', 'pending'].includes(order?.status) && + !["draft", "pending"].includes(order?.status) && show && order?.payment_source?.id != null ) { @@ -130,8 +134,8 @@ export function PaymentGateway({ }, [order?.payment_method?.id, show, paymentSource]) useEffect(() => { - if (status === 'placing') setLoading(true) - if (status === 'standby' && loading) setLoading(false) + if (status === "placing") setLoading(true) + if (status === "standby" && loading) setLoading(false) return () => { setLoading(true) } @@ -148,30 +152,30 @@ export function PaymentGateway({ onClickCustomerCards, loaderComponent, templateCustomerSaveToWallet, - ...p + ...p, } if (currentPaymentMethodType !== paymentResource) return null if (loading) return loaderComponent switch (paymentResource) { - case 'adyen_payments': + case "adyen_payments": return {children} - case 'braintree_payments': + case "braintree_payments": return {children} - case 'checkout_com_payments': + case "checkout_com_payments": return ( {children} ) - case 'external_payments': + case "external_payments": return {children} - case 'klarna_payments': + case "klarna_payments": return {children} - case 'stripe_payments': + case "stripe_payments": return {children} - case 'wire_transfers': + case "wire_transfers": return ( {children} ) - case 'paypal_payments': + case "paypal_payments": return {children} default: return null diff --git a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx index 0a01d70e..0881b7d0 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx @@ -3,34 +3,34 @@ import { useEffect, type MouseEvent, useContext, - type JSX -} from 'react' -import PaymentMethodContext from '#context/PaymentMethodContext' -import PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext' -import type { LoaderType } from '#typings' -import getLoaderComponent from '#utils/getLoaderComponent' + type JSX, +} from "react" +import PaymentMethodContext from "#context/PaymentMethodContext" +import PaymentMethodChildrenContext from "#context/PaymentMethodChildrenContext" +import type { LoaderType } from "#typings" +import getLoaderComponent from "#utils/getLoaderComponent" import type { Order, - PaymentMethod as PaymentMethodType -} from '@commercelayer/sdk' -import type { PaymentResource } from '#reducers/PaymentMethodReducer' -import useCustomContext from '#utils/hooks/useCustomContext' -import type { DefaultChildrenType } from '#typings/globals' -import OrderContext from '#context/OrderContext' -import CustomerContext from '#context/CustomerContext' + PaymentMethod as PaymentMethodType, +} from "@commercelayer/sdk" +import type { PaymentResource } from "#reducers/PaymentMethodReducer" +import useCustomContext from "#utils/hooks/useCustomContext" +import type { DefaultChildrenType } from "#typings/globals" +import OrderContext from "#context/OrderContext" +import CustomerContext from "#context/CustomerContext" import { getExternalPaymentAttributes, - getPaypalAttributes -} from '#utils/getPaymentAttributes' -import { isEmpty } from '#utils/isEmpty' -import { getAvailableExpressPayments } from '#utils/expressPaymentHelper' -import PlaceOrderContext from '#context/PlaceOrderContext' -import { sortPaymentMethods } from '#utils/payment-methods/sortPaymentMethods' + getPaypalAttributes, +} from "#utils/getPaymentAttributes" +import { isEmpty } from "#utils/isEmpty" +import { getAvailableExpressPayments } from "#utils/expressPaymentHelper" +import PlaceOrderContext from "#context/PlaceOrderContext" +import { sortPaymentMethods } from "#utils/payment-methods/sortPaymentMethods" export interface PaymentMethodOnClickParams { payment?: PaymentMethodType | Record order?: Order - paymentSource?: Order['payment_source'] + paymentSource?: Order["payment_source"] } type Props = { @@ -58,8 +58,8 @@ type Props = { /** * Sort payment methods by an array of strings */ - sortBy?: Array -} & Omit & + sortBy?: Array +} & Omit & ( | { clickableContainer: true @@ -77,7 +77,7 @@ export function PaymentMethod({ children, className, activeClass, - loader = 'Loading...', + loader = "Loading...", clickableContainer, autoSelectSinglePaymentMethod, expressPayments, @@ -87,7 +87,7 @@ export function PaymentMethod({ ...p }: Props): JSX.Element { const [loading, setLoading] = useState(true) - const [paymentSelected, setPaymentSelected] = useState('') + const [paymentSelected, setPaymentSelected] = useState("") const [paymentSourceCreated, setPaymentSourceCreated] = useState(false) const { paymentMethods, @@ -96,12 +96,12 @@ export function PaymentMethod({ setLoading: setLoadingPlaceOrder, paymentSource, setPaymentSource, - config + config, } = useCustomContext({ context: PaymentMethodContext, - contextComponentName: 'PaymentMethodsContainer', - currentComponentName: 'PaymentMethod', - key: 'paymentMethods' + contextComponentName: "PaymentMethodsContainer", + currentComponentName: "PaymentMethod", + key: "paymentMethods", }) const { order } = useContext(OrderContext) const { getCustomerPaymentSources } = useContext(CustomerContext) @@ -119,7 +119,7 @@ export function PaymentMethod({ await setPaymentMethod({ paymentResource, paymentMethodId }) const ps = await setPaymentSource({ paymentResource, - order + order, }) if (ps && paymentMethod && onClick != null) { onClick({ payment: paymentMethod, order, paymentSource: ps }) @@ -154,19 +154,19 @@ export function PaymentMethod({ paymentMethod?.payment_source_type as PaymentResource await setPaymentMethod({ paymentResource, paymentMethodId }) let attributes: Record | undefined = {} - if (config != null && paymentResource === 'paypal_payments') { + if (config != null && paymentResource === "paypal_payments") { attributes = getPaypalAttributes(paymentResource, config) } - if (config != null && paymentResource === 'external_payments') { + if (config != null && paymentResource === "external_payments") { attributes = getExternalPaymentAttributes( paymentResource, - config + config, ) } const ps = await setPaymentSource({ paymentResource, order, - attributes + attributes, }) if (ps && paymentMethod && onClick != null) { setPaymentSourceCreated(true) @@ -180,7 +180,7 @@ export function PaymentMethod({ } setLoadingPlaceOrder({ loading: false }) } - if (typeof autoSelectSinglePaymentMethod === 'function') { + if (typeof autoSelectSinglePaymentMethod === "function") { autoSelectSinglePaymentMethod() } } else { @@ -209,7 +209,7 @@ export function PaymentMethod({ if (currentPaymentMethodId) setPaymentSelected(currentPaymentMethodId) return () => { setLoading(true) - setPaymentSelected('') + setPaymentSelected("") } }, [paymentMethods, currentPaymentMethodId]) @@ -223,19 +223,20 @@ export function PaymentMethod({ if (Array.isArray(hide)) { const source = payment?.payment_source_type as PaymentResource return !hide?.includes(source) - } else if (typeof hide === 'function') { + } + if (typeof hide === "function") { return hide(payment) } return true }) - .map((payment, k) => { + .map((payment) => { const isActive = currentPaymentMethodId === payment?.id const paymentMethodProps = { payment, clickableContainer, paymentSelected, setPaymentSelected, - expressPayments + expressPayments, } const paymentResource = payment?.payment_source_type as PaymentResource const onClickable = !clickableContainer @@ -245,12 +246,12 @@ export function PaymentMethod({ const paymentMethodId = payment?.id const currentPaymentMethodId = order?.payment_method?.id if (paymentMethodId === currentPaymentMethodId) return - if (status === 'placing') return + if (status === "placing") return setLoadingPlaceOrder({ loading: true }) setPaymentSelected(payment.id) const { order: updatedOrder } = await setPaymentMethod({ paymentResource, - paymentMethodId + paymentMethodId, }) if (onClick) onClick({ payment, order: updatedOrder }) setLoadingPlaceOrder({ loading: false }) @@ -258,9 +259,9 @@ export function PaymentMethod({ return (
{ if (onClickable != null) { diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 58d86058..7631b2fc 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -1,102 +1,135 @@ -import { useContext, useRef, type JSX } from 'react'; -import type { - PaymentMethodConfig, - PaymentSourceObject -} from '#reducers/PaymentMethodReducer' -import type { PaymentSourceProps } from './PaymentSource' -import useExternalScript from '#utils/hooks/useExternalScript' -import PaymentMethodContext from '#context/PaymentMethodContext' -import { - Frames, - CardNumber, - ExpiryDate, - Cvv, - type FramesLanguages, - type FramesStyle -} from 'frames-react' -import OrderContext from '#context/OrderContext' -import Parent from '#components/utils/Parent' -import { setCustomerOrderParam } from '#utils/localStorage' -const scriptUrl = 'https://cdn.checkout.com/js/framesv2.min.js' +import { useContext, useEffect, useRef, type JSX } from "react" +import type { PaymentMethodConfig } from "#reducers/PaymentMethodReducer" +import type { PaymentSourceProps } from "./PaymentSource" +import useExternalScript from "#utils/hooks/useExternalScript" +import OrderContext from "#context/OrderContext" +import Parent from "#components/utils/Parent" +import { jwt } from "#utils/jwt" +import CommerceLayerContext from "#context/CommerceLayerContext" +import PaymentMethodContext from "#context/PaymentMethodContext" +import { setCustomerOrderParam } from "#utils/localStorage" -export interface CheckoutComConfig { - containerClassName?: string - hintLabel?: string - name?: string - success_url?: string - failure_url?: string - options?: { - style: FramesStyle +const scriptUrl = "https://checkout-web-components.checkout.com/index.js" + +interface Appearance { + colorAction: string + colorBackground: string + colorBorder: string + colorDisabled: string + colorError: string + colorFormBackground: string + colorFormBorder: string + colorInverse: string + colorOutline: string + colorPrimary: string + colorSecondary: string + colorSuccess: string + button: { + fontFamily: string + fontSize: string + fontWeight: number + letterSpacing: number + lineHeight: string } - [key: string]: unknown + footnote: { + fontFamily: string + fontSize: string + fontWeight: number + letterSpacing: number + lineHeight: string + } + label: { + fontFamily: string + fontSize: string + fontWeight: number + letterSpacing: number + lineHeight: string + } + subheading: { + fontFamily: string + fontSize: string + fontWeight: number + letterSpacing: number + lineHeight: string + } + borderRadius: [string, string] } -const systemLanguages: FramesLanguages[] = [ - 'DE-DE', - 'EN-GB', - 'ES-ES', - 'FR-FR', - 'IT-IT', - 'KO-KR', - 'NL-NL' -] +interface Component { + isValid: () => boolean + type: string + submit: () => unknown + tokenize: () => Promise<{ + data: { + token: string + } + }> +} -const defaultOptions = { - style: { - base: { - color: 'black', - fontSize: '18px' - }, - autofill: { - backgroundColor: 'yellow' - }, - hover: { - color: 'blue' - }, - focus: { - color: 'blue' +interface CheckoutWebComponent { + appearance?: Partial + showPayButton?: boolean + publicKey: string + environment: "sandbox" | "production" + locale?: string + paymentSession: string + onReady?: () => void + submit?: () => unknown + onPaymentCompleted?: ( + component: Component, + paymentResponse: { + status: string + id: string + type: string }, - valid: { - color: 'green' - }, - invalid: { - color: 'red' - }, - placeholder: { - base: { - color: 'gray' - }, - focus: { - border: 'solid 1px blue' - } + ) => Promise + onChange?: (component: Component) => void + onError?: (component: Component, error: unknown) => void + create?: (type: "flow") => { + mount: (element: HTMLElement | null) => void + } + componentOptions?: { + card?: { + displayCardholderName?: "hidden" | "top" | "bottom" } } } -type Props = PaymentMethodConfig['checkoutComPayment'] & - JSX.IntrinsicElements['div'] & { +export interface CheckoutComConfig { + containerClassName?: string + hintLabel?: string + name?: string + success_url: string + failure_url: string + options?: { + appearance: Partial + } + [key: string]: unknown +} + +type Props = Partial & + JSX.IntrinsicElements["div"] & { show?: boolean publicKey: string locale?: string - templateCustomerSaveToWallet?: PaymentSourceProps['templateCustomerSaveToWallet'] + templateCustomerSaveToWallet?: PaymentSourceProps["templateCustomerSaveToWallet"] } export function CheckoutComPayment({ publicKey, - options = defaultOptions, - locale = 'EN-GB', + options, ...p }: Props): JSX.Element | null { const ref = useRef(null) const loaded = useExternalScript(scriptUrl) const { setPaymentRef, - currentPaymentMethodType, - paymentSource, setPaymentSource, - setPaymentMethodErrors + // setPaymentMethodErrors, } = useContext(PaymentMethodContext) + const { accessToken } = useContext(CommerceLayerContext) const { order } = useContext(OrderContext) + // const { setPlaceOrder } = useContext(PlaceOrderContext) const { containerClassName, templateCustomerSaveToWallet, @@ -105,91 +138,94 @@ export function CheckoutComPayment({ show, ...divProps } = p - const handleSubmit = async (): Promise => { - const savePaymentSourceToCustomerWallet: string = + // biome-ignore lint/correctness/useExhaustiveDependencies: Infinite loop + useEffect(() => { + const ps = order?.payment_source + if (loaded && window && ps && accessToken) { // @ts-expect-error no type - ref?.current?.elements?.save_payment_source_to_customer_wallet?.checked - if (savePaymentSourceToCustomerWallet) { - setCustomerOrderParam( - '_save_payment_source_to_customer_wallet', - savePaymentSourceToCustomerWallet - ) - } - if (window.Frames) { - window.Frames.cardholder = { - name: order?.billing_address?.full_name, - billingAddress: { - addressLine1: order?.billing_address?.line_1, - addressLine2: order?.billing_address?.line_2 ?? '', - zip: order?.billing_address?.zip_code ?? '', - city: order?.billing_address?.city, - state: order?.billing_address?.state_code, - country: order?.billing_address?.country_code - }, - phone: order?.billing_address?.phone - } - try { - const data = await window.Frames.submitCard() - if (data.token && paymentSource && currentPaymentMethodType) { - const ps = (await setPaymentSource({ - paymentSourceId: paymentSource.id, - paymentResource: currentPaymentMethodType, - attributes: { - token: data.token, - payment_type: 'token', - success_url: successUrl, - failure_url: failureUrl, - _authorize: true - } - })) as PaymentSourceObject['checkout_com_payments'] - if (ps?.redirect_uri) { - window.location.href = ps.redirect_uri - } + const publicKey = ps.public_key + // @ts-expect-error no type + const paymentSession = ps.payment_session + // @ts-expect-error no type + if (window?.CheckoutWebComponents) { + const environment = jwt(accessToken).test ? "sandbox" : "production" + const locale = order?.language_code ?? "en" + const loadFlow = async () => { + // @ts-expect-error no type + const checkout = await window.CheckoutWebComponents({ + appearance: { + ...options?.appearance, + }, + showPayButton: false, + publicKey, + environment, + locale, + paymentSession, + componentOptions: { + card: { + displayCardholderName: "hidden", + }, + }, + onChange: (component) => { + if (component.isValid()) { + if (ref.current) { + ref.current.onsubmit = async (): Promise => { + const element = ref.current?.elements + const savePaymentSourceToCustomerWallet = + // @ts-expect-error no type + element?.save_payment_source_to_customer_wallet?.checked + if (savePaymentSourceToCustomerWallet) + setCustomerOrderParam( + "_save_payment_source_to_customer_wallet", + savePaymentSourceToCustomerWallet, + ) + const { data } = await component.tokenize() + const token = data?.token + const paymentSource = await setPaymentSource({ + paymentSourceId: ps.id, + paymentResource: "checkout_com_payments", + attributes: { + token, + _authorize: true, + }, + }) + if (paymentSource) { + // @ts-expect-error no type + const response = paymentSource.payment_response + // @ts-expect-error no type + const securityRedirect = paymentSource?.redirect_uri + const isStatusPending = + response?.status.toLowerCase() === "pending" + if (isStatusPending && securityRedirect) { + window.location.href = securityRedirect + return false + } + return true + } + return false + } + setPaymentRef?.({ ref }) + } + } + }, + onError: (component, error) => { + console.error("onError", error, "Component", component.type) + }, + } satisfies CheckoutWebComponent) + const flowComponent = checkout.create("flow") + flowComponent.mount(document.getElementById("flow-container")) } - } catch (error: any) { - console.error(error) - setPaymentMethodErrors([ - { - code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE', - resource: 'payment_methods', - field: currentPaymentMethodType, - message: error?.message as string - } - ]) + loadFlow() } } - return false - } - const lang = - `${locale.toUpperCase()}-${locale.toUpperCase()}` as FramesLanguages - const localization = systemLanguages.includes(lang) ? lang : 'EN-GB' + }, [loaded, order?.payment_source?.id, accessToken]) return loaded && show ? (
- { - if (e.isValid && ref.current) { - ref.current.onsubmit = async () => { - return await handleSubmit() - } - setPaymentRef({ ref }) - } - }} - cardTokenized={(data) => data} - > - - - - +
{templateCustomerSaveToWallet && ( - + {templateCustomerSaveToWallet} )} diff --git a/packages/react-components/src/reducers/PaymentMethodReducer.ts b/packages/react-components/src/reducers/PaymentMethodReducer.ts index 81b931f0..2792bb18 100644 --- a/packages/react-components/src/reducers/PaymentMethodReducer.ts +++ b/packages/react-components/src/reducers/PaymentMethodReducer.ts @@ -1,15 +1,15 @@ /* eslint-disable @typescript-eslint/no-unsafe-argument */ -import type { AdyenPaymentConfig } from "#components/payment_source/AdyenPayment"; -import type { BraintreeConfig } from "#components/payment_source/BraintreePayment"; -import type { PaypalConfig } from "#components/payment_source/PaypalPayment"; -import type { StripeConfig } from "#components/payment_source/StripePayment"; -import type { WireTransferConfig } from "#components/payment_source/WireTransferPayment"; -import type { CommerceLayerConfig } from "#context/CommerceLayerContext"; -import type { getOrderContext, updateOrder } from "#reducers/OrderReducer"; -import type { BaseError } from "#typings/errors"; -import baseReducer from "#utils/baseReducer"; -import getErrors, { setErrors } from "#utils/getErrors"; -import getSdk from "#utils/getSdk"; +import type { AdyenPaymentConfig } from "#components/payment_source/AdyenPayment" +import type { BraintreeConfig } from "#components/payment_source/BraintreePayment" +import type { PaypalConfig } from "#components/payment_source/PaypalPayment" +import type { StripeConfig } from "#components/payment_source/StripePayment" +import type { WireTransferConfig } from "#components/payment_source/WireTransferPayment" +import type { CommerceLayerConfig } from "#context/CommerceLayerContext" +import type { getOrderContext, updateOrder } from "#reducers/OrderReducer" +import type { BaseError } from "#typings/errors" +import baseReducer from "#utils/baseReducer" +import getErrors, { setErrors } from "#utils/getErrors" +import getSdk from "#utils/getSdk" import type { Order, PaymentMethod, @@ -21,63 +21,63 @@ import type { ExternalPayment, PaypalPayment, KlarnaPayment, -} from "@commercelayer/sdk"; -import type { Dispatch, MutableRefObject } from "react"; -import type { CheckoutComConfig } from "#components/payment_source/CheckoutComPayment"; -import type { ExternalPaymentConfig } from "#components/payment_source/ExternalPayment"; -import { snakeToCamelCase } from "#utils/snakeToCamelCase"; -import { replace } from "#utils/replace"; -import { pick } from "#utils/pick"; -import type { ResourceKeys } from "#utils/getPaymentAttributes"; +} from "@commercelayer/sdk" +import type { Dispatch, MutableRefObject } from "react" +import type { CheckoutComConfig } from "#components/payment_source/CheckoutComPayment" +import type { ExternalPaymentConfig } from "#components/payment_source/ExternalPayment" +import { snakeToCamelCase } from "#utils/snakeToCamelCase" +import { replace } from "#utils/replace" +import { pick } from "#utils/pick" +import type { ResourceKeys } from "#utils/getPaymentAttributes" -export type PaymentSourceType = Order["payment_source"]; +export type PaymentSourceType = Order["payment_source"] interface Card { - type: string; - brand: string; - last4: string; - exp_year: number; - exp_month: number; + type: string + brand: string + last4: string + exp_year: number + exp_month: number } export interface PaymentSourceObject { adyen_payments: AdyenPayment & { payment_request_data?: { - payment_method?: Card; - }; + payment_method?: Card + } payment_response?: { - resultCode?: "Authorised"; - }; - }; + resultCode?: "Authorised" + } + } braintree_payments: BraintreePayment & { options?: { - card: Card; - }; - }; + card: Card + } + } external_payments: ExternalPayment & { - payment_source_token?: string; - }; - paypal_payments: PaypalPayment; + payment_source_token?: string + } + paypal_payments: PaypalPayment stripe_payments: StripePayment & { options?: { - card: Card; - }; + card: Card + } payment_method?: { - card: Card; - type: string | "klarna" | "card"; - }; - }; - wire_transfers: WireTransfer; + card: Card + type: string | "klarna" | "card" + } + } + wire_transfers: WireTransfer checkout_com_payments: CheckoutComPayment & { payment_response: { source?: Pick & { - scheme: string; - expiry_year: number; - expiry_month: number; - }; - }; - }; - klarna_payments: KlarnaPayment; + scheme: string + expiry_year: number + expiry_month: number + } + } + } + klarna_payments: KlarnaPayment } export type PaymentMethodActionType = @@ -86,40 +86,40 @@ export type PaymentMethodActionType = | "setPaymentMethodConfig" | "setPaymentSource" | "setPaymentRef" - | "setLoading"; + | "setLoading" -export type PaymentRef = MutableRefObject; +export type PaymentRef = MutableRefObject export interface PaymentMethodActionPayload { - errors: BaseError[]; - paymentMethods: PaymentMethod[] | null; - currentPaymentMethodType: PaymentResource; - currentPaymentMethodId: string; - currentPaymentMethodRef: PaymentRef; - currentCustomerPaymentSourceId: string | null; - config: PaymentMethodConfig; - paymentSource: Order["payment_source"] | null; - loading: boolean; + errors: BaseError[] + paymentMethods: PaymentMethod[] | null + currentPaymentMethodType: PaymentResource + currentPaymentMethodId: string + currentPaymentMethodRef: PaymentRef + currentCustomerPaymentSourceId: string | null + config: PaymentMethodConfig + paymentSource: Order["payment_source"] | null + loading: boolean } export function setLoading({ loading, dispatch, }: { - loading: boolean; - dispatch?: Dispatch; + loading: boolean + dispatch?: Dispatch }): void { if (dispatch) dispatch({ type: "setLoading", payload: { loading }, - }); + }) } export type SetPaymentRef = (args: { - ref: PaymentRef; - dispatch?: Dispatch; -}) => void; + ref: PaymentRef + dispatch?: Dispatch +}) => void export const setPaymentRef: SetPaymentRef = ({ ref, dispatch }) => { if (ref && dispatch) { @@ -128,26 +128,26 @@ export const setPaymentRef: SetPaymentRef = ({ ref, dispatch }) => { payload: { currentPaymentMethodRef: ref, }, - }); + }) } -}; +} -export type PaymentMethodState = Partial; +export type PaymentMethodState = Partial export interface PaymentMethodAction { - type: PaymentMethodActionType; - payload: Partial; + type: PaymentMethodActionType + payload: Partial } export const paymentMethodInitialState: PaymentMethodState = { errors: [], paymentMethods: undefined, -}; +} export type SetPaymentMethodErrors = ( errors: V, dispatch?: Dispatch, -) => void; +) => void export const setPaymentMethodErrors: SetPaymentMethodErrors = ( errors, @@ -159,21 +159,21 @@ export const setPaymentMethodErrors: SetPaymentMethodErrors = ( payload: { errors, }, - }); -}; + }) +} type GetPaymentMethods = (args: { - order: Order; - dispatch: Dispatch; -}) => Promise; + order: Order + dispatch: Dispatch +}) => Promise export const getPaymentMethods: GetPaymentMethods = async ({ order, dispatch, }) => { - const paymentMethods = order.available_payment_methods; - const paymentMethod = order.payment_method; - const paymentSource = order.payment_source; + const paymentMethods = order.available_payment_methods + const paymentMethod = order.payment_method + const paymentSource = order.payment_source dispatch({ type: "setPaymentMethods", payload: { @@ -183,10 +183,10 @@ export const getPaymentMethods: GetPaymentMethods = async ({ paymentMethod?.payment_source_type as PaymentResource, paymentSource, }, - }); -}; + }) +} -export type PaymentResource = keyof PaymentSourceObject; +export type PaymentResource = keyof PaymentSourceObject export type PaymentResourceKey = | "braintreePayment" @@ -195,7 +195,7 @@ export type PaymentResourceKey = | "wireTransfer" | "paypalPayment" | "adyenPayment" - | "checkoutComPayment"; + | "checkoutComPayment" export type SDKPaymentResource = | "AdyenPayment" @@ -204,16 +204,16 @@ export type SDKPaymentResource = | "PaypalPayment" | "StripePayment" | "WireTransfer" - | "CheckoutComPayment"; + | "CheckoutComPayment" interface TSetPaymentMethodParams { - config?: CommerceLayerConfig; - dispatch?: Dispatch; - updateOrder?: typeof updateOrder; - setOrderErrors?: (collection: any) => { success: boolean }; - order?: Order; - paymentMethodId: string; - paymentResource?: PaymentResource; + config?: CommerceLayerConfig + dispatch?: Dispatch + updateOrder?: typeof updateOrder + setOrderErrors?: (collection: any) => { success: boolean } + order?: Order + paymentMethodId: string + paymentResource?: PaymentResource } export async function setPaymentMethod({ @@ -227,17 +227,17 @@ export async function setPaymentMethod({ }: TSetPaymentMethodParams): Promise<{ success: boolean; order?: Order }> { let response: { success: boolean; order?: Order } = { success: false, - }; + } try { if (config && order && dispatch && paymentResource) { - localStorage.removeItem("_save_payment_source_to_customer_wallet"); - const sdk = getSdk(config); + localStorage.removeItem("_save_payment_source_to_customer_wallet") + const sdk = getSdk(config) const attributes = { payment_method: sdk.payment_methods.relationship(paymentMethodId), - }; + } if (updateOrder != null) { - const currentOrder = await updateOrder({ id: order.id, attributes }); - response = currentOrder; + const currentOrder = await updateOrder({ id: order.id, attributes }) + response = currentOrder } dispatch({ type: "setPaymentMethods", @@ -246,41 +246,41 @@ export async function setPaymentMethod({ currentPaymentMethodType: paymentResource, errors: [], }, - }); - if (setOrderErrors) setOrderErrors([]); + }) + if (setOrderErrors) setOrderErrors([]) } - return response; + return response } catch (error: any) { const errors = getErrors({ error, resource: "orders", field: paymentResource, - }); - console.error("Set payment method", errors); - return response; + }) + console.error("Set payment method", errors) + return response } } type PaymentSourceTypes = | (StripePayment & WireTransfer) - | (StripePayment | WireTransfer); + | (StripePayment | WireTransfer) export type SetPaymentSourceResponse = { - order: Order; - paymentSource: PaymentSourceTypes; -} | null; + order: Order + paymentSource: PaymentSourceTypes +} | null export interface SetPaymentSourceParams extends Omit { - config?: CommerceLayerConfig; - dispatch?: Dispatch; - getOrder?: getOrderContext; - attributes?: Record; - order?: Order; - paymentResource: PaymentResource; - paymentSourceId?: string; - customerPaymentSourceId?: string; - updateOrder?: typeof updateOrder; + config?: CommerceLayerConfig + dispatch?: Dispatch + getOrder?: getOrderContext + attributes?: Record + order?: Order + paymentResource: PaymentResource + paymentSourceId?: string + customerPaymentSourceId?: string + updateOrder?: typeof updateOrder } export async function setPaymentSource({ @@ -296,28 +296,29 @@ export async function setPaymentSource({ errors: currentErrors, }: SetPaymentSourceParams): Promise { try { - const isAlreadyPlaced = order?.status === "placed"; + const isAlreadyPlaced = order?.status === "placed" if (config && order && !isAlreadyPlaced) { - let paymentSource: PaymentSourceType; - const sdk = getSdk(config); + let paymentSource: PaymentSourceType + const sdk = getSdk(config) if (!customerPaymentSourceId) { if (!paymentSourceId) { + // biome-ignore lint/suspicious/noExplicitAny: Multiple types const attrs: any = { ...attributes, order: sdk.orders.relationship(order.id), - }; - paymentSource = await sdk[paymentResource].create(attrs); + } + paymentSource = await sdk[paymentResource].create(attrs) } else { const attrs = { id: paymentSourceId, ...attributes, - }; + } paymentSource = attributes != null ? await sdk[paymentResource].update(attrs) - : await sdk[paymentResource].retrieve(paymentSourceId); + : await sdk[paymentResource].retrieve(paymentSourceId) } - getOrder && (await getOrder(order.id)); + getOrder && (await getOrder(order.id)) if (dispatch) { dispatch({ type: "setPaymentSource", @@ -326,26 +327,25 @@ export async function setPaymentSource({ errors: [], currentCustomerPaymentSourceId: null, }, - }); + }) } - return paymentSource; - } else { - if (updateOrder != null) { - const { order: orderUpdated } = await updateOrder({ - id: order.id, - attributes: { - _customer_payment_source_id: customerPaymentSourceId, + return paymentSource + } + if (updateOrder != null) { + const { order: orderUpdated } = await updateOrder({ + id: order.id, + attributes: { + _customer_payment_source_id: customerPaymentSourceId, + }, + }) + if (dispatch != null && orderUpdated != null) { + dispatch({ + type: "setPaymentSource", + payload: { + paymentSource: orderUpdated.payment_source, + currentCustomerPaymentSourceId: orderUpdated.payment_source?.id, }, - }); - if (dispatch != null && orderUpdated != null) { - dispatch({ - type: "setPaymentSource", - payload: { - paymentSource: orderUpdated.payment_source, - currentCustomerPaymentSourceId: orderUpdated.payment_source?.id, - }, - }); - } + }) } } } @@ -354,21 +354,21 @@ export async function setPaymentSource({ error, resource: "payment_methods", field: paymentResource, - }); + }) if (errors != null && errors?.length > 0) { - const [error] = errors; + const [error] = errors if (error?.status === "401" && getOrder != null && order != null) { - const currentOrder = await getOrder(order?.id); + const currentOrder = await getOrder(order?.id) if ( currentOrder?.status != null && !["placed", "approved"].includes(currentOrder.status) ) { - console.error("Set payment source:", errors); + console.error("Set payment source:", errors) setErrors({ currentErrors, newErrors: errors, dispatch, - }); + }) } } } else { @@ -376,19 +376,19 @@ export async function setPaymentSource({ currentErrors, newErrors: errors, dispatch, - }); + }) } } - return undefined; + return undefined } export type UpdatePaymentSource = (args: { - id: string; - attributes: Record; - paymentResource: PaymentResource; - config?: CommerceLayerConfig; - dispatch?: Dispatch; -}) => Promise; + id: string + attributes: Record + paymentResource: PaymentResource + config?: CommerceLayerConfig + dispatch?: Dispatch +}) => Promise export const updatePaymentSource: UpdatePaymentSource = async ({ id, @@ -399,30 +399,30 @@ export const updatePaymentSource: UpdatePaymentSource = async ({ }) => { if (config) { try { - const sdk = getSdk(config); + const sdk = getSdk(config) const paymentSource = await sdk[paymentResource].update({ id, ...attributes, - }); + }) if (dispatch) { dispatch({ type: "setPaymentSource", payload: { paymentSource }, - }); + }) } } catch (err) { - console.error("Update payment source:", err); + console.error("Update payment source:", err) } } -}; +} export type DestroyPaymentSource = (args: { - paymentSourceId: string; - paymentResource: PaymentResource; - dispatch?: Dispatch; - updateOrder?: typeof updateOrder; - orderId?: string; -}) => Promise; + paymentSourceId: string + paymentResource: PaymentResource + dispatch?: Dispatch + updateOrder?: typeof updateOrder + orderId?: string +}) => Promise export const destroyPaymentSource: DestroyPaymentSource = async ({ paymentSourceId, @@ -442,26 +442,26 @@ export const destroyPaymentSource: DestroyPaymentSource = async ({ dispatch({ type: "setPaymentSource", payload: { paymentSource: undefined }, - }); + }) } -}; +} export interface PaymentMethodConfig { - adyenPayment?: AdyenPaymentConfig; - braintreePayment?: BraintreeConfig; - checkoutComPayment?: CheckoutComConfig; - externalPayment?: ExternalPaymentConfig; + adyenPayment?: AdyenPaymentConfig + braintreePayment?: BraintreeConfig + checkoutComPayment?: CheckoutComConfig + externalPayment?: ExternalPaymentConfig klarnaPayment?: Pick & - Pick; - paypalPayment?: PaypalConfig; - stripePayment?: StripeConfig; - wireTransfer?: Partial; + Pick + paypalPayment?: PaypalConfig + stripePayment?: StripeConfig + wireTransfer?: Partial } type SetPaymentMethodConfig = ( config: PaymentMethodConfig, dispatch: Dispatch, -) => void; +) => void export const setPaymentMethodConfig: SetPaymentMethodConfig = ( config, @@ -470,8 +470,8 @@ export const setPaymentMethodConfig: SetPaymentMethodConfig = ( dispatch({ type: "setPaymentMethodConfig", payload: { config }, - }); -}; + }) +} export function getPaymentConfig< R extends PaymentResource = PaymentResource, @@ -481,9 +481,9 @@ export function getPaymentConfig< replace(paymentResource, "payments", "payment"), "transfers", "transfer", - ); - const resource = snakeToCamelCase(resourceKeys); - return pick(config, [resource]); + ) + const resource = snakeToCamelCase(resourceKeys) + return pick(config, [resource]) } const type: PaymentMethodActionType[] = [ @@ -493,7 +493,7 @@ const type: PaymentMethodActionType[] = [ "setPaymentSource", "setPaymentRef", "setLoading", -]; +] const paymentMethodReducer = ( state: PaymentMethodState, @@ -503,6 +503,6 @@ const paymentMethodReducer = ( PaymentMethodState, PaymentMethodAction, PaymentMethodActionType[] - >(state, reducer, type); + >(state, reducer, type) -export default paymentMethodReducer; +export default paymentMethodReducer diff --git a/packages/react-components/src/reducers/PlaceOrderReducer.ts b/packages/react-components/src/reducers/PlaceOrderReducer.ts index 8b68de9d..b57f0499 100644 --- a/packages/react-components/src/reducers/PlaceOrderReducer.ts +++ b/packages/react-components/src/reducers/PlaceOrderReducer.ts @@ -214,7 +214,6 @@ export async function setPlaceOrder({ const payment = await sdk[paymentType].update({ id: paymentSource.id, _details: true, - session_id: options?.checkoutCom?.session_id, }) // @ts-expect-error no type if (payment?.payment_response?.status !== "Authorized") { diff --git a/packages/react-components/src/utils/getCardDetails.ts b/packages/react-components/src/utils/getCardDetails.ts index 58c45b36..e2f73930 100644 --- a/packages/react-components/src/utils/getCardDetails.ts +++ b/packages/react-components/src/utils/getCardDetails.ts @@ -117,7 +117,7 @@ export default function getCardDetails({ customerPayment.payment_source as PaymentSourceObject[typeof paymentType] if (ps?.type !== paymentType) break const source = ps?.metadata?.["card"] ?? { - brand: ps?.payment_instrument?.["issuer_type"].replace("_", "-") ?? "", + brand: ps?.payment_instrument?.["issuer_type"]?.replace("_", "-") ?? "", last4: ps?.metadata?.["last4"] ?? "", exp_month: ps?.metadata?.["exp_month"] ?? "", exp_year: ps?.metadata?.["exp_year"] ?? "", diff --git a/packages/react-components/src/utils/getPaymentAttributes.ts b/packages/react-components/src/utils/getPaymentAttributes.ts index 5c03991f..635c2547 100644 --- a/packages/react-components/src/utils/getPaymentAttributes.ts +++ b/packages/react-components/src/utils/getPaymentAttributes.ts @@ -1,14 +1,15 @@ -import type { PaypalConfig } from '#components/payment_source/PaypalPayment' +import type { PaypalConfig } from "#components/payment_source/PaypalPayment" import { getPaymentConfig, type PaymentMethodConfig, - type PaymentResource -} from '#reducers/PaymentMethodReducer' -import type { ExternalPayment } from '@commercelayer/sdk' -import { pick } from './pick' -import { replace, type StringReplace } from './replace' -import { type SnakeToCamelCase, snakeToCamelCase } from './snakeToCamelCase' -import type { StripeConfig } from '#components/payment_source/StripePayment' + type PaymentResource, +} from "#reducers/PaymentMethodReducer" +import type { ExternalPayment } from "@commercelayer/sdk" +import { pick } from "./pick" +import { replace, type StringReplace } from "./replace" +import { type SnakeToCamelCase, snakeToCamelCase } from "./snakeToCamelCase" +import type { StripeConfig } from "#components/payment_source/StripePayment" +import type { CheckoutComConfig } from "#components/payment_source/CheckoutComPayment" interface Params { resource: R @@ -18,28 +19,28 @@ interface Params { export type ResourceKeys = SnakeToCamelCase< StringReplace< - StringReplace, - 'transfers', - 'transfer' + StringReplace, + "transfers", + "transfer" > > export function getPaymentAttributes< R extends PaymentResource = PaymentResource, - C extends PaymentMethodConfig = PaymentMethodConfig + C extends PaymentMethodConfig = PaymentMethodConfig, >(params: Params): Pick> | undefined { const { resource, config, keys } = params const attributes = getPaymentConfig(resource, config) const keysCamelCase: ResourceKeys[] = keys.map((key) => { const k = replace( - replace(key, 'payments', 'payment'), - 'transfers', - 'transfer' + replace(key, "payments", "payment"), + "transfers", + "transfer", ) return snakeToCamelCase(k) }) const currentResource = snakeToCamelCase( - replace(replace(resource, 'payments', 'payment'), 'transfers', 'transfer') + replace(replace(resource, "payments", "payment"), "transfers", "transfer"), ) return attributes != null && currentResource in attributes ? pick(attributes, keysCamelCase) @@ -48,42 +49,57 @@ export function getPaymentAttributes< export function getPaypalAttributes( paymentResource: PaymentResource, - config: PaymentMethodConfig -): Pick | undefined { + config: PaymentMethodConfig, +): Pick | undefined { const attributes = getPaymentAttributes({ resource: paymentResource, config, - keys: ['paypal_payments'] + keys: ["paypal_payments"], }) - return attributes?.paypalPayment != null && 'paypalPayment' in attributes - ? pick(attributes?.paypalPayment, ['return_url', 'cancel_url']) + return attributes?.paypalPayment != null && "paypalPayment" in attributes + ? pick(attributes?.paypalPayment, ["return_url", "cancel_url"]) : undefined } export function getExternalPaymentAttributes( paymentResource: PaymentResource, - config: PaymentMethodConfig -): Pick | undefined { + config: PaymentMethodConfig, +): Pick | undefined { const attributes = getPaymentAttributes({ resource: paymentResource, config, - keys: ['external_payments'] + keys: ["external_payments"], }) - return attributes?.externalPayment != null && 'externalPayment' in attributes - ? pick(attributes?.externalPayment, ['payment_source_token']) + return attributes?.externalPayment != null && "externalPayment" in attributes + ? pick(attributes?.externalPayment, ["payment_source_token"]) : undefined } export function getStripeAttributes( paymentResource: PaymentResource, - config: PaymentMethodConfig -): Pick | undefined { + config: PaymentMethodConfig, +): Pick | undefined { const attributes = getPaymentAttributes({ resource: paymentResource, config, - keys: ['stripe_payments'] + keys: ["stripe_payments"], }) - return attributes?.stripePayment != null && 'stripePayment' in attributes - ? pick(attributes?.stripePayment, ['return_url']) + return attributes?.stripePayment != null && "stripePayment" in attributes + ? pick(attributes?.stripePayment, ["return_url"]) + : undefined +} + +export function getCkoAttributes( + paymentResource: PaymentResource, + config: PaymentMethodConfig, +): Pick | undefined { + const attributes = getPaymentAttributes({ + resource: paymentResource, + config, + keys: ["checkout_com_payments"], + }) + return attributes?.checkoutComPayment != null && + "checkoutComPayment" in attributes + ? pick(attributes?.checkoutComPayment, ["success_url", "failure_url"]) : undefined } diff --git a/packages/react-components/src/utils/snakeToCamelCase.ts b/packages/react-components/src/utils/snakeToCamelCase.ts index 5bcc121f..af2ea0fc 100644 --- a/packages/react-components/src/utils/snakeToCamelCase.ts +++ b/packages/react-components/src/utils/snakeToCamelCase.ts @@ -11,12 +11,23 @@ export type SnakeToCamelCaseNested = T extends object } : T +/** + * + * @param value - The string to convert from snake_case to camelCase + * @example + * snakeToCamelCase("hello_world") // "helloWorld" + * snakeToCamelCase("hello_world_test") // "helloWorldTest" + * @returns string + * @description Converts a string from snake_case to camelCase + */ export function snakeToCamelCase( - value: S + value: S, ): SnakeToCamelCase { - const words = value.toLowerCase().split('_') - const first = words[0] ?? '' - const firstLetter = words[1]?.[0]?.toUpperCase() ?? '' - const second = words[1]?.substring(1) ?? '' - return `${first}${firstLetter}${second}` as SnakeToCamelCase + const words = value.toLowerCase().split("_") + const first = words[0] ?? "" + const secondLetter = words[1]?.[0]?.toUpperCase() ?? "" + const second = words[1]?.substring(1) ?? "" + const thirdLetter = words[2]?.[0]?.toUpperCase() ?? "" + const third = words[2]?.substring(1) ?? "" + return `${first}${secondLetter}${second}${thirdLetter}${third}` as SnakeToCamelCase } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 854d70f2..49d43f6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,10 +48,10 @@ importers: version: 7.26.9(@babel/core@7.26.10) '@commercelayer/js-auth': specifier: ^6.7.1 - version: 6.7.1 + version: 6.7.2 '@commercelayer/sdk': specifier: ^6.32.0 - version: 6.35.0 + version: 6.38.0 '@mdx-js/react': specifier: ^3.1.0 version: 3.1.0(@types/react@18.3.18)(react@18.3.1) @@ -105,10 +105,10 @@ importers: version: 8.6.6(storybook@7.6.20(encoding@0.1.13)) '@storybook/react': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@storybook/react-vite': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -123,7 +123,7 @@ importers: version: 18.3.18 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) babel-loader: specifier: ^9.2.1 version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)) @@ -135,7 +135,7 @@ importers: version: 4.0.0 msw: specifier: ^2.7.0 - version: 2.7.3(@types/node@22.14.0)(typescript@5.8.2) + version: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -153,19 +153,22 @@ importers: version: 4.37.0 typescript: specifier: ^5.7.3 - version: 5.8.2 + version: 5.8.3 vite: specifier: ^6.1.0 - version: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + version: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: '@adyen/adyen-web': specifier: ^6.11.0 version: 6.11.0 + '@checkout.com/checkout-web-components': + specifier: 0.6.0-beta + version: 0.6.0-beta '@commercelayer/organization-config': specifier: ^2.2.0 version: 2.2.0 @@ -957,20 +960,13 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@chromatic-com/storybook@3.2.6': - resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} - engines: {node: '>=16.0.0', yarn: '>=1.22.18'} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@checkout.com/checkout-web-components@0.6.0-beta': + resolution: {integrity: sha512-dj5745XGQdgmv0/RdyepXM+ghlWXJx5Z+BHNUKjQrw43kMWOsuuHiKBu9gSSnwVT60iW9sXlLvZ83nlilfwoJg==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@commercelayer/js-auth@6.7.1': - resolution: {integrity: sha512-GOfOGeLKhdjKa1qTq2KTF14rEKYYX7yvUYH1GYc4YuX3d5DNLqwQJK4eJN054GnAYl4YeyimVSqmLhiwC5OfBA==} - engines: {node: '>=18.0.0'} - '@commercelayer/js-auth@6.7.2': resolution: {integrity: sha512-kk4VqN2iEOreXFq76YqTP83KhBs09Z5Ez9nZNlikXWf5DXzkrOfShqqEwq8ezHjSOlqs4xVyxgQzsEdPP35CeQ==} engines: {node: '>=18.0.0'} @@ -979,10 +975,6 @@ packages: resolution: {integrity: sha512-v7vfLru0WiqocrPWfldmqhbG6VKYQcdu480SUCU4wTnDcXLVnlKfgaadkNnv+tVVZXh0qke8/uwrkNoi3VY/Bw==} engines: {node: '>=18', pnpm: '>=7'} - '@commercelayer/sdk@6.35.0': - resolution: {integrity: sha512-0Afbon6//2KHCTb6bILk2L9Idj9dP8pw06V1CFtaz1wtAsX4iifubGpOPxHH6CuGi4DFHzgASJRz6+ZZbqb3kA==} - engines: {node: '>=20'} - '@commercelayer/sdk@6.38.0': resolution: {integrity: sha512-fv6GrTFWkQJC4yb86Fix560+S/lKLegTEFpQNTsnNpE8JLkzF63B1dyCWpbGcOtsbCK37I/CXsQf6eof1R15qA==} engines: {node: '>=20'} @@ -3064,7 +3056,7 @@ packages: resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' '@vitest/coverage-v8@3.1.1': resolution: {integrity: sha512-MgV6D2dhpD6Hp/uroUoAIvFqA8AuvXEFBC2eepG3WFc1pxTfdk1LEqqkWoWhjz+rytoqrnUUCdf6Lzco3iHkLQ==} @@ -7314,16 +7306,6 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - typescript@5.6.1-rc: - resolution: {integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} @@ -7530,51 +7512,11 @@ packages: vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=5.1.7' + vite: '>=4.5.2' peerDependenciesMeta: vite: optional: true - vite@6.2.2: - resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vite@6.2.5: resolution: {integrity: sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -8792,32 +8734,17 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@chromatic-com/storybook@3.2.6(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))': - dependencies: - chromatic: 11.25.2 - filesize: 10.1.6 - jsonfile: 6.1.0 - react-confetti: 6.2.2(react@19.1.0) - storybook: 8.6.12(prettier@2.8.8) - strip-ansi: 7.1.0 - transitivePeerDependencies: - - '@chromatic-com/cypress' - - '@chromatic-com/playwright' - - react + '@checkout.com/checkout-web-components@0.6.0-beta': {} '@colors/colors@1.5.0': optional: true - '@commercelayer/js-auth@6.7.1': {} - '@commercelayer/js-auth@6.7.2': {} '@commercelayer/organization-config@2.2.0': dependencies: merge-anything: 5.1.7 - '@commercelayer/sdk@6.35.0': {} - '@commercelayer/sdk@6.38.0': {} '@csstools/color-helpers@5.0.2': {} @@ -9168,15 +9095,15 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + react-docgen-typescript: 2.2.2(typescript@5.8.3) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': dependencies: @@ -10404,7 +10331,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -10422,9 +10349,9 @@ snapshots: fs-extra: 11.3.0 magic-string: 0.30.17 rollup: 3.29.5 - vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 transitivePeerDependencies: - encoding - supports-color @@ -10827,18 +10754,18 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) - '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) - '@vitejs/plugin-react': 3.1.0(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) + '@vitejs/plugin-react': 3.1.0(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) - vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -10847,29 +10774,7 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.35.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@2.8.8))(vite@6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0)) - '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@2.8.8)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@2.8.8))(typescript@5.8.3) - find-up: 5.0.0 - magic-string: 0.30.17 - react: 19.1.0 - react-docgen: 7.1.0 - react-dom: 19.1.0(react@19.1.0) - resolve: 1.22.10 - storybook: 8.6.12(prettier@2.8.8) - tsconfig-paths: 4.2.0 - vite: 6.3.1(@types/node@22.13.14)(terser@5.39.0)(yaml@2.7.0) - optionalDependencies: - '@storybook/test': 8.6.12(storybook@8.6.12(prettier@2.8.8)) - transitivePeerDependencies: - - rollup - - supports-color - - typescript - - '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2)': + '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3)': dependencies: '@storybook/client-logger': 7.6.20 '@storybook/core-client': 7.6.20 @@ -10895,7 +10800,7 @@ snapshots: type-fest: 2.19.0 util-deprecate: 1.0.2 optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 transitivePeerDependencies: - encoding - supports-color @@ -11301,25 +11206,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitejs/plugin-react@3.1.0(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': - dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -14648,31 +14542,6 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@22.14.0)(typescript@5.8.2): - dependencies: - '@bundled-es-modules/cookie': 2.0.1 - '@bundled-es-modules/statuses': 1.0.1 - '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.14.0) - '@mswjs/interceptors': 0.37.6 - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - graphql: 16.10.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 - path-to-regexp: 6.3.0 - picocolors: 1.1.1 - strict-event-emitter: 0.5.1 - type-fest: 4.37.0 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.8.2 - transitivePeerDependencies: - - '@types/node' - msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 @@ -15385,14 +15254,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-confetti@6.2.2(react@19.1.0): - dependencies: - react: 19.1.0 - tween-functions: 1.2.0 - - react-docgen-typescript@2.2.2(typescript@5.8.2): + react-docgen-typescript@2.2.2(typescript@5.8.3): dependencies: - typescript: 5.8.2 + typescript: 5.8.3 react-docgen-typescript@2.2.2(typescript@5.8.3): dependencies: @@ -16261,10 +16125,6 @@ snapshots: normalize-path: 3.0.0 plimit-lit: 1.6.1 - tsconfck@3.1.5(typescript@5.8.2): - optionalDependencies: - typescript: 5.8.2 - tsconfck@3.1.5(typescript@5.8.3): optionalDependencies: typescript: 5.8.3 @@ -16355,10 +16215,6 @@ snapshots: typescript@4.9.5: {} - typescript@5.6.1-rc: {} - - typescript@5.8.2: {} - typescript@5.8.3: {} ufo@1.5.4: {} @@ -16589,17 +16445,6 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)): - dependencies: - debug: 4.4.0 - globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.2) - optionalDependencies: - vite: 6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 @@ -16611,17 +16456,6 @@ snapshots: - supports-color - typescript - vite@6.2.2(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0): - dependencies: - esbuild: 0.25.1 - postcss: 8.5.3 - rollup: 4.35.0 - optionalDependencies: - '@types/node': 22.14.0 - fsevents: 2.3.3 - terser: 5.39.0 - yaml: 2.7.0 - vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 From 925e1f57cf3c19d42879e14d0968713a52c847ea Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 14 May 2025 17:53:04 +0200 Subject: [PATCH 028/165] v4.23.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- pnpm-lock.yaml | 8 -------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/lerna.json b/lerna.json index d0506f74..f9d6fde4 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.22.0", + "version": "4.23.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 641a21b5..8b48491e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.22.0", + "version": "4.23.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49d43f6b..710ae528 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,9 +166,6 @@ importers: '@adyen/adyen-web': specifier: ^6.11.0 version: 6.11.0 - '@checkout.com/checkout-web-components': - specifier: 0.6.0-beta - version: 0.6.0-beta '@commercelayer/organization-config': specifier: ^2.2.0 version: 2.2.0 @@ -960,9 +957,6 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@checkout.com/checkout-web-components@0.6.0-beta': - resolution: {integrity: sha512-dj5745XGQdgmv0/RdyepXM+ghlWXJx5Z+BHNUKjQrw43kMWOsuuHiKBu9gSSnwVT60iW9sXlLvZ83nlilfwoJg==} - '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -8734,8 +8728,6 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@checkout.com/checkout-web-components@0.6.0-beta': {} - '@colors/colors@1.5.0': optional: true From b21cb89044e0b3e7ae677e7dfd37021ce371d007 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 15 May 2025 15:50:48 +0200 Subject: [PATCH 029/165] Fix load CKO configuration --- .../payment_gateways/CheckoutComGateway.tsx | 38 +++++++++---------- .../payment_source/CheckoutComPayment.tsx | 6 +-- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/packages/react-components/src/components/payment_gateways/CheckoutComGateway.tsx b/packages/react-components/src/components/payment_gateways/CheckoutComGateway.tsx index c471871d..a4c68c29 100644 --- a/packages/react-components/src/components/payment_gateways/CheckoutComGateway.tsx +++ b/packages/react-components/src/components/payment_gateways/CheckoutComGateway.tsx @@ -1,19 +1,19 @@ -import CheckoutComPayment from '#components/payment_source/CheckoutComPayment' -import type { GatewayBaseType } from '#components/payment_gateways/PaymentGateway' -import CustomerContext from '#context/CustomerContext' -import OrderContext from '#context/OrderContext' -import PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext' -import PaymentMethodContext from '#context/PaymentMethodContext' -import PaymentSourceContext from '#context/PaymentSourceContext' +import CheckoutComPayment from "#components/payment_source/CheckoutComPayment" +import type { GatewayBaseType } from "#components/payment_gateways/PaymentGateway" +import CustomerContext from "#context/CustomerContext" +import OrderContext from "#context/OrderContext" +import PaymentMethodChildrenContext from "#context/PaymentMethodChildrenContext" +import PaymentMethodContext from "#context/PaymentMethodContext" +import PaymentSourceContext from "#context/PaymentSourceContext" import { getPaymentConfig, - type PaymentResource -} from '#reducers/PaymentMethodReducer' -import type { StripeElementLocale } from '@stripe/stripe-js' -import isEmpty from 'lodash/isEmpty' -import React, { type JSX } from 'react'; -import PaymentCardsTemplate from '#components/utils/PaymentCardsTemplate' -import getCardDetails from '#utils/getCardDetails' + type PaymentResource, +} from "#reducers/PaymentMethodReducer" +import type { StripeElementLocale } from "@stripe/stripe-js" +import isEmpty from "lodash/isEmpty" +import React, { type JSX } from "react" +import PaymentCardsTemplate from "#components/utils/PaymentCardsTemplate" +import getCardDetails from "#utils/getCardDetails" type Props = GatewayBaseType @@ -35,14 +35,14 @@ export function CheckoutComGateway(props: Props): JSX.Element | null { const { payments, isGuest } = React.useContext(CustomerContext) const { currentPaymentMethodId, config, paymentSource } = React.useContext(PaymentMethodContext) - const paymentResource: PaymentResource = 'checkout_com_payments' + const paymentResource: PaymentResource = "checkout_com_payments" const locale = order?.language_code as StripeElementLocale if (!readonly && payment?.id !== currentPaymentMethodId) return null // @ts-expect-error no type const publicKey = paymentSource?.public_key const paymentConfig = config - ? getPaymentConfig<'checkout_com_payments'>(paymentResource, config) + ? getPaymentConfig<"checkout_com_payments">(paymentResource, config) : {} const customerPayments = !isEmpty(payments) && payments @@ -53,9 +53,9 @@ export function CheckoutComGateway(props: Props): JSX.Element | null { if (readonly || showCard) { const card = getCardDetails({ customerPayment: { - payment_source: paymentSource + payment_source: paymentSource, }, - paymentType: paymentResource + paymentType: paymentResource, }) const value = { ...card, showCard, handleEditClick, readonly } return !card.brand ? null : ( @@ -79,7 +79,7 @@ export function CheckoutComGateway(props: Props): JSX.Element | null { templateCustomerSaveToWallet={templateCustomerSaveToWallet} publicKey={publicKey} locale={locale} - {...paymentConfig} + {...paymentConfig.checkoutComPayment} /> ) diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 7631b2fc..0d9ec256 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -122,11 +122,7 @@ export function CheckoutComPayment({ }: Props): JSX.Element | null { const ref = useRef(null) const loaded = useExternalScript(scriptUrl) - const { - setPaymentRef, - setPaymentSource, - // setPaymentMethodErrors, - } = useContext(PaymentMethodContext) + const { setPaymentRef, setPaymentSource } = useContext(PaymentMethodContext) const { accessToken } = useContext(CommerceLayerContext) const { order } = useContext(OrderContext) // const { setPlaceOrder } = useContext(PlaceOrderContext) From 169bc0f6507a0ff0e3b9cd7db3ee3eaf8cba2a13 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 15 May 2025 16:14:28 +0200 Subject: [PATCH 030/165] v4.23.1 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index f9d6fde4..c28b31e1 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.0", + "version": "4.23.1", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 8b48491e..067a8bfe 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.0", + "version": "4.23.1", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From f9f9383f972105eb9b69a50ae6f9b81c1232a57b Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 19 May 2025 11:33:28 +0200 Subject: [PATCH 031/165] Fix CKO config types --- .../payment_source/CheckoutComPayment.tsx | 69 ++++++++----------- 1 file changed, 27 insertions(+), 42 deletions(-) diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 0d9ec256..928df0f6 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -11,48 +11,33 @@ import { setCustomerOrderParam } from "#utils/localStorage" const scriptUrl = "https://checkout-web-components.checkout.com/index.js" +interface ElementAppearance { + fontFamily?: string + fontSize?: string + fontWeight?: number + letterSpacing?: number + lineHeight?: string +} + interface Appearance { - colorAction: string - colorBackground: string - colorBorder: string - colorDisabled: string - colorError: string - colorFormBackground: string - colorFormBorder: string - colorInverse: string - colorOutline: string - colorPrimary: string - colorSecondary: string - colorSuccess: string - button: { - fontFamily: string - fontSize: string - fontWeight: number - letterSpacing: number - lineHeight: string - } - footnote: { - fontFamily: string - fontSize: string - fontWeight: number - letterSpacing: number - lineHeight: string - } - label: { - fontFamily: string - fontSize: string - fontWeight: number - letterSpacing: number - lineHeight: string - } - subheading: { - fontFamily: string - fontSize: string - fontWeight: number - letterSpacing: number - lineHeight: string - } - borderRadius: [string, string] + colorAction?: string + colorBackground?: string + colorBorder?: string + colorDisabled?: string + colorError?: string + colorFormBackground?: string + colorFormBorder?: string + colorInverse?: string + colorOutline?: string + colorPrimary?: string + colorSecondary?: string + colorSuccess?: string + borderRadius?: [string, string] + button?: ElementAppearance + footnote?: ElementAppearance + label?: ElementAppearance + input?: ElementAppearance + subheading?: ElementAppearance } interface Component { @@ -102,7 +87,7 @@ export interface CheckoutComConfig { success_url: string failure_url: string options?: { - appearance: Partial + appearance: Appearance } [key: string]: unknown } From 35d2c4a8d94c358e5b39a1605036d051f97fb1af Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 19 May 2025 12:06:00 +0200 Subject: [PATCH 032/165] v4.23.2 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index c28b31e1..d3f5151c 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.1", + "version": "4.23.2", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 067a8bfe..b6108ac4 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.1", + "version": "4.23.2", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 2ba429e284af8afcb4f49e314157dd530bc4abce Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 22 May 2025 19:13:06 +0200 Subject: [PATCH 033/165] Fix show CKO payment error --- .../components/orders/PlaceOrderButton.tsx | 70 ++++++++++++++++++- .../payment_source/CheckoutComPayment.tsx | 18 ++++- .../src/reducers/PlaceOrderReducer.ts | 27 +------ 3 files changed, 86 insertions(+), 29 deletions(-) diff --git a/packages/react-components/src/components/orders/PlaceOrderButton.tsx b/packages/react-components/src/components/orders/PlaceOrderButton.tsx index 36efc4f5..b9c7b644 100644 --- a/packages/react-components/src/components/orders/PlaceOrderButton.tsx +++ b/packages/react-components/src/components/orders/PlaceOrderButton.tsx @@ -299,9 +299,38 @@ export function PlaceOrderButton(props: Props): JSX.Element { ["draft", "pending"].includes(order?.status) && autoPlaceOrder ) { - handleClick() + // @ts-expect-error no type + const paymentResponse = order?.payment_source?.payment_response + const paymentStatus = paymentResponse?.status?.toLowerCase() + if (paymentStatus === "pending") { + setPaymentSource({ + paymentSourceId: paymentSource?.id, + paymentResource: "checkout_com_payments", + attributes: { + _details: 1, + }, + }).then((res) => { + // @ts-expect-error no type + const paymentStatus: string = res?.payment_response?.status + if (paymentStatus.toLowerCase() === "authorized") { + handleClick() + } else { + if (options?.checkoutCom) { + options.checkoutCom.session_id = undefined + } + setPaymentMethodErrors([ + { + code: "PAYMENT_INTENT_AUTHENTICATION_FAILURE", + resource: "payment_methods", + field: currentPaymentMethodType, + message: paymentStatus, + }, + ]) + } + }) + } } - }, [options?.checkoutCom, paymentType]) + }, [options?.checkoutCom, paymentType, order?.payment_source?.id]) // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test useEffect(() => { if (ref?.current != null && setButtonRef != null) { @@ -314,7 +343,11 @@ export function PlaceOrderButton(props: Props): JSX.Element { e?.preventDefault() e?.stopPropagation() const isAlreadyPlaced = order?.status === "placed" + const isDraftOrder = order?.status === "draft" if (isAlreadyPlaced) { + /** + * Order already placed + */ setPlaceOrderStatus?.({ status: "placing" }) onClick?.({ placed: true, @@ -322,6 +355,24 @@ export function PlaceOrderButton(props: Props): JSX.Element { }) return } + if (isDraftOrder) { + /** + * Draft order cannot be placed + */ + setPlaceOrderStatus?.({ status: "standby" }) + onClick?.({ + placed: false, + order: order, + errors: [ + { + code: "VALIDATION_ERROR", + resource: "orders", + message: "Draft order cannot be placed", + }, + ], + }) + return + } setIsLoading(true) let isValid = true setForceDisable(true) @@ -360,6 +411,21 @@ export function PlaceOrderButton(props: Props): JSX.Element { ) { isValid = true } + } else if ( + currentPaymentMethodRef?.current?.onsubmit && + options?.checkoutCom?.session_id && + // @ts-expect-error no type + checkPaymentSource?.payment_response?.status?.toLowerCase() === "declined" + ) { + /** + * Permit to place order with declined payment using Checkout.com + */ + isValid = (await currentPaymentMethodRef.current?.onsubmit({ + // @ts-expect-error no type + paymentSource: checkPaymentSource, + setPlaceOrder, + onclickCallback: onClick, + })) as boolean } else if (card?.brand) { isValid = true } diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 928df0f6..5e62d759 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -190,7 +190,23 @@ export function CheckoutComPayment({ } }, onError: (component, error) => { - console.error("onError", error, "Component", component.type) + console.error("onError", { error }, "Component", component.type) + }, + onPaymentCompleted: async (component, paymentResponse) => { + console.log("onPaymentCompleted -----", { + paymentResponse, + component, + ps, + }) + const paymentSource = await setPaymentSource({ + paymentSourceId: ps.id, + paymentResource: "checkout_com_payments", + attributes: { + token: paymentResponse.id, + _authorize: true, + }, + }) + console.log("paymentSource", { paymentSource }) }, } satisfies CheckoutWebComponent) const flowComponent = checkout.create("flow") diff --git a/packages/react-components/src/reducers/PlaceOrderReducer.ts b/packages/react-components/src/reducers/PlaceOrderReducer.ts index b57f0499..7ca66323 100644 --- a/packages/react-components/src/reducers/PlaceOrderReducer.ts +++ b/packages/react-components/src/reducers/PlaceOrderReducer.ts @@ -32,7 +32,7 @@ export interface PlaceOrderOptions { redirectResult?: string } checkoutCom?: { - session_id: string + session_id: string | undefined } stripe?: { /** @@ -206,31 +206,6 @@ export async function setPlaceOrder({ paypal_payer_id: options?.paypalPayerId, }) } - if ( - paymentType === "checkout_com_payments" && - paymentSource && - options?.checkoutCom?.session_id - ) { - const payment = await sdk[paymentType].update({ - id: paymentSource.id, - _details: true, - }) - // @ts-expect-error no type - if (payment?.payment_response?.status !== "Authorized") { - // @ts-expect-error no type - const [action] = payment?.payment_response?.actions || [""] - const errors: BaseError[] = [ - { - code: "PAYMENT_NOT_APPROVED_FOR_EXECUTION", - message: action?.response_summary, - resource: "orders", - field: "checkout_com_payments", - }, - ] - // eslint-disable-next-line @typescript-eslint/no-throw-literal - throw { errors } - } - } const updateAttributes: OrderUpdate = { id: order.id, _place: true, From 9c635b0f1ca36497a419668039d803d4d263cf0a Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 22 May 2025 19:17:23 +0200 Subject: [PATCH 034/165] v4.23.3-beta.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index d3f5151c..6ba4cf0c 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.2", + "version": "4.23.3-beta.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index b6108ac4..e960a56e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.2", + "version": "4.23.3-beta.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 221505c5f9a5c84971e0981b8b6e03fade0788b2 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 23 May 2025 19:02:43 +0200 Subject: [PATCH 035/165] Fix place draft order --- .../components/orders/PlaceOrderButton.tsx | 26 ++++++++++-- .../payment_source/CheckoutComPayment.tsx | 40 ++++++++++--------- .../src/reducers/OrderReducer.ts | 3 +- 3 files changed, 47 insertions(+), 22 deletions(-) diff --git a/packages/react-components/src/components/orders/PlaceOrderButton.tsx b/packages/react-components/src/components/orders/PlaceOrderButton.tsx index b9c7b644..66df44ee 100644 --- a/packages/react-components/src/components/orders/PlaceOrderButton.tsx +++ b/packages/react-components/src/components/orders/PlaceOrderButton.tsx @@ -17,6 +17,7 @@ import getCardDetails from "#utils/getCardDetails" import type { BaseError } from "#typings/errors" import type { Order } from "@commercelayer/sdk" import { checkPaymentIntent } from "#utils/stripe/retrievePaymentIntent" +import useCommerceLayer from "#hooks/useCommerceLayer" interface ChildrenProps extends Omit { /** @@ -73,6 +74,7 @@ export function PlaceOrderButton(props: Props): JSX.Element { const [notPermitted, setNotPermitted] = useState(true) const [forceDisable, setForceDisable] = useState(disabled) const [isLoading, setIsLoading] = useState(false) + const { sdkClient } = useCommerceLayer() const { currentPaymentMethodRef, loading, @@ -82,7 +84,7 @@ export function PlaceOrderButton(props: Props): JSX.Element { setPaymentMethodErrors, currentCustomerPaymentSourceId, } = useContext(PaymentMethodContext) - const { order } = useContext(OrderContext) + const { order, setOrderErrors } = useContext(OrderContext) const isFree = order?.total_amount_with_taxes_cents === 0 // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test useEffect(() => { @@ -342,8 +344,19 @@ export function PlaceOrderButton(props: Props): JSX.Element { ): Promise => { e?.preventDefault() e?.stopPropagation() - const isAlreadyPlaced = order?.status === "placed" - const isDraftOrder = order?.status === "draft" + const sdk = sdkClient() + if (sdk == null) return + if (order == null) return + /** + * Check if the order is already placed or in draft status to avoid placing it again + * and to prevent placing a draft order + * @see https://docs.commercelayer.io/core/how-tos/placing-orders/checkout/placing-the-order + */ + const { status } = await sdk.orders.retrieve(order?.id, { + fields: ["status"], + }) + const isAlreadyPlaced = status === "placed" + const isDraftOrder = status === "draft" if (isAlreadyPlaced) { /** * Order already placed @@ -371,6 +384,13 @@ export function PlaceOrderButton(props: Props): JSX.Element { }, ], }) + setOrderErrors([ + { + code: "VALIDATION_ERROR", + resource: "orders", + message: "Draft order cannot be placed", + }, + ]) return } setIsLoading(true) diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 5e62d759..6e3a76d7 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -192,25 +192,29 @@ export function CheckoutComPayment({ onError: (component, error) => { console.error("onError", { error }, "Component", component.type) }, - onPaymentCompleted: async (component, paymentResponse) => { - console.log("onPaymentCompleted -----", { - paymentResponse, - component, - ps, - }) - const paymentSource = await setPaymentSource({ - paymentSourceId: ps.id, - paymentResource: "checkout_com_payments", - attributes: { - token: paymentResponse.id, - _authorize: true, - }, - }) - console.log("paymentSource", { paymentSource }) - }, + // onPaymentCompleted: async (component, paymentResponse) => { + // console.log("onPaymentCompleted -----", { + // paymentResponse, + // component, + // ps, + // }) + // const paymentSource = await setPaymentSource({ + // paymentSourceId: ps.id, + // paymentResource: "checkout_com_payments", + // attributes: { + // token: paymentResponse.id, + // _authorize: true, + // }, + // }) + // console.log("paymentSource", { paymentSource }) + // }, } satisfies CheckoutWebComponent) - const flowComponent = checkout.create("flow") - flowComponent.mount(document.getElementById("flow-container")) + // const flowComponent = checkout.create("flow") + const flowComponent = checkout.create("card") + if (await flowComponent.isAvailable()) { + flowComponent.mount(document.getElementById("flow-container")) + } + // flowComponent.mount(document.getElementById("flow-container")) } loadFlow() } diff --git a/packages/react-components/src/reducers/OrderReducer.ts b/packages/react-components/src/reducers/OrderReducer.ts index c1f68821..f8eb3e41 100644 --- a/packages/react-components/src/reducers/OrderReducer.ts +++ b/packages/react-components/src/reducers/OrderReducer.ts @@ -37,6 +37,7 @@ export type GetOrderParams = Partial<{ id: string persistKey: string state: OrderState + options: QueryParamsRetrieve }> export type GetOrder = (params: GetOrderParams) => Promise @@ -192,11 +193,11 @@ export const getApiOrder: GetOrder = async ( persistKey, deleteLocalOrder, state, + options = {}, } = params const sdk = config != null ? getSdk(config) : undefined try { if (sdk == null) return undefined - const options: QueryParamsRetrieve = {} if (state?.include && state.include.length > 0) { options.include = state.include } From 98a9a7869b201d96f086d6bc3defcf4987a0e871 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 23 May 2025 19:03:17 +0200 Subject: [PATCH 036/165] v4.23.3-beta.1 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 6ba4cf0c..896d7f9e 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.3-beta.0", + "version": "4.23.3-beta.1", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index e960a56e..8ec41859 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.3-beta.0", + "version": "4.23.3-beta.1", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 2820bf8d4a884a10cf63f3fa205d6c971c55094f Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 28 May 2025 10:55:20 +0200 Subject: [PATCH 037/165] v4.23.3 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 896d7f9e..346b770e 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.3-beta.1", + "version": "4.23.3", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 8ec41859..3d111ca8 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.3-beta.1", + "version": "4.23.3", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From ecc2047a93558c0894342632b81f9f0388914aaa Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 29 May 2025 20:20:22 +0200 Subject: [PATCH 038/165] Fix avoid place order in draft --- package.json | 2 +- packages/react-components/package.json | 36 +- .../components/orders/PlaceOrderButton.tsx | 78 +-- .../payment_source/StripePayment.tsx | 32 +- pnpm-lock.yaml | 627 +++++++++++------- 5 files changed, 462 insertions(+), 313 deletions(-) diff --git a/package.json b/package.json index f3b03b2a..1f2d1a73 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "husky": "^9.1.7", - "lerna": "^8.2.1", + "lerna": "^8.2.2", "typescript": "^5.8.3" }, "pnpm": { diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 3d111ca8..c05547a5 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -157,14 +157,14 @@ }, "homepage": "https://github.com/commercelayer/commercelayer-react-components#readme", "dependencies": { - "@adyen/adyen-web": "^6.11.0", - "@commercelayer/organization-config": "^2.2.0", - "@commercelayer/sdk": "^6.38.0", - "@stripe/react-stripe-js": "^3.6.0", - "@stripe/stripe-js": "^7.0.0", - "@tanstack/react-table": "^8.21.2", + "@adyen/adyen-web": "^6.15.0", + "@commercelayer/organization-config": "^2.3.0", + "@commercelayer/sdk": "^6.42.0", + "@stripe/react-stripe-js": "^3.7.0", + "@stripe/stripe-js": "^7.3.1", + "@tanstack/react-table": "^8.21.3", "@types/iframe-resizer": "^3.5.13", - "braintree-web": "^3.117.1", + "braintree-web": "^3.120.0", "frames-react": "^1.2.2", "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", @@ -173,31 +173,31 @@ }, "devDependencies": { "@commercelayer/js-auth": "^6.7.2", - "@faker-js/faker": "^9.6.0", - "@playwright/test": "^1.51.1", + "@faker-js/faker": "^9.8.0", + "@playwright/test": "^1.52.0", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.3.0", "@types/braintree-web": "^3.96.17", - "@types/lodash": "^4.17.16", - "@types/node": "^22.14.0", + "@types/lodash": "^4.17.17", + "@types/node": "^22.15.23", "@types/prop-types": "^15.7.14", "@types/react": "^19.0.12", "@types/react-test-renderer": "^19.0.0", "@types/react-window": "^1.8.8", - "@vitejs/plugin-react": "^4.3.4", - "@vitest/coverage-v8": "^3.1.1", - "jsdom": "^26.0.0", + "@vitejs/plugin-react": "^4.5.0", + "@vitest/coverage-v8": "^3.1.4", + "jsdom": "^26.1.0", "minimize-js": "^1.4.0", - "msw": "^2.7.3", + "msw": "^2.8.5", "react": "^18.3.1", "react-dom": "^18.3.1", "react-test-renderer": "^18.3.1", - "tsc-alias": "^1.8.13", + "tsc-alias": "^1.8.16", "tslib": "^2.8.1", "typescript": "^5.8.3", - "vite": "^6.2.5", + "vite": "^6.3.5", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.1.1" + "vitest": "^3.1.4" }, "peerDependencies": { "react": ">=18.0.0" diff --git a/packages/react-components/src/components/orders/PlaceOrderButton.tsx b/packages/react-components/src/components/orders/PlaceOrderButton.tsx index 66df44ee..edb57cff 100644 --- a/packages/react-components/src/components/orders/PlaceOrderButton.tsx +++ b/packages/react-components/src/components/orders/PlaceOrderButton.tsx @@ -347,51 +347,55 @@ export function PlaceOrderButton(props: Props): JSX.Element { const sdk = sdkClient() if (sdk == null) return if (order == null) return - /** - * Check if the order is already placed or in draft status to avoid placing it again - * and to prevent placing a draft order - * @see https://docs.commercelayer.io/core/how-tos/placing-orders/checkout/placing-the-order - */ - const { status } = await sdk.orders.retrieve(order?.id, { - fields: ["status"], - }) - const isAlreadyPlaced = status === "placed" - const isDraftOrder = status === "draft" - if (isAlreadyPlaced) { + + const isStripePayment = paymentType === "stripe_payments" + if (!isStripePayment) { /** - * Order already placed + * Check if the order is already placed or in draft status to avoid placing it again + * and to prevent placing a draft order + * @see https://docs.commercelayer.io/core/how-tos/placing-orders/checkout/placing-the-order */ - setPlaceOrderStatus?.({ status: "placing" }) - onClick?.({ - placed: true, - order: order, + const { status } = await sdk.orders.retrieve(order?.id, { + fields: ["status"], }) - return - } - if (isDraftOrder) { - /** - * Draft order cannot be placed - */ - setPlaceOrderStatus?.({ status: "standby" }) - onClick?.({ - placed: false, - order: order, - errors: [ + const isAlreadyPlaced = status === "placed" + const isDraftOrder = status === "draft" + if (isAlreadyPlaced) { + /** + * Order already placed + */ + setPlaceOrderStatus?.({ status: "placing" }) + onClick?.({ + placed: true, + order: order, + }) + return + } + if (isDraftOrder) { + /** + * Draft order cannot be placed + */ + setPlaceOrderStatus?.({ status: "standby" }) + onClick?.({ + placed: false, + order: order, + errors: [ + { + code: "VALIDATION_ERROR", + resource: "orders", + message: "Draft order cannot be placed", + }, + ], + }) + setOrderErrors([ { code: "VALIDATION_ERROR", resource: "orders", message: "Draft order cannot be placed", }, - ], - }) - setOrderErrors([ - { - code: "VALIDATION_ERROR", - resource: "orders", - message: "Draft order cannot be placed", - }, - ]) - return + ]) + return + } } setIsLoading(true) let isValid = true diff --git a/packages/react-components/src/components/payment_source/StripePayment.tsx b/packages/react-components/src/components/payment_source/StripePayment.tsx index c39cfdb6..33621a5d 100644 --- a/packages/react-components/src/components/payment_source/StripePayment.tsx +++ b/packages/react-components/src/components/payment_source/StripePayment.tsx @@ -7,6 +7,7 @@ import type { StripeElementLocale, StripeElements, StripeElementsOptions, + StripePaymentElementChangeEvent, StripePaymentElementOptions, } from "@stripe/stripe-js" import type { PaymentMethodConfig } from "#reducers/PaymentMethodReducer" @@ -15,6 +16,7 @@ import Parent from "#components/utils/Parent" import { setCustomerOrderParam } from "#utils/localStorage" import OrderContext from "#context/OrderContext" import { StripeExpressPayment } from "./StripeExpressPayment" +import useCommerceLayer from "#hooks/useCommerceLayer" export interface StripeConfig { containerClassName?: string @@ -64,7 +66,8 @@ function StripePaymentForm({ const ref = useRef(null) const { currentPaymentMethodType, setPaymentMethodErrors, setPaymentRef } = useContext(PaymentMethodContext) - const { order } = useContext(OrderContext) + const { order, setOrderErrors } = useContext(OrderContext) + const { sdkClient } = useCommerceLayer() const elements = useElements() // biome-ignore lint/correctness/useExhaustiveDependencies: Avoid rerendering the form useEffect(() => { @@ -142,12 +145,39 @@ function StripePaymentForm({ return false } + async function handleChange(event: StripePaymentElementChangeEvent) { + // Handle change events from the PaymentElement + if (event.complete) { + const sdk = sdkClient() + if (sdk == null) return + if (order == null) return + const { status } = await sdk.orders.retrieve(order?.id, { + fields: ["status"], + }) + const isDraftOrder = status === "draft" + if (isDraftOrder) { + /** + * Draft order cannot be placed + */ + setOrderErrors([ + { + code: "VALIDATION_ERROR", + resource: "orders", + message: "Draft order cannot be placed", + }, + ]) + return + } + } + } + return ( {/* */} {templateCustomerSaveToWallet && ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 710ae528..bed94176 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@storybook/react-vite': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -123,7 +123,7 @@ importers: version: 18.3.18 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) babel-loader: specifier: ^9.2.1 version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)) @@ -135,7 +135,7 @@ importers: version: 4.0.0 msw: specifier: ^2.7.0 - version: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) + version: 2.7.3(@types/node@22.15.23)(typescript@5.8.3) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -156,37 +156,37 @@ importers: version: 5.8.3 vite: specifier: ^6.1.0 - version: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + version: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: '@adyen/adyen-web': - specifier: ^6.11.0 - version: 6.11.0 + specifier: ^6.15.0 + version: 6.15.0 '@commercelayer/organization-config': - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.3.0 + version: 2.3.0 '@commercelayer/sdk': - specifier: ^6.38.0 - version: 6.38.0 + specifier: ^6.42.0 + version: 6.42.0 '@stripe/react-stripe-js': - specifier: ^3.6.0 - version: 3.6.0(@stripe/stripe-js@7.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^3.7.0 + version: 3.7.0(@stripe/stripe-js@7.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@stripe/stripe-js': - specifier: ^7.0.0 - version: 7.0.0 + specifier: ^7.3.1 + version: 7.3.1 '@tanstack/react-table': - specifier: ^8.21.2 - version: 8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^8.21.3 + version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/iframe-resizer': specifier: ^4.0.0 version: 4.0.0 braintree-web: - specifier: ^3.117.1 - version: 3.117.1 + specifier: ^3.120.0 + version: 3.120.0 frames-react: specifier: ^1.2.2 version: 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3) @@ -207,11 +207,11 @@ importers: specifier: ^6.7.2 version: 6.7.2 '@faker-js/faker': - specifier: ^9.6.0 - version: 9.6.0 + specifier: ^9.8.0 + version: 9.8.0 '@playwright/test': - specifier: ^1.51.1 - version: 1.51.1 + specifier: ^1.52.0 + version: 1.52.0 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -222,11 +222,11 @@ importers: specifier: ^3.96.17 version: 3.96.17 '@types/lodash': - specifier: ^4.17.16 - version: 4.17.16 + specifier: ^4.17.17 + version: 4.17.17 '@types/node': - specifier: ^22.14.0 - version: 22.14.0 + specifier: ^22.15.23 + version: 22.15.23 '@types/prop-types': specifier: ^15.7.14 version: 15.7.14 @@ -240,20 +240,20 @@ importers: specifier: ^1.8.8 version: 1.8.8 '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.3.4(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^4.5.0 + version: 4.5.0(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) '@vitest/coverage-v8': - specifier: ^3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.1.4 + version: 3.1.4(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) jsdom: - specifier: ^26.0.0 - version: 26.0.0 + specifier: ^26.1.0 + version: 26.1.0 minimize-js: specifier: ^1.4.0 version: 1.4.0 msw: - specifier: ^2.7.3 - version: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) + specifier: ^2.8.5 + version: 2.8.5(@types/node@22.15.23)(typescript@5.8.3) react: specifier: ^19.0.0 version: 19.0.0 @@ -264,8 +264,8 @@ importers: specifier: ^19.0.0 version: 19.0.0(react@19.0.0) tsc-alias: - specifier: ^1.8.13 - version: 1.8.13 + specifier: ^1.8.16 + version: 1.8.16 tslib: specifier: ^2.8.1 version: 2.8.1 @@ -273,19 +273,19 @@ importers: specifier: ^5.8.3 version: 5.8.3 vite: - specifier: ^6.2.5 - version: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + specifier: ^6.3.5 + version: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.1.4 + version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages: - '@adyen/adyen-web@6.11.0': - resolution: {integrity: sha512-OSpTq+VN84hNPOV5RpHM8T4TYMgL8sMr0UDa+2yDeTEBTIlNdigCKgDWTXzOHIW/BuPWna4e9n1fuGYnCJgXlQ==} + '@adyen/adyen-web@6.15.0': + resolution: {integrity: sha512-Ormyln86jo365jIHEDyb1xZETLxqg/XD1/sYf0Kb1H+8XCzVURKYVhdBTxpc4l9B3gcHq43tiNhzwf9sL4nc6g==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} @@ -965,14 +965,18 @@ packages: resolution: {integrity: sha512-kk4VqN2iEOreXFq76YqTP83KhBs09Z5Ez9nZNlikXWf5DXzkrOfShqqEwq8ezHjSOlqs4xVyxgQzsEdPP35CeQ==} engines: {node: '>=18.0.0'} - '@commercelayer/organization-config@2.2.0': - resolution: {integrity: sha512-v7vfLru0WiqocrPWfldmqhbG6VKYQcdu480SUCU4wTnDcXLVnlKfgaadkNnv+tVVZXh0qke8/uwrkNoi3VY/Bw==} + '@commercelayer/organization-config@2.3.0': + resolution: {integrity: sha512-VVmp+HDBNYL0auAdxsMFWA2+ol9yX/QKPLKDK5VPiVF2CgdB6AK5m1ktHkeb1ztL+724zyK+LEg+bfmvTKn/WQ==} engines: {node: '>=18', pnpm: '>=7'} '@commercelayer/sdk@6.38.0': resolution: {integrity: sha512-fv6GrTFWkQJC4yb86Fix560+S/lKLegTEFpQNTsnNpE8JLkzF63B1dyCWpbGcOtsbCK37I/CXsQf6eof1R15qA==} engines: {node: '>=20'} + '@commercelayer/sdk@6.42.0': + resolution: {integrity: sha512-tZD1+dGT8SjKKMw6LVgzqZSIon1AsX5fdiiQpZi8zT/LAjtpkOpwz8aVnL0p7sqSlBNq55VVeDqYBwNB++DehA==} + engines: {node: '>=20'} + '@csstools/color-helpers@5.0.2': resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} @@ -1301,46 +1305,8 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.20.0': - resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.2.0': - resolution: {integrity: sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.24.0': - resolution: {integrity: sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.2.7': - resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@faker-js/faker@9.6.0': - resolution: {integrity: sha512-3vm4by+B5lvsFPSyep3ELWmZfE3kicDtmemVpuwl1yH7tqtnHdsA6hG8fbXedMVdkzgtvzWoRgjSB4Q+FHnZiw==} + '@faker-js/faker@9.8.0': + resolution: {integrity: sha512-U9wpuSrJC93jZBxx/Qq2wPjCuYISBueyVUGK7qqdmj7r/nxaxwW8AQDCLeRO7wZnjj94sh3p246cAYjUKuqgfg==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} '@fal-works/esbuild-plugin-global-externals@2.1.2': @@ -1511,6 +1477,10 @@ packages: resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} engines: {node: '>=18'} + '@mswjs/interceptors@0.38.7': + resolution: {integrity: sha512-Jkb27iSn7JPdkqlTqKfhncFfnEZsIJVYxsFbUSWEkxdIPdsyngrhoDBk0/BGD2FQcRH99vlRrkHpNTyKqI+0/w==} + engines: {node: '>=18'} + '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} @@ -1723,8 +1693,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.51.1': - resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==} + '@playwright/test@1.52.0': + resolution: {integrity: sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==} engines: {node: '>=18'} hasBin: true @@ -2137,6 +2107,9 @@ packages: '@radix-ui/rect@1.0.1': resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + '@rolldown/pluginutils@1.0.0-beta.9': + resolution: {integrity: sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==} + '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -2682,26 +2655,26 @@ packages: '@storybook/types@7.6.20': resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} - '@stripe/react-stripe-js@3.6.0': - resolution: {integrity: sha512-zEnaUmTOsu7zhl3RWbZ0l1dRiad+QIbcAYzQfF+yYelURJowhAwesRHKWH+qGAIBEpkO6/VCLFHhVLH9DtPlnw==} + '@stripe/react-stripe-js@3.7.0': + resolution: {integrity: sha512-PYls/2S9l0FF+2n0wHaEJsEU8x7CmBagiH7zYOsxbBlLIHEsqUIQ4MlIAbV9Zg6xwT8jlYdlRIyBTHmO3yM7kQ==} peerDependencies: '@stripe/stripe-js': '>=1.44.1 <8.0.0' react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@7.0.0': - resolution: {integrity: sha512-0AWkP+hoIXB5O34FGY7jh687ZPlOqLqMkJDkiSXcp4TaWWidnxjsZSp0xkjyAWbIz4+j1BFXDAK01Rqb7ceBRA==} + '@stripe/stripe-js@7.3.1': + resolution: {integrity: sha512-pTzb864TQWDRQBPLgSPFRoyjSDUqpCkbEgTzpsjiTjGz1Z5SxZNXJek28w1s6Dyry4CyW4/Izj5jHE/J9hCJYQ==} engines: {node: '>=12.16'} - '@tanstack/react-table@8.21.2': - resolution: {integrity: sha512-11tNlEDTdIhMJba2RBH+ecJ9l1zgS2kjmexDPAraulc8jeNA4xocSNeyzextT0XJyASil4XsCYlJmf5jEWAtYg==} + '@tanstack/react-table@8.21.3': + resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} engines: {node: '>=12'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - '@tanstack/table-core@8.21.2': - resolution: {integrity: sha512-uvXk/U4cBiFMxt+p9/G7yUWI/UbHYbyghLCjlpWZ3mLeIZiUBSKcUnw9UnKkdRz7Z/N4UBuFLWQdJCjUe7HjvA==} + '@tanstack/table-core@8.21.3': + resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} engines: {node: '>=12'} '@testing-library/dom@10.4.0': @@ -2858,6 +2831,9 @@ packages: '@types/lodash@4.17.16': resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} + '@types/lodash@4.17.17': + resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} + '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -2891,8 +2867,8 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - '@types/node@22.14.0': - resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} + '@types/node@22.15.23': + resolution: {integrity: sha512-7Ec1zaFPF4RJ0eXu1YT/xgiebqwqoJz8rYPDi/O2BcZ++Wpt0Kq9cl0eg6NN6bYbPnR67ZLo7St5Q3UK0SnARw==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3052,20 +3028,26 @@ packages: peerDependencies: vite: '>=4.5.2' - '@vitest/coverage-v8@3.1.1': - resolution: {integrity: sha512-MgV6D2dhpD6Hp/uroUoAIvFqA8AuvXEFBC2eepG3WFc1pxTfdk1LEqqkWoWhjz+rytoqrnUUCdf6Lzco3iHkLQ==} + '@vitejs/plugin-react@4.5.0': + resolution: {integrity: sha512-JuLWaEqypaJmOJPLWwO335Ig6jSgC1FTONCWAxnqcQthLTK/Yc9aH6hr9z/87xciejbQcnP3GnA1FWUSWeXaeg==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - '@vitest/browser': 3.1.1 - vitest: 3.1.1 + vite: '>=4.5.2' + + '@vitest/coverage-v8@3.1.4': + resolution: {integrity: sha512-G4p6OtioySL+hPV7Y6JHlhpsODbJzt1ndwHAFkyk6vVjpK03PFsKnauZIzcd0PrK4zAbc5lc+jeZ+eNGiMA+iw==} + peerDependencies: + '@vitest/browser': 3.1.4 + vitest: 3.1.4 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@3.1.1': - resolution: {integrity: sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==} + '@vitest/expect@3.1.4': + resolution: {integrity: sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==} - '@vitest/mocker@3.1.1': - resolution: {integrity: sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==} + '@vitest/mocker@3.1.4': + resolution: {integrity: sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==} peerDependencies: msw: ^2.4.9 vite: '>=5.1.7' @@ -3075,20 +3057,20 @@ packages: vite: optional: true - '@vitest/pretty-format@3.1.1': - resolution: {integrity: sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==} + '@vitest/pretty-format@3.1.4': + resolution: {integrity: sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==} - '@vitest/runner@3.1.1': - resolution: {integrity: sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==} + '@vitest/runner@3.1.4': + resolution: {integrity: sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==} - '@vitest/snapshot@3.1.1': - resolution: {integrity: sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==} + '@vitest/snapshot@3.1.4': + resolution: {integrity: sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==} - '@vitest/spy@3.1.1': - resolution: {integrity: sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==} + '@vitest/spy@3.1.4': + resolution: {integrity: sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==} - '@vitest/utils@3.1.1': - resolution: {integrity: sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==} + '@vitest/utils@3.1.4': + resolution: {integrity: sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3429,8 +3411,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - braintree-web@3.117.1: - resolution: {integrity: sha512-Jv4NO0s90VYpbKMVL7IMigCyWhi+BlCqxS6Ub7auk6Jd4MUPToygKO3ryvvYVMmasm7pEVKRIAH16UMVfcq4FA==} + braintree-web@3.120.0: + resolution: {integrity: sha512-iAQVpMllthfLdRXRl5gpsiKfNkhHw6EEfkNxwrdoikhs2iXRx7OQFY3VbJpUQUQjAmSV4ORsLwAwhaGw5qA88Q==} browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} @@ -4095,6 +4077,9 @@ packages: es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -4242,8 +4227,8 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - expect-type@1.2.0: - resolution: {integrity: sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==} + expect-type@1.2.1: + resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} exponential-backoff@3.1.2: @@ -4289,8 +4274,8 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + fdir@6.4.5: + resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -4504,6 +4489,9 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + giget@1.2.5: resolution: {integrity: sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==} hasBin: true @@ -5067,12 +5055,8 @@ packages: '@babel/preset-env': optional: true - jsdoc-type-pratt-parser@4.1.0: - resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} - engines: {node: '>=12.0.0'} - - jsdom@26.0.0: - resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} engines: {node: '>=18'} peerDependencies: canvas: ^3.0.0 @@ -5752,8 +5736,8 @@ packages: typescript: optional: true - msw@2.7.4: - resolution: {integrity: sha512-A2kuMopOjAjNEYkn0AnB1uj+x7oBjLIunFk7Ud4icEnVWFf6iBekn8oXW4zIwcpfEdWP9sLqyVaHVzneWoGEww==} + msw@2.8.5: + resolution: {integrity: sha512-uSp82wwBjOBV+VIt4rtUgwrbNFCobZICSd2iexS4IMIwFxDexSojiwnrZF3TK6yxxUt1PBHZdsfOwuI9JzWphA==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -6205,13 +6189,13 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.51.1: - resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} + playwright-core@1.52.0: + resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==} engines: {node: '>=18'} hasBin: true - playwright@1.51.1: - resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} + playwright@1.52.0: + resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==} engines: {node: '>=18'} hasBin: true @@ -6639,6 +6623,9 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve.exports@2.0.3: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} @@ -6906,8 +6893,8 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - std-env@3.8.1: - resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==} + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} @@ -7102,8 +7089,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} tinypool@1.0.2: @@ -7194,8 +7181,8 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - tsc-alias@1.8.13: - resolution: {integrity: sha512-hpuglrm2DoHZE62L8ntYqRNiSQ7J8kvIxEsajzY/QfGOm7EcdhgG5asqoWYi2E2KX0SqUuhOTnV8Ry8D/TnsEA==} + tsc-alias@1.8.16: + resolution: {integrity: sha512-QjCyu55NFyRSBAl6+MTFwplpFcnm2Pq01rR/uxfqJoLMm6X3O14KEGtaSDZpJYaE1bJBGDjD0eSuiIWPe2T58g==} engines: {node: '>=16.20.2'} hasBin: true @@ -7498,15 +7485,15 @@ packages: vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-node@3.1.1: - resolution: {integrity: sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==} + vite-node@3.1.4: + resolution: {integrity: sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: - vite: '>=4.5.2' + vite: '>=5.1.7' peerDependenciesMeta: vite: optional: true @@ -7551,8 +7538,48 @@ packages: yaml: optional: true - vitest@3.1.1: - resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} + vite@6.3.5: + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@3.1.4: + resolution: {integrity: sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7661,8 +7688,8 @@ packages: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.1 - '@vitest/ui': 3.1.1 + '@vitest/browser': 3.1.4 + '@vitest/ui': 3.1.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7899,7 +7926,7 @@ packages: snapshots: - '@adyen/adyen-web@6.11.0': + '@adyen/adyen-web@6.15.0': dependencies: '@types/applepayjs': 14.0.9 '@types/googlepay': 0.7.6 @@ -8733,12 +8760,14 @@ snapshots: '@commercelayer/js-auth@6.7.2': {} - '@commercelayer/organization-config@2.2.0': + '@commercelayer/organization-config@2.3.0': dependencies: merge-anything: 5.1.7 '@commercelayer/sdk@6.38.0': {} + '@commercelayer/sdk@6.42.0': {} + '@csstools/color-helpers@5.0.2': {} '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': @@ -8919,7 +8948,11 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.24.0)': + '@faker-js/faker@9.8.0': {} + + '@fal-works/esbuild-plugin-global-externals@2.1.2': {} + + '@floating-ui/core@1.6.9': dependencies: eslint: 9.24.0 eslint-visitor-keys: 3.4.3 @@ -8999,17 +9032,17 @@ snapshots: '@hutson/parse-repository-url@3.0.2': {} - '@inquirer/confirm@5.1.8(@types/node@22.14.0)': + '@inquirer/confirm@5.1.8(@types/node@22.15.23)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.14.0) - '@inquirer/type': 3.0.5(@types/node@22.14.0) + '@inquirer/core': 10.1.9(@types/node@22.15.23) + '@inquirer/type': 3.0.5(@types/node@22.15.23) optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 - '@inquirer/core@10.1.9(@types/node@22.14.0)': + '@inquirer/core@10.1.9(@types/node@22.15.23)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.14.0) + '@inquirer/type': 3.0.5(@types/node@22.15.23) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -9017,13 +9050,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.5(@types/node@22.14.0)': + '@inquirer/type@3.0.5(@types/node@22.15.23)': optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@isaacs/cliui@8.0.2': dependencies: @@ -9074,7 +9107,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -9083,17 +9116,17 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.3) - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.3 @@ -9130,7 +9163,7 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@lerna/create@8.2.1(encoding@0.1.13)(typescript@5.8.3)': + '@lerna/create@8.2.2(encoding@0.1.13)(typescript@5.8.3)': dependencies: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 @@ -9243,6 +9276,15 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + '@mswjs/interceptors@0.38.7': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + '@napi-rs/wasm-runtime@0.2.4': dependencies: '@emnapi/core': 1.3.1 @@ -9522,9 +9564,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.51.1': + '@playwright/test@1.52.0': dependencies: - playwright: 1.51.1 + playwright: 1.52.0 '@radix-ui/number@1.0.1': dependencies: @@ -9904,6 +9946,8 @@ snapshots: dependencies: '@babel/runtime': 7.26.10 + '@rolldown/pluginutils@1.0.0-beta.9': {} + '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 @@ -10323,7 +10367,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -10341,7 +10385,7 @@ snapshots: fs-extra: 11.3.0 magic-string: 0.30.17 rollup: 3.29.5 - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -10746,18 +10790,18 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) - '@vitejs/plugin-react': 3.1.0(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) + '@vitejs/plugin-react': 3.1.0(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -10891,22 +10935,22 @@ snapshots: '@types/express': 4.17.21 file-system-cache: 2.3.0 - '@stripe/react-stripe-js@3.6.0(@stripe/stripe-js@7.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@stripe/react-stripe-js@3.7.0(@stripe/stripe-js@7.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@stripe/stripe-js': 7.0.0 + '@stripe/stripe-js': 7.3.1 prop-types: 15.8.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@stripe/stripe-js@7.0.0': {} + '@stripe/stripe-js@7.3.1': {} - '@tanstack/react-table@8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/table-core': 8.21.2 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@tanstack/table-core': 8.21.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@tanstack/table-core@8.21.2': {} + '@tanstack/table-core@8.21.3': {} '@testing-library/dom@10.4.0': dependencies: @@ -10987,7 +11031,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/braintree-web@3.96.17': dependencies: @@ -10996,13 +11040,13 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/debug@4.1.12': dependencies: @@ -11036,7 +11080,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11053,13 +11097,13 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/googlepay@0.7.6': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/http-errors@2.0.4': {} @@ -11081,6 +11125,8 @@ snapshots: '@types/lodash@4.17.16': {} + '@types/lodash@4.17.17': {} + '@types/mdast@3.0.15': dependencies: '@types/unist': 2.0.11 @@ -11105,14 +11151,14 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 form-data: 4.0.2 '@types/node@18.19.80': dependencies: undici-types: 5.26.5 - '@types/node@22.14.0': + '@types/node@22.15.23': dependencies: undici-types: 6.21.0 @@ -11170,12 +11216,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.14.0 + '@types/node': 22.15.23 '@types/send': 0.17.4 '@types/statuses@2.0.5': {} @@ -11198,29 +11244,41 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitejs/plugin-react@3.1.0(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@4.5.0(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) + '@rolldown/pluginutils': 1.0.0-beta.9 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': + '@vitest/coverage-v8@3.1.4(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -11231,51 +11289,51 @@ snapshots: istanbul-reports: 3.1.7 magic-string: 0.30.17 magicast: 0.3.5 - std-env: 3.8.1 + std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/expect@3.1.1': + '@vitest/expect@3.1.4': dependencies: - '@vitest/spy': 3.1.1 - '@vitest/utils': 3.1.1 + '@vitest/spy': 3.1.4 + '@vitest/utils': 3.1.4 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.1.4(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@vitest/spy': 3.1.1 + '@vitest/spy': 3.1.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.3(@types/node@22.14.0)(typescript@5.8.3) - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + msw: 2.8.5(@types/node@22.15.23)(typescript@5.8.3) + vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) - '@vitest/pretty-format@3.1.1': + '@vitest/pretty-format@3.1.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.1.1': + '@vitest/runner@3.1.4': dependencies: - '@vitest/utils': 3.1.1 + '@vitest/utils': 3.1.4 pathe: 2.0.3 - '@vitest/snapshot@3.1.1': + '@vitest/snapshot@3.1.4': dependencies: - '@vitest/pretty-format': 3.1.1 + '@vitest/pretty-format': 3.1.4 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.1.1': + '@vitest/spy@3.1.4': dependencies: tinyspy: 3.0.2 - '@vitest/utils@3.1.1': + '@vitest/utils@3.1.4': dependencies: - '@vitest/pretty-format': 3.1.1 + '@vitest/pretty-format': 3.1.4 loupe: 3.1.3 tinyrainbow: 2.0.0 @@ -11655,7 +11713,7 @@ snapshots: dependencies: fill-range: 7.1.1 - braintree-web@3.117.1: + braintree-web@3.120.0: dependencies: '@braintree/asset-loader': 2.0.2 '@braintree/browser-detection': 2.0.2 @@ -12308,6 +12366,8 @@ snapshots: es-module-lexer@1.6.0: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -12536,7 +12596,7 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - expect-type@1.2.0: {} + expect-type@1.2.1: {} exponential-backoff@3.1.2: {} @@ -12621,7 +12681,7 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.3(picomatch@4.0.2): + fdir@6.4.5(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -12837,6 +12897,10 @@ snapshots: get-stream@6.0.1: {} + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + giget@1.2.5: dependencies: citty: 0.1.6 @@ -13354,7 +13418,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.14.0 + '@types/node': 22.15.23 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13369,14 +13433,14 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.14.0 + '@types/node': 22.15.23 jest-regex-util@29.6.3: {} jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.14.0 + '@types/node': 22.15.23 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13384,13 +13448,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -13439,14 +13503,11 @@ snapshots: transitivePeerDependencies: - supports-color - jsdoc-type-pratt-parser@4.1.0: {} - - jsdom@26.0.0: + jsdom@26.1.0: dependencies: cssstyle: 4.3.0 data-urls: 5.0.0 decimal.js: 10.5.0 - form-data: 4.0.2 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -13527,7 +13588,7 @@ snapshots: lerna@8.2.2(encoding@0.1.13): dependencies: - '@lerna/create': 8.2.1(encoding@0.1.13)(typescript@5.8.3) + '@lerna/create': 8.2.2(encoding@0.1.13)(typescript@5.8.3) '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 @@ -14534,12 +14595,12 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3): + msw@2.7.3(@types/node@22.15.23)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.14.0) + '@inquirer/confirm': 5.1.8(@types/node@22.15.23) '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -14559,6 +14620,31 @@ snapshots: transitivePeerDependencies: - '@types/node' + msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.1.8(@types/node@22.15.23) + '@mswjs/interceptors': 0.38.7 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + graphql: 16.10.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + strict-event-emitter: 0.5.1 + type-fest: 4.37.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - '@types/node' + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 @@ -15058,11 +15144,11 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - playwright-core@1.51.1: {} + playwright-core@1.52.0: {} - playwright@1.51.1: + playwright@1.52.0: dependencies: - playwright-core: 1.51.1 + playwright-core: 1.52.0 optionalDependencies: fsevents: 2.3.2 @@ -15517,6 +15603,8 @@ snapshots: resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve.exports@2.0.3: {} resolve@1.22.10: @@ -15828,7 +15916,7 @@ snapshots: statuses@2.0.1: {} - std-env@3.8.1: {} + std-env@3.9.0: {} stop-iteration-iterator@1.1.0: dependencies: @@ -16038,9 +16126,9 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.12: + tinyglobby@0.2.14: dependencies: - fdir: 6.4.3(picomatch@4.0.2) + fdir: 6.4.5(picomatch@4.0.2) picomatch: 4.0.2 tinypool@1.0.2: {} @@ -16108,10 +16196,11 @@ snapshots: ts-dedent@2.2.0: {} - tsc-alias@1.8.13: + tsc-alias@1.8.16: dependencies: chokidar: 3.6.0 commander: 9.5.0 + get-tsconfig: 4.10.1 globby: 11.1.0 mylas: 2.1.13 normalize-path: 3.0.0 @@ -16416,13 +16505,13 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-node@3.1.1(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0): + vite-node@3.1.4(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 - es-module-lexer: 1.6.0 + es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -16437,18 +16526,29 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)): + dependencies: + debug: 4.4.0 + globrex: 0.1.2 + tsconfck: 3.1.5(typescript@5.8.3) + optionalDependencies: + vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + - typescript + + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0): + vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 fdir: 6.4.3(picomatch@4.0.2) @@ -16457,37 +16557,52 @@ snapshots: rollup: 4.35.0 tinyglobby: 0.2.12 optionalDependencies: - '@types/node': 22.14.0 + '@types/node': 22.15.23 + fsevents: 2.3.3 + terser: 5.39.0 + yaml: 2.7.0 + + vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0): + dependencies: + esbuild: 0.25.1 + fdir: 6.4.5(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.35.0 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 22.15.23 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.14.0)(jsdom@26.0.0)(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): + vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): dependencies: - '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(msw@2.7.3(@types/node@22.14.0)(typescript@5.8.3))(vite@6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.1.1 - '@vitest/runner': 3.1.1 - '@vitest/snapshot': 3.1.1 - '@vitest/spy': 3.1.1 - '@vitest/utils': 3.1.1 + '@vitest/expect': 3.1.4 + '@vitest/mocker': 3.1.4(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.1.4 + '@vitest/runner': 3.1.4 + '@vitest/snapshot': 3.1.4 + '@vitest/spy': 3.1.4 + '@vitest/utils': 3.1.4 chai: 5.2.0 debug: 4.4.0 - expect-type: 1.2.0 + expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 - std-env: 3.8.1 + std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 + tinyglobby: 0.2.14 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.5(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.1.1(@types/node@22.14.0)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.1.4(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.14.0 - jsdom: 26.0.0 + '@types/node': 22.15.23 + jsdom: 26.1.0 transitivePeerDependencies: - jiti - less From 62213fa50e426ce3b2e092798b54c90eb59eb189 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 29 May 2025 20:21:16 +0200 Subject: [PATCH 039/165] v4.23.4-beta.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 346b770e..483c813f 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.3", + "version": "4.23.4-beta.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index c05547a5..64a5bce0 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.3", + "version": "4.23.4-beta.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 06a7fea5fd5df7ee9b99fed477056421c576013b Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 3 Jun 2025 09:56:40 +0200 Subject: [PATCH 040/165] v4.23.4 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 483c813f..0de53e4f 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.4-beta.0", + "version": "4.23.4", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 64a5bce0..558c8afd 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.4-beta.0", + "version": "4.23.4", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From f048647b1f268c0afcb897913b0fe03fb19fc982 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 30 May 2025 18:11:22 +0200 Subject: [PATCH 041/165] Add Adyen subscriptions --- .../src/components/payment_source/AdyenPayment.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react-components/src/components/payment_source/AdyenPayment.tsx b/packages/react-components/src/components/payment_source/AdyenPayment.tsx index 862ea116..b85a9208 100644 --- a/packages/react-components/src/components/payment_source/AdyenPayment.tsx +++ b/packages/react-components/src/components/payment_source/AdyenPayment.tsx @@ -30,6 +30,7 @@ import PlaceOrderContext from "#context/PlaceOrderContext" import OrderContext from "#context/OrderContext" import { getPublicIP } from "#utils/getPublicIp" import CustomerContext from "#context/CustomerContext" +import { hasSubscriptions } from "#utils/hasSubscriptions" interface PaymentMethodsStyle { card?: CardConfiguration["styles"] @@ -227,6 +228,10 @@ export function AdyenPayment({ message?: string } > => { + let recurringProcessingModel = "CardOnFile" + if (order && hasSubscriptions(order)) { + recurringProcessingModel = "Subscription" + } const url = cleanUrlBy() const { type: currentPaymentMethodType } = state.data.paymentMethod const shopperIp = await getPublicIP() @@ -256,7 +261,7 @@ export function AdyenPayment({ redirect_from_issuer_method: "GET", shopper_ip: shopperIp, shopperInteraction: "Ecommerce", - recurringProcessingModel: "CardOnFile", + recurringProcessingModel, browser_info: { ...browserInfo(), }, From dbd286ab17451956cf1281a7a856a0ac0d3b4409 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 4 Jun 2025 12:10:16 +0200 Subject: [PATCH 042/165] Hide customer payments when the order contains a subscription --- packages/react-components/package.json | 12 +- .../payment_gateways/AdyenGateway.tsx | 56 +-- .../payment_source/AdyenPayment.tsx | 13 +- pnpm-lock.yaml | 344 ++++++++++-------- 4 files changed, 234 insertions(+), 191 deletions(-) diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 558c8afd..ab6d956f 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -164,7 +164,7 @@ "@stripe/stripe-js": "^7.3.1", "@tanstack/react-table": "^8.21.3", "@types/iframe-resizer": "^3.5.13", - "braintree-web": "^3.120.0", + "braintree-web": "^3.120.2", "frames-react": "^1.2.2", "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", @@ -179,16 +179,16 @@ "@testing-library/react": "^16.3.0", "@types/braintree-web": "^3.96.17", "@types/lodash": "^4.17.17", - "@types/node": "^22.15.23", + "@types/node": "^22.15.29", "@types/prop-types": "^15.7.14", "@types/react": "^19.0.12", "@types/react-test-renderer": "^19.0.0", "@types/react-window": "^1.8.8", - "@vitejs/plugin-react": "^4.5.0", - "@vitest/coverage-v8": "^3.1.4", + "@vitejs/plugin-react": "^4.5.1", + "@vitest/coverage-v8": "^3.2.1", "jsdom": "^26.1.0", "minimize-js": "^1.4.0", - "msw": "^2.8.5", + "msw": "^2.9.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-test-renderer": "^18.3.1", @@ -197,7 +197,7 @@ "typescript": "^5.8.3", "vite": "^6.3.5", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.1.4" + "vitest": "^3.2.1" }, "peerDependencies": { "react": ">=18.0.0" diff --git a/packages/react-components/src/components/payment_gateways/AdyenGateway.tsx b/packages/react-components/src/components/payment_gateways/AdyenGateway.tsx index 8003ece9..ac99fcd5 100644 --- a/packages/react-components/src/components/payment_gateways/AdyenGateway.tsx +++ b/packages/react-components/src/components/payment_gateways/AdyenGateway.tsx @@ -1,19 +1,20 @@ -import type { GatewayBaseType } from '#components/payment_gateways/PaymentGateway' -import CommerceLayerContext from '#context/CommerceLayerContext' -import CustomerContext from '#context/CustomerContext' -import OrderContext from '#context/OrderContext' -import PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext' -import PaymentMethodContext from '#context/PaymentMethodContext' -import PaymentSourceContext from '#context/PaymentSourceContext' -import type { PaymentResource } from '#reducers/PaymentMethodReducer' -import type { StripeElementLocale } from '@stripe/stripe-js' -import isEmpty from 'lodash/isEmpty' -import { useContext, type JSX } from 'react' -import AdyenPayment from '#components/payment_source/AdyenPayment' -import PaymentCardsTemplate from '../utils/PaymentCardsTemplate' -import { jwt } from '#utils/jwt' -import getCardDetails from '#utils/getCardDetails' -import { getPaymentAttributes } from '#utils/getPaymentAttributes' +import type { GatewayBaseType } from "#components/payment_gateways/PaymentGateway" +import CommerceLayerContext from "#context/CommerceLayerContext" +import CustomerContext from "#context/CustomerContext" +import OrderContext from "#context/OrderContext" +import PaymentMethodChildrenContext from "#context/PaymentMethodChildrenContext" +import PaymentMethodContext from "#context/PaymentMethodContext" +import PaymentSourceContext from "#context/PaymentSourceContext" +import type { PaymentResource } from "#reducers/PaymentMethodReducer" +import type { StripeElementLocale } from "@stripe/stripe-js" +import isEmpty from "lodash/isEmpty" +import { useContext, type JSX } from "react" +import AdyenPayment from "#components/payment_source/AdyenPayment" +import PaymentCardsTemplate from "../utils/PaymentCardsTemplate" +import { jwt } from "#utils/jwt" +import getCardDetails from "#utils/getCardDetails" +import { getPaymentAttributes } from "#utils/getPaymentAttributes" +import { hasSubscriptions } from "#utils/hasSubscriptions" type Props = GatewayBaseType @@ -35,23 +36,23 @@ export function AdyenGateway(props: Props): JSX.Element | null { const { payments, isGuest } = useContext(CustomerContext) const { currentPaymentMethodId, config, paymentSource } = useContext(PaymentMethodContext) - const paymentResource: PaymentResource = 'adyen_payments' + const paymentResource: PaymentResource = "adyen_payments" const locale = order?.language_code as StripeElementLocale if (!readonly && payment?.id !== currentPaymentMethodId) return null // @ts-expect-error no type const clientKey = paymentSource?.public_key - const environment = accessToken && jwt(accessToken).test ? 'test' : 'live' + const environment = accessToken && jwt(accessToken).test ? "test" : "live" const adyenConfig = getPaymentAttributes({ resource: paymentResource, config: config ?? {}, - keys: ['adyen_payments'] + keys: ["adyen_payments"], }) const paymentConfig = adyenConfig?.adyenPayment - const customerPayments = + let customerPayments = !isEmpty(payments) && payments ? payments.filter((customerPayment) => { return ( - customerPayment.payment_source?.type === 'adyen_payments' || + customerPayment.payment_source?.type === "adyen_payments" || customerPayment.payment_method != null ) }) @@ -59,9 +60,9 @@ export function AdyenGateway(props: Props): JSX.Element | null { if (readonly || showCard) { const card = getCardDetails({ customerPayment: { - payment_source: paymentSource + payment_source: paymentSource, }, - paymentType: paymentResource + paymentType: paymentResource, }) const value = { ...card, showCard, handleEditClick, readonly } return isEmpty(card) ? null : ( @@ -70,11 +71,18 @@ export function AdyenGateway(props: Props): JSX.Element | null { ) } - const hasStoredPaymentMethods = + let hasStoredPaymentMethods = // @ts-expect-error missing type paymentSource?.payment_methods?.storedPaymentMethods != null && // @ts-expect-error missing type paymentSource?.payment_methods?.storedPaymentMethods.length > 0 + if (order && hasSubscriptions(order)) { + /** + * When the order has subscriptions, we do not show stored payment methods + */ + hasStoredPaymentMethods = false + customerPayments = [] + } if (!isGuest && templateCustomerCards) { return ( <> diff --git a/packages/react-components/src/components/payment_source/AdyenPayment.tsx b/packages/react-components/src/components/payment_source/AdyenPayment.tsx index b85a9208..3eae33ce 100644 --- a/packages/react-components/src/components/payment_source/AdyenPayment.tsx +++ b/packages/react-components/src/components/payment_source/AdyenPayment.tsx @@ -228,10 +228,6 @@ export function AdyenPayment({ message?: string } > => { - let recurringProcessingModel = "CardOnFile" - if (order && hasSubscriptions(order)) { - recurringProcessingModel = "Subscription" - } const url = cleanUrlBy() const { type: currentPaymentMethodType } = state.data.paymentMethod const shopperIp = await getPublicIP() @@ -261,7 +257,6 @@ export function AdyenPayment({ redirect_from_issuer_method: "GET", shopper_ip: shopperIp, shopperInteraction: "Ecommerce", - recurringProcessingModel, browser_info: { ...browserInfo(), }, @@ -459,7 +454,7 @@ export function AdyenPayment({ } } - // biome-ignore lint/correctness/useExhaustiveDependencies: + // biome-ignore lint/correctness/useExhaustiveDependencies: Infite loop useEffect(() => { const paymentMethodsResponse = { // @ts-expect-error no type @@ -478,10 +473,12 @@ export function AdyenPayment({ "Payment methods are not available. Please, check your Adyen configuration.", ) } - const showStoredPaymentMethods = + let showStoredPaymentMethods = // @ts-expect-error no type paymentSource?.payment_methods?.storedPaymentMethods != null ?? false - + if (order && hasSubscriptions(order)) { + showStoredPaymentMethods = false + } const options = { locale: order?.language_code ?? locale, environment, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bed94176..ea194b4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@storybook/react-vite': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -123,7 +123,7 @@ importers: version: 18.3.18 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) babel-loader: specifier: ^9.2.1 version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)) @@ -135,7 +135,7 @@ importers: version: 4.0.0 msw: specifier: ^2.7.0 - version: 2.7.3(@types/node@22.15.23)(typescript@5.8.3) + version: 2.7.3(@types/node@22.15.29)(typescript@5.8.3) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -156,10 +156,10 @@ importers: version: 5.8.3 vite: specifier: ^6.1.0 - version: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + version: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: @@ -185,8 +185,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 braintree-web: - specifier: ^3.120.0 - version: 3.120.0 + specifier: ^3.120.2 + version: 3.120.2 frames-react: specifier: ^1.2.2 version: 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3) @@ -225,8 +225,8 @@ importers: specifier: ^4.17.17 version: 4.17.17 '@types/node': - specifier: ^22.15.23 - version: 22.15.23 + specifier: ^22.15.29 + version: 22.15.29 '@types/prop-types': specifier: ^15.7.14 version: 15.7.14 @@ -240,11 +240,11 @@ importers: specifier: ^1.8.8 version: 1.8.8 '@vitejs/plugin-react': - specifier: ^4.5.0 - version: 4.5.0(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^4.5.1 + version: 4.5.1(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) '@vitest/coverage-v8': - specifier: ^3.1.4 - version: 3.1.4(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.2.1 + version: 3.2.1(vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) jsdom: specifier: ^26.1.0 version: 26.1.0 @@ -252,8 +252,8 @@ importers: specifier: ^1.4.0 version: 1.4.0 msw: - specifier: ^2.8.5 - version: 2.8.5(@types/node@22.15.23)(typescript@5.8.3) + specifier: ^2.9.0 + version: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) react: specifier: ^19.0.0 version: 19.0.0 @@ -274,13 +274,13 @@ importers: version: 5.8.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + version: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.1.4 - version: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.2.1 + version: 3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages: @@ -2747,6 +2747,9 @@ packages: '@types/braintree-web@3.96.17': resolution: {integrity: sha512-l+ujTICdA34gxov4AAsJLONNvYKbMyOYBnDU8syBhosCp/3IW2bJuZQEmUuOrliYeMmFm20ltQO9VHsRb8066g==} + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -2759,6 +2762,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/detect-port@1.3.5': resolution: {integrity: sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==} @@ -2867,8 +2873,8 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - '@types/node@22.15.23': - resolution: {integrity: sha512-7Ec1zaFPF4RJ0eXu1YT/xgiebqwqoJz8rYPDi/O2BcZ++Wpt0Kq9cl0eg6NN6bYbPnR67ZLo7St5Q3UK0SnARw==} + '@types/node@22.15.29': + resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3028,26 +3034,26 @@ packages: peerDependencies: vite: '>=4.5.2' - '@vitejs/plugin-react@4.5.0': - resolution: {integrity: sha512-JuLWaEqypaJmOJPLWwO335Ig6jSgC1FTONCWAxnqcQthLTK/Yc9aH6hr9z/87xciejbQcnP3GnA1FWUSWeXaeg==} + '@vitejs/plugin-react@4.5.1': + resolution: {integrity: sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: '>=4.5.2' - '@vitest/coverage-v8@3.1.4': - resolution: {integrity: sha512-G4p6OtioySL+hPV7Y6JHlhpsODbJzt1ndwHAFkyk6vVjpK03PFsKnauZIzcd0PrK4zAbc5lc+jeZ+eNGiMA+iw==} + '@vitest/coverage-v8@3.2.1': + resolution: {integrity: sha512-6dy0uF/0BE3jpUW9bFzg0V2S4F7XVaZHL/7qma1XANvHPQGoJuc3wtx911zSoAgUnpfvcLVK1vancNJ95d+uxQ==} peerDependencies: - '@vitest/browser': 3.1.4 - vitest: 3.1.4 + '@vitest/browser': 3.2.1 + vitest: 3.2.1 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@3.1.4': - resolution: {integrity: sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==} + '@vitest/expect@3.2.1': + resolution: {integrity: sha512-FqS/BnDOzV6+IpxrTg5GQRyLOCtcJqkwMwcS8qGCI2IyRVDwPAtutztaf1CjtPHlZlWtl1yUPCd7HM0cNiDOYw==} - '@vitest/mocker@3.1.4': - resolution: {integrity: sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==} + '@vitest/mocker@3.2.1': + resolution: {integrity: sha512-OXxMJnx1lkB+Vl65Re5BrsZEHc90s5NMjD23ZQ9NlU7f7nZiETGoX4NeKZSmsKjseuMq2uOYXdLOeoM0pJU+qw==} peerDependencies: msw: ^2.4.9 vite: '>=5.1.7' @@ -3057,20 +3063,20 @@ packages: vite: optional: true - '@vitest/pretty-format@3.1.4': - resolution: {integrity: sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==} + '@vitest/pretty-format@3.2.1': + resolution: {integrity: sha512-xBh1X2GPlOGBupp6E1RcUQWIxw0w/hRLd3XyBS6H+dMdKTAqHDNsIR2AnJwPA3yYe9DFy3VUKTe3VRTrAiQ01g==} - '@vitest/runner@3.1.4': - resolution: {integrity: sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==} + '@vitest/runner@3.2.1': + resolution: {integrity: sha512-kygXhNTu/wkMYbwYpS3z/9tBe0O8qpdBuC3dD/AW9sWa0LE/DAZEjnHtWA9sIad7lpD4nFW1yQ+zN7mEKNH3yA==} - '@vitest/snapshot@3.1.4': - resolution: {integrity: sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==} + '@vitest/snapshot@3.2.1': + resolution: {integrity: sha512-5xko/ZpW2Yc65NVK9Gpfg2y4BFvcF+At7yRT5AHUpTg9JvZ4xZoyuRY4ASlmNcBZjMslV08VRLDrBOmUe2YX3g==} - '@vitest/spy@3.1.4': - resolution: {integrity: sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==} + '@vitest/spy@3.2.1': + resolution: {integrity: sha512-Nbfib34Z2rfcJGSetMxjDCznn4pCYPZOtQYox2kzebIJcgH75yheIKd5QYSFmR8DIZf2M8fwOm66qSDIfRFFfQ==} - '@vitest/utils@3.1.4': - resolution: {integrity: sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==} + '@vitest/utils@3.2.1': + resolution: {integrity: sha512-KkHlGhePEKZSub5ViknBcN5KEF+u7dSUr9NW8QsVICusUojrgrOnnY3DEWWO877ax2Pyopuk2qHmt+gkNKnBVw==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3315,6 +3321,9 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + ast-v8-to-istanbul@0.3.3: + resolution: {integrity: sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==} + async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} @@ -3411,8 +3420,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - braintree-web@3.120.0: - resolution: {integrity: sha512-iAQVpMllthfLdRXRl5gpsiKfNkhHw6EEfkNxwrdoikhs2iXRx7OQFY3VbJpUQUQjAmSV4ORsLwAwhaGw5qA88Q==} + braintree-web@3.120.2: + resolution: {integrity: sha512-GdA495PforvIDABd2OSRp1tXWiY2C/1GoD7bSV0yNHvzYbFL4JEWHcZay2/r1QKfcaTsPiP3EQ6YBKu2dW4j9g==} browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} @@ -3831,6 +3840,15 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -4074,9 +4092,6 @@ packages: es-module-lexer@0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - es-module-lexer@1.6.0: - resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} - es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -5035,6 +5050,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -5736,8 +5754,8 @@ packages: typescript: optional: true - msw@2.8.5: - resolution: {integrity: sha512-uSp82wwBjOBV+VIt4rtUgwrbNFCobZICSd2iexS4IMIwFxDexSojiwnrZF3TK6yxxUt1PBHZdsfOwuI9JzWphA==} + msw@2.9.0: + resolution: {integrity: sha512-fNyrJ11YNbe2zl64EwtxM5OFkInFPAw5vipOljMsf9lY2ep9B2BslqQrS8EC9pB9961K61FqTUi0wsdqk6hwow==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7093,8 +7111,8 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + tinypool@1.1.0: + resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: @@ -7105,8 +7123,8 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + tinyspy@4.0.3: + resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} engines: {node: '>=14.0.0'} tldts-core@6.1.84: @@ -7485,8 +7503,8 @@ packages: vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-node@3.1.4: - resolution: {integrity: sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==} + vite-node@3.2.1: + resolution: {integrity: sha512-V4EyKQPxquurNJPtQJRZo8hKOoKNBRIhxcDbQFPFig0JdoWcUhwRgK8yoCXXrfYVPKS6XwirGHPszLnR8FbjCA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -7578,8 +7596,8 @@ packages: yaml: optional: true - vitest@3.1.4: - resolution: {integrity: sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==} + vitest@3.2.1: + resolution: {integrity: sha512-VZ40MBnlE1/V5uTgdqY3DmjUgZtIzsYq758JGlyQrv5syIsaYcabkfPkEuWML49Ph0D/SoqpVFd0dyVTr551oA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7688,8 +7706,8 @@ packages: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.4 - '@vitest/ui': 3.1.4 + '@vitest/browser': 3.2.1 + '@vitest/ui': 3.2.1 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -9032,17 +9050,17 @@ snapshots: '@hutson/parse-repository-url@3.0.2': {} - '@inquirer/confirm@5.1.8(@types/node@22.15.23)': + '@inquirer/confirm@5.1.8(@types/node@22.15.29)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.15.23) - '@inquirer/type': 3.0.5(@types/node@22.15.23) + '@inquirer/core': 10.1.9(@types/node@22.15.29) + '@inquirer/type': 3.0.5(@types/node@22.15.29) optionalDependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 - '@inquirer/core@10.1.9(@types/node@22.15.23)': + '@inquirer/core@10.1.9(@types/node@22.15.29)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.15.23) + '@inquirer/type': 3.0.5(@types/node@22.15.29) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -9050,13 +9068,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.5(@types/node@22.15.23)': + '@inquirer/type@3.0.5(@types/node@22.15.29)': optionalDependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@isaacs/cliui@8.0.2': dependencies: @@ -9107,7 +9125,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -9116,17 +9134,17 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.3) - vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.3 @@ -10367,7 +10385,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -10385,7 +10403,7 @@ snapshots: fs-extra: 11.3.0 magic-string: 0.30.17 rollup: 3.29.5 - vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -10790,18 +10808,18 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) - '@vitejs/plugin-react': 3.1.0(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) + '@vitejs/plugin-react': 3.1.0(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) - vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -11031,27 +11049,33 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/braintree-web@3.96.17': dependencies: '@types/googlepay': 0.7.6 '@types/paypal-checkout-components': 4.0.8 + '@types/chai@5.2.2': + dependencies: + '@types/deep-eql': 4.0.2 + '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 + '@types/deep-eql@4.0.2': {} + '@types/detect-port@1.3.5': {} '@types/doctrine@0.0.3': {} @@ -11080,7 +11104,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11097,13 +11121,13 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/googlepay@0.7.6': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/http-errors@2.0.4': {} @@ -11151,14 +11175,14 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 form-data: 4.0.2 '@types/node@18.19.80': dependencies: undici-types: 5.26.5 - '@types/node@22.15.23': + '@types/node@22.15.29': dependencies: undici-types: 6.21.0 @@ -11216,12 +11240,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.15.23 + '@types/node': 22.15.29 '@types/send': 0.17.4 '@types/statuses@2.0.5': {} @@ -11244,29 +11268,29 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitejs/plugin-react@3.1.0(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.5.0(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.5.1(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) @@ -11274,15 +11298,16 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.9 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.4(vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': + '@vitest/coverage-v8@3.2.1(vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0 + ast-v8-to-istanbul: 0.3.3 + debug: 4.4.1 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -11292,48 +11317,49 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + vitest: 3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/expect@3.1.4': + '@vitest/expect@3.2.1': dependencies: - '@vitest/spy': 3.1.4 - '@vitest/utils': 3.1.4 + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.1 + '@vitest/utils': 3.2.1 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.4(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.2.1(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@vitest/spy': 3.1.4 + '@vitest/spy': 3.2.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.8.5(@types/node@22.15.23)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + msw: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) + vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) - '@vitest/pretty-format@3.1.4': + '@vitest/pretty-format@3.2.1': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.1.4': + '@vitest/runner@3.2.1': dependencies: - '@vitest/utils': 3.1.4 + '@vitest/utils': 3.2.1 pathe: 2.0.3 - '@vitest/snapshot@3.1.4': + '@vitest/snapshot@3.2.1': dependencies: - '@vitest/pretty-format': 3.1.4 + '@vitest/pretty-format': 3.2.1 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.1.4': + '@vitest/spy@3.2.1': dependencies: - tinyspy: 3.0.2 + tinyspy: 4.0.3 - '@vitest/utils@3.1.4': + '@vitest/utils@3.2.1': dependencies: - '@vitest/pretty-format': 3.1.4 + '@vitest/pretty-format': 3.2.1 loupe: 3.1.3 tinyrainbow: 2.0.0 @@ -11587,6 +11613,12 @@ snapshots: dependencies: tslib: 2.8.1 + ast-v8-to-istanbul@0.3.3: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + estree-walker: 3.0.3 + js-tokens: 9.0.1 + async-limiter@1.0.1: {} async@3.2.6: {} @@ -11713,7 +11745,7 @@ snapshots: dependencies: fill-range: 7.1.1 - braintree-web@3.120.0: + braintree-web@3.120.2: dependencies: '@braintree/asset-loader': 2.0.2 '@braintree/browser-detection': 2.0.2 @@ -12135,6 +12167,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.1: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -12364,8 +12400,6 @@ snapshots: es-module-lexer@0.9.3: {} - es-module-lexer@1.6.0: {} - es-module-lexer@1.7.0: {} es-object-atoms@1.1.1: @@ -13382,7 +13416,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.0 + debug: 4.4.1 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -13418,7 +13452,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.23 + '@types/node': 22.15.29 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13433,14 +13467,14 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.15.23 + '@types/node': 22.15.29 jest-regex-util@29.6.3: {} jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.23 + '@types/node': 22.15.29 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13448,13 +13482,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -13465,6 +13499,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -14595,12 +14631,12 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@22.15.23)(typescript@5.8.3): + msw@2.7.3(@types/node@22.15.29)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.15.23) + '@inquirer/confirm': 5.1.8(@types/node@22.15.29) '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -14620,12 +14656,12 @@ snapshots: transitivePeerDependencies: - '@types/node' - msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3): + msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.15.23) + '@inquirer/confirm': 5.1.8(@types/node@22.15.29) '@mswjs/interceptors': 0.38.7 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -16131,13 +16167,13 @@ snapshots: fdir: 6.4.5(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.2: {} + tinypool@1.1.0: {} tinyrainbow@1.2.0: {} tinyrainbow@2.0.0: {} - tinyspy@3.0.2: {} + tinyspy@4.0.3: {} tldts-core@6.1.84: {} @@ -16505,13 +16541,13 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-node@3.1.4(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0): + vite-node@3.2.1(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 - debug: 4.4.0 + debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -16526,29 +16562,29 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.2.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0): + vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 fdir: 6.4.3(picomatch@4.0.2) @@ -16557,12 +16593,12 @@ snapshots: rollup: 4.35.0 tinyglobby: 0.2.12 optionalDependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0): + vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 fdir: 6.4.5(picomatch@4.0.2) @@ -16571,37 +16607,39 @@ snapshots: rollup: 4.35.0 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.15.23 + '@types/node': 22.15.29 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vitest@3.1.4(@types/debug@4.1.12)(@types/node@22.15.23)(jsdom@26.1.0)(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): + vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): dependencies: - '@vitest/expect': 3.1.4 - '@vitest/mocker': 3.1.4(msw@2.8.5(@types/node@22.15.23)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.1.4 - '@vitest/runner': 3.1.4 - '@vitest/snapshot': 3.1.4 - '@vitest/spy': 3.1.4 - '@vitest/utils': 3.1.4 + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.1 + '@vitest/mocker': 3.2.1(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.2.1 + '@vitest/runner': 3.2.1 + '@vitest/snapshot': 3.2.1 + '@vitest/spy': 3.2.1 + '@vitest/utils': 3.2.1 chai: 5.2.0 - debug: 4.4.0 + debug: 4.4.1 expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 + picomatch: 4.0.2 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.14 - tinypool: 1.0.2 + tinypool: 1.1.0 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.1.4(@types/node@22.15.23)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.2.1(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.23 + '@types/node': 22.15.29 jsdom: 26.1.0 transitivePeerDependencies: - jiti @@ -16657,7 +16695,7 @@ snapshots: browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.1 - es-module-lexer: 1.6.0 + es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 From 7580749ef3d63ae4a490028590a9b78e166d44f8 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 4 Jun 2025 12:12:26 +0200 Subject: [PATCH 043/165] v4.24.0-beta.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 0de53e4f..18ba4053 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.23.4", + "version": "4.24.0-beta.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index ab6d956f..161aeeda 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.23.4", + "version": "4.24.0-beta.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From a44e05a7a48ee2979c7584d4d3a97975ceaf1b43 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 5 Jun 2025 11:52:39 +0200 Subject: [PATCH 044/165] Reset Adyen stored payments when the order has a subscription --- .../src/components/payment_source/AdyenPayment.tsx | 8 ++++++++ .../components/payment_source/CheckoutComPayment.tsx | 12 ++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/react-components/src/components/payment_source/AdyenPayment.tsx b/packages/react-components/src/components/payment_source/AdyenPayment.tsx index 3eae33ce..5502f14d 100644 --- a/packages/react-components/src/components/payment_source/AdyenPayment.tsx +++ b/packages/react-components/src/components/payment_source/AdyenPayment.tsx @@ -477,7 +477,15 @@ export function AdyenPayment({ // @ts-expect-error no type paymentSource?.payment_methods?.storedPaymentMethods != null ?? false if (order && hasSubscriptions(order)) { + /** + * If the order has subscriptions, we don't show stored payment methods + */ showStoredPaymentMethods = false + /** + * Need to reset stored payment methods + * to avoid showing them when the order has subscriptions + */ + paymentMethodsResponse.storedPaymentMethods = [] } const options = { locale: order?.language_code ?? locale, diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 6e3a76d7..0fabfb02 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -209,12 +209,12 @@ export function CheckoutComPayment({ // console.log("paymentSource", { paymentSource }) // }, } satisfies CheckoutWebComponent) - // const flowComponent = checkout.create("flow") - const flowComponent = checkout.create("card") - if (await flowComponent.isAvailable()) { - flowComponent.mount(document.getElementById("flow-container")) - } - // flowComponent.mount(document.getElementById("flow-container")) + const flowComponent = checkout.create("flow") + // const flowComponent = checkout.create("card") + // if (await flowComponent.isAvailable()) { + // flowComponent.mount(document.getElementById("flow-container")) + // } + flowComponent.mount(document.getElementById("flow-container")) } loadFlow() } From 02a11dd7160ab75d93dd268af6fa7684ea859d2a Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 5 Jun 2025 11:53:03 +0200 Subject: [PATCH 045/165] v4.24.0-beta.1 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 18ba4053..cfa06e78 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.0-beta.0", + "version": "4.24.0-beta.1", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 161aeeda..43469762 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.0-beta.0", + "version": "4.24.0-beta.1", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From dbb3ab9aff4442bcd8e162ac15d06282d1868b3f Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 5 Jun 2025 17:07:15 +0200 Subject: [PATCH 046/165] Add subscriptionPaymentMethods prop to filter available payment methods when there is a subscription order --- .../payment_source/AdyenPayment.tsx | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/packages/react-components/src/components/payment_source/AdyenPayment.tsx b/packages/react-components/src/components/payment_source/AdyenPayment.tsx index 5502f14d..0069f22e 100644 --- a/packages/react-components/src/components/payment_source/AdyenPayment.tsx +++ b/packages/react-components/src/components/payment_source/AdyenPayment.tsx @@ -37,10 +37,26 @@ interface PaymentMethodsStyle { paypal?: PayPalConfiguration["style"] } +type PaymentMethodType = + | "scheme" + | "giftcard" + | "paypal" + | "applepay" + | "googlepay" + | (string & {}) + /** * Configuration options for the Adyen payment component. */ export interface AdyenPaymentConfig { + /** + * Payment methods to be used for subscriptions. + * This is an array of payment method types that are supported for subscription payments. + * For example, it can include "scheme" for card payments. + * @default all available payment methods + * @example ["scheme"] + */ + subscriptionPaymentMethods?: PaymentMethodType[] /** * Optional CSS class name for the card container. */ @@ -115,6 +131,7 @@ export function AdyenPayment({ giftcardErrorComponent, onReady, onSelect, + subscriptionPaymentMethods, } = { ...defaultConfig, ...config, @@ -486,6 +503,18 @@ export function AdyenPayment({ * to avoid showing them when the order has subscriptions */ paymentMethodsResponse.storedPaymentMethods = [] + /** + * Remove scheme payment methods + * because they are not supported in subscriptions + */ + paymentMethodsResponse.paymentMethods = + subscriptionPaymentMethods != null && + subscriptionPaymentMethods.length > 0 + ? paymentMethodsResponse.paymentMethods.filter( + (pm: { type: "scheme" }) => + subscriptionPaymentMethods.includes(pm.type), + ) + : paymentMethodsResponse.paymentMethods } const options = { locale: order?.language_code ?? locale, From d654632d76218dee2a51b5c3d07be0728b8e34f1 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 5 Jun 2025 17:12:02 +0200 Subject: [PATCH 047/165] v4.24.0-beta.2 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index cfa06e78..b1bafd69 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.0-beta.1", + "version": "4.24.0-beta.2", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 43469762..eab01851 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.0-beta.1", + "version": "4.24.0-beta.2", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 0463c174916f6a74df9fc1e05b055880b8ccc5e4 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 6 Jun 2025 11:18:20 +0200 Subject: [PATCH 048/165] Fix types --- .../src/components/payment_source/AdyenPayment.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-components/src/components/payment_source/AdyenPayment.tsx b/packages/react-components/src/components/payment_source/AdyenPayment.tsx index 0069f22e..8cc9af3c 100644 --- a/packages/react-components/src/components/payment_source/AdyenPayment.tsx +++ b/packages/react-components/src/components/payment_source/AdyenPayment.tsx @@ -471,7 +471,7 @@ export function AdyenPayment({ } } - // biome-ignore lint/correctness/useExhaustiveDependencies: Infite loop + // biome-ignore lint/correctness/useExhaustiveDependencies: Infinite loop useEffect(() => { const paymentMethodsResponse = { // @ts-expect-error no type @@ -511,7 +511,7 @@ export function AdyenPayment({ subscriptionPaymentMethods != null && subscriptionPaymentMethods.length > 0 ? paymentMethodsResponse.paymentMethods.filter( - (pm: { type: "scheme" }) => + (pm: { type: PaymentMethodType }) => subscriptionPaymentMethods.includes(pm.type), ) : paymentMethodsResponse.paymentMethods From 030046902f43328eb7468e6fcfdfd7d0909a440e Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 6 Jun 2025 15:36:08 +0200 Subject: [PATCH 049/165] v4.24.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index b1bafd69..c05a3a78 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.0-beta.2", + "version": "4.24.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index eab01851..064651f2 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.0-beta.2", + "version": "4.24.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From df90ce473b252bf719a7400cf0a54cbe73012419 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 6 Jun 2025 11:07:12 +0200 Subject: [PATCH 050/165] Show all payment methods available --- .../payment_source/CheckoutComPayment.tsx | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 0fabfb02..d1333e93 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -192,28 +192,24 @@ export function CheckoutComPayment({ onError: (component, error) => { console.error("onError", { error }, "Component", component.type) }, - // onPaymentCompleted: async (component, paymentResponse) => { - // console.log("onPaymentCompleted -----", { - // paymentResponse, - // component, - // ps, - // }) - // const paymentSource = await setPaymentSource({ - // paymentSourceId: ps.id, - // paymentResource: "checkout_com_payments", - // attributes: { - // token: paymentResponse.id, - // _authorize: true, - // }, - // }) - // console.log("paymentSource", { paymentSource }) - // }, + onPaymentCompleted: async (component, paymentResponse) => { + console.log("onPaymentCompleted -----", { + paymentResponse, + component, + ps, + }) + // const paymentSource = await setPaymentSource({ + // paymentSourceId: ps.id, + // paymentResource: "checkout_com_payments", + // attributes: { + // token: paymentResponse.id, + // _authorize: true, + // }, + // }) + // console.log("paymentSource", { paymentSource }) + }, } satisfies CheckoutWebComponent) const flowComponent = checkout.create("flow") - // const flowComponent = checkout.create("card") - // if (await flowComponent.isAvailable()) { - // flowComponent.mount(document.getElementById("flow-container")) - // } flowComponent.mount(document.getElementById("flow-container")) } loadFlow() From 5d23fcbe6a9f2dfda5b22b99db1e70cafd9574c9 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 12 Jun 2025 11:19:58 +0200 Subject: [PATCH 051/165] Fix avoid place order in draft, and express payments by CKO --- .../components/orders/PlaceOrderButton.tsx | 40 ++++++++++++++++++- .../payment_source/CheckoutComPayment.tsx | 33 +++++++-------- .../payment_source/StripePayment.tsx | 8 ++++ .../src/reducers/PlaceOrderReducer.ts | 6 ++- 4 files changed, 68 insertions(+), 19 deletions(-) diff --git a/packages/react-components/src/components/orders/PlaceOrderButton.tsx b/packages/react-components/src/components/orders/PlaceOrderButton.tsx index edb57cff..867eb542 100644 --- a/packages/react-components/src/components/orders/PlaceOrderButton.tsx +++ b/packages/react-components/src/components/orders/PlaceOrderButton.tsx @@ -332,13 +332,51 @@ export function PlaceOrderButton(props: Props): JSX.Element { }) } } - }, [options?.checkoutCom, paymentType, order?.payment_source?.id]) + if ( + paymentType === "checkout_com_payments" && + order?.status && + status && + ["pending"].includes(order?.status) && + ["placing"].includes(status) && + autoPlaceOrder + ) { + /** + * Place order with Checkout.com using express payments + */ + const paymentSourceStatus = + // @ts-expect-error no type + order?.payment_source?.payment_response?.status.toLowerCase() + if (["captured", "authorized"].includes(paymentSourceStatus)) { + setPlaceOrder?.({ + paymentSource, + }).then((placed) => { + if (placed?.placed) { + onClick?.(placed) + setPlaceOrderStatus?.({ status: "placing" }) + } else { + setPlaceOrderStatus?.({ status: "standby" }) + } + }) + } + } + }, [options?.checkoutCom, paymentType, order?.payment_source?.id, status]) // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test useEffect(() => { if (ref?.current != null && setButtonRef != null) { setButtonRef(ref) } }, [ref]) + useEffect(() => { + switch (status) { + case "disabled": + case "placing": + setNotPermitted(true) + break + default: + setNotPermitted(false) + break + } + }, [status]) const handleClick = async ( e?: MouseEvent, ): Promise => { diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index d1333e93..8293d205 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -8,6 +8,7 @@ import { jwt } from "#utils/jwt" import CommerceLayerContext from "#context/CommerceLayerContext" import PaymentMethodContext from "#context/PaymentMethodContext" import { setCustomerOrderParam } from "#utils/localStorage" +import PlaceOrderContext from "#context/PlaceOrderContext" const scriptUrl = "https://checkout-web-components.checkout.com/index.js" @@ -110,7 +111,7 @@ export function CheckoutComPayment({ const { setPaymentRef, setPaymentSource } = useContext(PaymentMethodContext) const { accessToken } = useContext(CommerceLayerContext) const { order } = useContext(OrderContext) - // const { setPlaceOrder } = useContext(PlaceOrderContext) + const { setPlaceOrderStatus } = useContext(PlaceOrderContext) const { containerClassName, templateCustomerSaveToWallet, @@ -192,21 +193,21 @@ export function CheckoutComPayment({ onError: (component, error) => { console.error("onError", { error }, "Component", component.type) }, - onPaymentCompleted: async (component, paymentResponse) => { - console.log("onPaymentCompleted -----", { - paymentResponse, - component, - ps, - }) - // const paymentSource = await setPaymentSource({ - // paymentSourceId: ps.id, - // paymentResource: "checkout_com_payments", - // attributes: { - // token: paymentResponse.id, - // _authorize: true, - // }, - // }) - // console.log("paymentSource", { paymentSource }) + onPaymentCompleted: async (_component, paymentResponse) => { + if (paymentResponse.status.toLowerCase() === "approved") { + const paymentSource = await setPaymentSource({ + paymentSourceId: ps.id, + paymentResource: "checkout_com_payments", + attributes: { + token: paymentResponse.id, + _authorize: true, + }, + }) + setPlaceOrderStatus?.({ + status: "placing", + }) + console.log("Payment source set", paymentSource) + } }, } satisfies CheckoutWebComponent) const flowComponent = checkout.create("flow") diff --git a/packages/react-components/src/components/payment_source/StripePayment.tsx b/packages/react-components/src/components/payment_source/StripePayment.tsx index 33621a5d..8609ad79 100644 --- a/packages/react-components/src/components/payment_source/StripePayment.tsx +++ b/packages/react-components/src/components/payment_source/StripePayment.tsx @@ -17,6 +17,7 @@ import { setCustomerOrderParam } from "#utils/localStorage" import OrderContext from "#context/OrderContext" import { StripeExpressPayment } from "./StripeExpressPayment" import useCommerceLayer from "#hooks/useCommerceLayer" +import PlaceOrderContext from "#context/PlaceOrderContext" export interface StripeConfig { containerClassName?: string @@ -68,6 +69,7 @@ function StripePaymentForm({ useContext(PaymentMethodContext) const { order, setOrderErrors } = useContext(OrderContext) const { sdkClient } = useCommerceLayer() + const { setPlaceOrderStatus } = useContext(PlaceOrderContext) const elements = useElements() // biome-ignore lint/correctness/useExhaustiveDependencies: Avoid rerendering the form useEffect(() => { @@ -166,6 +168,9 @@ function StripePaymentForm({ message: "Draft order cannot be placed", }, ]) + setPlaceOrderStatus?.({ + status: "disabled", + }) return } } @@ -231,6 +236,9 @@ export function StripePayment({ if (res != null) { setStripe(res) setIsLoaded(true) + } else { + console.error("Stripe failed to load") + setIsLoaded(false) } } getStripe() diff --git a/packages/react-components/src/reducers/PlaceOrderReducer.ts b/packages/react-components/src/reducers/PlaceOrderReducer.ts index 7ca66323..cf0d3acf 100644 --- a/packages/react-components/src/reducers/PlaceOrderReducer.ts +++ b/packages/react-components/src/reducers/PlaceOrderReducer.ts @@ -44,6 +44,8 @@ export interface PlaceOrderOptions { } } +type PlaceOrderStatus = "placing" | "standby" | "disabled" + export interface PlaceOrderActionPayload { errors: BaseError[] isPermitted: boolean @@ -53,7 +55,7 @@ export interface PlaceOrderActionPayload { paymentSource: PaymentSourceType options?: PlaceOrderOptions placeOrderButtonRef?: RefObject - status: "placing" | "standby" + status: PlaceOrderStatus } export function setButtonRef( @@ -327,7 +329,7 @@ export function setPlaceOrderStatus({ status, dispatch, }: { - status: "placing" | "standby" + status: PlaceOrderStatus dispatch?: Dispatch }): void { if (dispatch != null) { From 0953a912fb4a2fe54abd1bb2daa7daf2f15b38b3 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 12 Jun 2025 11:22:25 +0200 Subject: [PATCH 052/165] v4.24.1-beta.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index c05a3a78..8c581ba8 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.0", + "version": "4.24.1-beta.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 064651f2..35efe2ea 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.0", + "version": "4.24.1-beta.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From a5493591bd665733a4b1fcbcb6966e810aad443f Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 16 Jun 2025 10:41:45 +0200 Subject: [PATCH 053/165] Fix loading card info --- .../gift_cards/GiftCardOrCouponSubmit.tsx | 38 +++++++-- .../PaymentMethodsContainer.tsx | 81 ++++++++++--------- 2 files changed, 71 insertions(+), 48 deletions(-) diff --git a/packages/react-components/src/components/gift_cards/GiftCardOrCouponSubmit.tsx b/packages/react-components/src/components/gift_cards/GiftCardOrCouponSubmit.tsx index 150ae5ce..575ccedb 100644 --- a/packages/react-components/src/components/gift_cards/GiftCardOrCouponSubmit.tsx +++ b/packages/react-components/src/components/gift_cards/GiftCardOrCouponSubmit.tsx @@ -1,24 +1,46 @@ -import type { ReactNode, JSX } from 'react'; -import Parent from '#components/utils/Parent' -import type { ChildrenFunction } from '#typings/index' +import type { ReactNode, JSX } from "react" +import Parent from "#components/utils/Parent" +import type { ChildrenFunction } from "#typings/index" +// import { useState, useEffect, useContext } from "react" +// import OrderContext from "#context/OrderContext" -interface ChildrenProps extends Omit {} +interface ChildrenProps extends Omit {} -interface Props extends Omit { +interface Props extends Omit { children?: ChildrenFunction label?: string | ReactNode } export function GiftCardOrCouponSubmit(props: Props): JSX.Element { - const { children, label = 'Submit', ...p } = props + const { children, label = "Submit", ...p } = props + // const [disabled, setDisabled] = useState(false) + // const { order } = useContext(OrderContext) + // useEffect(() => { + // console.log("GiftCardOrCouponSubmit: useEffect triggered", { order }) + // if (order?.payment_source?.id != null) { + // /** + // * If the order has a payment source ID, it means that the user has already + // * entered their payment information and the user cannot add a gift card or coupon + // * code at this point. + // */ + // setDisabled(true) + // console.log( + // "GiftCardOrCouponSubmit: The order has a payment source ID, disabling the button.", + // ) + // } + // return () => { + // setDisabled(false) + // } + // }, [order?.payment_source?.id]) + // p.disabled = disabled const parentProps = { ...p, - label + label, } return children ? ( {children} ) : ( - ) diff --git a/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx b/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx index a65a5f27..5ce02443 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx @@ -1,29 +1,29 @@ /* eslint-disable @typescript-eslint/no-unsafe-argument */ import PaymentMethodContext, { - defaultPaymentMethodContext -} from '#context/PaymentMethodContext' + defaultPaymentMethodContext, +} from "#context/PaymentMethodContext" import { type ReactNode, useContext, useEffect, useReducer, useMemo, - type JSX -} from 'react' + type JSX, +} from "react" import paymentMethodReducer, { paymentMethodInitialState, getPaymentMethods, type PaymentMethodConfig, setPaymentMethodConfig, type PaymentRef, - setPaymentRef -} from '#reducers/PaymentMethodReducer' -import OrderContext from '#context/OrderContext' -import CommerceLayerContext from '#context/CommerceLayerContext' -import type { BaseError } from '#typings/errors' -import useCustomContext from '#utils/hooks/useCustomContext' -import { isEmpty } from '#utils/isEmpty' -import { setCustomerOrderParam } from '#utils/localStorage' + setPaymentRef, +} from "#reducers/PaymentMethodReducer" +import OrderContext from "#context/OrderContext" +import CommerceLayerContext from "#context/CommerceLayerContext" +import type { BaseError } from "#typings/errors" +import useCustomContext from "#utils/hooks/useCustomContext" +import { isEmpty } from "#utils/isEmpty" +import { setCustomerOrderParam } from "#utils/localStorage" interface Props { children: ReactNode @@ -33,7 +33,7 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { const { children, config } = props const [state, dispatch] = useReducer( paymentMethodReducer, - paymentMethodInitialState + paymentMethodInitialState, ) const { order, @@ -42,27 +42,27 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { include, addResourceToInclude, updateOrder, - includeLoaded + includeLoaded, } = useCustomContext({ context: OrderContext, - contextComponentName: 'OrderContainer', - currentComponentName: 'PaymentMethodsContainer', - key: 'order' + contextComponentName: "OrderContainer", + currentComponentName: "PaymentMethodsContainer", + key: "order", }) const credentials = useContext(CommerceLayerContext) async function getPayMethods(): Promise { order && (await getPaymentMethods({ order, dispatch })) } useEffect(() => { - if (!include?.includes('available_payment_methods')) { + if (!include?.includes("available_payment_methods")) { addResourceToInclude({ newResource: [ - 'available_payment_methods', - 'payment_source', - 'payment_method', - 'line_items.line_item_options.sku_option', - 'line_items.item' - ] + "available_payment_methods", + "payment_source", + "payment_method", + "line_items.line_item_options.sku_option", + "line_items.item", + ], }) } else if (!includeLoaded?.available_payment_methods) { addResourceToInclude({ @@ -70,9 +70,9 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { available_payment_methods: true, payment_source: true, payment_method: true, - 'line_items.line_item_options.sku_option': true, - 'line_items.item': true - } + "line_items.line_item_options.sku_option": true, + "line_items.item": true, + }, }) } if (config && isEmpty(state.config)) @@ -82,27 +82,28 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { } if (order?.payment_source) { dispatch({ - type: 'setPaymentSource', + type: "setPaymentSource", payload: { - paymentSource: order?.payment_source - } + paymentSource: order?.payment_source, + }, }) } if (order?.payment_source === null) { // Reset save customer payment source to wallet param if the payment source is null - setCustomerOrderParam('_save_payment_source_to_customer_wallet', 'false') + setCustomerOrderParam("_save_payment_source_to_customer_wallet", "false") dispatch({ - type: 'setPaymentSource', + type: "setPaymentSource", payload: { - paymentSource: undefined - } + paymentSource: undefined, + }, }) } }, [ order, + order?.payment_source, credentials, include?.length, - Object.keys(includeLoaded ?? []).length + Object.keys(includeLoaded ?? []).length, ]) const contextValue = useMemo(() => { return { @@ -123,7 +124,7 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { updateOrder, order, dispatch, - setOrderErrors + setOrderErrors, }), setPaymentSource: async (args: any) => await defaultPaymentMethodContext.setPaymentSource({ @@ -133,13 +134,13 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { dispatch, getOrder, updateOrder, - order + order, }), updatePaymentSource: async (args: any) => { await defaultPaymentMethodContext.updatePaymentSource({ ...args, config: credentials, - dispatch + dispatch, }) }, destroyPaymentSource: async (args: any) => { @@ -148,9 +149,9 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { dispatch, config: credentials, updateOrder, - orderId: order?.id + orderId: order?.id, }) - } + }, } }, [state]) return ( From 684330f99e22209b8a8ac37d9b6b1b4a9ddfc86e Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 16 Jun 2025 10:50:51 +0200 Subject: [PATCH 054/165] v4.24.1-beta.1 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 8c581ba8..2b19dcb6 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.1-beta.0", + "version": "4.24.1-beta.1", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 35efe2ea..bc0e6665 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.1-beta.0", + "version": "4.24.1-beta.1", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 492786063d36848832a84642915f57825fb00f2e Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 16 Jun 2025 16:59:42 +0200 Subject: [PATCH 055/165] Fix loading card info --- .../payment_methods/PaymentMethodsContainer.tsx | 17 ++++++++--------- .../payment_source/CheckoutComPayment.tsx | 1 - 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx b/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx index 5ce02443..abd255ad 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx @@ -80,14 +80,6 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { if (credentials && order && !state.paymentMethods) { getPayMethods() } - if (order?.payment_source) { - dispatch({ - type: "setPaymentSource", - payload: { - paymentSource: order?.payment_source, - }, - }) - } if (order?.payment_source === null) { // Reset save customer payment source to wallet param if the payment source is null setCustomerOrderParam("_save_payment_source_to_customer_wallet", "false") @@ -98,9 +90,16 @@ export function PaymentMethodsContainer(props: Props): JSX.Element { }, }) } + if ( + order?.id && + order?.payment_source == null && + !["draft", "pending"].includes(order?.status) && + !state.paymentMethods + ) { + getOrder(order.id) + } }, [ order, - order?.payment_source, credentials, include?.length, Object.keys(includeLoaded ?? []).length, diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 8293d205..44fe110e 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -206,7 +206,6 @@ export function CheckoutComPayment({ setPlaceOrderStatus?.({ status: "placing", }) - console.log("Payment source set", paymentSource) } }, } satisfies CheckoutWebComponent) From f1e9fa6cb278dadfc0e8737982648bbeb259ceea Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 16 Jun 2025 17:01:35 +0200 Subject: [PATCH 056/165] v4.24.1-beta.2 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 2b19dcb6..8eb4f80f 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.1-beta.1", + "version": "4.24.1-beta.2", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index bc0e6665..933ee981 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.1-beta.1", + "version": "4.24.1-beta.2", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From d596f2942a6418b92349932aaf056e62ddc350f5 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 16 Jun 2025 17:06:11 +0200 Subject: [PATCH 057/165] Fix unused variable --- .../src/components/payment_source/CheckoutComPayment.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx index 44fe110e..7f0dd3a1 100644 --- a/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx +++ b/packages/react-components/src/components/payment_source/CheckoutComPayment.tsx @@ -195,7 +195,7 @@ export function CheckoutComPayment({ }, onPaymentCompleted: async (_component, paymentResponse) => { if (paymentResponse.status.toLowerCase() === "approved") { - const paymentSource = await setPaymentSource({ + await setPaymentSource({ paymentSourceId: ps.id, paymentResource: "checkout_com_payments", attributes: { From 5b61f4a52784d0c243260c7ca3f71dfc92b6c92f Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 16 Jun 2025 17:06:32 +0200 Subject: [PATCH 058/165] v4.24.1-beta.3 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 8eb4f80f..dee9e11b 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.1-beta.2", + "version": "4.24.1-beta.3", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 933ee981..2ee1052f 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.1-beta.2", + "version": "4.24.1-beta.3", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 3c7ee3d2935f20753c5aac9c82e9653c2a56edb3 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 20 Jun 2025 15:50:20 +0200 Subject: [PATCH 059/165] Fix autoselect payment method with CKO. Resolve #645 --- .../src/components/payment_methods/PaymentMethod.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx index 0881b7d0..3780553c 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx @@ -19,6 +19,7 @@ import type { DefaultChildrenType } from "#typings/globals" import OrderContext from "#context/OrderContext" import CustomerContext from "#context/CustomerContext" import { + getCkoAttributes, getExternalPaymentAttributes, getPaypalAttributes, } from "#utils/getPaymentAttributes" @@ -163,6 +164,12 @@ export function PaymentMethod({ config, ) } + if ( + config != null && + paymentResource === "checkout_com_payments" + ) { + attributes = getCkoAttributes(paymentResource, config) + } const ps = await setPaymentSource({ paymentResource, order, From d49bf7aae88635e75330bc5f940b4cf37e556c47 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 20 Jun 2025 15:50:58 +0200 Subject: [PATCH 060/165] Update deps --- package.json | 10 +- pnpm-lock.yaml | 1180 ++++++++++++++++++++++++------------------------ 2 files changed, 595 insertions(+), 595 deletions(-) diff --git a/package.json b/package.json index 1f2d1a73..85a1cc17 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "dep:minor": "pnpm dep:major -t minor -i" }, "devDependencies": { - "@biomejs/biome": "1.9.4", + "@biomejs/biome": "2.0.0", "husky": "^9.1.7", "lerna": "^8.2.2", "typescript": "^5.8.3" @@ -41,7 +41,13 @@ "ws@>=8.0.0 <8.17.1": ">=8.17.1", "micromatch@<4.0.8": ">=4.0.8", "rollup@>=4.0.0 <4.22.4": ">=4.22.4", - "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5" + "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5", + "esbuild@<=0.24.2": ">=0.25.0", + "vite@>=6.2.0 <6.2.6": ">=6.2.6", + "vite@>=6.2.0 <=6.2.6": ">=6.2.7", + "tar-fs@>=2.0.0 <2.1.3": ">=2.1.3", + "brace-expansion@>=1.0.0 <=1.1.11": ">=1.1.12", + "brace-expansion@>=2.0.0 <=2.0.1": ">=2.0.2" }, "onlyBuiltDependencies": [ "@biomejs/biome", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea194b4c..b569e72f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,14 +20,20 @@ overrides: micromatch@<4.0.8: '>=4.0.8' rollup@>=4.0.0 <4.22.4: '>=4.22.4' cross-spawn@>=7.0.0 <7.0.5: '>=7.0.5' + esbuild@<=0.24.2: '>=0.25.0' + vite@>=6.2.0 <6.2.6: '>=6.2.6' + vite@>=6.2.0 <=6.2.6: '>=6.2.7' + tar-fs@>=2.0.0 <2.1.3: '>=2.1.3' + brace-expansion@>=1.0.0 <=1.1.11: '>=1.1.12' + brace-expansion@>=2.0.0 <=2.0.1: '>=2.0.2' importers: .: devDependencies: '@biomejs/biome': - specifier: 1.9.4 - version: 1.9.4 + specifier: 2.0.0 + version: 2.0.0 husky: specifier: ^9.1.7 version: 9.1.7 @@ -108,7 +114,7 @@ importers: version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) '@storybook/react-vite': specifier: ^7.6.17 - version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -123,10 +129,10 @@ importers: version: 18.3.18 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) babel-loader: specifier: ^9.2.1 - version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)) + version: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.1)) js-cookie: specifier: ^3.0.5 version: 3.0.5 @@ -135,7 +141,7 @@ importers: version: 4.0.0 msw: specifier: ^2.7.0 - version: 2.7.3(@types/node@22.15.29)(typescript@5.8.3) + version: 2.7.3(@types/node@24.0.3)(typescript@5.8.3) prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -155,23 +161,23 @@ importers: specifier: ^5.7.3 version: 5.8.3 vite: - specifier: ^6.1.0 - version: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + specifier: '>=6.2.7' + version: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) packages/react-components: dependencies: '@adyen/adyen-web': - specifier: ^6.15.0 - version: 6.15.0 + specifier: ^6.17.0 + version: 6.17.0 '@commercelayer/organization-config': specifier: ^2.3.0 version: 2.3.0 '@commercelayer/sdk': - specifier: ^6.42.0 - version: 6.42.0 + specifier: ^6.44.0 + version: 6.44.0 '@stripe/react-stripe-js': specifier: ^3.7.0 version: 3.7.0(@stripe/stripe-js@7.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -185,8 +191,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 braintree-web: - specifier: ^3.120.2 - version: 3.120.2 + specifier: ^3.123.0 + version: 3.123.0 frames-react: specifier: ^1.2.2 version: 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3) @@ -210,8 +216,8 @@ importers: specifier: ^9.8.0 version: 9.8.0 '@playwright/test': - specifier: ^1.52.0 - version: 1.52.0 + specifier: ^1.53.1 + version: 1.53.1 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -222,14 +228,14 @@ importers: specifier: ^3.96.17 version: 3.96.17 '@types/lodash': - specifier: ^4.17.17 - version: 4.17.17 + specifier: ^4.17.18 + version: 4.17.18 '@types/node': - specifier: ^22.15.29 - version: 22.15.29 + specifier: ^24.0.3 + version: 24.0.3 '@types/prop-types': - specifier: ^15.7.14 - version: 15.7.14 + specifier: ^15.7.15 + version: 15.7.15 '@types/react': specifier: ^19.0.12 version: 19.0.12 @@ -240,11 +246,11 @@ importers: specifier: ^1.8.8 version: 1.8.8 '@vitejs/plugin-react': - specifier: ^4.5.1 - version: 4.5.1(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + specifier: ^4.5.2 + version: 4.5.2(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) '@vitest/coverage-v8': - specifier: ^3.2.1 - version: 3.2.1(vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) + specifier: ^3.2.4 + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jsdom@26.1.0)(msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0)) jsdom: specifier: ^26.1.0 version: 26.1.0 @@ -252,8 +258,8 @@ importers: specifier: ^1.4.0 version: 1.4.0 msw: - specifier: ^2.9.0 - version: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) + specifier: ^2.10.2 + version: 2.10.2(@types/node@24.0.3)(typescript@5.8.3) react: specifier: ^19.0.0 version: 19.0.0 @@ -274,18 +280,18 @@ importers: version: 5.8.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + version: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) vitest: - specifier: ^3.2.1 - version: 3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + specifier: ^3.2.4 + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jsdom@26.1.0)(msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) packages: - '@adyen/adyen-web@6.15.0': - resolution: {integrity: sha512-Ormyln86jo365jIHEDyb1xZETLxqg/XD1/sYf0Kb1H+8XCzVURKYVhdBTxpc4l9B3gcHq43tiNhzwf9sL4nc6g==} + '@adyen/adyen-web@6.17.0': + resolution: {integrity: sha512-8w7OmfD0OnwDY87EBm21nSkFGd4k27olhOV05cpgUd74Jze6Z2K7CnM5++5340pkzhj0/duLqYP7E6eN7RXzrQ==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} @@ -314,18 +320,34 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.8': resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.27.5': + resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.26.10': resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} + '@babel/core@7.27.4': + resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.26.10': resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} engines: {node: '>=6.9.0'} + '@babel/generator@7.27.5': + resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -334,6 +356,10 @@ packages: resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.26.9': resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} engines: {node: '>=6.9.0'} @@ -359,12 +385,22 @@ packages: resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.26.0': resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.25.9': resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} @@ -373,6 +409,10 @@ packages: resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.25.9': resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} @@ -393,14 +433,26 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.25.9': resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} @@ -409,11 +461,20 @@ packages: resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.26.10': resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.27.5': + resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -726,12 +787,24 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-source@7.25.9': resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.25.9': resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} engines: {node: '>=6.9.0'} @@ -847,14 +920,26 @@ packages: resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.10': resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.4': + resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.26.10': resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.6': + resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} + engines: {node: '>=6.9.0'} + '@base2/pretty-print-object@1.0.1': resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} @@ -862,55 +947,55 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@biomejs/biome@1.9.4': - resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + '@biomejs/biome@2.0.0': + resolution: {integrity: sha512-BlUoXEOI/UQTDEj/pVfnkMo8SrZw3oOWBDrXYFT43V7HTkIUDkBRY53IC5Jx1QkZbaB+0ai1wJIfYwp9+qaJTQ==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.9.4': - resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + '@biomejs/cli-darwin-arm64@2.0.0': + resolution: {integrity: sha512-QvqWYtFFhhxdf8jMAdJzXW+Frc7X8XsnHQLY+TBM1fnT1TfeV/v9vsFI5L2J7GH6qN1+QEEJ19jHibCY2Ypplw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.9.4': - resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + '@biomejs/cli-darwin-x64@2.0.0': + resolution: {integrity: sha512-5JFhls1EfmuIH4QGFPlNpxJQFC6ic3X1ltcoLN+eSRRIPr6H/lUS1ttuD0Fj7rPgPhZqopK/jfH8UVj/1hIsQw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.9.4': - resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + '@biomejs/cli-linux-arm64-musl@2.0.0': + resolution: {integrity: sha512-Bxsz8ki8+b3PytMnS5SgrGV+mbAWwIxI3ydChb/d1rURlJTMdxTTq5LTebUnlsUWAX6OvJuFeiVq9Gjn1YbCyA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.9.4': - resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + '@biomejs/cli-linux-arm64@2.0.0': + resolution: {integrity: sha512-BAH4QVi06TzAbVchXdJPsL0Z/P87jOfes15rI+p3EX9/EGTfIjaQ9lBVlHunxcmoptaA5y1Hdb9UYojIhmnjIw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.9.4': - resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + '@biomejs/cli-linux-x64-musl@2.0.0': + resolution: {integrity: sha512-tiQ0ABxMJb9I6GlfNp0ulrTiQSFacJRJO8245FFwE3ty3bfsfxlU/miblzDIi+qNrgGsLq5wIZcVYGp4c+HXZA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.9.4': - resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + '@biomejs/cli-linux-x64@2.0.0': + resolution: {integrity: sha512-09PcOGYTtkopWRm6mZ/B6Mr6UHdkniUgIG/jLBv+2J8Z61ezRE+xQmpi3yNgUrFIAU4lPA9atg7mhvE/5Bo7Wg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.9.4': - resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + '@biomejs/cli-win32-arm64@2.0.0': + resolution: {integrity: sha512-vrTtuGu91xNTEQ5ZcMJBZuDlqr32DWU1r14UfePIGndF//s2WUAmer4FmgoPgruo76rprk37e8S2A2c0psXdxw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.9.4': - resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + '@biomejs/cli-win32-x64@2.0.0': + resolution: {integrity: sha512-2USVQ0hklNsph/KIR72ZdeptyXNnQ3JdzPn3NbjI4Sna34CnxeiYAaZcZzXPDl5PYNFBivV4xmvT3Z3rTmyDBg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -921,8 +1006,8 @@ packages: '@braintree/asset-loader@2.0.0': resolution: {integrity: sha512-7Zs3/g3lPTfkdtWr7cKh3tk1pDruXR++TXwGKkx7BPuTjjLNFul2JSfI+ScHzNU4u/gZNPNQagsSTlYxIhBgMA==} - '@braintree/asset-loader@2.0.2': - resolution: {integrity: sha512-0ArGSdgEpg9nTdZsi5zvcB/rHW0A+Jo9WOA4ArAO/UB1fbDm4qimX0P3e1QydqvdDkQs0jZgR7Uke1WL81RIKA==} + '@braintree/asset-loader@2.0.3': + resolution: {integrity: sha512-uREap1j30wKRlC0mK99nNPMpEp77NtB6XixpDfFJPZHmkrmw7IB4skKe+26LZBK1H6oSainFhAyKoP7x3eyOKA==} '@braintree/browser-detection@1.17.2': resolution: {integrity: sha512-DdEX09uYs6kHwGt4cbONlxlta/0hfmrDUncP6EtfZxFVywNF9LeRUyon+2LihJTbqgSnGqz9ZL450hkqBd6oSw==} @@ -973,8 +1058,8 @@ packages: resolution: {integrity: sha512-fv6GrTFWkQJC4yb86Fix560+S/lKLegTEFpQNTsnNpE8JLkzF63B1dyCWpbGcOtsbCK37I/CXsQf6eof1R15qA==} engines: {node: '>=20'} - '@commercelayer/sdk@6.42.0': - resolution: {integrity: sha512-tZD1+dGT8SjKKMw6LVgzqZSIon1AsX5fdiiQpZi8zT/LAjtpkOpwz8aVnL0p7sqSlBNq55VVeDqYBwNB++DehA==} + '@commercelayer/sdk@6.44.0': + resolution: {integrity: sha512-bhQNg89olVVIZa1d01B0QmG4IoFZMuXxIWUfhlX5nHskYuk3sjHGsKenhqnt3bYqzQiBFAFoI2GsY9NV4UsKxg==} engines: {node: '>=20'} '@csstools/color-helpers@5.0.2': @@ -1029,192 +1114,96 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.1': resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.1': resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.1': resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.1': resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.1': resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.1': resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.1': resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.1': resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.1': resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.1': resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.1': resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.1': resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.1': resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.1': resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.1': resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.1': resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} engines: {node: '>=18'} @@ -1227,12 +1216,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.1': resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} engines: {node: '>=18'} @@ -1245,60 +1228,30 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.1': resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.1': resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.1': resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.1': resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.1': resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} engines: {node: '>=18'} @@ -1477,8 +1430,8 @@ packages: resolution: {integrity: sha512-USvgCL/uOGFtVa6SVyRrC8kIAedzRohxIXN5LISlg5C5vLZCn7dgMFVSNhSF9cuBEFrm/O2spDWEZeMnw4ZXYg==} engines: {node: '>=18'} - '@mswjs/interceptors@0.38.7': - resolution: {integrity: sha512-Jkb27iSn7JPdkqlTqKfhncFfnEZsIJVYxsFbUSWEkxdIPdsyngrhoDBk0/BGD2FQcRH99vlRrkHpNTyKqI+0/w==} + '@mswjs/interceptors@0.39.2': + resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.4': @@ -1693,8 +1646,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.52.0': - resolution: {integrity: sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==} + '@playwright/test@1.53.1': + resolution: {integrity: sha512-Z4c23LHV0muZ8hfv4jw6HngPJkbbtZxTkxPNIg7cJcTc9C28N/p2q7g3JZS2SiKBBHJ3uM1dgDye66bB7LEk5w==} engines: {node: '>=18'} hasBin: true @@ -2107,8 +2060,8 @@ packages: '@radix-ui/rect@1.0.1': resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} - '@rolldown/pluginutils@1.0.0-beta.9': - resolution: {integrity: sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==} + '@rolldown/pluginutils@1.0.0-beta.11': + resolution: {integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==} '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -2837,8 +2790,8 @@ packages: '@types/lodash@4.17.16': resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} - '@types/lodash@4.17.17': - resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} + '@types/lodash@4.17.18': + resolution: {integrity: sha512-KJ65INaxqxmU6EoCiJmRPZC9H9RVWCRd349tXM2M3O5NA7cY6YL7c0bHAHQ93NOfTObEQ004kd2QVHs/r0+m4g==} '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -2873,8 +2826,8 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - '@types/node@22.15.29': - resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} + '@types/node@24.0.3': + resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2888,6 +2841,9 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@types/qs@6.9.18': resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} @@ -3034,26 +2990,26 @@ packages: peerDependencies: vite: '>=4.5.2' - '@vitejs/plugin-react@4.5.1': - resolution: {integrity: sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A==} + '@vitejs/plugin-react@4.5.2': + resolution: {integrity: sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: '>=4.5.2' - '@vitest/coverage-v8@3.2.1': - resolution: {integrity: sha512-6dy0uF/0BE3jpUW9bFzg0V2S4F7XVaZHL/7qma1XANvHPQGoJuc3wtx911zSoAgUnpfvcLVK1vancNJ95d+uxQ==} + '@vitest/coverage-v8@3.2.4': + resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} peerDependencies: - '@vitest/browser': 3.2.1 - vitest: 3.2.1 + '@vitest/browser': 3.2.4 + vitest: 3.2.4 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@3.2.1': - resolution: {integrity: sha512-FqS/BnDOzV6+IpxrTg5GQRyLOCtcJqkwMwcS8qGCI2IyRVDwPAtutztaf1CjtPHlZlWtl1yUPCd7HM0cNiDOYw==} + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/mocker@3.2.1': - resolution: {integrity: sha512-OXxMJnx1lkB+Vl65Re5BrsZEHc90s5NMjD23ZQ9NlU7f7nZiETGoX4NeKZSmsKjseuMq2uOYXdLOeoM0pJU+qw==} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: msw: ^2.4.9 vite: '>=5.1.7' @@ -3063,20 +3019,20 @@ packages: vite: optional: true - '@vitest/pretty-format@3.2.1': - resolution: {integrity: sha512-xBh1X2GPlOGBupp6E1RcUQWIxw0w/hRLd3XyBS6H+dMdKTAqHDNsIR2AnJwPA3yYe9DFy3VUKTe3VRTrAiQ01g==} + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/runner@3.2.1': - resolution: {integrity: sha512-kygXhNTu/wkMYbwYpS3z/9tBe0O8qpdBuC3dD/AW9sWa0LE/DAZEjnHtWA9sIad7lpD4nFW1yQ+zN7mEKNH3yA==} + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/snapshot@3.2.1': - resolution: {integrity: sha512-5xko/ZpW2Yc65NVK9Gpfg2y4BFvcF+At7yRT5AHUpTg9JvZ4xZoyuRY4ASlmNcBZjMslV08VRLDrBOmUe2YX3g==} + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - '@vitest/spy@3.2.1': - resolution: {integrity: sha512-Nbfib34Z2rfcJGSetMxjDCznn4pCYPZOtQYox2kzebIJcgH75yheIKd5QYSFmR8DIZf2M8fwOm66qSDIfRFFfQ==} + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/utils@3.2.1': - resolution: {integrity: sha512-KkHlGhePEKZSub5ViknBcN5KEF+u7dSUr9NW8QsVICusUojrgrOnnY3DEWWO877ax2Pyopuk2qHmt+gkNKnBVw==} + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3133,7 +3089,7 @@ packages: resolution: {integrity: sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==} engines: {node: '>=14.15.0'} peerDependencies: - esbuild: '>=0.10.0' + esbuild: '>=0.25.0' '@yarnpkg/fslib@2.10.3': resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} @@ -3340,6 +3296,9 @@ packages: axios@1.8.3: resolution: {integrity: sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==} + b4a@1.6.7: + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + babel-core@7.0.0-bridge.0: resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: @@ -3377,6 +3336,40 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@3.0.1: + resolution: {integrity: sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==} + engines: {node: '>= 16'} + + bare-events@2.5.4: + resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} + + bare-fs@4.1.5: + resolution: {integrity: sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.6.1: + resolution: {integrity: sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.6.5: + resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} + peerDependencies: + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -3410,18 +3403,19 @@ packages: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@4.0.1: + resolution: {integrity: sha512-YClrbvTCXGe70pU2JiEiPLYXO9gQkyxYeKpJIQHVS/gOs6EWMQP2RYBwjFLNT322Ji8TOC3IMPfsYCedNpzKfA==} + engines: {node: '>= 18'} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - braintree-web@3.120.2: - resolution: {integrity: sha512-GdA495PforvIDABd2OSRp1tXWiY2C/1GoD7bSV0yNHvzYbFL4JEWHcZay2/r1QKfcaTsPiP3EQ6YBKu2dW4j9g==} + braintree-web@3.123.0: + resolution: {integrity: sha512-uuPgr/47w/bkjhVKxUNraXRuOLv1nbjQlJbprCQFWIoSTKGdut+6YRAAVpLldHeg2FMzpZ7dSDxUhrBQvJnoAQ==} browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} @@ -3539,13 +3533,6 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -3697,9 +3684,6 @@ packages: resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} engines: {node: '>= 0.8.0'} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} @@ -4109,12 +4093,7 @@ packages: esbuild-register@3.6.0: resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true + esbuild: '>=0.25.0' esbuild@0.25.1: resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} @@ -4267,6 +4246,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -5261,6 +5243,9 @@ packages: loupe@3.1.3: resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.1.4: + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -5715,9 +5700,6 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -5744,8 +5726,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.7.3: - resolution: {integrity: sha512-+mycXv8l2fEAjFZ5sjrtjJDmm2ceKGjrNbBr1durRg6VkU9fNUE/gsmQ51hWbHqs+l35W1iM+ZsmOD9Fd6lspw==} + msw@2.10.2: + resolution: {integrity: sha512-RCKM6IZseZQCWcSWlutdf590M8nVfRHG1ImwzOtwz8IYxgT4zhUO0rfTcTvDGiaFE0Rhcc+h43lcF3Jc9gFtwQ==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -5754,8 +5736,8 @@ packages: typescript: optional: true - msw@2.9.0: - resolution: {integrity: sha512-fNyrJ11YNbe2zl64EwtxM5OFkInFPAw5vipOljMsf9lY2ep9B2BslqQrS8EC9pB9961K61FqTUi0wsdqk6hwow==} + msw@2.7.3: + resolution: {integrity: sha512-+mycXv8l2fEAjFZ5sjrtjJDmm2ceKGjrNbBr1durRg6VkU9fNUE/gsmQ51hWbHqs+l35W1iM+ZsmOD9Fd6lspw==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -6207,13 +6189,13 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.52.0: - resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==} + playwright-core@1.53.1: + resolution: {integrity: sha512-Z46Oq7tLAyT0lGoFx4DOuB1IA9D1TPj0QkYxpPVUnGDqHHvDpCftu1J2hM2PiWsNMoZh8+LQaarAWcDfPBc6zg==} engines: {node: '>=18'} hasBin: true - playwright@1.52.0: - resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==} + playwright@1.53.1: + resolution: {integrity: sha512-LJ13YLr/ocweuwxyGf1XNFWIU4M2zUSo149Qbp+A4cpwDjsxRPj7k6H25LBrEHiEwxvRbD8HdwvQmRMSvquhYw==} engines: {node: '>=18'} hasBin: true @@ -6937,6 +6919,9 @@ packages: stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + streamx@2.22.1: + resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} + strict-event-emitter@0.5.1: resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} @@ -6986,6 +6971,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + strong-log-transformer@2.1.0: resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} engines: {node: '>=4'} @@ -7022,13 +7010,16 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tar-fs@2.1.2: - resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + tar-fs@3.0.10: + resolution: {integrity: sha512-C1SwlQGNLe/jPNqapK8epDsXME7CAJR5RL3GcE6KWx1d9OUByzoHVcbu1VPI8tevg9H8Alae0AApHHFGzrD5zA==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -7081,6 +7072,9 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -7111,8 +7105,8 @@ packages: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} - tinypool@1.1.0: - resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: @@ -7321,8 +7315,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.8.0: + resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -7503,8 +7497,8 @@ packages: vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - vite-node@3.2.1: - resolution: {integrity: sha512-V4EyKQPxquurNJPtQJRZo8hKOoKNBRIhxcDbQFPFig0JdoWcUhwRgK8yoCXXrfYVPKS6XwirGHPszLnR8FbjCA==} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -7516,46 +7510,6 @@ packages: vite: optional: true - vite@6.2.5: - resolution: {integrity: sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vite@6.3.5: resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7596,8 +7550,8 @@ packages: yaml: optional: true - vitest@3.2.1: - resolution: {integrity: sha512-VZ40MBnlE1/V5uTgdqY3DmjUgZtIzsYq758JGlyQrv5syIsaYcabkfPkEuWML49Ph0D/SoqpVFd0dyVTr551oA==} + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -7706,8 +7660,8 @@ packages: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.2.1 - '@vitest/ui': 3.2.1 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -7944,7 +7898,7 @@ packages: snapshots: - '@adyen/adyen-web@6.15.0': + '@adyen/adyen-web@6.17.0': dependencies: '@types/applepayjs': 14.0.9 '@types/googlepay': 0.7.6 @@ -7997,8 +7951,16 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.26.8': {} + '@babel/compat-data@7.27.5': {} + '@babel/core@7.26.10': dependencies: '@ampproject/remapping': 2.3.0 @@ -8019,6 +7981,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.27.4': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helpers': 7.27.6 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 + convert-source-map: 2.0.0 + debug: 4.4.1 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.26.10': dependencies: '@babel/parser': 7.26.10 @@ -8027,6 +8009,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.27.5': + dependencies: + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.26.10 @@ -8039,6 +8029,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.27.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.26.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -8084,6 +8082,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -8093,12 +8098,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.25.9': dependencies: '@babel/types': 7.26.10 '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -8126,10 +8142,16 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-wrap-function@7.25.9': dependencies: '@babel/template': 7.26.9 @@ -8143,10 +8165,19 @@ snapshots: '@babel/template': 7.26.9 '@babel/types': 7.26.10 + '@babel/helpers@7.27.6': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + '@babel/parser@7.26.10': dependencies: '@babel/types': 7.26.10 + '@babel/parser@7.27.5': + dependencies: + '@babel/types': 7.27.6 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -8479,11 +8510,21 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -8682,6 +8723,12 @@ snapshots: '@babel/parser': 7.26.10 '@babel/types': 7.26.10 + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@babel/traverse@7.26.10': dependencies: '@babel/code-frame': 7.26.2 @@ -8694,55 +8741,72 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.27.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + debug: 4.4.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.26.10': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.27.6': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@base2/pretty-print-object@1.0.1': {} '@bcoe/v8-coverage@1.0.2': {} - '@biomejs/biome@1.9.4': + '@biomejs/biome@2.0.0': optionalDependencies: - '@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 - - '@biomejs/cli-darwin-arm64@1.9.4': + '@biomejs/cli-darwin-arm64': 2.0.0 + '@biomejs/cli-darwin-x64': 2.0.0 + '@biomejs/cli-linux-arm64': 2.0.0 + '@biomejs/cli-linux-arm64-musl': 2.0.0 + '@biomejs/cli-linux-x64': 2.0.0 + '@biomejs/cli-linux-x64-musl': 2.0.0 + '@biomejs/cli-win32-arm64': 2.0.0 + '@biomejs/cli-win32-x64': 2.0.0 + + '@biomejs/cli-darwin-arm64@2.0.0': optional: true - '@biomejs/cli-darwin-x64@1.9.4': + '@biomejs/cli-darwin-x64@2.0.0': optional: true - '@biomejs/cli-linux-arm64-musl@1.9.4': + '@biomejs/cli-linux-arm64-musl@2.0.0': optional: true - '@biomejs/cli-linux-arm64@1.9.4': + '@biomejs/cli-linux-arm64@2.0.0': optional: true - '@biomejs/cli-linux-x64-musl@1.9.4': + '@biomejs/cli-linux-x64-musl@2.0.0': optional: true - '@biomejs/cli-linux-x64@1.9.4': + '@biomejs/cli-linux-x64@2.0.0': optional: true - '@biomejs/cli-win32-arm64@1.9.4': + '@biomejs/cli-win32-arm64@2.0.0': optional: true - '@biomejs/cli-win32-x64@1.9.4': + '@biomejs/cli-win32-x64@2.0.0': optional: true '@braidai/lang@1.1.0': {} '@braintree/asset-loader@2.0.0': {} - '@braintree/asset-loader@2.0.2': {} + '@braintree/asset-loader@2.0.3': {} '@braintree/browser-detection@1.17.2': {} @@ -8784,7 +8848,7 @@ snapshots: '@commercelayer/sdk@6.38.0': {} - '@commercelayer/sdk@6.42.0': {} + '@commercelayer/sdk@6.44.0': {} '@csstools/color-helpers@5.0.2': {} @@ -8828,141 +8892,75 @@ snapshots: '@esbuild/aix-ppc64@0.25.1': optional: true - '@esbuild/android-arm64@0.18.20': - optional: true - '@esbuild/android-arm64@0.25.1': optional: true - '@esbuild/android-arm@0.18.20': - optional: true - '@esbuild/android-arm@0.25.1': optional: true - '@esbuild/android-x64@0.18.20': - optional: true - '@esbuild/android-x64@0.25.1': optional: true - '@esbuild/darwin-arm64@0.18.20': - optional: true - '@esbuild/darwin-arm64@0.25.1': optional: true - '@esbuild/darwin-x64@0.18.20': - optional: true - '@esbuild/darwin-x64@0.25.1': optional: true - '@esbuild/freebsd-arm64@0.18.20': - optional: true - '@esbuild/freebsd-arm64@0.25.1': optional: true - '@esbuild/freebsd-x64@0.18.20': - optional: true - '@esbuild/freebsd-x64@0.25.1': optional: true - '@esbuild/linux-arm64@0.18.20': - optional: true - '@esbuild/linux-arm64@0.25.1': optional: true - '@esbuild/linux-arm@0.18.20': - optional: true - '@esbuild/linux-arm@0.25.1': optional: true - '@esbuild/linux-ia32@0.18.20': - optional: true - '@esbuild/linux-ia32@0.25.1': optional: true - '@esbuild/linux-loong64@0.18.20': - optional: true - '@esbuild/linux-loong64@0.25.1': optional: true - '@esbuild/linux-mips64el@0.18.20': - optional: true - '@esbuild/linux-mips64el@0.25.1': optional: true - '@esbuild/linux-ppc64@0.18.20': - optional: true - '@esbuild/linux-ppc64@0.25.1': optional: true - '@esbuild/linux-riscv64@0.18.20': - optional: true - '@esbuild/linux-riscv64@0.25.1': optional: true - '@esbuild/linux-s390x@0.18.20': - optional: true - '@esbuild/linux-s390x@0.25.1': optional: true - '@esbuild/linux-x64@0.18.20': - optional: true - '@esbuild/linux-x64@0.25.1': optional: true '@esbuild/netbsd-arm64@0.25.1': optional: true - '@esbuild/netbsd-x64@0.18.20': - optional: true - '@esbuild/netbsd-x64@0.25.1': optional: true '@esbuild/openbsd-arm64@0.25.1': optional: true - '@esbuild/openbsd-x64@0.18.20': - optional: true - '@esbuild/openbsd-x64@0.25.1': optional: true - '@esbuild/sunos-x64@0.18.20': - optional: true - '@esbuild/sunos-x64@0.25.1': optional: true - '@esbuild/win32-arm64@0.18.20': - optional: true - '@esbuild/win32-arm64@0.25.1': optional: true - '@esbuild/win32-ia32@0.18.20': - optional: true - '@esbuild/win32-ia32@0.25.1': optional: true - '@esbuild/win32-x64@0.18.20': - optional: true - '@esbuild/win32-x64@0.25.1': optional: true @@ -9050,17 +9048,17 @@ snapshots: '@hutson/parse-repository-url@3.0.2': {} - '@inquirer/confirm@5.1.8(@types/node@22.15.29)': + '@inquirer/confirm@5.1.8(@types/node@24.0.3)': dependencies: - '@inquirer/core': 10.1.9(@types/node@22.15.29) - '@inquirer/type': 3.0.5(@types/node@22.15.29) + '@inquirer/core': 10.1.9(@types/node@24.0.3) + '@inquirer/type': 3.0.5(@types/node@24.0.3) optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 - '@inquirer/core@10.1.9(@types/node@22.15.29)': + '@inquirer/core@10.1.9(@types/node@24.0.3)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@22.15.29) + '@inquirer/type': 3.0.5(@types/node@24.0.3) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -9068,13 +9066,13 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.5(@types/node@22.15.29)': + '@inquirer/type@3.0.5(@types/node@24.0.3)': optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@isaacs/cliui@8.0.2': dependencies: @@ -9125,7 +9123,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -9134,17 +9132,17 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.3) - vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.3 @@ -9294,7 +9292,7 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@mswjs/interceptors@0.38.7': + '@mswjs/interceptors@0.39.2': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -9313,7 +9311,9 @@ snapshots: dependencies: gunzip-maybe: 1.4.2 pump: 3.0.2 - tar-fs: 2.1.2 + tar-fs: 3.0.10 + transitivePeerDependencies: + - bare-buffer '@nodelib/fs.scandir@2.1.5': dependencies: @@ -9582,9 +9582,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.52.0': + '@playwright/test@1.53.1': dependencies: - playwright: 1.52.0 + playwright: 1.53.1 '@radix-ui/number@1.0.1': dependencies: @@ -9964,7 +9964,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.10 - '@rolldown/pluginutils@1.0.0-beta.9': {} + '@rolldown/pluginutils@1.0.0-beta.11': {} '@rollup/pluginutils@4.2.1': dependencies: @@ -10371,10 +10371,10 @@ snapshots: '@storybook/node-logger': 7.6.20 '@types/ejs': 3.1.5 '@types/find-cache-dir': 3.2.1 - '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.20) + '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.25.1) browser-assert: 1.2.1 ejs: 3.1.10 - esbuild: 0.18.20 + esbuild: 0.25.1 esbuild-plugin-alias: 0.2.1 express: 4.21.2 find-cache-dir: 3.3.2 @@ -10385,7 +10385,7 @@ snapshots: - encoding - supports-color - '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@storybook/channels': 7.6.20 '@storybook/client-logger': 7.6.20 @@ -10403,7 +10403,7 @@ snapshots: fs-extra: 11.3.0 magic-string: 0.30.17 rollup: 3.29.5 - vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -10479,6 +10479,7 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 transitivePeerDependencies: + - bare-buffer - bufferutil - encoding - supports-color @@ -10553,8 +10554,8 @@ snapshots: '@types/node-fetch': 2.6.12 '@types/pretty-hrtime': 1.0.3 chalk: 4.1.2 - esbuild: 0.18.20 - esbuild-register: 3.6.0(esbuild@0.18.20) + esbuild: 0.25.1 + esbuild-register: 3.6.0(esbuild@0.25.1) file-system-cache: 2.3.0 find-cache-dir: 3.3.2 find-up: 5.0.0 @@ -10808,18 +10809,18 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.35.0)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) - '@vitejs/plugin-react': 3.1.0(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) + '@vitejs/plugin-react': 3.1.0(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) - vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -11049,7 +11050,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/braintree-web@3.96.17': dependencies: @@ -11062,13 +11063,13 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/debug@4.1.12': dependencies: @@ -11104,7 +11105,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11121,13 +11122,13 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/googlepay@0.7.6': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/http-errors@2.0.4': {} @@ -11149,7 +11150,7 @@ snapshots: '@types/lodash@4.17.16': {} - '@types/lodash@4.17.17': {} + '@types/lodash@4.17.18': {} '@types/mdast@3.0.15': dependencies: @@ -11175,16 +11176,16 @@ snapshots: '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 form-data: 4.0.2 '@types/node@18.19.80': dependencies: undici-types: 5.26.5 - '@types/node@22.15.29': + '@types/node@24.0.3': dependencies: - undici-types: 6.21.0 + undici-types: 7.8.0 '@types/normalize-package-data@2.4.4': {} @@ -11194,6 +11195,8 @@ snapshots: '@types/prop-types@15.7.14': {} + '@types/prop-types@15.7.15': {} + '@types/qs@6.9.18': {} '@types/range-parser@1.2.7': {} @@ -11240,12 +11243,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.15.29 + '@types/node': 24.0.3 '@types/send': 0.17.4 '@types/statuses@2.0.5': {} @@ -11268,41 +11271,41 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@vitejs/plugin-react@3.1.0(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@3.1.0(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) magic-string: 0.27.0 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.5.1(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) - '@rolldown/pluginutils': 1.0.0-beta.9 + '@babel/core': 7.27.4 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.4) + '@rolldown/pluginutils': 1.0.0-beta.11 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.2.1(vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jsdom@26.1.0)(msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -11317,50 +11320,51 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jsdom@26.1.0)(msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/expect@3.2.1': + '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.2 - '@vitest/spy': 3.2.1 - '@vitest/utils': 3.2.1 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.1(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.2.4(msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@vitest/spy': 3.2.1 + '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.9.0(@types/node@22.15.29)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + msw: 2.10.2(@types/node@24.0.3)(typescript@5.8.3) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) - '@vitest/pretty-format@3.2.1': + '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.2.1': + '@vitest/runner@3.2.4': dependencies: - '@vitest/utils': 3.2.1 + '@vitest/utils': 3.2.4 pathe: 2.0.3 + strip-literal: 3.0.0 - '@vitest/snapshot@3.2.1': + '@vitest/snapshot@3.2.4': dependencies: - '@vitest/pretty-format': 3.2.1 + '@vitest/pretty-format': 3.2.4 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.2.1': + '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.3 - '@vitest/utils@3.2.1': + '@vitest/utils@3.2.4': dependencies: - '@vitest/pretty-format': 3.2.1 - loupe: 3.1.3 + '@vitest/pretty-format': 3.2.4 + loupe: 3.1.4 tinyrainbow: 2.0.0 '@webassemblyjs/ast@1.14.1': @@ -11443,9 +11447,9 @@ snapshots: '@xtuc/long@4.2.2': {} - '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.18.20)': + '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.25.1)': dependencies: - esbuild: 0.18.20 + esbuild: 0.25.1 tslib: 2.8.1 '@yarnpkg/fslib@2.10.3': @@ -11637,16 +11641,18 @@ snapshots: transitivePeerDependencies: - debug + b4a@1.6.7: {} + babel-core@7.0.0-bridge.0(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.18.20)): + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.1)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.98.0(esbuild@0.18.20) + webpack: 5.98.0(esbuild@0.25.1) babel-plugin-istanbul@6.1.1: dependencies: @@ -11686,6 +11692,33 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@3.0.1: {} + + bare-events@2.5.4: + optional: true + + bare-fs@4.1.5: + dependencies: + bare-events: 2.5.4 + bare-path: 3.0.0 + bare-stream: 2.6.5(bare-events@2.5.4) + optional: true + + bare-os@3.6.1: + optional: true + + bare-path@3.0.0: + dependencies: + bare-os: 3.6.1 + optional: true + + bare-stream@2.6.5(bare-events@2.5.4): + dependencies: + streamx: 2.22.1 + optionalDependencies: + bare-events: 2.5.4 + optional: true + base64-js@1.5.1: {} before-after-hook@2.2.3: {} @@ -11732,22 +11765,21 @@ snapshots: dependencies: big-integer: 1.6.52 - brace-expansion@1.1.11: + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@4.0.1: dependencies: - balanced-match: 1.0.2 + balanced-match: 3.0.1 braces@3.0.3: dependencies: fill-range: 7.1.1 - braintree-web@3.120.2: + braintree-web@3.123.0: dependencies: - '@braintree/asset-loader': 2.0.2 + '@braintree/asset-loader': 2.0.3 '@braintree/browser-detection': 2.0.2 '@braintree/event-emitter': 0.4.1 '@braintree/extended-promise': 1.0.0 @@ -11895,12 +11927,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chokidar@4.0.3: - dependencies: - readdirp: 4.1.1 - - chownr@1.1.4: {} - chownr@2.0.0: {} chromatic@11.25.2: {} @@ -12026,8 +12052,6 @@ snapshots: transitivePeerDependencies: - supports-color - concat-map@0.0.1: {} - concat-stream@1.6.2: dependencies: buffer-from: 1.1.2 @@ -12270,7 +12294,7 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -12415,45 +12439,13 @@ snapshots: esbuild-plugin-alias@0.2.1: {} - esbuild-register@3.6.0(esbuild@0.18.20): - dependencies: - debug: 4.4.0 - esbuild: 0.18.20 - transitivePeerDependencies: - - supports-color - esbuild-register@3.6.0(esbuild@0.25.1): dependencies: - debug: 4.4.0 + debug: 4.4.1 esbuild: 0.25.1 transitivePeerDependencies: - supports-color - esbuild@0.18.20: - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - esbuild@0.25.1: optionalDependencies: '@esbuild/aix-ppc64': 0.25.1 @@ -12689,6 +12681,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13123,7 +13117,7 @@ snapshots: https-proxy-agent@4.0.0: dependencies: agent-base: 5.1.1 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -13452,7 +13446,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.29 + '@types/node': 24.0.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13467,14 +13461,14 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.15.29 + '@types/node': 24.0.3 jest-regex-util@29.6.3: {} jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.29 + '@types/node': 24.0.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13482,13 +13476,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -13809,6 +13803,8 @@ snapshots: loupe@3.1.3: {} + loupe@3.1.4: {} + lru-cache@10.4.3: {} lru-cache@5.1.1: @@ -14465,7 +14461,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.1 decode-named-character-reference: 1.1.0 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -14529,27 +14525,27 @@ snapshots: minimatch@3.0.5: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 2.0.1 minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 4.0.1 minimatch@5.1.6: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 4.0.1 minimatch@8.0.4: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 4.0.1 minimatch@9.0.3: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 4.0.1 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 4.0.1 minimist-options@4.1.0: dependencies: @@ -14563,7 +14559,7 @@ snapshots: dependencies: commander: 11.1.0 dts-minify: 0.3.3 - esbuild: 0.18.20 + esbuild: 0.25.1 glob: 10.4.5 pretty-bytes: 6.1.1 progress-barjs: 2.2.1 @@ -14608,8 +14604,6 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mkdirp-classic@0.5.3: {} - mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -14631,13 +14625,13 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@22.15.29)(typescript@5.8.3): + msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.15.29) - '@mswjs/interceptors': 0.37.6 + '@inquirer/confirm': 5.1.8(@types/node@24.0.3) + '@mswjs/interceptors': 0.39.2 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -14656,13 +14650,13 @@ snapshots: transitivePeerDependencies: - '@types/node' - msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3): + msw@2.7.3(@types/node@24.0.3)(typescript@5.8.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@22.15.29) - '@mswjs/interceptors': 0.38.7 + '@inquirer/confirm': 5.1.8(@types/node@24.0.3) + '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -15180,11 +15174,11 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - playwright-core@1.52.0: {} + playwright-core@1.53.1: {} - playwright@1.52.0: + playwright@1.53.1: dependencies: - playwright-core: 1.52.0 + playwright-core: 1.53.1 optionalDependencies: fsevents: 2.3.2 @@ -15889,7 +15883,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 - debug: 4.4.0 + debug: 4.4.1 socks: 2.8.4 transitivePeerDependencies: - supports-color @@ -15965,6 +15959,7 @@ snapshots: dependencies: '@storybook/cli': 7.6.20(encoding@0.1.13) transitivePeerDependencies: + - bare-buffer - bufferutil - encoding - supports-color @@ -15982,6 +15977,13 @@ snapshots: stream-shift@1.0.3: {} + streamx@2.22.1: + dependencies: + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + optionalDependencies: + bare-events: 2.5.4 + strict-event-emitter@0.5.1: {} string-width@4.2.3: @@ -16028,6 +16030,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.0.0: + dependencies: + js-tokens: 9.0.1 + strong-log-transformer@2.1.0: dependencies: duplexer: 0.1.2 @@ -16065,12 +16071,15 @@ snapshots: tapable@2.2.1: {} - tar-fs@2.1.2: + tar-fs@3.0.10: dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 pump: 3.0.2 - tar-stream: 2.2.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 4.1.5 + bare-path: 3.0.0 + transitivePeerDependencies: + - bare-buffer tar-stream@2.2.0: dependencies: @@ -16080,6 +16089,12 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + tar-stream@3.1.7: + dependencies: + b4a: 1.6.7 + fast-fifo: 1.3.2 + streamx: 2.22.1 + tar@6.2.1: dependencies: chownr: 2.0.0 @@ -16109,16 +16124,16 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.3.14(esbuild@0.18.20)(webpack@5.98.0(esbuild@0.18.20)): + terser-webpack-plugin@5.3.14(esbuild@0.25.1)(webpack@5.98.0(esbuild@0.25.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(esbuild@0.18.20) + webpack: 5.98.0(esbuild@0.25.1) optionalDependencies: - esbuild: 0.18.20 + esbuild: 0.25.1 terser@5.39.0: dependencies: @@ -16139,6 +16154,10 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 + text-decoder@1.2.3: + dependencies: + b4a: 1.6.7 + text-extensions@1.9.0: {} thenify-all@1.6.0: @@ -16167,7 +16186,7 @@ snapshots: fdir: 6.4.5(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.1.0: {} + tinypool@1.1.1: {} tinyrainbow@1.2.0: {} @@ -16286,7 +16305,7 @@ snapshots: tuf-js@2.2.1: dependencies: '@tufjs/models': 2.0.1 - debug: 4.4.0 + debug: 4.4.1 make-fetch-happen: 13.0.1 transitivePeerDependencies: - supports-color @@ -16341,7 +16360,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.21.0: {} + undici-types@7.8.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -16541,13 +16560,13 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-node@3.2.1(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0): + vite-node@3.2.4(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -16562,43 +16581,18 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)): - dependencies: - debug: 4.4.0 - globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.3) - optionalDependencies: - vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite@6.2.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0): - dependencies: - esbuild: 0.25.1 - fdir: 6.4.3(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.35.0 - tinyglobby: 0.2.12 - optionalDependencies: - '@types/node': 22.15.29 - fsevents: 2.3.3 - terser: 5.39.0 - yaml: 2.7.0 - - vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0): + vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 fdir: 6.4.5(picomatch@4.0.2) @@ -16607,21 +16601,21 @@ snapshots: rollup: 4.35.0 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.0.3 fsevents: 2.3.3 terser: 5.39.0 yaml: 2.7.0 - vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jsdom@26.1.0)(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.3)(jsdom@26.1.0)(msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3))(terser@5.39.0)(yaml@2.7.0): dependencies: '@types/chai': 5.2.2 - '@vitest/expect': 3.2.1 - '@vitest/mocker': 3.2.1(msw@2.9.0(@types/node@22.15.29)(typescript@5.8.3))(vite@6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.2.1 - '@vitest/runner': 3.2.1 - '@vitest/snapshot': 3.2.1 - '@vitest/spy': 3.2.1 - '@vitest/utils': 3.2.1 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.10.2(@types/node@24.0.3)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 chai: 5.2.0 debug: 4.4.1 expect-type: 1.2.1 @@ -16632,14 +16626,14 @@ snapshots: tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.14 - tinypool: 1.1.0 + tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.2.1(@types/node@22.15.29)(terser@5.39.0)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.2.4(@types/node@24.0.3)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.15.29 + '@types/node': 24.0.3 jsdom: 26.1.0 transitivePeerDependencies: - jiti @@ -16684,7 +16678,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.98.0(esbuild@0.18.20): + webpack@5.98.0(esbuild@0.25.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -16706,7 +16700,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(esbuild@0.18.20)(webpack@5.98.0(esbuild@0.18.20)) + terser-webpack-plugin: 5.3.14(esbuild@0.25.1)(webpack@5.98.0(esbuild@0.25.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: From 39279b5cc68ba870306f7b6a2e75a07e96306ac4 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 20 Jun 2025 15:51:14 +0200 Subject: [PATCH 061/165] Fix avoid place order in draft --- packages/react-components/package.json | 26 ++++++++-------- .../payment_source/StripePayment.tsx | 30 +++++++++++++++++-- .../src/reducers/PaymentMethodReducer.ts | 7 +++++ 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 2ee1052f..3b531fae 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -157,14 +157,14 @@ }, "homepage": "https://github.com/commercelayer/commercelayer-react-components#readme", "dependencies": { - "@adyen/adyen-web": "^6.15.0", + "@adyen/adyen-web": "^6.17.0", "@commercelayer/organization-config": "^2.3.0", - "@commercelayer/sdk": "^6.42.0", + "@commercelayer/sdk": "^6.44.0", "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.1", "@tanstack/react-table": "^8.21.3", "@types/iframe-resizer": "^3.5.13", - "braintree-web": "^3.120.2", + "braintree-web": "^3.123.0", "frames-react": "^1.2.2", "iframe-resizer": "^4.3.6", "jwt-decode": "^4.0.0", @@ -174,21 +174,21 @@ "devDependencies": { "@commercelayer/js-auth": "^6.7.2", "@faker-js/faker": "^9.8.0", - "@playwright/test": "^1.52.0", + "@playwright/test": "^1.53.1", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.3.0", "@types/braintree-web": "^3.96.17", - "@types/lodash": "^4.17.17", - "@types/node": "^22.15.29", - "@types/prop-types": "^15.7.14", - "@types/react": "^19.0.12", - "@types/react-test-renderer": "^19.0.0", + "@types/lodash": "^4.17.18", + "@types/node": "^24.0.3", + "@types/prop-types": "^15.7.15", + "@types/react": "^18.3.1", + "@types/react-test-renderer": "^18.3.1", "@types/react-window": "^1.8.8", - "@vitejs/plugin-react": "^4.5.1", - "@vitest/coverage-v8": "^3.2.1", + "@vitejs/plugin-react": "^4.5.2", + "@vitest/coverage-v8": "^3.2.4", "jsdom": "^26.1.0", "minimize-js": "^1.4.0", - "msw": "^2.9.0", + "msw": "^2.10.2", "react": "^18.3.1", "react-dom": "^18.3.1", "react-test-renderer": "^18.3.1", @@ -197,7 +197,7 @@ "typescript": "^5.8.3", "vite": "^6.3.5", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^3.2.1" + "vitest": "^3.2.4" }, "peerDependencies": { "react": ">=18.0.0" diff --git a/packages/react-components/src/components/payment_source/StripePayment.tsx b/packages/react-components/src/components/payment_source/StripePayment.tsx index 8609ad79..062626df 100644 --- a/packages/react-components/src/components/payment_source/StripePayment.tsx +++ b/packages/react-components/src/components/payment_source/StripePayment.tsx @@ -93,7 +93,29 @@ function StripePaymentForm({ elements, }: OnSubmitArgs): Promise => { if (!stripe) return false - + const sdk = sdkClient() + if (sdk == null) return false + if (order == null) return false + const { status } = await sdk.orders.retrieve(order?.id, { + fields: ["status"], + }) + const isDraftOrder = status === "draft" + if (isDraftOrder) { + /** + * Draft order cannot be placed + */ + setOrderErrors([ + { + code: "VALIDATION_ERROR", + resource: "orders", + message: "Draft order cannot be placed", + }, + ]) + setPlaceOrderStatus?.({ + status: "disabled", + }) + return false + } const savePaymentSourceToCustomerWallet: string = // @ts-expect-error no type event?.elements?.save_payment_source_to_customer_wallet?.checked @@ -148,8 +170,12 @@ function StripePaymentForm({ } async function handleChange(event: StripePaymentElementChangeEvent) { + console.debug("StripePaymentElement onChange event", { event }) // Handle change events from the PaymentElement - if (event.complete) { + if ( + event.complete && + ["applepay", "googlepay"].includes(event.value.type) + ) { const sdk = sdkClient() if (sdk == null) return if (order == null) return diff --git a/packages/react-components/src/reducers/PaymentMethodReducer.ts b/packages/react-components/src/reducers/PaymentMethodReducer.ts index 2792bb18..a08e633f 100644 --- a/packages/react-components/src/reducers/PaymentMethodReducer.ts +++ b/packages/react-components/src/reducers/PaymentMethodReducer.ts @@ -355,6 +355,7 @@ export async function setPaymentSource({ resource: "payment_methods", field: paymentResource, }) + console.error("Set payment source:", errors) if (errors != null && errors?.length > 0) { const [error] = errors if (error?.status === "401" && getOrder != null && order != null) { @@ -370,6 +371,12 @@ export async function setPaymentSource({ dispatch, }) } + } else { + setErrors({ + currentErrors, + newErrors: errors, + dispatch, + }) } } else { setErrors({ From 4bee8abc2995fe865281223c3a47816c9bcbc76e Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 20 Jun 2025 15:51:39 +0200 Subject: [PATCH 062/165] v4.24.1-beta.4 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index dee9e11b..123144f4 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.1-beta.3", + "version": "4.24.1-beta.4", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 3b531fae..4faac14c 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.1-beta.3", + "version": "4.24.1-beta.4", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From ead2d4cefc5eb64c0a51d06ed2c93c7a06310c73 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 20 Jun 2025 15:53:34 +0200 Subject: [PATCH 063/165] Update biome configuration --- biome.json | 68 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/biome.json b/biome.json index 173dadfd..7440f4c5 100644 --- a/biome.json +++ b/biome.json @@ -1,31 +1,41 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "vcs": { - "enabled": false, - "clientKind": "git", - "useIgnoreFile": false - }, - "files": { - "ignoreUnknown": false, - "ignore": [] - }, - "formatter": { - "enabled": true, - "indentStyle": "space" - }, - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "recommended": true - } - }, - "javascript": { - "formatter": { - "quoteStyle": "double", - "semicolons": "asNeeded" - } - } + "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "includes": ["**"] + }, + "formatter": { + "enabled": true, + "indentStyle": "space" + }, + "assist": { "actions": { "source": { "organizeImports": "on" } } }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "style": { + "noParameterAssign": "error", + "useAsConstAssertion": "error", + "useDefaultParameterLast": "error", + "useEnumInitializers": "error", + "useSelfClosingElements": "error", + "useSingleVarDeclarator": "error", + "noUnusedTemplateLiteral": "error", + "useNumberNamespace": "error", + "noInferrableTypes": "error", + "noUselessElse": "error" + } + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double", + "semicolons": "asNeeded" + } + } } From 68a125a50e7382ed25121437abbb761a838f10fe Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 20 Jun 2025 17:29:11 +0200 Subject: [PATCH 064/165] v4.24.1 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 123144f4..2c4f674d 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.1-beta.4", + "version": "4.24.1", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 4faac14c..9093418e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.1-beta.4", + "version": "4.24.1", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 554138f56bb09e3410ff4116c1e200f0c6b79062 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 23 Jun 2025 11:43:03 +0200 Subject: [PATCH 065/165] Add new prop `showLoader` in `PaymentMethod` component --- .../payment_methods/PaymentMethod.tsx | 50 +++++++++++++------ .../PaymentMethodsContainer.tsx | 25 ++++++---- 2 files changed, 49 insertions(+), 26 deletions(-) diff --git a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx index 3780553c..51d78272 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx @@ -1,31 +1,31 @@ +import type { + Order, + PaymentMethod as PaymentMethodType, +} from "@commercelayer/sdk" import { - useState, - useEffect, + type JSX, type MouseEvent, useContext, - type JSX, + useEffect, + useState, } from "react" -import PaymentMethodContext from "#context/PaymentMethodContext" +import CustomerContext from "#context/CustomerContext" +import OrderContext from "#context/OrderContext" import PaymentMethodChildrenContext from "#context/PaymentMethodChildrenContext" -import type { LoaderType } from "#typings" -import getLoaderComponent from "#utils/getLoaderComponent" -import type { - Order, - PaymentMethod as PaymentMethodType, -} from "@commercelayer/sdk" +import PaymentMethodContext from "#context/PaymentMethodContext" +import PlaceOrderContext from "#context/PlaceOrderContext" import type { PaymentResource } from "#reducers/PaymentMethodReducer" -import useCustomContext from "#utils/hooks/useCustomContext" +import type { LoaderType } from "#typings" import type { DefaultChildrenType } from "#typings/globals" -import OrderContext from "#context/OrderContext" -import CustomerContext from "#context/CustomerContext" +import { getAvailableExpressPayments } from "#utils/expressPaymentHelper" +import getLoaderComponent from "#utils/getLoaderComponent" import { getCkoAttributes, getExternalPaymentAttributes, getPaypalAttributes, } from "#utils/getPaymentAttributes" +import useCustomContext from "#utils/hooks/useCustomContext" import { isEmpty } from "#utils/isEmpty" -import { getAvailableExpressPayments } from "#utils/expressPaymentHelper" -import PlaceOrderContext from "#context/PlaceOrderContext" import { sortPaymentMethods } from "#utils/payment-methods/sortPaymentMethods" export interface PaymentMethodOnClickParams { @@ -48,6 +48,11 @@ type Props = { * Customize the loader component */ loader?: LoaderType + /** + * Show loader while fetching payment methods + * @default undefined + */ + showLoader?: boolean /** * Auto select the payment method when there is only one available */ @@ -82,6 +87,7 @@ export function PaymentMethod({ clickableContainer, autoSelectSinglePaymentMethod, expressPayments, + showLoader, hide, onClick, sortBy, @@ -98,6 +104,7 @@ export function PaymentMethod({ paymentSource, setPaymentSource, config, + errors, } = useCustomContext({ context: PaymentMethodContext, contextComponentName: "PaymentMethodsContainer", @@ -219,7 +226,18 @@ export function PaymentMethod({ setPaymentSelected("") } }, [paymentMethods, currentPaymentMethodId]) - + useEffect(() => { + console.log("showLoader", { showLoader }) + // If showLoader is undefined, we don't change the loading + if (showLoader !== undefined) { + if (showLoader && errors?.length === 0) { + console.log("showLoader is true") + setLoading(true) + } else { + setLoading(false) + } + } + }, [showLoader, errors?.length]) const sortedPaymentMethods = paymentMethods != null && sortBy != null ? sortPaymentMethods(paymentMethods, sortBy) diff --git a/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx b/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx index abd255ad..dfa41f1c 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethodsContainer.tsx @@ -1,32 +1,37 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ -import PaymentMethodContext, { - defaultPaymentMethodContext, -} from "#context/PaymentMethodContext" import { + type JSX, type ReactNode, useContext, useEffect, - useReducer, useMemo, - type JSX, + useReducer, } from "react" +import CommerceLayerContext from "#context/CommerceLayerContext" +import OrderContext from "#context/OrderContext" +import PaymentMethodContext, { + defaultPaymentMethodContext, +} from "#context/PaymentMethodContext" import paymentMethodReducer, { - paymentMethodInitialState, getPaymentMethods, type PaymentMethodConfig, - setPaymentMethodConfig, type PaymentRef, + paymentMethodInitialState, + setPaymentMethodConfig, setPaymentRef, } from "#reducers/PaymentMethodReducer" -import OrderContext from "#context/OrderContext" -import CommerceLayerContext from "#context/CommerceLayerContext" import type { BaseError } from "#typings/errors" import useCustomContext from "#utils/hooks/useCustomContext" import { isEmpty } from "#utils/isEmpty" import { setCustomerOrderParam } from "#utils/localStorage" interface Props { + /** + * The children components to render inside the PaymentMethodsContainer. + */ children: ReactNode + /** + * Optional configuration for payment methods. + */ config?: PaymentMethodConfig } export function PaymentMethodsContainer(props: Props): JSX.Element { From 98cf220394947ea34c74d24546c2d99da1e59b95 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Mon, 23 Jun 2025 11:44:05 +0200 Subject: [PATCH 066/165] v4.25.0-beta.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 2c4f674d..09df5b36 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.24.1", + "version": "4.25.0-beta.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 9093418e..be449aa9 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.24.1", + "version": "4.25.0-beta.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From e6c7afbc6682b787a49d893d98a874871b5f784a Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 24 Jun 2025 17:31:12 +0200 Subject: [PATCH 067/165] Fix `showLoader` flow --- .../payment_methods/PaymentMethod.tsx | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx index 51d78272..ef321dea 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx @@ -132,7 +132,11 @@ export function PaymentMethod({ if (ps && paymentMethod && onClick != null) { onClick({ payment: paymentMethod, order, paymentSource: ps }) setTimeout(() => { - setLoading(false) + if (showLoader) { + setLoading(showLoader) + } else { + setLoading(false) + } }, 200) } setLoadingPlaceOrder({ loading: false }) @@ -186,7 +190,11 @@ export function PaymentMethod({ setPaymentSourceCreated(true) onClick({ payment: paymentMethod, order, paymentSource: ps }) setTimeout(() => { - setLoading(false) + if (showLoader) { + setLoading(showLoader) + } else { + setLoading(false) + } }, 200) } if (getCustomerPaymentSources) { @@ -199,7 +207,11 @@ export function PaymentMethod({ } } else { setTimeout(() => { - setLoading(false) + if (showLoader) { + setLoading(showLoader) + } else { + setLoading(false) + } }, 200) } } @@ -213,11 +225,19 @@ export function PaymentMethod({ if (isSingle && autoSelectSinglePaymentMethod) { if (paymentSource) { setTimeout(() => { - setLoading(false) + if (showLoader) { + setLoading(showLoader) + } else { + setLoading(false) + } }, 200) } } else { - setLoading(false) + if (showLoader) { + setLoading(showLoader) + } else { + setLoading(false) + } } } if (currentPaymentMethodId) setPaymentSelected(currentPaymentMethodId) From 310c236d102c22e2d2a336a080680fe20be89455 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Tue, 24 Jun 2025 17:32:20 +0200 Subject: [PATCH 068/165] v4.25.0-beta.1 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 09df5b36..41869fa8 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.25.0-beta.0", + "version": "4.25.0-beta.1", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index be449aa9..fa5452a4 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.25.0-beta.0", + "version": "4.25.0-beta.1", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 83f69ee33beaae0f4fc0eb109af2a9e6b0e2fff1 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 25 Jun 2025 12:29:27 +0200 Subject: [PATCH 069/165] Remove unused code --- .../src/components/payment_gateways/StripeGateway.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/react-components/src/components/payment_gateways/StripeGateway.tsx b/packages/react-components/src/components/payment_gateways/StripeGateway.tsx index e9eb72d7..f3b9b69f 100644 --- a/packages/react-components/src/components/payment_gateways/StripeGateway.tsx +++ b/packages/react-components/src/components/payment_gateways/StripeGateway.tsx @@ -1,3 +1,6 @@ +import type { StripeElementLocale } from "@stripe/stripe-js" +import isEmpty from "lodash/isEmpty" +import { type JSX, useContext } from "react" import type { GatewayBaseType } from "#components/payment_gateways/PaymentGateway" import StripePayment from "#components/payment_source/StripePayment" import CustomerContext from "#context/CustomerContext" @@ -10,9 +13,6 @@ import { type PaymentResource, } from "#reducers/PaymentMethodReducer" import getCardDetails from "#utils/getCardDetails" -import type { StripeElementLocale } from "@stripe/stripe-js" -import isEmpty from "lodash/isEmpty" -import { useContext, type JSX } from "react" import PaymentCardsTemplate from "../utils/PaymentCardsTemplate" type Props = GatewayBaseType @@ -25,8 +25,6 @@ export function StripeGateway(props: Props): JSX.Element | null { children, templateCustomerCards, show, - loading, - loaderComponent, templateCustomerSaveToWallet, ...p } = props From 6b3abeb806ff0515e1052b138c5491f4dc294bd1 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Wed, 25 Jun 2025 14:36:11 +0200 Subject: [PATCH 070/165] v4.25.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 41869fa8..66a943b3 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.25.0-beta.1", + "version": "4.25.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index fa5452a4..8ba6440a 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.25.0-beta.1", + "version": "4.25.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 7d7dff78055c8c98980c61ed2924b38a7323a4a1 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 26 Jun 2025 19:08:07 +0200 Subject: [PATCH 071/165] Fix draft order and showLoader flow --- .../components/orders/PlaceOrderButton.tsx | 37 ++++++----- .../payment_methods/PaymentMethod.tsx | 33 ++++++---- .../payment_source/StripePayment.tsx | 62 ++++++++++--------- 3 files changed, 74 insertions(+), 58 deletions(-) diff --git a/packages/react-components/src/components/orders/PlaceOrderButton.tsx b/packages/react-components/src/components/orders/PlaceOrderButton.tsx index 867eb542..4b0bf506 100644 --- a/packages/react-components/src/components/orders/PlaceOrderButton.tsx +++ b/packages/react-components/src/components/orders/PlaceOrderButton.tsx @@ -1,23 +1,23 @@ +import type { Order } from "@commercelayer/sdk" +import isFunction from "lodash/isFunction" import { + type JSX, + type MouseEvent, type ReactNode, useContext, useEffect, useRef, useState, - type MouseEvent, - type JSX, } from "react" -import Parent from "../utils/Parent" -import type { ChildrenFunction } from "#typings/index" -import PlaceOrderContext from "#context/PlaceOrderContext" -import isFunction from "lodash/isFunction" -import PaymentMethodContext from "#context/PaymentMethodContext" import OrderContext from "#context/OrderContext" -import getCardDetails from "#utils/getCardDetails" +import PaymentMethodContext from "#context/PaymentMethodContext" +import PlaceOrderContext from "#context/PlaceOrderContext" +import useCommerceLayer from "#hooks/useCommerceLayer" import type { BaseError } from "#typings/errors" -import type { Order } from "@commercelayer/sdk" +import type { ChildrenFunction } from "#typings/index" +import getCardDetails from "#utils/getCardDetails" import { checkPaymentIntent } from "#utils/stripe/retrievePaymentIntent" -import useCommerceLayer from "#hooks/useCommerceLayer" +import Parent from "../utils/Parent" interface ChildrenProps extends Omit { /** @@ -291,7 +291,6 @@ export function PlaceOrderButton(props: Props): JSX.Element { }) } }, [order, order?.payment_status, order?.status, paymentType, onClick]) - // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test useEffect(() => { // Checkout.com redirect flow if ( @@ -303,8 +302,8 @@ export function PlaceOrderButton(props: Props): JSX.Element { ) { // @ts-expect-error no type const paymentResponse = order?.payment_source?.payment_response - const paymentStatus = paymentResponse?.status?.toLowerCase() - if (paymentStatus === "pending") { + const paymentStatus = paymentResponse?.status + if (paymentStatus && paymentStatus.toLowerCase() === "pending") { setPaymentSource({ paymentSourceId: paymentSource?.id, paymentResource: "checkout_com_payments", @@ -314,7 +313,7 @@ export function PlaceOrderButton(props: Props): JSX.Element { }).then((res) => { // @ts-expect-error no type const paymentStatus: string = res?.payment_response?.status - if (paymentStatus.toLowerCase() === "authorized") { + if (paymentStatus && paymentStatus.toLowerCase() === "authorized") { handleClick() } else { if (options?.checkoutCom) { @@ -345,8 +344,11 @@ export function PlaceOrderButton(props: Props): JSX.Element { */ const paymentSourceStatus = // @ts-expect-error no type - order?.payment_source?.payment_response?.status.toLowerCase() - if (["captured", "authorized"].includes(paymentSourceStatus)) { + order?.payment_source?.payment_response?.status + if ( + paymentSourceStatus && + ["captured", "authorized"].includes(paymentSourceStatus.toLowerCase()) + ) { setPlaceOrder?.({ paymentSource, }).then((placed) => { @@ -360,7 +362,6 @@ export function PlaceOrderButton(props: Props): JSX.Element { } } }, [options?.checkoutCom, paymentType, order?.payment_source?.id, status]) - // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test useEffect(() => { if (ref?.current != null && setButtonRef != null) { setButtonRef(ref) @@ -477,6 +478,8 @@ export function PlaceOrderButton(props: Props): JSX.Element { currentPaymentMethodRef?.current?.onsubmit && options?.checkoutCom?.session_id && // @ts-expect-error no type + checkPaymentSource?.payment_response?.status && + // @ts-expect-error no type checkPaymentSource?.payment_response?.status?.toLowerCase() === "declined" ) { /** diff --git a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx index ef321dea..456d5cdf 100644 --- a/packages/react-components/src/components/payment_methods/PaymentMethod.tsx +++ b/packages/react-components/src/components/payment_methods/PaymentMethod.tsx @@ -114,6 +114,9 @@ export function PaymentMethod({ const { order } = useContext(OrderContext) const { getCustomerPaymentSources } = useContext(CustomerContext) const { status } = useContext(PlaceOrderContext) + console.log("PaymentMethod", { + errors, + }) useEffect(() => { if (paymentMethods != null && !isEmpty(paymentMethods) && expressPayments) { const [paymentMethod] = getAvailableExpressPayments(paymentMethods) @@ -132,7 +135,7 @@ export function PaymentMethod({ if (ps && paymentMethod && onClick != null) { onClick({ payment: paymentMethod, order, paymentSource: ps }) setTimeout(() => { - if (showLoader) { + if (showLoader && errors?.length === 0) { setLoading(showLoader) } else { setLoading(false) @@ -144,7 +147,7 @@ export function PaymentMethod({ selectExpressPayment() } } - }, [!isEmpty(paymentMethods), expressPayments]) + }, [!isEmpty(paymentMethods), expressPayments, errors?.length]) useEffect(() => { if ( paymentMethods != null && @@ -190,7 +193,7 @@ export function PaymentMethod({ setPaymentSourceCreated(true) onClick({ payment: paymentMethod, order, paymentSource: ps }) setTimeout(() => { - if (showLoader) { + if (showLoader && errors?.length === 0) { setLoading(showLoader) } else { setLoading(false) @@ -207,7 +210,7 @@ export function PaymentMethod({ } } else { setTimeout(() => { - if (showLoader) { + if (showLoader && errors?.length === 0) { setLoading(showLoader) } else { setLoading(false) @@ -218,14 +221,14 @@ export function PaymentMethod({ autoSelect() } } - }, [!isEmpty(paymentMethods), order?.payment_source != null]) + }, [!isEmpty(paymentMethods), order?.payment_source != null, errors?.length]) useEffect(() => { if (paymentMethods) { const isSingle = paymentMethods.length === 1 if (isSingle && autoSelectSinglePaymentMethod) { if (paymentSource) { setTimeout(() => { - if (showLoader) { + if (showLoader && errors?.length === 0) { setLoading(showLoader) } else { setLoading(false) @@ -233,7 +236,7 @@ export function PaymentMethod({ }, 200) } } else { - if (showLoader) { + if (showLoader && errors?.length === 0) { setLoading(showLoader) } else { setLoading(false) @@ -245,19 +248,23 @@ export function PaymentMethod({ setLoading(true) setPaymentSelected("") } - }, [paymentMethods, currentPaymentMethodId]) + }, [paymentMethods, currentPaymentMethodId, errors?.length]) useEffect(() => { - console.log("showLoader", { showLoader }) + // @ts-expect-error no type + const status = order?.payment_source?.payment_response?.status // If showLoader is undefined, we don't change the loading if (showLoader !== undefined) { - if (showLoader && errors?.length === 0) { - console.log("showLoader is true") - setLoading(true) + if (showLoader && status) { + if (status.toLowerCase() === "declined") { + setLoading(false) + } else { + setLoading(true) + } } else { setLoading(false) } } - }, [showLoader, errors?.length]) + }, [showLoader, order?.payment_source]) const sortedPaymentMethods = paymentMethods != null && sortBy != null ? sortPaymentMethods(paymentMethods, sortBy) diff --git a/packages/react-components/src/components/payment_source/StripePayment.tsx b/packages/react-components/src/components/payment_source/StripePayment.tsx index 062626df..7cee18e4 100644 --- a/packages/react-components/src/components/payment_source/StripePayment.tsx +++ b/packages/react-components/src/components/payment_source/StripePayment.tsx @@ -1,5 +1,3 @@ -import { useContext, useEffect, useRef, useState, type JSX } from "react" -import PaymentMethodContext from "#context/PaymentMethodContext" import { Elements, PaymentElement, useElements } from "@stripe/react-stripe-js" import type { Stripe, @@ -10,14 +8,16 @@ import type { StripePaymentElementChangeEvent, StripePaymentElementOptions, } from "@stripe/stripe-js" -import type { PaymentMethodConfig } from "#reducers/PaymentMethodReducer" -import type { PaymentSourceProps } from "./PaymentSource" +import { type JSX, useContext, useEffect, useRef, useState } from "react" import Parent from "#components/utils/Parent" -import { setCustomerOrderParam } from "#utils/localStorage" import OrderContext from "#context/OrderContext" -import { StripeExpressPayment } from "./StripeExpressPayment" -import useCommerceLayer from "#hooks/useCommerceLayer" +import PaymentMethodContext from "#context/PaymentMethodContext" import PlaceOrderContext from "#context/PlaceOrderContext" +import useCommerceLayer from "#hooks/useCommerceLayer" +import type { PaymentMethodConfig } from "#reducers/PaymentMethodReducer" +import { setCustomerOrderParam } from "#utils/localStorage" +import type { PaymentSourceProps } from "./PaymentSource" +import { StripeExpressPayment } from "./StripeExpressPayment" export interface StripeConfig { containerClassName?: string @@ -59,6 +59,8 @@ const defaultAppearance: StripeElementsOptions["appearance"] = { }, } +let selectedPaymentMethodType: string | null = null + function StripePaymentForm({ options = defaultOptions, templateCustomerSaveToWallet, @@ -71,7 +73,6 @@ function StripePaymentForm({ const { sdkClient } = useCommerceLayer() const { setPlaceOrderStatus } = useContext(PlaceOrderContext) const elements = useElements() - // biome-ignore lint/correctness/useExhaustiveDependencies: Avoid rerendering the form useEffect(() => { if (ref.current && stripe && elements) { ref.current.onsubmit = async () => { @@ -96,25 +97,30 @@ function StripePaymentForm({ const sdk = sdkClient() if (sdk == null) return false if (order == null) return false - const { status } = await sdk.orders.retrieve(order?.id, { - fields: ["status"], - }) - const isDraftOrder = status === "draft" - if (isDraftOrder) { - /** - * Draft order cannot be placed - */ - setOrderErrors([ - { - code: "VALIDATION_ERROR", - resource: "orders", - message: "Draft order cannot be placed", - }, - ]) - setPlaceOrderStatus?.({ - status: "disabled", + if ( + selectedPaymentMethodType && + !["apple_pay", "google_pay"].includes(selectedPaymentMethodType) + ) { + const { status } = await sdk.orders.retrieve(order?.id, { + fields: ["status"], }) - return false + const isDraftOrder = status === "draft" + if (isDraftOrder) { + /** + * Draft order cannot be placed + */ + setOrderErrors([ + { + code: "VALIDATION_ERROR", + resource: "orders", + message: "Draft order cannot be placed", + }, + ]) + setPlaceOrderStatus?.({ + status: "disabled", + }) + return false + } } const savePaymentSourceToCustomerWallet: string = // @ts-expect-error no type @@ -171,10 +177,11 @@ function StripePaymentForm({ async function handleChange(event: StripePaymentElementChangeEvent) { console.debug("StripePaymentElement onChange event", { event }) + selectedPaymentMethodType = event.value.type // Handle change events from the PaymentElement if ( event.complete && - ["applepay", "googlepay"].includes(event.value.type) + ["apple_pay", "google_pay"].includes(event.value.type) ) { const sdk = sdkClient() if (sdk == null) return @@ -249,7 +256,6 @@ export function StripePayment({ appearance, ...divProps } = p - // biome-ignore lint/correctness/useExhaustiveDependencies: Avoid refreshing the stripe object useEffect(() => { if (show && publishableKey) { import("@stripe/stripe-js").then(({ loadStripe }) => { From 6f9c5a28ed917c410956d326858405abc3a30f4c Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Thu, 26 Jun 2025 19:10:38 +0200 Subject: [PATCH 072/165] v4.25.1-beta.0 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 66a943b3..01efd8ea 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.25.0", + "version": "4.25.1-beta.0", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 8ba6440a..db174992 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.25.0", + "version": "4.25.1-beta.0", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 2c7d089856d94ca7410d8a5cc3b554bdc82bdd31 Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 27 Jun 2025 16:16:38 +0200 Subject: [PATCH 073/165] v4.25.1 --- lerna.json | 2 +- packages/react-components/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lerna.json b/lerna.json index 01efd8ea..4583bd0f 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": false, "npmClient": "pnpm", - "version": "4.25.1-beta.0", + "version": "4.25.1", "command": { "version": { "preid": "beta" diff --git a/packages/react-components/package.json b/packages/react-components/package.json index db174992..97b1307e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -1,6 +1,6 @@ { "name": "@commercelayer/react-components", - "version": "4.25.1-beta.0", + "version": "4.25.1", "description": "The Official Commerce Layer React Components", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", From 9cd6bb337073a0120deb299aedd7fca72a0f991c Mon Sep 17 00:00:00 2001 From: Alessandro Casazza Date: Fri, 11 Jul 2025 12:19:01 +0200 Subject: [PATCH 074/165] Fix post requests when a customer edit an address --- .../src/components/addresses/Address.tsx | 64 +++--- .../src/components/addresses/AddressField.tsx | 38 ++-- .../addresses/SaveAddressesButton.tsx | 72 +++---- .../payment_methods/PaymentMethod.tsx | 3 - .../src/reducers/AddressReducer.ts | 185 ++++++++++-------- .../src/reducers/PlaceOrderReducer.ts | 14 +- .../src/utils/addressesManager.ts | 95 +++++---- 7 files changed, 252 insertions(+), 219 deletions(-) diff --git a/packages/react-components/src/components/addresses/Address.tsx b/packages/react-components/src/components/addresses/Address.tsx index 62ae2be1..071f0205 100644 --- a/packages/react-components/src/components/addresses/Address.tsx +++ b/packages/react-components/src/components/addresses/Address.tsx @@ -1,21 +1,21 @@ -import { useContext, useState, useEffect, type JSX } from 'react'; -import AddressChildrenContext from '#context/AddressChildrenContext' -import CustomerContext from '#context/CustomerContext' -import BillingAddressContext from '#context/BillingAddressContext' -import ShippingAddressContext from '#context/ShippingAddressContext' -import type { Address as AddressType } from '@commercelayer/sdk' -import isEmpty from 'lodash/isEmpty' -import AddressContext from '#context/AddressContext' -import OrderContext from '#context/OrderContext' +import type { Address as AddressType } from "@commercelayer/sdk" +import isEmpty from "lodash/isEmpty" +import { type JSX, useContext, useEffect, useState } from "react" import AddressCardsTemplate, { type AddressCardsTemplateChildren, type CustomerAddress, - type HandleSelect -} from '#components/utils/AddressCardsTemplate' -import type { DefaultChildrenType } from '#typings/globals' + type HandleSelect, +} from "#components/utils/AddressCardsTemplate" +import AddressChildrenContext from "#context/AddressChildrenContext" +import AddressContext from "#context/AddressContext" +import BillingAddressContext from "#context/BillingAddressContext" +import CustomerContext from "#context/CustomerContext" +import OrderContext from "#context/OrderContext" +import ShippingAddressContext from "#context/ShippingAddressContext" +import type { DefaultChildrenType } from "#typings/globals" interface Props - extends Omit { + extends Omit { children: DefaultChildrenType | AddressCardsTemplateChildren selectedClassName?: string disabledClassName?: string @@ -45,8 +45,8 @@ export function Address(props: Props): JSX.Element { const { children, className, - selectedClassName = '', - disabledClassName = '', + selectedClassName = "", + disabledClassName = "", onSelect, addresses = [], deselect = false, @@ -54,10 +54,10 @@ export function Address(props: Props): JSX.Element { } = props const { addresses: addressesContext } = useContext(CustomerContext) const { setBillingAddress, billingCustomerAddressId } = useContext( - BillingAddressContext + BillingAddressContext, ) const { setShippingAddress, shippingCustomerAddressId } = useContext( - ShippingAddressContext + ShippingAddressContext, ) const { shipToDifferentAddress, billingAddressId, shippingAddressId } = useContext(AddressContext) @@ -82,7 +82,7 @@ export function Address(props: Props): JSX.Element { address.reference != null ) { setBillingAddress(address.id, { - customerAddressId: address.reference + customerAddressId: address.reference, }) } if (shippingCustomerAddressId) { @@ -96,15 +96,15 @@ export function Address(props: Props): JSX.Element { address.reference != null ) { setShippingAddress(address.id, { - customerAddressId: address.reference + customerAddressId: address.reference, }) } }) } if (deselect) { const disabledSaveButton = async (): Promise => { - setBillingAddress && (await setBillingAddress('')) - setShippingAddress && (await setShippingAddress('')) + setBillingAddress && (await setBillingAddress("")) + setShippingAddress && (await setShippingAddress("")) } disabledSaveButton() } @@ -113,14 +113,14 @@ export function Address(props: Props): JSX.Element { billingCustomerAddressId, shippingCustomerAddressId, addressesContext, - shipToDifferentAddress + shipToDifferentAddress, ]) const handleSelect: HandleSelect = async ( k, addressId, customerAddressId, disabled, - address + address, ) => { !disabled && setSelected(k) setBillingAddress && @@ -132,7 +132,7 @@ export function Address(props: Props): JSX.Element { } const countryLock = order?.shipping_country_code_lock const components = - typeof children === 'function' + typeof children === "function" ? [] : items .filter((address) => { @@ -147,19 +147,19 @@ export function Address(props: Props): JSX.Element { }) .map((address, k) => { const addressProps = { - address + address, } const disabled = (setShippingAddress && countryLock && countryLock !== address.country_code) || false - const selectedClass = deselect ? '' : selectedClassName + const selectedClass = deselect ? "" : selectedClassName const addressSelectedClass = - selected === k ? `${className || ''} ${selectedClass}` : className - const customerAddressId: string = address?.reference || '' + selected === k ? `${className || ""} ${selectedClass}` : className + const customerAddressId: string = address?.reference || "" const finalClassName = disabled - ? `${className || ''} ${disabledClassName}` + ? `${className || ""} ${disabledClassName}` : addressSelectedClass return ( @@ -171,7 +171,7 @@ export function Address(props: Props): JSX.Element { address.id, customerAddressId, disabled, - address + address, ) }} data-disabled={disabled} @@ -187,9 +187,9 @@ export function Address(props: Props): JSX.Element { selected, handleSelect, countryLock, - ...props + ...props, } - return typeof children === 'function' ? ( + return typeof children === "function" ? ( {children} ) : ( <>{components} diff --git a/packages/react-components/src/components/addresses/AddressField.tsx b/packages/react-components/src/components/addresses/AddressField.tsx index 7bd30ede..3c75dd4a 100644 --- a/packages/react-components/src/components/addresses/AddressField.tsx +++ b/packages/react-components/src/components/addresses/AddressField.tsx @@ -1,12 +1,12 @@ -import { useContext, type ReactNode, type JSX } from 'react'; -import AddressChildrenContext from '#context/AddressChildrenContext' -import Parent from '#components/utils/Parent' -import type { AddressFieldView } from '#reducers/AddressReducer' -import type { Address } from '@commercelayer/sdk' -import CustomerContext from '#context/CustomerContext' -import type { ChildrenFunction } from '#typings/index' +import type { Address } from "@commercelayer/sdk" +import { type JSX, type ReactNode, useContext } from "react" +import Parent from "#components/utils/Parent" +import AddressChildrenContext from "#context/AddressChildrenContext" +import CustomerContext from "#context/CustomerContext" +import type { AddressFieldView } from "#reducers/AddressReducer" +import type { ChildrenFunction } from "#typings/index" -interface ChildrenProps extends Omit { +interface ChildrenProps extends Omit { address: Address } @@ -14,7 +14,7 @@ type ChildrenProp = ChildrenFunction type Props = | { - type?: 'field' + type?: "field" label?: never onClick?: never children?: ChildrenProp @@ -22,7 +22,7 @@ type Props = className?: string } | { - type?: 'edit' + type?: "edit" label: string | ReactNode onClick: (address: Address) => void children?: ChildrenProp @@ -30,7 +30,7 @@ type Props = className?: string } | { - type?: 'delete' + type?: "delete" label: string onClick: () => void children?: ChildrenProp @@ -38,7 +38,7 @@ type Props = className?: string } | { - type?: 'edit' | 'field' | 'delete' + type?: "edit" | "field" | "delete" label?: never onClick?: never children: ChildrenProp @@ -69,30 +69,30 @@ type Props = * */ export function AddressField(props: Props): JSX.Element { - const { name, type = 'field', label, onClick, ...p } = props + const { name, type = "field", label, onClick, ...p } = props const { address } = useContext(AddressChildrenContext) - const text = name && address ? address?.[name] : '' + const text = name && address ? address?.[name] : "" const { deleteCustomerAddress } = useContext(CustomerContext) const handleClick = (e: React.MouseEvent): void => { e.stopPropagation() e.preventDefault() - if (type === 'delete' && deleteCustomerAddress && address?.reference) { + if (type === "delete" && deleteCustomerAddress && address?.reference) { deleteCustomerAddress({ customerAddressId: address?.reference }) } address && onClick && onClick(address) } const parentProps = { address, - ...props + ...props, } return props.children ? ( {props.children} - ) : type === 'field' ? ( -

+ ) : type === "field" ? ( +

{text}

) : ( - + {label} ) diff --git a/packages/react-components/src/components/addresses/SaveAddressesButton.tsx b/packages/react-components/src/components/addresses/SaveAddressesButton.tsx index 8bc672ec..71dc8360 100644 --- a/packages/react-components/src/components/addresses/SaveAddressesButton.tsx +++ b/packages/react-components/src/components/addresses/SaveAddressesButton.tsx @@ -1,28 +1,28 @@ -import { type ReactNode, useContext, useState, type JSX } from 'react'; -import Parent from '#components/utils/Parent' -import type { ChildrenFunction } from '#typings/index' -import AddressContext from '#context/AddressContext' +import type { Order } from "@commercelayer/sdk" +import isFunction from "lodash/isFunction" +import { type JSX, type ReactNode, useContext, useState } from "react" +import Parent from "#components/utils/Parent" +import AddressContext from "#context/AddressContext" +import CustomerContext from "#context/CustomerContext" +import OrderContext from "#context/OrderContext" +import type { TCustomerAddress } from "#reducers/CustomerReducer" +import type { ChildrenFunction } from "#typings/index" import { + addressesController, countryLockController, - addressesController -} from '#utils/addressesManager' -import OrderContext from '#context/OrderContext' -import CustomerContext from '#context/CustomerContext' -import isFunction from 'lodash/isFunction' -import type { TCustomerAddress } from '#reducers/CustomerReducer' -import type { Order } from '@commercelayer/sdk' -import { validateValue } from '#utils/validateFormFields' -import { formCleaner } from '#utils/formCleaner' +} from "#utils/addressesManager" +import { formCleaner } from "#utils/formCleaner" +import { validateValue } from "#utils/validateFormFields" interface TOnClick { success: boolean order?: Order } -interface ChildrenProps extends Omit {} +interface ChildrenProps extends Omit {} interface Props - extends Omit { + extends Omit { children?: ChildrenFunction label?: string | ReactNode onClick?: (params: TOnClick) => void @@ -33,7 +33,7 @@ interface Props export function SaveAddressesButton(props: Props): JSX.Element { const { children, - label = 'Continue to delivery', + label = "Continue to delivery", resource, disabled = false, addressId, @@ -49,26 +49,26 @@ export function SaveAddressesButton(props: Props): JSX.Element { saveAddresses, billingAddressId, shippingAddressId, - invertAddresses + invertAddresses, } = useContext(AddressContext) const { order } = useContext(OrderContext) const { customerEmail: email, addresses, isGuest, - createCustomerAddress + createCustomerAddress, } = useContext(CustomerContext) const [forceDisable, setForceDisable] = useState(disabled) let customerEmail = !!( - !!(isGuest === true || typeof isGuest === 'undefined') && + !!(isGuest === true || typeof isGuest === "undefined") && !order?.customer_email ) - if (email != null && email !== '') { + if (email != null && email !== "") { const isValidEmail = validateValue( email, - 'customer_email', - 'email', - 'orders' + "customer_email", + "email", + "orders", ) customerEmail = Object.keys(isValidEmail).length > 0 } @@ -77,10 +77,10 @@ export function SaveAddressesButton(props: Props): JSX.Element { return { ...acc, // @ts-expect-error type mismatch - [key.replace(`shipping_address_`, '')]: shippingAddress[key].value + [key.replace("shipping_address_", "")]: shippingAddress[key].value, } }, - {} + {}, ) const { billingDisable, shippingDisable } = addressesController({ invertAddresses, @@ -91,7 +91,7 @@ export function SaveAddressesButton(props: Props): JSX.Element { shippingAddressId, billingAddressId, errors, - requiredMetadataFields + requiredMetadataFields, }) const countryLockDisable = countryLockController({ countryCodeLock: order?.shipping_country_code_lock, @@ -101,7 +101,7 @@ export function SaveAddressesButton(props: Props): JSX.Element { billing_address: billingAddress, shipping_address: shippingAddress, shippingAddressId, - lineItems: order?.line_items + lineItems: order?.line_items, }) // NOTE: This is a temporary fix to avoid the button to be disabled when the user is editing an address const invertAddressesDisable = @@ -119,7 +119,7 @@ export function SaveAddressesButton(props: Props): JSX.Element { success: boolean order?: Order } = { - success: false + success: false, } setForceDisable(true) // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check @@ -132,16 +132,16 @@ export function SaveAddressesButton(props: Props): JSX.Element { customerEmail: email, customerAddress: { resource: invertAddresses - ? 'shipping_address' - : 'billing_address', - id: addressId - } + ? "shipping_address" + : "billing_address", + id: addressId, + }, }) break } case order != null && saveAddresses != null: { response = await saveAddresses({ - customerEmail: email + customerEmail: email, }) break } @@ -152,7 +152,7 @@ export function SaveAddressesButton(props: Props): JSX.Element { if (addressId) address.id = addressId createCustomerAddress(address as TCustomerAddress) response = { - success: true + success: true, } break } @@ -167,13 +167,13 @@ export function SaveAddressesButton(props: Props): JSX.Element { label, resource, handleClick, - disabled: disable + disabled: disable, } return children ? ( {children} ) : (