diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index a16882f2c67..00000000000 --- a/.eslintignore +++ /dev/null @@ -1,11 +0,0 @@ -dist -node_modules -bin -*.feature -eslint-rules/ -rollup.config.js -template/ -templates/ -fixtures/ -workspace/ -.eslintrc.cjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 251d38db003..00000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,172 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - settings: {}, - parserOptions: { - project: './tsconfig.json', - EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, - }, - plugins: ['@nx'], - // WARNING: If you want to add new rules/plugins, you need to add them to the eslint-plugin-cli package. - extends: ['plugin:@shopify/eslint-plugin-cli/config'], - rules: { - '@nx/enforce-module-boundaries': 'error', - }, - overrides: [ - { - files: ['**/public/**/*.ts'], - excludedFiles: [ - '*.test.ts', - // TODO: Document all the public modules - '**/public/node/abort.ts', - '**/public/node/analytics.ts', - '**/public/node/base-command.ts', - '**/public/node/cli.ts', - '**/public/node/dot-env.ts', - '**/public/node/error-handler.ts', - '**/public/node/framework.ts', - '**/public/node/fs.ts', - '**/public/node/github.ts', - '**/public/node/hooks/prerun.ts', - '**/public/node/os.ts', - '**/public/node/node-package-manager.ts', - '**/public/node/plugins/tunnel.ts', - '**/public/node/environments.ts', - '**/public/node/result.ts', - '**/public/node/themes/**/*', - ], - rules: { - 'jsdoc/check-access': 'error', - 'jsdoc/check-alignment': 'error', - 'jsdoc/check-indentation': 'error', - 'jsdoc/check-line-alignment': 'error', - 'jsdoc/check-param-names': 'error', - 'jsdoc/check-property-names': 'error', - 'jsdoc/check-syntax': 'error', - 'jsdoc/check-tag-names': 'error', - 'jsdoc/check-types': 'error', - 'jsdoc/check-values': 'error', - 'jsdoc/empty-tags': 'error', - 'jsdoc/implements-on-classes': 'error', - 'jsdoc/match-description': 'error', - 'jsdoc/multiline-blocks': 'error', - 'jsdoc/no-bad-blocks': 'error', - 'jsdoc/no-defaults': 'error', - 'jsdoc/no-multi-asterisks': 'error', - 'jsdoc/no-types': 'error', - 'jsdoc/no-undefined-types': 'error', - 'jsdoc/require-asterisk-prefix': 'error', - 'jsdoc/require-description': 'error', - 'jsdoc/require-description-complete-sentence': 'error', - 'jsdoc/require-hyphen-before-param-description': 'error', - 'jsdoc/require-jsdoc': ['error', {publicOnly: true}], - 'jsdoc/require-param': 'error', - 'jsdoc/require-param-description': 'error', - 'jsdoc/require-param-name': 'error', - 'jsdoc/require-property': 'error', - 'jsdoc/require-property-description': 'error', - 'jsdoc/require-property-name': 'error', - 'jsdoc/require-property-type': 'error', - 'jsdoc/require-returns': ['error', {publicOnly: true}], - 'jsdoc/require-returns-check': 'error', - 'jsdoc/require-returns-description': 'error', - 'jsdoc/require-throws': 'error', - 'jsdoc/require-yields': 'error', - 'jsdoc/require-yields-check': 'error', - 'jsdoc/tag-lines': ['error', 'any', {startLines: 1}], - 'jsdoc/valid-types': 'error', - }, - settings: { - jsdoc: { - publicFunctionsOnly: true, - mode: 'typescript', - }, - }, - }, - { - files: ['**/*.test.ts'], - rules: { - '@typescript-eslint/no-explicit-any': 'off', - 'no-restricted-syntax': 'off', - }, - }, - { - files: ['src/public/**/*.ts'], - rules: { - '@typescript-eslint/explicit-module-boundary-types': 'error', - }, - excludedFiles: ['**/public/node/themes/**/*'], - }, - { - files: ['src/private/node/ui/components/**/*.tsx'], - extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], - rules: { - 'react/function-component-definition': [ - 'error', - { - namedComponents: 'arrow-function', - unnamedComponents: 'arrow-function', - }, - ], - 'react/hook-use-state': 2, - 'react/jsx-boolean-value': 2, - 'react/jsx-child-element-spacing': 2, - 'react/jsx-closing-bracket-location': 2, - 'react/jsx-closing-tag-location': 2, - 'react/jsx-curly-brace-presence': 2, - 'react/jsx-curly-spacing': 2, - 'react/jsx-equals-spacing': 2, - 'react/jsx-first-prop-new-line': 2, - 'react/jsx-fragments': 2, - 'react/jsx-handler-names': 2, - 'react/jsx-indent': [2, 2, {checkAttributes: true, indentLogicalExpressions: true}], - 'react/jsx-indent-props': [2, 2], - 'react/jsx-no-leaked-render': 2, - 'react/jsx-no-useless-fragment': 2, - 'react/jsx-pascal-case': 2, - 'react/jsx-props-no-multi-spaces': 2, - 'react/jsx-tag-spacing': 2, - 'react/no-namespace': 2, - 'react/no-object-type-as-default-prop': 2, - 'react/self-closing-comp': 2, - 'react/no-unused-prop-types': 2, - 'import/no-default-export': 2, - 'import/no-namespace': 2, - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'react', - importNames: ['FC'], - message: 'Please use FunctionComponent from react instead.', - }, - ], - }, - ], - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'interface', - format: ['PascalCase'], - custom: { - regex: '^Props', - match: false, - }, - }, - ], - }, - settings: { - react: { - version: 'detect', - }, - }, - }, - { - files: ['src/public/node/ui.tsx'], - rules: { - 'max-params': ['error', 1], - }, - }, - ], - ignorePatterns: [], -} diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000000..fa869744b1b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,197 @@ +import nxPlugin from '@nx/eslint-plugin' +import cliPlugin from '@shopify/eslint-plugin-cli' + +// Spread the CLI plugin's base config which includes all necessary plugins +const config = [ + // Base config from @shopify/eslint-plugin-cli (includes shopify, typescript, prettier, etc.) + ...cliPlugin.configs.config, + + // Global ignores + { + ignores: ['**/dist/**', '**/node_modules/**', '**/coverage/**', '**/*.d.ts'], + }, + + // NX module boundaries + { + files: ['**/*.ts', '**/*.tsx'], + plugins: { + '@nx': nxPlugin, + }, + rules: { + '@nx/enforce-module-boundaries': 'error', + }, + }, + + // JSDoc rules for public API files + { + files: ['**/public/**/*.ts'], + ignores: [ + '**/*.test.ts', + '**/public/node/abort.ts', + '**/public/node/analytics.ts', + '**/public/node/base-command.ts', + '**/public/node/cli.ts', + '**/public/node/dot-env.ts', + '**/public/node/error-handler.ts', + '**/public/node/framework.ts', + '**/public/node/fs.ts', + '**/public/node/github.ts', + '**/public/node/hooks/prerun.ts', + '**/public/node/os.ts', + '**/public/node/node-package-manager.ts', + '**/public/node/plugins/tunnel.ts', + '**/public/node/environments.ts', + '**/public/node/result.ts', + '**/public/node/themes/**/*', + ], + settings: { + jsdoc: { + publicFunctionsOnly: true, + mode: 'typescript', + }, + }, + rules: { + 'jsdoc/check-access': 'error', + 'jsdoc/check-alignment': 'error', + 'jsdoc/check-indentation': 'error', + 'jsdoc/check-line-alignment': 'error', + 'jsdoc/check-param-names': 'error', + 'jsdoc/check-property-names': 'error', + 'jsdoc/check-syntax': 'error', + 'jsdoc/check-tag-names': 'error', + 'jsdoc/check-types': 'error', + 'jsdoc/check-values': 'error', + 'jsdoc/empty-tags': 'error', + 'jsdoc/implements-on-classes': 'error', + 'jsdoc/match-description': 'error', + 'jsdoc/multiline-blocks': 'error', + 'jsdoc/no-bad-blocks': 'error', + 'jsdoc/no-defaults': 'error', + 'jsdoc/no-multi-asterisks': 'error', + 'jsdoc/no-types': 'error', + 'jsdoc/no-undefined-types': 'error', + 'jsdoc/require-asterisk-prefix': 'error', + 'jsdoc/require-description': 'error', + 'jsdoc/require-description-complete-sentence': 'error', + 'jsdoc/require-hyphen-before-param-description': 'error', + 'jsdoc/require-jsdoc': ['error', {publicOnly: true}], + 'jsdoc/require-param': 'error', + 'jsdoc/require-param-description': 'error', + 'jsdoc/require-param-name': 'error', + 'jsdoc/require-property': 'error', + 'jsdoc/require-property-description': 'error', + 'jsdoc/require-property-name': 'error', + 'jsdoc/require-property-type': 'error', + 'jsdoc/require-returns': ['error', {publicOnly: true}], + 'jsdoc/require-returns-check': 'error', + 'jsdoc/require-returns-description': 'error', + 'jsdoc/require-throws': 'error', + 'jsdoc/require-yields': 'error', + 'jsdoc/require-yields-check': 'error', + 'jsdoc/tag-lines': ['error', 'any', {startLines: 1}], + 'jsdoc/valid-types': 'error', + }, + }, + + // Test file overrides + { + files: ['**/*.test.ts'], + rules: { + '@typescript-eslint/no-explicit-any': 'off', + 'no-restricted-syntax': 'off', + }, + }, + + // Public API explicit module boundary types + { + files: ['src/public/**/*.ts'], + ignores: ['**/public/node/themes/**/*'], + rules: { + '@typescript-eslint/explicit-module-boundary-types': 'error', + }, + }, + + // React components (rely on plugins already defined in cli config) + { + files: ['src/private/node/ui/components/**/*.tsx'], + settings: { + react: { + version: 'detect', + }, + }, + rules: { + 'react/function-component-definition': [ + 'error', + { + namedComponents: 'arrow-function', + unnamedComponents: 'arrow-function', + }, + ], + 'react/hook-use-state': 2, + 'react/jsx-boolean-value': 2, + 'react/jsx-child-element-spacing': 2, + 'react/jsx-closing-bracket-location': 2, + 'react/jsx-closing-tag-location': 2, + 'react/jsx-curly-brace-presence': 2, + 'react/jsx-curly-spacing': 2, + 'react/jsx-equals-spacing': 2, + 'react/jsx-first-prop-new-line': 2, + 'react/jsx-fragments': 2, + 'react/jsx-handler-names': 2, + 'react/jsx-indent': [2, 2, {checkAttributes: true, indentLogicalExpressions: true}], + 'react/jsx-indent-props': [2, 2], + 'react/jsx-no-leaked-render': 2, + 'react/jsx-no-useless-fragment': 2, + 'react/jsx-pascal-case': 2, + 'react/jsx-props-no-multi-spaces': 2, + 'react/jsx-tag-spacing': 2, + 'react/no-namespace': 2, + 'react/no-object-type-as-default-prop': 2, + 'react/self-closing-comp': 2, + 'react/no-unused-prop-types': 2, + 'import-x/no-default-export': 2, + 'import-x/no-namespace': 2, + 'no-restricted-imports': [ + 'error', + { + paths: [ + { + name: 'react', + importNames: ['FC'], + message: 'Please use FunctionComponent from react instead.', + }, + ], + }, + ], + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'interface', + format: ['PascalCase'], + custom: { + regex: '^Props', + match: false, + }, + }, + ], + }, + }, + + // UI module max params + { + files: ['src/public/node/ui.tsx'], + rules: { + 'max-params': ['error', 1], + }, + }, + + // CLI bin/*.js files - disable rules that don't work for plain JS files + { + files: ['packages/cli/bin/*.js'], + rules: { + '@shopify/strict-component-boundaries': 'off', + }, + }, +] + +export default config diff --git a/graphql.config.ts b/graphql.config.ts index 5396c4d64bc..175f82c7585 100644 --- a/graphql.config.ts +++ b/graphql.config.ts @@ -14,7 +14,7 @@ function projectFactory(name: string, schemaName: string, project: string = 'app { add: { content: - "/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */\nimport {JsonMapType} from '@shopify/cli-kit/node/toml'", + "/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */\nimport {JsonMapType} from '@shopify/cli-kit/node/toml'", }, }, ], @@ -35,7 +35,7 @@ function projectFactory(name: string, schemaName: string, project: string = 'app { add: { content: - "/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/ban-types, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */\nimport {JsonMapType} from '@shopify/cli-kit/node/toml'", + "/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */\nimport {JsonMapType} from '@shopify/cli-kit/node/toml'", }, }, { diff --git a/package.json b/package.json index 1c830c1c088..c5e34ac3d12 100644 --- a/package.json +++ b/package.json @@ -51,13 +51,13 @@ "@shopify/generate-docs": "0.15.6", "@types/node": "18.19.70", "@types/tmp": "^0.2.5", - "@typescript-eslint/parser": "7.18.0", + "@typescript-eslint/parser": "8.33.0", "@vitest/coverage-istanbul": "^3.1.4", "ansi-colors": "^4.1.3", "bugsnag-build-reporter": "^2.0.0", "commander": "^9.4.0", "esbuild": "0.27.2", - "eslint": "^8.48.0", + "eslint": "^9.26.0", "execa": "^7.2.0", "fast-glob": "3.3.3", "find-up": "^6.3.0", @@ -104,7 +104,8 @@ "@graphql-tools/utils": "10.7.2", "@shopify/cli-hydrogen>@shopify/cli-kit": "link:./packages/cli-kit", "@shopify/cli-hydrogen>@shopify/plugin-cloudflare": "link:./packages/plugin-cloudflare", - "nanoid": "3.3.8" + "nanoid": "3.3.8", + "graphql": "16.10.0" }, "knip": { "$schema": "https://unpkg.com/knip@5/schema.json", @@ -124,8 +125,6 @@ "unresolved": "error" }, "ignoreDependencies": [ - "eslint-plugin-react", - "eslint-plugin-react-hooks", "@shopify/theme-check-node", "@shopify/theme-check-docs-updater", "@graphql-typed-document-node/core" @@ -275,10 +274,7 @@ "entry": [ "**/src/main.tsx!" ], - "project": "**/*.{ts,tsx}!", - "ignoreDependencies": [ - "eslint-plugin-jsx-a11y" - ] + "project": "**/*.{ts,tsx}!" }, "packages/ui-extensions-server-kit": { "entry": [ diff --git a/packages/app/src/cli/api/graphql/admin/generated/types.d.ts b/packages/app/src/cli/api/graphql/admin/generated/types.d.ts index 98ff1c678d8..75ed424aaf1 100644 --- a/packages/app/src/cli/api/graphql/admin/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/admin/generated/types.d.ts @@ -1,53 +1,52 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ import {JsonMapType} from '@shopify/cli-kit/node/toml' - -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } /** * An Amazon Web Services Amazon Resource Name (ARN), including the Region and account ID. * For more information, refer to [Amazon Resource Names](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). */ - ARN: {input: any; output: any} + ARN: { input: any; output: any; } /** * Represents non-fractional signed whole numeric values. Since the value may * exceed the size of a 32-bit integer, it's encoded as a string. */ - BigInt: {input: any; output: any} + BigInt: { input: any; output: any; } /** * A string containing a hexadecimal representation of a color. * * For example, "#6A8D48". */ - Color: {input: any; output: any} + Color: { input: any; output: any; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date string. * For example, September 7, 2019 is represented as `"2019-07-16"`. */ - Date: {input: any; output: any} + Date: { input: any; output: any; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string. * For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is * represented as `"2019-09-07T15:50:00Z`". */ - DateTime: {input: any; output: any} + DateTime: { input: any; output: any; } /** * A signed decimal number, which supports arbitrary precision and is serialized as a string. * * Example values: `"29.99"`, `"29.999"`. */ - Decimal: {input: any; output: any} + Decimal: { input: any; output: any; } /** * A string containing a strict subset of HTML code. Non-allowed tags will be stripped out. * Allowed tags: @@ -63,14 +62,14 @@ export type Scalars = { * * Example value: `"Your current domain is example.myshopify.com."` */ - FormattedString: {input: any; output: any} + FormattedString: { input: any; output: any; } /** * A string containing HTML code. Refer to the [HTML spec](https://html.spec.whatwg.org/#elements-3) for a * complete list of HTML elements. * * Example value: `"

Grey cotton knit sweater.

"` */ - HTML: {input: any; output: any} + HTML: { input: any; output: any; } /** * A [JSON](https://www.json.org/json-en.html) object. * @@ -86,16 +85,16 @@ export type Scalars = { * } * }` */ - JSON: {input: JsonMapType | string; output: JsonMapType} + JSON: { input: JsonMapType | string; output: JsonMapType; } /** A monetary value string without a currency symbol or code. Example value: `"100.57"`. */ - Money: {input: any; output: any} + Money: { input: any; output: any; } /** * Represents a unique identifier in the Storefront API. A `StorefrontID` value can * be used wherever an ID is expected in the Storefront API. * * Example value: `"Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMDc5Nzg1MTAw"`. */ - StorefrontID: {input: any; output: any} + StorefrontID: { input: any; output: any; } /** * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. @@ -103,20 +102,20 @@ export type Scalars = { * For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host * (`example.myshopify.com`). */ - URL: {input: string; output: string} + URL: { input: string; output: string; } /** * An unsigned 64-bit integer. Represents whole numeric values between 0 and 2^64 - 1 encoded as a string of base-10 digits. * * Example value: `"50"`. */ - UnsignedInt64: {input: any; output: any} + UnsignedInt64: { input: any; output: any; } /** * Time between UTC time and a location's observed time, in the format `"+HH:MM"` or `"-HH:MM"`. * * Example value: `"-07:00"`. */ - UtcOffset: {input: any; output: any} -} + UtcOffset: { input: any; output: any; } +}; /** Metafield access permissions for the Admin API. */ export type MetafieldAdminAccess = @@ -129,7 +128,7 @@ export type MetafieldAdminAccess = /** The merchant and other apps have read-only access. */ | 'PUBLIC_READ' /** The merchant and other apps have read and write access. */ - | 'PUBLIC_READ_WRITE' + | 'PUBLIC_READ_WRITE'; /** Metafield access permissions for the Customer Account API. */ export type MetafieldCustomerAccountAccess = @@ -138,7 +137,7 @@ export type MetafieldCustomerAccountAccess = /** Read-only access. */ | 'READ' /** Read and write access. */ - | 'READ_WRITE' + | 'READ_WRITE'; /** Possible types of a metafield's owner resource. */ export type MetafieldOwnerType = @@ -195,14 +194,14 @@ export type MetafieldOwnerType = /** The Shop metafield owner type. */ | 'SHOP' /** The Validation metafield owner type. */ - | 'VALIDATION' + | 'VALIDATION'; /** Metafield access permissions for the Storefront API. */ export type MetafieldStorefrontAccess = /** No access. */ | 'NONE' /** Read-only access. */ - | 'PUBLIC_READ' + | 'PUBLIC_READ'; /** * Metaobject access permissions for the Admin API. When the metaobject is app-owned, the owning app always has @@ -218,11 +217,11 @@ export type MetaobjectAdminAccess = /** The merchant and other apps have read-only access. */ | 'PUBLIC_READ' /** The merchant and other apps have read and write access. */ - | 'PUBLIC_READ_WRITE' + | 'PUBLIC_READ_WRITE'; /** Metaobject access permissions for the Storefront API. */ export type MetaobjectStorefrontAccess = /** No access. */ | 'NONE' /** Read-only access. */ - | 'PUBLIC_READ' + | 'PUBLIC_READ'; diff --git a/packages/app/src/cli/api/graphql/app-dev/generated/types.d.ts b/packages/app/src/cli/api/graphql/app-dev/generated/types.d.ts index 024de4d7d71..eb0013d7041 100644 --- a/packages/app/src/cli/api/graphql/app-dev/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/app-dev/generated/types.d.ts @@ -1,26 +1,25 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ import {JsonMapType} from '@shopify/cli-kit/node/toml' - -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string. * For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is * represented as `"2019-09-07T15:50:00Z`". */ - DateTime: {input: any; output: any} + DateTime: { input: any; output: any; } /** * A [JSON](https://www.json.org/json-en.html) object. * @@ -36,7 +35,7 @@ export type Scalars = { * } * }` */ - JSON: {input: JsonMapType | string; output: JsonMapType} + JSON: { input: JsonMapType | string; output: JsonMapType; } /** * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. @@ -44,5 +43,5 @@ export type Scalars = { * For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host * (`example.myshopify.com`). */ - URL: {input: string; output: string} -} + URL: { input: string; output: string; } +}; diff --git a/packages/app/src/cli/api/graphql/app-management/generated/specifications.ts b/packages/app/src/cli/api/graphql/app-management/generated/specifications.ts index ea44cca51ab..da6721c922d 100644 --- a/packages/app/src/cli/api/graphql/app-management/generated/specifications.ts +++ b/packages/app/src/cli/api/graphql/app-management/generated/specifications.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-duplicate-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/app-management/generated/types.d.ts b/packages/app/src/cli/api/graphql/app-management/generated/types.d.ts index 91a28421212..75419c09eb1 100644 --- a/packages/app/src/cli/api/graphql/app-management/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/app-management/generated/types.d.ts @@ -1,26 +1,25 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ import {JsonMapType} from '@shopify/cli-kit/node/toml' - -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string. * For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is * represented as `"2019-09-07T15:50:00Z`". */ - DateTime: {input: any; output: any} + DateTime: { input: any; output: any; } /** * A [JSON](https://www.json.org/json-en.html) object. * @@ -36,7 +35,7 @@ export type Scalars = { * } * }` */ - JSON: {input: JsonMapType | string; output: JsonMapType} + JSON: { input: JsonMapType | string; output: JsonMapType; } /** * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. @@ -44,16 +43,16 @@ export type Scalars = { * For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host * (`example.myshopify.com`). */ - URL: {input: string; output: string} -} + URL: { input: string; output: string; } +}; /** The input fields used to create a new app version. */ export type AppVersionInput = { /** The manifest from which to create the app version. */ - source?: InputMaybe + source?: InputMaybe; /** URL referencing the source from which to create the app version. */ - sourceUrl?: InputMaybe -} + sourceUrl?: InputMaybe; +}; /** Possible error codes that can be returned by AppManagement. */ export type Code = @@ -70,21 +69,21 @@ export type Code = /** A plugin error. */ | 'PLUGIN' /** An unknown error. */ - | 'UNKNOWN' + | 'UNKNOWN'; /** File extension for compressed files used for app sources. */ export type SourceExtension = /** Brotli file extension. */ | 'BR' /** ZIP file extension. */ - | 'ZIP' + | 'ZIP'; /** The input fields for app version metadata. */ export type VersionMetadataInput = { /** Message associated with this app version. */ - message?: InputMaybe + message?: InputMaybe; /** Link to version control, if any. */ - sourceControlUrl?: InputMaybe + sourceControlUrl?: InputMaybe; /** Version tag associated with this app version. */ - versionTag?: InputMaybe -} + versionTag?: InputMaybe; +}; diff --git a/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-cancel.ts b/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-cancel.ts index a76f341ced1..d5cd5a967fb 100644 --- a/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-cancel.ts +++ b/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-cancel.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-redundant-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-mutation.ts b/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-mutation.ts index 7252cc29a5b..55f70a8154a 100644 --- a/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-mutation.ts +++ b/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-mutation.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-redundant-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-query.ts b/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-query.ts index c514367800c..5547c46b8a8 100644 --- a/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-query.ts +++ b/packages/app/src/cli/api/graphql/bulk-operations/generated/bulk-operation-run-query.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-redundant-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/bulk-operations/generated/get-bulk-operation-by-id.ts b/packages/app/src/cli/api/graphql/bulk-operations/generated/get-bulk-operation-by-id.ts index eaa3c34352e..84d1ab97191 100644 --- a/packages/app/src/cli/api/graphql/bulk-operations/generated/get-bulk-operation-by-id.ts +++ b/packages/app/src/cli/api/graphql/bulk-operations/generated/get-bulk-operation-by-id.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-redundant-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/bulk-operations/generated/list-bulk-operations.ts b/packages/app/src/cli/api/graphql/bulk-operations/generated/list-bulk-operations.ts index d4cd1cef7a1..a8e32522efe 100644 --- a/packages/app/src/cli/api/graphql/bulk-operations/generated/list-bulk-operations.ts +++ b/packages/app/src/cli/api/graphql/bulk-operations/generated/list-bulk-operations.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-redundant-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/bulk-operations/generated/types.d.ts b/packages/app/src/cli/api/graphql/bulk-operations/generated/types.d.ts index c68fb733477..c8dc91c4962 100644 --- a/packages/app/src/cli/api/graphql/bulk-operations/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/bulk-operations/generated/types.d.ts @@ -1,53 +1,52 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ import {JsonMapType} from '@shopify/cli-kit/node/toml' - -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } /** * An Amazon Web Services Amazon Resource Name (ARN), including the Region and account ID. * For more information, refer to [Amazon Resource Names](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). */ - ARN: {input: any; output: any} + ARN: { input: any; output: any; } /** * Represents non-fractional signed whole numeric values. Since the value may * exceed the size of a 32-bit integer, it's encoded as a string. */ - BigInt: {input: any; output: any} + BigInt: { input: any; output: any; } /** * A string containing a hexadecimal representation of a color. * * For example, "#6A8D48". */ - Color: {input: any; output: any} + Color: { input: any; output: any; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date string. * For example, September 7, 2019 is represented as `"2019-07-16"`. */ - Date: {input: any; output: any} + Date: { input: any; output: any; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string. * For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is * represented as `"2019-09-07T15:50:00Z`". */ - DateTime: {input: any; output: any} + DateTime: { input: any; output: any; } /** * A signed decimal number, which supports arbitrary precision and is serialized as a string. * * Example values: `"29.99"`, `"29.999"`. */ - Decimal: {input: any; output: any} + Decimal: { input: any; output: any; } /** * A string containing a strict subset of HTML code. Non-allowed tags will be stripped out. * Allowed tags: @@ -63,14 +62,14 @@ export type Scalars = { * * Example value: `"Your current domain is example.myshopify.com."` */ - FormattedString: {input: any; output: any} + FormattedString: { input: any; output: any; } /** * A string containing HTML code. Refer to the [HTML spec](https://html.spec.whatwg.org/#elements-3) for a * complete list of HTML elements. * * Example value: `"

Grey cotton knit sweater.

"` */ - HTML: {input: any; output: any} + HTML: { input: any; output: any; } /** * A [JSON](https://www.json.org/json-en.html) object. * @@ -86,16 +85,16 @@ export type Scalars = { * } * }` */ - JSON: {input: JsonMapType | string; output: JsonMapType} + JSON: { input: JsonMapType | string; output: JsonMapType; } /** A monetary value string without a currency symbol or code. Example value: `"100.57"`. */ - Money: {input: any; output: any} + Money: { input: any; output: any; } /** * Represents a unique identifier in the Storefront API. A `StorefrontID` value can * be used wherever an ID is expected in the Storefront API. * * Example value: `"Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMDc5Nzg1MTAw"`. */ - StorefrontID: {input: any; output: any} + StorefrontID: { input: any; output: any; } /** * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. @@ -103,20 +102,20 @@ export type Scalars = { * For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host * (`example.myshopify.com`). */ - URL: {input: string; output: string} + URL: { input: string; output: string; } /** * An unsigned 64-bit integer. Represents whole numeric values between 0 and 2^64 - 1 encoded as a string of base-10 digits. * * Example value: `"50"`. */ - UnsignedInt64: {input: any; output: any} + UnsignedInt64: { input: any; output: any; } /** * Time between UTC time and a location's observed time, in the format `"+HH:MM"` or `"-HH:MM"`. * * Example value: `"-07:00"`. */ - UtcOffset: {input: any; output: any} -} + UtcOffset: { input: any; output: any; } +}; /** Possible error codes that can be returned by `BulkMutationUserError`. */ export type BulkMutationErrorCode = @@ -142,7 +141,7 @@ export type BulkMutationErrorCode = * [Wait for the operation to finish](https://shopify.dev/api/usage/bulk-operations/imports#wait-for-the-operation-to-finish) * before retrying this operation. */ - | 'OPERATION_IN_PROGRESS' + | 'OPERATION_IN_PROGRESS'; /** Error codes for failed bulk operations. */ export type BulkOperationErrorCode = @@ -161,7 +160,7 @@ export type BulkOperationErrorCode = * The operation resulted in partial or incomplete data due to query timeouts during execution. * In some cases, timeouts can be avoided by modifying your `query` to select fewer fields. */ - | 'TIMEOUT' + | 'TIMEOUT'; /** The valid values for the status of a bulk operation. */ export type BulkOperationStatus = @@ -184,14 +183,14 @@ export type BulkOperationStatus = */ | 'FAILED' /** The bulk operation is runnning. */ - | 'RUNNING' + | 'RUNNING'; /** The valid values for the bulk operation's type. */ export type BulkOperationType = /** The bulk operation is a mutation. */ | 'MUTATION' /** The bulk operation is a query. */ - | 'QUERY' + | 'QUERY'; /** Possible error codes that can be returned by `BulkOperationUserError`. */ export type BulkOperationUserErrorCode = @@ -200,14 +199,14 @@ export type BulkOperationUserErrorCode = /** Bulk operations limit reached. Please try again later. */ | 'LIMIT_REACHED' /** A bulk operation is already in progress. */ - | 'OPERATION_IN_PROGRESS' + | 'OPERATION_IN_PROGRESS'; /** The set of valid sort keys for the BulkOperations query. */ export type BulkOperationsSortKeys = /** Sort by the `completed_at` value. */ | 'COMPLETED_AT' /** Sort by the `created_at` value. */ - | 'CREATED_AT' + | 'CREATED_AT'; /** * The possible HTTP methods that can be used when sending a request to upload a file using information from a @@ -217,7 +216,7 @@ export type StagedUploadHttpMethodType = /** The POST HTTP method. */ | 'POST' /** The PUT HTTP method. */ - | 'PUT' + | 'PUT'; /** The input fields for generating staged upload targets. */ export type StagedUploadInput = { @@ -226,19 +225,19 @@ export type StagedUploadInput = { * [VIDEO](https://shopify.dev/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#value-video) * or [MODEL_3D](https://shopify.dev/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#value-model3d). */ - fileSize?: InputMaybe + fileSize?: InputMaybe; /** The file's name and extension. */ - filename: Scalars['String']['input'] + filename: Scalars['String']['input']; /** * The HTTP method to be used when sending a request to upload the file using the returned staged * upload target. */ - httpMethod?: InputMaybe + httpMethod?: InputMaybe; /** The file's MIME type. */ - mimeType: Scalars['String']['input'] + mimeType: Scalars['String']['input']; /** The file's intended Shopify resource type. */ - resource: StagedUploadTargetGenerateUploadResource -} + resource: StagedUploadTargetGenerateUploadResource; +}; /** The resource type to receive. */ export type StagedUploadTargetGenerateUploadResource = @@ -327,4 +326,4 @@ export type StagedUploadTargetGenerateUploadResource = * or to the [Files page](https://shopify.com/admin/settings/files) in Shopify admin using the * [fileCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/fileCreate). */ - | 'VIDEO' + | 'VIDEO'; diff --git a/packages/app/src/cli/api/graphql/business-platform-destinations/generated/types.d.ts b/packages/app/src/cli/api/graphql/business-platform-destinations/generated/types.d.ts index e37c29d4e3f..9fed0e6e078 100644 --- a/packages/app/src/cli/api/graphql/business-platform-destinations/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/business-platform-destinations/generated/types.d.ts @@ -1,23 +1,24 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any */ -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ +import {JsonMapType} from '@shopify/cli-kit/node/toml' +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} - DestinationID: {input: any; output: any} - DestinationPublicID: {input: any; output: any} - GlobalID: {input: string; output: string} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } + DestinationID: { input: any; output: any; } + DestinationPublicID: { input: any; output: any; } + GlobalID: { input: string; output: string; } /** An ISO 8601-encoded datetime */ - ISO8601DateTime: {input: any; output: any} + ISO8601DateTime: { input: any; output: any; } /** The ID for a Organization. */ - OrganizationID: {input: any; output: any} -} + OrganizationID: { input: any; output: any; } +}; diff --git a/packages/app/src/cli/api/graphql/business-platform-organizations/generated/fetch_store_by_domain.ts b/packages/app/src/cli/api/graphql/business-platform-organizations/generated/fetch_store_by_domain.ts index 9b899f0ee52..8b3c8c66da8 100644 --- a/packages/app/src/cli/api/graphql/business-platform-organizations/generated/fetch_store_by_domain.ts +++ b/packages/app/src/cli/api/graphql/business-platform-organizations/generated/fetch_store_by_domain.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-duplicate-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/business-platform-organizations/generated/list_app_dev_stores.ts b/packages/app/src/cli/api/graphql/business-platform-organizations/generated/list_app_dev_stores.ts index 5dd861a7c1a..aa76f2a7f06 100644 --- a/packages/app/src/cli/api/graphql/business-platform-organizations/generated/list_app_dev_stores.ts +++ b/packages/app/src/cli/api/graphql/business-platform-organizations/generated/list_app_dev_stores.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-duplicate-type-constituents */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ import * as Types from './types.js' import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/app/src/cli/api/graphql/business-platform-organizations/generated/types.d.ts b/packages/app/src/cli/api/graphql/business-platform-organizations/generated/types.d.ts index 48f87ac5f97..688d4605f48 100644 --- a/packages/app/src/cli/api/graphql/business-platform-organizations/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/business-platform-organizations/generated/types.d.ts @@ -1,87 +1,91 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ import {JsonMapType} from '@shopify/cli-kit/node/toml' - -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} - AccessRoleAssignee: {input: any; output: any} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } + AccessRoleAssignee: { input: any; output: any; } /** The ID for a AccessRole. */ - AccessRoleID: {input: any; output: any} - AccessRoleRecordId: {input: any; output: any} + AccessRoleID: { input: any; output: any; } + AccessRoleRecordId: { input: any; output: any; } /** The ID for a ActionAudit. */ - ActionAuditID: {input: any; output: any} + ActionAuditID: { input: any; output: any; } /** The ID for a Address. */ - AddressID: {input: any; output: any} + AddressID: { input: any; output: any; } /** The ID for a BulkDataOperation. */ - BulkDataOperationID: {input: any; output: any} + BulkDataOperationID: { input: any; output: any; } /** The ID for a BusinessUser. */ - BusinessUserID: {input: any; output: any} + BusinessUserID: { input: any; output: any; } /** A signed decimal number, which supports arbitrary precision and is serialized as a string. */ - Decimal: {input: any; output: any} + Decimal: { input: any; output: any; } /** The ID for a DocumentAttachment. */ - DocumentAttachmentID: {input: any; output: any} + DocumentAttachmentID: { input: any; output: any; } /** The ID for a EntitySupportingDocument. */ - EntitySupportingDocumentID: {input: any; output: any} - GlobalID: {input: string; output: string} + EntitySupportingDocumentID: { input: any; output: any; } + GlobalID: { input: string; output: string; } /** The ID for a GovernmentIdentifier. */ - GovernmentIdentifierID: {input: any; output: any} + GovernmentIdentifierID: { input: any; output: any; } /** The ID for a Group. */ - GroupID: {input: any; output: any} + GroupID: { input: any; output: any; } /** An ISO 8601-encoded date */ - ISO8601Date: {input: any; output: any} + ISO8601Date: { input: any; output: any; } /** An ISO 8601-encoded datetime */ - ISO8601DateTime: {input: any; output: any} + ISO8601DateTime: { input: any; output: any; } /** Represents untyped JSON */ - JSON: {input: JsonMapType | string; output: JsonMapType} + JSON: { input: JsonMapType | string; output: JsonMapType; } /** The ID for a LegalEntity. */ - LegalEntityID: {input: any; output: any} + LegalEntityID: { input: any; output: any; } /** The ID for a OrganizationDomain. */ - OrganizationDomainID: {input: any; output: any} + OrganizationDomainID: { input: any; output: any; } /** The ID for a Organization. */ - OrganizationID: {input: any; output: any} + OrganizationID: { input: any; output: any; } /** The ID for a OrganizationUser. */ - OrganizationUserID: {input: any; output: any} + OrganizationUserID: { input: any; output: any; } /** The ID for a PersonAlias. */ - PersonAliasID: {input: any; output: any} + PersonAliasID: { input: any; output: any; } /** The ID for a Person. */ - PersonID: {input: any; output: any} + PersonID: { input: any; output: any; } /** The ID for a Principal. */ - PrincipalID: {input: any; output: any} + PrincipalID: { input: any; output: any; } /** The ID for a Property. */ - PropertyID: {input: any; output: any} - PropertyId: {input: string; output: string} - PropertyPublicID: {input: string; output: string} + PropertyID: { input: any; output: any; } + PropertyId: { input: string; output: string; } + PropertyPublicID: { input: string; output: string; } /** The ID for a PropertyTransferRequest. */ - PropertyTransferRequestID: {input: any; output: any} + PropertyTransferRequestID: { input: any; output: any; } /** The ID for a Role. */ - RoleID: {input: any; output: any} + RoleID: { input: any; output: any; } /** The ID for a Shop. */ - ShopID: {input: any; output: any} + ShopID: { input: any; output: any; } /** The ID for a ShopifyShop. */ - ShopifyShopID: {input: any; output: any} + ShopifyShopID: { input: any; output: any; } /** The ID for a StoreAdditionRequest. */ - StoreAdditionRequestID: {input: any; output: any} - SupportedEntityId: {input: any; output: any} + StoreAdditionRequestID: { input: any; output: any; } + SupportedEntityId: { input: any; output: any; } /** The ID for a SupportingDocument. */ - SupportingDocumentID: {input: any; output: any} + SupportingDocumentID: { input: any; output: any; } /** An RFC 3986 and RFC 3987 compliant URI string. */ - URL: {input: string; output: string} -} + URL: { input: string; output: string; } +}; export type OrganizationUserProvisionShopAccessInput = { /** The shop to provision the requester on. */ - shopifyShopId: Scalars['PropertyPublicID']['input'] -} + shopifyShopId: Scalars['PropertyPublicID']['input']; +}; -export type Store = 'APP_DEVELOPMENT' | 'CLIENT_TRANSFER' | 'DEVELOPMENT' | 'DEVELOPMENT_SUPERSET' | 'PRODUCTION' +export type Store = + | 'APP_DEVELOPMENT' + | 'CLIENT_TRANSFER' + | 'DEVELOPMENT' + | 'DEVELOPMENT_SUPERSET' + | 'PRODUCTION'; diff --git a/packages/app/src/cli/api/graphql/functions/generated/types.d.ts b/packages/app/src/cli/api/graphql/functions/generated/types.d.ts index 2d85fa63eea..dad1fa048e1 100644 --- a/packages/app/src/cli/api/graphql/functions/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/functions/generated/types.d.ts @@ -1,18 +1,19 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention */ -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ +import {JsonMapType} from '@shopify/cli-kit/node/toml' +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } /** * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. @@ -20,5 +21,5 @@ export type Scalars = { * For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host * (`example.myshopify.com`). */ - URL: {input: string; output: string} -} + URL: { input: string; output: string; } +}; diff --git a/packages/app/src/cli/api/graphql/partners/generated/types.d.ts b/packages/app/src/cli/api/graphql/partners/generated/types.d.ts index b9572774e7a..1ffd775f795 100644 --- a/packages/app/src/cli/api/graphql/partners/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/partners/generated/types.d.ts @@ -1,34 +1,33 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ import {JsonMapType} from '@shopify/cli-kit/node/toml' - -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } /** * An [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) encoded UTC date time * string. Example value: `"2019-07-03T20:47:55.123456Z"`. */ - DateTime: {input: any; output: any} + DateTime: { input: any; output: any; } /** * Deprecated: Supported extension types. * This used to include a list of extension types, we mantain it to keep compatibility with the old schema */ - ExtensionType: {input: any; output: any} + ExtensionType: { input: any; output: any; } /** Represents untyped JSON */ - JSON: {input: JsonMapType | string; output: JsonMapType} + JSON: { input: JsonMapType | string; output: JsonMapType; } /** A valid URL, transported as a string. */ - Url: {input: any; output: any} + Url: { input: any; output: any; } /** A valid webhook subscription endpoint string. */ - WebhookSubscriptionEndpoint: {input: any; output: any} -} + WebhookSubscriptionEndpoint: { input: any; output: any; } +}; diff --git a/packages/app/src/cli/api/graphql/webhooks/generated/types.d.ts b/packages/app/src/cli/api/graphql/webhooks/generated/types.d.ts index 2b9d2b25a6f..f0d3fccb134 100644 --- a/packages/app/src/cli/api/graphql/webhooks/generated/types.d.ts +++ b/packages/app/src/cli/api/graphql/webhooks/generated/types.d.ts @@ -1,16 +1,17 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention */ -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ +import {JsonMapType} from '@shopify/cli-kit/node/toml' +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} -} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } +}; diff --git a/packages/app/src/cli/models/app/app.ts b/packages/app/src/cli/models/app/app.ts index ead77d10470..9166f25b206 100644 --- a/packages/app/src/cli/models/app/app.ts +++ b/packages/app/src/cli/models/app/app.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {AppErrors, isWebType} from './loader.js' import {ensurePathStartsWithSlash} from './validation/common.js' import {Identifiers} from './identifiers.js' @@ -374,8 +373,7 @@ type AppConstructor< export class App< TConfig extends AppConfiguration = AppConfiguration, TModuleSpec extends ExtensionSpecification = ExtensionSpecification, -> implements AppInterface -{ +> implements AppInterface { name: string idEnvironmentVariableName: 'SHOPIFY_API_KEY' = 'SHOPIFY_API_KEY' as const directory: string diff --git a/packages/app/src/cli/models/app/identifiers.ts b/packages/app/src/cli/models/app/identifiers.ts index 93f6039d6d4..387ec010084 100644 --- a/packages/app/src/cli/models/app/identifiers.ts +++ b/packages/app/src/cli/models/app/identifiers.ts @@ -65,7 +65,6 @@ export async function updateAppIdentifiers( Object.keys(identifiers.extensions).forEach((identifier) => { const envVariable = `SHOPIFY_${constantize(identifier)}_ID` if (!systemEnvironment[envVariable]) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion updatedVariables[envVariable] = identifiers.extensions[identifier]! } }) @@ -110,7 +109,6 @@ export function getAppIdentifiers( const extensionsIdentifiers: {[key: string]: string} = {} const processExtension = (extension: ExtensionInstance) => { if (Object.keys(envVariables).includes(extension.idEnvironmentVariableName)) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion extensionsIdentifiers[extension.localIdentifier] = envVariables[extension.idEnvironmentVariableName]! } } diff --git a/packages/app/src/cli/models/app/loader.ts b/packages/app/src/cli/models/app/loader.ts index d83e575846c..9e7172feb65 100644 --- a/packages/app/src/cli/models/app/loader.ts +++ b/packages/app/src/cli/models/app/loader.ts @@ -532,7 +532,7 @@ class AppLoader 1) { const conflictingPaths = websOfType.map((web) => joinPath(web.directory, configurationFileNames.web)) const pathsList = conflictingPaths.map((path) => ` ${path}`).join('\n') - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const lastConflictingPath = conflictingPaths[conflictingPaths.length - 1]! this.abortOrReport( outputContent`You can only have one "web" configuration file with the ${outputToken.yellow( @@ -1286,7 +1286,6 @@ async function logMetadataForLoadedAppUsingRawValues( if (extensionsBreakdownMapping[extension.type] === undefined) { extensionsBreakdownMapping[extension.type] = 1 } else { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion extensionsBreakdownMapping[extension.type]!++ } } diff --git a/packages/app/src/cli/models/extensions/extension-instance.test.ts b/packages/app/src/cli/models/extensions/extension-instance.test.ts index 2adc27a7d1b..5a808958df9 100644 --- a/packages/app/src/cli/models/extensions/extension-instance.test.ts +++ b/packages/app/src/cli/models/extensions/extension-instance.test.ts @@ -1,5 +1,6 @@ import {SingleWebhookSubscriptionType} from './specifications/app_config_webhook_schemas/webhooks_schema.js' import {MAX_EXTENSION_HANDLE_LENGTH} from './schemas.js' +import {FunctionConfigType} from './specifications/function.js' import { testApp, testAppConfigExtensions, @@ -13,7 +14,6 @@ import { testSingleWebhookSubscriptionExtension, placeholderAppConfiguration, } from '../app/app.test-data.js' -import {FunctionConfigType} from '../extensions/specifications/function.js' import {ExtensionBuildOptions, buildUIExtension} from '../../services/build/extension.js' import {DeveloperPlatformClient} from '../../utilities/developer-platform-client.js' import {joinPath} from '@shopify/cli-kit/node/path' diff --git a/packages/app/src/cli/models/extensions/extension-instance.ts b/packages/app/src/cli/models/extensions/extension-instance.ts index 3a37dd9aaf8..2634ce3d972 100644 --- a/packages/app/src/cli/models/extensions/extension-instance.ts +++ b/packages/app/src/cli/models/extensions/extension-instance.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ - import {BaseConfigType, MAX_EXTENSION_HANDLE_LENGTH, MAX_UID_LENGTH} from './schemas.js' import {FunctionConfigType} from './specifications/function.js' import {ExtensionFeature, ExtensionSpecification} from './specification.js' diff --git a/packages/app/src/cli/models/extensions/specification.ts b/packages/app/src/cli/models/extensions/specification.ts index d40a17dd115..ff794e743f3 100644 --- a/packages/app/src/cli/models/extensions/specification.ts +++ b/packages/app/src/cli/models/extensions/specification.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {ZodSchemaType, BaseConfigType, BaseSchema} from './schemas.js' import {ExtensionInstance} from './extension-instance.js' import {blocks} from '../../constants.js' @@ -159,8 +158,9 @@ type ForbiddenFields = /** * Partial ExtensionSpec type used when creating a new ExtensionSpec, the only mandatory field is the identifier */ -interface CreateExtensionSpecType - extends Partial, ForbiddenFields>> { +interface CreateExtensionSpecType extends Partial< + Omit, ForbiddenFields> +> { identifier: string appModuleFeatures: (config?: TConfiguration) => ExtensionFeature[] schema?: ZodSchemaType @@ -378,7 +378,7 @@ function defaultAppConfigReverseTransform(schema: zod.ZodType, c result[key] = defaultAppConfigReverseTransform(innerSchema, content) } else { if (content[key] !== undefined) result[key] = content[key] - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete content[key] } return result diff --git a/packages/app/src/cli/models/extensions/specifications/theme.ts b/packages/app/src/cli/models/extensions/specifications/theme.ts index 6debcc8135e..b3cc7510d27 100644 --- a/packages/app/src/cli/models/extensions/specifications/theme.ts +++ b/packages/app/src/cli/models/extensions/specifications/theme.ts @@ -109,7 +109,7 @@ function validateFile(filepath: string, dirname: string): void { `Make sure all theme app extension files are in the supported directories: ${SUPPORTED_BUCKETS.join(', ')}`, ) } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const filenameValidation = SUPPORTED_EXTS[dirname]! if (!filepath.match(filenameValidation.validator)) { throw new AbortError(`Invalid filename in your theme app extension: ${filepath} diff --git a/packages/app/src/cli/models/extensions/specifications/transform/app_config_webhook.ts b/packages/app/src/cli/models/extensions/specifications/transform/app_config_webhook.ts index 22480d02c2d..45a4b6ba079 100644 --- a/packages/app/src/cli/models/extensions/specifications/transform/app_config_webhook.ts +++ b/packages/app/src/cli/models/extensions/specifications/transform/app_config_webhook.ts @@ -81,7 +81,7 @@ export function reduceWebhooks( const existingSubscription = findSubscription(accumulator, subscription) if (existingSubscription) { if (property && subscription?.[property]?.length) { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion existingSubscription[property]?.push(...subscription[property]!) } else { if (subscription.topics) { diff --git a/packages/app/src/cli/prompts/config.ts b/packages/app/src/cli/prompts/config.ts index a93eaff4d15..4edced86db5 100644 --- a/packages/app/src/cli/prompts/config.ts +++ b/packages/app/src/cli/prompts/config.ts @@ -50,7 +50,7 @@ export async function selectConfigFile(directory: string): Promise basename(path)) if (files.length === 0) return err('Could not find any shopify.app.toml file in the directory.') - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + if (files.length === 1) return ok(files[0]!) const chosen = await renderSelectPrompt({ diff --git a/packages/app/src/cli/prompts/dev.ts b/packages/app/src/cli/prompts/dev.ts index fd986119cb6..1c3f7696dc7 100644 --- a/packages/app/src/cli/prompts/dev.ts +++ b/packages/app/src/cli/prompts/dev.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {Organization, MinimalOrganizationApp, OrganizationStore, MinimalAppIdentifiers} from '../models/organization.js' import {getTomls} from '../utilities/app/config/getTomls.js' import {setCachedCommandTomlMap} from '../services/local-storage.js' diff --git a/packages/app/src/cli/prompts/generate/extension.ts b/packages/app/src/cli/prompts/generate/extension.ts index a4d0e63a03a..425d7cf5705 100644 --- a/packages/app/src/cli/prompts/generate/extension.ts +++ b/packages/app/src/cli/prompts/generate/extension.ts @@ -90,7 +90,6 @@ const generateExtensionPrompts = async ( }) } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const extensionTemplate = extensionTemplates.find((template) => template.identifier === templateType)! const name = options.name || (await promptName(options.directory, extensionTemplate.defaultName)) diff --git a/packages/app/src/cli/services/app-context.test.ts b/packages/app/src/cli/services/app-context.test.ts index 37ffaf956cc..6e00b385f30 100644 --- a/packages/app/src/cli/services/app-context.test.ts +++ b/packages/app/src/cli/services/app-context.test.ts @@ -424,7 +424,7 @@ describe('localAppContext', () => { }, errors: undefined, }), - validate: async () => ({isErr: () => false, isOk: () => true} as any), + validate: async () => ({isErr: () => false, isOk: () => true}) as any, contributeToAppConfigurationSchema: (schema: any) => schema, } as any, ]) diff --git a/packages/app/src/cli/services/app-logs/sources.ts b/packages/app/src/cli/services/app-logs/sources.ts index 4c38d538d17..7eb85f64540 100644 --- a/packages/app/src/cli/services/app-logs/sources.ts +++ b/packages/app/src/cli/services/app-logs/sources.ts @@ -1,5 +1,5 @@ +import {sourcesForApp} from './utils.js' import {AppInterface} from '../../models/app/app.js' -import {sourcesForApp} from '../../services/app-logs/utils.js' import {formatSection, outputResult} from '@shopify/cli-kit/node/output' export function sources(app: AppInterface) { @@ -9,14 +9,12 @@ export function sources(app: AppInterface) { const tokens = source.split('.') if (tokens.length >= 2) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const sourceNamespace = tokens[0]! if (!sourcesByNamespace.has(sourceNamespace)) { sourcesByNamespace.set(sourceNamespace, []) } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion sourcesByNamespace.set(sourceNamespace, [...sourcesByNamespace.get(sourceNamespace)!, source]) } }) diff --git a/packages/app/src/cli/services/build/extension.ts b/packages/app/src/cli/services/build/extension.ts index 0e992326a25..bb8b5b7fe03 100644 --- a/packages/app/src/cli/services/build/extension.ts +++ b/packages/app/src/cli/services/build/extension.ts @@ -229,7 +229,7 @@ async function buildOtherFunction(extension: ExtensionInstance, options: BuildFu async function runCommand(buildCommand: string, extension: ExtensionInstance, options: BuildFunctionExtensionOptions) { const buildCommandComponents = buildCommand.split(' ') options.stdout.write(`Building function ${extension.localIdentifier}...`) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await exec(buildCommandComponents[0]!, buildCommandComponents.slice(1), { stdout: options.stdout, stderr: options.stderr, diff --git a/packages/app/src/cli/services/context/breakdown-extensions.ts b/packages/app/src/cli/services/context/breakdown-extensions.ts index e685a07cd8c..283281b46e0 100644 --- a/packages/app/src/cli/services/context/breakdown-extensions.ts +++ b/packages/app/src/cli/services/context/breakdown-extensions.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {ensureExtensionsIds} from './identifiers-extensions.js' import {EnsureDeploymentIdsPresenceOptions, LocalSource, RemoteSource} from './identifiers.js' import {versionDiffByVersion} from '../release/version-diff.js' diff --git a/packages/app/src/cli/services/context/prompts.ts b/packages/app/src/cli/services/context/prompts.ts index afc88a99fea..c447b257fda 100644 --- a/packages/app/src/cli/services/context/prompts.ts +++ b/packages/app/src/cli/services/context/prompts.ts @@ -27,7 +27,7 @@ export async function selectRemoteSourcePrompt( message: `How would you like to deploy your "${localSource.handle}"?`, choices: remoteOptions, }) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + return remoteSourcesOfSameType.find((remote) => remote.uuid === uuid)! } diff --git a/packages/app/src/cli/services/deploy.test.ts b/packages/app/src/cli/services/deploy.test.ts index 63bc04b3ff0..3718bc092b6 100644 --- a/packages/app/src/cli/services/deploy.test.ts +++ b/packages/app/src/cli/services/deploy.test.ts @@ -1122,9 +1122,8 @@ describe('ImportExtensionsIfNeeded', () => { } as any), }) - const identifiersModule = await vi.importActual( - './context/identifiers.js', - ) + const identifiersModule = + await vi.importActual('./context/identifiers.js') // When/Then await expect( diff --git a/packages/app/src/cli/services/dev.ts b/packages/app/src/cli/services/dev.ts index af0af066266..b4de346b615 100644 --- a/packages/app/src/cli/services/dev.ts +++ b/packages/app/src/cli/services/dev.ts @@ -500,7 +500,6 @@ async function validateCustomPorts(webConfigs: Web[], graphiqlPort: number) { } await Promise.all([ ...allPorts.map(async (port) => { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const portAvailable = await checkPortAvailability(port!) if (!portAvailable) { throw new AbortError(`Hard-coded port ${port} is not available, please choose a different one.`) diff --git a/packages/app/src/cli/services/dev/extension/server/utilities.ts b/packages/app/src/cli/services/dev/extension/server/utilities.ts index 0c2ce1a6454..c71fc44a7b8 100644 --- a/packages/app/src/cli/services/dev/extension/server/utilities.ts +++ b/packages/app/src/cli/services/dev/extension/server/utilities.ts @@ -34,14 +34,14 @@ export function getExtensionPointRedirectUrl( case 'checkout': // This can never be null because we always generate it // whenever there is an extension point targeting Checkout - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + rawUrl.pathname = options.checkoutCartUrl! rawUrl.searchParams.append('dev', `${options.url}/extensions`) break case 'post_purchase': // This can never be null because we always generate it // whenever there is an extension point targeting Post Purchase - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + rawUrl.pathname = options.checkoutCartUrl! rawUrl.searchParams.set( diff --git a/packages/app/src/cli/services/dev/extension/websocket/handlers.ts b/packages/app/src/cli/services/dev/extension/websocket/handlers.ts index 6253bff394f..cb6d73f3950 100644 --- a/packages/app/src/cli/services/dev/extension/websocket/handlers.ts +++ b/packages/app/src/cli/services/dev/extension/websocket/handlers.ts @@ -98,7 +98,6 @@ export function handleLogEvent(eventData: LogPayload, options: SetupWebSocketCon export function getOnMessageHandler(wss: WebSocketServer, options: SetupWebSocketConnectionOptions) { return (data: RawData) => { - // eslint-disable-next-line @typescript-eslint/no-base-to-string const jsonData = JSON.parse(data.toString()) const {event: eventType, data: eventData} = jsonData diff --git a/packages/app/src/cli/services/dev/graphiql/server.ts b/packages/app/src/cli/services/dev/graphiql/server.ts index 266d62c8347..078ef111736 100644 --- a/packages/app/src/cli/services/dev/graphiql/server.ts +++ b/packages/app/src/cli/services/dev/graphiql/server.ts @@ -145,7 +145,6 @@ export function setupGraphiQLServer({ throw err } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const apiVersion = apiVersions.sort().reverse()[0]! function decodeQueryString(input: string | undefined) { diff --git a/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts b/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts index 0687de5a444..da6741c4bbe 100644 --- a/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts +++ b/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts @@ -26,12 +26,11 @@ import {firstPartyDev} from '@shopify/cli-kit/node/context/local' import {getEnvironmentVariables} from '@shopify/cli-kit/node/environment' import {outputInfo} from '@shopify/cli-kit/node/output' -interface ProxyServerProcess - extends BaseProcess<{ - port: number - rules: {[key: string]: string} - localhostCert?: LocalhostCert - }> { +interface ProxyServerProcess extends BaseProcess<{ + port: number + rules: {[key: string]: string} + localhostCert?: LocalhostCert +}> { type: 'proxy-server' } diff --git a/packages/app/src/cli/services/dev/processes/theme-app-extension.ts b/packages/app/src/cli/services/dev/processes/theme-app-extension.ts index 6a032815e03..37b6f3c8c8d 100644 --- a/packages/app/src/cli/services/dev/processes/theme-app-extension.ts +++ b/packages/app/src/cli/services/dev/processes/theme-app-extension.ts @@ -42,7 +42,6 @@ export async function setupPreviewThemeAppExtensionsProcess( return } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const themeExtension = themeExtensions[0]! const themeExtensionDirectory = themeExtension.directory const themeExtensionPort = options.themeExtensionPort ?? 9293 diff --git a/packages/app/src/cli/services/dev/processes/web.ts b/packages/app/src/cli/services/dev/processes/web.ts index ceb16ebc69a..f5d2b4601df 100644 --- a/packages/app/src/cli/services/dev/processes/web.ts +++ b/packages/app/src/cli/services/dev/processes/web.ts @@ -58,7 +58,7 @@ export async function setupWebProcesses({ hmrServerPort && web.configuration.roles.includes(WebType.Frontend) ? { port: hmrServerPort, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + httpPaths: web.configuration.hmr_server!.http_paths, } : undefined @@ -183,7 +183,7 @@ async function runCommands({ for (const command of commands) { const [cmd, ...args] = command.split(' ') if (cmd?.length === 0) continue - // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-non-null-assertion + // eslint-disable-next-line no-await-in-loop await exec(cmd!, args, { cwd: directory, stdout: showOutput ? stdout : undefined, diff --git a/packages/app/src/cli/services/dev/select-store.ts b/packages/app/src/cli/services/dev/select-store.ts index 6e8d19f4d66..d02c8969ee0 100644 --- a/packages/app/src/cli/services/dev/select-store.ts +++ b/packages/app/src/cli/services/dev/select-store.ts @@ -175,9 +175,8 @@ async function convertStoreToTransferDisabled( shopId: store.shopId, }, } - const result: ConvertDevToTransferDisabledSchema = await developerPlatformClient.convertToTransferDisabledStore( - variables, - ) + const result: ConvertDevToTransferDisabledSchema = + await developerPlatformClient.convertToTransferDisabledStore(variables) if (!result.convertDevToTestStore.convertedToTestStore) { const errors = result.convertDevToTestStore.userErrors.map((error) => error.message).join(', ') throw new BugError( diff --git a/packages/app/src/cli/services/dev/urls.ts b/packages/app/src/cli/services/dev/urls.ts index 977ed669e0f..859a2dc855d 100644 --- a/packages/app/src/cli/services/dev/urls.ts +++ b/packages/app/src/cli/services/dev/urls.ts @@ -87,7 +87,7 @@ export async function generateFrontendURL(options: FrontendURLOptions): Promise< throw new AbortError(`Invalid tunnel URL: ${options.tunnelUrl}`, 'Valid format: "https://my-tunnel-url:port"') } frontendPort = Number(matches[2]) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + frontendUrl = matches[1]! return {frontendUrl, frontendPort, usingLocalhost} } diff --git a/packages/app/src/cli/services/execute-operation.test.ts b/packages/app/src/cli/services/execute-operation.test.ts index eb503d1f82d..03af22d7d2e 100644 --- a/packages/app/src/cli/services/execute-operation.test.ts +++ b/packages/app/src/cli/services/execute-operation.test.ts @@ -343,9 +343,8 @@ describe('executeOperation', () => { const mutation = 'mutation { productUpdate(input: {}) { product { id } } }' // Import the real validateMutationStore to test end-to-end validation - const {validateMutationStore: realValidateMutationStore} = await vi.importActual< - typeof import('./graphql/common.js') - >('./graphql/common.js') + const {validateMutationStore: realValidateMutationStore} = + await vi.importActual('./graphql/common.js') vi.mocked(validateMutationStore).mockImplementation((query, store) => realValidateMutationStore(query, store)) await expect( diff --git a/packages/app/src/cli/services/function/build.ts b/packages/app/src/cli/services/function/build.ts index d5e0e1bb2da..666724ee461 100644 --- a/packages/app/src/cli/services/function/build.ts +++ b/packages/app/src/cli/services/function/build.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { downloadBinary, javyBinary, diff --git a/packages/app/src/cli/services/function/replay.ts b/packages/app/src/cli/services/function/replay.ts index f8954feac1c..29cb6796fb6 100644 --- a/packages/app/src/cli/services/function/replay.ts +++ b/packages/app/src/cli/services/function/replay.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {renderReplay} from './ui.js' import {runFunction} from './runner.js' import {AppLinkedInterface} from '../../models/app/app.js' diff --git a/packages/app/src/cli/services/generate-schema.ts b/packages/app/src/cli/services/generate-schema.ts index b611831015a..b46be1601f3 100644 --- a/packages/app/src/cli/services/generate-schema.ts +++ b/packages/app/src/cli/services/generate-schema.ts @@ -27,7 +27,7 @@ export async function generateSchemaService(options: GenerateSchemaOptions) { localIdentifier: extension.localIdentifier, developerPlatformClient, apiKey, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + target: targeting![0]!.target, version, orgId, diff --git a/packages/app/src/cli/services/generate.ts b/packages/app/src/cli/services/generate.ts index 038e7e5367d..50c6cc5bfd1 100644 --- a/packages/app/src/cli/services/generate.ts +++ b/packages/app/src/cli/services/generate.ts @@ -1,4 +1,10 @@ import {fetchExtensionTemplates} from './generate/fetch-template-specifications.js' +import { + GenerateExtensionTemplateOptions, + GeneratedExtension, + generateExtensionTemplate, + ExtensionFlavorValue, +} from './generate/extension.js' import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js' import {AppInterface, AppLinkedInterface} from '../models/app/app.js' import generateExtensionPrompts, { @@ -6,12 +12,6 @@ import generateExtensionPrompts, { GenerateExtensionPromptOutput, } from '../prompts/generate/extension.js' import metadata from '../metadata.js' -import { - GenerateExtensionTemplateOptions, - GeneratedExtension, - generateExtensionTemplate, - ExtensionFlavorValue, -} from '../services/generate/extension.js' import {ExtensionTemplate} from '../models/app/template.js' import {ExtensionSpecification, RemoteAwareExtensionSpecification} from '../models/extensions/specification.js' import {OrganizationApp} from '../models/organization.js' @@ -159,7 +159,6 @@ function formatSuccessfulRunMessage( } if (extensionTemplate.type !== 'function') { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion options.nextSteps!.push([ 'To preview this extension along with the rest of the project, run', {command: formatPackageManagerCommand(depndencyManager, 'shopify app dev')}, @@ -167,7 +166,6 @@ function formatSuccessfulRunMessage( } if (extensionTemplate.supportLinks[0]) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion options.reference!.push([ 'For more details, see the', {link: {label: 'docs', url: extensionTemplate.supportLinks[0]}}, diff --git a/packages/app/src/cli/services/graphql/common.ts b/packages/app/src/cli/services/graphql/common.ts index 48127580370..12d237f9e1d 100644 --- a/packages/app/src/cli/services/graphql/common.ts +++ b/packages/app/src/cli/services/graphql/common.ts @@ -78,7 +78,6 @@ export async function resolveApiVersion(options: ResolveApiVersionOptions): Prom supportedVersions.push(minimumDefaultVersion) } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return supportedVersions.sort().reverse()[0]! } diff --git a/packages/app/src/cli/services/import-extensions.ts b/packages/app/src/cli/services/import-extensions.ts index 2d736b0b0c6..9234404fdc7 100644 --- a/packages/app/src/cli/services/import-extensions.ts +++ b/packages/app/src/cli/services/import-extensions.ts @@ -97,7 +97,6 @@ export async function importExtensions(options: ImportOptions) { const promptAnswer = await renderSelectPrompt({message: 'Extensions to migrate', choices}) if (promptAnswer !== 'All') { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion extensionsToMigrate = [extensionsToMigrate.find((ext) => ext?.uuid === promptAnswer)!] } } diff --git a/packages/app/src/cli/services/web.ts b/packages/app/src/cli/services/web.ts index c4fe751b491..e82197acf35 100644 --- a/packages/app/src/cli/services/web.ts +++ b/packages/app/src/cli/services/web.ts @@ -21,7 +21,7 @@ export default async function web( } const [cmd, ...args] = script.split(' ') - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await exec(cmd!, args, {cwd: web.directory, stdout, stderr, signal, env}) stdout.write('Web successfully built.') } diff --git a/packages/app/src/cli/services/webhook/send-app-uninstalled-webhook.ts b/packages/app/src/cli/services/webhook/send-app-uninstalled-webhook.ts index a8581936c01..95ed3f37610 100644 --- a/packages/app/src/cli/services/webhook/send-app-uninstalled-webhook.ts +++ b/packages/app/src/cli/services/webhook/send-app-uninstalled-webhook.ts @@ -22,7 +22,7 @@ export async function sendUninstallWebhookToAppServer( const apiVersions = await requestApiVersions(options.developerPlatformClient, options.organizationId) const variables: SendSampleWebhookVariables = { topic: 'app/uninstalled', - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + api_version: apiVersions[1]!, address: options.address, delivery_method: DELIVERY_METHOD.LOCALHOST, diff --git a/packages/app/src/cli/services/webhook/trigger-options.ts b/packages/app/src/cli/services/webhook/trigger-options.ts index 26ca2da3838..10af1c04be3 100644 --- a/packages/app/src/cli/services/webhook/trigger-options.ts +++ b/packages/app/src/cli/services/webhook/trigger-options.ts @@ -46,7 +46,6 @@ export async function collectCredentials( configFile: basename(app.configuration.path), }) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const clientSecret = remoteApp.apiSecretKeys.find((elm) => elm.secret)!.secret return { clientSecret, diff --git a/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts b/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts index 410c61f9028..f2ca5f2cdee 100644 --- a/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts +++ b/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { OrganizationBetaFlagsQuerySchema, OrganizationBetaFlagsQueryVariables, diff --git a/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts b/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts index 7d61dcc1f1c..c1ecc08c367 100644 --- a/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts +++ b/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {CreateAppQuery, CreateAppQuerySchema, CreateAppQueryVariables} from '../../api/graphql/create_app.js' import { AppVersion, @@ -14,7 +13,7 @@ import { AppLogsResponse, createUnauthorizedHandler, } from '../developer-platform-client.js' -import {fetchCurrentAccountInformation} from '../../../cli/services/context/partner-account-info.js' +import {fetchCurrentAccountInformation} from '../../services/context/partner-account-info.js' import { MinimalAppIdentifiers, MinimalOrganizationApp, diff --git a/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts b/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts index 74d206e78f1..2308b0e12b4 100644 --- a/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts +++ b/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts @@ -26,7 +26,7 @@ export async function fetchProductVariant(store: string) { `Your store needs to have at least one product to test a 'checkout_ui' extension.\n\n${addProductLink}`, ) } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const variantURL = result.products.edges[0]!.node.variants.edges[0]!.node.id const variantId = variantURL.split('/').pop() return variantId diff --git a/packages/cli-kit/bin/refresh-code-documentation.ts b/packages/cli-kit/bin/refresh-code-documentation.ts index 02693e11cc9..927f9b76076 100644 --- a/packages/cli-kit/bin/refresh-code-documentation.ts +++ b/packages/cli-kit/bin/refresh-code-documentation.ts @@ -91,7 +91,7 @@ refreshDocumentation() .then(() => { process.exit(0) }) - // eslint-disable-next-line node/handle-callback-err + // eslint-disable-next-line n/handle-callback-err .catch((_error) => { process.exit(1) }) diff --git a/packages/cli-kit/src/cli/api/graphql/admin/generated/types.d.ts b/packages/cli-kit/src/cli/api/graphql/admin/generated/types.d.ts index 3ecac10dacd..73e1c7fd1a9 100644 --- a/packages/cli-kit/src/cli/api/graphql/admin/generated/types.d.ts +++ b/packages/cli-kit/src/cli/api/graphql/admin/generated/types.d.ts @@ -1,53 +1,52 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @nx/enforce-module-boundaries */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any, tsdoc/syntax, @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents, @nx/enforce-module-boundaries */ import {JsonMapType} from '@shopify/cli-kit/node/toml' - -export type Maybe = T | null -export type InputMaybe = Maybe -export type Exact = {[K in keyof T]: T[K]} -export type MakeOptional = Omit & {[SubKey in K]?: Maybe} -export type MakeMaybe = Omit & {[SubKey in K]: Maybe} -export type MakeEmpty = {[_ in K]?: never} -export type Incremental = T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never} +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: {input: string; output: string} - String: {input: string; output: string} - Boolean: {input: boolean; output: boolean} - Int: {input: number; output: number} - Float: {input: number; output: number} + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } /** * An Amazon Web Services Amazon Resource Name (ARN), including the Region and account ID. * For more information, refer to [Amazon Resource Names](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). */ - ARN: {input: any; output: any} + ARN: { input: any; output: any; } /** * Represents non-fractional signed whole numeric values. Since the value may * exceed the size of a 32-bit integer, it's encoded as a string. */ - BigInt: {input: any; output: any} + BigInt: { input: any; output: any; } /** * A string containing a hexadecimal representation of a color. * * For example, "#6A8D48". */ - Color: {input: any; output: any} + Color: { input: any; output: any; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date string. * For example, September 7, 2019 is represented as `"2019-07-16"`. */ - Date: {input: any; output: any} + Date: { input: any; output: any; } /** * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string. * For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is * represented as `"2019-09-07T15:50:00Z`". */ - DateTime: {input: any; output: any} + DateTime: { input: any; output: any; } /** * A signed decimal number, which supports arbitrary precision and is serialized as a string. * * Example values: `"29.99"`, `"29.999"`. */ - Decimal: {input: any; output: any} + Decimal: { input: any; output: any; } /** * A string containing a strict subset of HTML code. Non-allowed tags will be stripped out. * Allowed tags: @@ -63,14 +62,14 @@ export type Scalars = { * * Example value: `"Your current domain is example.myshopify.com."` */ - FormattedString: {input: any; output: any} + FormattedString: { input: any; output: any; } /** * A string containing HTML code. Refer to the [HTML spec](https://html.spec.whatwg.org/#elements-3) for a * complete list of HTML elements. * * Example value: `"

Grey cotton knit sweater.

"` */ - HTML: {input: any; output: any} + HTML: { input: any; output: any; } /** * A [JSON](https://www.json.org/json-en.html) object. * @@ -86,16 +85,16 @@ export type Scalars = { * } * }` */ - JSON: {input: JsonMapType | string; output: JsonMapType} + JSON: { input: JsonMapType | string; output: JsonMapType; } /** A monetary value string without a currency symbol or code. Example value: `"100.57"`. */ - Money: {input: any; output: any} + Money: { input: any; output: any; } /** * Represents a unique identifier in the Storefront API. A `StorefrontID` value can * be used wherever an ID is expected in the Storefront API. * * Example value: `"Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMDc5Nzg1MTAw"`. */ - StorefrontID: {input: any; output: any} + StorefrontID: { input: any; output: any; } /** * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. @@ -103,20 +102,20 @@ export type Scalars = { * For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host * (`example.myshopify.com`). */ - URL: {input: string; output: string} + URL: { input: string; output: string; } /** * An unsigned 64-bit integer. Represents whole numeric values between 0 and 2^64 - 1 encoded as a string of base-10 digits. * * Example value: `"50"`. */ - UnsignedInt64: {input: any; output: any} + UnsignedInt64: { input: any; output: any; } /** * Time between UTC time and a location's observed time, in the format `"+HH:MM"` or `"-HH:MM"`. * * Example value: `"-07:00"`. */ - UtcOffset: {input: any; output: any} -} + UtcOffset: { input: any; output: any; } +}; /** Possible types of a metafield's owner resource. */ export type MetafieldOwnerType = @@ -173,15 +172,15 @@ export type MetafieldOwnerType = /** The Shop metafield owner type. */ | 'SHOP' /** The Validation metafield owner type. */ - | 'VALIDATION' + | 'VALIDATION'; /** The input fields for the theme file body. */ export type OnlineStoreThemeFileBodyInput = { /** The input type of the theme file body. */ - type: OnlineStoreThemeFileBodyInputType + type: OnlineStoreThemeFileBodyInputType; /** The body of the theme file. */ - value: Scalars['String']['input'] -} + value: Scalars['String']['input']; +}; /** The input type for a theme file body. */ export type OnlineStoreThemeFileBodyInputType = @@ -190,7 +189,7 @@ export type OnlineStoreThemeFileBodyInputType = /** The text body of the theme file. */ | 'TEXT' /** The url of the body of a theme file. */ - | 'URL' + | 'URL'; /** Type of a theme file operation result. */ export type OnlineStoreThemeFileResultType = @@ -207,15 +206,15 @@ export type OnlineStoreThemeFileResultType = /** Operation timed out. */ | 'TIMEOUT' /** Operation could not be processed due to issues with input data. */ - | 'UNPROCESSABLE_ENTITY' + | 'UNPROCESSABLE_ENTITY'; /** The input fields for the file to create or update. */ export type OnlineStoreThemeFilesUpsertFileInput = { /** The body of the theme file. */ - body: OnlineStoreThemeFileBodyInput + body: OnlineStoreThemeFileBodyInput; /** The filename of the theme file. */ - filename: Scalars['String']['input'] -} + filename: Scalars['String']['input']; +}; /** Possible error codes that can be returned by `OnlineStoreThemeFilesUserErrors`. */ export type OnlineStoreThemeFilesUserErrorsCode = @@ -236,13 +235,13 @@ export type OnlineStoreThemeFilesUserErrorsCode = /** This action is not available on your current plan. Please upgrade to access theme editing features. */ | 'THEME_LIMITED_PLAN' /** Too many updates in a short period. Please try again later. */ - | 'THROTTLED' + | 'THROTTLED'; /** The input fields for Theme attributes to update. */ export type OnlineStoreThemeInput = { /** The new name of the theme. */ - name?: InputMaybe -} + name?: InputMaybe; +}; /** The role of the theme. */ export type ThemeRole = @@ -270,4 +269,4 @@ export type ThemeRole = /** The currently published theme that is only accessible to a mobile client. */ | 'MOBILE' /** The theme is currently not published. It can be transitioned to the main role if it is published by the merchant. */ - | 'UNPUBLISHED' + | 'UNPUBLISHED'; diff --git a/packages/cli-kit/src/private/node/analytics.ts b/packages/cli-kit/src/private/node/analytics.ts index 67a869ee8d8..3034d8c1eff 100644 --- a/packages/cli-kit/src/private/node/analytics.ts +++ b/packages/cli-kit/src/private/node/analytics.ts @@ -9,6 +9,7 @@ import {ciPlatform, cloudEnvironment, macAddress} from '../../public/node/contex import {cwd} from '../../public/node/path.js' import {currentProcessIsGlobal} from '../../public/node/is-global.js' import {isWsl} from '../../public/node/system.js' + import {Command, Interfaces} from '@oclif/core' interface StartOptions { diff --git a/packages/cli-kit/src/private/node/analytics/bounded-collections.ts b/packages/cli-kit/src/private/node/analytics/bounded-collections.ts index 9328c26114b..6036696a901 100644 --- a/packages/cli-kit/src/private/node/analytics/bounded-collections.ts +++ b/packages/cli-kit/src/private/node/analytics/bounded-collections.ts @@ -84,7 +84,7 @@ export class BMap extends Map { super.clear() } - toObject(): {[key: string]: TValue} { + toObject(): Record { return Object.fromEntries(this) } diff --git a/packages/cli-kit/src/private/node/analytics/error-categorizer.ts b/packages/cli-kit/src/private/node/analytics/error-categorizer.ts index 1918e068c30..3bb4ad97a74 100644 --- a/packages/cli-kit/src/private/node/analytics/error-categorizer.ts +++ b/packages/cli-kit/src/private/node/analytics/error-categorizer.ts @@ -64,7 +64,7 @@ export function formatErrorMessage(error: unknown, category: ErrorCategory): str return formatter(message) } -const ERROR_FORMATTERS: {[key in ErrorCategory]: (message: string) => string} = { +const ERROR_FORMATTERS: Record string> = { [ErrorCategory.Network]: formatNetworkError, [ErrorCategory.Authentication]: formatGenericError, [ErrorCategory.FileSystem]: formatGenericError, diff --git a/packages/cli-kit/src/private/node/api.ts b/packages/cli-kit/src/private/node/api.ts index 6a493350e23..044dd0abfb2 100644 --- a/packages/cli-kit/src/private/node/api.ts +++ b/packages/cli-kit/src/private/node/api.ts @@ -3,8 +3,10 @@ import {sanitizeURL} from './api/urls.js' import {sleepWithBackoffUntil} from './sleep-with-backoff.js' import {outputDebug} from '../../public/node/output.js' import {recordRetry} from '../../public/node/analytics.js' + import {Headers} from 'form-data' import {ClientError} from 'graphql-request' + import {performance} from 'perf_hooks' export type API = 'admin' | 'storefront-renderer' | 'partners' | 'business-platform' | 'app-management' @@ -169,7 +171,7 @@ async function makeVerboseRequest( ): Promise> { const t0 = performance.now() let duration = 0 - const responseHeaders: {[key: string]: string} = {} + const responseHeaders: Record = {} const sanitizedUrl = sanitizeURL(requestOptions.url) let response: T = {} as T try { diff --git a/packages/cli-kit/src/private/node/api/graphql.ts b/packages/cli-kit/src/private/node/api/graphql.ts index 9a0136db2c6..b9272bf61dd 100644 --- a/packages/cli-kit/src/private/node/api/graphql.ts +++ b/packages/cli-kit/src/private/node/api/graphql.ts @@ -2,6 +2,7 @@ import {GraphQLClientError, sanitizedHeadersOutput} from './headers.js' import {sanitizeURL} from './urls.js' import {stringifyMessage, outputContent, outputToken, outputDebug} from '../../../public/node/output.js' import {AbortError} from '../../../public/node/error.js' + import {ClientError, Variables} from 'graphql-request' export function debugLogRequestInfo( @@ -9,7 +10,7 @@ export function debugLogRequestInfo( query: string, url: string, variables?: Variables, - headers: {[key: string]: string} = {}, + headers: Record = {}, ) { outputDebug(outputContent`Sending ${outputToken.json(api)} GraphQL request: ${outputToken.raw(query.toString().trim())} diff --git a/packages/cli-kit/src/private/node/api/headers.test.ts b/packages/cli-kit/src/private/node/api/headers.test.ts index be8ca5ff495..13441e6a5a0 100644 --- a/packages/cli-kit/src/private/node/api/headers.test.ts +++ b/packages/cli-kit/src/private/node/api/headers.test.ts @@ -2,6 +2,7 @@ import {buildHeaders, sanitizedHeadersOutput, GraphQLClientError} from './header import {CLI_KIT_VERSION} from '../../../public/common/version.js' import {randomUUID} from '../../../public/node/crypto.js' import {firstPartyDev, isUnitTest} from '../../../public/node/context/local.js' + import {test, vi, expect, describe, beforeEach} from 'vitest' vi.mock('../../../public/node/crypto.js') diff --git a/packages/cli-kit/src/private/node/api/headers.ts b/packages/cli-kit/src/private/node/api/headers.ts index e743b3258c2..691505dc9e8 100644 --- a/packages/cli-kit/src/private/node/api/headers.ts +++ b/packages/cli-kit/src/private/node/api/headers.ts @@ -31,12 +31,11 @@ export class GraphQLClientError extends RequestClientError { * @param headers - HTTP headers. * @returns A sanitized version of the headers as a string. */ -export function sanitizedHeadersOutput(headers: {[key: string]: string}): string { - const sanitized: {[key: string]: string} = {} +export function sanitizedHeadersOutput(headers: Record): string { + const sanitized: Record = {} const keywords = ['token', 'authorization', 'subject_token'] Object.keys(headers).forEach((header) => { if (keywords.find((keyword) => header.toLocaleLowerCase().includes(keyword)) === undefined) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion sanitized[header] = headers[header]! } }) @@ -47,10 +46,10 @@ export function sanitizedHeadersOutput(headers: {[key: string]: string}): string .join('\n') } -export function buildHeaders(token?: string): {[key: string]: string} { +export function buildHeaders(token?: string): Record { const userAgent = `Shopify CLI; v=${CLI_KIT_VERSION}` - const headers: {[header: string]: string} = { + const headers: Record = { 'User-Agent': userAgent, 'Keep-Alive': 'timeout=30', // 'Sec-CH-UA': secCHUA, This header requires the Git sha. diff --git a/packages/cli-kit/src/private/node/api/rest.ts b/packages/cli-kit/src/private/node/api/rest.ts index c87f3131c5a..b49c50b4dd1 100644 --- a/packages/cli-kit/src/private/node/api/rest.ts +++ b/packages/cli-kit/src/private/node/api/rest.ts @@ -13,7 +13,7 @@ export function restRequestUrl( session: AdminSession, apiVersion: string, path: string, - searchParams: {[name: string]: string} = {}, + searchParams: Record = {}, ) { const url = new URL( isThemeAccessSession(session) diff --git a/packages/cli-kit/src/private/node/conf-store.test.ts b/packages/cli-kit/src/private/node/conf-store.test.ts index 8e714a34062..444776ab715 100644 --- a/packages/cli-kit/src/private/node/conf-store.test.ts +++ b/packages/cli-kit/src/private/node/conf-store.test.ts @@ -16,6 +16,7 @@ import { } from './conf-store.js' import {LocalStorage} from '../../public/node/local-storage.js' import {inTemporaryDirectory} from '../../public/node/fs.js' + import {afterEach, beforeEach, describe, expect, test, vi} from 'vitest' describe('getSession', () => { diff --git a/packages/cli-kit/src/private/node/conf-store.ts b/packages/cli-kit/src/private/node/conf-store.ts index e5cae2306de..1bc85399fd5 100644 --- a/packages/cli-kit/src/private/node/conf-store.ts +++ b/packages/cli-kit/src/private/node/conf-store.ts @@ -257,7 +257,7 @@ export async function runWithRateLimit(options: RunWithRateLimitOptions, config } export function getConfigStoreForPartnerStatus() { - return new LocalStorage<{[partnerToken: string]: {status: true; checkedAt: string}}>({ + return new LocalStorage>({ projectName: 'shopify-cli-kit-partner-status', }) } diff --git a/packages/cli-kit/src/private/node/session.test.ts b/packages/cli-kit/src/private/node/session.test.ts index a48945980c3..08eda6acff3 100644 --- a/packages/cli-kit/src/private/node/session.test.ts +++ b/packages/cli-kit/src/private/node/session.test.ts @@ -27,6 +27,7 @@ import {businessPlatformRequest} from '../../public/node/api/business-platform.j import {getPartnersToken} from '../../public/node/environment.js' import {nonRandomUUID} from '../../public/node/crypto.js' import {terminalSupportsPrompting} from '../../public/node/system.js' + import {vi, describe, expect, test, beforeEach} from 'vitest' const futureDate = new Date(2022, 1, 1, 11) @@ -55,7 +56,7 @@ const validTokens: OAuthSession = { userId, } -const appTokens: {[x: string]: ApplicationToken} = { +const appTokens: Record = { // Admin APIs includes domain in the key 'mystore.myshopify.com-admin': { accessToken: 'admin_token', diff --git a/packages/cli-kit/src/private/node/session.ts b/packages/cli-kit/src/private/node/session.ts index 41409c83e69..46d48594c45 100644 --- a/packages/cli-kit/src/private/node/session.ts +++ b/packages/cli-kit/src/private/node/session.ts @@ -234,7 +234,6 @@ ${outputToken.json(applications)} } else if (validationResult === 'needs_refresh' || forceRefresh) { outputDebug(outputContent`The current session is valid but needs refresh. Refreshing...`) try { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion newSession = await refreshTokens(currentSession!, applications) } catch (error) { if (error instanceof InvalidGrantError) { diff --git a/packages/cli-kit/src/private/node/session/device-authorization.test.ts b/packages/cli-kit/src/private/node/session/device-authorization.test.ts index d3c2b0f718a..32349ba0ee2 100644 --- a/packages/cli-kit/src/private/node/session/device-authorization.test.ts +++ b/packages/cli-kit/src/private/node/session/device-authorization.test.ts @@ -12,6 +12,7 @@ import {isTTY} from '../../../public/node/ui.js' import {err, ok} from '../../../public/node/result.js' import {AbortError} from '../../../public/node/error.js' import {isCI} from '../../../public/node/system.js' + import {beforeEach, describe, expect, test, vi} from 'vitest' import {Response} from 'node-fetch' diff --git a/packages/cli-kit/src/private/node/session/device-authorization.ts b/packages/cli-kit/src/private/node/session/device-authorization.ts index e875adf1ea8..14e8e367a9f 100644 --- a/packages/cli-kit/src/private/node/session/device-authorization.ts +++ b/packages/cli-kit/src/private/node/session/device-authorization.ts @@ -8,6 +8,7 @@ import {AbortError, BugError} from '../../../public/node/error.js' import {isCloudEnvironment} from '../../../public/node/context/local.js' import {isCI, openURL} from '../../../public/node/system.js' import {isTTY, keypress} from '../../../public/node/ui.js' + import {Response} from 'node-fetch' export interface DeviceAuthorizationResponse { diff --git a/packages/cli-kit/src/private/node/session/exchange.test.ts b/packages/cli-kit/src/private/node/session/exchange.test.ts index fd2bebebabd..22befb2f7bc 100644 --- a/packages/cli-kit/src/private/node/session/exchange.test.ts +++ b/packages/cli-kit/src/private/node/session/exchange.test.ts @@ -14,6 +14,7 @@ import {shopifyFetch} from '../../../public/node/http.js' import {identityFqdn} from '../../../public/node/context/fqdn.js' import {getLastSeenUserIdAfterAuth, getLastSeenAuthMethod} from '../session.js' import {AbortError} from '../../../public/node/error.js' + import {describe, test, expect, vi, afterAll, beforeEach} from 'vitest' import {Response} from 'node-fetch' @@ -271,7 +272,6 @@ describe.each(tokenExchangeMethods)( // Given let capturedUrl = '' vi.mocked(shopifyFetch).mockImplementation(async (url, options) => { - // eslint-disable-next-line @typescript-eslint/no-base-to-string capturedUrl = url.toString() return Promise.resolve( new Response( diff --git a/packages/cli-kit/src/private/node/session/exchange.ts b/packages/cli-kit/src/private/node/session/exchange.ts index 1fcb3024eea..fc0143aefe3 100644 --- a/packages/cli-kit/src/private/node/session/exchange.ts +++ b/packages/cli-kit/src/private/node/session/exchange.ts @@ -8,6 +8,7 @@ import {err, ok, Result} from '../../../public/node/result.js' import {AbortError, BugError, ExtendableError} from '../../../public/node/error.js' import {setLastSeenAuthMethod, setLastSeenUserIdAfterAuth} from '../session.js' import {nonRandomUUID} from '../../../public/node/crypto.js' + import * as jose from 'jose' export class InvalidGrantError extends ExtendableError {} @@ -32,7 +33,7 @@ export async function exchangeAccessForApplicationTokens( identityToken: IdentityToken, scopes: ExchangeScopes, store?: string, -): Promise<{[x: string]: ApplicationToken}> { +): Promise> { const token = identityToken.accessToken const [partners, storefront, businessPlatform, admin, appManagement] = await Promise.all([ @@ -83,7 +84,7 @@ async function exchangeCliTokenForAccessToken( const appId = applicationId(apiName) try { const newToken = await requestAppToken(apiName, token, scopes) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const accessToken = newToken[appId]!.accessToken const userId = nonRandomUUID(token) setLastSeenUserIdAfterAuth(userId) @@ -162,7 +163,7 @@ export async function requestAppToken( token: string, scopes: string[] = [], store?: string, -): Promise<{[x: string]: ApplicationToken}> { +): Promise> { const appId = applicationId(api) const clientId = await getIdentityClientId() @@ -221,9 +222,9 @@ function tokenRequestErrorHandler({error, store}: {error: string; store?: string return new AbortError(error) } -async function tokenRequest(params: { - [key: string]: string -}): Promise> { +async function tokenRequest( + params: Record, +): Promise> { const fqdn = await identityFqdn() const url = new URL(`https://${fqdn}/oauth/token`) url.search = new URLSearchParams(Object.entries(params)).toString() @@ -242,7 +243,6 @@ function buildIdentityToken( existingUserId?: string, existingAlias?: string, ): IdentityToken { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const userId = existingUserId ?? (result.id_token ? jose.decodeJwt(result.id_token).sub! : undefined) if (!userId) { diff --git a/packages/cli-kit/src/private/node/session/store.test.ts b/packages/cli-kit/src/private/node/session/store.test.ts index 429c2d842c5..625163c1ab5 100644 --- a/packages/cli-kit/src/private/node/session/store.test.ts +++ b/packages/cli-kit/src/private/node/session/store.test.ts @@ -2,6 +2,7 @@ import {Sessions} from './schema.js' import {store, fetch, remove, getSessionAlias, findSessionByAlias} from './store.js' import {getSessions, removeSessions, setSessions, removeCurrentSessionId} from '../conf-store.js' import {identityFqdn} from '../../../public/node/context/fqdn.js' + import {describe, expect, vi, test, beforeEach} from 'vitest' vi.mock('../conf-store.js') diff --git a/packages/cli-kit/src/private/node/session/validate.ts b/packages/cli-kit/src/private/node/session/validate.ts index 2dd97f2480e..d4b79799284 100644 --- a/packages/cli-kit/src/private/node/session/validate.ts +++ b/packages/cli-kit/src/private/node/session/validate.ts @@ -1,6 +1,6 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -import {applicationId} from './identity.js' import {ApplicationToken, IdentityToken, Session, validateCachedIdentityTokenStructure} from './schema.js' + +import {applicationId} from './identity.js' import {sessionConstants} from '../constants.js' import {firstPartyDev} from '../../../public/node/context/local.js' import {OAuthApplications} from '../session.js' diff --git a/packages/cli-kit/src/private/node/testing/ui.ts b/packages/cli-kit/src/private/node/testing/ui.ts index 70c7fa9ffc9..9fb0590cd9f 100644 --- a/packages/cli-kit/src/private/node/testing/ui.ts +++ b/packages/cli-kit/src/private/node/testing/ui.ts @@ -2,6 +2,7 @@ import {isTruthy} from '../../../public/node/context/utilities.js' import {Stdout} from '../ui.js' import {ReactElement} from 'react' import {render as inkRender} from 'ink' + import {EventEmitter} from 'events' class Stderr extends EventEmitter { diff --git a/packages/cli-kit/src/private/node/themes/generate-theme-name.ts b/packages/cli-kit/src/private/node/themes/generate-theme-name.ts index 07e6d4aafcc..a44a93f3d96 100644 --- a/packages/cli-kit/src/private/node/themes/generate-theme-name.ts +++ b/packages/cli-kit/src/private/node/themes/generate-theme-name.ts @@ -5,7 +5,6 @@ import {hostname} from 'os' export const API_NAME_LIMIT = 50 export function generateThemeName(context: string): string { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const hostNameWithoutDomain = hostname().split('.')[0]! const hash = randomBytes(3).toString('hex') diff --git a/packages/cli-kit/src/private/node/ui.tsx b/packages/cli-kit/src/private/node/ui.tsx index 7df2c5e09ee..aecaced5571 100644 --- a/packages/cli-kit/src/private/node/ui.tsx +++ b/packages/cli-kit/src/private/node/ui.tsx @@ -2,8 +2,10 @@ import {output} from './output.js' import {Logger, LogLevel} from '../../public/node/output.js' import {isUnitTest} from '../../public/node/context/local.js' import {treeKill} from '../../public/node/tree-kill.js' + import {ReactElement} from 'react' import {Key, render as inkRender, RenderOptions} from 'ink' + import {EventEmitter} from 'events' interface RenderOnceOptions { diff --git a/packages/cli-kit/src/private/node/ui/alert.tsx b/packages/cli-kit/src/private/node/ui/alert.tsx index 675650c6ae0..ad73332c2c0 100644 --- a/packages/cli-kit/src/private/node/ui/alert.tsx +++ b/packages/cli-kit/src/private/node/ui/alert.tsx @@ -2,9 +2,10 @@ import {Alert, AlertProps} from './components/Alert.js' import {renderOnce} from '../ui.js' import {LogLevel} from '../../../public/node/output.js' import React from 'react' + import {RenderOptions} from 'ink' -const typeToLogLevel: {[key in AlertProps['type']]: LogLevel} = { +const typeToLogLevel: Record = { info: 'info', warning: 'warn', success: 'info', diff --git a/packages/cli-kit/src/private/node/ui/components/Alert.test.tsx b/packages/cli-kit/src/private/node/ui/components/Alert.test.tsx index 18589cb79bb..21eaefb3b01 100644 --- a/packages/cli-kit/src/private/node/ui/components/Alert.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Alert.test.tsx @@ -2,6 +2,7 @@ import {Alert} from './Alert.js' import {unstyled} from '../../../../public/node/output.js' import {render} from '../../testing/ui.js' import {describe, expect, test} from 'vitest' + import React from 'react' describe('Alert', async () => { diff --git a/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.test.tsx b/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.test.tsx index 44386351e15..d54604ba4c5 100644 --- a/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.test.tsx @@ -10,6 +10,7 @@ import { import {Stdout} from '../../ui.js' import {AbortController} from '../../../../public/node/abort.js' import {beforeEach, describe, expect, test, vi} from 'vitest' + import React from 'react' import {useStdout} from 'ink' diff --git a/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.tsx b/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.tsx index e44394f8aa0..bc0340c3944 100644 --- a/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.tsx +++ b/packages/cli-kit/src/private/node/ui/components/AutocompletePrompt.tsx @@ -6,6 +6,7 @@ import {Message, PromptLayout} from './Prompts/PromptLayout.js' import {throttle} from '../../../../public/common/function.js' import {AbortSignal} from '../../../../public/node/abort.js' import usePrompt, {PromptState} from '../hooks/use-prompt.js' + import React, {ReactElement, useCallback, useEffect, useRef, useState} from 'react' import {Box, useApp} from 'ink' @@ -30,7 +31,6 @@ export interface AutocompletePromptProps { const MIN_NUMBER_OF_ITEMS_FOR_SEARCH = 5 -// eslint-disable-next-line react/function-component-definition function AutocompletePrompt({ message, choices, diff --git a/packages/cli-kit/src/private/node/ui/components/Banner.test.tsx b/packages/cli-kit/src/private/node/ui/components/Banner.test.tsx index 9aa12b6b2d0..33e78b6417c 100644 --- a/packages/cli-kit/src/private/node/ui/components/Banner.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Banner.test.tsx @@ -1,7 +1,7 @@ -import {Banner} from './Banner.js' import {List} from './List.js' -import {render} from '../../testing/ui.js' +import {Banner} from './Banner.js' import {unstyled} from '../../../../public/node/output.js' +import {render} from '../../testing/ui.js' import {describe, expect, test} from 'vitest' import React from 'react' import {Text} from 'ink' diff --git a/packages/cli-kit/src/private/node/ui/components/Banner.tsx b/packages/cli-kit/src/private/node/ui/components/Banner.tsx index c97f00c2ea5..948306f9648 100644 --- a/packages/cli-kit/src/private/node/ui/components/Banner.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Banner.tsx @@ -41,14 +41,13 @@ const Footnotes = () => { const BoxWithBorder: FunctionComponent = ({type, children}) => { const {twoThirds} = useLayout() - const links = useRef<{[key: string]: Link}>({}) + const links = useRef>({}) return ( { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const id: string | undefined = Object.keys(links.current).find((id) => links.current[id]!.url === url) if (id) { return id diff --git a/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.test.tsx b/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.test.tsx index 719c2820dc4..1233bbe5d25 100644 --- a/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.test.tsx @@ -2,8 +2,10 @@ import {ConcurrentOutput, useConcurrentOutputContext} from './ConcurrentOutput.j import {render} from '../../testing/ui.js' import {AbortController, AbortSignal} from '../../../../public/node/abort.js' import {unstyled} from '../../../../public/node/output.js' + import React from 'react' import {describe, expect, test} from 'vitest' + import {Writable} from 'stream' /** @@ -104,7 +106,6 @@ describe('ConcurrentOutput', () => { { prefix: '1', action: async (stdout: Writable, _stderr: Writable, _signal: AbortSignal) => { - // eslint-disable-next-line react-hooks/rules-of-hooks useConcurrentOutputContext({stripAnsi: false}, () => { stdout.write(output) }) @@ -131,7 +132,6 @@ describe('ConcurrentOutput', () => { { prefix: '1', action: async (stdout: Writable, _stderr: Writable, _signal: AbortSignal) => { - // eslint-disable-next-line react-hooks/rules-of-hooks useConcurrentOutputContext({outputPrefix: extensionName}, () => { stdout.write('foo bar') }) diff --git a/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.tsx b/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.tsx index da83738b860..b0f508259fd 100644 --- a/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.tsx +++ b/packages/cli-kit/src/private/node/ui/components/ConcurrentOutput.tsx @@ -4,6 +4,7 @@ import React, {FunctionComponent, useCallback, useEffect, useMemo, useState} fro import {Box, Static, Text, TextProps, useApp} from 'ink' import figures from 'figures' import stripAnsi from 'strip-ansi' + import {Writable} from 'stream' import {AsyncLocalStorage} from 'node:async_hooks' diff --git a/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.test.tsx b/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.test.tsx index b265086218c..b5eb3fc0d7e 100644 --- a/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.test.tsx @@ -2,6 +2,7 @@ import {DangerousConfirmationPrompt} from './DangerousConfirmationPrompt.js' import {getLastFrameAfterUnmount, sendInputAndWaitForChange, waitForInputsToBeReady, render} from '../../testing/ui.js' import {unstyled} from '../../../../public/node/output.js' import React from 'react' + import {describe, expect, test, vi} from 'vitest' const ENTER = '\r' diff --git a/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.tsx b/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.tsx index e09a1853e9a..d877dd98440 100644 --- a/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.tsx +++ b/packages/cli-kit/src/private/node/ui/components/DangerousConfirmationPrompt.tsx @@ -7,6 +7,7 @@ import {messageWithPunctuation} from '../utilities.js' import {AbortSignal} from '../../../../public/node/abort.js' import useAbortSignal from '../hooks/use-abort-signal.js' import usePrompt, {PromptState} from '../hooks/use-prompt.js' + import React, {FunctionComponent, useCallback, useEffect, useState} from 'react' import {Box, useApp, useInput, Text} from 'ink' import figures from 'figures' diff --git a/packages/cli-kit/src/private/node/ui/components/FatalError.test.tsx b/packages/cli-kit/src/private/node/ui/components/FatalError.test.tsx index af7b6755be3..51721c0a06d 100644 --- a/packages/cli-kit/src/private/node/ui/components/FatalError.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/FatalError.test.tsx @@ -3,6 +3,7 @@ import {unstyled} from '../../../../public/node/output.js' import {AbortError, BugError, ExternalError} from '../../../../public/node/error.js' import {render} from '../../testing/ui.js' import {describe, expect, test} from 'vitest' + import React from 'react' describe('FatalError', async () => { diff --git a/packages/cli-kit/src/private/node/ui/components/FatalError.tsx b/packages/cli-kit/src/private/node/ui/components/FatalError.tsx index b632ac0d177..f8876fab6ea 100644 --- a/packages/cli-kit/src/private/node/ui/components/FatalError.tsx +++ b/packages/cli-kit/src/private/node/ui/components/FatalError.tsx @@ -30,7 +30,7 @@ const FatalError: FunctionComponent = ({error}) => { .map((item) => { /** We make the paths relative to the packages/ directory */ const fileShortComponents = item.fileShort.split('packages/') - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + item.fileShort = fileShortComponents.length === 2 ? fileShortComponents[1]! : fileShortComponents[0]! return item }) diff --git a/packages/cli-kit/src/private/node/ui/components/List.test.tsx b/packages/cli-kit/src/private/node/ui/components/List.test.tsx index 1b91c3950ae..d8a35df8427 100644 --- a/packages/cli-kit/src/private/node/ui/components/List.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/List.test.tsx @@ -2,6 +2,7 @@ import {List} from './List.js' import {unstyled} from '../../../../public/node/output.js' import {render} from '../../testing/ui.js' import {describe, expect, test} from 'vitest' + import React from 'react' describe('List', async () => { diff --git a/packages/cli-kit/src/private/node/ui/components/LoadingBar.test.tsx b/packages/cli-kit/src/private/node/ui/components/LoadingBar.test.tsx index 308871afbf4..e4ca3078906 100644 --- a/packages/cli-kit/src/private/node/ui/components/LoadingBar.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/LoadingBar.test.tsx @@ -3,6 +3,7 @@ import {render} from '../../testing/ui.js' import {shouldDisplayColors, unstyled} from '../../../../public/node/output.js' import useLayout from '../hooks/use-layout.js' import React from 'react' + import {beforeEach, describe, expect, test, vi} from 'vitest' vi.mock('../hooks/use-layout.js') diff --git a/packages/cli-kit/src/private/node/ui/components/LoadingBar.tsx b/packages/cli-kit/src/private/node/ui/components/LoadingBar.tsx index db0aa496743..42278012be4 100644 --- a/packages/cli-kit/src/private/node/ui/components/LoadingBar.tsx +++ b/packages/cli-kit/src/private/node/ui/components/LoadingBar.tsx @@ -2,6 +2,7 @@ import {TextAnimation} from './TextAnimation.js' import useLayout from '../hooks/use-layout.js' import {shouldDisplayColors} from '../../../../public/node/output.js' import React from 'react' + import {Box, Text} from 'ink' const loadingBarChar = '▀' diff --git a/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.test.tsx b/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.test.tsx index eddaf80ecb0..1dde3b4c96e 100644 --- a/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.test.tsx @@ -2,6 +2,7 @@ import {InfoTable} from './InfoTable.js' import {unstyled} from '../../../../../public/node/output.js' import {render} from '../../../testing/ui.js' import {describe, expect, test} from 'vitest' + import React from 'react' describe('InfoTable', async () => { diff --git a/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.tsx b/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.tsx index 4670c8cae21..57d79396625 100644 --- a/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Prompts/InfoTable.tsx @@ -16,11 +16,7 @@ export interface InfoTableSection { } export interface InfoTableProps { - table: - | { - [header: string]: Items - } - | InfoTableSection[] + table: Record | InfoTableSection[] } const InfoTable: FunctionComponent = ({table}) => { @@ -28,7 +24,7 @@ const InfoTable: FunctionComponent = ({table}) => { ? table : Object.keys(table).map((header) => ({ header, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + items: table[header]!, color: undefined, helperText: undefined, diff --git a/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.test.tsx b/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.test.tsx index 8067ce672c2..4b4d685af63 100644 --- a/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.test.tsx @@ -1,6 +1,6 @@ import {PromptLayout} from './PromptLayout.js' -import {render} from '../../../testing/ui.js' import {PromptState} from '../../hooks/use-prompt.js' +import {render} from '../../../testing/ui.js' import {describe, expect, test} from 'vitest' import React from 'react' import {Box, Text} from 'ink' diff --git a/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.tsx b/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.tsx index 740b4bafa6d..c7a461681ff 100644 --- a/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Prompts/PromptLayout.tsx @@ -1,11 +1,12 @@ -import {InfoMessage, InfoMessageProps} from './InfoMessage.js' import {InfoTable, InfoTableProps} from './InfoTable.js' +import {InfoMessage, InfoMessageProps} from './InfoMessage.js' import {InlineToken, LinkToken, TokenItem, TokenizedText} from '../TokenizedText.js' import {messageWithPunctuation} from '../../utilities.js' import {AbortSignal} from '../../../../../public/node/abort.js' import useAbortSignal from '../../hooks/use-abort-signal.js' import {PromptState} from '../../hooks/use-prompt.js' import React, {ReactElement, cloneElement, useCallback, useLayoutEffect, useState} from 'react' + import {Box, measureElement, Text, useStdout, DOMElement} from 'ink' import figures from 'figures' diff --git a/packages/cli-kit/src/private/node/ui/components/SelectInput.test.tsx b/packages/cli-kit/src/private/node/ui/components/SelectInput.test.tsx index d4966ea3ee2..e3e2ea17eee 100644 --- a/packages/cli-kit/src/private/node/ui/components/SelectInput.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/SelectInput.test.tsx @@ -8,6 +8,7 @@ import { } from '../../testing/ui.js' import {platformAndArch} from '../../../../public/node/os.js' import {describe, expect, test, vi} from 'vitest' + import React from 'react' const ARROW_UP = '\u001B[A' diff --git a/packages/cli-kit/src/private/node/ui/components/SelectInput.tsx b/packages/cli-kit/src/private/node/ui/components/SelectInput.tsx index 6155d66ab43..7bbb0cbba0e 100644 --- a/packages/cli-kit/src/private/node/ui/components/SelectInput.tsx +++ b/packages/cli-kit/src/private/node/ui/components/SelectInput.tsx @@ -1,7 +1,7 @@ import {Scrollbar} from './Scrollbar.js' -import {useSelectState} from '../hooks/use-select-state.js' -import useLayout from '../hooks/use-layout.js' import {handleCtrlC} from '../../ui.js' +import useLayout from '../hooks/use-layout.js' +import {useSelectState} from '../hooks/use-select-state.js' import React, {useCallback, forwardRef, useEffect} from 'react' import {Box, Key, useInput, Text, DOMElement} from 'ink' import chalk from 'chalk' @@ -9,9 +9,9 @@ import figures from 'figures' import sortBy from 'lodash/sortBy.js' declare module 'react' { - function forwardRef( - render: (props: P, ref: React.Ref) => React.ReactElement | null, - ): (props: P & React.RefAttributes) => React.ReactElement | null + function forwardRef( + render: (props: TProps, ref: React.Ref) => React.ReactElement | null, + ): (props: TProps & React.RefAttributes) => React.ReactElement | null } export interface SelectInputProps { items: Item[] @@ -80,7 +80,6 @@ interface ItemProps { index: number } -// eslint-disable-next-line react/function-component-definition function Item({ item, previousItem, @@ -132,7 +131,6 @@ function Item({ const MAX_AVAILABLE_LINES = 25 -// eslint-disable-next-line react/function-component-definition function SelectInputInner( { items: rawItems, diff --git a/packages/cli-kit/src/private/node/ui/components/SelectPrompt.test.tsx b/packages/cli-kit/src/private/node/ui/components/SelectPrompt.test.tsx index d553ee40e7b..0bbbf45ad07 100644 --- a/packages/cli-kit/src/private/node/ui/components/SelectPrompt.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/SelectPrompt.test.tsx @@ -4,6 +4,7 @@ import {unstyled} from '../../../../public/node/output.js' import {Stdout} from '../../ui.js' import {AbortController} from '../../../../public/node/abort.js' import {beforeEach, describe, expect, test, vi} from 'vitest' + import React from 'react' import {useStdout} from 'ink' diff --git a/packages/cli-kit/src/private/node/ui/components/SelectPrompt.tsx b/packages/cli-kit/src/private/node/ui/components/SelectPrompt.tsx index bbaf35d2ae2..8e1606efb37 100644 --- a/packages/cli-kit/src/private/node/ui/components/SelectPrompt.tsx +++ b/packages/cli-kit/src/private/node/ui/components/SelectPrompt.tsx @@ -4,6 +4,7 @@ import {InfoMessageProps} from './Prompts/InfoMessage.js' import {Message, PromptLayout} from './Prompts/PromptLayout.js' import {AbortSignal} from '../../../../public/node/abort.js' import usePrompt, {PromptState} from '../hooks/use-prompt.js' + import React, {ReactElement, useCallback, useEffect} from 'react' import {useApp} from 'ink' @@ -18,7 +19,6 @@ export interface SelectPromptProps { groupOrder?: string[] } -// eslint-disable-next-line react/function-component-definition function SelectPrompt({ message, choices, diff --git a/packages/cli-kit/src/private/node/ui/components/SingleTask.test.tsx b/packages/cli-kit/src/private/node/ui/components/SingleTask.test.tsx index 89c95f0c1f0..d3d159d0b2e 100644 --- a/packages/cli-kit/src/private/node/ui/components/SingleTask.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/SingleTask.test.tsx @@ -2,6 +2,7 @@ import {SingleTask} from './SingleTask.js' import {render} from '../../testing/ui.js' import {TokenizedString} from '../../../../public/node/output.js' import React from 'react' + import {describe, expect, test} from 'vitest' describe('SingleTask', () => { @@ -170,7 +171,10 @@ describe('SingleTask', () => { test('preserves error types and messages', async () => { // Test with custom error class CustomError extends Error { - constructor(message: string, public code: string) { + constructor( + message: string, + public code: string, + ) { super(message) this.name = 'CustomError' } diff --git a/packages/cli-kit/src/private/node/ui/components/SingleTask.tsx b/packages/cli-kit/src/private/node/ui/components/SingleTask.tsx index 563f4f4001e..a58113df20f 100644 --- a/packages/cli-kit/src/private/node/ui/components/SingleTask.tsx +++ b/packages/cli-kit/src/private/node/ui/components/SingleTask.tsx @@ -2,6 +2,7 @@ import {LoadingBar} from './LoadingBar.js' import {handleCtrlC} from '../../ui.js' import {TokenizedString} from '../../../../public/node/output.js' import React, {useEffect, useState} from 'react' + import {useApp, useInput, useStdin} from 'ink' interface SingleTaskProps { diff --git a/packages/cli-kit/src/private/node/ui/components/Table/ScalarDict.ts b/packages/cli-kit/src/private/node/ui/components/Table/ScalarDict.ts index 5844049b14c..3c96dc37674 100644 --- a/packages/cli-kit/src/private/node/ui/components/Table/ScalarDict.ts +++ b/packages/cli-kit/src/private/node/ui/components/Table/ScalarDict.ts @@ -1,5 +1,4 @@ type Scalar = string | number | boolean | null | undefined -export default interface ScalarDict { - [key: string]: Scalar -} +type ScalarDict = Record +export default ScalarDict diff --git a/packages/cli-kit/src/private/node/ui/components/Table/Table.test.tsx b/packages/cli-kit/src/private/node/ui/components/Table/Table.test.tsx index 5ebdca30e2b..4d3f395291d 100644 --- a/packages/cli-kit/src/private/node/ui/components/Table/Table.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Table/Table.test.tsx @@ -17,7 +17,7 @@ describe('Table', async () => { }, ] const color = 'grey' - const columns: TableColumn<{[key in 'name' | 'role' | 'id']: string}> = { + const columns: TableColumn> = { name: {}, role: { color, diff --git a/packages/cli-kit/src/private/node/ui/components/Table/Table.tsx b/packages/cli-kit/src/private/node/ui/components/Table/Table.tsx index 175cfb4d9ad..fed66801d59 100644 --- a/packages/cli-kit/src/private/node/ui/components/Table/Table.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Table/Table.tsx @@ -1,5 +1,5 @@ -import ScalarDict from './ScalarDict.js' import {Row} from './Row.js' +import ScalarDict from './ScalarDict.js' import {unstyled} from '../../../../../public/node/output.js' import React from 'react' import {Box} from 'ink' @@ -14,7 +14,6 @@ export interface TableProps { columns: TableColumn } -// eslint-disable-next-line react/function-component-definition function Table({rows, columns: columnsConfiguration}: TableProps) { const columns = Object.entries(columnsConfiguration).map(([key, {header, color}]) => { const headerWidth = String(header || key).length diff --git a/packages/cli-kit/src/private/node/ui/components/Tasks.test.tsx b/packages/cli-kit/src/private/node/ui/components/Tasks.test.tsx index ab192ca1a45..f7afdec0984 100644 --- a/packages/cli-kit/src/private/node/ui/components/Tasks.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Tasks.test.tsx @@ -4,6 +4,7 @@ import {unstyled, TokenizedString} from '../../../../public/node/output.js' import {AbortController} from '../../../../public/node/abort.js' import {Stdout} from '../../ui.js' import React from 'react' + import {beforeEach, describe, expect, test, vi} from 'vitest' import {useStdout} from 'ink' diff --git a/packages/cli-kit/src/private/node/ui/components/Tasks.tsx b/packages/cli-kit/src/private/node/ui/components/Tasks.tsx index cb5153d1793..fd071e06490 100644 --- a/packages/cli-kit/src/private/node/ui/components/Tasks.tsx +++ b/packages/cli-kit/src/private/node/ui/components/Tasks.tsx @@ -5,11 +5,12 @@ import {AbortSignal} from '../../../../public/node/abort.js' import useAbortSignal from '../hooks/use-abort-signal.js' import {useExitOnCtrlC} from '../hooks/use-exit-on-ctrl-c.js' import {TokenizedString} from '../../../../public/node/output.js' + import React, {useRef, useState} from 'react' export interface Task { title: string | TokenizedString - // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + task: (ctx: TContext, task: Task) => Promise[]> retry?: number retryCount?: number @@ -58,7 +59,6 @@ async function runTask(task: Task, ctx: TContext) { const noop = () => {} -// eslint-disable-next-line react/function-component-definition function Tasks({ tasks, silent = isUnitTest(), @@ -67,7 +67,6 @@ function Tasks({ noColor, noProgressBar = false, }: React.PropsWithChildren>) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const [currentTask, setCurrentTask] = useState>(tasks[0]!) const [state, setState] = useState(TasksState.Loading) const ctx = useRef({} as TContext) diff --git a/packages/cli-kit/src/private/node/ui/components/TextAnimation.test.tsx b/packages/cli-kit/src/private/node/ui/components/TextAnimation.test.tsx index 8b2ca4ac910..3593110ae71 100644 --- a/packages/cli-kit/src/private/node/ui/components/TextAnimation.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/TextAnimation.test.tsx @@ -1,6 +1,6 @@ import {TextAnimation} from './TextAnimation.js' -import {render} from '../../testing/ui.js' import {Stdout} from '../../ui.js' +import {render} from '../../testing/ui.js' import React from 'react' import {beforeEach, describe, expect, test, vi} from 'vitest' import {useStdout} from 'ink' diff --git a/packages/cli-kit/src/private/node/ui/components/TextPrompt.test.tsx b/packages/cli-kit/src/private/node/ui/components/TextPrompt.test.tsx index da4804114e3..80fc4cd5f89 100644 --- a/packages/cli-kit/src/private/node/ui/components/TextPrompt.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/TextPrompt.test.tsx @@ -4,6 +4,7 @@ import {unstyled} from '../../../../public/node/output.js' import {AbortController} from '../../../../public/node/abort.js' import colors from '../../../../public/node/colors.js' import React from 'react' + import {describe, expect, test, vi} from 'vitest' const ENTER = '\r' diff --git a/packages/cli-kit/src/private/node/ui/components/TextPrompt.tsx b/packages/cli-kit/src/private/node/ui/components/TextPrompt.tsx index a3cb482e38b..d9d94e586da 100644 --- a/packages/cli-kit/src/private/node/ui/components/TextPrompt.tsx +++ b/packages/cli-kit/src/private/node/ui/components/TextPrompt.tsx @@ -1,5 +1,5 @@ -import {TextInput} from './TextInput.js' import {InlineToken, TokenItem, TokenizedText} from './TokenizedText.js' +import {TextInput} from './TextInput.js' import {handleCtrlC} from '../../ui.js' import useLayout from '../hooks/use-layout.js' import {messageWithPunctuation} from '../utilities.js' @@ -7,6 +7,7 @@ import {AbortSignal} from '../../../../public/node/abort.js' import useAbortSignal from '../hooks/use-abort-signal.js' import usePrompt, {PromptState} from '../hooks/use-prompt.js' import React, {FunctionComponent, useCallback, useEffect, useState} from 'react' + import {Box, useApp, useInput, Text} from 'ink' import figures from 'figures' diff --git a/packages/cli-kit/src/private/node/ui/components/TokenizedText.test.tsx b/packages/cli-kit/src/private/node/ui/components/TokenizedText.test.tsx index f0dfefc46e0..16fd76c7002 100644 --- a/packages/cli-kit/src/private/node/ui/components/TokenizedText.test.tsx +++ b/packages/cli-kit/src/private/node/ui/components/TokenizedText.test.tsx @@ -2,6 +2,7 @@ import {tokenItemToString, TokenizedText} from './TokenizedText.js' import {unstyled} from '../../../../public/node/output.js' import {render} from '../../testing/ui.js' import {describe, expect, test} from 'vitest' + import React from 'react' describe('TokenizedText', async () => { diff --git a/packages/cli-kit/src/private/node/ui/components/TokenizedText.tsx b/packages/cli-kit/src/private/node/ui/components/TokenizedText.tsx index 66a7b1928d3..0b4c2bb58e9 100644 --- a/packages/cli-kit/src/private/node/ui/components/TokenizedText.tsx +++ b/packages/cli-kit/src/private/node/ui/components/TokenizedText.tsx @@ -1,12 +1,11 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {Command} from './Command.js' import {Link} from './Link.js' import {List} from './List.js' import {UserInput} from './UserInput.js' import {FilePath} from './FilePath.js' import {Subdued} from './Subdued.js' -import {Box, Text} from 'ink' import React, {FunctionComponent} from 'react' +import {Box, Text} from 'ink' export interface LinkToken { link: { diff --git a/packages/cli-kit/src/private/node/ui/contexts/LinksContext.ts b/packages/cli-kit/src/private/node/ui/contexts/LinksContext.ts index 8a1df3ddfb0..efc31d54b6f 100644 --- a/packages/cli-kit/src/private/node/ui/contexts/LinksContext.ts +++ b/packages/cli-kit/src/private/node/ui/contexts/LinksContext.ts @@ -6,7 +6,7 @@ export interface Link { } export interface ContextValue { - links: React.RefObject<{[key: string]: Link}> + links: React.RefObject> addLink: (label: string | undefined, url: string) => string } diff --git a/packages/cli-kit/src/public/common/array.ts b/packages/cli-kit/src/public/common/array.ts index 0eaf56f0d83..8b22c0b7b93 100644 --- a/packages/cli-kit/src/public/common/array.ts +++ b/packages/cli-kit/src/public/common/array.ts @@ -9,7 +9,6 @@ import type {List, ValueIteratee} from 'lodash' * @returns A random element from the array. */ export function takeRandomFromArray(array: T[]): T { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return array[Math.floor(Math.random() * array.length)]! } diff --git a/packages/cli-kit/src/public/common/collection.ts b/packages/cli-kit/src/public/common/collection.ts index b45baa1deae..f62e25b7f86 100644 --- a/packages/cli-kit/src/public/common/collection.ts +++ b/packages/cli-kit/src/public/common/collection.ts @@ -14,9 +14,7 @@ import type {List, ValueIteratee} from 'lodash' export function groupBy( collection: ArrayLike | null | undefined, iteratee?: ValueIteratee, -): { - [index: string]: T[] -} { +): Record { return lodashGroupBy(collection, iteratee) } diff --git a/packages/cli-kit/src/public/common/object.test.ts b/packages/cli-kit/src/public/common/object.test.ts index e71198c3ed8..93a116639c0 100644 --- a/packages/cli-kit/src/public/common/object.test.ts +++ b/packages/cli-kit/src/public/common/object.test.ts @@ -281,7 +281,7 @@ describe('setPathValue', () => { // Should NOT create a nested structure expect(getPathValue(result, ['key1.with.dots'])).toEqual('value') // Should be accessible as a top-level property - expect((result as {[key: string]: string})['key1.with.dots']).toEqual('value') + expect((result as Record)['key1.with.dots']).toEqual('value') }) test('set nested property under a key that contains dots', () => { diff --git a/packages/cli-kit/src/public/common/string.ts b/packages/cli-kit/src/public/common/string.ts index 89e6bac52eb..0e3e295df4d 100644 --- a/packages/cli-kit/src/public/common/string.ts +++ b/packages/cli-kit/src/public/common/string.ts @@ -1,6 +1,7 @@ import {takeRandomFromArray} from './array.js' -import {unstyled} from '../../public/node/output.js' +import {unstyled} from '../node/output.js' import {Token, TokenItem} from '../../private/node/ui/components/TokenizedText.js' + import {camelCase, capitalCase, constantCase, paramCase, snakeCase, pascalCase} from 'change-case' const SAFE_RANDOM_BUSINESS_ADJECTIVES = [ @@ -212,7 +213,6 @@ export function pluralize< none?: () => TokenItem, ): TokenItem | string { if (items.length === 1) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return singular(items[0]!) } @@ -253,7 +253,6 @@ export function tryParseInt(maybeInt: string | undefined): number | undefined { export function linesToColumns(lines: string[][]): string { const widths: number[] = [] for (let i = 0; lines[0] && i < lines[0].length; i++) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const columnRows = lines.map((line) => line[i]!) widths.push(Math.max(...columnRows.map((row) => unstyled(row).length))) } @@ -261,7 +260,6 @@ export function linesToColumns(lines: string[][]): string { .map((line) => { return line .map((col, index) => { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return `${col}${' '.repeat(widths[index]! - unstyled(col).length)}` }) .join(' ') diff --git a/packages/cli-kit/src/public/common/ts/json-narrowing.ts b/packages/cli-kit/src/public/common/ts/json-narrowing.ts index 9f7acd8a377..c2ba1d140e1 100644 --- a/packages/cli-kit/src/public/common/ts/json-narrowing.ts +++ b/packages/cli-kit/src/public/common/ts/json-narrowing.ts @@ -6,7 +6,7 @@ import {BugError} from '../../node/error.js' * @param unknownBlob - The unknown object to validate. * @throws BugError - Thrown if the unknownBlob is not a string map. */ -export function assertStringMap(unknownBlob: unknown): asserts unknownBlob is {[key: string]: string} { +export function assertStringMap(unknownBlob: unknown): asserts unknownBlob is Record { if (typeof unknownBlob !== 'object' || unknownBlob === null) { throw new BugError('Expected an object.') } diff --git a/packages/cli-kit/src/public/node/analytics.test.ts b/packages/cli-kit/src/public/node/analytics.test.ts index 437ee1bb93e..6ca04aa1d4f 100644 --- a/packages/cli-kit/src/public/node/analytics.test.ts +++ b/packages/cli-kit/src/public/node/analytics.test.ts @@ -14,11 +14,12 @@ import {joinPath, dirname} from './path.js' import {publishMonorailEvent} from './monorail.js' import {mockAndCaptureOutput} from './testing/output.js' import {addPublicMetadata} from './metadata.js' -import * as store from '../../private/node/analytics/storage.js' +import {hashString} from './crypto.js' import {startAnalytics} from '../../private/node/analytics.js' -import {hashString} from '../../public/node/crypto.js' +import * as store from '../../private/node/analytics/storage.js' import {CLI_KIT_VERSION} from '../common/version.js' import {setLastSeenAuthMethod, setLastSeenUserIdAfterAuth} from '../../private/node/session.js' + import {test, expect, describe, vi, beforeEach, afterEach, MockedFunction} from 'vitest' vi.mock('./context/local.js') diff --git a/packages/cli-kit/src/public/node/analytics.ts b/packages/cli-kit/src/public/node/analytics.ts index 03345a195be..73cd1b1987f 100644 --- a/packages/cli-kit/src/public/node/analytics.ts +++ b/packages/cli-kit/src/public/node/analytics.ts @@ -2,6 +2,7 @@ import {alwaysLogAnalytics, alwaysLogMetrics, analyticsDisabled, isShopify} from import * as metadata from './metadata.js' import {publishMonorailEvent, MONORAIL_COMMAND_TOPIC} from './monorail.js' import {fanoutHooks} from './plugins.js' +import {outputContent, outputDebug, outputToken} from './output.js' import { recordTiming as storageRecordTiming, recordError as storageRecordError, @@ -10,7 +11,6 @@ import { compileData as storageCompileData, RuntimeData, } from '../../private/node/analytics/storage.js' -import {outputContent, outputDebug, outputToken} from '../../public/node/output.js' import {getEnvironmentData, getSensitiveEnvironmentData} from '../../private/node/analytics.js' import {CLI_KIT_VERSION} from '../common/version.js' import {recordMetrics} from '../../private/node/otel-metrics.js' @@ -18,6 +18,7 @@ import {runWithRateLimit} from '../../private/node/conf-store.js' import {reportingRateLimit} from '../../private/node/constants.js' import {getLastSeenUserIdAfterAuth} from '../../private/node/session.js' import {requestIdsCollection} from '../../private/node/request-ids.js' + import {Interfaces} from '@oclif/core' export type CommandExitMode = diff --git a/packages/cli-kit/src/public/node/api/admin.test.ts b/packages/cli-kit/src/public/node/api/admin.test.ts index f63268f6671..00b4bf7b96e 100644 --- a/packages/cli-kit/src/public/node/api/admin.test.ts +++ b/packages/cli-kit/src/public/node/api/admin.test.ts @@ -2,8 +2,9 @@ import * as admin from './admin.js' import {graphqlRequest, graphqlRequestDoc} from './graphql.js' import {AdminSession} from '../session.js' import {buildHeaders} from '../../../private/node/api/headers.js' -import * as http from '../../../public/node/http.js' +import * as http from '../http.js' import {defaultThemeKitAccessDomain} from '../../../private/node/constants.js' + import {test, vi, expect, describe} from 'vitest' vi.mock('./graphql.js') diff --git a/packages/cli-kit/src/public/node/api/admin.ts b/packages/cli-kit/src/public/node/api/admin.ts index 107d91686fa..68f90d5da7f 100644 --- a/packages/cli-kit/src/public/node/api/admin.ts +++ b/packages/cli-kit/src/public/node/api/admin.ts @@ -6,7 +6,7 @@ import { UnauthorizedHandler, } from './graphql.js' import {AdminSession} from '../session.js' -import {outputContent, outputToken} from '../../../public/node/output.js' +import {outputContent, outputToken} from '../output.js' import {AbortError, BugError} from '../error.js' import { restRequestBody, @@ -17,11 +17,11 @@ import { import {isNetworkError} from '../../../private/node/api.js' import {RequestModeInput, shopifyFetch} from '../http.js' import {PublicApiVersions} from '../../../cli/api/graphql/admin/generated/public_api_versions.js' - import {themeKitAccessDomain} from '../../../private/node/constants.js' import {serviceEnvironment} from '../../../private/node/context/service.js' import {DevServerCore} from '../vendor/dev_server/index.js' import {ClientError, Variables} from 'graphql-request' + import {TypedDocumentNode} from '@graphql-typed-document-node/core' const LatestApiVersionByFQDN = new Map() @@ -108,7 +108,7 @@ export async function adminRequestDoc( return result } -function themeAccessHeaders(session: AdminSession): {[header: string]: string} { +function themeAccessHeaders(session: AdminSession): Record { return isThemeAccessSession(session) ? {'X-Shopify-Shop': session.storeFqdn, 'X-Shopify-Access-Token': session.token} : {} @@ -126,7 +126,7 @@ async function fetchLatestSupportedApiVersion( preferredBehaviour?: RequestModeInput, ): Promise { const apiVersions = await supportedApiVersions(session, preferredBehaviour) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const latest = apiVersions.reverse()[0]! LatestApiVersionByFQDN.set(session.storeFqdn, latest) return latest @@ -248,7 +248,7 @@ export async function restRequest( path: string, session: AdminSession, requestBody?: T, - searchParams: {[name: string]: string} = {}, + searchParams: Record = {}, apiVersion = 'unstable', ): Promise { const url = restRequestUrl(session, apiVersion, path, searchParams) @@ -289,5 +289,5 @@ export interface RestResponse { /** * HTTP response headers. */ - headers: {[key: string]: string[]} + headers: Record } diff --git a/packages/cli-kit/src/public/node/api/app-dev.ts b/packages/cli-kit/src/public/node/api/app-dev.ts index 8243856cfb4..1bfb899715d 100644 --- a/packages/cli-kit/src/public/node/api/app-dev.ts +++ b/packages/cli-kit/src/public/node/api/app-dev.ts @@ -1,7 +1,7 @@ -import {graphqlRequestDoc, UnauthorizedHandler} from './graphql.js' import {RequestOptions} from './app-management.js' -import {appDevFqdn, normalizeStoreFqdn} from '../context/fqdn.js' +import {graphqlRequestDoc, UnauthorizedHandler} from './graphql.js' import {serviceEnvironment} from '../../../private/node/context/service.js' +import {appDevFqdn, normalizeStoreFqdn} from '../context/fqdn.js' import Bottleneck from 'bottleneck' import {Variables} from 'graphql-request' import {TypedDocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/cli-kit/src/public/node/api/app-management.test.ts b/packages/cli-kit/src/public/node/api/app-management.test.ts index be5a8951084..9b59a24fe6c 100644 --- a/packages/cli-kit/src/public/node/api/app-management.test.ts +++ b/packages/cli-kit/src/public/node/api/app-management.test.ts @@ -2,6 +2,7 @@ import {appManagementRequestDoc, handleDeprecations} from './app-management.js' import {graphqlRequestDoc, GraphQLResponse} from './graphql.js' import {appManagementFqdn} from '../context/fqdn.js' import {setNextDeprecationDate} from '../../../private/node/context/deprecations-store.js' + import {test, vi, expect, describe, beforeEach, beforeAll} from 'vitest' import {TypedDocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/cli-kit/src/public/node/api/app-management.ts b/packages/cli-kit/src/public/node/api/app-management.ts index d646895a1b9..1c1e343311a 100644 --- a/packages/cli-kit/src/public/node/api/app-management.ts +++ b/packages/cli-kit/src/public/node/api/app-management.ts @@ -1,10 +1,11 @@ -import {CacheOptions, GraphQLResponse, UnauthorizedHandler, graphqlRequestDoc} from './graphql.js' import {addCursorAndFiltersToAppLogsUrl} from './utilities.js' +import {CacheOptions, GraphQLResponse, UnauthorizedHandler, graphqlRequestDoc} from './graphql.js' import {appManagementFqdn} from '../context/fqdn.js' import {setNextDeprecationDate} from '../../../private/node/context/deprecations-store.js' import {buildHeaders} from '../../../private/node/api/headers.js' import {RequestModeInput} from '../http.js' import Bottleneck from 'bottleneck' + import {TypedDocumentNode} from '@graphql-typed-document-node/core' import {Variables} from 'graphql-request' @@ -28,7 +29,7 @@ async function setupRequest(token: string) { } } -export const appManagementHeaders = (token: string): {[key: string]: string} => { +export const appManagementHeaders = (token: string): Record => { return buildHeaders(token) } diff --git a/packages/cli-kit/src/public/node/api/business-platform.ts b/packages/cli-kit/src/public/node/api/business-platform.ts index e35409f46d7..dcca1af22df 100644 --- a/packages/cli-kit/src/public/node/api/business-platform.ts +++ b/packages/cli-kit/src/public/node/api/business-platform.ts @@ -119,8 +119,10 @@ export async function businessPlatformOrganizationsRequest( }) } -export interface BusinessPlatformOrganizationsRequestOptions - extends BusinessPlatformRequestOptions { +export interface BusinessPlatformOrganizationsRequestOptions< + TResult, + TVariables extends Variables, +> extends BusinessPlatformRequestOptions { organizationId: string } diff --git a/packages/cli-kit/src/public/node/api/functions.ts b/packages/cli-kit/src/public/node/api/functions.ts index aed8c0946fd..568196e985a 100644 --- a/packages/cli-kit/src/public/node/api/functions.ts +++ b/packages/cli-kit/src/public/node/api/functions.ts @@ -1,5 +1,5 @@ -import {graphqlRequestDoc, UnauthorizedHandler} from './graphql.js' import {handleDeprecations} from './app-management.js' +import {graphqlRequestDoc, UnauthorizedHandler} from './graphql.js' import {appManagementFqdn} from '../context/fqdn.js' import {TypedDocumentNode} from '@graphql-typed-document-node/core' import {Variables} from 'graphql-request' diff --git a/packages/cli-kit/src/public/node/api/graphql.test.ts b/packages/cli-kit/src/public/node/api/graphql.test.ts index 619719a26e4..d0a4bf322b4 100644 --- a/packages/cli-kit/src/public/node/api/graphql.test.ts +++ b/packages/cli-kit/src/public/node/api/graphql.test.ts @@ -11,6 +11,7 @@ import {nonRandomUUID} from '../crypto.js' import {CLI_KIT_VERSION} from '../../common/version.js' import * as system from '../system.js' import {test, vi, describe, expect, beforeEach, beforeAll, afterAll, afterEach} from 'vitest' + import {TypedDocumentNode} from '@graphql-typed-document-node/core' import {setupServer} from 'msw/node' import {graphql, HttpResponse} from 'msw' diff --git a/packages/cli-kit/src/public/node/api/graphql.ts b/packages/cli-kit/src/public/node/api/graphql.ts index ad1ca5a28cc..e39f7386062 100644 --- a/packages/cli-kit/src/public/node/api/graphql.ts +++ b/packages/cli-kit/src/public/node/api/graphql.ts @@ -27,12 +27,11 @@ import { import {TypedDocumentNode} from '@graphql-typed-document-node/core' // to replace TVariable type when there graphql query has no variables -export type Exact = {[K in keyof T]: T[K]} +export type Exact> = {[K in keyof T]: T[K]} -export interface GraphQLVariables { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - [key: string]: any -} +// Using a more permissive type to allow generated GraphQL variable interfaces +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type GraphQLVariables = Record export type GraphQLResponse = Awaited>> @@ -57,7 +56,7 @@ interface GraphQLRequestBaseOptions { api: string url: string token?: string - addedHeaders?: {[header: string]: string} + addedHeaders?: Record responseOptions?: GraphQLResponseOptions cacheOptions?: CacheOptions preferredBehaviour?: RequestModeInput @@ -77,7 +76,7 @@ export type GraphQLRequestOptions = GraphQLRequestBaseOptions & { } export type GraphQLRequestDocOptions = GraphQLRequestBaseOptions & { - query: TypedDocumentNode | TypedDocumentNode> + query: TypedDocumentNode | TypedDocumentNode>> variables?: TVariables unauthorizedHandler?: UnauthorizedHandler autoRateLimitRestore?: boolean @@ -109,7 +108,7 @@ async function createGraphQLClient({ }: { url: string token: string | undefined - addedHeaders?: {[header: string]: string} + addedHeaders?: Record }) { const headers = { ...addedHeaders, diff --git a/packages/cli-kit/src/public/node/api/partners.test.ts b/packages/cli-kit/src/public/node/api/partners.test.ts index d287b4d4539..8318224a55f 100644 --- a/packages/cli-kit/src/public/node/api/partners.test.ts +++ b/packages/cli-kit/src/public/node/api/partners.test.ts @@ -4,6 +4,7 @@ import {partnersFqdn} from '../context/fqdn.js' import {blockPartnersAccess} from '../environment.js' import {BugError} from '../error.js' import {setNextDeprecationDate} from '../../../private/node/context/deprecations-store.js' + import {test, vi, expect, describe, beforeEach, beforeAll} from 'vitest' vi.mock('./graphql.js') diff --git a/packages/cli-kit/src/public/node/api/partners.ts b/packages/cli-kit/src/public/node/api/partners.ts index 82903a392cf..87d76ea8e24 100644 --- a/packages/cli-kit/src/public/node/api/partners.ts +++ b/packages/cli-kit/src/public/node/api/partners.ts @@ -1,3 +1,4 @@ +import {addCursorAndFiltersToAppLogsUrl} from './utilities.js' import { graphqlRequest, GraphQLVariables, @@ -6,7 +7,6 @@ import { CacheOptions, UnauthorizedHandler, } from './graphql.js' -import {addCursorAndFiltersToAppLogsUrl} from './utilities.js' import {partnersFqdn} from '../context/fqdn.js' import {setNextDeprecationDate} from '../../../private/node/context/deprecations-store.js' import {getPackageManager} from '../node-package-manager.js' @@ -16,6 +16,7 @@ import {formatPackageManagerCommand} from '../output.js' import {RequestModeInput} from '../http.js' import {blockPartnersAccess} from '../environment.js' import Bottleneck from 'bottleneck' + import {Variables} from 'graphql-request' import {TypedDocumentNode} from '@graphql-typed-document-node/core' diff --git a/packages/cli-kit/src/public/node/api/rest-api-throttler.ts b/packages/cli-kit/src/public/node/api/rest-api-throttler.ts index 0902e332dc2..2029cf952c7 100644 --- a/packages/cli-kit/src/public/node/api/rest-api-throttler.ts +++ b/packages/cli-kit/src/public/node/api/rest-api-throttler.ts @@ -142,9 +142,7 @@ interface ThrottlingState { } } -const _throttlingState: { - [context: string]: ThrottlingState -} = {} +const _throttlingState: Record = {} function extractRetryDelayMsFromResponse(response: RestResponse): number { const retryAfterStr = header(response, 'retry-after') @@ -275,7 +273,7 @@ if (import.meta.vitest) { // When const callLimit = extractApiCallLimitFromResponse(response) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const [used, limit] = callLimit! // Then diff --git a/packages/cli-kit/src/public/node/archiver.integration.test.ts b/packages/cli-kit/src/public/node/archiver.integration.test.ts index cab877fc2e5..989609b9e16 100644 --- a/packages/cli-kit/src/public/node/archiver.integration.test.ts +++ b/packages/cli-kit/src/public/node/archiver.integration.test.ts @@ -5,6 +5,7 @@ import {exec} from './system.js' import {describe, expect, test} from 'vitest' import StreamZip from 'node-stream-zip' import brotli from 'brotli' + import fs from 'fs' describe('zip', () => { @@ -154,7 +155,7 @@ async function createFiles(structure: string[], directory: string) { async function readArchiveFiles(zipPath: string) { await expect(fileExists(zipPath)).resolves.toBeTruthy() - // eslint-disable-next-line @babel/new-cap + // eslint-disable-next-line new-cap const archive = new StreamZip.async({file: zipPath}) const archiveEntries = Object.keys(await archive.entries()) await archive.close() diff --git a/packages/cli-kit/src/public/node/archiver.ts b/packages/cli-kit/src/public/node/archiver.ts index dda288526aa..1223c08af04 100644 --- a/packages/cli-kit/src/public/node/archiver.ts +++ b/packages/cli-kit/src/public/node/archiver.ts @@ -1,6 +1,6 @@ -import {relativePath, joinPath, dirname} from './path.js' +import {outputDebug, outputContent, outputToken} from './output.js' import {glob, removeFile} from './fs.js' -import {outputDebug, outputContent, outputToken} from '../../public/node/output.js' +import {relativePath, joinPath, dirname} from './path.js' import archiver from 'archiver' import {createWriteStream, readFileSync, writeFileSync} from 'fs' import {readFile} from 'fs/promises' diff --git a/packages/cli-kit/src/public/node/base-command.test.ts b/packages/cli-kit/src/public/node/base-command.test.ts index 2ff22d7801c..63c0a0fd19a 100644 --- a/packages/cli-kit/src/public/node/base-command.test.ts +++ b/packages/cli-kit/src/public/node/base-command.test.ts @@ -17,7 +17,7 @@ beforeEach(() => { vi.unstubAllEnvs() }) -let testResult: {[flag: string]: unknown} = {} +let testResult: Record = {} let testError: Error | undefined class MockCommand extends Command { diff --git a/packages/cli-kit/src/public/node/base-command.ts b/packages/cli-kit/src/public/node/base-command.ts index f4236e53e94..e5b5f8398c8 100644 --- a/packages/cli-kit/src/public/node/base-command.ts +++ b/packages/cli-kit/src/public/node/base-command.ts @@ -12,6 +12,7 @@ import {showNotificationsIfNeeded} from './notifications-system.js' import {setCurrentCommandId} from './global-context.js' import {JsonMap} from '../../private/common/json.js' import {underscore} from '../common/string.js' + import {Command, Config, Errors} from '@oclif/core' import {OutputFlags, Input, ParserOutput, FlagInput, OutputArgs} from '@oclif/core/parser' @@ -26,7 +27,6 @@ interface EnvironmentFlags { } abstract class BaseCommand extends Command { - // eslint-disable-next-line @typescript-eslint/ban-types static baseFlags: FlagInput<{}> = {} // Replace markdown links to plain text like: "link label" (url) @@ -82,7 +82,6 @@ abstract class BaseCommand extends Command { } } - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types protected exitWithTimestampWhenEnvVariablePresent() { if (isTruthy(process.env.SHOPIFY_CLI_ENV_STARTUP_PERFORMANCE_RUN)) { outputResult(` diff --git a/packages/cli-kit/src/public/node/cli.ts b/packages/cli-kit/src/public/node/cli.ts index e047e11421e..a9aa86af88d 100644 --- a/packages/cli-kit/src/public/node/cli.ts +++ b/packages/cli-kit/src/public/node/cli.ts @@ -2,6 +2,7 @@ import {isTruthy} from './context/utilities.js' import {launchCLI as defaultLaunchCli} from './cli-launcher.js' import {cacheClear} from '../../private/node/conf-store.js' import {environmentVariables} from '../../private/node/constants.js' + import {Flags} from '@oclif/core' /** diff --git a/packages/cli-kit/src/public/node/context/local.test.ts b/packages/cli-kit/src/public/node/context/local.test.ts index 476cd734d5d..10c4a37f07c 100644 --- a/packages/cli-kit/src/public/node/context/local.test.ts +++ b/packages/cli-kit/src/public/node/context/local.test.ts @@ -12,6 +12,7 @@ import { } from './local.js' import {fileExists} from '../fs.js' import {exec} from '../system.js' + import {expect, describe, vi, test} from 'vitest' vi.mock('../fs.js') diff --git a/packages/cli-kit/src/public/node/context/local.ts b/packages/cli-kit/src/public/node/context/local.ts index ce1afcffc57..4da6fa56320 100644 --- a/packages/cli-kit/src/public/node/context/local.ts +++ b/packages/cli-kit/src/public/node/context/local.ts @@ -3,8 +3,10 @@ import {getCIMetadata, isSet, Metadata} from '../../../private/node/context/util import {defaultThemeKitAccessDomain, environmentVariables, pathConstants} from '../../../private/node/constants.js' import {fileExists} from '../fs.js' import {exec} from '../system.js' + import isInteractive from 'is-interactive' import macaddress from 'macaddress' + import {homedir} from 'os' /** diff --git a/packages/cli-kit/src/public/node/custom-oclif-loader.ts b/packages/cli-kit/src/public/node/custom-oclif-loader.ts index 750eb999ec1..527f837eabb 100644 --- a/packages/cli-kit/src/public/node/custom-oclif-loader.ts +++ b/packages/cli-kit/src/public/node/custom-oclif-loader.ts @@ -32,7 +32,7 @@ export class ShopifyConfig extends Config { if (isDevelopment()) { // @ts-expect-error: This is a private method that we are overriding. OCLIF doesn't provide a way to extend it. - // eslint-disable-next-line @typescript-eslint/unbound-method + this.determinePriority = this.customPriority } } diff --git a/packages/cli-kit/src/public/node/dot-env.ts b/packages/cli-kit/src/public/node/dot-env.ts index 9f22b17904b..1c2e4cff31c 100644 --- a/packages/cli-kit/src/public/node/dot-env.ts +++ b/packages/cli-kit/src/public/node/dot-env.ts @@ -1,7 +1,6 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ +import {outputDebug, outputContent, outputToken} from './output.js' import {AbortError} from './error.js' import {fileExists, readFile, writeFile} from './fs.js' -import {outputDebug, outputContent, outputToken} from '../../public/node/output.js' import {parse} from 'dotenv' /** @@ -15,7 +14,7 @@ export interface DotEnvFile { /** * Variables of the .env file. */ - variables: {[name: string]: string} + variables: Record } /** @@ -53,10 +52,7 @@ export async function writeDotEnv(file: DotEnvFile): Promise { * @param envFileContent - .env file contents. * @param updatedValues - object containing new env variables values. */ -export function patchEnvFile( - envFileContent: string | null, - updatedValues: {[key: string]: string | undefined}, -): string { +export function patchEnvFile(envFileContent: string | null, updatedValues: Record): string { const outputLines: string[] = [] const envFileLines = envFileContent === null ? [] : envFileContent.split('\n') diff --git a/packages/cli-kit/src/public/node/environments.ts b/packages/cli-kit/src/public/node/environments.ts index 2555f7cc775..cdbf3c8075d 100644 --- a/packages/cli-kit/src/public/node/environments.ts +++ b/packages/cli-kit/src/public/node/environments.ts @@ -5,9 +5,7 @@ import * as metadata from './metadata.js' import {renderWarning} from './ui.js' import {JsonMap} from '../../private/common/json.js' -export interface Environments { - [name: string]: JsonMap -} +export type Environments = Record interface LoadEnvironmentOptions { from?: string diff --git a/packages/cli-kit/src/public/node/error-handler.test.ts b/packages/cli-kit/src/public/node/error-handler.test.ts index 490cb631ea2..c17d7f0472c 100644 --- a/packages/cli-kit/src/public/node/error-handler.test.ts +++ b/packages/cli-kit/src/public/node/error-handler.test.ts @@ -3,9 +3,10 @@ import * as metadata from './metadata.js' import {ciPlatform, cloudEnvironment, isUnitTest, macAddress} from './context/local.js' import {mockAndCaptureOutput} from './testing/output.js' import * as error from './error.js' -import {hashString} from '../../public/node/crypto.js' +import {hashString} from './crypto.js' import {isLocalEnvironment} from '../../private/node/context/service.js' import {getLastSeenUserIdAfterAuth} from '../../private/node/session.js' + import {settings} from '@oclif/core' import {beforeEach, describe, expect, test, vi} from 'vitest' diff --git a/packages/cli-kit/src/public/node/error-handler.ts b/packages/cli-kit/src/public/node/error-handler.ts index 29803ec26ca..ceb1d576ceb 100644 --- a/packages/cli-kit/src/public/node/error-handler.ts +++ b/packages/cli-kit/src/public/node/error-handler.ts @@ -10,16 +10,18 @@ import { handler, cleanSingleStackTracePath, } from './error.js' -import {isLocalEnvironment} from '../../private/node/context/service.js' +import {outputDebug, outputInfo} from './output.js' import {getEnvironmentData} from '../../private/node/analytics.js' -import {outputDebug, outputInfo} from '../../public/node/output.js' +import {isLocalEnvironment} from '../../private/node/context/service.js' import {bugsnagApiKey, reportingRateLimit} from '../../private/node/constants.js' import {CLI_KIT_VERSION} from '../common/version.js' import {runWithRateLimit} from '../../private/node/conf-store.js' import {getLastSeenUserIdAfterAuth} from '../../private/node/session.js' + import {settings, Interfaces} from '@oclif/core' import StackTracey from 'stacktracey' import Bugsnag, {Event} from '@bugsnag/js' + import {realpath} from 'fs/promises' // Allowed slice names for error analytics grouping. @@ -232,7 +234,7 @@ export async function registerCleanBugsnagErrorsFromWithinPlugins(config: Interf }) } -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any export async function addBugsnagMetadata(event: any, config: Interfaces.Config): Promise { const publicData = metadata.getAllPublicMetadata() const {commandStartOptions} = metadata.getAllSensitiveMetadata() @@ -250,10 +252,10 @@ export async function addBugsnagMetadata(event: any, config: Interfaces.Config): pluginData: otherPluginsPublic, } - const appData = {} as {[key: string]: unknown} - const commandData = {} as {[key: string]: unknown} - const environmentData = {} as {[key: string]: unknown} - const miscData = {} as {[key: string]: unknown} + const appData = {} as Record + const commandData = {} as Record + const environmentData = {} as Record + const miscData = {} as Record const appKeys = ['api_key', 'business_platform_id', 'partner_id', 'project_type'] const commandKeys = ['command'] const environmentKeys = ['cli_version', 'node_version', 'uname'] diff --git a/packages/cli-kit/src/public/node/error.ts b/packages/cli-kit/src/public/node/error.ts index c8ada6f48e8..2de5c3e3e4e 100644 --- a/packages/cli-kit/src/public/node/error.ts +++ b/packages/cli-kit/src/public/node/error.ts @@ -1,7 +1,8 @@ import {AlertCustomSection, renderFatalError} from './ui.js' -import {OutputMessage, stringifyMessage, TokenizedString} from '../../public/node/output.js' -import {normalizePath} from '../../public/node/path.js' +import {normalizePath} from './path.js' +import {OutputMessage, stringifyMessage, TokenizedString} from './output.js' import {InlineToken, TokenItem, tokenItemToString} from '../../private/node/ui/components/TokenizedText.js' + import {Errors} from '@oclif/core' export {ExtendableError} from 'ts-error' diff --git a/packages/cli-kit/src/public/node/framework.ts b/packages/cli-kit/src/public/node/framework.ts index b5e6f643813..0c483c165df 100644 --- a/packages/cli-kit/src/public/node/framework.ts +++ b/packages/cli-kit/src/public/node/framework.ts @@ -149,7 +149,7 @@ const frameworks: Framework[] = [ * @returns The name of the framework used or 'unknown' otherwise */ export async function resolveFramework(rootDirectory: string): Promise { - const fwConfigFiles: {[key: string]: string | undefined} = {} + const fwConfigFiles: Record = {} const matchedFramework = frameworks.find( (framework) => @@ -172,17 +172,16 @@ export async function resolveFramework(rootDirectory: string): Promise { return matchedFramework ? matchedFramework.name : 'unknown' } -function matchDetector(detector: FrameworkDetectionPattern, fwConfigFiles: {[key: string]: string | undefined} = {}) { +function matchDetector(detector: FrameworkDetectionPattern, fwConfigFiles: Record = {}) { if (!fwConfigFiles[detector.path]) return false - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return !detector.matchContent || new RegExp(detector.matchContent).test(fwConfigFiles[detector.path]!) } function loadFwConfigFile( rootPath: string, fwConfigFileName: string, - fwConfigFiles: {[key: string]: string | undefined} = {}, + fwConfigFiles: Record = {}, ) { if (fwConfigFiles[fwConfigFileName]) { return fwConfigFiles diff --git a/packages/cli-kit/src/public/node/fs.test.ts b/packages/cli-kit/src/public/node/fs.test.ts index 4041facc5ef..60a3a973541 100644 --- a/packages/cli-kit/src/public/node/fs.test.ts +++ b/packages/cli-kit/src/public/node/fs.test.ts @@ -27,6 +27,7 @@ import {joinPath, normalizePath} from './path.js' import {takeRandomFromArray} from '../common/array.js' import {beforeEach, describe, expect, test, vi} from 'vitest' import FastGlob from 'fast-glob' + import * as os from 'os' vi.mock('../common/array.js') diff --git a/packages/cli-kit/src/public/node/fs.ts b/packages/cli-kit/src/public/node/fs.ts index 09c16a4ce35..31d5c080f1c 100644 --- a/packages/cli-kit/src/public/node/fs.ts +++ b/packages/cli-kit/src/public/node/fs.ts @@ -1,7 +1,7 @@ +import {outputContent, outputToken, outputDebug} from './output.js' import {joinPath, normalizePath} from './path.js' -import {outputContent, outputToken, outputDebug} from '../../public/node/output.js' -import {getRandomName, RandomNameFamily} from '../common/string.js' import {OverloadParameters} from '../../private/common/ts/overloaded-parameters.js' +import {getRandomName, RandomNameFamily} from '../common/string.js' import { copy as fsCopy, ensureFile as fsEnsureFile, @@ -34,6 +34,7 @@ import { WriteStream, statSync, } from 'fs' + import { mkdir as fsMkdir, writeFile as fsWriteFile, @@ -52,6 +53,7 @@ import { } from 'fs/promises' import {pathToFileURL as pathToFile} from 'url' import * as os from 'os' + import type {Pattern, Options as GlobOptions} from 'fast-glob' /** diff --git a/packages/cli-kit/src/public/node/git.ts b/packages/cli-kit/src/public/node/git.ts index e095aa01150..d79bee025b0 100644 --- a/packages/cli-kit/src/public/node/git.ts +++ b/packages/cli-kit/src/public/node/git.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-base-to-string */ +import {outputContent, outputToken, outputDebug} from './output.js' import {hasGit, isTerminalInteractive} from './context/local.js' import { appendFileSync, @@ -13,8 +13,8 @@ import { import {AbortError} from './error.js' import {cwd, joinPath} from './path.js' import {runWithTimer} from './metadata.js' -import {outputContent, outputToken, outputDebug} from '../../public/node/output.js' import git, {TaskOptions, SimpleGitProgressEvent, DefaultLogFields, ListLogLine, SimpleGit} from 'simple-git' + import ignore from 'ignore' /** @@ -46,9 +46,7 @@ export async function checkIfIgnoredInGitRepository(directory: string, files: st return withGit({directory}, (repo) => repo.checkIgnore(files)) } -export interface GitIgnoreTemplate { - [section: string]: string[] -} +export type GitIgnoreTemplate = Record /** * Create a .gitignore file in the given directory. * @@ -190,7 +188,7 @@ export async function downloadGitRepository(cloneOptions: GitCloneOptions): Prom try { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await git(simpleGitOptions).clone(repository!, destination, options) if (latestTag) { diff --git a/packages/cli-kit/src/public/node/github.ts b/packages/cli-kit/src/public/node/github.ts index 9214dafd754..c174e763c44 100644 --- a/packages/cli-kit/src/public/node/github.ts +++ b/packages/cli-kit/src/public/node/github.ts @@ -1,11 +1,10 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ +import {outputContent, outputDebug, outputToken} from './output.js' import {err, ok, Result} from './result.js' import {fetch, Response} from './http.js' import {writeFile, mkdir, inTemporaryDirectory, moveFile, chmod} from './fs.js' import {dirname, joinPath} from './path.js' import {runWithTimer} from './metadata.js' import {AbortError} from './error.js' -import {outputContent, outputDebug, outputToken} from '../../public/node/output.js' class GitHubClientError extends Error { // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -94,7 +93,7 @@ export function parseGitHubRepositoryURL(url: string): Result)} `) } diff --git a/packages/cli-kit/src/public/node/json-schema.ts b/packages/cli-kit/src/public/node/json-schema.ts index e22f71e8d86..e5cb6b2ec9f 100644 --- a/packages/cli-kit/src/public/node/json-schema.ts +++ b/packages/cli-kit/src/public/node/json-schema.ts @@ -1,7 +1,7 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -import {ParseConfigurationResult} from './schema.js' import {randomUUID} from './crypto.js' +import {ParseConfigurationResult} from './schema.js' import {getPathValue} from '../common/object.js' + import {capitalize} from '../common/string.js' import {Ajv, ErrorObject, SchemaObject, ValidateFunction} from 'ajv' import $RefParser from '@apidevtools/json-schema-ref-parser' @@ -9,7 +9,7 @@ import cloneDeep from 'lodash/cloneDeep.js' export type HandleInvalidAdditionalProperties = 'strip' | 'fail' -type AjvError = ErrorObject +type AjvError = ErrorObject> /** * Normalises a JSON Schema by standardising it's internal implementation. @@ -90,7 +90,7 @@ export function jsonSchemaValidate( Object.keys(subjectToModify).forEach((key) => { if (!topLevelSchemaProperties.includes(key)) { // this isn't actually dynamic, because key came from Object.keys - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete subjectToModify[key as keyof typeof subjectToModify] } }) diff --git a/packages/cli-kit/src/public/node/liquid.ts b/packages/cli-kit/src/public/node/liquid.ts index 95640c0a442..47cdb18ff27 100644 --- a/packages/cli-kit/src/public/node/liquid.ts +++ b/packages/cli-kit/src/public/node/liquid.ts @@ -11,7 +11,7 @@ import { matchGlob, } from './fs.js' import {joinPath, dirname, relativePath} from './path.js' -import {outputContent, outputToken, outputDebug} from '../../public/node/output.js' +import {outputContent, outputToken, outputDebug} from './output.js' import {Liquid} from 'liquidjs' /** diff --git a/packages/cli-kit/src/public/node/local-storage.test.ts b/packages/cli-kit/src/public/node/local-storage.test.ts index 9d786b8c344..b50b5db7fc2 100644 --- a/packages/cli-kit/src/public/node/local-storage.test.ts +++ b/packages/cli-kit/src/public/node/local-storage.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/dot-notation */ import {LocalStorage} from './local-storage.js' import {inTemporaryDirectory} from './fs.js' import {AbortError} from './error.js' @@ -9,6 +8,13 @@ interface TestSchema { testValue: string } +// Helper to access private config for testing +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function getConfig(storage: LocalStorage): any { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return (storage as any).config +} + describe('storage', () => { test('set and returns a value', async () => { await inTemporaryDirectory((cwd) => { @@ -71,16 +77,16 @@ describe('error handling', () => { vi.spyOn(fs, 'unixFileIsOwnedByCurrentUser').mockReturnValue(true) // Mock Config to throw - storage['config'].set = vi.fn(() => { + getConfig(storage).set = vi.fn(() => { throw new Error('EACCES: permission denied') }) - storage['config'].get = vi.fn(() => { + getConfig(storage).get = vi.fn(() => { throw new Error('EACCES: permission denied') }) - storage['config'].delete = vi.fn(() => { + getConfig(storage).delete = vi.fn(() => { throw new Error('EACCES: permission denied') }) - storage['config'].clear = vi.fn(() => { + getConfig(storage).clear = vi.fn(() => { throw new Error('EACCES: permission denied') }) @@ -111,7 +117,7 @@ describe('error handling', () => { // Mock Config to throw - storage['config'].get = vi.fn(() => { + getConfig(storage).get = vi.fn(() => { throw new Error('EACCES: permission denied') }) @@ -143,7 +149,7 @@ describe('error handling', () => { // Mock Config to throw non-permission error - storage['config'].set = vi.fn(() => { + getConfig(storage).set = vi.fn(() => { throw new Error('Invalid JSON format') }) diff --git a/packages/cli-kit/src/public/node/local-storage.ts b/packages/cli-kit/src/public/node/local-storage.ts index de9116d1263..9759267aab9 100644 --- a/packages/cli-kit/src/public/node/local-storage.ts +++ b/packages/cli-kit/src/public/node/local-storage.ts @@ -9,7 +9,7 @@ import Config from 'conf' * for accessing the local storage. */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -export class LocalStorage { +export class LocalStorage> { private readonly config: Config constructor(options: {projectName?: string; cwd?: string}) { diff --git a/packages/cli-kit/src/public/node/metadata.ts b/packages/cli-kit/src/public/node/metadata.ts index 63747f1980c..ae77344aa77 100644 --- a/packages/cli-kit/src/public/node/metadata.ts +++ b/packages/cli-kit/src/public/node/metadata.ts @@ -61,7 +61,7 @@ export type SensitiveSchema = T extends RuntimeMetadataManager, >(defaultPublicMetadata: Partial = {}): RuntimeMetadataManager { const raw: {sensitive: Partial; public: Partial} = { sensitive: {}, @@ -142,7 +142,7 @@ export function createRuntimeMetadataContainer< // The top of the stack is the total time for all nested timers const wallClockDuration = Math.max(end - start, 0) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const childDurations = durationStack.pop()! const duration = Math.max(wallClockDuration - childDurations, 0) diff --git a/packages/cli-kit/src/public/node/mimes.ts b/packages/cli-kit/src/public/node/mimes.ts index 80f5fd230b8..0cdcdd3e1be 100644 --- a/packages/cli-kit/src/public/node/mimes.ts +++ b/packages/cli-kit/src/public/node/mimes.ts @@ -16,7 +16,7 @@ export function lookupMimeType(fileName: string): string { * * @param newTypes - Object of key-values where key is extension and value is mime type. */ -export function setMimeTypes(newTypes: {[key: string]: string}): void { +export function setMimeTypes(newTypes: Record): void { Object.entries(newTypes).forEach(([extension, mimeType]) => { mimes[extension] = mimeType }) diff --git a/packages/cli-kit/src/public/node/monorail.ts b/packages/cli-kit/src/public/node/monorail.ts index 10f1ecf1b8c..b687ec9fee4 100644 --- a/packages/cli-kit/src/public/node/monorail.ts +++ b/packages/cli-kit/src/public/node/monorail.ts @@ -1,6 +1,6 @@ import {fetch} from './http.js' +import {outputDebug, outputContent, outputToken} from './output.js' import {JsonMap} from '../../private/common/json.js' -import {outputDebug, outputContent, outputToken} from '../../public/node/output.js' import {DeepRequired} from '../common/ts/deep-required.js' export {DeepRequired} diff --git a/packages/cli-kit/src/public/node/multiple-installation-warning.ts b/packages/cli-kit/src/public/node/multiple-installation-warning.ts index 4e6e72e345e..b99fb13c3f2 100644 --- a/packages/cli-kit/src/public/node/multiple-installation-warning.ts +++ b/packages/cli-kit/src/public/node/multiple-installation-warning.ts @@ -14,7 +14,7 @@ import {runAtMinimumInterval} from '../../private/node/conf-store.js' */ export async function showMultipleCLIWarningIfNeeded( directory: string, - dependencies: {[key: string]: string}, + dependencies: Record, ): Promise { // Show the warning only once per day await runAtMinimumInterval('warn-on-multiple-versions', {days: 1}, async () => { diff --git a/packages/cli-kit/src/public/node/node-package-manager.ts b/packages/cli-kit/src/public/node/node-package-manager.ts index 5aa52ef72aa..501f75ee444 100644 --- a/packages/cli-kit/src/public/node/node-package-manager.ts +++ b/packages/cli-kit/src/public/node/node-package-manager.ts @@ -5,12 +5,15 @@ import {fileExists, readFile, writeFile, findPathUp, glob} from './fs.js' import {dirname, joinPath} from './path.js' import {runWithTimer} from './metadata.js' import {inferPackageManagerForGlobalCLI} from './is-global.js' -import {outputToken, outputContent, outputDebug} from '../../public/node/output.js' +import {outputToken, outputContent, outputDebug} from './output.js' import {PackageVersionKey, cacheRetrieve, cacheRetrieveOrRepopulate} from '../../private/node/conf-store.js' import {parseJSON} from '../common/json.js' + import latestVersion from 'latest-version' import {SemVer, satisfies as semverSatisfies} from 'semver' + import type {Writable} from 'stream' + import type {ExecOptions} from './system.js' /** The name of the Yarn lock file */ @@ -30,7 +33,7 @@ export const pnpmWorkspaceFile = 'pnpm-workspace.yaml' /** An array containing the lockfiles from all the package managers */ export const lockfiles: Lockfile[] = [yarnLockfile, pnpmLockfile, npmLockfile, bunLockfile] -export const lockfilesByManager: {[key in PackageManager]: Lockfile | undefined} = { +export const lockfilesByManager: Record = { yarn: yarnLockfile, npm: npmLockfile, pnpm: pnpmLockfile, @@ -241,10 +244,10 @@ export async function getPackageVersion(packageJsonPath: string): Promise { +export async function getDependencies(packageJsonPath: string): Promise> { const packageJsonContent = await readAndParsePackageJson(packageJsonPath) - const dependencies: {[key: string]: string} = packageJsonContent.dependencies ?? {} - const devDependencies: {[key: string]: string} = packageJsonContent.devDependencies ?? {} + const dependencies: Record = packageJsonContent.dependencies ?? {} + const devDependencies: Record = packageJsonContent.devDependencies ?? {} return {...dependencies, ...devDependencies} } @@ -345,22 +348,22 @@ export interface PackageJson { /** * The scripts attribute of the package.json */ - scripts?: {[key: string]: string} + scripts?: Record /** * The dependencies attribute of the package.json */ - dependencies?: {[key: string]: string} + dependencies?: Record /** * The devDependencies attribute of the package.json */ - devDependencies?: {[key: string]: string} + devDependencies?: Record /** * The peerDependencies attribute of the package.json */ - peerDependencies?: {[key: string]: string} + peerDependencies?: Record /** * The optional oclif settings attribute of the package.json @@ -377,12 +380,12 @@ export interface PackageJson { /** * The resolutions attribute of the package.json. Only useful when using yarn as package manager */ - resolutions?: {[key: string]: string} + resolutions?: Record /** * The overrides attribute of the package.json. Only useful when using npm o npmn as package managers */ - overrides?: {[key: string]: string} + overrides?: Record /** * The prettier attribute of the package.json @@ -681,7 +684,7 @@ export async function findUpAndReadPackageJson(fromDirectory: string): Promise<{ } } -export async function addResolutionOrOverride(directory: string, dependencies: {[key: string]: string}): Promise { +export async function addResolutionOrOverride(directory: string, dependencies: Record): Promise { const packageManager = await getPackageManager(directory) const packageJsonPath = joinPath(directory, 'package.json') const packageJsonContent = await readAndParsePackageJson(packageJsonPath) diff --git a/packages/cli-kit/src/public/node/os.ts b/packages/cli-kit/src/public/node/os.ts index a05fbf6e9e7..5c84c96964a 100644 --- a/packages/cli-kit/src/public/node/os.ts +++ b/packages/cli-kit/src/public/node/os.ts @@ -1,4 +1,4 @@ -import {outputDebug, outputContent} from '../../public/node/output.js' +import {outputDebug, outputContent} from './output.js' import {execa} from 'execa' import {userInfo as osUserInfo} from 'os' diff --git a/packages/cli-kit/src/public/node/output.test.ts b/packages/cli-kit/src/public/node/output.test.ts index 8191b361935..f4acf2cfb12 100644 --- a/packages/cli-kit/src/public/node/output.test.ts +++ b/packages/cli-kit/src/public/node/output.test.ts @@ -34,7 +34,7 @@ describe('Output helpers', () => { }) describe('Color disabling', () => { - function processLike({env, stdoutIsTTY}: {env: {[variable: string]: string}; stdoutIsTTY: boolean}) { + function processLike({env, stdoutIsTTY}: {env: Record; stdoutIsTTY: boolean}) { const pseudoProcess = { ...process, env, diff --git a/packages/cli-kit/src/public/node/output.ts b/packages/cli-kit/src/public/node/output.ts index db95c2ebd14..c4384e0d129 100644 --- a/packages/cli-kit/src/public/node/output.ts +++ b/packages/cli-kit/src/public/node/output.ts @@ -21,8 +21,11 @@ import { } from '../../private/node/content-tokens.js' import {tokenItemToString} from '../../private/node/ui/components/TokenizedText.js' import {consoleLog, consoleWarn, output} from '../../private/node/output.js' + import stripAnsi from 'strip-ansi' + import {Writable} from 'stream' + import type {Change} from 'diff' export type Logger = Writable | ((message: string, logLevel?: LogLevel) => void) @@ -148,7 +151,7 @@ export function outputContent( if (i >= keys.length) { return } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const token = keys[i]! if (typeof token === 'string') { @@ -224,8 +227,8 @@ function shouldOutput(logLevel: LogLevel): boolean { return messageLogLevelValue >= currentLogLevelValue } -// eslint-disable-next-line import/no-mutable-exports -export let collectedLogs: {[key: string]: string[]} = {} +// eslint-disable-next-line import-x/no-mutable-exports +export let collectedLogs: Record = {} /** * This is only used during UnitTesting. diff --git a/packages/cli-kit/src/public/node/path.ts b/packages/cli-kit/src/public/node/path.ts index 1b064805c9c..43e63bf3ce3 100644 --- a/packages/cli-kit/src/public/node/path.ts +++ b/packages/cli-kit/src/public/node/path.ts @@ -10,7 +10,7 @@ import { isAbsolute, } from 'pathe' import {fileURLToPath} from 'url' -// eslint-disable-next-line node/prefer-global/url +// eslint-disable-next-line n/prefer-global/url import type {URL} from 'url' /** diff --git a/packages/cli-kit/src/public/node/plugins.ts b/packages/cli-kit/src/public/node/plugins.ts index d8752d2617a..caf1189990b 100644 --- a/packages/cli-kit/src/public/node/plugins.ts +++ b/packages/cli-kit/src/public/node/plugins.ts @@ -3,6 +3,7 @@ import {MonorailEventPublic, MonorailEventSensitive} from './monorail.js' import {getArrayContainsDuplicates, getArrayRejectingUndefined} from '../common/array.js' import {PickByPrefix} from '../common/ts/pick-by-prefix.js' import {JsonMap} from '../../private/common/json.js' + import {Config, Interfaces} from '@oclif/core' /** @@ -40,22 +41,22 @@ type AppSpecificSensitiveMonorailFields = PickByPrefix pluginReturns: { '@shopify/app': Partial [pluginName: string]: JsonMap } } sensitive_command_metadata: { - options: {[key: string]: never} + options: Record pluginReturns: { '@shopify/app': Partial [pluginName: string]: JsonMap } } [hookName: string]: { - options: {[key: string]: unknown} - pluginReturns: {[key: string]: unknown} + options: Record + pluginReturns: Record } } diff --git a/packages/cli-kit/src/public/node/plugins/tunnel.ts b/packages/cli-kit/src/public/node/plugins/tunnel.ts index 109e755dca2..f8d9c92b20c 100644 --- a/packages/cli-kit/src/public/node/plugins/tunnel.ts +++ b/packages/cli-kit/src/public/node/plugins/tunnel.ts @@ -33,15 +33,11 @@ export class TunnelError extends ExtendableError { export interface HookReturnPerTunnelPlugin { tunnel_start: { options: {port: number; provider: string} - pluginReturns: { - [key: string]: Result - } + pluginReturns: Record> } tunnel_provider: { - options: {[key: string]: never} - pluginReturns: { - [pluginName: string]: {name: string} - } + options: Record + pluginReturns: Record } } diff --git a/packages/cli-kit/src/public/node/result.test.ts b/packages/cli-kit/src/public/node/result.test.ts index 89428e0b749..67486603925 100644 --- a/packages/cli-kit/src/public/node/result.test.ts +++ b/packages/cli-kit/src/public/node/result.test.ts @@ -1,6 +1,6 @@ import {err, ok} from './result.js' import {mockAndCaptureOutput} from './testing/output.js' -import {outputSuccess} from '../../public/node/output.js' +import {outputSuccess} from './output.js' import {describe, expect, test} from 'vitest' describe('ok', () => { diff --git a/packages/cli-kit/src/public/node/result.ts b/packages/cli-kit/src/public/node/result.ts index 8fd69576b58..4e4f89e4b71 100644 --- a/packages/cli-kit/src/public/node/result.ts +++ b/packages/cli-kit/src/public/node/result.ts @@ -78,7 +78,7 @@ export class Ok { } export class Err { - // eslint-disable-next-line node/handle-callback-err + // eslint-disable-next-line n/handle-callback-err constructor(readonly error: TError) {} /** diff --git a/packages/cli-kit/src/public/node/session-prompt.test.ts b/packages/cli-kit/src/public/node/session-prompt.test.ts index 6c249ca3a4e..7b9e983a300 100644 --- a/packages/cli-kit/src/public/node/session-prompt.test.ts +++ b/packages/cli-kit/src/public/node/session-prompt.test.ts @@ -5,6 +5,7 @@ import {identityFqdn} from './context/fqdn.js' import {setCurrentSessionId} from '../../private/node/conf-store.js' import * as sessionStore from '../../private/node/session/store.js' import {Sessions} from '../../private/node/session/schema.js' + import {describe, expect, vi, test, beforeEach} from 'vitest' vi.mock('./ui.js') diff --git a/packages/cli-kit/src/public/node/session.test.ts b/packages/cli-kit/src/public/node/session.test.ts index 13c6f0fb278..962a48ac8c0 100644 --- a/packages/cli-kit/src/public/node/session.test.ts +++ b/packages/cli-kit/src/public/node/session.test.ts @@ -17,6 +17,7 @@ import { exchangeCliTokenForAppManagementAccessToken, exchangeCliTokenForBusinessPlatformAccessToken, } from '../../private/node/session/exchange.js' + import {vi, describe, expect, test} from 'vitest' const futureDate = new Date(2022, 1, 1, 11) diff --git a/packages/cli-kit/src/public/node/session.ts b/packages/cli-kit/src/public/node/session.ts index f7550df0f58..5d5895c06d1 100644 --- a/packages/cli-kit/src/public/node/session.ts +++ b/packages/cli-kit/src/public/node/session.ts @@ -1,14 +1,14 @@ -import {AbortError, BugError} from './error.js' -import {getPartnersToken} from './environment.js' -import {nonRandomUUID} from './crypto.js' import {shopifyFetch} from './http.js' +import {nonRandomUUID} from './crypto.js' +import {getPartnersToken} from './environment.js' +import {AbortError, BugError} from './error.js' +import {outputContent, outputToken, outputDebug} from './output.js' import * as sessionStore from '../../private/node/session/store.js' import { exchangeCustomPartnerToken, exchangeCliTokenForAppManagementAccessToken, exchangeCliTokenForBusinessPlatformAccessToken, } from '../../private/node/session/exchange.js' -import {outputContent, outputToken, outputDebug} from '../../public/node/output.js' import { AdminAPIScope, AppManagementAPIScope, diff --git a/packages/cli-kit/src/public/node/system.test.ts b/packages/cli-kit/src/public/node/system.test.ts index 6019d294ae9..0483f11e315 100644 --- a/packages/cli-kit/src/public/node/system.test.ts +++ b/packages/cli-kit/src/public/node/system.test.ts @@ -3,6 +3,7 @@ import {execa} from 'execa' import {describe, expect, test, vi} from 'vitest' import which from 'which' import {Readable} from 'stream' + import * as fs from 'fs' vi.mock('which') diff --git a/packages/cli-kit/src/public/node/system.ts b/packages/cli-kit/src/public/node/system.ts index b9064174315..156b4c6de75 100644 --- a/packages/cli-kit/src/public/node/system.ts +++ b/packages/cli-kit/src/public/node/system.ts @@ -5,16 +5,17 @@ import {treeKill} from './tree-kill.js' import {isTruthy} from './context/utilities.js' import {renderWarning} from './ui.js' import {platformAndArch} from './os.js' -import {shouldDisplayColors, outputDebug} from '../../public/node/output.js' +import {shouldDisplayColors, outputDebug} from './output.js' import {execa, ExecaChildProcess} from 'execa' import which from 'which' import {delimiter} from 'pathe' + import {fstatSync} from 'fs' import type {Writable, Readable} from 'stream' export interface ExecOptions { cwd?: string - env?: {[key: string]: string | undefined} + env?: Record stdin?: Readable | 'inherit' stdout?: Writable | 'inherit' stderr?: Writable | 'inherit' diff --git a/packages/cli-kit/src/public/node/tcp.ts b/packages/cli-kit/src/public/node/tcp.ts index 81f9f9f23e7..86d05ec552e 100644 --- a/packages/cli-kit/src/public/node/tcp.ts +++ b/packages/cli-kit/src/public/node/tcp.ts @@ -1,6 +1,6 @@ import {sleep} from './system.js' import {AbortError} from './error.js' -import {outputDebug, outputContent, outputToken} from '../../public/node/output.js' +import {outputDebug, outputContent, outputToken} from './output.js' import * as port from 'get-port-please' interface GetTCPPortOptions { diff --git a/packages/cli-kit/src/public/node/testing/output.ts b/packages/cli-kit/src/public/node/testing/output.ts index b22c4fc3eed..75fd042d41a 100644 --- a/packages/cli-kit/src/public/node/testing/output.ts +++ b/packages/cli-kit/src/public/node/testing/output.ts @@ -1,4 +1,4 @@ -import {collectedLogs, clearCollectedLogs} from '../../../public/node/output.js' +import {collectedLogs, clearCollectedLogs} from '../output.js' interface OutputMock { output: () => string diff --git a/packages/cli-kit/src/public/node/themes/api.test.ts b/packages/cli-kit/src/public/node/themes/api.test.ts index d3dc4e06736..1eb6702b0e0 100644 --- a/packages/cli-kit/src/public/node/themes/api.test.ts +++ b/packages/cli-kit/src/public/node/themes/api.test.ts @@ -26,6 +26,7 @@ import {GetThemes} from '../../../cli/api/graphql/admin/generated/get_themes.js' import {GetTheme} from '../../../cli/api/graphql/admin/generated/get_theme.js' import {adminRequestDoc, supportedApiVersions} from '../api/admin.js' import {AbortError} from '../error.js' + import {test, vi, expect, describe, beforeEach} from 'vitest' import {ClientError} from 'graphql-request' diff --git a/packages/cli-kit/src/public/node/themes/api.ts b/packages/cli-kit/src/public/node/themes/api.ts index 2af4ad3295b..3c4d2b72ce9 100644 --- a/packages/cli-kit/src/public/node/themes/api.ts +++ b/packages/cli-kit/src/public/node/themes/api.ts @@ -1,6 +1,6 @@ -import {composeThemeGid, parseGid, DEVELOPMENT_THEME_ROLE} from './utils.js' -import {buildTheme} from './factories.js' import {Result, Checksum, Key, Theme, ThemeAsset, Operation} from './types.js' +import {buildTheme} from './factories.js' +import {composeThemeGid, parseGid, DEVELOPMENT_THEME_ROLE} from './utils.js' import {ThemeUpdate} from '../../../cli/api/graphql/admin/generated/theme_update.js' import {ThemeDelete} from '../../../cli/api/graphql/admin/generated/theme_delete.js' import {ThemeDuplicate} from '../../../cli/api/graphql/admin/generated/theme_duplicate.js' @@ -374,7 +374,7 @@ export async function fetchChecksums(id: number, session: AdminSession): Promise export async function themeUpdate(id: number, params: ThemeParams, session: AdminSession): Promise { const name = params.name - const input: {[key: string]: string} = {} + const input: Record = {} if (name) { input.name = name } diff --git a/packages/cli-kit/src/public/node/themes/conf.ts b/packages/cli-kit/src/public/node/themes/conf.ts index 936aeec1805..515dcda18ce 100644 --- a/packages/cli-kit/src/public/node/themes/conf.ts +++ b/packages/cli-kit/src/public/node/themes/conf.ts @@ -5,9 +5,7 @@ import {outputDebug, outputContent} from '../output.js' type HostThemeId = string type StoreFqdn = AdminSession['storeFqdn'] -interface HostThemeLocalStorageSchema { - [themeStore: StoreFqdn]: HostThemeId -} +type HostThemeLocalStorageSchema = Record let _hostThemeLocalStorageInstance: LocalStorage | undefined diff --git a/packages/cli-kit/src/public/node/tree-kill.ts b/packages/cli-kit/src/public/node/tree-kill.ts index 021ffb398e7..f4b4570c23f 100644 --- a/packages/cli-kit/src/public/node/tree-kill.ts +++ b/packages/cli-kit/src/public/node/tree-kill.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ /* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable jsdoc/require-throws */ /* eslint-disable no-restricted-imports */ @@ -6,9 +5,7 @@ import {outputDebug} from './output.js' import {exec, spawn} from 'child_process' -interface ProcessTree { - [key: string]: string[] -} +type ProcessTree = Record type AfterKillCallback = (error?: Error) => void diff --git a/packages/cli-kit/src/public/node/ui.test.ts b/packages/cli-kit/src/public/node/ui.test.ts index 61a1ef3ceac..f119b5de08c 100644 --- a/packages/cli-kit/src/public/node/ui.test.ts +++ b/packages/cli-kit/src/public/node/ui.test.ts @@ -14,6 +14,7 @@ import {mockAndCaptureOutput} from './testing/output.js' import {TokenizedString} from './output.js' import {afterEach, beforeEach, describe, expect, test, vi} from 'vitest' import supportsHyperlinks from 'supports-hyperlinks' + import {Writable} from 'stream' vi.mock('supports-hyperlinks') diff --git a/packages/cli-kit/src/public/node/ui.tsx b/packages/cli-kit/src/public/node/ui.tsx index 6a44d696a18..7f990dfb3c3 100644 --- a/packages/cli-kit/src/public/node/ui.tsx +++ b/packages/cli-kit/src/public/node/ui.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ /* eslint-disable tsdoc/syntax */ import {AbortError, AbortSilentError, FatalError as Fatal} from './error.js' import {outputContent, outputDebug, outputToken, TokenizedString} from './output.js' @@ -31,6 +30,7 @@ import {AutocompletePromptProps, AutocompletePrompt} from '../../private/node/ui import {InfoTableSection} from '../../private/node/ui/components/Prompts/InfoTable.js' import {InfoMessageProps} from '../../private/node/ui/components/Prompts/InfoMessage.js' import {SingleTask} from '../../private/node/ui/components/SingleTask.js' + import React from 'react' import {Key as InkKey, RenderOptions} from 'ink' @@ -235,7 +235,7 @@ interface RenderFatalErrorOptions { * [1] https://partners.shopify.com/signup * */ -// eslint-disable-next-line max-params + export function renderFatalError(error: Fatal, {renderOptions}: RenderFatalErrorOptions = {}) { return renderOnce(, {logLevel: 'error', renderOptions}) } @@ -276,7 +276,7 @@ export interface RenderSelectPromptOptions extends Omit, * Press ↑↓ arrows to select, enter to confirm. * */ -// eslint-disable-next-line max-params + export async function renderSelectPrompt( {renderOptions, isConfirmationPrompt, ...props}: RenderSelectPromptOptions, uiDebugOptions: UIDebugOptions = defaultUIDebugOptions, @@ -301,8 +301,10 @@ export async function renderSelectPrompt( }) } -export interface RenderConfirmationPromptOptions - extends Pick, 'message' | 'infoTable' | 'infoMessage' | 'abortSignal'> { +export interface RenderConfirmationPromptOptions extends Pick< + SelectPromptProps, + 'message' | 'infoTable' | 'infoMessage' | 'abortSignal' +> { confirmationMessage?: string cancellationMessage?: string renderOptions?: RenderOptions @@ -363,8 +365,10 @@ export async function renderConfirmationPrompt({ }) } -export interface RenderAutocompleteOptions - extends PartialBy, 'onSubmit'>, 'search'> { +export interface RenderAutocompleteOptions extends PartialBy< + Omit, 'onSubmit'>, + 'search' +> { renderOptions?: RenderOptions } @@ -406,7 +410,7 @@ export interface RenderAutocompleteOptions * Press ↑↓ arrows to select, enter to confirm. * */ -// eslint-disable-next-line max-params + export async function renderAutocompletePrompt( {renderOptions, ...props}: RenderAutocompleteOptions, uiDebugOptions: UIDebugOptions = defaultUIDebugOptions, @@ -471,12 +475,11 @@ interface RenderTasksOptions { * ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ * Installing dependencies ... */ -// eslint-disable-next-line max-params + export async function renderTasks( tasks: Task[], {renderOptions, noProgressBar}: RenderTasksOptions = {}, ) { - // eslint-disable-next-line max-params return new Promise((resolve, reject) => { render(, { ...renderOptions, @@ -511,7 +514,6 @@ export async function renderSingleTask({ onAbort, renderOptions, }: RenderSingleTaskOptions): Promise { - // eslint-disable-next-line max-params return new Promise((resolve, reject) => { render(, { ...renderOptions, @@ -532,7 +534,7 @@ export interface RenderTextPromptOptions extends Omit { throwInNonTTY({message: 'Press any key'}, uiDebugOptions) return runWithTimer('cmd_all_timing_prompts_ms')(() => { - // eslint-disable-next-line max-params return new Promise((resolve, reject) => { const handler = (buffer: Buffer) => { stdin.setRawMode(false) @@ -654,7 +655,6 @@ interface ThrowInNonTTYOptions { stdin?: NodeJS.ReadStream } -// eslint-disable-next-line max-params function throwInNonTTY({message, stdin = undefined}: ThrowInNonTTYOptions, uiDebugOptions: UIDebugOptions) { if (isTTY({stdin, uiDebugOptions})) return diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2016.ts b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2016.ts index 251dec20250..9d9a6d4d8d6 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2016.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2016.ts @@ -1,10 +1,14 @@ -import fs from 'fs' -import * as os from 'node:os' - import {assertConnectable} from './network/index.js' import {assertCompatibleEnvironment} from './env.js' import {HostOptions} from './types.js' +import * as os from 'node:os' + +import fs from 'fs' +/** + * + * @param projectName + */ export function createServer(projectName: string) { return { host: (options: HostOptions = {}) => host(projectName, options), @@ -42,6 +46,10 @@ function getAddrPort(name: string): [string, number] { // Allow overrides for more concise test setup. Meh. let assertRunningOverride: typeof assertRunning2016 | undefined +/** + * + * @param override + */ export function setAssertRunning(override: typeof assertRunningOverride) { assertRunningOverride = override } diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts index 2882024d84b..5f9e4250a88 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server-2024.ts @@ -1,14 +1,17 @@ -import fs from 'node:fs' - +import {assertConnectable, getIpFromHosts} from './network/index.js' +import {assertCompatibleEnvironment} from './env.js' import * as ni from 'network-interfaces' +import fs from 'node:fs' import type {HostOptions} from './types.js' -import {assertConnectable, getIpFromHosts} from './network/index.js' -import {assertCompatibleEnvironment} from './env.js' const NON_SHOP_PREFIXES = ['app', 'dev', 'shopify'] const BACKEND_PORT = 8080 +/** + * + * @param projectName + */ export function createServer(projectName: string) { return { host: (options: HostOptions = {}) => host(projectName, options), @@ -75,6 +78,10 @@ function resolveBackendHost(name: string): string { // Allow overrides for more concise test setup. Meh. let assertRunningOverride: typeof assertRunning2024 | undefined +/** + * + * @param override + */ export function setAssertRunning(override: typeof assertRunningOverride) { assertRunningOverride = override } diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server.ts b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server.ts index 583059281c4..d4d8a4767ef 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/dev-server.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/dev-server.ts @@ -1,7 +1,7 @@ -import fs from 'node:fs' - import {createServer as createServer2024} from './dev-server-2024.js' import {createServer as createServer2016} from './dev-server-2016.js' +import fs from 'node:fs' + import type {DevServer as DevServerType, DevServerCore as DevServerCoreType, HostOptions} from './types.js' export {isDevServerEnvironment} from './env.js' diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/env.ts b/packages/cli-kit/src/public/node/vendor/dev_server/env.ts index d46214f5d7b..a9babed50c3 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/env.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/env.ts @@ -1,5 +1,8 @@ export const isDevServerEnvironment = process.env.USING_DEV === '1' +/** + * + */ export function assertCompatibleEnvironment() { if (!isDevServerEnvironment) { throw new Error('DevServer is not supported in this environment') diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/network/host.ts b/packages/cli-kit/src/public/node/vendor/dev_server/network/host.ts index 6580f94c4da..8ed119ccdb9 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/network/host.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/network/host.ts @@ -1,5 +1,4 @@ import fs from 'node:fs' -import path from 'node:path' const HOSTS_FILE = '/etc/hosts' @@ -38,6 +37,10 @@ function loadHostsFile() { } } +/** + * + * @param hostname + */ export function getIpFromHosts(hostname: string) { loadHostsFile() @@ -49,7 +52,9 @@ export function getIpFromHosts(hostname: string) { throw new Error(`No IP found for hostname: ${hostname}`) } -// eslint-disable-next-line @typescript-eslint/naming-convention +/** + * + */ export function TEST_ClearCache() { hostToIpCache = {} lastModifiedTime = 0 diff --git a/packages/cli-kit/src/public/node/vendor/dev_server/network/index.ts b/packages/cli-kit/src/public/node/vendor/dev_server/network/index.ts index 2f441c13cd5..83de5c61030 100644 --- a/packages/cli-kit/src/public/node/vendor/dev_server/network/index.ts +++ b/packages/cli-kit/src/public/node/vendor/dev_server/network/index.ts @@ -1,5 +1,4 @@ import {spawnSync} from 'node:child_process' -import path from 'node:path' export {getIpFromHosts} from './host.js' @@ -10,12 +9,15 @@ export interface ConnectionArguments { timeout?: number } -// eslint-disable-next-line prettier/prettier const DEFAULT_CONNECT_TIMEOUT = 1000 // Skip initialization on module load to prevent Spin trying to load a macOS dylib // (port checks should never run on Spin anyway) let checkPort: ReturnType +/** + * + * @param options + */ export function assertConnectable(options: ConnectionArguments): void { checkPort ||= getCheckPortHelper() @@ -33,7 +35,9 @@ export function assertConnectable(options: ConnectionArguments): void { } } -// eslint-disable-next-line @typescript-eslint/naming-convention +/** + * + */ export function TEST_testResetCheckPort(): void { checkPort = getCheckPortHelper() } diff --git a/packages/cli-kit/src/public/node/vendor/otel-js/export/InstantaneousMetricReader.ts b/packages/cli-kit/src/public/node/vendor/otel-js/export/InstantaneousMetricReader.ts index 9ac92bbf893..1ceb2bd6e08 100644 --- a/packages/cli-kit/src/public/node/vendor/otel-js/export/InstantaneousMetricReader.ts +++ b/packages/cli-kit/src/public/node/vendor/otel-js/export/InstantaneousMetricReader.ts @@ -1,9 +1,8 @@ -import type {PushMetricExporter} from '@opentelemetry/sdk-metrics' +import {throttle} from '../utils/throttle.js' import {MetricReader} from '@opentelemetry/sdk-metrics' import {ExportResultCode} from '@opentelemetry/core' import {diag} from '@opentelemetry/api' - -import {throttle} from '../utils/throttle.js' +import type {PushMetricExporter} from '@opentelemetry/sdk-metrics' export interface InstantaneousMetricReaderOptions { /** @@ -27,11 +26,7 @@ export class InstantaneousMetricReader extends MetricReader { }) this._exporter = exporter - this.onForceFlush = throttle( - // eslint-disable-next-line @typescript-eslint/unbound-method - this.onForceFlush, - throttleLimit, - ) + this.onForceFlush = throttle(this.onForceFlush, throttleLimit) } protected async onForceFlush(): Promise { diff --git a/packages/cli-kit/src/public/node/vendor/otel-js/service/BaseOtelService/BaseOtelService.ts b/packages/cli-kit/src/public/node/vendor/otel-js/service/BaseOtelService/BaseOtelService.ts index 069eb035a24..436193b15f7 100644 --- a/packages/cli-kit/src/public/node/vendor/otel-js/service/BaseOtelService/BaseOtelService.ts +++ b/packages/cli-kit/src/public/node/vendor/otel-js/service/BaseOtelService/BaseOtelService.ts @@ -1,6 +1,8 @@ +import {MetricInstrumentType} from '../types.js' +import {isValidMetricName} from '../../utils/validators.js' +import {ExplicitBucketHistogramAggregation, View} from '@opentelemetry/sdk-metrics' import type {MetricAttributes} from '@opentelemetry/api' import type {MeterProvider, ViewOptions} from '@opentelemetry/sdk-metrics' -import {ExplicitBucketHistogramAggregation, View} from '@opentelemetry/sdk-metrics' import type { MetricDescriptor, @@ -10,8 +12,6 @@ import type { OtelService, RecordMetricFunction, } from '../types.js' -import {MetricInstrumentType} from '../types.js' -import {isValidMetricName} from '../../utils/validators.js' const instrumentationScope = 'opentelemetry-js-shopify-web' @@ -53,6 +53,13 @@ export class BaseOtelService implements OtelService { /** * Bootstraps an Otel exporter which can send Otel metrics to a dedicated Shopify supported collector endpoint. + * + * @param root0 + * @param root0.serviceName + * @param root0.prefixMetric + * @param root0.metrics + * @param root0.onRecord + * @param root0.meterProvider */ constructor({serviceName, prefixMetric = false, metrics = {}, onRecord, meterProvider}: BaseOtelServiceOptions) { if (!serviceName) { @@ -78,6 +85,7 @@ export class BaseOtelService implements OtelService { addView(viewOptions: ViewOptions) { // The API to register view is not yet exposed. We need to use the private // property to register a new view after the initial instantiation. + // eslint-disable-next-line @typescript-eslint/no-explicit-any ;(this.meterProvider as any)._sharedState?.viewRegistry?.addView?.(new View(viewOptions)) } diff --git a/packages/cli-kit/src/public/node/vendor/otel-js/service/DefaultOtelService/DefaultOtelService.ts b/packages/cli-kit/src/public/node/vendor/otel-js/service/DefaultOtelService/DefaultOtelService.ts index 1c7c4fc0ffb..5c1aa9104bf 100644 --- a/packages/cli-kit/src/public/node/vendor/otel-js/service/DefaultOtelService/DefaultOtelService.ts +++ b/packages/cli-kit/src/public/node/vendor/otel-js/service/DefaultOtelService/DefaultOtelService.ts @@ -6,7 +6,7 @@ import type {BaseOtelServiceOptions} from '../BaseOtelService/BaseOtelService.js export interface DefaultOtelServiceOptions extends BaseOtelServiceOptions { /** - * What environment is being deployed (production, staging) + * What environment is being deployed (production, staging). */ env?: string /** @@ -25,6 +25,17 @@ export interface DefaultOtelServiceOptions extends BaseOtelServiceOptions { export class DefaultOtelService extends BaseOtelService { /** * Bootstraps an Otel exporter which can send Otel metrics to a dedicated Shopify supported collector endpoint. + * + * @param root0 + * @param root0.throttleLimit + * @param root0.env + * @param root0.serviceName + * @param root0.prefixMetric + * @param root0.metrics + * @param root0.onRecord + * @param root0.meterProvider + * @param root0.useXhr + * @param root0.otelEndpoint */ constructor({ throttleLimit = 5000, diff --git a/packages/cli-kit/src/public/node/vendor/otel-js/service/types.ts b/packages/cli-kit/src/public/node/vendor/otel-js/service/types.ts index b17e7da59c6..dde478922cc 100644 --- a/packages/cli-kit/src/public/node/vendor/otel-js/service/types.ts +++ b/packages/cli-kit/src/public/node/vendor/otel-js/service/types.ts @@ -9,19 +9,19 @@ import type { import type {ViewOptions} from '@opentelemetry/sdk-metrics' export type CustomMetricLabels< - TLabels extends {[key in TKeys]: MetricAttributes}, + TLabels extends Record, TKeys extends string = keyof TLabels & string, > = { [P in TKeys]: TLabels[P] extends MetricAttributes ? TLabels[P] : never } -export type MetricRecording = [value: number, labels?: TAttributes] +export type MetricRecording = [value: number, labels?: TAttributes] -export type RecordMetricFunction = ( +export type RecordMetricFunction = ( ...args: MetricRecording ) => void -export type OnRecordCallback = ( +export type OnRecordCallback = ( metricName: string, ...args: MetricRecording ) => MetricRecording | void @@ -48,9 +48,7 @@ export type MetricDescriptor = MetricOptions & } ) -export interface MetricsConfig { - [key: string]: MetricDescriptor -} +export type MetricsConfig = Record export interface OtelService { readonly serviceName: string @@ -59,7 +57,7 @@ export interface OtelService { addView(viewOptions: ViewOptions): void - record(...args: Parameters>): void + record(...args: Parameters>): void /** * `onRecord` callback is called when a metric is recorded. diff --git a/packages/cli-kit/src/public/node/vendor/otel-js/utils/throttle.ts b/packages/cli-kit/src/public/node/vendor/otel-js/utils/throttle.ts index 3880ea298be..1d87007c8b0 100644 --- a/packages/cli-kit/src/public/node/vendor/otel-js/utils/throttle.ts +++ b/packages/cli-kit/src/public/node/vendor/otel-js/utils/throttle.ts @@ -1,18 +1,26 @@ -type ThrottledFunction any> = (...args: Parameters) => ReturnType +type ThrottledFunction unknown> = (...args: Parameters) => ReturnType interface ThrottleOptions { leading?: boolean trailing?: boolean } -export function throttle any>( +/** + * + * @param func + * @param wait + * @param root0 + * @param root0.leading + * @param root0.trailing + */ +export function throttle unknown>( func: T, wait: number, {leading = true, trailing = true}: ThrottleOptions = {}, ): ThrottledFunction { let lastArgs: Parameters | null let result: ReturnType - let context: any + let context: unknown let timeout: ReturnType | null = null let previous = 0 @@ -20,13 +28,13 @@ export function throttle any>( previous = leading === false ? 0 : Date.now() timeout = null if (lastArgs) { - result = func.apply(context, lastArgs) + result = func.apply(context, lastArgs) as ReturnType } context = null lastArgs = null } - return function (this: any, ...args: Parameters): ReturnType { + return function (this: unknown, ...args: Parameters): ReturnType { const now = Date.now() if (!previous && leading === false) previous = now @@ -41,7 +49,7 @@ export function throttle any>( } previous = now if (lastArgs) { - result = func.apply(context, lastArgs) + result = func.apply(context, lastArgs) as ReturnType } context = null lastArgs = null diff --git a/packages/cli-kit/src/public/node/vendor/otel-js/utils/validators.ts b/packages/cli-kit/src/public/node/vendor/otel-js/utils/validators.ts index eaad540c59b..31450f07057 100644 --- a/packages/cli-kit/src/public/node/vendor/otel-js/utils/validators.ts +++ b/packages/cli-kit/src/public/node/vendor/otel-js/utils/validators.ts @@ -2,6 +2,10 @@ import {diag} from '@opentelemetry/api' const validMetricRegex = new RegExp('[^a-zA-Z_][^a-zA-Z0-9_]*') +/** + * + * @param value + */ export function isValidMetricName(value: string): boolean { if (validMetricRegex.test(value)) { diag.warn( diff --git a/packages/cli-kit/src/public/node/version.test.ts b/packages/cli-kit/src/public/node/version.test.ts index 99bced0963f..98f3ce67a1c 100644 --- a/packages/cli-kit/src/public/node/version.test.ts +++ b/packages/cli-kit/src/public/node/version.test.ts @@ -1,7 +1,8 @@ +import {captureOutput} from './system.js' import {localCLIVersion, globalCLIVersion, isPreReleaseVersion} from './version.js' -import {inTemporaryDirectory} from '../node/fs.js' -import {captureOutput} from '../node/system.js' +import {inTemporaryDirectory} from './fs.js' import {describe, expect, test, vi} from 'vitest' + import which from 'which' vi.mock('../node/system.js') diff --git a/packages/cli-kit/src/public/node/version.ts b/packages/cli-kit/src/public/node/version.ts index 3c958889471..fa91dfe54d3 100644 --- a/packages/cli-kit/src/public/node/version.ts +++ b/packages/cli-kit/src/public/node/version.ts @@ -1,4 +1,4 @@ -import {captureOutput} from '../node/system.js' +import {captureOutput} from './system.js' import which from 'which' import {satisfies} from 'semver' /** diff --git a/packages/cli-kit/src/public/node/vscode.ts b/packages/cli-kit/src/public/node/vscode.ts index 1417e47defe..0962bf9c10f 100644 --- a/packages/cli-kit/src/public/node/vscode.ts +++ b/packages/cli-kit/src/public/node/vscode.ts @@ -1,6 +1,6 @@ import {fileExists, writeFile, readFile, findPathUp} from './fs.js' import {joinPath, cwd} from './path.js' -import {outputContent, outputToken, outputDebug} from '../../public/node/output.js' +import {outputContent, outputToken, outputDebug} from './output.js' /** * Check if user editor is VS Code. diff --git a/packages/cli/bin/bundle.js b/packages/cli/bin/bundle.js index 78de3e4ace5..574bcff876d 100644 --- a/packages/cli/bin/bundle.js +++ b/packages/cli/bin/bundle.js @@ -1,13 +1,15 @@ /* eslint-disable @shopify/cli/specific-imports-in-bootstrap-code, @nx/enforce-module-boundaries */ -import ShopifyStacktraceyPlugin from '../../../bin/bundling/esbuild-plugin-stacktracey.js' -import ShopifyVSCodePlugin from '../../../bin/bundling/esbuild-plugin-vscode.js' -import GraphiQLImportsPlugin from '../../../bin/bundling/esbuild-plugin-graphiql-imports.js' -import CliKitDedupPlugin from '../../../bin/bundling/esbuild-plugin-dedup-cli-kit.js' +import {createRequire} from 'module' + import {build as esBuild} from 'esbuild' import {copy} from 'esbuild-plugin-copy' import glob from 'fast-glob' import {joinPath, dirname} from '@shopify/cli-kit/node/path' -import {createRequire} from 'module' + +import ShopifyStacktraceyPlugin from '../../../bin/bundling/esbuild-plugin-stacktracey.js' +import ShopifyVSCodePlugin from '../../../bin/bundling/esbuild-plugin-vscode.js' +import GraphiQLImportsPlugin from '../../../bin/bundling/esbuild-plugin-graphiql-imports.js' +import CliKitDedupPlugin from '../../../bin/bundling/esbuild-plugin-dedup-cli-kit.js' const require = createRequire(import.meta.url) diff --git a/packages/cli/bin/dev.js b/packages/cli/bin/dev.js index b4be256213d..da29908c490 100755 --- a/packages/cli/bin/dev.js +++ b/packages/cli/bin/dev.js @@ -1,7 +1,5 @@ -#!/usr/bin/env node +import runCLI from '../dist/index.js' process.removeAllListeners('warning') -import runCLI from '../dist/index.js' - runCLI({development: true}) diff --git a/packages/cli/bin/run.js b/packages/cli/bin/run.js index 4cf1930ffc3..6cc0c0bc3cc 100755 --- a/packages/cli/bin/run.js +++ b/packages/cli/bin/run.js @@ -1,7 +1,7 @@ #!/usr/bin/env node -process.removeAllListeners('warning') - import runCLI from '../dist/index.js' +process.removeAllListeners('warning') + runCLI({development: false}) diff --git a/packages/cli/package.json b/packages/cli/package.json index 48fa96062be..07c60116a06 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -50,56 +50,6 @@ "vitest": "vitest", "type-check": "nx type-check" }, - "eslintConfig": { - "extends": [ - "../../.eslintrc.cjs" - ], - "overrides": [ - { - "files": [ - "**/bin/*.js" - ], - "parser": "espree", - "extends": [ - "plugin:@typescript-eslint/disable-type-checked" - ], - "rules": { - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/no-floating-promises": "off", - "@typescript-eslint/no-misused-promises": "off", - "@typescript-eslint/no-unnecessary-type-assertion": "off", - "@typescript-eslint/switch-exhaustiveness-check": "off", - "import/first": "off", - "import/no-unresolved": "off", - "node/shebang": "off", - "@shopify/cli/specific-imports-in-bootstrap-code": [ - "error", - { - "static": [ - "../dist/index.js" - ] - } - ], - "@typescript-eslint/consistent-type-assertions": "off" - } - }, - { - "files": [ - "src/index.ts" - ], - "rules": { - "@shopify/cli/specific-imports-in-bootstrap-code": [ - "error", - { - "static": [ - "@shopify/cli-kit/node/cli" - ] - } - ] - } - } - ] - }, "dependencies": { "@ast-grep/napi": "0.33.0", "esbuild": "0.27.2", @@ -116,10 +66,8 @@ "@shopify/theme": "3.90.0", "@shopify/cli-hydrogen": "11.1.5", "@types/global-agent": "3.0.0", - "@typescript-eslint/eslint-plugin": "7.13.1", "@vitest/coverage-istanbul": "^3.1.4", - "esbuild-plugin-copy": "^2.1.1", - "espree": "9.6.1" + "esbuild-plugin-copy": "^2.1.1" }, "engines": { "node": ">=20.10.0" diff --git a/packages/cli/src/cli/commands/kitchen-sink/index.test.ts b/packages/cli/src/cli/commands/kitchen-sink/index.test.ts index e271ee24943..c761240578c 100644 --- a/packages/cli/src/cli/commands/kitchen-sink/index.test.ts +++ b/packages/cli/src/cli/commands/kitchen-sink/index.test.ts @@ -2,6 +2,7 @@ import KitchenSinkAll from './index.js' import {asyncTasks as asyncTasksService} from '../../services/kitchen-sink/async.js' import {staticService} from '../../services/kitchen-sink/static.js' import {prompts as promptsService} from '../../services/kitchen-sink/prompts.js' + import {describe, test, vi, expect} from 'vitest' vi.mock('../../services/kitchen-sink/prompts.js') diff --git a/packages/cli/src/cli/services/upgrade.test.ts b/packages/cli/src/cli/services/upgrade.test.ts index 08407731792..f53ede7a01f 100644 --- a/packages/cli/src/cli/services/upgrade.test.ts +++ b/packages/cli/src/cli/services/upgrade.test.ts @@ -1,5 +1,5 @@ -import {upgrade} from './upgrade.js' import * as upgradeService from './upgrade.js' +import {upgrade} from './upgrade.js' import {afterEach, beforeEach, describe, expect, vi, test} from 'vitest' import {platformAndArch} from '@shopify/cli-kit/node/os' import * as nodePackageManager from '@shopify/cli-kit/node/node-package-manager' diff --git a/packages/cli/src/cli/services/upgrade.ts b/packages/cli/src/cli/services/upgrade.ts index 0ae3524bd3d..32e0c66c0bd 100644 --- a/packages/cli/src/cli/services/upgrade.ts +++ b/packages/cli/src/cli/services/upgrade.ts @@ -146,7 +146,7 @@ function outputUpgradeMessage(currentVersion: string, newestVersion: string): vo async function installJsonDependencies( depsEnv: DependencyType, - deps: {[key: string]: string}, + deps: Record, directory: string, ): Promise { const packagesToUpdate = [await cliDependency(), ...(await oclifPlugins())] diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 1fd491d8c90..77759cbd0b6 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -24,6 +24,7 @@ import {DidYouMeanCommands} from '@shopify/plugin-did-you-mean' import {runCLI} from '@shopify/cli-kit/node/cli' import {renderFatalError} from '@shopify/cli-kit/node/ui' import {FatalError} from '@shopify/cli-kit/node/error' + import fs from 'fs' export {DidYouMeanHook} from '@shopify/plugin-did-you-mean' diff --git a/packages/eslint-plugin-cli/config.js b/packages/eslint-plugin-cli/config.js index c38bc7854aa..454786fa3fa 100644 --- a/packages/eslint-plugin-cli/config.js +++ b/packages/eslint-plugin-cli/config.js @@ -1,219 +1,321 @@ -module.exports = { - settings: {}, - plugins: ['no-catch-all', 'vitest', 'unused-imports', 'eslint-plugin-tsdoc', 'jsdoc', 'import', '@shopify/cli'], - extends: [ - 'plugin:@shopify/typescript', - 'plugin:@shopify/prettier', - 'plugin:@shopify/node', - 'prettier', - 'plugin:@typescript-eslint/strict-type-checked', - 'plugin:@typescript-eslint/stylistic-type-checked', +const shopifyPlugin = require('@shopify/eslint-plugin') +const vitestPlugin = require('@vitest/eslint-plugin') +const unusedImportsPlugin = require('eslint-plugin-unused-imports') +const tsdocPlugin = require('eslint-plugin-tsdoc') +const jsdocPlugin = require('eslint-plugin-jsdoc') +const noCatchAllPlugin = require('eslint-plugin-no-catch-all') +const eslintConfigPrettier = require('eslint-config-prettier') +const globals = require('globals') + +// Load rules directly to avoid circular dependency +const rules = { + 'command-flags-with-env': require('./rules/command-flags-with-env'), + 'command-conventional-flag-env': require('./rules/command-conventional-flag-env'), + 'command-reserved-flags': require('./rules/command-reserved-flags'), + 'no-error-factory-functions': require('./rules/no-error-factory-functions'), + 'no-process-cwd': require('./rules/no-process-cwd'), + 'no-trailing-js-in-cli-kit-imports': require('./rules/no-trailing-js-in-cli-kit-imports'), + 'no-vi-manual-mock-clear': require('./rules/no-vi-manual-mock-clear'), + 'no-vi-mock-in-callbacks': require('./rules/no-vi-mock-in-callbacks'), + 'prompt-message-format': require('./rules/prompt-message-format'), + 'specific-imports-in-bootstrap-code': require('./rules/specific-imports-in-bootstrap-code'), + 'banner-headline-format': require('./rules/banner-headline-format'), + 'required-fields-when-loading-app': require('./rules/required-fields-when-loading-app'), + 'no-inline-graphql': require('./rules/no-inline-graphql'), +} + +const cliPlugin = { + meta: { + name: '@shopify/eslint-plugin-cli', + version: '3.47.2', + }, + rules, +} + +const baseRules = { + // Disable strict-component-boundaries as it requires eslint-plugin-import resolver which we don't use + '@shopify/strict-component-boundaries': 'off', + // Use import-x rules instead of import (provided by @shopify/eslint-plugin) + 'import-x/order': [ + 'error', + { + groups: ['index', 'sibling', 'parent', 'internal', 'external', 'builtin', 'object', 'type'], + }, ], - rules: { - 'prettier/prettier': ['error'], - 'import/order': [ - 'error', - { - groups: ['index', 'sibling', 'parent', 'internal', 'external', 'builtin', 'object', 'type'], - }, - ], - 'no-catch-shadow': 'off', - 'no-catch-all/no-catch-all': 'error', - 'no-console': 'error', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/no-explicit-any': [ - 'error', - { - fixToUnknown: true, + 'no-catch-shadow': 'off', + 'no-catch-all/no-catch-all': 'error', + 'no-console': 'error', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-require-imports': 'off', + '@typescript-eslint/no-explicit-any': [ + 'error', + { + fixToUnknown: true, + }, + ], + // Switch exhaustiveness check may trigger in existing code, keep as warn + '@typescript-eslint/switch-exhaustiveness-check': 'warn', + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'default', + format: ['camelCase', 'PascalCase', 'UPPER_CASE'], + leadingUnderscore: 'allow', + trailingUnderscore: 'allow', + }, + { + selector: 'default', + filter: { + match: true, + // Allow double underscores and React UNSAFE_ (for lifecycle hooks that are to be deprecated) + regex: '^(__|UNSAFE_).+$', }, - ], - '@typescript-eslint/switch-exhaustiveness-check': 'error', - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'default', - format: ['camelCase', 'PascalCase', 'UPPER_CASE'], - leadingUnderscore: 'allow', - trailingUnderscore: 'allow', + format: null, + }, + { + selector: 'typeLike', + format: ['PascalCase'], + }, + { + selector: 'typeParameter', + format: ['PascalCase'], + prefix: ['T'], + }, + { + selector: 'interface', + format: ['PascalCase'], + custom: { + regex: '^I[A-Z]', + match: false, }, - { - selector: 'default', - filter: { - match: true, - // Allow double underscores and React UNSAFE_ (for lifecycle hooks that are to be deprecated) - regex: '^(__|UNSAFE_).+$', + }, + { + selector: ['objectLiteralProperty', 'typeProperty'], + format: null, + }, + ], + // Use .js extensions for TypeScript files (ESM convention) + 'import-x/extensions': ['error', 'ignorePackages', { + ts: 'never', + tsx: 'never', + js: 'always', + }], + '@typescript-eslint/no-misused-promises': 'error', + '@typescript-eslint/no-floating-promises': 'error', + '@typescript-eslint/no-unnecessary-type-assertion': 'error', + 'consistent-return': 'off', + 'import-x/no-cycle': 'off', + 'callback-return': 'off', + 'n/callback-return': 'off', + 'no-undefined': 'off', + 'node/no-deprecated-api': 'off', + 'n/no-deprecated-api': 'off', + // In a monorepo, dependencies can be hoisted to root or in the package + 'import-x/no-extraneous-dependencies': 'off', + 'no-await-in-loop': 'error', + 'unused-imports/no-unused-imports': 'error', + 'no-restricted-imports': [ + 'error', + { + paths: [ + { + name: 'path', + message: "Please use: import { joinPath } from '@shopify/cli-kit/node/path'", }, - format: null, - }, - { - selector: 'typeLike', - format: ['PascalCase'], - }, - { - selector: 'typeParameter', - format: ['PascalCase'], - prefix: ['T'], - }, - { - selector: 'interface', - format: ['PascalCase'], - custom: { - regex: '^I[A-Z]', - match: false, + { + name: 'node:path', + message: "Please use: import { joinPath } from '@shopify/cli-kit/node/path'", }, - }, - { - selector: ['objectLiteralProperty', 'typeProperty'], - format: null, - }, - ], - 'import/extensions': ['error', 'always', {ignorePackages: true}], - '@typescript-eslint/no-misused-promises': 'error', - '@typescript-eslint/no-floating-promises': 'error', - '@typescript-eslint/no-unnecessary-type-assertion': 'error', - 'consistent-return': 'off', - 'import/no-cycle': 'off', - 'callback-return': 'off', - 'no-undefined': 'off', - 'node/no-deprecated-api': 'off', - 'import/no-extraneous-dependencies': ['error', {packageDir: ['../..', '.']}], - 'no-await-in-loop': 'error', - 'unused-imports/no-unused-imports': 'error', - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'path', - message: "Please use: import { joinPath } from '@shopify/cli-kit/node/path'", - }, - { - name: 'node:path', - message: "Please use: import { joinPath } from '@shopify/cli-kit/node/path'", - }, - { - name: 'child_process', - message: "Please use: import { exec } from '@shopify/cli-kit/node/system'", - }, - { - name: 'node:child_process', - message: "Please use: import { exec } from '@shopify/cli-kit/node/system'", - }, - ], - }, - ], - 'vitest/consistent-test-it': [ - 'error', - { - fn: 'test', - withinDescribe: 'test', - }, - ], - 'vitest/max-nested-describe': [ - 'error', - { - max: 2, - }, - ], - 'vitest/no-disabled-tests': 'error', - 'vitest/prefer-expect-resolves': 'error', - '@shopify/cli/command-flags-with-env': 'error', - '@shopify/cli/command-conventional-flag-env': 'error', - '@shopify/cli/command-reserved-flags': 'error', - '@shopify/cli/no-error-factory-functions': 'error', - '@shopify/cli/no-process-cwd': 'error', - '@shopify/cli/no-trailing-js-in-cli-kit-imports': 'error', - '@shopify/cli/no-vi-manual-mock-clear': 'error', - '@shopify/cli/no-vi-mock-in-callbacks': 'error', - '@shopify/cli/prompt-message-format': 'warn', - '@shopify/cli/banner-headline-format': 'warn', - '@shopify/cli/required-fields-when-loading-app': 'error', - '@shopify/cli/no-inline-graphql': 'error', - 'no-restricted-syntax': [ - 'error', - { - selector: 'Literal[value=/(cannot|will not|do not)/i]', - message: "Be human - prefer don't to do not, won't to will not etc.", - }, - { - selector: 'TemplateElement[value.raw=/(cannot|will not|do not)/i]', - message: "Be human - prefer don't to do not, won't to will not etc.", - }, - ], - 'tsdoc/syntax': 'error', - 'jsdoc/require-returns-description': 'error', - 'promise/catch-or-return': ['error', {allowFinally: true}], - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { - args: 'all', - argsIgnorePattern: '^_', - caughtErrors: 'none', - caughtErrorsIgnorePattern: '^_', - destructuredArrayIgnorePattern: '^_', - varsIgnorePattern: '^_', - ignoreRestSiblings: true, - }, - ], - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/require-await': 'off', - '@typescript-eslint/await-thenable': 'off', - '@typescript-eslint/no-unsafe-argument': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - '@typescript-eslint/restrict-template-expressions': 'off', - '@typescript-eslint/no-unsafe-enum-comparison': 'off', - '@typescript-eslint/prefer-nullish-coalescing': 'warn', - 'no-negated-condition': 'warn', - 'node/callback-return': 'warn', - '@typescript-eslint/prefer-promise-reject-errors': 'warn', - 'no-lone-blocks': 'warn', - '@typescript-eslint/only-throw-error': 'warn', - '@typescript-eslint/prefer-readonly': 'error', - // These should be moved to a warning/error eventually. - '@typescript-eslint/use-unknown-in-catch-callback-variable': 'off', - '@typescript-eslint/no-unnecessary-condition': 'off', - '@typescript-eslint/prefer-optional-chain': 'off', - '@typescript-eslint/no-confusing-void-expression': 'off', - '@typescript-eslint/non-nullable-type-assertion-style': 'off', - '@babel/no-unused-expressions': 'off', - 'no-unused-expressions': 'off', - '@typescript-eslint/no-unused-expressions': ['error', {allowTernary: true}], - 'no-restricted-globals': [ - 'error', - { - name: 'fetch', - message: - 'Please use our alternative fetch implementation in @shopify/cli-kit/node/http instead of Node.js built-in fetch. Built-in fetch does not support HTTP proxies.', - }, - ], - }, - overrides: [ + { + name: 'child_process', + message: "Please use: import { exec } from '@shopify/cli-kit/node/system'", + }, + { + name: 'node:child_process', + message: "Please use: import { exec } from '@shopify/cli-kit/node/system'", + }, + ], + }, + ], + 'vitest/consistent-test-it': [ + 'error', { - files: ['**/*.test.ts', '**/*.test.tsx', '**/*.test-data.ts', '**/testing/*.{ts,tsx}'], - rules: { - '@typescript-eslint/no-explicit-any': 'off', - 'no-restricted-syntax': 'off', - '@shopify/cli/required-fields-when-loading-app': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/no-unused-vars': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-dynamic-delete': 'off', - '@typescript-eslint/unbound-method': 'off', - '@typescript-eslint/no-redundant-type-constituents': 'off', - '@typescript-eslint/no-confusing-void-expression': 'off', - '@typescript-eslint/no-unnecessary-template-expression': 'warn', - '@typescript-eslint/no-unnecessary-condition': 'off', - '@typescript-eslint/restrict-plus-operands': 'off', - '@typescript-eslint/non-nullable-type-assertion-style': 'off', - '@typescript-eslint/prefer-reduce-type-parameter': 'warn', - 'no-restricted-globals': 'off', - }, + fn: 'test', + withinDescribe: 'test', + }, + ], + 'vitest/max-nested-describe': [ + 'error', + { + max: 2, + }, + ], + 'vitest/no-disabled-tests': 'error', + 'vitest/prefer-expect-resolves': 'error', + '@shopify/cli/command-flags-with-env': 'error', + '@shopify/cli/command-conventional-flag-env': 'error', + '@shopify/cli/command-reserved-flags': 'error', + '@shopify/cli/no-error-factory-functions': 'error', + '@shopify/cli/no-process-cwd': 'error', + '@shopify/cli/no-trailing-js-in-cli-kit-imports': 'error', + '@shopify/cli/no-vi-manual-mock-clear': 'error', + '@shopify/cli/no-vi-mock-in-callbacks': 'error', + '@shopify/cli/prompt-message-format': 'warn', + '@shopify/cli/banner-headline-format': 'warn', + '@shopify/cli/required-fields-when-loading-app': 'error', + '@shopify/cli/no-inline-graphql': 'error', + 'no-restricted-syntax': [ + 'error', + { + selector: 'Literal[value=/(cannot|will not|do not)/i]', + message: "Be human - prefer don't to do not, won't to will not etc.", + }, + { + selector: 'TemplateElement[value.raw=/(cannot|will not|do not)/i]', + message: "Be human - prefer don't to do not, won't to will not etc.", + }, + ], + 'tsdoc/syntax': 'error', + 'jsdoc/require-returns-description': 'error', + 'promise/catch-or-return': ['error', {allowFinally: true}], + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'none', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^_', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-empty-object-type': 'off', + // Disable strict Node.js version checking for experimental features + 'n/no-unsupported-features/node-builtins': 'off', + '@typescript-eslint/require-await': 'off', + '@typescript-eslint/await-thenable': 'off', + '@typescript-eslint/no-unsafe-argument': 'off', + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-unsafe-return': 'off', + '@typescript-eslint/restrict-template-expressions': 'off', + '@typescript-eslint/no-unsafe-enum-comparison': 'off', + '@typescript-eslint/prefer-nullish-coalescing': 'warn', + 'no-negated-condition': 'warn', + '@typescript-eslint/prefer-promise-reject-errors': 'warn', + 'prefer-promise-reject-errors': 'off', + 'no-lone-blocks': 'warn', + '@typescript-eslint/only-throw-error': 'warn', + '@typescript-eslint/prefer-readonly': 'error', + // These should be moved to a warning/error eventually. + '@typescript-eslint/use-unknown-in-catch-callback-variable': 'off', + '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/prefer-optional-chain': 'off', + '@typescript-eslint/no-confusing-void-expression': 'off', + '@typescript-eslint/non-nullable-type-assertion-style': 'off', + '@typescript-eslint/consistent-indexed-object-style': 'off', + '@babel/no-unused-expressions': 'off', + 'no-unused-expressions': 'off', + '@typescript-eslint/no-unused-expressions': ['error', {allowTernary: true}], + 'no-restricted-globals': [ + 'error', + { + name: 'fetch', + message: + 'Please use our alternative fetch implementation in @shopify/cli-kit/node/http instead of Node.js built-in fetch. Built-in fetch does not support HTTP proxies.', }, ], } + +const testFileRules = { + '@typescript-eslint/no-explicit-any': 'off', + 'no-restricted-syntax': 'off', + '@shopify/cli/required-fields-when-loading-app': 'off', + // '@typescript-eslint/ban-types' was removed in @typescript-eslint v8, use @typescript-eslint/no-restricted-types instead + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-dynamic-delete': 'off', + '@typescript-eslint/unbound-method': 'off', + '@typescript-eslint/no-redundant-type-constituents': 'off', + '@typescript-eslint/no-confusing-void-expression': 'off', + '@typescript-eslint/no-unnecessary-template-expression': 'warn', + '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/restrict-plus-operands': 'off', + '@typescript-eslint/non-nullable-type-assertion-style': 'off', + '@typescript-eslint/prefer-reduce-type-parameter': 'warn', + 'no-restricted-globals': 'off', +} + +// Build the flat config array +const config = [ + // Spread the Shopify configs (these already include typescript-eslint plugin) + ...shopifyPlugin.configs.typescript, + ...shopifyPlugin.configs.node, + ...shopifyPlugin.configs.prettier, + + // Global ignores + { + ignores: ['**/dist/**', '**/node_modules/**', '**/coverage/**', '**/vendor/**', '**/bin/bundle.js'], + }, + + // Add CLI-specific plugins and rules + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parserOptions: { + projectService: true, + tsconfigRootDir: process.cwd(), + }, + globals: { + ...globals.node, + ...globals.es2021, + }, + }, + plugins: { + vitest: vitestPlugin, + 'unused-imports': unusedImportsPlugin, + tsdoc: tsdocPlugin, + jsdoc: jsdocPlugin, + 'no-catch-all': noCatchAllPlugin, + '@shopify/cli': cliPlugin, + }, + rules: baseRules, + }, + + // Prettier config to disable conflicting rules + eslintConfigPrettier, + + // Test files config + { + files: ['**/*.test.ts', '**/*.test.tsx', '**/*.test-data.ts', '**/testing/*.ts', '**/testing/*.tsx'], + rules: testFileRules, + }, + + // Features package - allow console for test utilities + { + files: ['**/packages/features/**/*.ts'], + rules: { + 'no-console': 'off', + }, + }, + + // JS bin files - different rules apply + { + files: ['**/bin/*.js'], + rules: { + 'import-x/extensions': 'off', + 'import-x/no-unresolved': 'off', + '@shopify/cli/specific-imports-in-bootstrap-code': 'off', + '@nx/enforce-module-boundaries': 'off', + 'n/no-unpublished-bin': 'off', + }, + }, +] + +module.exports = config diff --git a/packages/eslint-plugin-cli/index.js b/packages/eslint-plugin-cli/index.js index 803415f3c8c..354636e4018 100644 --- a/packages/eslint-plugin-cli/index.js +++ b/packages/eslint-plugin-cli/index.js @@ -1,4 +1,8 @@ -module.exports = { +const plugin = { + meta: { + name: '@shopify/eslint-plugin-cli', + version: '3.47.2', + }, rules: { 'command-flags-with-env': require('./rules/command-flags-with-env'), 'command-conventional-flag-env': require('./rules/command-conventional-flag-env'), @@ -14,8 +18,15 @@ module.exports = { 'required-fields-when-loading-app': require('./rules/required-fields-when-loading-app'), 'no-inline-graphql': require('./rules/no-inline-graphql'), }, +} - configs: { - config: require('./config'), +// Lazy load config to avoid circular dependency +Object.defineProperty(plugin, 'configs', { + get() { + return { + config: require('./config'), + } }, -} +}) + +module.exports = plugin diff --git a/packages/eslint-plugin-cli/package.json b/packages/eslint-plugin-cli/package.json index 760b1843540..4322fa23acb 100644 --- a/packages/eslint-plugin-cli/package.json +++ b/packages/eslint-plugin-cli/package.json @@ -17,20 +17,20 @@ "author": "Shopify Inc.", "dependencies": { "@babel/core": "7.27.4", - "@shopify/eslint-plugin": "42.1.0", - "@typescript-eslint/eslint-plugin": "7.13.1", - "@typescript-eslint/parser": "7.18.0", - "eslint-config-prettier": "8.10.0", - "eslint-plugin-import": "2.31.0", - "eslint-plugin-jsdoc": "48.11.0", + "@shopify/eslint-plugin": "50.0.0", + "@typescript-eslint/eslint-plugin": "8.33.0", + "@typescript-eslint/parser": "8.33.0", + "eslint-config-prettier": "10.1.5", + "eslint-plugin-jsdoc": "50.7.1", "eslint-plugin-jsx-a11y": "6.10.2", "eslint-plugin-no-catch-all": "1.1.0", - "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-react": "7.37.3", - "eslint-plugin-react-hooks": "4.6.2", + "eslint-plugin-prettier": "5.5.1", + "eslint-plugin-react": "7.37.5", + "eslint-plugin-react-hooks": "5.2.0", "eslint-plugin-tsdoc": "0.4.0", - "eslint-plugin-unused-imports": "3.2.0", - "eslint-plugin-vitest": "0.5.4", + "eslint-plugin-unused-imports": "4.1.4", + "@vitest/eslint-plugin": "1.1.44", + "globals": "16.2.0", "execa": "7.2.0", "debug": "4.4.0" }, @@ -38,7 +38,7 @@ "prettier": "2.8.8" }, "peerDependencies": { - "eslint": "^8.48.0" + "eslint": "^9.0.0" }, "publishConfig": { "@shopify:registry": "https://registry.npmjs.org", diff --git a/packages/eslint-plugin-cli/rules/no-inline-graphql.js b/packages/eslint-plugin-cli/rules/no-inline-graphql.js index 023f3280272..7acf5006eaa 100644 --- a/packages/eslint-plugin-cli/rules/no-inline-graphql.js +++ b/packages/eslint-plugin-cli/rules/no-inline-graphql.js @@ -32,7 +32,7 @@ function hashFileSync(filePath, algorithm = 'sha256') { } function checkKnownFailuresIfShouldFail(context) { - const filePath = context.getFilename() + const filePath = context.filename || context.getFilename() const relativePath = path.relative(path.resolve(__dirname, '../../../../../../..'), filePath) const fileHash = hashFileSync(filePath) const shouldFail = !knownFailures[relativePath] || knownFailures[relativePath] !== fileHash @@ -59,10 +59,11 @@ function checkTemplateElement(context, node) { } // don't fail if this is inside a TaggedTemplateExpression with gql tag name - const parents = context.getAncestors() + const sourceCode = context.sourceCode || context.getSourceCode() + const parents = sourceCode.getAncestors(node) parents.pop() const parent = parents.pop() - if (parent.type === 'TaggedTemplateExpression' && parent.tag.name === 'gql') { + if (parent && parent.type === 'TaggedTemplateExpression' && parent.tag && parent.tag.name === 'gql') { return } diff --git a/packages/features/steps/app.steps.ts b/packages/features/steps/app.steps.ts index f0dd1330894..9d4b99ee946 100644 --- a/packages/features/steps/app.steps.ts +++ b/packages/features/steps/app.steps.ts @@ -4,6 +4,7 @@ import {AppInfo} from '../world/index.js' import * as path from 'pathe' import {When, Then} from '@cucumber/cucumber' import fs from 'fs-extra' + import {strict as assert} from 'assert' When( @@ -102,7 +103,7 @@ interface GenerateExtensionArgs { type: string directory: string extraArgs: string[] - env: {[key: string]: string} + env: Record } async function generateExtension({name, type, directory, extraArgs, env}: GenerateExtensionArgs) { try { diff --git a/packages/features/steps/create-app.steps.ts b/packages/features/steps/create-app.steps.ts index 8b17a44a619..f5aeeb6705f 100644 --- a/packages/features/steps/create-app.steps.ts +++ b/packages/features/steps/create-app.steps.ts @@ -3,6 +3,7 @@ import {exec} from '../lib/system.js' import {When, Then} from '@cucumber/cucumber' import * as path from 'pathe' import fs from 'fs-extra' + import {strict as assert} from 'assert' interface ExtensionConfiguration { diff --git a/packages/features/steps/github-actions.steps.ts b/packages/features/steps/github-actions.steps.ts index 24c91c97d6a..8e5cb346987 100644 --- a/packages/features/steps/github-actions.steps.ts +++ b/packages/features/steps/github-actions.steps.ts @@ -2,6 +2,7 @@ import {exec} from '../lib/system.js' import {When, Then} from '@cucumber/cucumber' import * as path from 'pathe' import {strict as assert} from 'assert' + import {fileURLToPath} from 'url' const __filename = fileURLToPath(import.meta.url) diff --git a/packages/features/steps/node-deps.steps.ts b/packages/features/steps/node-deps.steps.ts index 6d0366360b6..89b19334725 100644 --- a/packages/features/steps/node-deps.steps.ts +++ b/packages/features/steps/node-deps.steps.ts @@ -9,10 +9,10 @@ const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) interface PackageJson { - dependencies?: {[key: string]: string} - devDependencies?: {[key: string]: string} - peerDependencies?: {[key: string]: string} - resolutions?: {[key: string]: string} + dependencies?: Record + devDependencies?: Record + peerDependencies?: Record + resolutions?: Record } async function parsePackageJson(path: string): Promise { @@ -22,7 +22,6 @@ async function parsePackageJson(path: string): Promise { When(/I look at the package.json files in all packages/, async function () { this.packageJsonMap = {} for (const packageJson of glob.sync(`${__dirname}/../../*/package.json`)) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const packageName = path.dirname(packageJson).split('/').pop()! // eslint-disable-next-line no-await-in-loop this.packageJsonMap[packageName] = await parsePackageJson(packageJson) diff --git a/packages/features/world/index.ts b/packages/features/world/index.ts index 1491259cd5a..28b0c9de684 100644 --- a/packages/features/world/index.ts +++ b/packages/features/world/index.ts @@ -24,7 +24,7 @@ export interface ExtensionConfiguration { export class World { public temporaryDirectory: string - public temporaryEnv: {[key: string]: string} | undefined + public temporaryEnv: Record | undefined public appDirectory: string | undefined constructor({temporaryDirectory}: WorldConstructorParams) { diff --git a/packages/plugin-cloudflare/src/install-cloudflared.test.ts b/packages/plugin-cloudflare/src/install-cloudflared.test.ts index 412cbcbeb5a..b0edfd54302 100644 --- a/packages/plugin-cloudflare/src/install-cloudflared.test.ts +++ b/packages/plugin-cloudflare/src/install-cloudflared.test.ts @@ -3,6 +3,7 @@ import * as fsActions from '@shopify/cli-kit/node/fs' import * as http from '@shopify/cli-kit/node/http' import {beforeEach, describe, expect, test, vi} from 'vitest' import util from 'util' + import {WriteStream} from 'fs' // eslint-disable-next-line no-restricted-imports import * as childProcess from 'child_process' diff --git a/packages/plugin-cloudflare/src/install-cloudflared.ts b/packages/plugin-cloudflare/src/install-cloudflared.ts index d96d3ef8960..37664c67290 100644 --- a/packages/plugin-cloudflare/src/install-cloudflared.ts +++ b/packages/plugin-cloudflare/src/install-cloudflared.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ // Install script for cloudflared, derived from https://github.com/JacobLinCool/node-cloudflared import {basename, dirname, joinPath} from '@shopify/cli-kit/node/path' import {outputDebug} from '@shopify/cli-kit/node/output' @@ -20,25 +19,25 @@ import {execSync, execFileSync} from 'child_process' export const CURRENT_CLOUDFLARE_VERSION = '2024.8.2' const CLOUDFLARE_REPO = `https://github.com/cloudflare/cloudflared/releases/download/${CURRENT_CLOUDFLARE_VERSION}/` -const LINUX_URL: {[key: string]: string} = { +const LINUX_URL: Record = { arm64: 'cloudflared-linux-arm64', arm: 'cloudflared-linux-arm', x64: 'cloudflared-linux-amd64', ia32: 'cloudflared-linux-386', } -const MACOS_URL: {[key: string]: string} = { +const MACOS_URL: Record = { arm64: 'cloudflared-darwin-arm64.tgz', x64: 'cloudflared-darwin-amd64.tgz', } -const WINDOWS_URL: {[key: string]: string} = { +const WINDOWS_URL: Record = { x64: 'cloudflared-windows-amd64.exe', ia32: 'cloudflared-windows-386.exe', arm64: 'cloudflared-windows-amd64.exe', } -const URL: {[key: string]: {[key: string]: string}} = { +const URL: Record> = { linux: LINUX_URL, darwin: MACOS_URL, win32: WINDOWS_URL, diff --git a/packages/plugin-cloudflare/src/tunnel.test.ts b/packages/plugin-cloudflare/src/tunnel.test.ts index d7479a9526f..73b46304406 100644 --- a/packages/plugin-cloudflare/src/tunnel.test.ts +++ b/packages/plugin-cloudflare/src/tunnel.test.ts @@ -2,6 +2,7 @@ import {hookStart} from './tunnel.js' import install from './install-cloudflared.js' import {describe, vi, expect, test, beforeAll} from 'vitest' import {exec} from '@shopify/cli-kit/node/system' + import {Writable} from 'stream' const port = 1234 diff --git a/packages/plugin-cloudflare/src/tunnel.ts b/packages/plugin-cloudflare/src/tunnel.ts index 73b5432e65f..c361923f899 100644 --- a/packages/plugin-cloudflare/src/tunnel.ts +++ b/packages/plugin-cloudflare/src/tunnel.ts @@ -14,6 +14,7 @@ import {joinPath, dirname} from '@shopify/cli-kit/node/path' import {outputDebug} from '@shopify/cli-kit/node/output' import {isUnitTest} from '@shopify/cli-kit/node/context/local' import {BugError} from '@shopify/cli-kit/node/error' + import {Writable} from 'stream' import {fileURLToPath} from 'url' diff --git a/packages/plugin-did-you-mean/src/index.ts b/packages/plugin-did-you-mean/src/index.ts index a7472df62f1..a1909173560 100644 --- a/packages/plugin-did-you-mean/src/index.ts +++ b/packages/plugin-did-you-mean/src/index.ts @@ -1,8 +1,7 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ -import {isAutocorrectEnabled} from './services/conf.js' +import AutocorrectOn from './commands/config/autocorrect/on.js' import AutocorrectOff from './commands/config/autocorrect/off.js' import AutocorrectStatus from './commands/config/autocorrect/status.js' -import AutocorrectOn from './commands/config/autocorrect/on.js' +import {isAutocorrectEnabled} from './services/conf.js' import {Hook} from '@oclif/core' import {bigram} from 'n-gram' import {renderConfirmationPrompt, renderFatalError, renderInfo} from '@shopify/cli-kit/node/ui' @@ -14,7 +13,7 @@ function sanitizeCmd(cmd: string): string { } function relativeScore(commandBigrams: string[], userCommandBigrams: string[]): number { - const map: {[key: string]: number} = {} + const map: Record = {} commandBigrams.forEach((elem) => { // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion map[elem] = map[elem] ? map[elem]! + 1 : 1 diff --git a/packages/theme/src/cli/commands/theme/check.ts b/packages/theme/src/cli/commands/theme/check.ts index 52581848e37..e4f57fda97a 100644 --- a/packages/theme/src/cli/commands/theme/check.ts +++ b/packages/theme/src/cli/commands/theme/check.ts @@ -1,4 +1,4 @@ -import {themeFlags} from '../../flags.js' +import ThemeCommand, {RequiredFlags} from '../../utilities/theme-command.js' import { formatOffensesJson, formatSummary, @@ -12,7 +12,7 @@ import { handleExit, type FailLevel, } from '../../services/check.js' -import ThemeCommand, {RequiredFlags} from '../../utilities/theme-command.js' +import {themeFlags} from '../../flags.js' import {Flags} from '@oclif/core' import {globalFlags} from '@shopify/cli-kit/node/cli' import {outputResult, outputDebug} from '@shopify/cli-kit/node/output' @@ -97,7 +97,7 @@ export default class Check extends ThemeCommand { const environment = flags.environment?.[0] // To support backwards compatibility for legacy configs const isLegacyConfig = flags.config?.startsWith(':') && LegacyIdentifiers.has(flags.config.slice(1)) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const config = isLegacyConfig ? LegacyIdentifiers.get(flags.config!.slice(1)) : flags.config if (flags.init) { diff --git a/packages/theme/src/cli/commands/theme/console.ts b/packages/theme/src/cli/commands/theme/console.ts index ac86ac094db..298c027461f 100644 --- a/packages/theme/src/cli/commands/theme/console.ts +++ b/packages/theme/src/cli/commands/theme/console.ts @@ -1,6 +1,6 @@ -import {themeFlags} from '../../flags.js' -import ThemeCommand, {RequiredFlags} from '../../utilities/theme-command.js' import {ensureReplEnv, initializeRepl} from '../../services/console.js' +import ThemeCommand, {RequiredFlags} from '../../utilities/theme-command.js' +import {themeFlags} from '../../flags.js' import {globalFlags} from '@shopify/cli-kit/node/cli' import {AdminSession} from '@shopify/cli-kit/node/session' import {Flags} from '@oclif/core' diff --git a/packages/theme/src/cli/commands/theme/delete.ts b/packages/theme/src/cli/commands/theme/delete.ts index 09f0f8a43a9..8a8764730de 100644 --- a/packages/theme/src/cli/commands/theme/delete.ts +++ b/packages/theme/src/cli/commands/theme/delete.ts @@ -1,6 +1,6 @@ -import ThemeCommand from '../../utilities/theme-command.js' -import {themeFlags} from '../../flags.js' import {themesDelete} from '../../services/delete.js' +import {themeFlags} from '../../flags.js' +import ThemeCommand from '../../utilities/theme-command.js' import {Flags} from '@oclif/core' import {globalFlags} from '@shopify/cli-kit/node/cli' import {OutputFlags} from '@oclif/core/interfaces' diff --git a/packages/theme/src/cli/commands/theme/dev.ts b/packages/theme/src/cli/commands/theme/dev.ts index dafb12d03f1..99eb6c25b7f 100644 --- a/packages/theme/src/cli/commands/theme/dev.ts +++ b/packages/theme/src/cli/commands/theme/dev.ts @@ -11,6 +11,7 @@ import {Theme} from '@shopify/cli-kit/node/themes/types' import {recordEvent} from '@shopify/cli-kit/node/analytics' import {AdminSession} from '@shopify/cli-kit/node/session' import {InferredFlags} from '@oclif/core/interfaces' + import type {ErrorOverlayMode, LiveReload} from '../../utilities/theme-environment/types.js' type DevFlags = InferredFlags diff --git a/packages/theme/src/cli/commands/theme/info.ts b/packages/theme/src/cli/commands/theme/info.ts index 56a36833fa3..41f042984df 100644 --- a/packages/theme/src/cli/commands/theme/info.ts +++ b/packages/theme/src/cli/commands/theme/info.ts @@ -1,6 +1,6 @@ -import {themeFlags} from '../../flags.js' -import {fetchThemeInfo, fetchDevInfo, formatThemeInfo} from '../../services/info.js' import ThemeCommand from '../../utilities/theme-command.js' +import {fetchThemeInfo, fetchDevInfo, formatThemeInfo} from '../../services/info.js' +import {themeFlags} from '../../flags.js' import {Flags} from '@oclif/core' import {AdminSession} from '@shopify/cli-kit/node/session' import {AbortError} from '@shopify/cli-kit/node/error' diff --git a/packages/theme/src/cli/commands/theme/init.ts b/packages/theme/src/cli/commands/theme/init.ts index 51dd74c6f19..f04fd9d2016 100644 --- a/packages/theme/src/cli/commands/theme/init.ts +++ b/packages/theme/src/cli/commands/theme/init.ts @@ -1,5 +1,3 @@ -import {themeFlags} from '../../flags.js' -import ThemeCommand from '../../utilities/theme-command.js' import { cloneRepoAndCheckoutLatestTag, cloneRepo, @@ -7,6 +5,8 @@ import { SKELETON_THEME_URL, promptAIInstruction, } from '../../services/init.js' +import ThemeCommand from '../../utilities/theme-command.js' +import {themeFlags} from '../../flags.js' import {Args, Flags} from '@oclif/core' import {globalFlags} from '@shopify/cli-kit/node/cli' import {generateRandomNameForSubdirectory} from '@shopify/cli-kit/node/fs' diff --git a/packages/theme/src/cli/commands/theme/open.ts b/packages/theme/src/cli/commands/theme/open.ts index 67f73bc9f4b..3d3b5cd4f19 100644 --- a/packages/theme/src/cli/commands/theme/open.ts +++ b/packages/theme/src/cli/commands/theme/open.ts @@ -1,6 +1,6 @@ -import ThemeCommand, {RequiredFlags} from '../../utilities/theme-command.js' -import {themeFlags} from '../../flags.js' import {open} from '../../services/open.js' +import {themeFlags} from '../../flags.js' +import ThemeCommand, {RequiredFlags} from '../../utilities/theme-command.js' import {Flags} from '@oclif/core' import {globalFlags} from '@shopify/cli-kit/node/cli' import {AdminSession} from '@shopify/cli-kit/node/session' diff --git a/packages/theme/src/cli/commands/theme/publish.ts b/packages/theme/src/cli/commands/theme/publish.ts index c55a94725a0..dc4c5f89e82 100644 --- a/packages/theme/src/cli/commands/theme/publish.ts +++ b/packages/theme/src/cli/commands/theme/publish.ts @@ -1,6 +1,6 @@ -import ThemeCommand from '../../utilities/theme-command.js' -import {themeFlags} from '../../flags.js' import {publish} from '../../services/publish.js' +import {themeFlags} from '../../flags.js' +import ThemeCommand from '../../utilities/theme-command.js' import {Flags} from '@oclif/core' import {globalFlags} from '@shopify/cli-kit/node/cli' import {OutputFlags} from '@oclif/core/interfaces' diff --git a/packages/theme/src/cli/commands/theme/pull.ts b/packages/theme/src/cli/commands/theme/pull.ts index 77e853ded10..960709e6e32 100644 --- a/packages/theme/src/cli/commands/theme/pull.ts +++ b/packages/theme/src/cli/commands/theme/pull.ts @@ -7,6 +7,7 @@ import {recordTiming} from '@shopify/cli-kit/node/analytics' import {InferredFlags} from '@oclif/core/interfaces' import {AdminSession} from '@shopify/cli-kit/node/session' import {ArgOutput} from '@shopify/cli-kit/node/base-command' + import {Writable} from 'stream' type PullFlags = InferredFlags diff --git a/packages/theme/src/cli/commands/theme/push.ts b/packages/theme/src/cli/commands/theme/push.ts index ea275cd7a95..cbeebbc1d6b 100644 --- a/packages/theme/src/cli/commands/theme/push.ts +++ b/packages/theme/src/cli/commands/theme/push.ts @@ -7,6 +7,7 @@ import {recordTiming} from '@shopify/cli-kit/node/analytics' import {AdminSession} from '@shopify/cli-kit/node/session' import {InferredFlags} from '@oclif/core/interfaces' import {ArgOutput} from '@shopify/cli-kit/node/base-command' + import {Writable} from 'stream' type PushFlags = InferredFlags diff --git a/packages/theme/src/cli/commands/theme/share.ts b/packages/theme/src/cli/commands/theme/share.ts index 49af1a76be0..380abec0a3a 100644 --- a/packages/theme/src/cli/commands/theme/share.ts +++ b/packages/theme/src/cli/commands/theme/share.ts @@ -8,6 +8,7 @@ import {recordTiming} from '@shopify/cli-kit/node/analytics' import {InferredFlags} from '@oclif/core/interfaces' import {AdminSession} from '@shopify/cli-kit/node/session' import {ArgOutput} from '@shopify/cli-kit/node/base-command' + import {Writable} from 'stream' type ShareFlags = InferredFlags diff --git a/packages/theme/src/cli/flags.test.ts b/packages/theme/src/cli/flags.test.ts index fc9c1be8d86..a05754f5d57 100644 --- a/packages/theme/src/cli/flags.test.ts +++ b/packages/theme/src/cli/flags.test.ts @@ -10,7 +10,7 @@ class MockCommand extends Command { ...themeFlags, } - async run(): Promise<{[flag: string]: unknown}> { + async run(): Promise> { const {flags} = await this.parse(MockCommand) return flags } diff --git a/packages/theme/src/cli/services/check.ts b/packages/theme/src/cli/services/check.ts index 210f5177599..3944b5467eb 100644 --- a/packages/theme/src/cli/services/check.ts +++ b/packages/theme/src/cli/services/check.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ import {fileExists, readFileSync, writeFile} from '@shopify/cli-kit/node/fs' import {outputResult, outputInfo, outputSuccess} from '@shopify/cli-kit/node/output' import {joinPath} from '@shopify/cli-kit/node/path' @@ -15,9 +14,7 @@ import { } from '@shopify/theme-check-node' import YAML from 'yaml' -interface OffenseMap { - [check: string]: Offense[] -} +type OffenseMap = Record interface TransformedOffense { check: string @@ -317,7 +314,7 @@ export async function outputActiveChecks(root: string, configPath?: string, envi const checkCodes = Object.keys(settings) - const checksList = checkCodes.reduce((acc: {[key: string]: unknown}, checkCode: string) => { + const checksList = checkCodes.reduce((acc: Record, checkCode: string) => { const {severity, enabled, ...additional} = settings[checkCode]! if (!enabled) { return acc diff --git a/packages/theme/src/cli/services/console.test.ts b/packages/theme/src/cli/services/console.test.ts index bb341ddcaa5..2a87309746c 100644 --- a/packages/theme/src/cli/services/console.test.ts +++ b/packages/theme/src/cli/services/console.test.ts @@ -1,9 +1,9 @@ import {ensureReplEnv, initializeRepl} from './console.js' +import {ensureValidPassword} from '../utilities/theme-environment/storefront-password-prompt.js' import { isStorefrontPasswordCorrect, isStorefrontPasswordProtected, } from '../utilities/theme-environment/storefront-session.js' -import {ensureValidPassword} from '../utilities/theme-environment/storefront-password-prompt.js' import {beforeEach, describe, expect, test, vi} from 'vitest' import {AdminSession} from '@shopify/cli-kit/node/session' import {AbortError} from '@shopify/cli-kit/node/error' diff --git a/packages/theme/src/cli/services/delete.ts b/packages/theme/src/cli/services/delete.ts index 3bdd1287c8b..dc86cb21e61 100644 --- a/packages/theme/src/cli/services/delete.ts +++ b/packages/theme/src/cli/services/delete.ts @@ -1,7 +1,7 @@ import {removeDevelopmentTheme} from './local-storage.js' -import {findOrSelectTheme, findThemes} from '../utilities/theme-selector.js' -import {themeComponent, themesComponent} from '../utilities/theme-ui.js' import {DevelopmentThemeManager} from '../utilities/development-theme-manager.js' +import {themeComponent, themesComponent} from '../utilities/theme-ui.js' +import {findOrSelectTheme, findThemes} from '../utilities/theme-selector.js' import {themeDelete} from '@shopify/cli-kit/node/themes/api' import {AdminSession} from '@shopify/cli-kit/node/session' import { diff --git a/packages/theme/src/cli/services/dev.ts b/packages/theme/src/cli/services/dev.ts index 36605935f35..47ad2a174a7 100644 --- a/packages/theme/src/cli/services/dev.ts +++ b/packages/theme/src/cli/services/dev.ts @@ -15,6 +15,7 @@ import {AbortError} from '@shopify/cli-kit/node/error' import {openURL} from '@shopify/cli-kit/node/system' import {debounce} from '@shopify/cli-kit/common/function' import chalk from '@shopify/cli-kit/node/colors' + import readline from 'readline' const DEFAULT_HOST = '127.0.0.1' diff --git a/packages/theme/src/cli/services/duplicate.test.ts b/packages/theme/src/cli/services/duplicate.test.ts index 9072f03c757..99253fcbbba 100644 --- a/packages/theme/src/cli/services/duplicate.test.ts +++ b/packages/theme/src/cli/services/duplicate.test.ts @@ -1,8 +1,8 @@ // packages/theme/src/cli/services/duplicate.test.ts import {duplicate} from './duplicate.js' -import {findThemeById, findOrSelectTheme} from '../utilities/theme-selector.js' -import {themeComponent} from '../utilities/theme-ui.js' import {configureCLIEnvironment} from '../utilities/cli-config.js' +import {themeComponent} from '../utilities/theme-ui.js' +import {findThemeById, findOrSelectTheme} from '../utilities/theme-selector.js' import {themeDuplicate} from '@shopify/cli-kit/node/themes/api' import {renderConfirmationPrompt, renderError, renderSuccess} from '@shopify/cli-kit/node/ui' import {outputResult} from '@shopify/cli-kit/node/output' diff --git a/packages/theme/src/cli/services/duplicate.ts b/packages/theme/src/cli/services/duplicate.ts index 98a786f4315..496a27c7356 100644 --- a/packages/theme/src/cli/services/duplicate.ts +++ b/packages/theme/src/cli/services/duplicate.ts @@ -1,6 +1,6 @@ -import {themeComponent} from '../utilities/theme-ui.js' -import {configureCLIEnvironment} from '../utilities/cli-config.js' import {findOrSelectTheme, findThemeById} from '../utilities/theme-selector.js' +import {configureCLIEnvironment} from '../utilities/cli-config.js' +import {themeComponent} from '../utilities/theme-ui.js' import {renderConfirmationPrompt, renderError, renderSuccess} from '@shopify/cli-kit/node/ui' import {AdminSession} from '@shopify/cli-kit/node/session' import {outputResult} from '@shopify/cli-kit/node/output' diff --git a/packages/theme/src/cli/services/info.test.ts b/packages/theme/src/cli/services/info.test.ts index f7f95b1bc6e..cdecdd5f3d3 100644 --- a/packages/theme/src/cli/services/info.test.ts +++ b/packages/theme/src/cli/services/info.test.ts @@ -1,6 +1,6 @@ import {themeInfoJSON, fetchThemeInfo} from './info.js' -import {findOrSelectTheme} from '../utilities/theme-selector.js' import {DevelopmentThemeManager} from '../utilities/development-theme-manager.js' +import {findOrSelectTheme} from '../utilities/theme-selector.js' import {themePreviewUrl, themeEditorUrl} from '@shopify/cli-kit/node/themes/urls' import {Theme} from '@shopify/cli-kit/node/themes/types' import {describe, vi, test, expect} from 'vitest' diff --git a/packages/theme/src/cli/services/info.ts b/packages/theme/src/cli/services/info.ts index ab7c752cc7d..e61c265f787 100644 --- a/packages/theme/src/cli/services/info.ts +++ b/packages/theme/src/cli/services/info.ts @@ -1,6 +1,6 @@ import {getDevelopmentTheme, getThemeStore} from './local-storage.js' -import {findOrSelectTheme} from '../utilities/theme-selector.js' import {DevelopmentThemeManager} from '../utilities/development-theme-manager.js' +import {findOrSelectTheme} from '../utilities/theme-selector.js' import {platformAndArch} from '@shopify/cli-kit/node/os' import {themeEditorUrl, themePreviewUrl} from '@shopify/cli-kit/node/themes/urls' import {Theme} from '@shopify/cli-kit/node/themes/types' diff --git a/packages/theme/src/cli/services/init.test.ts b/packages/theme/src/cli/services/init.test.ts index 41254efed68..eb79893e22f 100644 --- a/packages/theme/src/cli/services/init.test.ts +++ b/packages/theme/src/cli/services/init.test.ts @@ -15,7 +15,7 @@ vi.mock('@shopify/cli-kit/node/fs', async () => { writeFile: vi.fn(), symlink: vi.fn(), inTemporaryDirectory: vi.fn(async (callback) => { - // eslint-disable-next-line node/no-callback-literal + // eslint-disable-next-line n/no-callback-literal return callback('/tmp') }), } diff --git a/packages/theme/src/cli/services/list.test.ts b/packages/theme/src/cli/services/list.test.ts index 87ba5b4fa33..3d2f2ffe38a 100644 --- a/packages/theme/src/cli/services/list.test.ts +++ b/packages/theme/src/cli/services/list.test.ts @@ -1,5 +1,5 @@ -import {list} from './list.js' import {getDevelopmentTheme} from './local-storage.js' +import {list} from './list.js' import {fetchStoreThemes} from '../utilities/theme-selector/fetch.js' import {Theme} from '@shopify/cli-kit/node/themes/types' import {renderInfo} from '@shopify/cli-kit/node/ui' diff --git a/packages/theme/src/cli/services/list.ts b/packages/theme/src/cli/services/list.ts index bd9809ec7d3..3fe3a94b607 100644 --- a/packages/theme/src/cli/services/list.ts +++ b/packages/theme/src/cli/services/list.ts @@ -1,6 +1,6 @@ import {getDevelopmentTheme} from './local-storage.js' -import {ALLOWED_ROLES, fetchStoreThemes, Role} from '../utilities/theme-selector/fetch.js' import {Filter, FilterProps, filterThemes} from '../utilities/theme-selector/filter.js' +import {ALLOWED_ROLES, fetchStoreThemes, Role} from '../utilities/theme-selector/fetch.js' import {InlineToken, renderInfo} from '@shopify/cli-kit/node/ui' import {AdminSession} from '@shopify/cli-kit/node/session' import {getHostTheme} from '@shopify/cli-kit/node/themes/conf' diff --git a/packages/theme/src/cli/services/local-storage.test.ts b/packages/theme/src/cli/services/local-storage.test.ts index 63f06938187..10468528e67 100644 --- a/packages/theme/src/cli/services/local-storage.test.ts +++ b/packages/theme/src/cli/services/local-storage.test.ts @@ -84,7 +84,7 @@ describe('local-storage', () => { const storage = new LocalStorage({cwd}) setThemeStore('storage-store.myshopify.com', storage) - const results: {[key: string]: string | undefined} = {} + const results: Record = {} await Promise.all([ useThemeStoreContext('store1.myshopify.com', async () => { diff --git a/packages/theme/src/cli/services/local-storage.ts b/packages/theme/src/cli/services/local-storage.ts index 6ad8824a9ef..83785b4fd92 100644 --- a/packages/theme/src/cli/services/local-storage.ts +++ b/packages/theme/src/cli/services/local-storage.ts @@ -9,13 +9,9 @@ export interface ThemeLocalStorageSchema { themeStore: string } -interface DevelopmentThemeLocalStorageSchema { - [themeStore: string]: DevelopmentThemeId -} +type DevelopmentThemeLocalStorageSchema = Record -interface ThemeStorePasswordSchema { - [themeStore: string]: string -} +type ThemeStorePasswordSchema = Record /** Preserves the theme store a command is acting on during multi environment execution */ const themeStoreContext = new AsyncLocalStorage<{store: string}>() diff --git a/packages/theme/src/cli/services/metafields-pull.test.ts b/packages/theme/src/cli/services/metafields-pull.test.ts index d0d9aefbecf..ad449c083b2 100644 --- a/packages/theme/src/cli/services/metafields-pull.test.ts +++ b/packages/theme/src/cli/services/metafields-pull.test.ts @@ -1,8 +1,8 @@ -import {setThemeStore} from './local-storage.js' import {metafieldsPull} from './metafields-pull.js' -import {ensureThemeStore} from '../utilities/theme-store.js' -import {hasRequiredThemeDirectories} from '../utilities/theme-fs.js' +import {setThemeStore} from './local-storage.js' import {ensureDirectoryConfirmed} from '../utilities/theme-ui.js' +import {hasRequiredThemeDirectories} from '../utilities/theme-fs.js' +import {ensureThemeStore} from '../utilities/theme-store.js' import {AdminSession, ensureAuthenticatedThemes} from '@shopify/cli-kit/node/session' import {mockAndCaptureOutput} from '@shopify/cli-kit/node/testing/output' import {metafieldDefinitionsByOwnerType} from '@shopify/cli-kit/node/themes/api' diff --git a/packages/theme/src/cli/services/metafields-pull.ts b/packages/theme/src/cli/services/metafields-pull.ts index d6e296fe512..f0bdf77feae 100644 --- a/packages/theme/src/cli/services/metafields-pull.ts +++ b/packages/theme/src/cli/services/metafields-pull.ts @@ -1,7 +1,7 @@ -import {hasRequiredThemeDirectories} from '../utilities/theme-fs.js' -import {ensureDirectoryConfirmed} from '../utilities/theme-ui.js' -import {ensureThemeStore} from '../utilities/theme-store.js' import {configureCLIEnvironment} from '../utilities/cli-config.js' +import {ensureThemeStore} from '../utilities/theme-store.js' +import {ensureDirectoryConfirmed} from '../utilities/theme-ui.js' +import {hasRequiredThemeDirectories} from '../utilities/theme-fs.js' import {AdminSession, ensureAuthenticatedThemes} from '@shopify/cli-kit/node/session' import {cwd, joinPath} from '@shopify/cli-kit/node/path' import {metafieldDefinitionsByOwnerType} from '@shopify/cli-kit/node/themes/api' diff --git a/packages/theme/src/cli/services/open.test.ts b/packages/theme/src/cli/services/open.test.ts index a6867503dc0..92beee7b16f 100644 --- a/packages/theme/src/cli/services/open.test.ts +++ b/packages/theme/src/cli/services/open.test.ts @@ -1,6 +1,6 @@ import {open} from './open.js' -import {findOrSelectTheme} from '../utilities/theme-selector.js' import {DevelopmentThemeManager} from '../utilities/development-theme-manager.js' +import {findOrSelectTheme} from '../utilities/theme-selector.js' import {Theme} from '@shopify/cli-kit/node/themes/types' import {test, describe, expect, vi, beforeEach} from 'vitest' import {openURL} from '@shopify/cli-kit/node/system' diff --git a/packages/theme/src/cli/services/open.ts b/packages/theme/src/cli/services/open.ts index 741315c85d9..dfa732060f6 100644 --- a/packages/theme/src/cli/services/open.ts +++ b/packages/theme/src/cli/services/open.ts @@ -1,6 +1,6 @@ -import {findOrSelectTheme} from '../utilities/theme-selector.js' -import {themeComponent} from '../utilities/theme-ui.js' import {DevelopmentThemeManager} from '../utilities/development-theme-manager.js' +import {themeComponent} from '../utilities/theme-ui.js' +import {findOrSelectTheme} from '../utilities/theme-selector.js' import {themeEditorUrl, themePreviewUrl} from '@shopify/cli-kit/node/themes/urls' import {openURL} from '@shopify/cli-kit/node/system' import {renderInfo} from '@shopify/cli-kit/node/ui' diff --git a/packages/theme/src/cli/services/package.test.ts b/packages/theme/src/cli/services/package.test.ts index b2250a256b6..04a07462ef4 100644 --- a/packages/theme/src/cli/services/package.test.ts +++ b/packages/theme/src/cli/services/package.test.ts @@ -189,7 +189,7 @@ async function createFiles(structure: string[], directory: string) { async function readArchiveFiles(zipPath: string) { await expect(fileExists(zipPath)).resolves.toBeTruthy() - // eslint-disable-next-line @babel/new-cap + // eslint-disable-next-line new-cap const archive = new StreamZip.async({file: zipPath}) const entries = await archive.entries() const archiveEntries = Object.values(entries) diff --git a/packages/theme/src/cli/services/profile.test.ts b/packages/theme/src/cli/services/profile.test.ts index fdf86ce1af1..9cba4303ebc 100644 --- a/packages/theme/src/cli/services/profile.test.ts +++ b/packages/theme/src/cli/services/profile.test.ts @@ -5,6 +5,7 @@ import {openURL} from '@shopify/cli-kit/node/system' import {vi, describe, expect, beforeEach, test} from 'vitest' import {outputResult} from '@shopify/cli-kit/node/output' import {AbortError} from '@shopify/cli-kit/node/error' + import {readFile} from 'fs/promises' vi.mock('@shopify/cli-kit/node/session') diff --git a/packages/theme/src/cli/services/profile.ts b/packages/theme/src/cli/services/profile.ts index 5aa13179c8a..c246a26a858 100644 --- a/packages/theme/src/cli/services/profile.ts +++ b/packages/theme/src/cli/services/profile.ts @@ -1,8 +1,8 @@ -import {isStorefrontPasswordProtected} from '../utilities/theme-environment/storefront-session.js' -import {ensureValidPassword} from '../utilities/theme-environment/storefront-password-prompt.js' -import {fetchDevServerSession} from '../utilities/theme-environment/dev-server-session.js' -import {render} from '../utilities/theme-environment/storefront-renderer.js' import {resolveAssetPath} from '../utilities/asset-path.js' +import {render} from '../utilities/theme-environment/storefront-renderer.js' +import {fetchDevServerSession} from '../utilities/theme-environment/dev-server-session.js' +import {ensureValidPassword} from '../utilities/theme-environment/storefront-password-prompt.js' +import {isStorefrontPasswordProtected} from '../utilities/theme-environment/storefront-session.js' import {openURL} from '@shopify/cli-kit/node/system' import {joinPath} from '@shopify/cli-kit/node/path' import {AdminSession} from '@shopify/cli-kit/node/session' diff --git a/packages/theme/src/cli/services/publish.ts b/packages/theme/src/cli/services/publish.ts index 7e2da4c1118..008976ce45f 100644 --- a/packages/theme/src/cli/services/publish.ts +++ b/packages/theme/src/cli/services/publish.ts @@ -1,5 +1,5 @@ -import {findOrSelectTheme} from '../utilities/theme-selector.js' import {themeComponent} from '../utilities/theme-ui.js' +import {findOrSelectTheme} from '../utilities/theme-selector.js' import {themePublish} from '@shopify/cli-kit/node/themes/api' import {themePreviewUrl} from '@shopify/cli-kit/node/themes/urls' import {Theme} from '@shopify/cli-kit/node/themes/types' diff --git a/packages/theme/src/cli/services/pull.test.ts b/packages/theme/src/cli/services/pull.test.ts index 24fec497628..ee73344e613 100644 --- a/packages/theme/src/cli/services/pull.test.ts +++ b/packages/theme/src/cli/services/pull.test.ts @@ -7,6 +7,7 @@ import {hasRequiredThemeDirectories, mountThemeFileSystem} from '../utilities/th import {fakeThemeFileSystem} from '../utilities/theme-fs/theme-fs-mock-factory.js' import {downloadTheme} from '../utilities/theme-downloader.js' import {themeComponent, ensureDirectoryConfirmed} from '../utilities/theme-ui.js' + import {mkTmpDir, rmdir} from '@shopify/cli-kit/node/fs' import {buildTheme} from '@shopify/cli-kit/node/themes/factories' import {ensureAuthenticatedThemes} from '@shopify/cli-kit/node/session' @@ -14,6 +15,7 @@ import {fetchChecksums} from '@shopify/cli-kit/node/themes/api' import {insideGitDirectory, isClean} from '@shopify/cli-kit/node/git' import {test, describe, expect, vi, beforeEach} from 'vitest' import {dirname, joinPath} from '@shopify/cli-kit/node/path' + import {fileURLToPath} from 'node:url' vi.mock('../utilities/theme-selector.js') diff --git a/packages/theme/src/cli/services/pull.ts b/packages/theme/src/cli/services/pull.ts index 677fbb5355e..85e00d135a9 100644 --- a/packages/theme/src/cli/services/pull.ts +++ b/packages/theme/src/cli/services/pull.ts @@ -14,6 +14,7 @@ import {glob} from '@shopify/cli-kit/node/fs' import {cwd} from '@shopify/cli-kit/node/path' import {insideGitDirectory, isClean} from '@shopify/cli-kit/node/git' import {recordTiming} from '@shopify/cli-kit/node/analytics' + import {Writable} from 'stream' interface PullOptions { diff --git a/packages/theme/src/cli/services/push.test.ts b/packages/theme/src/cli/services/push.test.ts index 2d3d4b27068..5991dd00376 100644 --- a/packages/theme/src/cli/services/push.test.ts +++ b/packages/theme/src/cli/services/push.test.ts @@ -1,11 +1,11 @@ -import {createOrSelectTheme, push, PushFlags} from './push.js' -import {PullFlags} from './pull.js' import {setDevelopmentTheme} from './local-storage.js' -import {uploadTheme} from '../utilities/theme-uploader.js' -import {ensureThemeStore} from '../utilities/theme-store.js' -import {findOrSelectTheme} from '../utilities/theme-selector.js' -import {runThemeCheck} from '../commands/theme/check.js' +import {PullFlags} from './pull.js' +import {createOrSelectTheme, push, PushFlags} from './push.js' import {mountThemeFileSystem} from '../utilities/theme-fs.js' +import {runThemeCheck} from '../commands/theme/check.js' +import {findOrSelectTheme} from '../utilities/theme-selector.js' +import {ensureThemeStore} from '../utilities/theme-store.js' +import {uploadTheme} from '../utilities/theme-uploader.js' import {buildTheme} from '@shopify/cli-kit/node/themes/factories' import {test, describe, vi, expect, beforeEach} from 'vitest' import {themeCreate, fetchTheme, themePublish} from '@shopify/cli-kit/node/themes/api' diff --git a/packages/theme/src/cli/services/push.ts b/packages/theme/src/cli/services/push.ts index fde42ac60cd..863050b70a7 100644 --- a/packages/theme/src/cli/services/push.ts +++ b/packages/theme/src/cli/services/push.ts @@ -26,6 +26,7 @@ import {LIVE_THEME_ROLE, promptThemeName, UNPUBLISHED_THEME_ROLE} from '@shopify import {AbortError} from '@shopify/cli-kit/node/error' import {Severity} from '@shopify/theme-check-node' import {recordError, recordTiming} from '@shopify/cli-kit/node/analytics' + import {Writable} from 'stream' interface PushOptions { @@ -299,7 +300,7 @@ function handleJsonOutput(theme: Theme, session: AdminSession, results: Map = {} for (const [key, result] of results.entries()) { if (!result.success && result.errors?.asset) { errors[key] = result.errors.asset diff --git a/packages/theme/src/cli/services/rename.ts b/packages/theme/src/cli/services/rename.ts index c45cc4ce16c..51052756cd7 100644 --- a/packages/theme/src/cli/services/rename.ts +++ b/packages/theme/src/cli/services/rename.ts @@ -1,5 +1,5 @@ -import {findOrSelectTheme} from '../utilities/theme-selector.js' import {themeComponent} from '../utilities/theme-ui.js' +import {findOrSelectTheme} from '../utilities/theme-selector.js' import {themeUpdate} from '@shopify/cli-kit/node/themes/api' import {AdminSession} from '@shopify/cli-kit/node/session' import {renderSuccess} from '@shopify/cli-kit/node/ui' diff --git a/packages/theme/src/cli/utilities/asset-checksum.test.ts b/packages/theme/src/cli/utilities/asset-checksum.test.ts index a6fc14791b0..aa056b876ea 100644 --- a/packages/theme/src/cli/utilities/asset-checksum.test.ts +++ b/packages/theme/src/cli/utilities/asset-checksum.test.ts @@ -2,6 +2,7 @@ import {calculateChecksum, rejectGeneratedStaticAssets} from './asset-checksum.j import {readThemeFile} from './theme-fs.js' import {describe, expect, test} from 'vitest' import {joinPath, dirname} from '@shopify/cli-kit/node/path' + import {fileURLToPath} from 'node:url' describe('asset-checksum', () => { diff --git a/packages/theme/src/cli/utilities/cli-config.ts b/packages/theme/src/cli/utilities/cli-config.ts index a803eb6617d..88e811a9a88 100644 --- a/packages/theme/src/cli/utilities/cli-config.ts +++ b/packages/theme/src/cli/utilities/cli-config.ts @@ -14,7 +14,6 @@ interface CLIConfigOptions { */ export function configureCLIEnvironment(options: CLIConfigOptions): void { if (options.verbose) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion process.env[globalFlags.verbose.env!] = 'true' } diff --git a/packages/theme/src/cli/utilities/development-theme-manager.test.ts b/packages/theme/src/cli/utilities/development-theme-manager.test.ts index 3914b350491..b6a029249ce 100644 --- a/packages/theme/src/cli/utilities/development-theme-manager.test.ts +++ b/packages/theme/src/cli/utilities/development-theme-manager.test.ts @@ -19,7 +19,7 @@ describe('DevelopmentThemeManager', () => { const existingId = 200 const newThemeId = 201 const onlyLocallyExistingId = 404 - const themeTestDatabase: {[id: number]: Theme | undefined} = { + const themeTestDatabase: Record = { [existingId]: {id: existingId} as Theme, [onlyLocallyExistingId]: undefined, } diff --git a/packages/theme/src/cli/utilities/log-request-line.test.ts b/packages/theme/src/cli/utilities/log-request-line.test.ts index fe60018c59f..a69f63a9526 100644 --- a/packages/theme/src/cli/utilities/log-request-line.test.ts +++ b/packages/theme/src/cli/utilities/log-request-line.test.ts @@ -2,6 +2,7 @@ import {shouldLog} from './log-request-line.js' import {createEvent} from 'h3' import {describe, test, expect} from 'vitest' import {IncomingMessage, ServerResponse} from 'node:http' + import {Socket} from 'node:net' function createH3Event(method = 'GET', path = '/', headers = {}) { diff --git a/packages/theme/src/cli/utilities/log-request-line.ts b/packages/theme/src/cli/utilities/log-request-line.ts index 4c0f35d6e96..3373c2cd6c8 100644 --- a/packages/theme/src/cli/utilities/log-request-line.ts +++ b/packages/theme/src/cli/utilities/log-request-line.ts @@ -1,9 +1,9 @@ -/* eslint-disable @typescript-eslint/unbound-method */ import {EXTENSION_CDN_PREFIX, VANITY_CDN_PREFIX} from './theme-environment/proxy.js' import {timestampDateFormat} from '../constants.js' import {outputContent, outputInfo, outputToken} from '@shopify/cli-kit/node/output' import {H3Event} from 'h3' import {extname} from '@shopify/cli-kit/node/path' + import type {DevServerContext} from './theme-environment/types.js' const CHARACTER_TRUNCATION_LIMIT = 80 diff --git a/packages/theme/src/cli/utilities/notifier.test.ts b/packages/theme/src/cli/utilities/notifier.test.ts index a055e450da1..e3ad842a599 100644 --- a/packages/theme/src/cli/utilities/notifier.test.ts +++ b/packages/theme/src/cli/utilities/notifier.test.ts @@ -1,6 +1,7 @@ import {Notifier} from './notifier.js' import {vi, describe, expect, test} from 'vitest' import {outputWarn} from '@shopify/cli-kit/node/output' + import fs from 'fs/promises' vi.mock('fs/promises') diff --git a/packages/theme/src/cli/utilities/repl/evaluator.test.ts b/packages/theme/src/cli/utilities/repl/evaluator.test.ts index d0e745348fc..6eac7e8a1b9 100644 --- a/packages/theme/src/cli/utilities/repl/evaluator.test.ts +++ b/packages/theme/src/cli/utilities/repl/evaluator.test.ts @@ -1,6 +1,6 @@ import {evaluate, EvaluationConfig} from './evaluator.js' -import {DevServerSession} from '../theme-environment/types.js' import {render} from '../theme-environment/storefront-renderer.js' +import {DevServerSession} from '../theme-environment/types.js' import {beforeEach, describe, expect, test, vi} from 'vitest' import {outputContent, outputInfo, outputToken} from '@shopify/cli-kit/node/output' import {AbortError} from '@shopify/cli-kit/node/error' @@ -219,7 +219,7 @@ function createMockResponse({ }: { status: number text: string - headers?: {[key: string]: string} + headers?: Record }) { return { status, diff --git a/packages/theme/src/cli/utilities/repl/repl.test.ts b/packages/theme/src/cli/utilities/repl/repl.test.ts index ebe605ce990..8cc9aea5c76 100644 --- a/packages/theme/src/cli/utilities/repl/repl.test.ts +++ b/packages/theme/src/cli/utilities/repl/repl.test.ts @@ -4,6 +4,7 @@ import {presentValue} from './presenter.js' import {DevServerSession} from '../theme-environment/types.js' import {describe, expect, test, vi} from 'vitest' import {outputInfo} from '@shopify/cli-kit/node/output' + import {createInterface} from 'readline' vi.mock('@shopify/cli-kit/node/output') diff --git a/packages/theme/src/cli/utilities/repl/repl.ts b/packages/theme/src/cli/utilities/repl/repl.ts index d8ab76a370b..090a48fd9c3 100644 --- a/packages/theme/src/cli/utilities/repl/repl.ts +++ b/packages/theme/src/cli/utilities/repl/repl.ts @@ -3,6 +3,7 @@ import {presentValue} from './presenter.js' import {DevServerSession} from '../theme-environment/types.js' import {AbortError} from '@shopify/cli-kit/node/error' import {outputDebug, outputInfo} from '@shopify/cli-kit/node/output' + import {createInterface, Interface} from 'readline' export const DELIMITER_WARNING = diff --git a/packages/theme/src/cli/utilities/theme-command.test.ts b/packages/theme/src/cli/utilities/theme-command.test.ts index 15a71e6aae9..30dbb1f5c84 100644 --- a/packages/theme/src/cli/utilities/theme-command.test.ts +++ b/packages/theme/src/cli/utilities/theme-command.test.ts @@ -8,6 +8,7 @@ import {fileExistsSync} from '@shopify/cli-kit/node/fs' import {AbortError} from '@shopify/cli-kit/node/error' import {resolvePath} from '@shopify/cli-kit/node/path' import {renderConcurrent, renderConfirmationPrompt, renderError, renderWarning} from '@shopify/cli-kit/node/ui' + import type {Writable} from 'stream' vi.mock('@shopify/cli-kit/node/session') diff --git a/packages/theme/src/cli/utilities/theme-command.ts b/packages/theme/src/cli/utilities/theme-command.ts index 52dc6171993..e5c8cb6ed53 100644 --- a/packages/theme/src/cli/utilities/theme-command.ts +++ b/packages/theme/src/cli/utilities/theme-command.ts @@ -1,6 +1,7 @@ import {ensureThemeStore} from './theme-store.js' import {configurationFileName} from '../constants.js' import {useThemeStoreContext} from '../services/local-storage.js' + import {hashString} from '@shopify/cli-kit/node/crypto' import {Input} from '@oclif/core/interfaces' import Command, {ArgOutput, FlagOutput, noDefaultsOptions} from '@shopify/cli-kit/node/base-command' @@ -20,11 +21,10 @@ import {addPublicMetadata, addSensitiveMetadata} from '@shopify/cli-kit/node/met import {cwd, joinPath, resolvePath} from '@shopify/cli-kit/node/path' import {fileExistsSync} from '@shopify/cli-kit/node/fs' import {normalizeStoreFqdn} from '@shopify/cli-kit/node/context/fqdn' + import type {Writable} from 'stream' -interface FlagValues { - [key: string]: boolean | string | string[] | number | undefined -} +type FlagValues = Record interface ValidEnvironment { environment: EnvironmentName flags: FlagValues diff --git a/packages/theme/src/cli/utilities/theme-downloader.test.ts b/packages/theme/src/cli/utilities/theme-downloader.test.ts index bde58d971d6..530b7434f88 100644 --- a/packages/theme/src/cli/utilities/theme-downloader.test.ts +++ b/packages/theme/src/cli/utilities/theme-downloader.test.ts @@ -1,5 +1,5 @@ -import {downloadTheme} from './theme-downloader.js' import {fakeThemeFileSystem} from './theme-fs/theme-fs-mock-factory.js' +import {downloadTheme} from './theme-downloader.js' import {fetchThemeAssets} from '@shopify/cli-kit/node/themes/api' import {Checksum, ThemeAsset} from '@shopify/cli-kit/node/themes/types' import {test, describe, expect, vi} from 'vitest' diff --git a/packages/theme/src/cli/utilities/theme-downloader.ts b/packages/theme/src/cli/utilities/theme-downloader.ts index fae80deb311..b20dfd824ed 100644 --- a/packages/theme/src/cli/utilities/theme-downloader.ts +++ b/packages/theme/src/cli/utilities/theme-downloader.ts @@ -4,6 +4,7 @@ import {AdminSession} from '@shopify/cli-kit/node/session' import {fetchThemeAssets} from '@shopify/cli-kit/node/themes/api' import {ThemeFileSystem, Theme, Checksum, ThemeAsset} from '@shopify/cli-kit/node/themes/types' import {renderTasks} from '@shopify/cli-kit/node/ui' + import {Writable} from 'stream' interface DownloadOptions { diff --git a/packages/theme/src/cli/utilities/theme-environment/cookies.ts b/packages/theme/src/cli/utilities/theme-environment/cookies.ts index 8888209c04a..c7b5768a6c3 100644 --- a/packages/theme/src/cli/utilities/theme-environment/cookies.ts +++ b/packages/theme/src/cli/utilities/theme-environment/cookies.ts @@ -1,5 +1,5 @@ export function parseCookies(cookies: string) { - const cookiesRecord: {[key: string]: string} = {} + const cookiesRecord: Record = {} cookies.split(';').forEach((cookie) => { const parts = cookie.match(/(.*?)=(.*)$/) ?? [] @@ -15,7 +15,7 @@ export function parseCookies(cookies: string) { return cookiesRecord } -export function serializeCookies(cookies: {[key: string]: string}) { +export function serializeCookies(cookies: Record) { return Object.entries(cookies) .map(([key, value]) => `${key}=${value}`) .join('; ') diff --git a/packages/theme/src/cli/utilities/theme-environment/dev-server-session.test.ts b/packages/theme/src/cli/utilities/theme-environment/dev-server-session.test.ts index ed40429c3df..d9f28dc5961 100644 --- a/packages/theme/src/cli/utilities/theme-environment/dev-server-session.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/dev-server-session.test.ts @@ -1,10 +1,10 @@ +import {getStorefrontSessionCookies, ShopifyEssentialError} from './storefront-session.js' import { abortOnMissingRequiredFile, getStorefrontSessionCookiesWithVerification, initializeDevServerSession, fetchDevServerSession, } from './dev-server-session.js' -import {getStorefrontSessionCookies, ShopifyEssentialError} from './storefront-session.js' import {ensureAuthenticatedStorefront, ensureAuthenticatedThemes} from '@shopify/cli-kit/node/session' import {fetchThemeAssets, themeDelete} from '@shopify/cli-kit/node/themes/api' import {describe, expect, test, vi, beforeEach} from 'vitest' diff --git a/packages/theme/src/cli/utilities/theme-environment/dev-server-session.ts b/packages/theme/src/cli/utilities/theme-environment/dev-server-session.ts index 39911f23eb3..7e2192f3a39 100644 --- a/packages/theme/src/cli/utilities/theme-environment/dev-server-session.ts +++ b/packages/theme/src/cli/utilities/theme-environment/dev-server-session.ts @@ -1,6 +1,6 @@ -import {buildBaseStorefrontUrl} from './storefront-renderer.js' -import {getStorefrontSessionCookies, ShopifyEssentialError} from './storefront-session.js' import {DevServerSession} from './types.js' +import {getStorefrontSessionCookies, ShopifyEssentialError} from './storefront-session.js' +import {buildBaseStorefrontUrl} from './storefront-renderer.js' import {fetchThemeAssets} from '@shopify/cli-kit/node/themes/api' import {AbortError} from '@shopify/cli-kit/node/error' import {outputDebug, outputContent, outputToken} from '@shopify/cli-kit/node/output' @@ -94,7 +94,7 @@ export async function getStorefrontSessionCookiesWithVerification( adminSession: AdminSession, storefrontToken: string, storefrontPassword?: string, -): Promise<{[key: string]: string}> { +): Promise> { try { return await getStorefrontSessionCookies(storeUrl, adminSession.storeFqdn, themeId, storefrontPassword, { 'X-Shopify-Shop': adminSession.storeFqdn, diff --git a/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.test.ts b/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.test.ts index 441e46408d6..3d2905a369b 100644 --- a/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.test.ts @@ -13,11 +13,15 @@ import {fakeThemeFileSystem} from '../../theme-fs/theme-fs-mock-factory.js' import {render} from '../storefront-renderer.js' import {emptyThemeExtFileSystem} from '../../theme-fs-empty.js' import {describe, test, expect, vi, beforeEach} from 'vitest' + import {createEvent} from 'h3' import * as output from '@shopify/cli-kit/node/output' + import {IncomingMessage, ServerResponse} from 'node:http' import {Socket} from 'node:net' + import type {DevServerContext} from '../types.js' + import type {Theme, ThemeFSEventName, ThemeAsset} from '@shopify/cli-kit/node/themes/types' vi.mock('../storefront-renderer.js') @@ -464,7 +468,7 @@ describe('getUpdatedFileParts', () => { // -- Test utilities -- -function createH3Event(url: string, headers?: {[key: string]: string}) { +function createH3Event(url: string, headers?: Record) { const data: string[] = [] const decoder = new TextDecoder() @@ -515,7 +519,6 @@ function createTestContext(options?: {files?: [string, string][]}) { .catch(() => {}) } - // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain const handler = addEventListenerSpy.mock.calls.find(([eventName]) => eventName === event)?.[1]! handler({ diff --git a/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.ts b/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.ts index 60173e5eb7f..4912224f6e1 100644 --- a/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.ts +++ b/packages/theme/src/cli/utilities/theme-environment/hot-reload/server.ts @@ -19,7 +19,9 @@ import {extname, joinPath} from '@shopify/cli-kit/node/path' import {parseJSON} from '@shopify/theme-check-node' import {readFile} from '@shopify/cli-kit/node/fs' import {recordError, recordEvent} from '@shopify/cli-kit/node/analytics' + import EventEmitter from 'node:events' + import type { HotReloadEvent, HotReloadFileEvent, @@ -27,6 +29,7 @@ import type { HotReloadFullEvent, } from '@shopify/theme-hot-reload' import type {Theme, ThemeAsset, ThemeFSEventPayload} from '@shopify/cli-kit/node/themes/types' + import type {DevServerContext} from '../types.js' // --- Section tag content cache --- @@ -45,9 +48,7 @@ export const fileDetailsCache = new Map() /** Store existing section names and types read from JSON files in the project */ const sectionNamesByFile = new Map() -interface SectionGroup { - [key: string]: {type: string} -} +type SectionGroup = Record function saveSectionsFromJson(fileKey: string, content: string) { const maybeJson = parseJSON(content, null, true) @@ -74,7 +75,7 @@ function needsTemplateUpdate(fileKey: string) { * If a route is passed, it will filter out the templates that are not related to the route. */ export function getInMemoryTemplates(ctx: DevServerContext, currentRoute?: string, locale?: string) { - const inMemoryTemplates: {[key: string]: string} = {} + const inMemoryTemplates: Record = {} const jsonTemplateRE = /^templates\/.+\.json$/ const filterTemplate = currentRoute @@ -242,7 +243,7 @@ export function getHotReloadHandler(theme: Theme, ctx: DevServerContext): EventH return } - const replaceTemplates: {[key: string]: string} = {} + const replaceTemplates: Record = {} if (sectionId) { const inMemoryTemplateFiles = ctx.localThemeFileSystem.unsyncedFileKeys diff --git a/packages/theme/src/cli/utilities/theme-environment/html.test.ts b/packages/theme/src/cli/utilities/theme-environment/html.test.ts index fdfedf958c4..1ff7800914e 100644 --- a/packages/theme/src/cli/utilities/theme-environment/html.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/html.test.ts @@ -5,6 +5,7 @@ import {emptyThemeExtFileSystem, emptyThemeFileSystem} from '../theme-fs-empty.j import {createEvent} from 'h3' import {describe, expect, test, vi} from 'vitest' import {Theme} from '@shopify/cli-kit/node/themes/types' + import {IncomingMessage, ServerResponse} from 'node:http' import {Socket} from 'node:net' diff --git a/packages/theme/src/cli/utilities/theme-environment/html.ts b/packages/theme/src/cli/utilities/theme-environment/html.ts index 6bb2f056096..c8a68462ed0 100644 --- a/packages/theme/src/cli/utilities/theme-environment/html.ts +++ b/packages/theme/src/cli/utilities/theme-environment/html.ts @@ -1,16 +1,17 @@ -import {getProxyStorefrontHeaders, patchRenderingResponse, proxyStorefrontRequest} from './proxy.js' -import {getInMemoryTemplates, handleHotReloadScriptInjection} from './hot-reload/server.js' -import {render} from './storefront-renderer.js' import {getErrorPage} from './hot-reload/error-page.js' -import {getExtensionInMemoryTemplates} from '../theme-ext-environment/theme-ext-server.js' -import {logRequestLine} from '../log-request-line.js' +import {render} from './storefront-renderer.js' +import {getInMemoryTemplates, handleHotReloadScriptInjection} from './hot-reload/server.js' +import {getProxyStorefrontHeaders, patchRenderingResponse, proxyStorefrontRequest} from './proxy.js' import {extractFetchErrorInfo} from '../errors.js' +import {logRequestLine} from '../log-request-line.js' +import {getExtensionInMemoryTemplates} from '../theme-ext-environment/theme-ext-server.js' import {defineEventHandler, getCookie, type H3Event, type EventHandler} from 'h3' import {renderError, renderFatalError} from '@shopify/cli-kit/node/ui' import {outputDebug} from '@shopify/cli-kit/node/output' import {AbortError} from '@shopify/cli-kit/node/error' import {recordEvent} from '@shopify/cli-kit/node/analytics' import type {Theme} from '@shopify/cli-kit/node/themes/types' + import type {DevServerContext} from './types.js' /** Tracks the number of consecutive theme ID mismatch redirects */ diff --git a/packages/theme/src/cli/utilities/theme-environment/local-assets.ts b/packages/theme/src/cli/utilities/theme-environment/local-assets.ts index 2c3f676fdc3..0ef0ae490f1 100644 --- a/packages/theme/src/cli/utilities/theme-environment/local-assets.ts +++ b/packages/theme/src/cli/utilities/theme-environment/local-assets.ts @@ -1,6 +1,6 @@ -import {injectCdnProxy} from './proxy.js' -import {parseServerEvent} from './server-utils.js' import {getLiquidTagContent} from './liquid-tag-content.js' +import {parseServerEvent} from './server-utils.js' +import {injectCdnProxy} from './proxy.js' import {lookupMimeType} from '@shopify/cli-kit/node/mimes' import {defineEventHandler, H3Event, serveStatic, setResponseHeader, sendError, createError} from 'h3' import {joinPath} from '@shopify/cli-kit/node/path' @@ -75,7 +75,6 @@ function findLocalFile(event: H3Event, ctx: DevServerContext) { const file = fileSystem.files.get(fileKey) const isUnsynced = fileSystem.unsyncedFileKeys.has(fileKey) - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing if (file || isUnsynced) { return {file, isUnsynced, fileKey} } diff --git a/packages/theme/src/cli/utilities/theme-environment/proxy.test.ts b/packages/theme/src/cli/utilities/theme-environment/proxy.test.ts index dd954934a91..36693898e52 100644 --- a/packages/theme/src/cli/utilities/theme-environment/proxy.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/proxy.test.ts @@ -8,7 +8,9 @@ import { import {describe, test, expect} from 'vitest' import {createEvent} from 'h3' import {IncomingMessage, ServerResponse} from 'node:http' + import {Socket} from 'node:net' + import type {DevServerContext} from './types.js' function createH3Event(method = 'GET', path = '/', headers = {}) { diff --git a/packages/theme/src/cli/utilities/theme-environment/proxy.ts b/packages/theme/src/cli/utilities/theme-environment/proxy.ts index 9f08555eb51..debfc8e6d94 100644 --- a/packages/theme/src/cli/utilities/theme-environment/proxy.ts +++ b/packages/theme/src/cli/utilities/theme-environment/proxy.ts @@ -1,7 +1,7 @@ -/* eslint-disable @typescript-eslint/no-dynamic-delete */ -import {buildCookies} from './storefront-renderer.js' import {cleanHeader, defaultHeaders} from './storefront-utils.js' +import {buildCookies} from './storefront-renderer.js' import {logRequestLine} from '../log-request-line.js' + import {createFetchError, extractFetchErrorInfo} from '../errors.js' import {renderWarning} from '@shopify/cli-kit/node/ui' import {defineEventHandler, getRequestHeaders, getRequestWebStream, getRequestIP, type H3Event} from 'h3' @@ -277,7 +277,7 @@ function patchProxiedResponseHeaders(ctx: DevServerContext, rawResponse: Respons * Filters headers to forward to SFR. */ export function getProxyStorefrontHeaders(event: H3Event) { - const proxyRequestHeaders = getRequestHeaders(event) as {[key: string]: string} + const proxyRequestHeaders = getRequestHeaders(event) as Record for (const headerKey of HOP_BY_HOP_HEADERS) { delete proxyRequestHeaders[headerKey] @@ -319,7 +319,7 @@ export function proxyStorefrontRequest(event: H3Event, ctx: DevServerContext): P const headers = getProxyStorefrontHeaders(event) const body = getRequestWebStream(event) - const baseHeaders: {[key: string]: string} = { + const baseHeaders: Record = { ...headers, ...defaultHeaders(), referer: url.origin, diff --git a/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.test.ts b/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.test.ts index a37cbeb83c5..53ad80b13a9 100644 --- a/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.test.ts @@ -1,6 +1,6 @@ -import {reconcileJsonFiles} from './theme-reconciliation.js' -import {reconcileAndPollThemeEditorChanges} from './remote-theme-watcher.js' import {pollThemeEditorChanges} from './theme-polling.js' +import {reconcileAndPollThemeEditorChanges} from './remote-theme-watcher.js' +import {reconcileJsonFiles} from './theme-reconciliation.js' import {fakeThemeFileSystem} from '../theme-fs/theme-fs-mock-factory.js' import {fetchChecksums} from '@shopify/cli-kit/node/themes/api' import {buildTheme} from '@shopify/cli-kit/node/themes/factories' diff --git a/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.ts b/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.ts index 7e129d20348..7c300586ee3 100644 --- a/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.ts +++ b/packages/theme/src/cli/utilities/theme-environment/remote-theme-watcher.ts @@ -1,5 +1,5 @@ -import {pollThemeEditorChanges} from './theme-polling.js' import {reconcileJsonFiles} from './theme-reconciliation.js' +import {pollThemeEditorChanges} from './theme-polling.js' import {outputDebug} from '@shopify/cli-kit/node/output' import {AdminSession} from '@shopify/cli-kit/node/session' import {Checksum, Theme, ThemeFileSystem} from '@shopify/cli-kit/node/themes/types' diff --git a/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.test.ts b/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.test.ts index d451cfcb55c..952d5b2c1ba 100644 --- a/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.test.ts @@ -7,6 +7,7 @@ import { setStorefrontPassword, } from '../../services/local-storage.js' import {ensureThemeStore} from '../theme-store.js' + import {renderTextPrompt} from '@shopify/cli-kit/node/ui' import {describe, beforeEach, vi, test, expect} from 'vitest' diff --git a/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.ts b/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.ts index 29e8af5ad35..7f176157510 100644 --- a/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.ts +++ b/packages/theme/src/cli/utilities/theme-environment/storefront-password-prompt.ts @@ -7,6 +7,7 @@ import { } from '../../services/local-storage.js' import {ensureThemeStore} from '../theme-store.js' import {renderTextPrompt, TokenItem} from '@shopify/cli-kit/node/ui' + import {storePasswordPage} from '@shopify/cli-kit/node/themes/urls' export async function ensureValidPassword(password: string | undefined, store: string) { diff --git a/packages/theme/src/cli/utilities/theme-environment/storefront-renderer.ts b/packages/theme/src/cli/utilities/theme-environment/storefront-renderer.ts index ed66b4e8ae0..5b86f641265 100644 --- a/packages/theme/src/cli/utilities/theme-environment/storefront-renderer.ts +++ b/packages/theme/src/cli/utilities/theme-environment/storefront-renderer.ts @@ -1,6 +1,6 @@ -import {parseCookies, serializeCookies} from './cookies.js' -import {cleanHeader, defaultHeaders, storefrontReplaceTemplatesParams} from './storefront-utils.js' import {DevServerSession, DevServerRenderContext} from './types.js' +import {cleanHeader, defaultHeaders, storefrontReplaceTemplatesParams} from './storefront-utils.js' +import {parseCookies, serializeCookies} from './cookies.js' import {createFetchError} from '../errors.js' import {outputDebug} from '@shopify/cli-kit/node/output' import {AdminSession} from '@shopify/cli-kit/node/session' @@ -87,7 +87,7 @@ async function buildStandardHeaders(session: DevServerSession, context: DevServe async function buildThemeAccessHeaders(session: DevServerSession, context: DevServerRenderContext) { const cookies = await buildCookies(session, context) const storefrontToken = session.storefrontToken - const filteredHeaders: {[key: string]: string} = {} + const filteredHeaders: Record = {} const filterKeys = ['ACCEPT', 'CONTENT-TYPE', 'CONTENT-LENGTH'] for (const [key, value] of Object.entries(context.headers)) { diff --git a/packages/theme/src/cli/utilities/theme-environment/storefront-session.test.ts b/packages/theme/src/cli/utilities/theme-environment/storefront-session.test.ts index 89284f28ee0..71df8d9b369 100644 --- a/packages/theme/src/cli/utilities/theme-environment/storefront-session.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/storefront-session.test.ts @@ -343,7 +343,7 @@ describe('Storefront API', () => { function response(mock: { status: number url?: string - headers?: {[key: string]: string} + headers?: Record text?: () => Promise }) { const setCookieHeader = (mock.headers ?? {})['set-cookie'] ?? '' diff --git a/packages/theme/src/cli/utilities/theme-environment/storefront-session.ts b/packages/theme/src/cli/utilities/theme-environment/storefront-session.ts index ad7aafea2b2..e477b1b2ad8 100644 --- a/packages/theme/src/cli/utilities/theme-environment/storefront-session.ts +++ b/packages/theme/src/cli/utilities/theme-environment/storefront-session.ts @@ -1,5 +1,5 @@ -import {parseCookies, serializeCookies} from './cookies.js' import {defaultHeaders} from './storefront-utils.js' +import {parseCookies, serializeCookies} from './cookies.js' import {shopifyFetch, Response} from '@shopify/cli-kit/node/http' import {AbortError} from '@shopify/cli-kit/node/error' import {outputDebug} from '@shopify/cli-kit/node/output' @@ -54,9 +54,9 @@ export async function getStorefrontSessionCookies( storeFqdn: string, themeId: string, password?: string, - headers: {[key: string]: string} = {}, -): Promise<{[key: string]: string}> { - const cookieRecord: {[key: string]: string} = {} + headers: Record = {}, +): Promise> { + const cookieRecord: Record = {} const shopifyEssential = await sessionEssentialCookie(storeUrl, themeId, headers) const storeOrigin = prependHttps(storeFqdn) @@ -83,12 +83,7 @@ export async function getStorefrontSessionCookies( return {...cookieRecord, ...additionalCookies} } -async function sessionEssentialCookie( - storeUrl: string, - themeId: string, - headers: {[key: string]: string}, - retries = 1, -) { +async function sessionEssentialCookie(storeUrl: string, themeId: string, headers: Record, retries = 1) { const params = new URLSearchParams({ preview_theme_id: themeId, _fd: '0', @@ -145,8 +140,8 @@ async function enrichSessionWithStorefrontPassword( storeUrl: string, storeOrigin: string, password: string, - headers: {[key: string]: string}, -): Promise<{[key: string]: string}> { + headers: Record, +): Promise> { const params = new URLSearchParams({password}) const response = await shopifyFetch(`${storeUrl}/password`, { @@ -172,7 +167,7 @@ async function enrichSessionWithStorefrontPassword( const storefrontDigest = getCookie(setCookies, 'storefront_digest') const newShopifyEssential = getCookie(setCookies, '_shopify_essential') - const result: {[key: string]: string} = {} + const result: Record = {} if (storefrontDigest) { result.storefront_digest = storefrontDigest diff --git a/packages/theme/src/cli/utilities/theme-environment/storefront-utils.ts b/packages/theme/src/cli/utilities/theme-environment/storefront-utils.ts index c18b30a9be2..e70b63131d5 100644 --- a/packages/theme/src/cli/utilities/theme-environment/storefront-utils.ts +++ b/packages/theme/src/cli/utilities/theme-environment/storefront-utils.ts @@ -27,7 +27,7 @@ export function defaultHeaders() { } } -export function cleanHeader(headers: {[key: string]: string}): {[key: string]: string} { +export function cleanHeader(headers: Record): Record { // Force the use of the 'Cookie' key if consumers also provide the 'cookie' key delete headers.cookie delete headers.authorization diff --git a/packages/theme/src/cli/utilities/theme-environment/theme-environment.test.ts b/packages/theme/src/cli/utilities/theme-environment/theme-environment.test.ts index 02508a5ee67..d82d5b34503 100644 --- a/packages/theme/src/cli/utilities/theme-environment/theme-environment.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/theme-environment.test.ts @@ -6,12 +6,14 @@ import {hotReloadScriptId} from './hot-reload/server.js' import {uploadTheme} from '../theme-uploader.js' import {fakeThemeFileSystem} from '../theme-fs/theme-fs-mock-factory.js' import {emptyThemeExtFileSystem} from '../theme-fs-empty.js' + import {DEVELOPMENT_THEME_ROLE} from '@shopify/cli-kit/node/themes/utils' import {describe, expect, test, vi, beforeEach, afterEach} from 'vitest' import {buildTheme} from '@shopify/cli-kit/node/themes/factories' import {createEvent} from 'h3' import * as output from '@shopify/cli-kit/node/output' import {fetchChecksums} from '@shopify/cli-kit/node/themes/api' + import {IncomingMessage, ServerResponse} from 'node:http' import {Socket} from 'node:net' @@ -211,7 +213,7 @@ describe('setupDevServer', () => { const html = String.raw const decoder = new TextDecoder() - const createH3Event = (options: {url: string; headers?: {[key: string]: string}}) => { + const createH3Event = (options: {url: string; headers?: Record}) => { const req = new IncomingMessage(new Socket()) req.url = options.url if (options.headers) req.headers = options.headers @@ -221,7 +223,7 @@ describe('setupDevServer', () => { const dispatchEvent = async ( url: string, - headers?: {[key: string]: string}, + headers?: Record, ): Promise<{res: ServerResponse; status: number; body: string | Buffer}> => { const event = createH3Event({url, headers}) const {res} = event.node diff --git a/packages/theme/src/cli/utilities/theme-environment/theme-environment.ts b/packages/theme/src/cli/utilities/theme-environment/theme-environment.ts index 34bbd14d710..2660bd1acb4 100644 --- a/packages/theme/src/cli/utilities/theme-environment/theme-environment.ts +++ b/packages/theme/src/cli/utilities/theme-environment/theme-environment.ts @@ -7,10 +7,14 @@ import {uploadTheme} from '../theme-uploader.js' import {renderTasksToStdErr} from '../theme-ui.js' import {renderThrownError} from '../errors.js' import {promiseWithResolvers} from '../../polyfills/promiseWithResolvers.js' + import {createApp, defineEventHandler, defineLazyEventHandler, toNodeListener, handleCors} from 'h3' import {fetchChecksums} from '@shopify/cli-kit/node/themes/api' + import {createServer} from 'node:http' + import type {Checksum, Theme} from '@shopify/cli-kit/node/themes/types' + import type {DevServerContext} from './types.js' export function setupDevServer(theme: Theme, ctx: DevServerContext) { diff --git a/packages/theme/src/cli/utilities/theme-environment/theme-polling.ts b/packages/theme/src/cli/utilities/theme-environment/theme-polling.ts index c8de4126687..03c325abdcc 100644 --- a/packages/theme/src/cli/utilities/theme-environment/theme-polling.ts +++ b/packages/theme/src/cli/utilities/theme-environment/theme-polling.ts @@ -1,6 +1,6 @@ -import {MAX_GRAPHQL_THEME_FILES, timestampDateFormat} from '../../constants.js' -import {batchedRequests} from '../batching.js' import {renderThrownError} from '../errors.js' +import {batchedRequests} from '../batching.js' +import {MAX_GRAPHQL_THEME_FILES, timestampDateFormat} from '../../constants.js' import {Checksum, Theme, ThemeFileSystem} from '@shopify/cli-kit/node/themes/types' import {fetchChecksums, fetchThemeAssets} from '@shopify/cli-kit/node/themes/api' import {outputDebug, outputInfo, outputContent, outputToken} from '@shopify/cli-kit/node/output' diff --git a/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.test.ts b/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.test.ts index 0083c373b40..3a885a2abdd 100644 --- a/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.test.ts +++ b/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.test.ts @@ -1,5 +1,5 @@ -import {reconcileJsonFiles} from './theme-reconciliation.js' import {REMOTE_STRATEGY, LOCAL_STRATEGY} from './remote-theme-watcher.js' +import {reconcileJsonFiles} from './theme-reconciliation.js' import {fakeThemeFileSystem} from '../theme-fs/theme-fs-mock-factory.js' import {deleteThemeAssets, fetchThemeAssets} from '@shopify/cli-kit/node/themes/api' import {buildTheme} from '@shopify/cli-kit/node/themes/factories' diff --git a/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.ts b/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.ts index 2d5079938b3..d678aa06526 100644 --- a/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.ts +++ b/packages/theme/src/cli/utilities/theme-environment/theme-reconciliation.ts @@ -1,6 +1,6 @@ import {REMOTE_STRATEGY, LOCAL_STRATEGY} from './remote-theme-watcher.js' -import {batchedRequests} from '../batching.js' import {MAX_GRAPHQL_THEME_FILES} from '../../constants.js' +import {batchedRequests} from '../batching.js' import {outputDebug} from '@shopify/cli-kit/node/output' import {AdminSession} from '@shopify/cli-kit/node/session' import {deleteThemeAssets, fetchThemeAssets} from '@shopify/cli-kit/node/themes/api' diff --git a/packages/theme/src/cli/utilities/theme-environment/types.ts b/packages/theme/src/cli/utilities/theme-environment/types.ts index 39d4bdee5e1..9b689c7daf8 100644 --- a/packages/theme/src/cli/utilities/theme-environment/types.ts +++ b/packages/theme/src/cli/utilities/theme-environment/types.ts @@ -35,7 +35,7 @@ export interface DevServerSession extends AdminSession { * crucial for determining the theme used during * rendering. */ - sessionCookies: {[key: string]: string} + sessionCookies: Record /** * Refreshes the current session, ensuring any tokens and session cookies @@ -182,15 +182,15 @@ export interface DevServerRenderContext { /** * Headers to be used in the rendering request. */ - headers: {[key: string]: string} + headers: Record /** * Custom content to be replaced in the theme during rendering. */ - replaceTemplates?: {[key: string]: string} + replaceTemplates?: Record /** * Custom content to be replaced during rendering. */ - replaceExtensionTemplates?: {[key: string]: string} + replaceExtensionTemplates?: Record } diff --git a/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-fs.ts b/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-fs.ts index 4f21a324ab4..bb168f4984f 100644 --- a/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-fs.ts +++ b/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-fs.ts @@ -5,7 +5,9 @@ import {glob} from '@shopify/cli-kit/node/fs' import {joinPath, relativePath} from '@shopify/cli-kit/node/path' import {sleep} from '@shopify/cli-kit/node/system' import {buildThemeAsset} from '@shopify/cli-kit/node/themes/factories' + import EventEmitter from 'node:events' + import type { ThemeAsset, ThemeExtensionFileSystem, @@ -50,7 +52,6 @@ export function mountThemeExtensionFileSystem(root: string): ThemeExtensionFileS const fileKey = relativePath(root, filePath) const contentPromise = read(fileKey).then(() => { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const file = files.get(fileKey)! unsyncedFileKeys.add(file.key) diff --git a/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-server.ts b/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-server.ts index 5ed6a0d420f..0ff73ab674d 100644 --- a/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-server.ts +++ b/packages/theme/src/cli/utilities/theme-ext-environment/theme-ext-server.ts @@ -7,8 +7,11 @@ import {getHotReloadHandler, triggerHotReload} from '../theme-environment/hot-re import {emptyThemeFileSystem} from '../theme-fs-empty.js' import {initializeDevServerSession} from '../theme-environment/dev-server-session.js' import {createApp, toNodeListener} from 'h3' + import {AdminSession} from '@shopify/cli-kit/node/session' + import {createServer} from 'node:http' + import type {Theme, ThemeFSEventPayload} from '@shopify/cli-kit/node/themes/types' interface DevelopmentServerInstance { @@ -114,7 +117,7 @@ export async function setupInMemoryTemplateWatcher(theme: Theme, ctx: DevServerC } export function getExtensionInMemoryTemplates(ctx: DevServerContext) { - const replaceExtTemplates: {[key: string]: string} = {} + const replaceExtTemplates: Record = {} const fileSystem = ctx.localThemeExtensionFileSystem for (const key of fileSystem.unsyncedFileKeys) { diff --git a/packages/theme/src/cli/utilities/theme-fs.test.ts b/packages/theme/src/cli/utilities/theme-fs.test.ts index 3c498383acf..ac981cbf5ce 100644 --- a/packages/theme/src/cli/utilities/theme-fs.test.ts +++ b/packages/theme/src/cli/utilities/theme-fs.test.ts @@ -19,6 +19,7 @@ import {renderError} from '@shopify/cli-kit/node/ui' import {Operation, type Checksum, type ThemeAsset} from '@shopify/cli-kit/node/themes/types' import {dirname, joinPath} from '@shopify/cli-kit/node/path' import {AdminSession} from '@shopify/cli-kit/node/session' + import EventEmitter from 'events' import {fileURLToPath} from 'node:url' diff --git a/packages/theme/src/cli/utilities/theme-fs.ts b/packages/theme/src/cli/utilities/theme-fs.ts index 967856e61e0..8b236845ec3 100644 --- a/packages/theme/src/cli/utilities/theme-fs.ts +++ b/packages/theme/src/cli/utilities/theme-fs.ts @@ -12,8 +12,10 @@ import {outputContent, outputDebug, outputInfo, outputToken, outputWarn} from '@ import {buildThemeAsset} from '@shopify/cli-kit/node/themes/factories' import {AdminSession} from '@shopify/cli-kit/node/session' import {bulkUploadThemeAssets, deleteThemeAssets} from '@shopify/cli-kit/node/themes/api' + import EventEmitter from 'node:events' import {fileURLToPath} from 'node:url' + import type { ThemeFileSystem, ThemeFileSystemOptions, diff --git a/packages/theme/src/cli/utilities/theme-selector.test.ts b/packages/theme/src/cli/utilities/theme-selector.test.ts index 4acb517e603..a1caddff2be 100644 --- a/packages/theme/src/cli/utilities/theme-selector.test.ts +++ b/packages/theme/src/cli/utilities/theme-selector.test.ts @@ -1,5 +1,5 @@ -import {fetchStoreThemes} from './theme-selector/fetch.js' import {findOrSelectTheme, findThemeById, findThemes, newThemeOption} from './theme-selector.js' +import {fetchStoreThemes} from './theme-selector/fetch.js' import {getDevelopmentTheme} from '../services/local-storage.js' import {test, describe, vi, expect} from 'vitest' import {renderAutocompletePrompt} from '@shopify/cli-kit/node/ui' diff --git a/packages/theme/src/cli/utilities/theme-selector.ts b/packages/theme/src/cli/utilities/theme-selector.ts index feefa366110..c77e1c2d6f2 100644 --- a/packages/theme/src/cli/utilities/theme-selector.ts +++ b/packages/theme/src/cli/utilities/theme-selector.ts @@ -1,5 +1,5 @@ -import {fetchStoreThemes} from './theme-selector/fetch.js' import {Filter, FilterProps, filterThemes} from './theme-selector/filter.js' +import {fetchStoreThemes} from './theme-selector/fetch.js' import {getDevelopmentTheme} from '../services/local-storage.js' import {renderAutocompletePrompt} from '@shopify/cli-kit/node/ui' import {AdminSession} from '@shopify/cli-kit/node/session' @@ -40,7 +40,6 @@ export async function findOrSelectTheme(session: AdminSession, options: FindOrSe const store = session.storeFqdn if (filter.any()) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return filterThemes(store, themes, filter)[0]! } diff --git a/packages/theme/src/cli/utilities/theme-store.ts b/packages/theme/src/cli/utilities/theme-store.ts index b3cbc905bdd..4fa695ed625 100644 --- a/packages/theme/src/cli/utilities/theme-store.ts +++ b/packages/theme/src/cli/utilities/theme-store.ts @@ -1,5 +1,5 @@ -import {themeFlags} from '../flags.js' import {getThemeStore, setThemeStore} from '../services/local-storage.js' +import {themeFlags} from '../flags.js' import {recordError} from '@shopify/cli-kit/node/analytics' import {AbortError} from '@shopify/cli-kit/node/error' import {outputContent, outputToken} from '@shopify/cli-kit/node/output' diff --git a/packages/theme/src/cli/utilities/theme-uploader.test.ts b/packages/theme/src/cli/utilities/theme-uploader.test.ts index 5b5b3fae062..41f92a35254 100644 --- a/packages/theme/src/cli/utilities/theme-uploader.test.ts +++ b/packages/theme/src/cli/utilities/theme-uploader.test.ts @@ -1,3 +1,5 @@ +import {renderTasksToStdErr} from './theme-ui.js' +import {fakeThemeFileSystem} from './theme-fs/theme-fs-mock-factory.js' import { MAX_BATCH_BYTESIZE, MAX_BATCH_FILE_COUNT, @@ -6,8 +8,6 @@ import { uploadTheme, updateUploadErrors, } from './theme-uploader.js' -import {fakeThemeFileSystem} from './theme-fs/theme-fs-mock-factory.js' -import {renderTasksToStdErr} from './theme-ui.js' import {bulkUploadThemeAssets, deleteThemeAssets} from '@shopify/cli-kit/node/themes/api' import {Result, Checksum, Key, ThemeAsset, Operation} from '@shopify/cli-kit/node/themes/types' import {beforeEach, describe, expect, test, vi} from 'vitest' diff --git a/packages/theme/src/cli/utilities/theme-uploader.ts b/packages/theme/src/cli/utilities/theme-uploader.ts index aa860ef5c3e..2b56cb04357 100644 --- a/packages/theme/src/cli/utilities/theme-uploader.ts +++ b/packages/theme/src/cli/utilities/theme-uploader.ts @@ -9,6 +9,7 @@ import {AssetParams, bulkUploadThemeAssets, deleteThemeAssets} from '@shopify/cl import {Task} from '@shopify/cli-kit/node/ui' import {outputDebug} from '@shopify/cli-kit/node/output' import {recordEvent} from '@shopify/cli-kit/node/analytics' + import {Writable} from 'stream' interface UploadOptions { @@ -378,7 +379,7 @@ function calculateLocalChecksums(localThemeFileSystem: ThemeFileSystem): Checksu localThemeFileSystem.files.forEach((file, key) => { // Text files: use UTF-8 byte count // Binary files: use base64 length - const size = file.value ? Buffer.byteLength(file.value, 'utf8') : file.attachment?.length ?? 0 + const size = file.value ? Buffer.byteLength(file.value, 'utf8') : (file.attachment?.length ?? 0) checksums.push({ key, diff --git a/packages/ui-extensions-dev-console/package.json b/packages/ui-extensions-dev-console/package.json index e515aa93b27..d0be40fb633 100644 --- a/packages/ui-extensions-dev-console/package.json +++ b/packages/ui-extensions-dev-console/package.json @@ -11,34 +11,6 @@ "lint:fix": "nx lint:fix", "vitest": "vitest" }, - "eslintConfig": { - "plugins": [ - "react", - "jsx-a11y" - ], - "extends": [ - "../../.eslintrc.cjs" - ], - "rules": { - "@typescript-eslint/no-explicit-any": "off", - "import/extensions": [ - "error", - "never", - { - "ignorePackages": true - } - ], - "jsx-a11y/click-events-have-key-events": "error", - "react/jsx-no-constructed-context-values": "error", - "node/no-unsupported-features/node-builtins": [ - "error", - { - "version": ">=10.0.0", - "ignores": [] - } - ] - } - }, "dependencies": { "@shopify/polaris-icons": "^8.0.0", "@shopify/react-i18n": "^6.1.0", diff --git a/packages/ui-extensions-dev-console/src/App.tsx b/packages/ui-extensions-dev-console/src/App.tsx index 6915e72c191..2ef8902066b 100644 --- a/packages/ui-extensions-dev-console/src/App.tsx +++ b/packages/ui-extensions-dev-console/src/App.tsx @@ -1,11 +1,11 @@ -import React from 'react' -import {I18nContext, I18nManager} from '@shopify/react-i18n' -import {ExtensionServerProvider, isValidSurface} from '@shopify/ui-extensions-server-kit' import {Layout} from '@/foundation/Layout' import {Routes} from '@/foundation/Routes' import {Toast} from '@/foundation/Toast' import {Theme} from '@/foundation/Theme' import {ModalContainer} from '@/foundation/ModalContainer' +import {ExtensionServerProvider, isValidSurface} from '@shopify/ui-extensions-server-kit' +import {I18nContext, I18nManager} from '@shopify/react-i18n' +import React from 'react' function getConnectionUrl() { if (import.meta.env.VITE_CONNECTION_URL) { diff --git a/packages/ui-extensions-dev-console/src/components/Button/Button.tsx b/packages/ui-extensions-dev-console/src/components/Button/Button.tsx index 936459564db..daff96a5ed9 100644 --- a/packages/ui-extensions-dev-console/src/components/Button/Button.tsx +++ b/packages/ui-extensions-dev-console/src/components/Button/Button.tsx @@ -1,7 +1,7 @@ import * as styles from './Button.module.scss' import {Icon, IconProps} from '../Icon/Icon.js' -import React from 'react' import {classNames} from '@/utilities/css' +import React from 'react' interface ButtonProps extends React.HTMLProps { icon?: { diff --git a/packages/ui-extensions-dev-console/src/components/Icon/Icon.tsx b/packages/ui-extensions-dev-console/src/components/Icon/Icon.tsx index 422362f7541..65883124fc5 100644 --- a/packages/ui-extensions-dev-console/src/components/Icon/Icon.tsx +++ b/packages/ui-extensions-dev-console/src/components/Icon/Icon.tsx @@ -1,7 +1,7 @@ import styles from './Icon.module.scss' import {VisuallyHidden} from '../VisuallyHidden/VisuallyHidden.js' -import React from 'react' import {classNames} from '@/utilities/css' +import React from 'react' export interface IconProps { /** The SVG contents to display in the icon (icons should fit in a 20 × 20 pixel viewBox) */ diff --git a/packages/ui-extensions-dev-console/src/components/IconButton/IconButton.tsx b/packages/ui-extensions-dev-console/src/components/IconButton/IconButton.tsx index 97aa1ca7c50..d1fc0620fab 100644 --- a/packages/ui-extensions-dev-console/src/components/IconButton/IconButton.tsx +++ b/packages/ui-extensions-dev-console/src/components/IconButton/IconButton.tsx @@ -1,7 +1,7 @@ import * as styles from './IconButton.module.scss' -import React from 'react' import {Icon, IconProps} from '@/components/Icon' import {classNames} from '@/utilities/css' +import React from 'react' interface IconButtonProps extends React.HTMLProps, IconProps { type: 'button' | 'submit' | 'reset' | undefined diff --git a/packages/ui-extensions-dev-console/src/components/Modal/Modal.tsx b/packages/ui-extensions-dev-console/src/components/Modal/Modal.tsx index 4ddc961bff2..2a7aa4453be 100644 --- a/packages/ui-extensions-dev-console/src/components/Modal/Modal.tsx +++ b/packages/ui-extensions-dev-console/src/components/Modal/Modal.tsx @@ -1,10 +1,9 @@ -import {Dialog, Header, Backdrop} from './components' import styles from './Modal.module.scss' - +import {Dialog, Header, Backdrop} from './components' +import {ModalContainerId} from '@/foundation/ModalContainer' import {TransitionGroup} from 'react-transition-group' import React, {useState} from 'react' import {createPortal} from 'react-dom' -import {ModalContainerId} from '@/foundation/ModalContainer' export interface ModalProps { /** Whether the modal is open or not */ diff --git a/packages/ui-extensions-dev-console/src/components/Modal/components/Backdrop/Backdrop.tsx b/packages/ui-extensions-dev-console/src/components/Modal/components/Backdrop/Backdrop.tsx index fc5cde15f5c..83b46432b0a 100644 --- a/packages/ui-extensions-dev-console/src/components/Modal/components/Backdrop/Backdrop.tsx +++ b/packages/ui-extensions-dev-console/src/components/Modal/components/Backdrop/Backdrop.tsx @@ -18,7 +18,7 @@ export function Backdrop({onClick, setClosing}: Props) { return ( <> - {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */} + {/* The backdrop is intentionally click-only without keyboard interaction */}
) diff --git a/packages/ui-extensions-dev-console/src/components/Modal/components/Dialog/Dialog.tsx b/packages/ui-extensions-dev-console/src/components/Modal/components/Dialog/Dialog.tsx index 54f009f79c8..1d06b5a2cba 100644 --- a/packages/ui-extensions-dev-console/src/components/Modal/components/Dialog/Dialog.tsx +++ b/packages/ui-extensions-dev-console/src/components/Modal/components/Dialog/Dialog.tsx @@ -1,9 +1,8 @@ import styles from './Dialog.module.scss' - -import React, {useRef, SetStateAction, Dispatch, useLayoutEffect, useCallback} from 'react' -import {CSSTransition} from 'react-transition-group' import {focusFirstFocusableNode} from '@/utilities/focus' import {classNames} from '@/utilities/css' +import React, {useRef, SetStateAction, Dispatch, useLayoutEffect, useCallback} from 'react' +import {CSSTransition} from 'react-transition-group' enum Key { Escape = 27, diff --git a/packages/ui-extensions-dev-console/src/components/Modal/components/Header/components/CloseButton/CloseButton.tsx b/packages/ui-extensions-dev-console/src/components/Modal/components/Header/components/CloseButton/CloseButton.tsx index 9fe6f61e1ff..b284da64113 100644 --- a/packages/ui-extensions-dev-console/src/components/Modal/components/Header/components/CloseButton/CloseButton.tsx +++ b/packages/ui-extensions-dev-console/src/components/Modal/components/Header/components/CloseButton/CloseButton.tsx @@ -1,8 +1,8 @@ import en from './translations/en.json' +import {IconButton} from '@/components/IconButton/IconButton' import React from 'react' import {XIcon} from '@shopify/polaris-icons' import {useI18n} from '@shopify/react-i18n' -import {IconButton} from '@/components/IconButton/IconButton' interface CloseButtonProps { pressed?: boolean diff --git a/packages/ui-extensions-dev-console/src/components/Tooltip/Tooltip.tsx b/packages/ui-extensions-dev-console/src/components/Tooltip/Tooltip.tsx index ec9b93171ec..1d7363ce3fd 100644 --- a/packages/ui-extensions-dev-console/src/components/Tooltip/Tooltip.tsx +++ b/packages/ui-extensions-dev-console/src/components/Tooltip/Tooltip.tsx @@ -1,7 +1,7 @@ import styles from './Tooltip.module.css' import {TooltipPopover} from './TooltipPopover' -import React, {useRef, useState} from 'react' import {classNames} from '@/utilities/css' +import React, {useRef, useState} from 'react' interface TooltipProps { children: JSX.Element | string diff --git a/packages/ui-extensions-dev-console/src/foundation/Layout/Layout.tsx b/packages/ui-extensions-dev-console/src/foundation/Layout/Layout.tsx index a30d687647f..021c1aa65f7 100644 --- a/packages/ui-extensions-dev-console/src/foundation/Layout/Layout.tsx +++ b/packages/ui-extensions-dev-console/src/foundation/Layout/Layout.tsx @@ -1,9 +1,9 @@ -import * as styles from './Layout.module.scss' import en from './translations/en.json' +import * as styles from './Layout.module.scss' +import {isAppPreview} from '@/utilities/app-preview' import React from 'react' import {WrenchIcon} from '@shopify/polaris-icons' import {useI18n} from '@shopify/react-i18n' -import {isAppPreview} from '@/utilities/app-preview' interface Props { children: React.ReactNode diff --git a/packages/ui-extensions-dev-console/src/foundation/Routes/Routes.tsx b/packages/ui-extensions-dev-console/src/foundation/Routes/Routes.tsx index cd699ee4d63..6dd59db7199 100644 --- a/packages/ui-extensions-dev-console/src/foundation/Routes/Routes.tsx +++ b/packages/ui-extensions-dev-console/src/foundation/Routes/Routes.tsx @@ -1,6 +1,6 @@ +import {Extensions} from '@/sections/Extensions' import React from 'react' import {BrowserRouter, Routes as ReactRouterRoutes, Route} from 'react-router-dom' -import {Extensions} from '@/sections/Extensions' export function Routes() { return ( diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.test.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.test.tsx index 4dca57e796b..fa60f35ef18 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.test.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.test.tsx @@ -1,11 +1,11 @@ -import {Extensions} from './Extensions.js' - import {AppHomeRow, ExtensionRow} from './components' + +import {Extensions} from './Extensions.js' +import {DefaultProviders} from 'tests/DefaultProviders' import React from 'react' import {ExtensionServerClient} from '@shopify/ui-extensions-server-kit' import {mockExtension} from '@shopify/ui-extensions-server-kit/testing' import {render, withProviders} from '@shopify/ui-extensions-test-utils' -import {DefaultProviders} from 'tests/DefaultProviders' vi.mock('./components', () => ({ ExtensionRow: () => null, diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.tsx index b1202fe42f6..f0ecc3439a1 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/Extensions.tsx @@ -5,10 +5,11 @@ import en from './translations/en.json' import {useExtensions} from './hooks/useExtensions' import {useExtensionServerOptions} from './hooks/useExtensionServerOptions' import {useApp} from './hooks/useApp' -import {useI18n} from '@shopify/react-i18n' -import React from 'react' + import {isEmbedded} from '@/utilities/embedded' import {isAppPreview} from '@/utilities/app-preview' +import React from 'react' +import {useI18n} from '@shopify/react-i18n' export function Extensions() { const [i18n] = useI18n({ diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.test.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.test.tsx index 6eaaefd577e..657b90ba29d 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.test.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.test.tsx @@ -1,12 +1,12 @@ import {AppHomeRow} from '.' import en from './translations/en.json' import {PreviewLink, QRCodeModal} from '..' -import React from 'react' - import {DefaultProviders} from 'tests/DefaultProviders' import {mockI18n} from 'tests/mock-i18n' -import {render, withProviders} from '@shopify/ui-extensions-test-utils' import {Button} from '@/components' +import React from 'react' + +import {render, withProviders} from '@shopify/ui-extensions-test-utils' vi.mock('..', () => ({ NotApplicable: () => null, diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.tsx index 49a1bc6996f..372263caec2 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/AppHomeRow/AppHomeRow.tsx @@ -1,12 +1,13 @@ -import * as styles from './AppHomeRow.module.scss' import en from './translations/en.json' - +import * as styles from './AppHomeRow.module.scss' import {NotApplicable, PreviewLink, QRCodeModal, Row} from '..' import {useApp} from '../../hooks/useApp' import {useExtensionServerOptions} from '../../hooks/useExtensionServerOptions.js' -import {useI18n} from '@shopify/react-i18n' -import React, {useState} from 'react' + import {Button} from '@/components' +import React, {useState} from 'react' + +import {useI18n} from '@shopify/react-i18n' export function AppHomeRow() { const [showModal, setShowModal] = useState(false) diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.test.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.test.tsx index 4e59cde442b..33f4ac94bc0 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.test.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.test.tsx @@ -1,13 +1,13 @@ import {ExtensionRow} from '.' import en from './translations/en.json' import {QRCodeModal} from '..' -import React from 'react' - import {DefaultProviders} from 'tests/DefaultProviders' import {mockI18n} from 'tests/mock-i18n' +import {Button} from '@/components' +import React from 'react' + import {render, withProviders} from '@shopify/ui-extensions-test-utils' import {mockExtension} from '@shopify/ui-extensions-server-kit/testing' -import {Button} from '@/components' vi.mock('./components', () => ({ PreviewLinks: () => null, diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.tsx index ff7b080afd5..af65c52f23c 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/ExtensionRow.tsx @@ -1,13 +1,12 @@ -import * as styles from './ExtensionRow.module.scss' -import en from './translations/en.json' - import {PreviewLinks} from './components' +import en from './translations/en.json' +import * as styles from './ExtensionRow.module.scss' import {QRCodeModal, Row, Status} from '..' import {useExtension} from '../../hooks/useExtension' +import {Button} from '@/components/Button' import React, {useState} from 'react' import {useI18n} from '@shopify/react-i18n' import {ExtensionPayload, ExtensionPoint, isUIExtension} from '@shopify/ui-extensions-server-kit' -import {Button} from '@/components/Button' interface Props { uuid: ExtensionPayload['uuid'] diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/components/PreviewLinks/PreviewLinks.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/components/PreviewLinks/PreviewLinks.tsx index e6d0fc8ee0a..04cdd4e103a 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/components/PreviewLinks/PreviewLinks.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/ExtensionRow/components/PreviewLinks/PreviewLinks.tsx @@ -1,10 +1,10 @@ -import * as styles from './PreviewLinks.module.scss' import en from './translations/en.json' +import * as styles from './PreviewLinks.module.scss' import {NotApplicable, PreviewLink} from '../../..' +import {classNames} from '@/utilities/css' import React from 'react' import {ExtensionPayload} from '@shopify/ui-extensions-server-kit' import {useI18n} from '@shopify/react-i18n' -import {classNames} from '@/utilities/css' interface Props { extension: ExtensionPayload diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/PreviewLink/PreviewLink.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/PreviewLink/PreviewLink.tsx index c1c42962157..85e222e265e 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/PreviewLink/PreviewLink.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/PreviewLink/PreviewLink.tsx @@ -1,12 +1,12 @@ -import * as styles from './PreviewLink.module.scss' import en from './translations/en.json' +import * as styles from './PreviewLink.module.scss' import {useNavigate} from '../../hooks/useNavigate.js' +import {IconButton} from '@/components/IconButton' +import {isEmbedded} from '@/utilities/embedded' import React from 'react' import {useI18n} from '@shopify/react-i18n' import {ClipboardIcon} from '@shopify/polaris-icons' import {toast} from 'react-toastify' -import {IconButton} from '@/components/IconButton' -import {isEmbedded} from '@/utilities/embedded' interface Props { rootUrl: string diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.test.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.test.tsx index d5f925a0af7..2b55bbb11a4 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.test.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.test.tsx @@ -1,12 +1,12 @@ -import en from './translations/en.json' import {QRCodeModal} from './QRCodeModal' +import en from './translations/en.json' +import {mockI18n} from 'tests/mock-i18n' +import {DefaultProviders} from 'tests/DefaultProviders' +import {Modal} from '@/components/Modal' import React from 'react' import QRCode from 'qrcode.react' import {mockApp, mockExtension} from '@shopify/ui-extensions-server-kit/testing' import {render, withProviders} from '@shopify/ui-extensions-test-utils' -import {mockI18n} from 'tests/mock-i18n' -import {DefaultProviders} from 'tests/DefaultProviders' -import {Modal} from '@/components/Modal' vi.spyOn(HTMLCanvasElement.prototype, 'getContext').mockReturnValue(null) diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.tsx index 007e062e9b2..088f5bd503d 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/QRCodeModal/QRCodeModal.tsx @@ -1,6 +1,8 @@ -import en from './translations/en.json' import * as styles from './QRCodeModal.module.scss' +import en from './translations/en.json' import {useApp} from '../../hooks/useApp' +import {Modal, ModalProps} from '@/components/Modal' +import {IconButton} from '@/components/IconButton' import React, {useCallback, useMemo} from 'react' import {useI18n} from '@shopify/react-i18n' import copyToClipboard from 'copy-to-clipboard' @@ -8,8 +10,6 @@ import QRCode from 'qrcode.react' import {toast} from 'react-toastify' import {Surface} from '@shopify/ui-extensions-server-kit' import {ClipboardIcon} from '@shopify/polaris-icons' -import {Modal, ModalProps} from '@/components/Modal' -import {IconButton} from '@/components/IconButton' interface Code { url: string diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/Row/Row.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/Row/Row.tsx index 950066fc2a7..f22e510955b 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/Row/Row.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/Row/Row.tsx @@ -1,7 +1,6 @@ import * as styles from './Row.module.scss' - -import React from 'react' import {classNames} from '@/utilities/css' +import React from 'react' interface Props extends React.HTMLProps { children: React.ReactNode diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/components/Status/Status.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/components/Status/Status.tsx index cfad70449b0..ffd9ce15905 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/components/Status/Status.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/components/Status/Status.tsx @@ -1,10 +1,9 @@ -import * as styles from './Status.module.scss' import en from './translations/en.json' - +import * as styles from './Status.module.scss' +import {Tooltip} from '@/components/Tooltip' import React from 'react' import {useI18n} from '@shopify/react-i18n' import {Status as StatusProp} from '@shopify/ui-extensions-server-kit' -import {Tooltip} from '@/components/Tooltip' interface Props { status: StatusProp diff --git a/packages/ui-extensions-dev-console/src/sections/Extensions/hooks/useNavigate.tsx b/packages/ui-extensions-dev-console/src/sections/Extensions/hooks/useNavigate.tsx index 05a7e1136df..f2a2d482cd5 100644 --- a/packages/ui-extensions-dev-console/src/sections/Extensions/hooks/useNavigate.tsx +++ b/packages/ui-extensions-dev-console/src/sections/Extensions/hooks/useNavigate.tsx @@ -4,6 +4,5 @@ import {useMemo} from 'react' export function useNavigate() { const extensionServer = useExtensionServerContext() - // eslint-disable-next-line @typescript-eslint/unbound-method return useMemo(() => (url: string) => extensionServer.client.emit('navigate', {url}), [extensionServer.client.emit]) } diff --git a/packages/ui-extensions-dev-console/tests/MockI18nProvider.tsx b/packages/ui-extensions-dev-console/tests/MockI18nProvider.tsx index 84a5ca4028f..8ffff30518e 100644 --- a/packages/ui-extensions-dev-console/tests/MockI18nProvider.tsx +++ b/packages/ui-extensions-dev-console/tests/MockI18nProvider.tsx @@ -1,8 +1,7 @@ import React from 'react' import {I18nContext, I18nManager} from '@shopify/react-i18n' -export function MockI18nProvider({children}: React.PropsWithChildren<{[key: string]: unknown}>) { - // eslint-disable-next-line react/jsx-no-constructed-context-values +export function MockI18nProvider({children}: React.PropsWithChildren>) { const i18nManager = new I18nManager({ locale: 'en', onError(error) { diff --git a/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.test.ts b/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.test.ts index 1eb1ec10c3d..8ef4ffa1aea 100644 --- a/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.test.ts +++ b/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.test.ts @@ -1,8 +1,9 @@ import {ExtensionServerClient} from './ExtensionServerClient' import {DeepPartial} from '../types' import {mockApp} from '../testing' -import {beforeEach, expect, test, vi, describe} from 'vitest' + import {Localization} from 'i18n.js' +import {beforeEach, expect, test, vi, describe} from 'vitest' // Mock React's act function because jest-websocket-mock tries to use it vi.mock('react-dom/test-utils', () => ({ @@ -51,7 +52,7 @@ class MockWebSocket implements Partial { onmessage: ((ev: MessageEvent) => any) | null = null onclose: ((ev: CloseEvent) => any) | null = null server: MockWebSocketServer - private eventListeners: {[key: string]: Set} = { + private eventListeners: Record> = { open: new Set(), message: new Set(), close: new Set(), @@ -1032,7 +1033,7 @@ describe('ExtensionServerClient', () => { mockSocketServer.connect(mockSocket) // Persist data - const extensionData = {extensions: [{uuid: '123'}]} + const extensionData = {extensions: [{uuid: '123'}]} as any client.persist('update', extensionData) // Verify the correct message was sent @@ -1092,7 +1093,7 @@ describe('ExtensionServerClient', () => { extensionPoints: [{localization: {}, name: 'いらっしゃいませ!', description: '拡張子の説明'}], }, ], - } + } as any // Persist the data client.persist('update', extensionData) @@ -1125,7 +1126,7 @@ describe('ExtensionServerClient', () => { // Create data with localization fields const extensionData = { extensions: [{uuid: '123', type: 'ui_extension', localization: {}, extensionPoints: [{localization: {}}]}], - } + } as any // Persist the data client.persist('update', extensionData) diff --git a/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.ts b/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.ts index c914dddf8e5..507bfb5df73 100644 --- a/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.ts +++ b/packages/ui-extensions-server-kit/src/ExtensionServerClient/ExtensionServerClient.ts @@ -1,7 +1,6 @@ -/* eslint-disable @typescript-eslint/no-dynamic-delete */ /* eslint-disable no-console */ -import {Surface} from './types.js' import {ExtensionServer} from './server-types.js' +import {Surface} from './types.js' import { FlattenedLocalization, Localization, @@ -21,12 +20,16 @@ export class ExtensionServerClient implements ExtensionServer.Client { protected EVENT_THAT_WILL_MUTATE_THE_SERVER = ['update'] - protected listeners: {[key: string]: Set} = {} - protected connectionListeners: {close: Set; open: Set} = {close: new Set(), open: new Set()} + // eslint-disable-next-line @typescript-eslint/no-explicit-any + protected listeners: Record void>> = {} + protected connectionListeners: {close: Set<(event: Event) => void>; open: Set<(event: Event) => void>} = { + close: new Set(), + open: new Set(), + } protected connected = false - private uiExtensionsByUuid: {[key: string]: ExtensionServer.UIExtension} = {} + private uiExtensionsByUuid: Record = {} constructor(options: DeepPartial = {}) { this.id = (Math.random() + 1).toString(36).substring(7) @@ -47,7 +50,7 @@ export class ExtensionServerClient implements ExtensionServer.Client { const optionsChanged = JSON.stringify(newOptions) !== JSON.stringify(this.options) if (optionsChanged) { - this.options = newOptions + this.options = newOptions as ExtensionServer.Options this.setupConnection(true) } @@ -102,14 +105,17 @@ export class ExtensionServerClient implements ExtensionServer.Client { * } * ``` */ - data.extensions?.forEach((extension: any) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ;(data as any).extensions?.forEach((extension: ExtensionPayload) => { TRANSLATED_KEYS.forEach((key) => { if (isUIExtension(extension)) { extension.extensionPoints?.forEach((extensionPoint) => { - delete extensionPoint[key as keyof ExtensionPoint] + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (extensionPoint as any)[key] }) } - delete extension[key as keyof ExtensionPayload] + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete (extension as any)[key] }) }) return this.connection?.send(JSON.stringify({event, data})) @@ -119,7 +125,8 @@ export class ExtensionServerClient implements ExtensionServer.Client { } public emit(...args: ExtensionServer.EmitArgs): void { - const [event, data] = args + const event = args[0] + const data = args.length > 1 ? args[1] : undefined if (this.EVENT_THAT_WILL_MUTATE_THE_SERVER.includes(event as string)) { return console.warn( @@ -156,19 +163,20 @@ export class ExtensionServerClient implements ExtensionServer.Client { this.connection?.addEventListener('message', (message) => { try { const {event, data} = JSON.parse(message.data) as ExtensionServer.ServerEvents + const typedData = data if (event === 'dispatch') { - const {type, payload} = data + const {type, payload} = typedData as {type: string; payload: unknown} this.listeners[type]?.forEach((listener) => listener(payload)) return } - const filteredExtensions = data.extensions - ? filterExtensionsBySurface(data.extensions, this.options.surface) - : data.extensions + const filteredExtensions = typedData.extensions + ? filterExtensionsBySurface(typedData.extensions, this.options.surface) + : typedData.extensions this.listeners[event]?.forEach((listener) => { - listener({...data, extensions: this._getLocalizedExtensions(filteredExtensions)}) + listener({...typedData, extensions: this._getLocalizedExtensions(filteredExtensions)}) }) // eslint-disable-next-line no-catch-all/no-catch-all } catch (err) { @@ -213,9 +221,9 @@ export class ExtensionServerClient implements ExtensionServer.Client { const localization = shouldUpdateTranslations ? getFlattenedLocalization(extension.localization, this.options.locales) - : this.uiExtensionsByUuid[extension.uuid]?.localization ?? extension.localization + : (this.uiExtensionsByUuid[extension.uuid]?.localization ?? extension.localization) - const parsedTranslation: {[key: string]: string} = + const parsedTranslation: Record = localization && isFlattenedTranslations(localization) ? JSON.parse(localization.translations) : localization const localizedExtension = { @@ -260,7 +268,7 @@ export class ExtensionServerClient implements ExtensionServer.Client { }) } - private _getLocalizedValue(translations: {[x: string]: string}, value: string): string { + private _getLocalizedValue(translations: Record, value: string): string { const translationKey = value.replace('t:', '') return translations[translationKey] || value } @@ -295,7 +303,7 @@ function filterExtensionsBySurface(extensions: ExtensionPayload[], surface: Surf } if (Array.isArray(extension.extensionPoints)) { - const extensionPoints: (string | {surface: Surface; [key: string]: any})[] = extension.extensionPoints + const extensionPoints = extension.extensionPoints as (string | {surface: Surface; [key: string]: unknown})[] const extensionPointMatchingSurface = extensionPoints.filter((extensionPoint) => { if (typeof extensionPoint === 'string') { return false diff --git a/packages/ui-extensions-server-kit/src/ExtensionServerClient/server-types.ts b/packages/ui-extensions-server-kit/src/ExtensionServerClient/server-types.ts index 98e658863e4..51375c4a962 100644 --- a/packages/ui-extensions-server-kit/src/ExtensionServerClient/server-types.ts +++ b/packages/ui-extensions-server-kit/src/ExtensionServerClient/server-types.ts @@ -1,7 +1,8 @@ import {Surface} from './types.js' -import {ExtensionPayload, ExtensionPoint} from '../types' -import {FlattenedLocalization, Localization} from '../i18n' +import {ExtensionPayload, ExtensionPoint, App} from '../types' +import {FlattenedLocalization, LocalesOptions, Localization} from '../i18n' +// Re-export and augment the global ExtensionServer namespace export namespace ExtensionServer { export interface UIExtension extends ExtensionPayload { extensionPoints: ExtensionPoint[] @@ -29,24 +30,33 @@ export namespace ExtensionServer { protocols?: string | string[] } surface?: Surface - locales?: any + locales?: LocalesOptions } export interface ServerEvents { event: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any data: any } - export interface InboundEvents { - [key: string]: any + export interface InboundEvents extends DispatchEvents { + dispatch: {type: keyof DispatchEvents; payload: DispatchEvents[keyof DispatchEvents]} + connected: {extensions: ExtensionPayload[]; app?: App; store: string} + update: {extensions?: ExtensionPayload[]; app?: App} } export interface OutboundPersistEvents { - [key: string]: any + update: { + extensions?: ExtensionPayload[] + app?: App + } } export interface DispatchEvents { - [key: string]: any + refresh: {uuid: string}[] + focus: {uuid: string}[] + unfocus: void + navigate: {url: string} } export type EmitArgs = undefined extends DispatchEvents[TEvent] diff --git a/packages/ui-extensions-server-kit/src/ExtensionServerClient/types.ts b/packages/ui-extensions-server-kit/src/ExtensionServerClient/types.ts index 3fcdad48959..3eae4b15b79 100644 --- a/packages/ui-extensions-server-kit/src/ExtensionServerClient/types.ts +++ b/packages/ui-extensions-server-kit/src/ExtensionServerClient/types.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-invalid-void-type */ -/* eslint-disable @typescript-eslint/no-empty-interface */ import type {LocalesOptions} from '../i18n' declare global { diff --git a/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.test.tsx b/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.test.tsx index 290973a207f..04af2420f6b 100644 --- a/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.test.tsx +++ b/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.test.tsx @@ -1,9 +1,12 @@ import {ExtensionServerProvider} from './ExtensionServerProvider' -import {mockApp, mockExtension} from '../testing' import {useExtensionServerContext} from '../hooks' import {createConnectedAction} from '../state' -import {renderHook, withProviders} from '@shopify/ui-extensions-test-utils' +import {mockApp, mockExtension} from '../testing' import {beforeEach, afterEach, expect} from 'vitest' +import {renderHook, withProviders} from '@shopify/ui-extensions-test-utils' + +// Cast provider to any to avoid type conflicts between required props and ProviderComponent +const TestProvider = ExtensionServerProvider as Parameters[0] // Create a custom mock WebSocket implementation to avoid using jest-websocket-mock class MockWebSocketServer { @@ -45,7 +48,7 @@ class MockWebSocket implements Partial { onmessage: ((ev: MessageEvent) => any) | null = null onclose: ((ev: CloseEvent) => any) | null = null server: MockWebSocketServer - private eventListeners: {[key: string]: Set} = { + private eventListeners: Record> = { open: new Set(), message: new Set(), close: new Set(), @@ -142,7 +145,7 @@ describe('ExtensionServerProvider tests', () => { test('creates a new ExtensionServerClient instance', async () => { const options = {connection: {url: 'ws://example-host.com:8000/extensions/'}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) expect(wrapper.result.client).toBeDefined() }) @@ -150,7 +153,7 @@ describe('ExtensionServerProvider tests', () => { test('does not start a new connection if an empty url is passed', async () => { const options = {connection: {}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) expect(wrapper.result.client.connection).toBeUndefined() }) @@ -160,7 +163,7 @@ describe('ExtensionServerProvider tests', () => { test('starts a new connection by calling connect', async () => { const options = {connection: {url: 'ws://example-host.com:8000/extensions/'}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), { + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), { options: { connection: {url: ''}, }, @@ -181,7 +184,7 @@ describe('ExtensionServerProvider tests', () => { const app = mockApp() const extension = mockExtension() const payload = {app, extensions: [extension], store: 'test-store.com'} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) wrapper.act(({dispatch}) => { dispatch({type: 'connected', payload}) @@ -201,7 +204,7 @@ describe('ExtensionServerProvider tests', () => { const extension = mockExtension() const data = {app, store: 'test-store.com', extensions: [extension]} const options = {connection: {url: 'ws://example-host.com:8000/extensions/'}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) // Since we can't be sure the socket connection works properly in the test environment // Initialize data through the dispatch action instead @@ -223,7 +226,7 @@ describe('ExtensionServerProvider tests', () => { const update = {...extension, version: 'v2'} const data = {app, store: 'test-store.com', extensions: [extension]} const options = {connection: {url: 'ws://example-host.com:8000/extensions/'}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) // Initialize state with connected data wrapper.act(({dispatch}) => { @@ -248,7 +251,7 @@ describe('ExtensionServerProvider tests', () => { const extension = mockExtension() const data = {app, store: 'test-store.com', extensions: [extension]} const options = {connection: {url: 'ws://example-host.com:8000/extensions/'}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) // Initialize state with connected data wrapper.act(({dispatch}) => { @@ -272,7 +275,7 @@ describe('ExtensionServerProvider tests', () => { } const data = {app, store: 'test-store.com', extensions: [extension]} const options = {connection: {url: 'ws://example-host.com:8000/extensions/'}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) // Initialize state with connected data wrapper.act(({dispatch}) => { @@ -309,7 +312,7 @@ describe('ExtensionServerProvider tests', () => { const data = {app, store: 'test-store.com', extensions: [extension]} const options = {connection: {url: 'ws://example-host.com:8000/extensions/'}} - const wrapper = renderHook(useExtensionServerContext, withProviders(ExtensionServerProvider), {options}) + const wrapper = renderHook(useExtensionServerContext, withProviders(TestProvider), {options}) // Initialize state with connected data wrapper.act(({dispatch}) => { diff --git a/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.tsx b/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.tsx index 3b4da57d6cb..ee918de6691 100644 --- a/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.tsx +++ b/packages/ui-extensions-server-kit/src/context/ExtensionServerProvider.tsx @@ -11,6 +11,7 @@ import {ExtensionServerClient} from '../ExtensionServerClient' import {ExtensionServer} from '../ExtensionServerClient/server-types.js' import {useIsomorphicLayoutEffect} from '../hooks/useIsomorphicLayoutEffect' import {useExtensionServerState} from '../hooks/useExtensionServerState' + import React, {useCallback, useMemo, useState} from 'react' import type {ExtensionServerProviderProps} from './types' diff --git a/packages/ui-extensions-server-kit/src/i18n.ts b/packages/ui-extensions-server-kit/src/i18n.ts index 28e15b503ba..e1a43c5c9c6 100644 --- a/packages/ui-extensions-server-kit/src/i18n.ts +++ b/packages/ui-extensions-server-kit/src/i18n.ts @@ -6,7 +6,7 @@ type Translation = string | {[key: string]: Translation} export interface Localization { defaultLocale: string - translations: {[key: string]: {[key: string]: Translation}} + translations: Record> lastUpdated: number } @@ -63,9 +63,7 @@ interface TranslationDictionary { * } * ``` */ -interface ExtensionTranslationMap { - [key: string]: string -} +type ExtensionTranslationMap = Record export const TRANSLATED_KEYS = ['localization', 'name', 'description'] /** @@ -105,7 +103,6 @@ function traverseDictionary( } if (typeof value === 'string') { - // eslint-disable-next-line node/callback-return callback(translationKey, value) } else { traverseDictionary(value, callback, translationKey) diff --git a/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts b/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts index 8b3da54deb5..8046b5e8e3c 100644 --- a/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts +++ b/packages/ui-extensions-server-kit/src/state/reducers/extensionServerReducer.test.ts @@ -103,7 +103,7 @@ describe('extensionServerReducer()', () => { const action = createRefreshAction([{uuid: extension.uuid}]) const state1 = extensionServerReducer(previousState, action) - // eslint-disable-next-line node/no-unsupported-features/node-builtins + const url1 = new URL(state1.extensions[0].assets.main.url) const timestamp1 = url1.searchParams.get('lastUpdated') ?? '' @@ -113,7 +113,7 @@ describe('extensionServerReducer()', () => { await new Promise((resolve) => setTimeout(resolve, 1)) const state2 = extensionServerReducer(state1, action) - // eslint-disable-next-line node/no-unsupported-features/node-builtins + const url2 = new URL(state2.extensions[0].assets.main.url) const timestamp2 = url2.searchParams.get('lastUpdated') ?? '' diff --git a/packages/ui-extensions-server-kit/src/types.ts b/packages/ui-extensions-server-kit/src/types.ts index ed27db533fc..1aec8c71183 100644 --- a/packages/ui-extensions-server-kit/src/types.ts +++ b/packages/ui-extensions-server-kit/src/types.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-invalid-void-type */ -/* eslint-disable @shopify/strict-component-boundaries */ import {FlattenedLocalization, Localization} from './i18n' import './ExtensionServerClient/types' import type {Surface} from './ExtensionServerClient/types' @@ -94,7 +92,7 @@ export interface ExtensionPoint { localization?: FlattenedLocalization | Localization | null name: string description?: string - assets?: {[name: string]: Asset} + assets?: Record } type ExtensionPoints = string[] | ExtensionPoint[] | null @@ -119,7 +117,7 @@ interface Capabilities { export interface ExtensionPayload { type: string externalType: string - assets: {[name: string]: Asset} + assets: Record development: { hidden: boolean status: Status @@ -154,7 +152,7 @@ export interface ExtensionPayload { name?: string description?: string required?: boolean - validations?: any[] + validations?: unknown[] }[] } } diff --git a/packages/ui-extensions-server-kit/src/utilities/assetToString.ts b/packages/ui-extensions-server-kit/src/utilities/assetToString.ts index d1db8b78ae4..97a84dae5e8 100644 --- a/packages/ui-extensions-server-kit/src/utilities/assetToString.ts +++ b/packages/ui-extensions-server-kit/src/utilities/assetToString.ts @@ -1,7 +1,6 @@ import type {Asset} from '../types' export function assetToString(asset: Asset) { - // eslint-disable-next-line node/no-unsupported-features/node-builtins const url = new URL(asset.url) url.searchParams.set('lastUpdated', String(asset.lastUpdated)) return url.toString() diff --git a/packages/ui-extensions-server-kit/src/utilities/isUIExtension.ts b/packages/ui-extensions-server-kit/src/utilities/isUIExtension.ts index e10f60acc40..318618cf770 100644 --- a/packages/ui-extensions-server-kit/src/utilities/isUIExtension.ts +++ b/packages/ui-extensions-server-kit/src/utilities/isUIExtension.ts @@ -1,7 +1,8 @@ -export function isUIExtension(extension: any): extension is ExtensionServer.UIExtension { +export function isUIExtension(extension: unknown): extension is ExtensionServer.UIExtension { + const ext = extension as ExtensionServer.UIExtension return ( - extension.type === 'ui_extension' && - Array.isArray(extension.extensionPoints) && - extension.extensionPoints.every((extensionPoint: any) => typeof extensionPoint === 'object') + ext.type === 'ui_extension' && + Array.isArray(ext.extensionPoints) && + ext.extensionPoints.every((extensionPoint: unknown) => typeof extensionPoint === 'object') ) } diff --git a/packages/ui-extensions-server-kit/src/utilities/isValidSurface.ts b/packages/ui-extensions-server-kit/src/utilities/isValidSurface.ts index a6918c62a96..34e2c955f15 100644 --- a/packages/ui-extensions-server-kit/src/utilities/isValidSurface.ts +++ b/packages/ui-extensions-server-kit/src/utilities/isValidSurface.ts @@ -1,7 +1,6 @@ -/* eslint-disable @shopify/strict-component-boundaries */ import {AVAILABLE_SURFACES} from '../ExtensionServerClient/types' import type {Surface} from '../ExtensionServerClient/types' -export function isValidSurface(surface: any): surface is Surface { - return surface && AVAILABLE_SURFACES.includes(surface) +export function isValidSurface(surface: unknown): surface is Surface { + return Boolean(surface) && AVAILABLE_SURFACES.includes(surface as Surface) } diff --git a/packages/ui-extensions-server-kit/src/utilities/replaceUpdated.ts b/packages/ui-extensions-server-kit/src/utilities/replaceUpdated.ts index 479c91daa83..e3e98028b9e 100644 --- a/packages/ui-extensions-server-kit/src/utilities/replaceUpdated.ts +++ b/packages/ui-extensions-server-kit/src/utilities/replaceUpdated.ts @@ -1,10 +1,8 @@ export function replaceUpdated(arr: T[], updates: T[], cb: (v: T) => unknown): T[] { const updatesMap = new Map(updates.map((updated) => [cb(updated), updated])) const updated = arr.map((item) => { - // eslint-disable-next-line node/callback-return const key = cb(item) if (updatesMap.has(key)) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const updated = updatesMap.get(key)! updatesMap.delete(key) return updated diff --git a/packages/ui-extensions-server-kit/src/utilities/set.ts b/packages/ui-extensions-server-kit/src/utilities/set.ts index 68a68bbd3d1..4885a10d23f 100644 --- a/packages/ui-extensions-server-kit/src/utilities/set.ts +++ b/packages/ui-extensions-server-kit/src/utilities/set.ts @@ -1,9 +1,13 @@ /** * Deep sets an object in a type-safe way */ -export function set(obj: TObject, pathFn: (o: TObject) => TValue, value: TValue) { +export function set( + obj: TObject, + pathFn: (o: TObject) => TValue, + value: TValue, +): TObject { const path: string[] = [] - const proxy: any = new Proxy( + const proxy: unknown = new Proxy( {}, { get: (_, prop: string) => { @@ -12,11 +16,12 @@ export function set(obj: TObject, pathFn: (o: TObject) => TValu }, }, ) - pathFn(proxy) + pathFn(proxy as TObject) - const newObj: TObject = {...obj} + const newObj = {...obj} + // eslint-disable-next-line @typescript-eslint/no-explicit-any let current: any = newObj - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const lastKey = path.pop()! for (const key of path) { diff --git a/packages/ui-extensions-test-utils/src/renderHook.tsx b/packages/ui-extensions-test-utils/src/renderHook.tsx index 3ce6b96169a..51aa319da3f 100644 --- a/packages/ui-extensions-test-utils/src/renderHook.tsx +++ b/packages/ui-extensions-test-utils/src/renderHook.tsx @@ -28,7 +28,7 @@ export function renderHook( Providers: React.ComponentType> = ({children}) => <>{children}, options: Omit = {} as TP, ) { - const hookResult: HookWrapper = {} as any + const hookResult: HookWrapper = {} as HookWrapper const wrapper = mount( (hookResult.result = hook())} /> diff --git a/packages/ui-extensions-test-utils/src/withProviders.ts b/packages/ui-extensions-test-utils/src/withProviders.ts index f7b58ce4be7..483b79c0a70 100644 --- a/packages/ui-extensions-test-utils/src/withProviders.ts +++ b/packages/ui-extensions-test-utils/src/withProviders.ts @@ -1,19 +1,16 @@ -/* eslint-disable @typescript-eslint/no-empty-interface */ import React from 'react' -export type ProviderComponent = React.ComponentType> +export type ProviderComponent = React.ComponentType> -export type Tail = T extends [head: any, ...tail: infer TRest] ? TRest : never - -export type PropUnion< - TProviders extends any[], - TProps extends {[k: string]: any} = Empty, -> = TProviders[0] extends React.ComponentType - ? React.ComponentPropsWithoutRef & PropUnion> - : TProps +export type Tail = T extends [head: unknown, ...tail: infer TRest] ? TRest : never export interface Empty {} +export type PropUnion = Record> = + TProviders[0] extends React.ComponentType + ? React.ComponentPropsWithoutRef & PropUnion> + : TProps + export function withProviders(...providers: T): ProviderComponent> { return function Providers({children, ...props}) { return providers.reduceRight( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 628b9da743f..872fb5b1698 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,6 +13,7 @@ overrides: '@shopify/cli-hydrogen>@shopify/cli-kit': link:./packages/cli-kit '@shopify/cli-hydrogen>@shopify/plugin-cloudflare': link:./packages/plugin-cloudflare nanoid: 3.3.8 + graphql: 16.10.0 importers: @@ -29,7 +30,7 @@ importers: version: 6.0.0(graphql@16.10.0) '@graphql-codegen/cli': specifier: 6.0.1 - version: 6.0.1(@parcel/watcher@2.5.1)(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3) + version: 6.0.1(@parcel/watcher@2.5.6)(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3) '@graphql-codegen/near-operation-file-preset': specifier: 3.1.0 version: 3.1.0(graphql@16.10.0) @@ -41,7 +42,7 @@ importers: version: 5.0.2(graphql@16.10.0) '@nx/eslint-plugin': specifier: 22.0.2 - version: 22.0.2(@babel/traverse@7.29.0)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(nx@22.4.4)(typescript@5.8.3) + version: 22.0.2(@babel/traverse@7.29.0)(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(nx@22.4.4)(typescript@5.8.3) '@nx/workspace': specifier: 22.0.2 version: 22.0.2 @@ -50,7 +51,7 @@ importers: version: 22.0.0 '@shopify/eslint-plugin-cli': specifier: file:packages/eslint-plugin-cli - version: file:packages/eslint-plugin-cli(eslint@8.57.1)(prettier@3.7.4)(typescript@5.8.3)(vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: file:packages/eslint-plugin-cli(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1)(typescript@5.8.3)(vitest@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) '@shopify/generate-docs': specifier: 0.15.6 version: 0.15.6 @@ -61,11 +62,11 @@ importers: specifier: ^0.2.5 version: 0.2.6 '@typescript-eslint/parser': - specifier: 7.18.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + specifier: 8.33.0 + version: 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) ansi-colors: specifier: ^4.1.3 version: 4.1.3 @@ -79,8 +80,8 @@ importers: specifier: 0.27.2 version: 0.27.2 eslint: - specifier: ^8.48.0 - version: 8.57.1 + specifier: ^9.26.0 + version: 9.39.2(jiti@2.6.1) execa: specifier: ^7.2.0 version: 7.2.0 @@ -94,7 +95,7 @@ importers: specifier: ^11.1.0 version: 11.1.0 graphql: - specifier: ^16.10.0 + specifier: 16.10.0 version: 16.10.0 graphql-codegen-typescript-operation-types: specifier: 2.0.2 @@ -128,7 +129,7 @@ importers: version: 1.1.1 pin-github-action: specifier: ^3.3.1 - version: 3.3.1 + version: 3.4.0 rimraf: specifier: ^3.0.2 version: 3.0.2 @@ -143,7 +144,7 @@ importers: version: 5.8.3 vitest: specifier: ^3.1.4 - version: 3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2) + version: 3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0) zod: specifier: ^3.24.1 version: 3.24.1 @@ -237,13 +238,13 @@ importers: devDependencies: '@types/body-parser': specifier: ^1.19.2 - version: 1.19.5 + version: 1.19.6 '@types/diff': specifier: ^5.0.3 version: 5.2.3 '@types/express': specifier: ^4.17.17 - version: 4.17.22 + version: 4.17.25 '@types/prettier': specifier: ^2.7.3 version: 2.7.3 @@ -255,7 +256,7 @@ importers: version: 18.3.12 '@types/react-dom': specifier: ^18.2.0 - version: 18.2.0 + version: 18.3.7(@types/react@18.3.12) '@types/which': specifier: 3.0.4 version: 3.0.4 @@ -264,7 +265,7 @@ importers: version: 8.18.1 '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) packages/cli: dependencies: @@ -292,7 +293,7 @@ importers: version: link:../app '@shopify/cli-hydrogen': specifier: 11.1.5 - version: 11.1.5(@graphql-codegen/cli@5.0.4(@parcel/watcher@2.5.1)(@types/node@24.7.0)(crossws@0.3.5)(enquirer@2.4.1)(graphql@16.10.0)(typescript@5.8.3))(graphql-config@5.1.5(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2)) + version: 11.1.5(@graphql-codegen/cli@6.0.1(@parcel/watcher@2.5.6)(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3))(graphql-config@5.1.5(@types/node@22.19.9)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0)) '@shopify/cli-kit': specifier: 3.90.0 version: link:../cli-kit @@ -308,18 +309,12 @@ importers: '@types/global-agent': specifier: 3.0.0 version: 3.0.0 - '@typescript-eslint/eslint-plugin': - specifier: 7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) esbuild-plugin-copy: specifier: ^2.1.1 version: 2.1.1(esbuild@0.27.2) - espree: - specifier: 9.6.1 - version: 9.6.1 packages/cli-kit: dependencies: @@ -539,16 +534,16 @@ importers: version: 18.3.12 '@types/semver': specifier: ^7.5.2 - version: 7.7.0 + version: 7.7.1 '@types/which': specifier: 3.0.4 version: 3.0.4 '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) msw: specifier: ^2.7.1 - version: 2.8.7(@types/node@24.7.0)(typescript@5.8.3) + version: 2.12.8(@types/node@22.19.9)(typescript@5.8.3) node-stream-zip: specifier: ^1.15.0 version: 1.15.0 @@ -573,7 +568,7 @@ importers: version: link:../cli-kit '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) esbuild-plugin-copy: specifier: ^2.1.1 version: 2.1.1(esbuild@0.27.2) @@ -584,56 +579,56 @@ importers: specifier: 7.27.4 version: 7.27.4 '@shopify/eslint-plugin': - specifier: 42.1.0 - version: 42.1.0(@babel/core@7.27.4)(eslint@8.57.1)(prettier@2.8.8)(typescript@5.8.3) + specifier: 50.0.0 + version: 50.0.0(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(prettier@2.8.8)(typescript@5.8.3) '@typescript-eslint/eslint-plugin': - specifier: 7.13.1 - version: 7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + specifier: 8.33.0 + version: 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) '@typescript-eslint/parser': - specifier: 7.18.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) + specifier: 8.33.0 + version: 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@vitest/eslint-plugin': + specifier: 1.1.44 + version: 1.1.44(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) debug: specifier: 4.4.0 version: 4.4.0(supports-color@8.1.1) eslint: - specifier: ^8.48.0 - version: 8.57.1 + specifier: ^9.0.0 + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: - specifier: 8.10.0 - version: 8.10.0(eslint@8.57.1) - eslint-plugin-import: - specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + specifier: 10.1.5 + version: 10.1.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsdoc: - specifier: 48.11.0 - version: 48.11.0(eslint@8.57.1) + specifier: 50.7.1 + version: 50.7.1(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: specifier: 6.10.2 - version: 6.10.2(eslint@8.57.1) + version: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-no-catch-all: specifier: 1.1.0 - version: 1.1.0(eslint@8.57.1) + version: 1.1.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-prettier: - specifier: 4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8) + specifier: 5.5.1 + version: 5.5.1(eslint-config-prettier@10.1.5(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@2.8.8) eslint-plugin-react: - specifier: 7.37.3 - version: 7.37.3(eslint@8.57.1) + specifier: 7.37.5 + version: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: - specifier: 4.6.2 - version: 4.6.2(eslint@8.57.1) + specifier: 5.2.0 + version: 5.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-tsdoc: specifier: 0.4.0 version: 0.4.0 eslint-plugin-unused-imports: - specifier: 3.2.0 - version: 3.2.0(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) - eslint-plugin-vitest: - specifier: 0.5.4 - version: 0.5.4(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + specifier: 4.1.4 + version: 4.1.4(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)) execa: specifier: 7.2.0 version: 7.2.0 + globals: + specifier: 16.2.0 + version: 16.2.0 devDependencies: prettier: specifier: 2.8.8 @@ -643,7 +638,7 @@ importers: devDependencies: '@cucumber/cucumber': specifier: ^12.2.0 - version: 12.2.0 + version: 12.6.0 '@cucumber/messages': specifier: 30.1.0 version: 30.1.0 @@ -674,7 +669,7 @@ importers: devDependencies: '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) packages/plugin-did-you-mean: dependencies: @@ -690,7 +685,7 @@ importers: devDependencies: '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) packages/theme: dependencies: @@ -721,7 +716,7 @@ importers: version: 0.0.18 '@vitest/coverage-istanbul': specifier: ^3.1.4 - version: 3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.7.0)) + version: 3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) node-stream-zip: specifier: ^1.15.0 version: 1.15.0 @@ -733,7 +728,7 @@ importers: version: 8.11.1(react@17.0.2) '@shopify/react-i18n': specifier: ^6.1.0 - version: 6.4.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + version: 6.4.0(@types/react@18.3.12)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@shopify/ui-extensions-server-kit': specifier: 5.4.0 version: link:../ui-extensions-server-kit @@ -751,7 +746,7 @@ importers: version: 17.0.2(react@17.0.2) react-router-dom: specifier: ^6.14.2 - version: 6.30.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + version: 6.30.3(react-dom@17.0.2(react@17.0.2))(react@17.0.2) react-toastify: specifier: ^9.1.3 version: 9.1.3(react-dom@17.0.2(react@17.0.2))(react@17.0.2) @@ -782,10 +777,10 @@ importers: version: 20.0.3 sass: specifier: ^1.83.1 - version: 1.89.1 + version: 1.97.3 vite: specifier: 6.4.1 - version: 6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) packages/ui-extensions-server-kit: devDependencies: @@ -812,7 +807,7 @@ importers: version: 0.8.0 vite: specifier: 6.4.1 - version: 6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + version: 6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) packages/ui-extensions-test-utils: devDependencies: @@ -877,13 +872,13 @@ packages: resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} hasBin: true peerDependencies: - graphql: '*' + graphql: 16.10.0 '@ardatan/relay-compiler@12.0.3': resolution: {integrity: sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ==} hasBin: true peerDependencies: - graphql: '*' + graphql: 16.10.0 '@ast-grep/napi-darwin-arm64@0.33.0': resolution: {integrity: sha512-FsBQiBNGbqeU6z2sjFgnV6MXuBa0wYUb4PViMnqsKLeWiO7kRii5crmXLCtdTD2hufXTG6Rll8X46AkYOAwGGQ==} @@ -1148,9 +1143,9 @@ packages: resolution: {integrity: sha512-t/VbL2X3gvDEjC4gdySOeFFOZGQEBKwa23pRHeB7hBLBZ119BB/2OEFtTFWKyp3bnMQgxpeVeGS7/hxk6wpKJw==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-locate-window@3.893.0': - resolution: {integrity: sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==} - engines: {node: '>=18.0.0'} + '@aws-sdk/util-locate-window@3.965.4': + resolution: {integrity: sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog==} + engines: {node: '>=20.0.0'} '@aws-sdk/util-user-agent-browser@3.972.3': resolution: {integrity: sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw==} @@ -1172,40 +1167,18 @@ packages: resolution: {integrity: sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==} engines: {node: '>=18.0.0'} - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.4': - resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} '@babel/core@7.27.4': resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.27.1': - resolution: {integrity: sha512-q8rjOuadH0V6Zo4XLMkJ3RMQ9MSBqwaDByyYB0izsYdaIWGNLmEblbCOf1vyFHICcg16CD7Fsi51vcQnYxmt6Q==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - - '@babel/eslint-plugin@7.27.1': - resolution: {integrity: sha512-vOG/EipZbIAcREK6XI4JRO3B3uZr70/KIhsrNLO9RXcgLMaW0sTsBpNeTpQUyelB0HsbWd45NIsuTgD3mqr/Og==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/eslint-parser': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - - '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.29.1': resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} @@ -1214,24 +1187,24 @@ packages: resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.3': - resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} + '@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==} + '@babel/helper-define-polyfill-provider@0.6.6': + resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -1239,16 +1212,16 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + '@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==} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1257,10 +1230,6 @@ packages: 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-plugin-utils@7.28.6': resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} @@ -1271,8 +1240,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1285,10 +1254,6 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 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-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} @@ -1297,26 +1262,21 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.28.3': - resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.4': - resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.29.0': resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} + '@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 @@ -1339,8 +1299,8 @@ packages: peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': - resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': + resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1352,8 +1312,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-decorators@7.28.0': - resolution: {integrity: sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==} + '@babel/plugin-proposal-decorators@7.29.0': + resolution: {integrity: sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1376,20 +1336,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.27.1': - resolution: {integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==} + '@babel/plugin-syntax-decorators@7.28.6': + resolution: {integrity: sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.27.1': - resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + '@babel/plugin-syntax-flow@7.28.6': + resolution: {integrity: sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1400,14 +1354,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + '@babel/plugin-syntax-jsx@7.28.6': + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1417,8 +1371,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1435,14 +1389,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.28.0': - resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1453,44 +1407,44 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.28.4': - resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==} + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.28.3': - resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.28.4': - resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.28.0': - resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==} + '@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.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} + '@babel/plugin-transform-dotall-regex@7.28.6': + resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1501,8 +1455,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1513,14 +1467,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-explicit-resource-management@7.28.0': - resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} + '@babel/plugin-transform-explicit-resource-management@7.28.6': + resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} + '@babel/plugin-transform-exponentiation-operator@7.28.6': + resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1549,8 +1503,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} + '@babel/plugin-transform-json-strings@7.28.6': + resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1561,8 +1515,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1579,14 +1533,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.27.1': - resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} + '@babel/plugin-transform-modules-systemjs@7.29.0': + resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1597,8 +1551,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1609,20 +1563,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.28.4': - resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1633,14 +1587,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1651,14 +1605,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1669,8 +1623,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.27.1': - resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} + '@babel/plugin-transform-react-display-name@7.28.0': + resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1687,20 +1641,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + '@babel/plugin-transform-react-jsx@7.28.6': + resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.28.4': - resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.27.1': - resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} + '@babel/plugin-transform-regexp-modifiers@7.28.6': + resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1711,8 +1665,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.28.3': - resolution: {integrity: sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==} + '@babel/plugin-transform-runtime@7.29.0': + resolution: {integrity: sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1723,8 +1677,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1747,8 +1701,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.28.0': - resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} + '@babel/plugin-transform-typescript@7.28.6': + resolution: {integrity: sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1759,8 +1713,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} + '@babel/plugin-transform-unicode-property-regex@7.28.6': + resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1771,14 +1725,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} + '@babel/plugin-transform-unicode-sets-regex@7.28.6': + resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.28.3': - resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} + '@babel/preset-env@7.29.0': + resolution: {integrity: sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1788,45 +1742,33 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-typescript@7.27.1': - resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} + '@babel/preset-typescript@7.28.5': + resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.4': - resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.4': - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} - engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@bugsnag/browser@8.6.0': - resolution: {integrity: sha512-7UGqTGnQqXUQ09gOlWbDTFUSbeLIIrP+hML3kTOq8Zdc8nP/iuOEflXGLV2TxWBWW8xIUPc928caFPr9EcaDuw==} + '@bugsnag/browser@8.8.1': + resolution: {integrity: sha512-wdDFZQtZBKlVkNWx57VWuOf+NKF3Pp+INn8E2SdYNwN42PQdsgsx7NliSMqY5MPiW0GeE9mgc7QMIMixOWp8Lw==} - '@bugsnag/core@8.6.0': - resolution: {integrity: sha512-94Jo443JegaiKV8z8NXMFdyTGubiUnwppWhq3kG2ldlYKtEvrmIaO5+JA58B6oveySvoRu3cCe2W9ysY7G7mDw==} + '@bugsnag/core@8.8.0': + resolution: {integrity: sha512-N9Z1znQ2EnhKlGNrxYx0XZ87IhcJ0V9NO9lmxOmOq0g8XMMaEnnqFj5f/YSO5H/NPFF/eVAyzDGDeuxsDWdK+w==} '@bugsnag/cuid@3.2.1': resolution: {integrity: sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==} @@ -1834,27 +1776,18 @@ packages: '@bugsnag/js@8.6.0': resolution: {integrity: sha512-U+ofNTTMA2Z6tCrOhK/QhHBhLoQHoalk8Y82WWc7FAcVSoJZYadND/QuXUriNRZpC4YgJ/s/AxPeQ2y+WvMxzw==} - '@bugsnag/node@8.6.0': - resolution: {integrity: sha512-O91sELo6zBjflVeP3roRC9l68iYaafVs5lz2N0FDkrT08mP2UljtNWpjjoR/0h1so5Ny1OxHgnZ1IrsXhz5SMQ==} + '@bugsnag/node@8.8.0': + resolution: {integrity: sha512-ODajeAIRAICO8JXnrWkjzBmA0Qslt6n7aMEZQ3OJXDTsgXgdK1qoLjlScJqOoeQNR/kXUXl2allvJdrB4u2pdg==} - '@bugsnag/safe-json-stringify@6.0.0': - resolution: {integrity: sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==} + '@bugsnag/safe-json-stringify@6.1.0': + resolution: {integrity: sha512-ImA35rnM7bGr+J30R979FQ95BhRB4UO1KfJA0J2sVqc8nwnrS9hhE5mkTmQWMs8Vh1Da+hkLKs5jJB4JjNZp4A==} '@bugsnag/source-maps@2.3.3': resolution: {integrity: sha512-DCCXhiY1CdCy3Eo6SS/qHnBuyrXY0jyefsJBpXemwI5eXEAR0KrhnhxbGU7Ga/8ysssD1A22J5488BYH1t4pgQ==} hasBin: true - '@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==} - - '@bundled-es-modules/tough-cookie@0.1.6': - resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - - '@changesets/apply-release-plan@7.0.13': - resolution: {integrity: sha512-BIW7bofD2yAWoE8H4V40FikC+1nNFEKBisMECccS16W1rt6qqhNTBDmIw5HaqmMgtLNz9e7oiALiEUuKrQ4oHg==} + '@changesets/apply-release-plan@7.0.14': + resolution: {integrity: sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA==} '@changesets/assemble-release-plan@6.0.9': resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} @@ -1866,8 +1799,8 @@ packages: resolution: {integrity: sha512-R7RqWoaksyyKXbKXBTbT4REdy22yH81mcFK6sWtqSanxUCbUi9Uf+6aqxZtDQouIqPdem2W56CdxXgsxdq7FLQ==} hasBin: true - '@changesets/config@3.1.1': - resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} + '@changesets/config@3.1.2': + resolution: {integrity: sha512-CYiRhA4bWKemdYi/uwImjPxqWNpqGPNbEBdX1BdONALFIDK7MCUj6FPkzD+z9gJcvDFUQJn9aDVf4UG7OT6Kog==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} @@ -1875,8 +1808,8 @@ packages: '@changesets/get-dependents-graph@2.1.3': resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} - '@changesets/get-release-plan@4.0.13': - resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==} + '@changesets/get-release-plan@4.0.14': + resolution: {integrity: sha512-yjZMHpUHgl4Xl5gRlolVuxDkm4HgSJqT93Ri1Uz8kGrQb+5iJ8dkXJ20M2j/Y4iV5QzS2c5SeTxVSKX+2eMI0g==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -1887,14 +1820,14 @@ packages: '@changesets/logger@0.1.1': resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - '@changesets/parse@0.4.1': - resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} + '@changesets/parse@0.4.2': + resolution: {integrity: sha512-Uo5MC5mfg4OM0jU3up66fmSn6/NE9INK+8/Vn/7sMVcdWg46zfbvvUSjD9EMonVqPi9fbrJH9SXHn48Tr1f2yA==} '@changesets/pre@2.0.2': resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - '@changesets/read@0.6.5': - resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} + '@changesets/read@0.6.6': + resolution: {integrity: sha512-P5QaN9hJSQQKJShzzpBT13FzOSPyHbqdoIBUd2DJdgvnECCyO6LmAOWSV+O8se2TaZJVwSXjL+v9yhb+a9JeJg==} '@changesets/should-skip-package@0.1.2': resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} @@ -1916,42 +1849,42 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@cucumber/ci-environment@10.0.1': - resolution: {integrity: sha512-/+ooDMPtKSmvcPMDYnMZt4LuoipfFfHaYspStI4shqw8FyKcfQAmekz6G+QKWjQQrvM+7Hkljwx58MEwPCwwzg==} + '@cucumber/ci-environment@12.0.0': + resolution: {integrity: sha512-SqCEnbCNl3zCXCFpqGUuoaSNhLC0jLw4tKeFcAxTw9MD/QRlJjeAC/fyvVLFuXuSq0OunJlFfxLu+Z3HE+oLPg==} - '@cucumber/cucumber-expressions@18.0.1': - resolution: {integrity: sha512-NSid6bI+7UlgMywl5octojY5NXnxR9uq+JisjOrO52VbFsQM6gTWuQFE8syI10KnIBEdPzuEUSVEeZ0VFzRnZA==} + '@cucumber/cucumber-expressions@18.1.0': + resolution: {integrity: sha512-9yc+wForrn15FaqLWNjYb19iQ/gPXhcq1kc4X1Ex1lR7NcJpa5pGnCow3bc1HERVM5IoYH+gwwrcJogSMsf+Vw==} - '@cucumber/cucumber@12.2.0': - resolution: {integrity: sha512-b7W4snvXYi1T2puUjxamASCCNhNzVSzb/fQUuGSkdjm/AFfJ24jo8kOHQyOcaoArCG71sVQci4vkZaITzl/V1w==} + '@cucumber/cucumber@12.6.0': + resolution: {integrity: sha512-z6XKBIcUnJebnR3W8+K7Q2jJKB+pKpoD1l3CygEa9ufq/aeGuS5LAlllNxrod8loepLJhNmp8J8aengGbkL4cg==} engines: {node: 20 || 22 || >=24} hasBin: true - '@cucumber/gherkin-streams@5.0.1': - resolution: {integrity: sha512-/7VkIE/ASxIP/jd4Crlp4JHXqdNFxPGQokqWqsaCCiqBiu5qHoKMxcWNlp9njVL/n9yN4S08OmY3ZR8uC5x74Q==} + '@cucumber/gherkin-streams@6.0.0': + resolution: {integrity: sha512-HLSHMmdDH0vCr7vsVEURcDA4WwnRLdjkhqr6a4HQ3i4RFK1wiDGPjBGVdGJLyuXuRdJpJbFc6QxHvT8pU4t6jw==} hasBin: true peerDependencies: '@cucumber/gherkin': '>=22.0.0' '@cucumber/message-streams': '>=4.0.0' '@cucumber/messages': '>=17.1.1' - '@cucumber/gherkin-utils@9.2.0': - resolution: {integrity: sha512-3nmRbG1bUAZP3fAaUBNmqWO0z0OSkykZZotfLjyhc8KWwDSOrOmMJlBTd474lpA8EWh4JFLAX3iXgynBqBvKzw==} + '@cucumber/gherkin-utils@10.0.0': + resolution: {integrity: sha512-BcujlDT343GXXNrMPl3ws6Il3zs8dQw3Yp/d3HnOJF8i2snGGgiapoTbko7MdvAt7ivDL7SDo+e1d5Cnpl3llA==} hasBin: true - '@cucumber/gherkin@31.0.0': - resolution: {integrity: sha512-wlZfdPif7JpBWJdqvHk1Mkr21L5vl4EfxVUOS4JinWGf3FLRV6IKUekBv5bb5VX79fkDcfDvESzcQ8WQc07Wgw==} - '@cucumber/gherkin@34.0.0': resolution: {integrity: sha512-659CCFsrsyvuBi/Eix1fnhSheMnojSfnBcqJ3IMPNawx7JlrNJDcXYSSdxcUw3n/nG05P+ptCjmiZY3i14p+tA==} - '@cucumber/html-formatter@21.14.0': - resolution: {integrity: sha512-vQqbmQZc0QiN4c+cMCffCItpODJlOlYtPG7pH6We096dBOa7u0ttDMjT6KrMAnQlcln54rHL46r408IFpuznAw==} + '@cucumber/gherkin@37.0.1': + resolution: {integrity: sha512-VmX+PKa9vqKZiycZoQKYlCsA0N7gAfiOfrcHSjK+suEVUwvKEH2sjO47NznrFFLmVWYTRmw3DLHQnpBAznkYEA==} + + '@cucumber/html-formatter@22.3.0': + resolution: {integrity: sha512-0s3G7kznCRDiiesQ4K0yBdswGqU9E0j2AWUug41NpedBzhaY+Hn192ANRF597GZtuWrCjE53aFb3fOyOsT8B+g==} peerDependencies: '@cucumber/messages': '>=18' - '@cucumber/junit-xml-formatter@0.8.1': - resolution: {integrity: sha512-FT1Y96pyd9/ifbE9I7dbkTCjkwEdW9C0MBobUZoKD13c8EnWAt0xl1Yy/v/WZLTk4XfCLte1DATtLx01jt+YiA==} + '@cucumber/junit-xml-formatter@0.9.0': + resolution: {integrity: sha512-WF+A7pBaXpKMD1i7K59Nk5519zj4extxY4+4nSgv5XLsGXHDf1gJnb84BkLUzevNtp2o2QzMG0vWLwSm8V5blw==} peerDependencies: '@cucumber/messages': '*' @@ -1960,18 +1893,18 @@ packages: peerDependencies: '@cucumber/messages': '>=17.1.1' - '@cucumber/messages@22.0.0': - resolution: {integrity: sha512-EuaUtYte9ilkxcKmfqGF9pJsHRUU0jwie5ukuZ/1NPTuHS1LxHPsGEODK17RPRbZHOFhqybNzG2rHAwThxEymg==} - - '@cucumber/messages@27.2.0': - resolution: {integrity: sha512-f2o/HqKHgsqzFLdq6fAhfG1FNOQPdBdyMGpKwhb7hZqg0yZtx9BVqkTyuoNk83Fcvk3wjMVfouFXXHNEk4nddA==} - '@cucumber/messages@28.1.0': resolution: {integrity: sha512-2LzZtOwYKNlCuNf31ajkrekoy2M4z0Z1QGiPH40n4gf5t8VOUFb7m1ojtR4LmGvZxBGvJZP8voOmRqDWzBzYKA==} + '@cucumber/messages@29.0.1': + resolution: {integrity: sha512-aAvIYfQD6/aBdF8KFQChC3CQ1Q+GX9orlR6GurGiX6oqaCnBkxA4WU3OQUVepDynEFrPayerqKRFcAMhdcXReQ==} + '@cucumber/messages@30.1.0': resolution: {integrity: sha512-KxnsSjHz9EGF23GeZc3BRMK2+bagt2p87mwwNfisBK7BfuyvnXJumyBQJJN4xv5SLSzBKxH3FsZnuOf8LwsHhg==} + '@cucumber/messages@31.2.0': + resolution: {integrity: sha512-3urzBNCwmU/YKrKR0b3XdioFcOFNuxlLwEImsxeP8rXnweLs+Ky04QURcbKpFom3T6a6v9zVioLCfHUuSQ72pg==} + '@cucumber/pretty-formatter@1.0.1': resolution: {integrity: sha512-A1lU4VVP0aUWdOTmpdzvXOyEYuPtBDI0xYwYJnmoMDplzxMdhcHk86lyyvYDoMoPzzq6OkOE3isuosvUU4X7IQ==} peerDependencies: @@ -1983,18 +1916,13 @@ packages: peerDependencies: '@cucumber/messages': '*' - '@cucumber/query@13.6.0': - resolution: {integrity: sha512-tiDneuD5MoWsJ9VKPBmQok31mSX9Ybl+U4wqDoXeZgsXHDURqzM3rnpWVV3bC34y9W6vuFxrlwF/m7HdOxwqRw==} - peerDependencies: - '@cucumber/messages': '*' - - '@cucumber/query@14.6.0': - resolution: {integrity: sha512-bPbfpkDsFCBn95erh3un76QViPqGAo3T7iYews0yA3/JRNoV009s7acxxY+f+OMABPFl0TJVIZlvqX+KayQ+Eg==} + '@cucumber/query@14.7.0': + resolution: {integrity: sha512-fiqZ4gMEgYjmbuWproF/YeCdD5y+gD2BqgBIGbpihOsx6UlNsyzoDSfO+Tny0q65DxfK+pHo2UkPyEl7dO7wmQ==} peerDependencies: '@cucumber/messages': '*' - '@cucumber/tag-expressions@6.2.0': - resolution: {integrity: sha512-KIF0eLcafHbWOuSDWFw0lMmgJOLdDRWjEL1kfXEWrqHmx2119HxVAr35WuEd9z542d3Yyg+XNqSr+81rIKqEdg==} + '@cucumber/tag-expressions@8.1.0': + resolution: {integrity: sha512-UFeOVUyc711/E7VHjThxMwg3jbGod9TlbM1gxNixX/AGDKg82Eha4cE0tKki3GGUs7uB2NyI+hQAuhB8rL2h5A==} '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} @@ -2005,10 +1933,6 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@envelop/core@5.2.3': - resolution: {integrity: sha512-KfoGlYD/XXQSc3BkM1/k15+JQbkQ4ateHazeZoWl9P71FsLTDXSjGy6j7QqfhpIDSbxNISqhPMfZHYSbDFOofQ==} - engines: {node: '>=18.0.0'} - '@envelop/core@5.5.0': resolution: {integrity: sha512-nsU1EyJQAStaKHR1ZkB/ug9XBm+WPTliYtdedbJ/L1ykrp7dbbn0srqBeDnZ2mbZVp4hH3d0Fy+Og9OgPWZx+g==} engines: {node: '>=18.0.0'} @@ -2021,9 +1945,9 @@ packages: resolution: {integrity: sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==} engines: {node: '>=18.0.0'} - '@es-joy/jsdoccomment@0.46.0': - resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} - engines: {node: '>=16'} + '@es-joy/jsdoccomment@0.50.2': + resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} + engines: {node: '>=18'} '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} @@ -2337,31 +2261,48 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} 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==} + '@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} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.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/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.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.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + 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} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@fastify/busboy@3.1.1': - resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==} - '@fastify/busboy@3.2.0': resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} @@ -2371,29 +2312,13 @@ packages: '@graphql-codegen/add@3.2.3': resolution: {integrity: sha512-sQOnWpMko4JLeykwyjFTxnhqjd/3NOG2OyMuvK76Wnnwh8DRrNf2VEs2kmSvLl7MndMlOj7Kh5U154dVcvhmKQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - '@graphql-codegen/add@5.0.3': - resolution: {integrity: sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/add@6.0.0': resolution: {integrity: sha512-biFdaURX0KTwEJPQ1wkT6BRgNasqgQ5KbCI1a3zwtLtO7XTo7/vKITPylmiU27K5DSOWYnY/1jfSqUAEBuhZrQ==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - '@graphql-codegen/cli@5.0.4': - resolution: {integrity: sha512-vPO1mCtrttFVy8mPR+jMAvsYTv8E/7payIPaneeGE15mQjyvQXXsHoAg06Qpf6tykOdCwKVLWre0Mf6g0KBwUg==} - engines: {node: '>=16'} - hasBin: true - peerDependencies: - '@parcel/watcher': ^2.1.0 - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - '@parcel/watcher': - optional: true + graphql: 16.10.0 '@graphql-codegen/cli@6.0.1': resolution: {integrity: sha512-6iP91joxb7phdicDrIF8Cv9ah2QpPVXUUu7rbOaQKvqey+QKYmHcxGCi9r5/7p4lUiHZPQvfB7xDHURHQca1SA==} @@ -2401,121 +2326,94 @@ packages: hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 peerDependenciesMeta: '@parcel/watcher': optional: true - '@graphql-codegen/client-preset@4.8.3': - resolution: {integrity: sha512-QpEsPSO9fnRxA6Z66AmBuGcwHjZ6dYSxYo5ycMlYgSPzAbyG8gn/kWljofjJfWqSY+T/lRn+r8IXTH14ml24vQ==} - engines: {node: '>=16'} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql-sock: ^1.0.0 - peerDependenciesMeta: - graphql-sock: - optional: true - - '@graphql-codegen/client-preset@5.1.1': - resolution: {integrity: sha512-d7a4KdZJBOPt/O55JneBz9WwvpWar/P5yyxfjZvvoRErXPRsWtswLp+CBKKPkRcEIz9MXfTdQ1GL3kQg16DLfg==} + '@graphql-codegen/client-preset@5.2.2': + resolution: {integrity: sha512-1xufIJZr04ylx0Dnw49m8Jrx1s1kujUNVm+Tp5cPRsQmgPN9VjB7wWY7CGD8ArStv6Vjb0a31Xnm5I+VzZM+Rw==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: optional: true - '@graphql-codegen/core@4.0.2': - resolution: {integrity: sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/core@5.0.0': resolution: {integrity: sha512-vLTEW0m8LbE4xgRwbFwCdYxVkJ1dBlVJbQyLb9Q7bHnVFgHAP982Xo8Uv7FuPBmON+2IbTjkCqhFLHVZbqpvjQ==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - '@graphql-codegen/gql-tag-operations@4.0.17': - resolution: {integrity: sha512-2pnvPdIG6W9OuxkrEZ6hvZd142+O3B13lvhrZ48yyEBh2ujtmKokw0eTwDHtlXUqjVS0I3q7+HB2y12G/m69CA==} - engines: {node: '>=16'} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 - '@graphql-codegen/gql-tag-operations@5.0.3': - resolution: {integrity: sha512-G6YqeDMMuwMvAtlW+MUaQDoYgQtBuBrfp89IOSnj7YXqSc/TMOma3X5XeXM4/oeNDQyfm2A66j5H8DYf04mJZg==} + '@graphql-codegen/gql-tag-operations@5.1.2': + resolution: {integrity: sha512-BIv66VJ2bKlpfXBeVakJxihBSKnBIdGFLMaFdnGPxqYlKIzaGffjsGbhViPwwBinmBChW4Se6PU4Py7eysYEiA==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/near-operation-file-preset@3.1.0': resolution: {integrity: sha512-sXIIi0BPP3IcARdzSztpE51oJTcGB67hi7ddBYfLinks/R/5aFG1Ry/J61707Kt+6Q5WhTnf5XAQUAqi6200yA==} engines: {node: '>= 16.0.0'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/plugin-helpers@3.1.2': resolution: {integrity: sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - '@graphql-codegen/plugin-helpers@5.1.0': - resolution: {integrity: sha512-Y7cwEAkprbTKzVIe436TIw4w03jorsMruvCvu0HJkavaKMQbWY+lQ1RIuROgszDbxAyM35twB5/sUvYG5oW+yg==} - engines: {node: '>=16'} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/plugin-helpers@5.1.1': resolution: {integrity: sha512-28GHODK2HY1NhdyRcPP3sCz0Kqxyfiz7boIZ8qIxFYmpLYnlDgiYok5fhFLVSZihyOpCs4Fa37gVHf/Q4I2FEg==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 - '@graphql-codegen/plugin-helpers@6.0.0': - resolution: {integrity: sha512-Z7P89vViJvQakRyMbq/JF2iPLruRFOwOB6IXsuSvV/BptuuEd7fsGPuEf8bdjjDxUY0pJZnFN8oC7jIQ8p9GKA==} + '@graphql-codegen/plugin-helpers@6.1.0': + resolution: {integrity: sha512-JJypehWTcty9kxKiqH7TQOetkGdOYjY78RHlI+23qB59cV2wxjFFVf8l7kmuXS4cpGVUNfIjFhVr7A1W7JMtdA==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/schema-ast@4.1.0': resolution: {integrity: sha512-kZVn0z+th9SvqxfKYgztA6PM7mhnSZaj4fiuBWvMTqA+QqQ9BBed6Pz41KuD/jr0gJtnlr2A4++/0VlpVbCTmQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/schema-ast@5.0.0': resolution: {integrity: sha512-jn7Q3PKQc0FxXjbpo9trxzlz/GSFQWxL042l0iC8iSbM/Ar+M7uyBwMtXPsev/3Razk+osQyreghIz0d2+6F7Q==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 - '@graphql-codegen/typed-document-node@5.1.2': - resolution: {integrity: sha512-jaxfViDqFRbNQmfKwUY8hDyjnLTw2Z7DhGutxoOiiAI0gE/LfPe0LYaVFKVmVOOD7M3bWxoWfu4slrkbWbUbEw==} + '@graphql-codegen/typed-document-node@6.1.0': + resolution: {integrity: sha512-8YfZ+anIdfE4CAJG0nQFNNvTiqj5gNXoVIe4EhWIjf2joXziF1JIUlE1RIpasRMTHvLlQhWZoq4760l751XzbA==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 - '@graphql-codegen/typed-document-node@6.1.0': - resolution: {integrity: sha512-8YfZ+anIdfE4CAJG0nQFNNvTiqj5gNXoVIe4EhWIjf2joXziF1JIUlE1RIpasRMTHvLlQhWZoq4760l751XzbA==} + '@graphql-codegen/typed-document-node@6.1.5': + resolution: {integrity: sha512-6dgEPz+YRMzSPpATj7tsKh/L6Y8OZImiyXIUzvSq/dRAEgoinahrES5y/eZQyc7CVxfoFCyHF9KMQQ9jiLn7lw==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 - '@graphql-codegen/typescript-operations@4.6.1': - resolution: {integrity: sha512-k92laxhih7s0WZ8j5WMIbgKwhe64C0As6x+PdcvgZFMudDJ7rPJ/hFqJ9DCRxNjXoHmSjnr6VUuQZq4lT1RzCA==} + '@graphql-codegen/typescript-operations@5.0.2': + resolution: {integrity: sha512-i2nSJ5a65H+JgXwWvEuYehVYUImIvrHk3PTs+Fcj+OjZFvDl2qBziIhr6shCjV0KH9IZ6Y+1v4TzkxZr/+XFjA==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: optional: true - '@graphql-codegen/typescript-operations@5.0.2': - resolution: {integrity: sha512-i2nSJ5a65H+JgXwWvEuYehVYUImIvrHk3PTs+Fcj+OjZFvDl2qBziIhr6shCjV0KH9IZ6Y+1v4TzkxZr/+XFjA==} + '@graphql-codegen/typescript-operations@5.0.7': + resolution: {integrity: sha512-5N3myNse1putRQlp8+l1k9ayvc98oq2mPJx0zN8MTOlTBxcb2grVPFRLy5wJJjuv9NffpyCkVJ9LvUaf8mqQgg==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 graphql-sock: ^1.0.0 peerDependenciesMeta: graphql-sock: @@ -2525,348 +2423,229 @@ packages: resolution: {integrity: sha512-vpw3sfwf9A7S+kIUjyFxuvrywGxd4lmwmyYnnDVjVE4kSQ6Td3DpqaPTy8aNQ6O96vFoi/bxbZS2BW49PwSUUA==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 - '@graphql-codegen/typescript@5.0.2': - resolution: {integrity: sha512-OJYXpS9SRf4VFzqu3ZH/RmTftGhAVTCmscH63iPlvTlCT8NBmpSHdZ875AEa38LugdL8XgUcGsI3pprP3e5j/w==} + '@graphql-codegen/typescript@5.0.7': + resolution: {integrity: sha512-kZwcu9Iat5RWXxLGPnDbG6qVbGTigF25/aGqCG/DCQ1Al8RufSjVXhIOkJBp7QWAqXn3AupHXL1WTMXP7xs4dQ==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/visitor-plugin-common@2.13.8': resolution: {integrity: sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/visitor-plugin-common@5.8.0': resolution: {integrity: sha512-lC1E1Kmuzi3WZUlYlqB4fP6+CvbKH9J+haU1iWmgsBx5/sO2ROeXJG4Dmt8gP03bI2BwjiwV5WxCEMlyeuzLnA==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 '@graphql-codegen/visitor-plugin-common@6.1.0': resolution: {integrity: sha512-AvGO1pe+b/kAa7+WBDlNDXOruRZWv/NnhLHgTggiW2XWRv33biuzg4cF1UTdpR2jmESZzJU4kXngLLX8RYJWLA==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 + + '@graphql-codegen/visitor-plugin-common@6.2.2': + resolution: {integrity: sha512-wEJ4zJj58PKlXISItZfr0xIHyM1lAuRfoflPegsb1L17Mx5+YzNOy0WAlLele3yzyV89WvCiprFKMcVQ7KfDXg==} + engines: {node: '>=16'} + peerDependencies: + graphql: 16.10.0 '@graphql-hive/signal@1.0.0': resolution: {integrity: sha512-RiwLMc89lTjvyLEivZ/qxAC5nBHoS2CtsWFSOsN35sxG9zoo5Z+JsFHM8MlvmO9yt+MJNIyC5MLE1rsbOphlag==} engines: {node: '>=18.0.0'} - '@graphql-tools/apollo-engine-loader@8.0.20': - resolution: {integrity: sha512-m5k9nXSyjq31yNsEqDXLyykEjjn3K3Mo73oOKI+Xjy8cpnsgbT4myeUJIYYQdLrp7fr9Y9p7ZgwT5YcnwmnAbA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/apollo-engine-loader@8.0.28': resolution: {integrity: sha512-MzgDrUuoxp6dZeo54zLBL3cEJKJtM3N/2RqK0rbPxPq5X2z6TUA7EGg8vIFTUkt5xelAsUrm8/4ai41ZDdxOng==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/batch-execute@9.0.16': - resolution: {integrity: sha512-sLAzEPrmrMTJrlNqmmsc34DtMA//FsoTsGC3V5bHA+EnNlwbwhsSQBSNXvIwsPLRSRwSjGKOpDG7KSxldDe2Rg==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/batch-execute@9.0.19': resolution: {integrity: sha512-VGamgY4PLzSx48IHPoblRw0oTaBa7S26RpZXt0Y4NN90ytoE0LutlpB2484RbkfcTjv9wa64QD474+YP1kEgGA==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/code-file-loader@8.1.20': - resolution: {integrity: sha512-GzIbjjWJIc04KWnEr8VKuPe0FA2vDTlkaeub5p4lLimljnJ6C0QSkOyCUnFmsB9jetQcHm0Wfmn/akMnFUG+wA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/code-file-loader@8.1.28': resolution: {integrity: sha512-BL3Ft/PFlXDE5nNuqA36hYci7Cx+8bDrPDc8X3VSpZy9iKFBY+oQ+IwqnEHCkt8OSp2n2V0gqTg4u3fcQP1Kwg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/delegate@10.2.18': - resolution: {integrity: sha512-UynhjLwBZUapjNSHJ7FhGMd7/sRjqB7nk6EcYDZFWQkACTaQKa14Vkv2y2O6rEu61xQxP3/E1+fr/mLn46Zf9A==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/delegate@10.2.23': resolution: {integrity: sha512-xrPtl7f1LxS+B6o+W7ueuQh67CwRkfl+UKJncaslnqYdkxKmNBB4wnzVcW8ZsRdwbsla/v43PtwAvSlzxCzq2w==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/documents@1.0.1': resolution: {integrity: sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/executor-common@0.0.4': resolution: {integrity: sha512-SEH/OWR+sHbknqZyROCFHcRrbZeUAyjCsgpVWCRjqjqRbiJiXq6TxNIIOmpXgkrXWW/2Ev4Wms6YSGJXjdCs6Q==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/executor-common@0.0.6': resolution: {integrity: sha512-JAH/R1zf77CSkpYATIJw+eOJwsbWocdDjY+avY7G+P5HCXxwQjAjWVkJI1QJBQYjPQDVxwf1fmTZlIN3VOadow==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/executor-graphql-ws@2.0.5': - resolution: {integrity: sha512-gI/D9VUzI1Jt1G28GYpvm5ckupgJ5O8mi5Y657UyuUozX34ErfVdZ81g6oVcKFQZ60LhCzk7jJeykK48gaLhDw==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/executor-graphql-ws@2.0.7': resolution: {integrity: sha512-J27za7sKF6RjhmvSOwOQFeNhNHyP4f4niqPnerJmq73OtLx9Y2PGOhkXOEB0PjhvPJceuttkD2O1yMgEkTGs3Q==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/executor-http@1.3.3': resolution: {integrity: sha512-LIy+l08/Ivl8f8sMiHW2ebyck59JzyzO/yF9SFS4NH6MJZUezA1xThUXCDIKhHiD56h/gPojbkpcFvM2CbNE7A==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/executor-legacy-ws@1.1.17': - resolution: {integrity: sha512-TvltY6eL4DY1Vt66Z8kt9jVmNcI+WkvVPQZrPbMCM3rv2Jw/sWvSwzUBezRuWX0sIckMifYVh23VPcGBUKX/wg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/executor-legacy-ws@1.1.25': resolution: {integrity: sha512-6uf4AEXO0QMxJ7AWKVPqEZXgYBJaiz5vf29X0boG8QtcqWy8mqkXKWLND2Swdx0SbEx0efoGFcjuKufUcB0ASQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/executor@1.4.7': - resolution: {integrity: sha512-U0nK9jzJRP9/9Izf1+0Gggd6K6RNRsheFo1gC/VWzfnsr0qjcOSS9qTjY0OTC5iTPt4tQ+W5Zpw/uc7mebI6aA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/executor@1.5.1': resolution: {integrity: sha512-n94Qcu875Mji9GQ52n5UbgOTxlgvFJicBPYD+FRks9HKIQpdNPjkkrKZUYNG51XKa+bf03rxNflm4+wXhoHHrA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/git-loader@8.0.24': - resolution: {integrity: sha512-ypLC9N2bKNC0QNbrEBTbWKwbV607f7vK2rSGi9uFeGr8E29tWplo6or9V/+TM0ZfIkUsNp/4QX/zKTgo8SbwQg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/git-loader@8.0.32': resolution: {integrity: sha512-H5HTp2vevv0rRMEnCJBVmVF8md3LpJI1C1+d6OtzvmuONJ8mOX2mkf9rtoqwiztynVegaDUekvMFsc9k5iE2WA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/github-loader@8.0.20': - resolution: {integrity: sha512-Icch8bKZ1iP3zXCB9I0ded1hda9NPskSSalw7ZM21kXvLiOR5nZhdqPF65gCFkIKo+O4NR4Bp51MkKj+wl+vpg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/github-loader@8.0.22': resolution: {integrity: sha512-uQ4JNcNPsyMkTIgzeSbsoT9hogLjYrZooLUYd173l5eUGUi49EAcsGdiBCKaKfEjanv410FE8hjaHr7fjSRkJw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/graphql-file-loader@8.0.20': - resolution: {integrity: sha512-inds4My+JJxmg5mxKWYtMIJNRxa7MtX+XIYqqD/nu6G4LzQ5KGaBJg6wEl103KxXli7qNOWeVAUmEjZeYhwNEg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/graphql-file-loader@8.1.9': resolution: {integrity: sha512-rkLK46Q62Zxift8B6Kfw6h8SH3pCR3DPCfNeC/lpLwYReezZz+2ARuLDFZjQGjW+4lpMwiAw8CIxDyQAUgqU6A==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/graphql-tag-pluck@8.3.19': - resolution: {integrity: sha512-LEw/6IYOUz48HjbWntZXDCzSXsOIM1AyWZrlLoJOrA8QAlhFd8h5Tny7opCypj8FO9VvpPFugWoNDh5InPOEQA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/graphql-tag-pluck@8.3.27': resolution: {integrity: sha512-CJ0WVXhGYsfFngpRrAAcjRHyxSDHx4dEz2W15bkwvt9he/AWhuyXm07wuGcoLrl0q0iQp1BiRjU7D8SxWZo3JQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/import@7.0.19': - resolution: {integrity: sha512-Xtku8G4bxnrr6I3hVf8RrBFGYIbQ1OYVjl7jgcy092aBkNZvy1T6EDmXmYXn5F+oLd9Bks3K3WaMm8gma/nM/Q==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/import@7.1.9': resolution: {integrity: sha512-mHzOgyfzsAgstaZPIFEtKg4GVH4FbDHeHYrSs73mAPKS5F59/FlRuUJhAoRnxbVnc3qIZ6EsWBjOjNbnPK8viA==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/json-file-loader@8.0.18': - resolution: {integrity: sha512-JjjIxxewgk8HeMR3npR3YbOkB7fxmdgmqB9kZLWdkRKBxrRXVzhryyq+mhmI0Evzt6pNoHIc3vqwmSctG2sddg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/json-file-loader@8.0.26': resolution: {integrity: sha512-kwy9IFi5QtXXTLBgWkvA1RqsZeJDn0CxsTbhNlziCzmga9fNo7qtZ18k9FYIq3EIoQQlok+b7W7yeyJATA2xhw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/load@8.1.0': - resolution: {integrity: sha512-OGfOm09VyXdNGJS/rLqZ6ztCiG2g6AMxhwtET8GZXTbnjptFc17GtKwJ3Jv5w7mjJ8dn0BHydvIuEKEUK4ciYw==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/load@8.1.8': resolution: {integrity: sha512-gxO662b64qZSToK3N6XUxWG5E6HOUjlg5jEnmGvD4bMtGJ0HwEe/BaVZbBQemCfLkxYjwRIBiVfOY9o0JyjZJg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@9.0.24': - resolution: {integrity: sha512-NzWx/Afl/1qHT3Nm1bghGG2l4jub28AdvtG11PoUlmjcIjnFBJMv4vqL0qnxWe8A82peWo4/TkVdjJRLXwgGEw==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/merge@9.1.7': resolution: {integrity: sha512-Y5E1vTbTabvcXbkakdFUt4zUIzB1fyaEnVmIWN0l0GMed2gdD01TpZWLUm4RNAxpturvolrb24oGLQrBbPLSoQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/optimize@1.4.0': resolution: {integrity: sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/optimize@2.0.0': resolution: {integrity: sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/prisma-loader@8.0.17': - resolution: {integrity: sha512-fnuTLeQhqRbA156pAyzJYN0KxCjKYRU5bz1q/SKOwElSnAU4k7/G1kyVsWLh7fneY78LoMNH5n+KlFV8iQlnyg==} - engines: {node: '>=16.0.0'} - deprecated: 'This package was intended to be used with an older versions of Prisma.\nThe newer versions of Prisma has a different approach to GraphQL integration.\nTherefore, this package is no longer needed and has been deprecated and removed.\nLearn more: https://www.prisma.io/graphql' - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/relay-operation-optimizer@6.5.18': resolution: {integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/relay-operation-optimizer@7.0.19': - resolution: {integrity: sha512-xnjLpfzw63yIX1bo+BVh4j1attSwqEkUbpJ+HAhdiSUa3FOQFfpWgijRju+3i87CwhjBANqdTZbcsqLT1hEXig==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 - '@graphql-tools/schema@10.0.23': - resolution: {integrity: sha512-aEGVpd1PCuGEwqTXCStpEkmheTHNdMayiIKH1xDWqYp9i8yKv9FRDgkGrY4RD8TNxnf7iII+6KOBGaJ3ygH95A==} + '@graphql-tools/relay-operation-optimizer@7.0.27': + resolution: {integrity: sha512-rdkL1iDMFaGDiHWd7Bwv7hbhrhnljkJaD0MXeqdwQlZVgVdUDlMot2WuF7CEKVgijpH6eSC6AxXMDeqVgSBS2g==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/schema@10.0.31': resolution: {integrity: sha512-ZewRgWhXef6weZ0WiP7/MV47HXiuFbFpiDUVLQl6mgXsWSsGELKFxQsyUCBos60Qqy1JEFAIu3Ns6GGYjGkqkQ==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/url-loader@8.0.31': - resolution: {integrity: sha512-QGP3py6DAdKERHO5D38Oi+6j+v0O3rkBbnLpyOo87rmIRbwE6sOkL5JeHegHs7EEJ279fBX6lMt8ry0wBMGtyA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/url-loader@8.0.33': resolution: {integrity: sha512-Fu626qcNHcqAj8uYd7QRarcJn5XZ863kmxsg1sm0fyjyfBJnsvC7ddFt6Hayz5kxVKfsnjxiDfPMXanvsQVBKw==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/utils@10.7.2': resolution: {integrity: sha512-Wn85S+hfkzfVFpXVrQ0hjnePa3p28aB6IdAGCiD1SqBCSMDRzL+OFEtyAyb30nV9Mqflqs9lCqjqlR2puG857Q==} engines: {node: '>=16.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/wrap@10.0.36': - resolution: {integrity: sha512-sLm9j/T6mlKklSMOCDjrGMi39MRAUzRXsc8tTugZZl0yJEtfU7tX1UaYJQNVsar7vkjLofaWtS7Jf6vcWgGYgQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-tools/wrap@10.1.4': resolution: {integrity: sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==} engines: {node: '>=18.0.0'} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 '@graphql-typed-document-node/core@3.2.0': resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + graphql: 16.10.0 - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - '@inquirer/ansi@1.0.1': - resolution: {integrity: sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw==} - engines: {node: '>=18'} - '@inquirer/ansi@1.0.2': resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} engines: {node: '>=18'} - '@inquirer/checkbox@4.3.0': - resolution: {integrity: sha512-5+Q3PKH35YsnoPTh75LucALdAxom6xh5D1oeY561x4cqBuH24ZFVyFREPe14xgnrtmGu3EEt1dIi60wRVSnGCw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/checkbox@4.3.2': resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} engines: {node: '>=18'} @@ -2880,15 +2659,6 @@ packages: resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} engines: {node: '>=18'} - '@inquirer/confirm@5.1.19': - resolution: {integrity: sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ==} - 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'} @@ -2898,15 +2668,6 @@ packages: '@types/node': optional: true - '@inquirer/core@10.3.0': - resolution: {integrity: sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/core@10.3.2': resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} engines: {node: '>=18'} @@ -2920,8 +2681,8 @@ packages: resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} engines: {node: '>=18'} - '@inquirer/editor@4.2.21': - resolution: {integrity: sha512-MjtjOGjr0Kh4BciaFShYpZ1s9400idOdvQ5D7u7lE6VztPFoyLcVNE5dXBmEEIQq5zi4B9h2kU+q7AVBxJMAkQ==} + '@inquirer/editor@4.2.23': + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2929,8 +2690,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.23': - resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + '@inquirer/expand@4.0.23': + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2938,8 +2699,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.21': - resolution: {integrity: sha512-+mScLhIcbPFmuvU3tAGBed78XvYHSvCl6dBiYMlzCLhpr0bzGzd8tfivMMeqND6XZiaZ1tgusbUHJEfc6YzOdA==} + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2947,8 +2708,16 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.23': - resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/input@2.3.0': + resolution: {integrity: sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==} + engines: {node: '>=18'} + + '@inquirer/input@4.3.1': + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2956,74 +2725,8 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.2': - resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/external-editor@1.0.3': - resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/figures@1.0.14': - resolution: {integrity: sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ==} - engines: {node: '>=18'} - - '@inquirer/figures@1.0.15': - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} - engines: {node: '>=18'} - - '@inquirer/input@2.3.0': - resolution: {integrity: sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==} - engines: {node: '>=18'} - - '@inquirer/input@4.2.5': - resolution: {integrity: sha512-7GoWev7P6s7t0oJbenH0eQ0ThNdDJbEAEtVt9vsrYZ9FulIokvd823yLyhQlWHJPGce1wzP53ttfdCZmonMHyA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/input@4.3.1': - resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/number@3.0.21': - resolution: {integrity: sha512-5QWs0KGaNMlhbdhOSCFfKsW+/dcAVC2g4wT/z2MCiZM47uLgatC5N20kpkDQf7dHx+XFct/MJvvNGy6aYJn4Pw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@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.21': - resolution: {integrity: sha512-xxeW1V5SbNFNig2pLfetsDb0svWlKuhmr7MPJZMYuDnCTkpVBI+X/doudg4pznc1/U+yYmWFFOi4hNvGgUo7EA==} + '@inquirer/number@3.0.23': + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3049,15 +2752,6 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.9.0': - resolution: {integrity: sha512-X7/+dG9SLpSzRkwgG5/xiIzW0oMrV3C0HOa7YHG1WnrLK+vCQHfte4k/T80059YBdei29RBC3s+pSMvPJDU9/A==} - 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'} @@ -3067,24 +2761,6 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.9': - resolution: {integrity: sha512-AWpxB7MuJrRiSfTKGJ7Y68imYt8P9N3Gaa7ySdkFj1iWjr6WfbGAhdZvw/UnhFXTHITJzxGUI9k8IX7akAEBCg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/search@3.2.0': - resolution: {integrity: sha512-a5SzB/qrXafDX1Z4AZW3CsVoiNxcIYCzYP7r9RzrfMpaLpB+yWi5U8BWagZyLmwR0pKbbL5umnGRd0RzGVI8bQ==} - 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'} @@ -3098,15 +2774,6 @@ packages: resolution: {integrity: sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==} engines: {node: '>=18'} - '@inquirer/select@4.4.0': - resolution: {integrity: sha512-kaC3FHsJZvVyIjYBs5Ih8y8Bj4P/QItQWrZW22WJax7zTN+ZPXVGuOM55vzbdCP9zKUiBd9iEJVdesujfF+cAA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/select@4.4.2': resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} engines: {node: '>=18'} @@ -3133,21 +2800,12 @@ packages: '@types/node': optional: true - '@inquirer/type@3.0.9': - resolution: {integrity: sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w==} - 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==} + '@isaacs/brace-expansion@5.0.1': + resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} engines: {node: 20 || >=22} '@isaacs/cliui@8.0.2': @@ -3206,7 +2864,7 @@ packages: resolution: {integrity: sha512-ovONIUSW6NAlCpiPMaVw4PpdFoO3Kqi8TGQ2hTtjKTQTdPpSOdekPI1ZRnwciTeUn0yCAQk7M2xdrbIZeTh6pw==} peerDependencies: esbuild: '>=0.8.26' - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 graphql-tag: ^2.11.0 '@manypkg/find-root@1.1.0': @@ -3221,8 +2879,8 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - '@mswjs/interceptors@0.38.7': - resolution: {integrity: sha512-Jkb27iSn7JPdkqlTqKfhncFfnEZsIJVYxsFbUSWEkxdIPdsyngrhoDBk0/BGD2FQcRH99vlRrkHpNTyKqI+0/w==} + '@mswjs/interceptors@0.41.0': + resolution: {integrity: sha512-edAo9bW53BLYeSK+UPRr2Iz1Fj9DeGMjytvVM0HXRoo750ElWUgPsZPAOTQa12EUiwgDErH2PsFNTLvk1jBxjQ==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.12': @@ -3231,9 +2889,6 @@ packages: '@napi-rs/wasm-runtime@0.2.4': resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3415,28 +3070,28 @@ packages: resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} - '@octokit/core@6.1.5': - resolution: {integrity: sha512-vvmsN0r7rguA+FySiCsbaTTobSftpIDIpPW81trAmsv9TGxg3YCujAxRYp/Uy8xmDgYCzzgulG62H7KYUFmeIg==} + '@octokit/core@6.1.6': + resolution: {integrity: sha512-kIU8SLQkYWGp3pVKiYzA5OSaNF5EE03P/R8zEmmrG6XwOg5oBjXyQVVIauQ0dgau4zYhpZEhJrvIYt6oM+zZZA==} engines: {node: '>= 18'} - '@octokit/core@7.0.2': - resolution: {integrity: sha512-ODsoD39Lq6vR6aBgvjTnA3nZGliknKboc9Gtxr7E4WDNqY24MxANKcuDQSF0jzapvGb3KWOEDrKfve4HoWGK+g==} + '@octokit/core@7.0.6': + resolution: {integrity: sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==} engines: {node: '>= 20'} '@octokit/endpoint@10.1.4': resolution: {integrity: sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==} engines: {node: '>= 18'} - '@octokit/endpoint@11.0.0': - resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} + '@octokit/endpoint@11.0.2': + resolution: {integrity: sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==} engines: {node: '>= 20'} '@octokit/graphql@8.2.2': resolution: {integrity: sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==} engines: {node: '>= 18'} - '@octokit/graphql@9.0.1': - resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} + '@octokit/graphql@9.0.3': + resolution: {integrity: sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==} engines: {node: '>= 20'} '@octokit/openapi-types@12.11.0': @@ -3448,14 +3103,20 @@ packages: '@octokit/openapi-types@25.1.0': resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} + '@octokit/openapi-types@26.0.0': + resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} + + '@octokit/openapi-types@27.0.0': + resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} + '@octokit/plugin-paginate-rest@11.6.0': resolution: {integrity: sha512-n5KPteiF7pWKgBIBJSk8qzoZWcUkza2O6A0za97pMGVrGfPdltxrfmfF5GucHYvHGZD8BdaZmmHGz5cX/3gdpw==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-paginate-rest@13.0.1': - resolution: {integrity: sha512-m1KvHlueScy4mQJWvFDCxFBTIdXS0K1SgFGLmqHyX90mZdCIv6gWBbKRhatxRjhGlONuTK/hztYdaqrTXcFZdQ==} + '@octokit/plugin-paginate-rest@13.2.1': + resolution: {integrity: sha512-Tj4PkZyIL6eBMYcG/76QGsedF0+dWVeLhYprTmuFVVxzDW7PQh23tM0TP0z+1MvSkxB29YFZwnUX+cXfTiSdyw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -3478,8 +3139,8 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-rest-endpoint-methods@16.0.0': - resolution: {integrity: sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==} + '@octokit/plugin-rest-endpoint-methods@16.1.1': + resolution: {integrity: sha512-VztDkhM0ketQYSh5Im3IcKWFZl7VIrrsCaHbDINkdYeiiAsJzjhS2xRFCSJgfN6VOcsoW4laMtsmf3HcNqIimg==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' @@ -3488,16 +3149,16 @@ packages: resolution: {integrity: sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==} engines: {node: '>= 18'} - '@octokit/request-error@7.0.0': - resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} + '@octokit/request-error@7.1.0': + resolution: {integrity: sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==} engines: {node: '>= 20'} - '@octokit/request@10.0.2': - resolution: {integrity: sha512-iYj4SJG/2bbhh+iIpFmG5u49DtJ4lipQ+aPakjL9OKpsGY93wM8w06gvFbEQxcMsZcCvk5th5KkIm2m8o14aWA==} + '@octokit/request@10.0.7': + resolution: {integrity: sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==} engines: {node: '>= 20'} - '@octokit/request@9.2.3': - resolution: {integrity: sha512-Ma+pZU8PXLOEYzsWf0cn/gY+ME57Wq8f49WTXA8FMHp2Ps9djKw//xYJ1je8Hm0pR2lU9FUGeJRWOtxq6olt4w==} + '@octokit/request@9.2.4': + resolution: {integrity: sha512-q8ybdytBmxa6KogWlNa818r0k1wlqzNC+yNkcQDECHvQo8Vmstrg18JwqJHdJdUiHD2sjlwBgSm9kHkOKe2iyA==} engines: {node: '>= 18'} '@octokit/rest@21.1.1': @@ -3514,6 +3175,12 @@ packages: '@octokit/types@14.1.0': resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} + '@octokit/types@15.0.2': + resolution: {integrity: sha512-rR+5VRjhYSer7sC51krfCctQhVTmjyUMAaShfPB8mscVa8tSoLyon3coxQmXu0ahJoLVWl8dSGD/3OGZlFV44Q==} + + '@octokit/types@16.0.0': + resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} + '@octokit/types@6.41.0': resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} @@ -3651,86 +3318,86 @@ packages: cpu: [x64] os: [win32] - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + '@parcel/watcher-android-arm64@2.5.6': + resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + '@parcel/watcher-darwin-arm64@2.5.6': + resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + '@parcel/watcher-darwin-x64@2.5.6': + resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + '@parcel/watcher-freebsd-x64@2.5.6': + resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + '@parcel/watcher-linux-arm-glibc@2.5.6': + resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + '@parcel/watcher-linux-arm-musl@2.5.6': + resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + '@parcel/watcher-linux-arm64-glibc@2.5.6': + resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + '@parcel/watcher-linux-arm64-musl@2.5.6': + resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + '@parcel/watcher-linux-x64-glibc@2.5.6': + resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + '@parcel/watcher-linux-x64-musl@2.5.6': + resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + '@parcel/watcher-win32-arm64@2.5.6': + resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + '@parcel/watcher-win32-ia32@2.5.6': + resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + '@parcel/watcher-win32-x64@2.5.6': + resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + '@parcel/watcher@2.5.6': + resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} '@phenomnomnominal/tsquery@5.0.1': @@ -3742,8 +3409,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.1.2': - resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@pnpm/config.env-replace@1.1.0': @@ -3754,10 +3421,6 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} - engines: {node: '>=12'} - '@pnpm/npm-conf@3.0.2': resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} engines: {node: '>=12'} @@ -3792,8 +3455,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@remix-run/router@1.23.0': - resolution: {integrity: sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==} + '@remix-run/router@1.23.2': + resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} engines: {node: '>=14.0.0'} '@repeaterjs/repeater@3.0.6': @@ -3803,119 +3466,131 @@ packages: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - '@rollup/rollup-android-arm-eabi@4.52.5': - resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} + '@rollup/rollup-android-arm-eabi@4.57.1': + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.52.5': - resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} + '@rollup/rollup-android-arm64@4.57.1': + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.52.5': - resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} + '@rollup/rollup-darwin-arm64@4.57.1': + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.52.5': - resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} + '@rollup/rollup-darwin-x64@4.57.1': + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.52.5': - resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} + '@rollup/rollup-freebsd-arm64@4.57.1': + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.52.5': - resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} + '@rollup/rollup-freebsd-x64@4.57.1': + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': - resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.52.5': - resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.52.5': - resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} + '@rollup/rollup-linux-arm64-gnu@4.57.1': + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.52.5': - resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} + '@rollup/rollup-linux-arm64-musl@4.57.1': + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.52.5': - resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} + '@rollup/rollup-linux-loong64-gnu@4.57.1': + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.57.1': + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.52.5': - resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.52.5': - resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} + '@rollup/rollup-linux-ppc64-musl@4.57.1': + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.52.5': - resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} + '@rollup/rollup-linux-riscv64-musl@4.57.1': + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.52.5': - resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} + '@rollup/rollup-linux-s390x-gnu@4.57.1': + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.52.5': - resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} + '@rollup/rollup-linux-x64-gnu@4.57.1': + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.52.5': - resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} + '@rollup/rollup-linux-x64-musl@4.57.1': + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.52.5': - resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} + '@rollup/rollup-openbsd-x64@4.57.1': + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.57.1': + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.52.5': - resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} + '@rollup/rollup-win32-arm64-msvc@4.57.1': + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.52.5': - resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} + '@rollup/rollup-win32-ia32-msvc@4.57.1': + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.52.5': - resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} + '@rollup/rollup-win32-x64-gnu@4.57.1': + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.52.5': - resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} + '@rollup/rollup-win32-x64-msvc@4.57.1': + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} cpu: [x64] os: [win32] - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} @@ -3963,12 +3638,12 @@ packages: '@shopify/eslint-plugin-cli@file:packages/eslint-plugin-cli': resolution: {directory: packages/eslint-plugin-cli, type: directory} peerDependencies: - eslint: ^8.48.0 + eslint: ^9.0.0 - '@shopify/eslint-plugin@42.1.0': - resolution: {integrity: sha512-b45SXfXoE9+BvQjHrhInWlOMhsXrqIzts+setaXecR5WW6NcEKeeSfHvTvLVk231NHnrE5h+MuHp1Ci1pR5nfA==} + '@shopify/eslint-plugin@50.0.0': + resolution: {integrity: sha512-QBuZjOpzaXvq6jC/wl9iy8LRLwMPWxWehFBfUc5vvkmp/P58fO2ljzJfOEkClN5tCe6z6+RfTuzX4vPx6dhJIA==} peerDependencies: - eslint: ^8.3.0 + eslint: ^9.27.0 '@shopify/function-enhancers@2.0.8': resolution: {integrity: sha512-/nv59+ycOVV2ZKixl6V1d+xJmfMN40qUEmpFgbXhCnNjAE/vz3nJPal70Esp4Li2NR3GzKVJklZk3Y3pG+W1vw==} @@ -4317,7 +3992,7 @@ packages: resolution: {integrity: sha512-+LlHTa4UbRpZBog3ggAxjYIFvdfH3UMvvBUptur19TMWkqU4+n3GmN+mDjejU+dyBXIG27c25RsiQP1HyvM99g==} engines: {node: '>=18'} peerDependencies: - graphql: ^16.0.0 + graphql: 16.10.0 '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} @@ -4329,8 +4004,8 @@ packages: '@ts-morph/common@0.21.0': resolution: {integrity: sha512-ES110Mmne5Vi4ypUKrtVQfXFDtCsDXiUiGxF6ILVlE90dDD4fdpC1LSjydl/ml7xJWKSDZwUYD2zkOePMSrPBA==} - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -4350,14 +4025,14 @@ packages: '@types/archiver@5.3.2': resolution: {integrity: sha512-IctHreBuWE5dvBDz/0WeKtyVKVRs4h75IblxOACL92wU66v+HGAfEYAOyXkOFphvRJMhuXdI9huDXpX0FC6lCw==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} '@types/brotli@1.3.4': resolution: {integrity: sha512-cKYjgaS2DMdCKF7R0F5cgx1nfBYObN2ihIuPGQ4/dlIY6RpV7OWNwe9L8V4tTVKL2eZqOkNM9FM/rgTvLf4oXw==} - '@types/chai@5.2.2': - resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} '@types/cli-progress@3.11.6': resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} @@ -4368,9 +4043,6 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} @@ -4380,17 +4052,18 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + '@types/express-serve-static-core@4.19.8': + resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} - '@types/express@4.17.22': - resolution: {integrity: sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==} + '@types/express@4.17.25': + resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} + '@types/glob@9.0.0': + resolution: {integrity: sha512-00UxlRaIUvYm4R4W9WYkN8/J+kV8fmOQ7okeH6YFtGWFMt3odD45tpG5yA5wnL7HE6lLgjaTW5n14ju2hl2NNA==} + deprecated: This is a stub types definition. glob provides its own type definitions, so you do not need this installed. '@types/global-agent@3.0.0': resolution: {integrity: sha512-OmvaPJtTaY/wd1hxelLJmf8oKQpmKZdrlfQ+MWL59eKSEHJDDEifIo69248bdJ0yLIN+iMNQ6sKMtnwU6AxajA==} @@ -4401,14 +4074,16 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/hoist-non-react-statics@3.3.6': - resolution: {integrity: sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==} + '@types/hoist-non-react-statics@3.3.7': + resolution: {integrity: sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==} + peerDependencies: + '@types/react': 18.3.12 - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -4419,24 +4094,15 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/lodash@4.17.19': resolution: {integrity: sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ==} '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} @@ -4449,11 +4115,8 @@ packages: '@types/node@18.19.70': resolution: {integrity: sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==} - '@types/node@22.18.8': - resolution: {integrity: sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==} - - '@types/node@24.7.0': - resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} + '@types/node@22.19.9': + resolution: {integrity: sha512-PD03/U8g1F9T9MI+1OBisaIARhSzeidsUjQaf51fOxrfjeiKN9bLVO06lHuHYjxdnqLWJijJHfqXPSJri2EM2A==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4464,8 +4127,8 @@ packages: '@types/prettier@2.7.3': resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} '@types/proper-lockfile@4.1.4': resolution: {integrity: sha512-uo2ABllncSqg9F1D4nugVl9v93RmjxF6LJzQLMLDdPaXCUIDPeOJ21Gbqi43xNKzBi/WQ0Q0dICqufzQbMjipQ==} @@ -4484,8 +4147,10 @@ packages: peerDependencies: '@types/react': 18.3.12 - '@types/react-dom@18.2.0': - resolution: {integrity: sha512-8yQrvS6sMpSwIovhPOwfyNf2Wz6v/B62LFSVYQ85+Rq3tLsBIG7rP5geMxaijTUxSkrO6RzN/IRuIAADYQsleA==} + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': 18.3.12 '@types/react-transition-group@4.4.12': resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} @@ -4504,17 +4169,20 @@ packages: '@types/rimraf@3.0.2': resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} - '@types/semver@7.7.0': - resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/send@0.17.6': + resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + '@types/serve-static@1.15.10': + resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} - '@types/statuses@2.0.5': - resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + '@types/statuses@2.0.6': + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} '@types/tinycolor2@1.4.6': resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} @@ -4522,18 +4190,12 @@ packages: '@types/tmp@0.2.6': resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} '@types/uuid@10.0.0': resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - '@types/uuid@9.0.1': - resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==} - '@types/which@3.0.4': resolution: {integrity: sha512-liyfuo/106JdlgSchJzXEQCVArk0CvevqPote8F8HgWgJ3dRCcTHgJIsLDuee0kxk/mhbInzIZk3QWSZJ8R+2w==} @@ -4546,267 +4208,287 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@15.0.19': - resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} + '@types/yargs@15.0.20': + resolution: {integrity: sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==} - '@typescript-eslint/eslint-plugin@5.62.0': - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/eslint-plugin@8.33.0': + resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser': ^8.33.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@7.13.1': - resolution: {integrity: sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.54.0': + resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser': ^8.54.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/experimental-utils@5.62.0': - resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/parser@8.33.0': + resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@5.62.0': - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/parser@8.54.0': + resolution: {integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' - '@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/project-service@8.33.0': + resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/project-service@8.43.0': - resolution: {integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==} + '@typescript-eslint/project-service@8.54.0': + resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/scope-manager@7.13.1': - resolution: {integrity: sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==} - engines: {node: ^18.18.0 || >=20.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.33.0': + resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.43.0': - resolution: {integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==} + '@typescript-eslint/scope-manager@8.54.0': + resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.43.0': - resolution: {integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==} + '@typescript-eslint/tsconfig-utils@8.33.0': + resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@5.62.0': - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/tsconfig-utils@8.54.0': + resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@7.13.1': - resolution: {integrity: sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@8.33.0': + resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.43.0': - resolution: {integrity: sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==} + '@typescript-eslint/type-utils@8.54.0': + resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} 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@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/types@7.13.1': - resolution: {integrity: sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==} - engines: {node: ^18.18.0 || >=20.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.43.0': - resolution: {integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==} + '@typescript-eslint/types@8.33.0': + resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.13.1': - resolution: {integrity: sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.54.0': + resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.33.0': + resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.43.0': - resolution: {integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==} + '@typescript-eslint/typescript-estree@8.54.0': + resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/utils@7.13.1': - resolution: {integrity: sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.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/utils@8.33.0': + resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.43.0': - resolution: {integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==} + '@typescript-eslint/utils@8.54.0': + resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} 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@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/visitor-keys@7.13.1': - resolution: {integrity: sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==} - engines: {node: ^18.18.0 || >=20.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.33.0': + resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.43.0': - resolution: {integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==} + '@typescript-eslint/visitor-keys@8.54.0': + resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] - '@vitejs/plugin-react-refresh@1.3.6': - resolution: {integrity: sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA==} - engines: {node: '>=12.0.0'} - deprecated: This package has been deprecated in favor of @vitejs/plugin-react + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] - '@vitest/coverage-istanbul@3.2.1': - resolution: {integrity: sha512-GLNByl+nFP1GPAhmlL7iFVonVKk/GuZcCfNSXX6uPuH30X62jmQy3ZkzxTZoHLkTQwTONM/JY9sxVjQyuL6koQ==} - peerDependencies: - vitest: 3.2.1 + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] - '@vitest/expect@3.2.1': - resolution: {integrity: sha512-FqS/BnDOzV6+IpxrTg5GQRyLOCtcJqkwMwcS8qGCI2IyRVDwPAtutztaf1CjtPHlZlWtl1yUPCd7HM0cNiDOYw==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] - '@vitest/mocker@3.2.1': - resolution: {integrity: sha512-OXxMJnx1lkB+Vl65Re5BrsZEHc90s5NMjD23ZQ9NlU7f7nZiETGoX4NeKZSmsKjseuMq2uOYXdLOeoM0pJU+qw==} - peerDependencies: - msw: ^2.4.9 - vite: 6.4.1 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] - '@vitest/pretty-format@3.2.1': - resolution: {integrity: sha512-xBh1X2GPlOGBupp6E1RcUQWIxw0w/hRLd3XyBS6H+dMdKTAqHDNsIR2AnJwPA3yYe9DFy3VUKTe3VRTrAiQ01g==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] - '@vitest/runner@3.2.1': - resolution: {integrity: sha512-kygXhNTu/wkMYbwYpS3z/9tBe0O8qpdBuC3dD/AW9sWa0LE/DAZEjnHtWA9sIad7lpD4nFW1yQ+zN7mEKNH3yA==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] - '@vitest/snapshot@3.2.1': - resolution: {integrity: sha512-5xko/ZpW2Yc65NVK9Gpfg2y4BFvcF+At7yRT5AHUpTg9JvZ4xZoyuRY4ASlmNcBZjMslV08VRLDrBOmUe2YX3g==} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] - '@vitest/spy@3.2.1': - resolution: {integrity: sha512-Nbfib34Z2rfcJGSetMxjDCznn4pCYPZOtQYox2kzebIJcgH75yheIKd5QYSFmR8DIZf2M8fwOm66qSDIfRFFfQ==} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] - '@vitest/utils@3.2.1': - resolution: {integrity: sha512-KkHlGhePEKZSub5ViknBcN5KEF+u7dSUr9NW8QsVICusUojrgrOnnY3DEWWO877ax2Pyopuk2qHmt+gkNKnBVw==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] - '@vscode/l10n@0.0.18': - resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] - '@vscode/web-custom-data@0.4.13': - resolution: {integrity: sha512-2ZUIRfhofZ/npLlf872EBnPmn27Kt4M2UssmQIfnJvgGgMYZJ5fvtHEDnttBBf2hnVtBgNCqZMVHJA+wsFVqTA==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] - '@whatwg-node/disposablestack@0.0.6': - resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} - engines: {node: '>=18.0.0'} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] - '@whatwg-node/fetch@0.10.13': - resolution: {integrity: sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q==} - engines: {node: '>=18.0.0'} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] - '@whatwg-node/fetch@0.10.8': - resolution: {integrity: sha512-Rw9z3ctmeEj8QIB9MavkNJqekiu9usBCSMZa+uuAvM0lF3v70oQVCXNppMIqaV6OTZbdaHF1M2HLow58DEw+wg==} - engines: {node: '>=18.0.0'} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] - '@whatwg-node/node-fetch@0.7.21': - resolution: {integrity: sha512-QC16IdsEyIW7kZd77aodrMO7zAoDyyqRCTLg+qG4wqtP4JV9AA+p7/lgqMdD29XyiYdVvIdFrfI9yh7B1QvRvw==} - engines: {node: '>=18.0.0'} + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] - '@whatwg-node/node-fetch@0.8.5': + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + + '@vitejs/plugin-react-refresh@1.3.6': + resolution: {integrity: sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA==} + engines: {node: '>=12.0.0'} + deprecated: This package has been deprecated in favor of @vitejs/plugin-react + + '@vitest/coverage-istanbul@3.2.4': + resolution: {integrity: sha512-IDlpuFJiWU9rhcKLkpzj8mFu/lpe64gVgnV15ZOrYx1iFzxxrxCzbExiUEKtwwXRvEiEMUS6iZeYgnMxgbqbxQ==} + peerDependencies: + vitest: 3.2.4 + + '@vitest/eslint-plugin@1.1.44': + resolution: {integrity: sha512-m4XeohMT+Dj2RZfxnbiFR+Cv5dEC0H7C6TlxRQT7GK2556solm99kxgzJp/trKrZvanZcOFyw7aABykUTfWyrg==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.24.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + peerDependencies: + msw: ^2.4.9 + vite: 6.4.1 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + '@vscode/web-custom-data@0.4.13': + resolution: {integrity: sha512-2ZUIRfhofZ/npLlf872EBnPmn27Kt4M2UssmQIfnJvgGgMYZJ5fvtHEDnttBBf2hnVtBgNCqZMVHJA+wsFVqTA==} + + '@whatwg-node/disposablestack@0.0.6': + resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} + engines: {node: '>=18.0.0'} + + '@whatwg-node/fetch@0.10.13': + resolution: {integrity: sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q==} + engines: {node: '>=18.0.0'} + + '@whatwg-node/node-fetch@0.8.5': resolution: {integrity: sha512-4xzCl/zphPqlp9tASLVeUhB5+WJHbuWGYpfoC2q1qh5dw0AqZBW7L27V5roxYWijPxj4sspRAAoOH3d2ztaHUQ==} engines: {node: '>=18.0.0'} @@ -4858,10 +4540,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -4899,12 +4577,8 @@ packages: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} - ansi-escapes@7.1.1: - resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} - engines: {node: '>=18'} - - ansi-escapes@7.2.0: - resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} + ansi-escapes@7.3.0: + resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} engines: {node: '>=18'} ansi-regex@4.1.1: @@ -5005,10 +4679,6 @@ packages: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} - array.prototype.flat@1.3.3: resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} @@ -5066,8 +4736,8 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - atomically@2.0.3: - resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + atomically@2.1.0: + resolution: {integrity: sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==} auto-bind@4.0.0: resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} @@ -5081,8 +4751,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.10.3: - resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} + axe-core@4.11.1: + resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} axios@1.13.4: @@ -5101,8 +4771,8 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - babel-plugin-polyfill-corejs2@0.4.14: - resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} + babel-plugin-polyfill-corejs2@0.4.15: + resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -5111,8 +4781,13 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.5: - resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} + babel-plugin-polyfill-corejs3@0.14.0: + resolution: {integrity: sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.6: + resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -5139,8 +4814,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.4: - resolution: {integrity: sha512-L+YvJwGAgwJBV1p6ffpSTa2KRc69EeeYGYjRVWKs0GKrK+LON0GC0gV+rKSNtALEDvMDqkvCFq9r1r94/Gjwxw==} + baseline-browser-mapping@2.9.19: + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} hasBin: true before-after-hook@3.0.2: @@ -5171,8 +4846,8 @@ packages: bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - bowser@2.12.1: - resolution: {integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==} + bowser@2.13.1: + resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -5190,8 +4865,8 @@ packages: browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - browserslist@4.26.0: - resolution: {integrity: sha512-P9go2WrP9FiPwLv3zqRD/Uoxo0RSHjzFCiQz7d4vbmwNqQFo9T9WCeP/Qn5EbcKQY6DBbkxEXNcpJOmncNrb7A==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -5270,8 +4945,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001741: - resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==} + caniuse-lite@1.0.30001768: + resolution: {integrity: sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -5280,9 +4955,9 @@ packages: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -5296,10 +4971,6 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - change-case-all@1.0.15: resolution: {integrity: sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==} @@ -5309,14 +4980,11 @@ packages: change-case@5.4.4: resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} - chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} - chardet@2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} engines: {node: '>= 16'} chokidar@3.5.3: @@ -5381,10 +5049,6 @@ packages: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} - cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} - cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -5393,10 +5057,6 @@ packages: resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==} engines: {node: '>=20'} - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} @@ -5477,13 +5137,13 @@ packages: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} - commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + commander@14.0.0: + resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} engines: {node: '>=20'} - commander@9.1.0: - resolution: {integrity: sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w==} - engines: {node: ^12.20.0 || >=14} + commander@14.0.3: + resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} + engines: {node: '>=20'} commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} @@ -5493,6 +5153,10 @@ packages: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} + comment-parser@1.4.5: + resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} + engines: {node: '>= 12.0.0'} + common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -5563,15 +5227,15 @@ packages: 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'} copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - core-js-compat@3.45.1: - resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} + core-js-compat@3.48.0: + resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -5681,9 +5345,6 @@ packages: resolution: {integrity: sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==} engines: {node: '>=12'} - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - debounce@2.2.0: resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} engines: {node: '>=18'} @@ -5730,8 +5391,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-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -5816,10 +5477,9 @@ packages: resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} engines: {node: '>=12.20'} - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} detect-newline@4.0.1: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} @@ -5857,10 +5517,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} @@ -5906,8 +5562,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.218: - resolution: {integrity: sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==} + electron-to-chromium@1.5.286: + resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -5929,6 +5585,10 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + enhanced-resolve@5.19.0: + resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} + engines: {node: '>=10.13.0'} + enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -5941,8 +5601,8 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@6.0.0: - resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} env-paths@2.2.1: @@ -5963,8 +5623,8 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -5975,8 +5635,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + es-iterator-helpers@1.2.2: + resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: @@ -5998,8 +5658,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.43.0: - resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} + es-toolkit@1.44.0: + resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -6047,17 +5707,48 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@8.10.0: - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-prettier@10.1.5: + resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-config-prettier@9.1.2: + resolution: {integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-context@0.1.9: + resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true + + eslint-import-resolver-typescript@4.4.4: + resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} + engines: {node: ^16.17.0 || >=18.6.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + eslint-module-utils@2.12.1: + resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -6077,11 +5768,11 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.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: '>=4.19.1' + eslint: '>=8' eslint-plugin-eslint-comments@3.2.0: resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} @@ -6089,14 +5780,17 @@ packages: peerDependencies: eslint: '>=4.19.1' - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} - engines: {node: '>=4'} + eslint-plugin-import-x@4.16.1: + resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + '@typescript-eslint/utils': ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + eslint-import-resolver-node: '*' peerDependenciesMeta: - '@typescript-eslint/parser': + '@typescript-eslint/utils': + optional: true + eslint-import-resolver-node: optional: true eslint-plugin-jest-formatting@3.1.0: @@ -6105,12 +5799,12 @@ packages: peerDependencies: eslint: '>=0.8.0' - eslint-plugin-jest@25.7.0: - resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + eslint-plugin-jest@28.14.0: + resolution: {integrity: sha512-P9s/qXSMTpRTerE2FQ0qJet2gKbcGyFTPAJipoKxmWqR6uuFqIqk8FuEfg5yBieOezVrEfAMZrEwJ6yEp+1MFQ==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 jest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -6118,8 +5812,8 @@ packages: jest: optional: true - eslint-plugin-jsdoc@48.11.0: - resolution: {integrity: sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==} + eslint-plugin-jsdoc@50.7.1: + resolution: {integrity: sha512-XBnVA5g2kUVokTNUiE1McEPse5n9/mNUmuJcx52psT6zBs2eVcXSmQBvjfa7NZdfLVSy3u1pEDDUxoxpwy89WA==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -6130,42 +5824,45 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + eslint-plugin-n@17.23.2: + resolution: {integrity: sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + eslint-plugin-no-catch-all@1.1.0: resolution: {integrity: sha512-VkP62jLTmccPrFGN/W6V7a3SEwdtTZm+Su2k4T3uyJirtkm0OMMm97h7qd8pRFAHus/jQg9FpUpLRc7sAylBEQ==} peerDependencies: eslint: '>=2.0.0' - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - - eslint-plugin-prettier@4.2.1: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + eslint-plugin-prettier@5.5.1: + resolution: {integrity: sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' + 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} + eslint-plugin-promise@7.2.1: + resolution: {integrity: sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + 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 + 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@7.37.3: - resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 @@ -6179,52 +5876,18 @@ packages: eslint-plugin-tsdoc@0.4.0: resolution: {integrity: sha512-MT/8b4aKLdDClnS8mP3R/JNjg29i0Oyqd/0ym6NnQf+gfKbJJ4ZcSh2Bs1H0YiUMTBwww5JwXGTWot/RwyJ7aQ==} - eslint-plugin-unused-imports@3.2.0: - resolution: {integrity: sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': 6 - 7 - eslint: '8' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-plugin-vitest@0.5.4: - resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} - engines: {node: ^18.0.0 || >= 20.0.0} + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} peerDependencies: - '@typescript-eslint/eslint-plugin': '*' - eslint: ^8.57.0 || ^9.0.0 - vitest: '*' + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true - vitest: - optional: true - - eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} + 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: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} @@ -6234,14 +5897,18 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} + 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==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: @@ -6253,18 +5920,14 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} 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'} @@ -6286,15 +5949,15 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} execa@7.2.0: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - 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'} express@4.21.2: @@ -6335,8 +5998,8 @@ packages: fast-safe-stringify@1.2.3: resolution: {integrity: sha512-QJYT/i0QYoiZBQ71ivxdyTqkwKkQ0oxACXHYxH2zYHJEgzi2LsbjgvtzTbLi1SZcF190Db2YP7I7eTsU2egOlw==} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} fast-xml-parser@5.3.4: resolution: {integrity: sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==} @@ -6346,8 +6009,8 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -6382,9 +6045,9 @@ packages: resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} engines: {node: '>=14'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -6427,9 +6090,9 @@ packages: find-yarn-workspace-root@2.0.0: resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.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==} @@ -6470,10 +6133,6 @@ packages: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} - formatly@0.2.4: resolution: {integrity: sha512-lIN7GpcvX/l/i24r/L9bnJ0I8Qn01qijWpQpDDvTLL29nKqSaJJu4h20+7VJ6m2CAhQ2/En/GbxDiHCzq/0MyA==} engines: {node: '>=18.3.0'} @@ -6535,6 +6194,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -6581,6 +6244,9 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} + get-tsconfig@4.13.3: + resolution: {integrity: sha512-vp8Cj/+9Q/ibZUrq1rhy8mCTQpCk31A3uu9wc1C50yAb3x2pFHOsGdAZQ7jD86ARayyxZUViYeIztW+GE8dcrg==} + git-diff@2.0.6: resolution: {integrity: sha512-/Iu4prUrydE3Pb3lCBMbcSNIf81tgGt0W1ZwknnyF62t3tHmtiJTRj0f+1ZIhp3+Rh0ktz1pJVoa7ZXUCskivA==} engines: {node: '>= 4.8.0'} @@ -6599,16 +6265,14 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - glob@11.0.3: - resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + glob@13.0.1: + resolution: {integrity: sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==} engines: {node: 20 || >=22} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -6627,14 +6291,18 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - 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.15.0: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} + globals@16.2.0: + resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -6643,6 +6311,9 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -6672,14 +6343,14 @@ packages: resolution: {integrity: sha512-qEqV3WloTfj7Tvl4B1WD9pn2ewYxoZS8mzdV9w0/wdIcR9XlFmjJygxEGM0Gll1cTEayKGWMK7qarbRQMn+mGg==} engines: {node: '>=16'} peerDependencies: - graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 graphql-config@5.1.5: resolution: {integrity: sha512-mG2LL1HccpU8qg5ajLROgdsBzx/o2M6kgI3uAmoaXiSH9PCUbtIyLomLqUtCFaAeG2YCFsl0M5cfQ9rKmDoMVA==} engines: {node: '>= 16.0.0'} peerDependencies: cosmiconfig-toml-loader: ^1.0.0 - graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: 16.10.0 peerDependenciesMeta: cosmiconfig-toml-loader: optional: true @@ -6687,37 +6358,18 @@ packages: graphql-request@6.1.0: resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} peerDependencies: - graphql: 14 - 16 + graphql: 16.10.0 - graphql-request@7.2.0: - resolution: {integrity: sha512-0GR7eQHBFYz372u9lxS16cOtEekFlZYB2qOyq8wDvzRmdRSJ0mgUVX1tzNcIzk3G+4NY+mGtSz411wZdeDF/+A==} + graphql-request@7.4.0: + resolution: {integrity: sha512-xfr+zFb/QYbs4l4ty0dltqiXIp07U6sl+tOKAb0t50/EnQek6CVVBLjETXi+FghElytvgaAWtIOt3EV7zLzIAQ==} peerDependencies: - graphql: 14 - 16 + graphql: 16.10.0 graphql-tag@2.12.6: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} peerDependencies: - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - - graphql-ws@6.0.5: - resolution: {integrity: sha512-HzYw057ch0hx2gZjkbgk1pur4kAtgljlWRP+Gccudqm3BRrTpExjWCQ9OHdIsq47Y6lHL++1lTvuQHhgRRcevw==} - engines: {node: '>=20'} - peerDependencies: - '@fastify/websocket': ^10 || ^11 - crossws: ~0.3 - graphql: ^15.10.1 || ^16 - uWebSockets.js: ^20 - ws: ^8 - peerDependenciesMeta: - '@fastify/websocket': - optional: true - crossws: - optional: true - uWebSockets.js: - optional: true - ws: - optional: true + graphql: 16.10.0 graphql-ws@6.0.7: resolution: {integrity: sha512-yoLRW+KRlDmnnROdAu7sX77VNLC0bsFoZyGQJLy1cF+X/SkLg/fWkRGrEEYQK8o2cafJ2wmEaMqMEZB3U3DYDg==} @@ -6725,7 +6377,7 @@ packages: peerDependencies: '@fastify/websocket': ^10 || ^11 crossws: ~0.3 - graphql: ^15.10.1 || ^16 + graphql: 16.10.0 ws: ^8 peerDependenciesMeta: '@fastify/websocket': @@ -6804,6 +6456,10 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.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@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} @@ -6826,10 +6482,6 @@ packages: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - http-proxy-node16@1.0.6: resolution: {integrity: sha512-RLtYkbmbLmh+To4lmqLpiEitu0igXb/j1SOW8F6w/esXsapGT5dSShMF9vg7shtxGJSXaWiFE3wYWCoLOuiibg==} engines: {node: '>=8.0.0'} @@ -6842,12 +6494,8 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - human-id@4.1.2: - resolution: {integrity: sha512-v/J+4Z/1eIJovEBdlV5TYj1IR+ZiohcYGRY+qN/oC9dAfKzVT023N/Bgw37hrKCoVRBvk3bqyzpr2PP5YeTMSg==} + human-id@4.1.3: + resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} hasBin: true human-signals@4.3.1: @@ -6866,10 +6514,6 @@ packages: 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'} - iconv-lite@0.7.2: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} @@ -6893,8 +6537,8 @@ packages: resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} engines: {node: '>=0.8.0'} - immutable@5.1.2: - resolution: {integrity: sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==} + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -6960,10 +6604,6 @@ packages: react-devtools-core: optional: true - inquirer@8.2.7: - resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} - engines: {node: '>=12.0.0'} - internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -7012,6 +6652,9 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -7065,8 +6708,8 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -7269,8 +6912,8 @@ 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'} iterator.prototype@1.1.5: @@ -7280,10 +6923,6 @@ packages: 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.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} @@ -7305,12 +6944,8 @@ packages: resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} engines: {node: '>= 10.14.2'} - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true jju@1.4.0: @@ -7322,20 +6957,19 @@ 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.2: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} jsdom@20.0.3: @@ -7347,11 +6981,6 @@ packages: canvas: optional: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -7377,8 +7006,8 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-schema-typed@8.0.1: - resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==} + json-schema-typed@8.0.2: + resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -7394,17 +7023,13 @@ packages: resolution: {integrity: sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==} engines: {node: '>= 0.2.0'} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - jsonc-eslint-parser@2.4.0: - resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + jsonc-eslint-parser@2.4.2: + resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} jsonc-parser@3.2.0: @@ -7416,8 +7041,8 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} @@ -7482,15 +7107,6 @@ packages: engines: {node: '>=14'} hasBin: true - listr2@4.0.5: - resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} - engines: {node: '>=12'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - listr2@9.0.5: resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} engines: {node: '>=20.0.0'} @@ -7543,9 +7159,6 @@ packages: lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - lodash@4.17.23: resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} @@ -7553,10 +7166,6 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} - engines: {node: '>=10'} - log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} @@ -7572,8 +7181,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} lower-case-first@2.0.2: resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} @@ -7588,8 +7197,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.2: - resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} + lru-cache@11.2.5: + resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -7598,15 +7207,15 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - luxon@3.7.1: - resolution: {integrity: sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==} + luxon@3.7.2: + resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} engines: {node: '>=12'} macaddress@0.5.3: resolution: {integrity: sha512-vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg==} - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -7671,8 +7280,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - meros@1.3.0: - resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} + meros@1.3.2: + resolution: {integrity: sha512-Q3mobPbvEx7XbwhnC1J1r60+5H6EZyNccdzSz0eGexJRwouUtTZxPVRGdqKtxlpD84ScK4+tIGldkqDtCKdI0A==} engines: {node: '>=13'} peerDependencies: '@types/node': '>=13' @@ -7734,6 +7343,10 @@ packages: resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} engines: {node: 20 || >=22} + minimatch@10.1.2: + resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -7796,8 +7409,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.8.7: - resolution: {integrity: sha512-0TGfV4oQiKpa3pDsQBDf0xvFP+sRrqEOnh2n1JWpHVKHJHLv6ZmY1HCZpCi7uDiJTeIHJMBpmBiRmBJN+ETPSQ==} + msw@2.12.8: + resolution: {integrity: sha512-KOriJUhjefCO+liF7Ie1KlSXcBAQEzuLhPZ4EKuEUSEmAR4YhuuzT9YuGxTipjqDrg6eWQ6oMoGVhvEnqukFGg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7806,9 +7419,6 @@ packages: typescript: optional: true - 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} @@ -7828,8 +7438,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -7862,8 +7474,8 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead - node-fetch-native@1.6.6: - resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -7884,8 +7496,8 @@ packages: node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - node-releases@2.0.21: - resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} node-stream-zip@1.15.0: resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} @@ -7898,6 +7510,10 @@ packages: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} + normalize-package-data@8.0.0: + resolution: {integrity: sha512-RWk+PI433eESQ7ounYxIp67CYuVsS1uYSonX3kA6ps/3LWfjVQa/ptEg6Y3T6uAMq1mWpX9PQ+qx+QaHpsc7gQ==} + engines: {node: ^20.17.0 || >=22.9.0} + normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -7906,8 +7522,8 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.1.0: - resolution: {integrity: sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==} + normalize-url@8.1.1: + resolution: {integrity: sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==} engines: {node: '>=14.16'} npm-package-arg@11.0.3: @@ -7922,8 +7538,8 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm@10.9.3: - resolution: {integrity: sha512-6Eh1u5Q+kIVXeA8e7l2c/HpnFFcwrkt37xDMujD5be1gloWa9p6j3Fsv3mByXXmqJHy+2cElRMML8opNT7xIJQ==} + npm@10.9.4: + resolution: {integrity: sha512-OnUG836FwboQIbqtefDNlyR0gTHzIfwRfE3DuiNewBvnMnWEpB0VEXwBlFVgqpNzIgYo/MHh3d2Hel/pszapAA==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true bundledDependencies: @@ -7999,8 +7615,8 @@ packages: nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + nwsapi@2.2.23: + resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} nx@22.0.2: resolution: {integrity: sha512-cQD3QqZDPJMnvE4UGmVwCc6l7ll+u8a93brIAOujOxocyMNARXzyVub8Uxqy0QSr2ayFGmEINb6BJvY+EooT5Q==} @@ -8062,10 +7678,6 @@ packages: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -8081,8 +7693,8 @@ packages: ohash@1.1.6: resolution: {integrity: sha512-TBu7PtV8YkAZn0tSxobKY2n2aAQva936lhRrj6957aDaCf9IEtqsKbgMzXE/F/sjqYOwmrukeORHNLe5glk7Cg==} - ohm-js@17.2.1: - resolution: {integrity: sha512-4cXF0G09fAYU9z61kTfkNbKK1Kz/sGEZ5NbVWHoe9Qi7VB7y+Spwk051CpUTfUENdlIr+vt8tMV4/LosTE2cDQ==} + ohm-js@17.3.0: + resolution: {integrity: sha512-LySMdjweN1hKBMMV8lM44+1wiewkndDNNJxtgVAscs7y683MXCdQZLsIaw64/p8NuqYbKOWZoHIOA5DU/xchoA==} engines: {node: '>=0.12.1'} on-finished@2.4.1: @@ -8116,10 +7728,6 @@ packages: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} @@ -8205,9 +7813,8 @@ packages: resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} engines: {node: '>=0.8'} - parse-imports@2.2.1: - resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} - engines: {node: '>= 18'} + parse-imports-exports@0.2.4: + resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} @@ -8221,6 +7828,9 @@ packages: resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} engines: {node: '>=18'} + parse-statements@1.0.11: + resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -8279,8 +7889,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} engines: {node: 20 || >=22} path-to-regexp@0.1.12: @@ -8302,8 +7912,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} peek-stream@1.1.3: @@ -8328,8 +7938,8 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pin-github-action@3.3.1: - resolution: {integrity: sha512-ifA64/ZwNq0rkXR3V1PV2egvr5eOCuLR7GwyfgQYVk5HRLq0gHmBM5JHKodMG2HMaTZHXUXOBDKDCBSIoczjyQ==} + pin-github-action@3.4.0: + resolution: {integrity: sha512-SW7QvfceL85aZ3wo5Nj2k0FDVyOdDTsHhvQWt0k42dFunDbCocwtrkpeJibrm6Z75d5fdVbjAr5e2I57KE6DqA==} hasBin: true pino-std-serializers@2.5.0: @@ -8359,8 +7969,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} prettier@2.8.8: @@ -8368,8 +7978,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.7.4: - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} engines: {node: '>=14'} hasBin: true @@ -8410,8 +8020,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - protobufjs@7.5.3: - resolution: {integrity: sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==} + protobufjs@7.5.4: + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} proxy-addr@2.0.7: @@ -8427,8 +8037,8 @@ packages: pump@2.0.1: resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} @@ -8453,8 +8063,8 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - quansync@0.2.10: - resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} @@ -8537,15 +8147,15 @@ packages: resolution: {integrity: sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==} engines: {node: '>=0.10.0'} - react-router-dom@6.30.1: - resolution: {integrity: sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==} + react-router-dom@6.30.3: + resolution: {integrity: sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.30.1: - resolution: {integrity: sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==} + react-router@6.30.3: + resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' @@ -8570,22 +8180,22 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} - read-package-up@11.0.0: - resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} - engines: {node: '>=18'} + read-package-up@12.0.0: + resolution: {integrity: sha512-Q5hMVBYur/eQNWDdbF4/Wqqr9Bjvtrw2kjGxxBbKLbx8bVCL8gcArjTy8zDUuLGQicftpMuU0riQNcAsbtOVsw==} + engines: {node: '>=20'} read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} + read-pkg@10.0.0: + resolution: {integrity: sha512-A70UlgfNdKI5NSvTTfHzLQj7NJRpJ4mT5tGafkllJ4wh71oYuGm/pzphHcmW4s35iox56KSK721AihodoXSc/A==} + engines: {node: '>=20'} + read-pkg@5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} - read-pkg@9.0.1: - resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} - engines: {node: '>=18'} - read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -8623,9 +8233,6 @@ packages: resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} engines: {node: '>=6'} - reflect-metadata@0.1.13: - resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} - reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} @@ -8651,18 +8258,10 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - regexpu-core@6.3.1: - resolution: {integrity: sha512-DzcswPr252wEr7Qz8AyAVbfyBDKLoYp6eRA1We2Fa9qirRFSdtkP5sHr3yglDKy2BbA0fd2T+j/CUSKes3FeVQ==} + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} - registry-auth-token@5.1.0: - resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} - engines: {node: '>=14'} - registry-auth-token@5.1.1: resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} engines: {node: '>=14'} @@ -8674,8 +8273,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true relay-runtime@12.0.0: @@ -8719,12 +8318,15 @@ 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'} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} hasBin: true @@ -8756,6 +8358,9 @@ packages: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} + rettime@0.10.1: + resolution: {integrity: sha512-uyDrIlUEH37cinabq0AX4QbgV4HbFZ/gqoiunWQ1UqBtRvTTytwhNYjE++pO/MjPTZL5KQCf2bEoJ/BJNVQ5Kw==} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -8772,21 +8377,14 @@ packages: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} - rollup@4.52.5: - resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} + rollup@4.57.1: + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -8808,8 +8406,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.89.1: - resolution: {integrity: sha512-eMLLkl+qz7tx/0cJ9wI+w09GQ2zodTkcE/aVfywwdlRcI3EO19xGnbmJwg/JMIm+5MxVJ6outddLZ4Von4E++Q==} + sass@1.97.3: + resolution: {integrity: sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==} engines: {node: '>=14.0.0'} hasBin: true @@ -8823,9 +8421,6 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - scuid@1.1.0: - resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==} - seed-random@2.2.0: resolution: {integrity: sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==} @@ -8845,11 +8440,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.3: resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} @@ -8954,13 +8544,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slashes@3.0.12: - resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} - - slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} - slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -8973,8 +8556,8 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} - smol-toml@1.3.4: - resolution: {integrity: sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==} + smol-toml@1.6.0: + resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} engines: {node: '>= 18'} snake-case@3.0.4: @@ -9001,9 +8584,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} spawndamnit@3.0.1: resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} @@ -9039,6 +8622,10 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + stable-hash-x@0.2.0: + resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} + engines: {node: '>=12.0.0'} + stack-generator@2.0.10: resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} @@ -9059,8 +8646,12 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} @@ -9167,11 +8758,17 @@ packages: resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} - strnum@2.1.1: - resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + + strnum@2.1.2: + resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} + + stubborn-fs@2.0.0: + resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} - stubborn-fs@1.2.5: - resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + stubborn-utils@1.0.2: + resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==} supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -9207,14 +8804,22 @@ packages: resolution: {integrity: sha512-c7AfkZ9udatCuAy9RSfiGPpeOKKUAUK5e1cXadLOGUjasdxqYqAK0jTNkM/FSEyJ3a5Ra27j/tw/PS0qLmaF/A==} engines: {node: '>=18'} - synckit@0.9.3: - resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} table-layout@1.0.2: resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} engines: {node: '>=8.0.0'} + 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'} + tar-fs@2.1.4: resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} @@ -9254,9 +8859,6 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -9267,9 +8869,6 @@ packages: through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - timeout-signal@2.0.0: resolution: {integrity: sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA==} engines: {node: '>=16'} @@ -9296,8 +8895,8 @@ packages: tinygradient@1.1.5: resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} - 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@2.0.0: @@ -9308,13 +8907,20 @@ packages: resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} engines: {node: '>=14.0.0'} - tinyspy@4.0.3: - resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + tldts-core@7.0.22: + resolution: {integrity: sha512-KgbTDC5wzlL6j/x6np6wCnDSMUq4kucHNm00KXPbfNzmllCmtmvtykJHfmgdHntwIeupW04y8s1N/43S1PkQDw==} + + tldts@7.0.22: + resolution: {integrity: sha512-nqpKFC53CgopKPjT6Wfb6tpIcZXHcI6G37hesvikhx0EmUGPkZrujRyAjgnmp1SHNgpQfKVanZ+KfpANFt2Hxw==} + hasBin: true + tmp@0.2.5: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} @@ -9337,6 +8943,10 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + engines: {node: '>=16'} + tr46@5.1.1: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} @@ -9349,18 +8959,17 @@ packages: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} - 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.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' + ts-declaration-location@1.0.7: + resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} + peerDependencies: + typescript: '>=4.0.0' + ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -9391,16 +9000,10 @@ packages: '@swc/wasm': optional: true - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} @@ -9410,12 +9013,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -9435,10 +9032,6 @@ packages: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -9463,6 +9056,10 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} + type-fest@5.4.3: + resolution: {integrity: sha512-AXSAQJu79WGc79/3e9/CR77I/KQgeY1AhNvcShIH4PTcGYyC4xv6H4R4AUOwkPS5799KlVDAu8zExeCrkGquiA==} + engines: {node: '>=20'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -9493,6 +9090,13 @@ packages: peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x + typescript-eslint@8.54.0: + resolution: {integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==} + 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@5.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} @@ -9506,8 +9110,8 @@ packages: resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} engines: {node: '>=8'} - ua-parser-js@1.0.40: - resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} + ua-parser-js@1.0.41: + resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} hasBin: true uc.micro@2.1.0: @@ -9516,8 +9120,8 @@ packages: ufo@0.8.6: resolution: {integrity: sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==} - ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} @@ -9536,9 +9140,6 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.14.0: - resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} - undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} @@ -9562,8 +9163,8 @@ packages: resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} unique-string@2.0.0: @@ -9597,8 +9198,14 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + + until-async@3.0.2: + resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -9634,18 +9241,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@11.0.5: - resolution: {integrity: sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==} - hasBin: true - uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true - uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -9664,8 +9263,8 @@ packages: resolution: {integrity: sha512-uvEgEBTacSnlxRcoA56Drwkc2LbTvRNOdSx5MVayBfEsHAgQJAu+LwePlUOkidFsqQMcQxcb+LlC9qZ9v1yXiw==} deprecated: This package is deprecated. Use MSW instead as it promotes good mocking patterns. - 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 @@ -9709,16 +9308,16 @@ 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: '@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: @@ -9740,8 +9339,8 @@ packages: vscode-css-languageservice@6.3.2: resolution: {integrity: sha512-GEpPxrUTAeXWdZWHev1OJU9lz2Q2/PPBxQ2TIRmLGvQiH3WZbqaNoute0n0ewxlgtjzTW3AKZT+NHySk5Rf4Eg==} - vscode-json-languageservice@5.5.0: - resolution: {integrity: sha512-JchBzp8ArzhCVpRS/LT4wzEEvwHXIUEdZD064cGTI4RVs34rNCZXPUguIYSfGBcHH1GV79ufPcfy3Pd8+ukbKw==} + vscode-json-languageservice@5.7.1: + resolution: {integrity: sha512-sMK2F8p7St0lJCr/4IfbQRoEUDUZRR7Ud0IiSl8I/JtN+m9Gv+FJlNkSAYns2R7Ebm/PKxqUuWYOfBej/rAdBQ==} vscode-jsonrpc@8.1.0: resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} @@ -9802,8 +9401,8 @@ packages: resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} engines: {node: '>=18'} - when-exit@2.1.4: - resolution: {integrity: sha512-4rnvd3A1t16PWzrBUcSDZqcAmsUIy4minDXT/CZ8F2mVDgd65i4Aalimgz1aQkRGU0iH5eT5+6Rx2TK8o443Pg==} + when-exit@2.1.5: + resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} @@ -9820,8 +9419,8 @@ packages: which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} which@2.0.2: @@ -9926,9 +9525,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml-ast-parser@0.0.43: - resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} - yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -9938,11 +9534,6 @@ packages: engines: {node: '>= 14'} hasBin: true - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} - hasBin: true - yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -9972,8 +9563,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} yoctocolors-cjs@2.1.3: @@ -9986,15 +9577,15 @@ packages: yoga-wasm-web@0.3.3: resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} - yup@1.7.0: - resolution: {integrity: sha512-VJce62dBd+JQvoc+fCVq+KZfPHr+hXaxCcVgotfwWvlR0Ja3ffYKaJBT8rptPOSKOGJDCUnW2C2JWpud7aRP6Q==} + yup@1.7.1: + resolution: {integrity: sha512-GKHFX2nXul2/4Dtfxhozv701jLQHdf6J34YDh2cEkpqoo8le5Mg6/LrdseVLrFarmFygZTlfIhHx/QKfb/QWXw==} zip-stream@4.1.1: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} - zod-validation-error@3.4.1: - resolution: {integrity: sha512-1KP64yqDPQ3rupxNv7oXhf7KdhHHgaqbKuspVoiN93TT0xrBjql+Svjkdjq/Qh/7GSMmgQs3AfvBT0heE35thw==} + zod-validation-error@3.5.4: + resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.24.4 @@ -10034,16 +9625,16 @@ snapshots: dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 + js-yaml: 4.1.1 '@ardatan/relay-compiler@12.0.0(graphql@16.10.0)': dependencies: '@babel/core': 7.27.4 - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.4 - '@babel/runtime': 7.28.4 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.0 + '@babel/runtime': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 babel-preset-fbjs: 3.4.0(@babel/core@7.27.4) chalk: 4.1.2 fb-watchman: 2.0.2 @@ -10062,9 +9653,9 @@ snapshots: '@ardatan/relay-compiler@12.0.3(graphql@16.10.0)': dependencies: - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.4 - '@babel/runtime': 7.28.4 + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.0 + '@babel/runtime': 7.28.6 chalk: 4.1.2 fb-watchman: 2.0.2 graphql: 16.10.0 @@ -10171,7 +9762,7 @@ snapshots: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-locate-window': 3.893.0 + '@aws-sdk/util-locate-window': 3.965.4 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -10181,7 +9772,7 @@ snapshots: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.973.1 - '@aws-sdk/util-locate-window': 3.893.0 + '@aws-sdk/util-locate-window': 3.965.4 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -10666,7 +10257,7 @@ snapshots: '@smithy/util-endpoints': 3.2.8 tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.893.0': + '@aws-sdk/util-locate-window@3.965.4': dependencies: tslib: 2.8.1 @@ -10674,7 +10265,7 @@ snapshots: dependencies: '@aws-sdk/types': 3.973.1 '@smithy/types': 4.12.0 - bowser: 2.12.1 + bowser: 2.13.1 tslib: 2.8.1 '@aws-sdk/util-user-agent-node@3.972.4': @@ -10693,33 +10284,26 @@ snapshots: '@aws/lambda-invoke-store@0.2.3': {} - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - optional: true - '@babel/compat-data@7.28.4': {} + '@babel/compat-data@7.29.0': {} '@babel/core@7.27.4': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.27.4) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.27.4) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 convert-source-map: 2.0.0 debug: 4.4.0(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -10728,28 +10312,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.27.1(@babel/core@7.27.4)(eslint@8.57.1)': - dependencies: - '@babel/core': 7.27.4 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - - '@babel/eslint-plugin@7.27.1(@babel/eslint-parser@7.27.1(@babel/core@7.27.4)(eslint@8.57.1))(eslint@8.57.1)': - dependencies: - '@babel/eslint-parser': 7.27.1(@babel/core@7.27.4)(eslint@8.57.1) - eslint: 8.57.1 - eslint-rule-composer: 0.3.0 - - '@babel/generator@7.28.3': - dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - '@babel/generator@7.29.1': dependencies: '@babel/parser': 7.29.0 @@ -10757,199 +10319,187 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - optional: true '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.29.0 - '@babel/helper-compilation-targets@7.27.2': + '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/compat-data': 7.28.4 + '@babel/compat-data': 7.29.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.26.0 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.27.4)': + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 + '@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.27.4) + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.27.4) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.4)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.3.1 + regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.27.4)': + '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.27.1': + '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.27.1': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.27.4)': + '@babel/helper-module-transforms@7.28.6(@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.28.4 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.4 - - '@babel/helper-plugin-utils@7.27.1': {} + '@babel/types': 7.29.0 - '@babel/helper-plugin-utils@7.28.6': - optional: true + '@babel/helper-plugin-utils@7.28.6': {} '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.4 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.4)': + '@babel/helper-replace-supers@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': - optional: true + '@babel/helper-validator-identifier@7.28.5': {} '@babel/helper-validator-option@7.27.1': {} - '@babel/helper-wrap-function@7.28.3': + '@babel/helper-wrap-function@7.28.6': dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.4': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - - '@babel/parser@7.28.4': + '@babel/helpers@7.28.6': dependencies: - '@babel/types': 7.28.4 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 '@babel/parser@7.29.0': dependencies: '@babel/types': 7.29.0 - optional: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.27.4)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.27.4)': + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.27.4) + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.27.4) transitivePeerDependencies: - supports-color '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.27.4)': dependencies: - '@babel/compat-data': 7.28.4 + '@babel/compat-data': 7.29.0 '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.27.4) @@ -10960,74 +10510,68 @@ snapshots: '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.28.6 - optional: true - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.27.4)': + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color @@ -11035,105 +10579,105 @@ snapshots: '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.27.4)': + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.27.4)': + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.27.4)': + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.27.4) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.27.4)': + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.27.4)': + '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -11141,115 +10685,115 @@ snapshots: '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.27.4)': + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.27.4) + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.27.4) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.27.4) - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -11257,80 +10801,80 @@ snapshots: '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 transitivePeerDependencies: - supports-color '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@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/helper-plugin-utils': 7.28.6 '@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/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.28.4 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.27.4) + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.27.4)': + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.27.4)': + '@babel/plugin-transform-runtime@7.29.0(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.27.4) + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.27.4) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.27.4) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.27.4) + babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.27.4) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11338,12 +10882,12 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color @@ -11351,124 +10895,124 @@ snapshots: '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.27.4)': + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.27.4) transitivePeerDependencies: - supports-color '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.28.6 - '@babel/preset-env@7.28.3(@babel/core@7.27.4)': + '@babel/preset-env@7.29.0(@babel/core@7.27.4)': dependencies: - '@babel/compat-data': 7.28.4 + '@babel/compat-data': 7.29.0 '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.27.4) '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.4) '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.4) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.27.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.27.4) '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.27.4) '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.4) '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.27.4) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.27.4) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.27.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.27.4) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.27.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.27.4) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.27.4) + '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.27.4) '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.27.4) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.27.4) '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.27.4) '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.27.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.27.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.27.4) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.27.4) + '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.27.4) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.4) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.27.4) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.27.4) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.27.4) - core-js-compat: 3.45.1 + babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.27.4) + babel-plugin-polyfill-corejs3: 0.14.0(@babel/core@7.27.4) + babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.27.4) + core-js-compat: 3.48.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11476,47 +11020,28 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/types': 7.29.0 esutils: 2.0.3 - '@babel/preset-typescript@7.27.1(@babel/core@7.27.4)': + '@babel/preset-typescript@7.28.5(@babel/core@7.27.4)': dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.27.4) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/runtime@7.28.4': {} - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/runtime@7.28.6': {} '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 '@babel/parser': 7.29.0 '@babel/types': 7.29.0 - optional: true - - '@babel/traverse@7.28.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color '@babel/traverse@7.29.0': dependencies: @@ -11529,27 +11054,20 @@ snapshots: debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color - optional: true - - '@babel/types@7.28.4': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - optional: true - '@bugsnag/browser@8.6.0': + '@bugsnag/browser@8.8.1': dependencies: - '@bugsnag/core': 8.6.0 + '@bugsnag/core': 8.8.0 - '@bugsnag/core@8.6.0': + '@bugsnag/core@8.8.0': dependencies: '@bugsnag/cuid': 3.2.1 - '@bugsnag/safe-json-stringify': 6.0.0 + '@bugsnag/safe-json-stringify': 6.1.0 error-stack-parser: 2.1.4 iserror: 0.0.2 stack-generator: 2.0.10 @@ -11558,19 +11076,19 @@ snapshots: '@bugsnag/js@8.6.0': dependencies: - '@bugsnag/browser': 8.6.0 - '@bugsnag/node': 8.6.0 + '@bugsnag/browser': 8.8.1 + '@bugsnag/node': 8.8.0 - '@bugsnag/node@8.6.0': + '@bugsnag/node@8.8.0': dependencies: - '@bugsnag/core': 8.6.0 + '@bugsnag/core': 8.8.0 byline: 5.0.0 error-stack-parser: 2.1.4 iserror: 0.0.2 - pump: 3.0.2 + pump: 3.0.3 stack-generator: 2.0.10 - '@bugsnag/safe-json-stringify@6.0.0': {} + '@bugsnag/safe-json-stringify@6.1.0': {} '@bugsnag/source-maps@2.3.3': dependencies: @@ -11582,22 +11100,9 @@ snapshots: glob: 7.2.3 read-pkg-up: 7.0.1 - '@bundled-es-modules/cookie@2.0.1': - dependencies: - cookie: 0.7.2 - - '@bundled-es-modules/statuses@1.0.1': - dependencies: - statuses: 2.0.1 - - '@bundled-es-modules/tough-cookie@0.1.6': + '@changesets/apply-release-plan@7.0.14': dependencies: - '@types/tough-cookie': 4.0.5 - tough-cookie: 4.1.4 - - '@changesets/apply-release-plan@7.0.13': - dependencies: - '@changesets/config': 3.1.1 + '@changesets/config': 3.1.2 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.4 '@changesets/should-skip-package': 0.1.2 @@ -11626,21 +11131,21 @@ snapshots: '@changesets/cli@2.29.7(@types/node@18.19.70)': dependencies: - '@changesets/apply-release-plan': 7.0.13 + '@changesets/apply-release-plan': 7.0.14 '@changesets/assemble-release-plan': 6.0.9 '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.1 + '@changesets/config': 3.1.2 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.13 + '@changesets/get-release-plan': 4.0.14 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 + '@changesets/read': 0.6.6 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.2(@types/node@18.19.70) + '@inquirer/external-editor': 1.0.3(@types/node@18.19.70) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -11657,7 +11162,7 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@changesets/config@3.1.1': + '@changesets/config@3.1.2': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 @@ -11678,12 +11183,12 @@ snapshots: picocolors: 1.1.1 semver: 7.6.3 - '@changesets/get-release-plan@4.0.13': + '@changesets/get-release-plan@4.0.14': dependencies: '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.1 + '@changesets/config': 3.1.2 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 + '@changesets/read': 0.6.6 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 @@ -11701,10 +11206,10 @@ snapshots: dependencies: picocolors: 1.1.1 - '@changesets/parse@0.4.1': + '@changesets/parse@0.4.2': dependencies: '@changesets/types': 6.1.0 - js-yaml: 3.14.2 + js-yaml: 4.1.1 '@changesets/pre@2.0.2': dependencies: @@ -11713,11 +11218,11 @@ snapshots: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.5': + '@changesets/read@0.6.6': dependencies: '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.1 + '@changesets/parse': 0.4.2 '@changesets/types': 6.1.0 fs-extra: 7.0.1 p-filter: 2.1.0 @@ -11736,7 +11241,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 fs-extra: 7.0.1 - human-id: 4.1.2 + human-id: 4.1.3 prettier: 2.8.8 '@colors/colors@1.5.0': @@ -11746,34 +11251,34 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@cucumber/ci-environment@10.0.1': {} + '@cucumber/ci-environment@12.0.0': {} - '@cucumber/cucumber-expressions@18.0.1': + '@cucumber/cucumber-expressions@18.1.0': dependencies: regexp-match-indices: 1.0.2 - '@cucumber/cucumber@12.2.0': + '@cucumber/cucumber@12.6.0': dependencies: - '@cucumber/ci-environment': 10.0.1 - '@cucumber/cucumber-expressions': 18.0.1 - '@cucumber/gherkin': 34.0.0 - '@cucumber/gherkin-streams': 5.0.1(@cucumber/gherkin@34.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@28.1.0))(@cucumber/messages@28.1.0) - '@cucumber/gherkin-utils': 9.2.0 - '@cucumber/html-formatter': 21.14.0(@cucumber/messages@28.1.0) - '@cucumber/junit-xml-formatter': 0.8.1(@cucumber/messages@28.1.0) + '@cucumber/ci-environment': 12.0.0 + '@cucumber/cucumber-expressions': 18.1.0 + '@cucumber/gherkin': 37.0.1 + '@cucumber/gherkin-streams': 6.0.0(@cucumber/gherkin@37.0.1)(@cucumber/message-streams@4.0.1(@cucumber/messages@31.2.0))(@cucumber/messages@31.2.0) + '@cucumber/gherkin-utils': 10.0.0 + '@cucumber/html-formatter': 22.3.0(@cucumber/messages@31.2.0) + '@cucumber/junit-xml-formatter': 0.9.0(@cucumber/messages@31.2.0) '@cucumber/message-streams': 4.0.1(@cucumber/messages@30.1.0) - '@cucumber/messages': 28.1.0 - '@cucumber/pretty-formatter': 1.0.1(@cucumber/cucumber@12.2.0)(@cucumber/messages@28.1.0) - '@cucumber/tag-expressions': 6.2.0 + '@cucumber/messages': 31.2.0 + '@cucumber/pretty-formatter': 1.0.1(@cucumber/cucumber@12.6.0)(@cucumber/messages@31.2.0) + '@cucumber/tag-expressions': 8.1.0 assertion-error-formatter: 3.0.0 capital-case: 1.0.4 chalk: 4.1.2 cli-table3: 0.6.5 - commander: 14.0.2 + commander: 14.0.3 debug: 4.4.0(supports-color@8.1.1) error-stack-parser: 2.1.4 figures: 3.2.0 - glob: 11.0.3 + glob: 13.0.1 has-ansi: 4.0.1 indent-string: 4.0.0 is-installed-globally: 0.4.0 @@ -11781,90 +11286,86 @@ snapshots: knuth-shuffle-seeded: 1.0.6 lodash.merge: 4.6.2 lodash.mergewith: 4.6.2 - luxon: 3.7.1 + luxon: 3.7.2 mime: 3.0.0 mkdirp: 3.0.1 mz: 2.7.0 progress: 2.0.3 - read-package-up: 11.0.0 - semver: 7.7.2 + read-package-up: 12.0.0 + semver: 7.7.3 string-argv: 0.3.1 supports-color: 8.1.1 type-fest: 4.41.0 util-arity: 1.1.0 yaml: 2.7.0 - yup: 1.7.0 + yup: 1.7.1 - '@cucumber/gherkin-streams@5.0.1(@cucumber/gherkin@34.0.0)(@cucumber/message-streams@4.0.1(@cucumber/messages@28.1.0))(@cucumber/messages@28.1.0)': + '@cucumber/gherkin-streams@6.0.0(@cucumber/gherkin@37.0.1)(@cucumber/message-streams@4.0.1(@cucumber/messages@31.2.0))(@cucumber/messages@31.2.0)': dependencies: - '@cucumber/gherkin': 34.0.0 + '@cucumber/gherkin': 37.0.1 '@cucumber/message-streams': 4.0.1(@cucumber/messages@30.1.0) - '@cucumber/messages': 28.1.0 - commander: 9.1.0 + '@cucumber/messages': 31.2.0 + commander: 14.0.0 source-map-support: 0.5.21 - '@cucumber/gherkin-utils@9.2.0': + '@cucumber/gherkin-utils@10.0.0': dependencies: - '@cucumber/gherkin': 31.0.0 - '@cucumber/messages': 27.2.0 + '@cucumber/gherkin': 34.0.0 + '@cucumber/messages': 29.0.1 '@teppeis/multimaps': 3.0.0 - commander: 13.1.0 + commander: 14.0.0 source-map-support: 0.5.21 - '@cucumber/gherkin@31.0.0': - dependencies: - '@cucumber/messages': 22.0.0 - '@cucumber/gherkin@34.0.0': dependencies: '@cucumber/messages': 28.1.0 - '@cucumber/html-formatter@21.14.0(@cucumber/messages@28.1.0)': + '@cucumber/gherkin@37.0.1': dependencies: - '@cucumber/messages': 28.1.0 + '@cucumber/messages': 31.2.0 - '@cucumber/junit-xml-formatter@0.8.1(@cucumber/messages@28.1.0)': + '@cucumber/html-formatter@22.3.0(@cucumber/messages@31.2.0)': dependencies: - '@cucumber/messages': 28.1.0 - '@cucumber/query': 13.6.0(@cucumber/messages@28.1.0) + '@cucumber/messages': 31.2.0 + + '@cucumber/junit-xml-formatter@0.9.0(@cucumber/messages@31.2.0)': + dependencies: + '@cucumber/messages': 31.2.0 + '@cucumber/query': 14.7.0(@cucumber/messages@31.2.0) '@teppeis/multimaps': 3.0.0 - luxon: 3.7.1 + luxon: 3.7.2 xmlbuilder: 15.1.1 '@cucumber/message-streams@4.0.1(@cucumber/messages@30.1.0)': dependencies: '@cucumber/messages': 30.1.0 - '@cucumber/messages@22.0.0': + '@cucumber/messages@28.1.0': dependencies: - '@types/uuid': 9.0.1 + '@types/uuid': 10.0.0 class-transformer: 0.5.1 - reflect-metadata: 0.1.13 - uuid: 9.0.0 + reflect-metadata: 0.2.2 + uuid: 11.1.0 - '@cucumber/messages@27.2.0': + '@cucumber/messages@29.0.1': dependencies: - '@types/uuid': 10.0.0 class-transformer: 0.5.1 reflect-metadata: 0.2.2 - uuid: 11.0.5 - '@cucumber/messages@28.1.0': + '@cucumber/messages@30.1.0': dependencies: - '@types/uuid': 10.0.0 class-transformer: 0.5.1 reflect-metadata: 0.2.2 - uuid: 11.1.0 - '@cucumber/messages@30.1.0': + '@cucumber/messages@31.2.0': dependencies: class-transformer: 0.5.1 reflect-metadata: 0.2.2 - '@cucumber/pretty-formatter@1.0.1(@cucumber/cucumber@12.2.0)(@cucumber/messages@28.1.0)': + '@cucumber/pretty-formatter@1.0.1(@cucumber/cucumber@12.6.0)(@cucumber/messages@31.2.0)': dependencies: - '@cucumber/cucumber': 12.2.0 - '@cucumber/messages': 28.1.0 + '@cucumber/cucumber': 12.6.0 + '@cucumber/messages': 31.2.0 ansi-styles: 5.2.0 cli-table3: 0.6.5 figures: 3.2.0 @@ -11873,21 +11374,21 @@ snapshots: '@cucumber/pretty-formatter@2.4.1(@cucumber/messages@30.1.0)': dependencies: '@cucumber/messages': 30.1.0 - '@cucumber/query': 14.6.0(@cucumber/messages@30.1.0) + '@cucumber/query': 14.7.0(@cucumber/messages@30.1.0) - '@cucumber/query@13.6.0(@cucumber/messages@28.1.0)': + '@cucumber/query@14.7.0(@cucumber/messages@30.1.0)': dependencies: - '@cucumber/messages': 28.1.0 + '@cucumber/messages': 30.1.0 '@teppeis/multimaps': 3.0.0 lodash.sortby: 4.7.0 - '@cucumber/query@14.6.0(@cucumber/messages@30.1.0)': + '@cucumber/query@14.7.0(@cucumber/messages@31.2.0)': dependencies: - '@cucumber/messages': 30.1.0 + '@cucumber/messages': 31.2.0 '@teppeis/multimaps': 3.0.0 lodash.sortby: 4.7.0 - '@cucumber/tag-expressions@6.2.0': {} + '@cucumber/tag-expressions@8.1.0': {} '@emnapi/core@1.8.1': dependencies: @@ -11902,22 +11403,14 @@ snapshots: dependencies: tslib: 2.8.1 - '@envelop/core@5.2.3': + '@envelop/core@5.5.0': dependencies: '@envelop/instrumentation': 1.0.0 '@envelop/types': 5.2.1 '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@envelop/core@5.5.0': - dependencies: - '@envelop/instrumentation': 1.0.0 - '@envelop/types': 5.2.1 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - optional: true - - '@envelop/instrumentation@1.0.0': + '@envelop/instrumentation@1.0.0': dependencies: '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 @@ -11927,11 +11420,13 @@ snapshots: '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@es-joy/jsdoccomment@0.46.0': + '@es-joy/jsdoccomment@0.50.2': dependencies: + '@types/estree': 1.0.8 + '@typescript-eslint/types': 8.54.0 comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 + esquery: 1.7.0 + jsdoc-type-pratt-parser: 4.1.0 '@esbuild/aix-ppc64@0.25.12': optional: true @@ -12089,35 +11584,55 @@ snapshots: '@esbuild/win32-x64@0.27.2': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.0(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.4': + '@eslint/eslintrc@3.3.3': dependencies: ajv: 6.12.6 debug: 4.4.0(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 + espree: 10.4.0 + globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.39.2': {} - '@fastify/busboy@2.1.1': {} + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 - '@fastify/busboy@3.1.1': {} + '@fastify/busboy@2.1.1': {} - '@fastify/busboy@3.2.0': - optional: true + '@fastify/busboy@3.2.0': {} '@gerrit0/mini-shiki@1.27.2': dependencies: @@ -12131,101 +11646,39 @@ snapshots: graphql: 16.10.0 tslib: 2.4.1 - '@graphql-codegen/add@5.0.3(graphql@16.10.0)': - dependencies: - '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) - graphql: 16.10.0 - tslib: 2.6.3 - optional: true - '@graphql-codegen/add@6.0.0(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) graphql: 16.10.0 tslib: 2.6.3 - '@graphql-codegen/cli@5.0.4(@parcel/watcher@2.5.1)(@types/node@24.7.0)(crossws@0.3.5)(enquirer@2.4.1)(graphql@16.10.0)(typescript@5.8.3)': + '@graphql-codegen/cli@6.0.1(@parcel/watcher@2.5.6)(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3)': dependencies: '@babel/generator': 7.29.1 '@babel/template': 7.28.6 '@babel/types': 7.29.0 - '@graphql-codegen/client-preset': 4.8.3(graphql@16.10.0) - '@graphql-codegen/core': 4.0.2(graphql@16.10.0) - '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) + '@graphql-codegen/client-preset': 5.2.2(graphql@16.10.0) + '@graphql-codegen/core': 5.0.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) '@graphql-tools/apollo-engine-loader': 8.0.28(graphql@16.10.0) '@graphql-tools/code-file-loader': 8.1.28(graphql@16.10.0) '@graphql-tools/git-loader': 8.0.32(graphql@16.10.0) - '@graphql-tools/github-loader': 8.0.22(@types/node@24.7.0)(graphql@16.10.0) + '@graphql-tools/github-loader': 8.0.22(@types/node@18.19.70)(graphql@16.10.0) '@graphql-tools/graphql-file-loader': 8.1.9(graphql@16.10.0) '@graphql-tools/json-file-loader': 8.0.26(graphql@16.10.0) '@graphql-tools/load': 8.1.8(graphql@16.10.0) - '@graphql-tools/prisma-loader': 8.0.17(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0) - '@graphql-tools/url-loader': 8.0.33(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@inquirer/prompts': 7.10.1(@types/node@18.19.70) '@whatwg-node/fetch': 0.10.13 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.8.3) - debounce: 1.2.1 - detect-indent: 6.1.0 - graphql: 16.10.0 - graphql-config: 5.1.5(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3) - inquirer: 8.2.7(@types/node@24.7.0) - is-glob: 4.0.3 - jiti: 1.21.7 - json-to-pretty-yaml: 1.2.2 - listr2: 4.0.5(enquirer@2.4.1) - log-symbols: 4.1.0 - micromatch: 4.0.8 - shell-quote: 1.8.3 - string-env-interpolation: 1.0.1 - ts-log: 2.2.7 - tslib: 2.8.1 - yaml: 2.7.0 - yargs: 17.7.2 - optionalDependencies: - '@parcel/watcher': 2.5.1 - transitivePeerDependencies: - - '@fastify/websocket' - - '@types/node' - - bufferutil - - cosmiconfig-toml-loader - - crossws - - encoding - - enquirer - - graphql-sock - - supports-color - - typescript - - uWebSockets.js - - utf-8-validate - optional: true - - '@graphql-codegen/cli@6.0.1(@parcel/watcher@2.5.1)(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3)': - dependencies: - '@babel/generator': 7.28.3 - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - '@graphql-codegen/client-preset': 5.1.1(graphql@16.10.0) - '@graphql-codegen/core': 5.0.0(graphql@16.10.0) - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) - '@graphql-tools/apollo-engine-loader': 8.0.20(graphql@16.10.0) - '@graphql-tools/code-file-loader': 8.1.20(graphql@16.10.0) - '@graphql-tools/git-loader': 8.0.24(graphql@16.10.0) - '@graphql-tools/github-loader': 8.0.20(@types/node@18.19.70)(graphql@16.10.0) - '@graphql-tools/graphql-file-loader': 8.0.20(graphql@16.10.0) - '@graphql-tools/json-file-loader': 8.0.18(graphql@16.10.0) - '@graphql-tools/load': 8.1.0(graphql@16.10.0) - '@graphql-tools/url-loader': 8.0.31(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@inquirer/prompts': 7.9.0(@types/node@18.19.70) - '@whatwg-node/fetch': 0.10.8 - chalk: 4.1.2 cosmiconfig: 9.0.0(typescript@5.8.3) debounce: 2.2.0 detect-indent: 6.1.0 graphql: 16.10.0 graphql-config: 5.1.5(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3) is-glob: 4.0.3 - jiti: 2.4.2 + jiti: 2.6.1 json-to-pretty-yaml: 1.2.2 listr2: 9.0.5 log-symbols: 4.1.0 @@ -12237,7 +11690,7 @@ snapshots: yaml: 2.7.0 yargs: 17.7.2 optionalDependencies: - '@parcel/watcher': 2.5.1 + '@parcel/watcher': 2.5.6 transitivePeerDependencies: - '@fastify/websocket' - '@types/node' @@ -12248,40 +11701,19 @@ snapshots: - graphql-sock - supports-color - typescript - - uWebSockets.js - utf-8-validate - '@graphql-codegen/client-preset@4.8.3(graphql@16.10.0)': + '@graphql-codegen/client-preset@5.2.2(graphql@16.10.0)': dependencies: '@babel/helper-plugin-utils': 7.28.6 '@babel/template': 7.28.6 - '@graphql-codegen/add': 5.0.3(graphql@16.10.0) - '@graphql-codegen/gql-tag-operations': 4.0.17(graphql@16.10.0) - '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) - '@graphql-codegen/typed-document-node': 5.1.2(graphql@16.10.0) - '@graphql-codegen/typescript': 4.1.6(graphql@16.10.0) - '@graphql-codegen/typescript-operations': 4.6.1(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(graphql@16.10.0) - '@graphql-tools/documents': 1.0.1(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) - graphql: 16.10.0 - tslib: 2.6.3 - transitivePeerDependencies: - - encoding - optional: true - - '@graphql-codegen/client-preset@5.1.1(graphql@16.10.0)': - dependencies: - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 '@graphql-codegen/add': 6.0.0(graphql@16.10.0) - '@graphql-codegen/gql-tag-operations': 5.0.3(graphql@16.10.0) - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) - '@graphql-codegen/typed-document-node': 6.1.0(graphql@16.10.0) - '@graphql-codegen/typescript': 5.0.2(graphql@16.10.0) - '@graphql-codegen/typescript-operations': 5.0.2(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 6.1.0(graphql@16.10.0) + '@graphql-codegen/gql-tag-operations': 5.1.2(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-codegen/typed-document-node': 6.1.5(graphql@16.10.0) + '@graphql-codegen/typescript': 5.0.7(graphql@16.10.0) + '@graphql-codegen/typescript-operations': 5.0.7(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 6.2.2(graphql@16.10.0) '@graphql-tools/documents': 1.0.1(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) @@ -12290,39 +11722,18 @@ snapshots: transitivePeerDependencies: - encoding - '@graphql-codegen/core@4.0.2(graphql@16.10.0)': - dependencies: - '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) - '@graphql-tools/schema': 10.0.31(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - tslib: 2.6.3 - optional: true - '@graphql-codegen/core@5.0.0(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) - '@graphql-tools/schema': 10.0.23(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - tslib: 2.6.3 - - '@graphql-codegen/gql-tag-operations@4.0.17(graphql@16.10.0)': - dependencies: - '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-tools/schema': 10.0.31(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - auto-bind: 4.0.0 graphql: 16.10.0 tslib: 2.6.3 - transitivePeerDependencies: - - encoding - optional: true - '@graphql-codegen/gql-tag-operations@5.0.3(graphql@16.10.0)': + '@graphql-codegen/gql-tag-operations@5.1.2(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 6.1.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 6.2.2(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) auto-bind: 4.0.0 graphql: 16.10.0 @@ -12353,16 +11764,6 @@ snapshots: lodash: 4.17.23 tslib: 2.4.1 - '@graphql-codegen/plugin-helpers@5.1.0(graphql@16.10.0)': - dependencies: - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - change-case-all: 1.0.15 - common-tags: 1.8.2 - graphql: 16.10.0 - import-from: 4.0.0 - lodash: 4.17.23 - tslib: 2.6.3 - '@graphql-codegen/plugin-helpers@5.1.1(graphql@16.10.0)': dependencies: '@graphql-tools/utils': 10.7.2(graphql@16.10.0) @@ -12372,9 +11773,8 @@ snapshots: import-from: 4.0.0 lodash: 4.17.23 tslib: 2.6.3 - optional: true - '@graphql-codegen/plugin-helpers@6.0.0(graphql@16.10.0)': + '@graphql-codegen/plugin-helpers@6.1.0(graphql@16.10.0)': dependencies: '@graphql-tools/utils': 10.7.2(graphql@16.10.0) change-case-all: 1.0.15 @@ -12386,34 +11786,33 @@ snapshots: '@graphql-codegen/schema-ast@4.1.0(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 tslib: 2.6.3 '@graphql-codegen/schema-ast@5.0.0(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 tslib: 2.6.3 - '@graphql-codegen/typed-document-node@5.1.2(graphql@16.10.0)': + '@graphql-codegen/typed-document-node@6.1.0(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 6.1.0(graphql@16.10.0) auto-bind: 4.0.0 change-case-all: 1.0.15 graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: - encoding - optional: true - '@graphql-codegen/typed-document-node@6.1.0(graphql@16.10.0)': + '@graphql-codegen/typed-document-node@6.1.5(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 6.1.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 6.2.2(graphql@16.10.0) auto-bind: 4.0.0 change-case-all: 1.0.15 graphql: 16.10.0 @@ -12421,23 +11820,22 @@ snapshots: transitivePeerDependencies: - encoding - '@graphql-codegen/typescript-operations@4.6.1(graphql@16.10.0)': + '@graphql-codegen/typescript-operations@5.0.2(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) - '@graphql-codegen/typescript': 4.1.6(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-codegen/typescript': 5.0.7(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 6.1.0(graphql@16.10.0) auto-bind: 4.0.0 graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: - encoding - optional: true - '@graphql-codegen/typescript-operations@5.0.2(graphql@16.10.0)': + '@graphql-codegen/typescript-operations@5.0.7(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) - '@graphql-codegen/typescript': 5.0.2(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 6.1.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-codegen/typescript': 5.0.7(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 6.2.2(graphql@16.10.0) auto-bind: 4.0.0 graphql: 16.10.0 tslib: 2.6.3 @@ -12446,7 +11844,7 @@ snapshots: '@graphql-codegen/typescript@4.1.6(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) '@graphql-codegen/schema-ast': 4.1.0(graphql@16.10.0) '@graphql-codegen/visitor-plugin-common': 5.8.0(graphql@16.10.0) auto-bind: 4.0.0 @@ -12455,11 +11853,11 @@ snapshots: transitivePeerDependencies: - encoding - '@graphql-codegen/typescript@5.0.2(graphql@16.10.0)': + '@graphql-codegen/typescript@5.0.7(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) '@graphql-codegen/schema-ast': 5.0.0(graphql@16.10.0) - '@graphql-codegen/visitor-plugin-common': 6.1.0(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 6.2.2(graphql@16.10.0) auto-bind: 4.0.0 graphql: 16.10.0 tslib: 2.6.3 @@ -12485,9 +11883,9 @@ snapshots: '@graphql-codegen/visitor-plugin-common@5.8.0(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) '@graphql-tools/optimize': 2.0.0(graphql@16.10.0) - '@graphql-tools/relay-operation-optimizer': 7.0.19(graphql@16.10.0) + '@graphql-tools/relay-operation-optimizer': 7.0.27(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) auto-bind: 4.0.0 change-case-all: 1.0.15 @@ -12501,9 +11899,9 @@ snapshots: '@graphql-codegen/visitor-plugin-common@6.1.0(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 6.0.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) '@graphql-tools/optimize': 2.0.0(graphql@16.10.0) - '@graphql-tools/relay-operation-optimizer': 7.0.19(graphql@16.10.0) + '@graphql-tools/relay-operation-optimizer': 7.0.27(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) auto-bind: 4.0.0 change-case-all: 1.0.15 @@ -12515,15 +11913,23 @@ snapshots: transitivePeerDependencies: - encoding - '@graphql-hive/signal@1.0.0': {} - - '@graphql-tools/apollo-engine-loader@8.0.20(graphql@16.10.0)': + '@graphql-codegen/visitor-plugin-common@6.2.2(graphql@16.10.0)': dependencies: + '@graphql-codegen/plugin-helpers': 6.1.0(graphql@16.10.0) + '@graphql-tools/optimize': 2.0.0(graphql@16.10.0) + '@graphql-tools/relay-operation-optimizer': 7.0.27(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@whatwg-node/fetch': 0.10.8 + auto-bind: 4.0.0 + change-case-all: 1.0.15 + dependency-graph: 1.0.0 graphql: 16.10.0 - sync-fetch: 0.6.0-2 - tslib: 2.8.1 + graphql-tag: 2.12.6(graphql@16.10.0) + parse-filepath: 1.0.2 + tslib: 2.6.3 + transitivePeerDependencies: + - encoding + + '@graphql-hive/signal@1.0.0': {} '@graphql-tools/apollo-engine-loader@8.0.28(graphql@16.10.0)': dependencies: @@ -12532,15 +11938,6 @@ snapshots: graphql: 16.10.0 sync-fetch: 0.6.0 tslib: 2.8.1 - optional: true - - '@graphql-tools/batch-execute@9.0.16(graphql@16.10.0)': - dependencies: - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@whatwg-node/promise-helpers': 1.3.2 - dataloader: 2.2.3 - graphql: 16.10.0 - tslib: 2.8.1 '@graphql-tools/batch-execute@9.0.19(graphql@16.10.0)': dependencies: @@ -12549,18 +11946,6 @@ snapshots: dataloader: 2.2.3 graphql: 16.10.0 tslib: 2.8.1 - optional: true - - '@graphql-tools/code-file-loader@8.1.20(graphql@16.10.0)': - dependencies: - '@graphql-tools/graphql-tag-pluck': 8.3.19(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - globby: 11.1.0 - graphql: 16.10.0 - tslib: 2.8.1 - unixify: 1.0.0 - transitivePeerDependencies: - - supports-color '@graphql-tools/code-file-loader@8.1.28(graphql@16.10.0)': dependencies: @@ -12572,20 +11957,6 @@ snapshots: unixify: 1.0.0 transitivePeerDependencies: - supports-color - optional: true - - '@graphql-tools/delegate@10.2.18(graphql@16.10.0)': - dependencies: - '@graphql-tools/batch-execute': 9.0.16(graphql@16.10.0) - '@graphql-tools/executor': 1.4.7(graphql@16.10.0) - '@graphql-tools/schema': 10.0.23(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@repeaterjs/repeater': 3.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - dataloader: 2.2.3 - dset: 3.1.4 - graphql: 16.10.0 - tslib: 2.8.1 '@graphql-tools/delegate@10.2.23(graphql@16.10.0)': dependencies: @@ -12599,7 +11970,6 @@ snapshots: dset: 3.1.4 graphql: 16.10.0 tslib: 2.8.1 - optional: true '@graphql-tools/documents@1.0.1(graphql@16.10.0)': dependencies: @@ -12609,7 +11979,7 @@ snapshots: '@graphql-tools/executor-common@0.0.4(graphql@16.10.0)': dependencies: - '@envelop/core': 5.2.3 + '@envelop/core': 5.5.0 '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 @@ -12618,24 +11988,6 @@ snapshots: '@envelop/core': 5.5.0 '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 - optional: true - - '@graphql-tools/executor-graphql-ws@2.0.5(crossws@0.3.5)(graphql@16.10.0)': - dependencies: - '@graphql-tools/executor-common': 0.0.4(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@whatwg-node/disposablestack': 0.0.6 - graphql: 16.10.0 - graphql-ws: 6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0) - isomorphic-ws: 5.0.0(ws@8.18.0) - tslib: 2.8.1 - ws: 8.18.0 - transitivePeerDependencies: - - '@fastify/websocket' - - bufferutil - - crossws - - uWebSockets.js - - utf-8-validate '@graphql-tools/executor-graphql-ws@2.0.7(crossws@0.3.5)(graphql@16.10.0)': dependencies: @@ -12652,7 +12004,6 @@ snapshots: - bufferutil - crossws - utf-8-validate - optional: true '@graphql-tools/executor-http@1.3.3(@types/node@18.19.70)(graphql@16.10.0)': dependencies: @@ -12661,42 +12012,30 @@ snapshots: '@graphql-tools/utils': 10.7.2(graphql@16.10.0) '@repeaterjs/repeater': 3.0.6 '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/fetch': 0.10.8 + '@whatwg-node/fetch': 0.10.13 '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.10.0 - meros: 1.3.0(@types/node@18.19.70) + meros: 1.3.2(@types/node@18.19.70) tslib: 2.8.1 transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-http@1.3.3(@types/node@24.7.0)(graphql@16.10.0)': + '@graphql-tools/executor-http@1.3.3(@types/node@22.19.9)(graphql@16.10.0)': dependencies: '@graphql-hive/signal': 1.0.0 '@graphql-tools/executor-common': 0.0.4(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) '@repeaterjs/repeater': 3.0.6 '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/fetch': 0.10.8 + '@whatwg-node/fetch': 0.10.13 '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.10.0 - meros: 1.3.0(@types/node@24.7.0) + meros: 1.3.2(@types/node@22.19.9) tslib: 2.8.1 transitivePeerDependencies: - '@types/node' optional: true - '@graphql-tools/executor-legacy-ws@1.1.17(graphql@16.10.0)': - dependencies: - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@types/ws': 8.18.1 - graphql: 16.10.0 - isomorphic-ws: 5.0.0(ws@8.18.0) - tslib: 2.8.1 - ws: 8.18.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@graphql-tools/executor-legacy-ws@1.1.25(graphql@16.10.0)': dependencies: '@graphql-tools/utils': 10.7.2(graphql@16.10.0) @@ -12708,17 +12047,6 @@ snapshots: transitivePeerDependencies: - bufferutil - utf-8-validate - optional: true - - '@graphql-tools/executor@1.4.7(graphql@16.10.0)': - dependencies: - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) - '@repeaterjs/repeater': 3.0.6 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.10.0 - tslib: 2.8.1 '@graphql-tools/executor@1.5.1(graphql@16.10.0)': dependencies: @@ -12729,19 +12057,6 @@ snapshots: '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.10.0 tslib: 2.8.1 - optional: true - - '@graphql-tools/git-loader@8.0.24(graphql@16.10.0)': - dependencies: - '@graphql-tools/graphql-tag-pluck': 8.3.19(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - is-glob: 4.0.3 - micromatch: 4.0.8 - tslib: 2.8.1 - unixify: 1.0.0 - transitivePeerDependencies: - - supports-color '@graphql-tools/git-loader@8.0.32(graphql@16.10.0)': dependencies: @@ -12754,25 +12069,10 @@ snapshots: unixify: 1.0.0 transitivePeerDependencies: - supports-color - optional: true - '@graphql-tools/github-loader@8.0.20(@types/node@18.19.70)(graphql@16.10.0)': + '@graphql-tools/github-loader@8.0.22(@types/node@18.19.70)(graphql@16.10.0)': dependencies: '@graphql-tools/executor-http': 1.3.3(@types/node@18.19.70)(graphql@16.10.0) - '@graphql-tools/graphql-tag-pluck': 8.3.19(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@whatwg-node/fetch': 0.10.8 - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.10.0 - sync-fetch: 0.6.0-2 - tslib: 2.8.1 - transitivePeerDependencies: - - '@types/node' - - supports-color - - '@graphql-tools/github-loader@8.0.22(@types/node@24.7.0)(graphql@16.10.0)': - dependencies: - '@graphql-tools/executor-http': 1.3.3(@types/node@24.7.0)(graphql@16.10.0) '@graphql-tools/graphql-tag-pluck': 8.3.27(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) '@whatwg-node/fetch': 0.10.13 @@ -12783,16 +12083,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - supports-color - optional: true - - '@graphql-tools/graphql-file-loader@8.0.20(graphql@16.10.0)': - dependencies: - '@graphql-tools/import': 7.0.19(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - globby: 11.1.0 - graphql: 16.10.0 - tslib: 2.8.1 - unixify: 1.0.0 '@graphql-tools/graphql-file-loader@8.1.9(graphql@16.10.0)': dependencies: @@ -12804,20 +12094,6 @@ snapshots: unixify: 1.0.0 transitivePeerDependencies: - supports-color - optional: true - - '@graphql-tools/graphql-tag-pluck@8.3.19(graphql@16.10.0)': - dependencies: - '@babel/core': 7.27.4 - '@babel/parser': 7.28.4 - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - tslib: 2.8.1 - transitivePeerDependencies: - - supports-color '@graphql-tools/graphql-tag-pluck@8.3.27(graphql@16.10.0)': dependencies: @@ -12831,14 +12107,6 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - supports-color - optional: true - - '@graphql-tools/import@7.0.19(graphql@16.10.0)': - dependencies: - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - resolve-from: 5.0.0 - tslib: 2.8.1 '@graphql-tools/import@7.1.9(graphql@16.10.0)': dependencies: @@ -12849,15 +12117,6 @@ snapshots: tslib: 2.8.1 transitivePeerDependencies: - supports-color - optional: true - - '@graphql-tools/json-file-loader@8.0.18(graphql@16.10.0)': - dependencies: - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - globby: 11.1.0 - graphql: 16.10.0 - tslib: 2.8.1 - unixify: 1.0.0 '@graphql-tools/json-file-loader@8.0.26(graphql@16.10.0)': dependencies: @@ -12866,15 +12125,6 @@ snapshots: graphql: 16.10.0 tslib: 2.8.1 unixify: 1.0.0 - optional: true - - '@graphql-tools/load@8.1.0(graphql@16.10.0)': - dependencies: - '@graphql-tools/schema': 10.0.23(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - p-limit: 3.1.0 - tslib: 2.8.1 '@graphql-tools/load@8.1.8(graphql@16.10.0)': dependencies: @@ -12883,59 +12133,22 @@ snapshots: graphql: 16.10.0 p-limit: 3.1.0 tslib: 2.8.1 - optional: true - - '@graphql-tools/merge@9.0.24(graphql@16.10.0)': - dependencies: - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - tslib: 2.8.1 '@graphql-tools/merge@9.1.7(graphql@16.10.0)': dependencies: '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 tslib: 2.8.1 - optional: true '@graphql-tools/optimize@1.4.0(graphql@16.10.0)': dependencies: - graphql: 16.10.0 - tslib: 2.8.1 - - '@graphql-tools/optimize@2.0.0(graphql@16.10.0)': - dependencies: - graphql: 16.10.0 - tslib: 2.6.3 - - '@graphql-tools/prisma-loader@8.0.17(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)': - dependencies: - '@graphql-tools/url-loader': 8.0.33(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@types/js-yaml': 4.0.9 - '@whatwg-node/fetch': 0.10.13 - chalk: 4.1.2 - debug: 4.4.0(supports-color@8.1.1) - dotenv: 16.4.7 - graphql: 16.10.0 - graphql-request: 6.1.0(graphql@16.10.0) - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - jose: 5.9.6 - js-yaml: 4.1.1 - lodash: 4.17.23 - scuid: 1.1.0 - tslib: 2.8.1 - yaml-ast-parser: 0.0.43 - transitivePeerDependencies: - - '@fastify/websocket' - - '@types/node' - - bufferutil - - crossws - - encoding - - supports-color - - utf-8-validate - optional: true + graphql: 16.10.0 + tslib: 2.8.1 + + '@graphql-tools/optimize@2.0.0(graphql@16.10.0)': + dependencies: + graphql: 16.10.0 + tslib: 2.6.3 '@graphql-tools/relay-operation-optimizer@6.5.18(graphql@16.10.0)': dependencies: @@ -12947,7 +12160,7 @@ snapshots: - encoding - supports-color - '@graphql-tools/relay-operation-optimizer@7.0.19(graphql@16.10.0)': + '@graphql-tools/relay-operation-optimizer@7.0.27(graphql@16.10.0)': dependencies: '@ardatan/relay-compiler': 12.0.3(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) @@ -12956,53 +12169,22 @@ snapshots: transitivePeerDependencies: - encoding - '@graphql-tools/schema@10.0.23(graphql@16.10.0)': - dependencies: - '@graphql-tools/merge': 9.0.24(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - graphql: 16.10.0 - tslib: 2.8.1 - '@graphql-tools/schema@10.0.31(graphql@16.10.0)': dependencies: '@graphql-tools/merge': 9.1.7(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 tslib: 2.8.1 - optional: true - '@graphql-tools/url-loader@8.0.31(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)': + '@graphql-tools/url-loader@8.0.33(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)': dependencies: - '@graphql-tools/executor-graphql-ws': 2.0.5(crossws@0.3.5)(graphql@16.10.0) + '@graphql-tools/executor-graphql-ws': 2.0.7(crossws@0.3.5)(graphql@16.10.0) '@graphql-tools/executor-http': 1.3.3(@types/node@18.19.70)(graphql@16.10.0) - '@graphql-tools/executor-legacy-ws': 1.1.17(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@graphql-tools/wrap': 10.0.36(graphql@16.10.0) - '@types/ws': 8.18.1 - '@whatwg-node/fetch': 0.10.8 - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.10.0 - isomorphic-ws: 5.0.0(ws@8.18.0) - sync-fetch: 0.6.0-2 - tslib: 2.8.1 - ws: 8.18.0 - transitivePeerDependencies: - - '@fastify/websocket' - - '@types/node' - - bufferutil - - crossws - - uWebSockets.js - - utf-8-validate - - '@graphql-tools/url-loader@8.0.31(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)': - dependencies: - '@graphql-tools/executor-graphql-ws': 2.0.5(crossws@0.3.5)(graphql@16.10.0) - '@graphql-tools/executor-http': 1.3.3(@types/node@24.7.0)(graphql@16.10.0) - '@graphql-tools/executor-legacy-ws': 1.1.17(graphql@16.10.0) + '@graphql-tools/executor-legacy-ws': 1.1.25(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@graphql-tools/wrap': 10.0.36(graphql@16.10.0) + '@graphql-tools/wrap': 10.1.4(graphql@16.10.0) '@types/ws': 8.18.1 - '@whatwg-node/fetch': 0.10.8 + '@whatwg-node/fetch': 0.10.13 '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.10.0 isomorphic-ws: 5.0.0(ws@8.18.0) @@ -13014,14 +12196,12 @@ snapshots: - '@types/node' - bufferutil - crossws - - uWebSockets.js - utf-8-validate - optional: true - '@graphql-tools/url-loader@8.0.33(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)': + '@graphql-tools/url-loader@8.0.33(@types/node@22.19.9)(crossws@0.3.5)(graphql@16.10.0)': dependencies: '@graphql-tools/executor-graphql-ws': 2.0.7(crossws@0.3.5)(graphql@16.10.0) - '@graphql-tools/executor-http': 1.3.3(@types/node@24.7.0)(graphql@16.10.0) + '@graphql-tools/executor-http': 1.3.3(@types/node@22.19.9)(graphql@16.10.0) '@graphql-tools/executor-legacy-ws': 1.1.25(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) '@graphql-tools/wrap': 10.1.4(graphql@16.10.0) @@ -13049,15 +12229,6 @@ snapshots: graphql: 16.10.0 tslib: 2.8.1 - '@graphql-tools/wrap@10.0.36(graphql@16.10.0)': - dependencies: - '@graphql-tools/delegate': 10.2.18(graphql@16.10.0) - '@graphql-tools/schema': 10.0.23(graphql@16.10.0) - '@graphql-tools/utils': 10.7.2(graphql@16.10.0) - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.10.0 - tslib: 2.8.1 - '@graphql-tools/wrap@10.1.4(graphql@16.10.0)': dependencies: '@graphql-tools/delegate': 10.2.23(graphql@16.10.0) @@ -13066,40 +12237,26 @@ snapshots: '@whatwg-node/promise-helpers': 1.3.2 graphql: 16.10.0 tslib: 2.8.1 - optional: true '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': dependencies: graphql: 16.10.0 - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.4.3': {} '@iarna/toml@2.2.5': {} - '@inquirer/ansi@1.0.1': {} - '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.0(@types/node@18.19.70)': - dependencies: - '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@18.19.70) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/checkbox@4.3.2(@types/node@18.19.70)': dependencies: '@inquirer/ansi': 1.0.2 @@ -13115,20 +12272,6 @@ snapshots: '@inquirer/core': 9.2.1 '@inquirer/type': 1.5.5 - '@inquirer/confirm@5.1.19(@types/node@18.19.70)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/type': 3.0.9(@types/node@18.19.70) - optionalDependencies: - '@types/node': 18.19.70 - - '@inquirer/confirm@5.1.19(@types/node@24.7.0)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@24.7.0) - '@inquirer/type': 3.0.9(@types/node@24.7.0) - optionalDependencies: - '@types/node': 24.7.0 - '@inquirer/confirm@5.1.21(@types/node@18.19.70)': dependencies: '@inquirer/core': 10.3.2(@types/node@18.19.70) @@ -13136,51 +12279,45 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/core@10.3.0(@types/node@18.19.70)': + '@inquirer/confirm@5.1.21(@types/node@22.19.9)': dependencies: - '@inquirer/ansi': 1.0.1 - '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@18.19.70) - 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 + '@inquirer/core': 10.3.2(@types/node@22.19.9) + '@inquirer/type': 3.0.10(@types/node@22.19.9) optionalDependencies: - '@types/node': 18.19.70 + '@types/node': 22.19.9 - '@inquirer/core@10.3.0(@types/node@24.7.0)': + '@inquirer/core@10.3.2(@types/node@18.19.70)': dependencies: - '@inquirer/ansi': 1.0.1 - '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@24.7.0) + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@18.19.70) 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.7.0 + '@types/node': 18.19.70 - '@inquirer/core@10.3.2(@types/node@18.19.70)': + '@inquirer/core@10.3.2(@types/node@22.19.9)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@18.19.70) + '@inquirer/type': 3.0.10(@types/node@22.19.9) 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': 18.19.70 + '@types/node': 22.19.9 '@inquirer/core@9.2.1': dependencies: - '@inquirer/figures': 1.0.14 + '@inquirer/figures': 1.0.15 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.18.8 + '@types/node': 22.19.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -13190,14 +12327,6 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 - '@inquirer/editor@4.2.21(@types/node@18.19.70)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/external-editor': 1.0.2(@types/node@18.19.70) - '@inquirer/type': 3.0.9(@types/node@18.19.70) - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/editor@4.2.23(@types/node@18.19.70)': dependencies: '@inquirer/core': 10.3.2(@types/node@18.19.70) @@ -13206,14 +12335,6 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/expand@4.0.21(@types/node@18.19.70)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/type': 3.0.9(@types/node@18.19.70) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/expand@4.0.23(@types/node@18.19.70)': dependencies: '@inquirer/core': 10.3.2(@types/node@18.19.70) @@ -13222,13 +12343,6 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/external-editor@1.0.2(@types/node@18.19.70)': - dependencies: - chardet: 2.1.0 - iconv-lite: 0.7.0 - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/external-editor@1.0.3(@types/node@18.19.70)': dependencies: chardet: 2.1.1 @@ -13236,16 +12350,6 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/external-editor@1.0.3(@types/node@24.7.0)': - dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.2 - optionalDependencies: - '@types/node': 24.7.0 - optional: true - - '@inquirer/figures@1.0.14': {} - '@inquirer/figures@1.0.15': {} '@inquirer/input@2.3.0': @@ -13253,13 +12357,6 @@ snapshots: '@inquirer/core': 9.2.1 '@inquirer/type': 1.5.5 - '@inquirer/input@4.2.5(@types/node@18.19.70)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/type': 3.0.9(@types/node@18.19.70) - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/input@4.3.1(@types/node@18.19.70)': dependencies: '@inquirer/core': 10.3.2(@types/node@18.19.70) @@ -13267,13 +12364,6 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/number@3.0.21(@types/node@18.19.70)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/type': 3.0.9(@types/node@18.19.70) - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/number@3.0.23(@types/node@18.19.70)': dependencies: '@inquirer/core': 10.3.2(@types/node@18.19.70) @@ -13281,14 +12371,6 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/password@4.0.21(@types/node@18.19.70)': - dependencies: - '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/type': 3.0.9(@types/node@18.19.70) - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/password@4.0.23(@types/node@18.19.70)': dependencies: '@inquirer/ansi': 1.0.2 @@ -13312,21 +12394,6 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/prompts@7.9.0(@types/node@18.19.70)': - dependencies: - '@inquirer/checkbox': 4.3.0(@types/node@18.19.70) - '@inquirer/confirm': 5.1.19(@types/node@18.19.70) - '@inquirer/editor': 4.2.21(@types/node@18.19.70) - '@inquirer/expand': 4.0.21(@types/node@18.19.70) - '@inquirer/input': 4.2.5(@types/node@18.19.70) - '@inquirer/number': 3.0.21(@types/node@18.19.70) - '@inquirer/password': 4.0.21(@types/node@18.19.70) - '@inquirer/rawlist': 4.1.9(@types/node@18.19.70) - '@inquirer/search': 3.2.0(@types/node@18.19.70) - '@inquirer/select': 4.4.0(@types/node@18.19.70) - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/rawlist@4.1.11(@types/node@18.19.70)': dependencies: '@inquirer/core': 10.3.2(@types/node@18.19.70) @@ -13335,23 +12402,6 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/rawlist@4.1.9(@types/node@18.19.70)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/type': 3.0.9(@types/node@18.19.70) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 18.19.70 - - '@inquirer/search@3.2.0(@types/node@18.19.70)': - dependencies: - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@18.19.70) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/search@3.2.2(@types/node@18.19.70)': dependencies: '@inquirer/core': 10.3.2(@types/node@18.19.70) @@ -13364,21 +12414,11 @@ snapshots: '@inquirer/select@2.5.0': dependencies: '@inquirer/core': 9.2.1 - '@inquirer/figures': 1.0.14 + '@inquirer/figures': 1.0.15 '@inquirer/type': 1.5.5 ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.3 - '@inquirer/select@4.4.0(@types/node@18.19.70)': - dependencies: - '@inquirer/ansi': 1.0.1 - '@inquirer/core': 10.3.0(@types/node@18.19.70) - '@inquirer/figures': 1.0.14 - '@inquirer/type': 3.0.9(@types/node@18.19.70) - yoctocolors-cjs: 2.1.3 - optionalDependencies: - '@types/node': 18.19.70 - '@inquirer/select@4.4.2(@types/node@18.19.70)': dependencies: '@inquirer/ansi': 1.0.2 @@ -13401,17 +12441,13 @@ snapshots: optionalDependencies: '@types/node': 18.19.70 - '@inquirer/type@3.0.9(@types/node@18.19.70)': - optionalDependencies: - '@types/node': 18.19.70 - - '@inquirer/type@3.0.9(@types/node@24.7.0)': + '@inquirer/type@3.0.10(@types/node@22.19.9)': optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 22.19.9 '@isaacs/balanced-match@4.0.1': {} - '@isaacs/brace-expansion@5.0.0': + '@isaacs/brace-expansion@5.0.1': dependencies: '@isaacs/balanced-match': 4.0.1 @@ -13419,7 +12455,7 @@ snapshots: dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 @@ -13439,7 +12475,7 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 18.19.70 - '@types/yargs': 15.0.19 + '@types/yargs': 15.0.20 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.13': @@ -13481,14 +12517,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -13500,11 +12536,11 @@ snapshots: '@microsoft/tsdoc': 0.15.1 ajv: 8.12.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.11 '@microsoft/tsdoc@0.15.1': {} - '@mswjs/interceptors@0.38.7': + '@mswjs/interceptors@0.41.0': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -13526,10 +12562,6 @@ snapshots: '@emnapi/runtime': 1.8.1 '@tybys/wasm-util': 0.9.0 - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13540,7 +12572,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 '@nx/devkit@22.0.2(nx@22.0.2)': dependencies: @@ -13564,20 +12596,22 @@ snapshots: tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/eslint-plugin@22.0.2(@babel/traverse@7.29.0)(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(nx@22.4.4)(typescript@5.8.3)': + '@nx/eslint-plugin@22.0.2(@babel/traverse@7.29.0)(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint-config-prettier@10.1.5(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(nx@22.4.4)(typescript@5.8.3)': dependencies: '@nx/devkit': 22.0.2(nx@22.4.4) '@nx/js': 22.0.2(@babel/traverse@7.29.0)(nx@22.4.4) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/type-utils': 8.43.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.43.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) chalk: 4.1.2 confusing-browser-globals: 1.0.11 globals: 15.15.0 - jsonc-eslint-parser: 2.4.0 + jsonc-eslint-parser: 2.4.2 semver: 7.6.3 tslib: 2.8.1 + optionalDependencies: + eslint-config-prettier: 10.1.5(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -13592,12 +12626,12 @@ snapshots: '@nx/js@22.0.2(@babel/traverse@7.29.0)(nx@22.4.4)': dependencies: '@babel/core': 7.27.4 - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.27.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.27.4) - '@babel/preset-env': 7.28.3(@babel/core@7.27.4) - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) - '@babel/runtime': 7.28.4 + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.27.4) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.27.4) + '@babel/preset-env': 7.29.0(@babel/core@7.27.4) + '@babel/preset-typescript': 7.28.5(@babel/core@7.27.4) + '@babel/runtime': 7.28.6 '@nx/devkit': 22.0.2(nx@22.4.4) '@nx/workspace': 22.0.2 '@zkochan/js-yaml': 0.0.7 @@ -13778,7 +12812,7 @@ snapshots: dependencies: '@oclif/core': 4.5.3 '@oclif/table': 0.4.14 - lodash: 4.17.21 + lodash: 4.17.23 object-treeify: 4.0.1 transitivePeerDependencies: - bufferutil @@ -13803,7 +12837,7 @@ snapshots: '@oclif/core': 4.5.3 ansis: 3.17.0 debug: 4.4.0(supports-color@8.1.1) - npm: 10.9.3 + npm: 10.9.4 npm-package-arg: 11.0.3 npm-run-path: 5.3.0 object-treeify: 4.0.1 @@ -13845,23 +12879,23 @@ snapshots: '@octokit/auth-token@6.0.0': {} - '@octokit/core@6.1.5': + '@octokit/core@6.1.6': dependencies: '@octokit/auth-token': 5.1.2 '@octokit/graphql': 8.2.2 - '@octokit/request': 9.2.3 + '@octokit/request': 9.2.4 '@octokit/request-error': 6.1.8 '@octokit/types': 14.1.0 before-after-hook: 3.0.2 universal-user-agent: 7.0.3 - '@octokit/core@7.0.2': + '@octokit/core@7.0.6': dependencies: '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.1 - '@octokit/request': 10.0.2 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/graphql': 9.0.3 + '@octokit/request': 10.0.7 + '@octokit/request-error': 7.1.0 + '@octokit/types': 16.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 @@ -13870,21 +12904,21 @@ snapshots: '@octokit/types': 14.1.0 universal-user-agent: 7.0.3 - '@octokit/endpoint@11.0.0': + '@octokit/endpoint@11.0.2': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 16.0.0 universal-user-agent: 7.0.3 '@octokit/graphql@8.2.2': dependencies: - '@octokit/request': 9.2.3 + '@octokit/request': 9.2.4 '@octokit/types': 14.1.0 universal-user-agent: 7.0.3 - '@octokit/graphql@9.0.1': + '@octokit/graphql@9.0.3': dependencies: - '@octokit/request': 10.0.2 - '@octokit/types': 14.1.0 + '@octokit/request': 10.0.7 + '@octokit/types': 16.0.0 universal-user-agent: 7.0.3 '@octokit/openapi-types@12.11.0': {} @@ -13893,51 +12927,55 @@ snapshots: '@octokit/openapi-types@25.1.0': {} - '@octokit/plugin-paginate-rest@11.6.0(@octokit/core@6.1.5)': + '@octokit/openapi-types@26.0.0': {} + + '@octokit/openapi-types@27.0.0': {} + + '@octokit/plugin-paginate-rest@11.6.0(@octokit/core@6.1.6)': dependencies: - '@octokit/core': 6.1.5 + '@octokit/core': 6.1.6 '@octokit/types': 13.10.0 - '@octokit/plugin-paginate-rest@13.0.1(@octokit/core@7.0.2)': + '@octokit/plugin-paginate-rest@13.2.1(@octokit/core@7.0.6)': dependencies: - '@octokit/core': 7.0.2 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.6 + '@octokit/types': 15.0.2 - '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.5)': + '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.6)': dependencies: - '@octokit/core': 6.1.5 + '@octokit/core': 6.1.6 - '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.2)': + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.6)': dependencies: - '@octokit/core': 7.0.2 + '@octokit/core': 7.0.6 - '@octokit/plugin-rest-endpoint-methods@13.5.0(@octokit/core@6.1.5)': + '@octokit/plugin-rest-endpoint-methods@13.5.0(@octokit/core@6.1.6)': dependencies: - '@octokit/core': 6.1.5 + '@octokit/core': 6.1.6 '@octokit/types': 13.10.0 - '@octokit/plugin-rest-endpoint-methods@16.0.0(@octokit/core@7.0.2)': + '@octokit/plugin-rest-endpoint-methods@16.1.1(@octokit/core@7.0.6)': dependencies: - '@octokit/core': 7.0.2 - '@octokit/types': 14.1.0 + '@octokit/core': 7.0.6 + '@octokit/types': 15.0.2 '@octokit/request-error@6.1.8': dependencies: '@octokit/types': 14.1.0 - '@octokit/request-error@7.0.0': + '@octokit/request-error@7.1.0': dependencies: - '@octokit/types': 14.1.0 + '@octokit/types': 16.0.0 - '@octokit/request@10.0.2': + '@octokit/request@10.0.7': dependencies: - '@octokit/endpoint': 11.0.0 - '@octokit/request-error': 7.0.0 - '@octokit/types': 14.1.0 + '@octokit/endpoint': 11.0.2 + '@octokit/request-error': 7.1.0 + '@octokit/types': 16.0.0 fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.3 - '@octokit/request@9.2.3': + '@octokit/request@9.2.4': dependencies: '@octokit/endpoint': 10.1.4 '@octokit/request-error': 6.1.8 @@ -13947,17 +12985,17 @@ snapshots: '@octokit/rest@21.1.1': dependencies: - '@octokit/core': 6.1.5 - '@octokit/plugin-paginate-rest': 11.6.0(@octokit/core@6.1.5) - '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.5) - '@octokit/plugin-rest-endpoint-methods': 13.5.0(@octokit/core@6.1.5) + '@octokit/core': 6.1.6 + '@octokit/plugin-paginate-rest': 11.6.0(@octokit/core@6.1.6) + '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.6) + '@octokit/plugin-rest-endpoint-methods': 13.5.0(@octokit/core@6.1.6) '@octokit/rest@22.0.0': dependencies: - '@octokit/core': 7.0.2 - '@octokit/plugin-paginate-rest': 13.0.1(@octokit/core@7.0.2) - '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.2) - '@octokit/plugin-rest-endpoint-methods': 16.0.0(@octokit/core@7.0.2) + '@octokit/core': 7.0.6 + '@octokit/plugin-paginate-rest': 13.2.1(@octokit/core@7.0.6) + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.6) + '@octokit/plugin-rest-endpoint-methods': 16.1.1(@octokit/core@7.0.6) '@octokit/types@13.10.0': dependencies: @@ -13967,6 +13005,14 @@ snapshots: dependencies: '@octokit/openapi-types': 25.1.0 + '@octokit/types@15.0.2': + dependencies: + '@octokit/openapi-types': 26.0.0 + + '@octokit/types@16.0.0': + dependencies: + '@octokit/openapi-types': 27.0.0 + '@octokit/types@6.41.0': dependencies: '@octokit/openapi-types': 12.11.0 @@ -14015,7 +13061,7 @@ snapshots: '@opentelemetry/sdk-logs': 0.57.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 1.30.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0) - protobufjs: 7.5.3 + protobufjs: 7.5.4 '@opentelemetry/resources@1.30.0(@opentelemetry/api@1.9.0)': dependencies: @@ -14086,76 +13132,76 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@9.0.2': optional: true - '@parcel/watcher-android-arm64@2.5.1': + '@parcel/watcher-android-arm64@2.5.6': optional: true - '@parcel/watcher-darwin-arm64@2.5.1': + '@parcel/watcher-darwin-arm64@2.5.6': optional: true - '@parcel/watcher-darwin-x64@2.5.1': + '@parcel/watcher-darwin-x64@2.5.6': optional: true - '@parcel/watcher-freebsd-x64@2.5.1': + '@parcel/watcher-freebsd-x64@2.5.6': optional: true - '@parcel/watcher-linux-arm-glibc@2.5.1': + '@parcel/watcher-linux-arm-glibc@2.5.6': optional: true - '@parcel/watcher-linux-arm-musl@2.5.1': + '@parcel/watcher-linux-arm-musl@2.5.6': optional: true - '@parcel/watcher-linux-arm64-glibc@2.5.1': + '@parcel/watcher-linux-arm64-glibc@2.5.6': optional: true - '@parcel/watcher-linux-arm64-musl@2.5.1': + '@parcel/watcher-linux-arm64-musl@2.5.6': optional: true - '@parcel/watcher-linux-x64-glibc@2.5.1': + '@parcel/watcher-linux-x64-glibc@2.5.6': optional: true - '@parcel/watcher-linux-x64-musl@2.5.1': + '@parcel/watcher-linux-x64-musl@2.5.6': optional: true - '@parcel/watcher-win32-arm64@2.5.1': + '@parcel/watcher-win32-arm64@2.5.6': optional: true - '@parcel/watcher-win32-ia32@2.5.1': + '@parcel/watcher-win32-ia32@2.5.6': optional: true - '@parcel/watcher-win32-x64@2.5.1': + '@parcel/watcher-win32-x64@2.5.6': optional: true - '@parcel/watcher@2.5.1': + '@parcel/watcher@2.5.6': dependencies: - detect-libc: 1.0.3 + detect-libc: 2.1.2 is-glob: 4.0.3 - micromatch: 4.0.8 node-addon-api: 7.1.1 + picomatch: 4.0.3 optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 + '@parcel/watcher-android-arm64': 2.5.6 + '@parcel/watcher-darwin-arm64': 2.5.6 + '@parcel/watcher-darwin-x64': 2.5.6 + '@parcel/watcher-freebsd-x64': 2.5.6 + '@parcel/watcher-linux-arm-glibc': 2.5.6 + '@parcel/watcher-linux-arm-musl': 2.5.6 + '@parcel/watcher-linux-arm64-glibc': 2.5.6 + '@parcel/watcher-linux-arm64-musl': 2.5.6 + '@parcel/watcher-linux-x64-glibc': 2.5.6 + '@parcel/watcher-linux-x64-musl': 2.5.6 + '@parcel/watcher-win32-arm64': 2.5.6 + '@parcel/watcher-win32-ia32': 2.5.6 + '@parcel/watcher-win32-x64': 2.5.6 optional: true '@phenomnomnominal/tsquery@5.0.1(typescript@5.8.3)': dependencies: - esquery: 1.6.0 + esquery: 1.7.0 typescript: 5.8.3 '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.1.2': {} + '@pkgr/core@0.2.9': {} '@pnpm/config.env-replace@1.1.0': {} @@ -14163,12 +13209,6 @@ snapshots: dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@2.3.1': - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - '@pnpm/npm-conf@3.0.2': dependencies: '@pnpm/config.env-replace': 1.1.0 @@ -14198,7 +13238,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@remix-run/router@1.23.0': {} + '@remix-run/router@1.23.2': {} '@repeaterjs/repeater@3.0.6': {} @@ -14207,73 +13247,80 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/rollup-android-arm-eabi@4.52.5': + '@rollup/rollup-android-arm-eabi@4.57.1': + optional: true + + '@rollup/rollup-android-arm64@4.57.1': optional: true - '@rollup/rollup-android-arm64@4.52.5': + '@rollup/rollup-darwin-arm64@4.57.1': optional: true - '@rollup/rollup-darwin-arm64@4.52.5': + '@rollup/rollup-darwin-x64@4.57.1': optional: true - '@rollup/rollup-darwin-x64@4.52.5': + '@rollup/rollup-freebsd-arm64@4.57.1': optional: true - '@rollup/rollup-freebsd-arm64@4.52.5': + '@rollup/rollup-freebsd-x64@4.57.1': optional: true - '@rollup/rollup-freebsd-x64@4.52.5': + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + '@rollup/rollup-linux-arm-musleabihf@4.57.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.52.5': + '@rollup/rollup-linux-arm64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.52.5': + '@rollup/rollup-linux-arm64-musl@4.57.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.52.5': + '@rollup/rollup-linux-loong64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.52.5': + '@rollup/rollup-linux-loong64-musl@4.57.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.52.5': + '@rollup/rollup-linux-ppc64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.52.5': + '@rollup/rollup-linux-ppc64-musl@4.57.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.52.5': + '@rollup/rollup-linux-riscv64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.52.5': + '@rollup/rollup-linux-riscv64-musl@4.57.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.52.5': + '@rollup/rollup-linux-s390x-gnu@4.57.1': optional: true - '@rollup/rollup-linux-x64-musl@4.52.5': + '@rollup/rollup-linux-x64-gnu@4.57.1': optional: true - '@rollup/rollup-openharmony-arm64@4.52.5': + '@rollup/rollup-linux-x64-musl@4.57.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.52.5': + '@rollup/rollup-openbsd-x64@4.57.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.52.5': + '@rollup/rollup-openharmony-arm64@4.57.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.52.5': + '@rollup/rollup-win32-arm64-msvc@4.57.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.52.5': + '@rollup/rollup-win32-ia32-msvc@4.57.1': optional: true - '@rtsao/scc@1.1.0': {} + '@rollup/rollup-win32-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.57.1': + optional: true '@shikijs/engine-oniguruma@1.29.2': dependencies: @@ -14287,7 +13334,7 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@shopify/cli-hydrogen@11.1.5(@graphql-codegen/cli@5.0.4(@parcel/watcher@2.5.1)(@types/node@24.7.0)(crossws@0.3.5)(enquirer@2.4.1)(graphql@16.10.0)(typescript@5.8.3))(graphql-config@5.1.5(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2))': + '@shopify/cli-hydrogen@11.1.5(@graphql-codegen/cli@6.0.1(@parcel/watcher@2.5.6)(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3))(graphql-config@5.1.5(@types/node@22.19.9)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0))': dependencies: '@ast-grep/napi': 0.34.1 '@oclif/core': 3.26.5 @@ -14303,16 +13350,16 @@ snapshots: gunzip-maybe: 1.4.2 prettier: 2.8.8 semver: 7.7.3 - source-map: 0.7.4 + source-map: 0.7.6 source-map-support: 0.5.21 tar-fs: 2.1.4 tempy: 3.0.0 ts-morph: 20.0.0 use-resize-observer: 9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@graphql-codegen/cli': 5.0.4(@parcel/watcher@2.5.1)(@types/node@24.7.0)(crossws@0.3.5)(enquirer@2.4.1)(graphql@16.10.0)(typescript@5.8.3) - graphql-config: 5.1.5(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3) - vite: 6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + '@graphql-codegen/cli': 6.0.1(@parcel/watcher@2.5.6)(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3) + graphql-config: 5.1.5(@types/node@22.19.9)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3) + vite: 6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) transitivePeerDependencies: - graphql - react @@ -14326,103 +13373,109 @@ snapshots: dependencies: '@shopify/function-enhancers': 2.0.8 - '@shopify/eslint-plugin-cli@file:packages/eslint-plugin-cli(eslint@8.57.1)(prettier@3.7.4)(typescript@5.8.3)(vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2))': + '@shopify/eslint-plugin-cli@file:packages/eslint-plugin-cli(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1)(typescript@5.8.3)(vitest@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0))': dependencies: '@babel/core': 7.27.4 - '@shopify/eslint-plugin': 42.1.0(@babel/core@7.27.4)(eslint@8.57.1)(prettier@3.7.4)(typescript@5.8.3) - '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@shopify/eslint-plugin': 50.0.0(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@vitest/eslint-plugin': 1.1.44(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)(vitest@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0)) debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - eslint-config-prettier: 8.10.0(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) - eslint-plugin-jsdoc: 48.11.0(eslint@8.57.1) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-no-catch-all: 1.1.0(eslint@8.57.1) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) - eslint-plugin-react: 7.37.3(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + eslint: 9.39.2(jiti@2.6.1) + eslint-config-prettier: 10.1.5(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jsdoc: 50.7.1(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-no-catch-all: 1.1.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-prettier: 5.5.1(eslint-config-prettier@10.1.5(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1) + eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-tsdoc: 0.4.0 - eslint-plugin-unused-imports: 3.2.0(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)(vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)) execa: 7.2.0 + globals: 16.2.0 transitivePeerDependencies: + - '@types/eslint' + - '@typescript-eslint/utils' - eslint-import-resolver-node - - eslint-import-resolver-typescript - eslint-import-resolver-webpack + - eslint-plugin-import - jest - prettier - supports-color - typescript - vitest - '@shopify/eslint-plugin@42.1.0(@babel/core@7.27.4)(eslint@8.57.1)(prettier@2.8.8)(typescript@5.8.3)': + '@shopify/eslint-plugin@50.0.0(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(prettier@2.8.8)(typescript@5.8.3)': dependencies: - '@babel/eslint-parser': 7.27.1(@babel/core@7.27.4)(eslint@8.57.1) - '@babel/eslint-plugin': 7.27.1(@babel/eslint-parser@7.27.1(@babel/core@7.27.4)(eslint@8.57.1))(eslint@8.57.1) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) change-case: 4.1.2 common-tags: 1.8.2 doctrine: 2.1.0 - eslint: 8.57.1 - eslint-config-prettier: 8.10.0(eslint@8.57.1) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - eslint-plugin-jest-formatting: 3.1.0(eslint@8.57.1) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-node: 11.1.0(eslint@8.57.1) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) - eslint-plugin-react: 7.37.3(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) - eslint-plugin-sort-class-members: 1.21.0(eslint@8.57.1) + eslint: 9.39.2(jiti@2.6.1) + eslint-config-prettier: 9.1.2(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint-plugin-jest-formatting: 3.1.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-n: 17.23.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint-plugin-prettier: 5.5.1(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@2.8.8) + eslint-plugin-promise: 7.2.1(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-sort-class-members: 1.21.0(eslint@9.39.2(jiti@2.6.1)) + globals: 15.15.0 jsx-ast-utils: 3.3.5 pkg-dir: 5.0.0 pluralize: 8.0.0 + typescript-eslint: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) transitivePeerDependencies: - - '@babel/core' + - '@types/eslint' + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - '@typescript-eslint/utils' - eslint-import-resolver-node - - eslint-import-resolver-typescript - eslint-import-resolver-webpack + - eslint-plugin-import - jest - prettier - supports-color - typescript - '@shopify/eslint-plugin@42.1.0(@babel/core@7.27.4)(eslint@8.57.1)(prettier@3.7.4)(typescript@5.8.3)': + '@shopify/eslint-plugin@50.0.0(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1)(typescript@5.8.3)': dependencies: - '@babel/eslint-parser': 7.27.1(@babel/core@7.27.4)(eslint@8.57.1) - '@babel/eslint-plugin': 7.27.1(@babel/eslint-parser@7.27.1(@babel/core@7.27.4)(eslint@8.57.1))(eslint@8.57.1) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) change-case: 4.1.2 common-tags: 1.8.2 doctrine: 2.1.0 - eslint: 8.57.1 - eslint-config-prettier: 8.10.0(eslint@8.57.1) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - eslint-plugin-jest-formatting: 3.1.0(eslint@8.57.1) - eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-node: 11.1.0(eslint@8.57.1) - eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4) - eslint-plugin-promise: 6.6.0(eslint@8.57.1) - eslint-plugin-react: 7.37.3(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) - eslint-plugin-sort-class-members: 1.21.0(eslint@8.57.1) + eslint: 9.39.2(jiti@2.6.1) + eslint-config-prettier: 9.1.2(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint-plugin-jest-formatting: 3.1.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-n: 17.23.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint-plugin-prettier: 5.5.1(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1) + eslint-plugin-promise: 7.2.1(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-sort-class-members: 1.21.0(eslint@9.39.2(jiti@2.6.1)) + globals: 15.15.0 jsx-ast-utils: 3.3.5 pkg-dir: 5.0.0 pluralize: 8.0.0 + typescript-eslint: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) transitivePeerDependencies: - - '@babel/core' + - '@types/eslint' + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - '@typescript-eslint/utils' - eslint-import-resolver-node - - eslint-import-resolver-typescript - eslint-import-resolver-webpack + - eslint-plugin-import - jest - prettier - supports-color @@ -14446,17 +13499,17 @@ snapshots: '@shopify/liquid-html-parser@2.9.0': dependencies: line-column: 1.0.2 - ohm-js: 17.2.1 + ohm-js: 17.3.0 '@shopify/oxygen-cli@4.6.18(@oclif/core@3.26.5)(@shopify/cli-kit@packages+cli-kit)(graphql@16.10.0)': dependencies: - '@bugsnag/core': 8.6.0 + '@bugsnag/core': 8.8.0 '@bugsnag/js': 8.6.0 - '@bugsnag/node': 8.6.0 + '@bugsnag/node': 8.8.0 '@oclif/core': 3.26.5 '@shopify/cli-kit': link:packages/cli-kit async: 3.2.6 - graphql-request: 7.2.0(graphql@16.10.0) + graphql-request: 7.4.0(graphql@16.10.0) transitivePeerDependencies: - graphql @@ -14477,7 +13530,7 @@ snapshots: '@shopify/polaris-icons': 8.11.1(react@18.3.1) '@shopify/polaris-tokens': 8.10.0 '@types/react': 18.3.12 - '@types/react-dom': 18.2.0 + '@types/react-dom': 18.3.7(@types/react@18.3.12) '@types/react-transition-group': 4.4.12(@types/react@18.3.12) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -14493,7 +13546,7 @@ snapshots: dependencies: react: 17.0.2 - '@shopify/react-i18n@6.4.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@shopify/react-i18n@6.4.0(@types/react@18.3.12)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': dependencies: '@shopify/dates': 1.1.5 '@shopify/decorators': 2.0.8 @@ -14502,7 +13555,7 @@ snapshots: '@shopify/react-effect': 4.1.12(react-dom@17.0.2(react@17.0.2))(react@17.0.2) '@shopify/react-hooks': 2.1.19(react@17.0.2) '@shopify/useful-types': 4.0.3 - '@types/hoist-non-react-statics': 3.3.6 + '@types/hoist-non-react-statics': 3.3.7(@types/react@18.3.12) change-case: 4.1.2 glob: 7.2.3 hoist-non-react-statics: 3.3.2 @@ -14512,10 +13565,11 @@ snapshots: string-hash: 1.1.3 strip-json-comments: 3.1.1 optionalDependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 fs-extra: 9.1.0 transitivePeerDependencies: + - '@types/react' - react-dom - supports-color @@ -14543,7 +13597,7 @@ snapshots: line-column: 1.0.2 lodash: 4.17.23 minimatch: 9.0.5 - vscode-json-languageservice: 5.5.0 + vscode-json-languageservice: 5.7.1 vscode-uri: 3.1.0 transitivePeerDependencies: - encoding @@ -14585,7 +13639,7 @@ snapshots: '@shopify/theme-graph': 0.2.1 '@vscode/web-custom-data': 0.4.13 vscode-css-languageservice: 6.3.2 - vscode-json-languageservice: 5.5.0 + vscode-json-languageservice: 5.7.1 vscode-languageserver: 8.1.0 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 @@ -14965,7 +14019,6 @@ snapshots: lodash.sortby: 4.7.0 transitivePeerDependencies: - supports-color - optional: true '@tootallnate/once@2.0.0': {} @@ -14983,7 +14036,7 @@ snapshots: mkdirp: 2.1.6 path-browserify: 1.0.1 - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.12': {} '@tsconfig/node12@1.0.11': {} @@ -15004,7 +14057,7 @@ snapshots: dependencies: '@types/readdir-glob': 1.1.5 - '@types/body-parser@1.19.5': + '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 '@types/node': 18.19.70 @@ -15013,9 +14066,10 @@ snapshots: dependencies: '@types/node': 18.19.70 - '@types/chai@5.2.2': + '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 '@types/cli-progress@3.11.6': dependencies: @@ -15027,36 +14081,33 @@ snapshots: dependencies: '@types/node': 18.19.70 - '@types/cookie@0.6.0': {} - '@types/deep-eql@4.0.2': {} '@types/diff@5.2.3': {} '@types/estree@1.0.8': {} - '@types/express-serve-static-core@4.19.6': + '@types/express-serve-static-core@4.19.8': dependencies: '@types/node': 18.19.70 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 + '@types/send': 1.2.1 - '@types/express@4.17.22': + '@types/express@4.17.25': dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.6 + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 4.19.8 '@types/qs': 6.14.0 - '@types/serve-static': 1.15.7 + '@types/serve-static': 1.15.10 '@types/fs-extra@9.0.13': dependencies: '@types/node': 18.19.70 - '@types/glob@8.1.0': + '@types/glob@9.0.0': dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.19.70 + glob: 13.0.1 '@types/global-agent@3.0.0': {} @@ -15068,14 +14119,14 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/hoist-non-react-statics@3.3.6': + '@types/hoist-non-react-statics@3.3.7(@types/react@18.3.12)': dependencies: '@types/react': 18.3.12 hoist-non-react-statics: 3.3.2 - '@types/http-cache-semantics@4.0.4': {} + '@types/http-cache-semantics@4.2.0': {} - '@types/http-errors@2.0.4': {} + '@types/http-errors@2.0.5': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -15087,19 +14138,12 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/js-yaml@4.0.9': - optional: true - '@types/json-schema@7.0.15': {} - '@types/json5@0.0.29': {} - '@types/lodash@4.17.19': {} '@types/mime@1.3.5': {} - '@types/minimatch@5.1.2': {} - '@types/minimist@1.2.5': {} '@types/mute-stream@0.0.4': @@ -15112,22 +14156,17 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.18.8': + '@types/node@22.19.9': dependencies: undici-types: 6.21.0 - '@types/node@24.7.0': - dependencies: - undici-types: 7.14.0 - optional: true - '@types/normalize-package-data@2.4.4': {} '@types/parse-json@4.0.2': {} '@types/prettier@2.7.3': {} - '@types/prop-types@15.7.14': {} + '@types/prop-types@15.7.15': {} '@types/proper-lockfile@4.1.4': dependencies: @@ -15145,7 +14184,7 @@ snapshots: dependencies: '@types/react': 18.3.12 - '@types/react-dom@18.2.0': + '@types/react-dom@18.3.7(@types/react@18.3.12)': dependencies: '@types/react': 18.3.12 @@ -15155,7 +14194,7 @@ snapshots: '@types/react@18.3.12': dependencies: - '@types/prop-types': 15.7.14 + '@types/prop-types': 15.7.15 csstype: 3.2.3 '@types/readdir-glob@1.1.5': @@ -15166,36 +14205,36 @@ snapshots: '@types/rimraf@3.0.2': dependencies: - '@types/glob': 8.1.0 + '@types/glob': 9.0.0 '@types/node': 18.19.70 - '@types/semver@7.7.0': {} + '@types/semver@7.7.1': {} - '@types/send@0.17.4': + '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 '@types/node': 18.19.70 - '@types/serve-static@1.15.7': + '@types/send@1.2.1': + dependencies: + '@types/node': 18.19.70 + + '@types/serve-static@1.15.10': dependencies: - '@types/http-errors': 2.0.4 + '@types/http-errors': 2.0.5 '@types/node': 18.19.70 - '@types/send': 0.17.4 + '@types/send': 0.17.6 - '@types/statuses@2.0.5': {} + '@types/statuses@2.0.6': {} '@types/tinycolor2@1.4.6': {} '@types/tmp@0.2.6': {} - '@types/tough-cookie@4.0.5': {} - '@types/unist@3.0.3': {} '@types/uuid@10.0.0': {} - '@types/uuid@9.0.1': {} - '@types/which@3.0.4': {} '@types/wrap-ansi@3.0.0': {} @@ -15206,286 +14245,251 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@types/yargs@15.0.19': + '@types/yargs@15.0.20': dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/type-utils': 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 + eslint: 9.39.2(jiti@2.6.1) graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare-lite: 1.4.0 - semver: 7.7.3 - tsutils: 3.21.0(typescript@5.8.3) - optionalDependencies: + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/type-utils': 7.13.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 7.13.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 7.13.1 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.54.0 + eslint: 9.39.2(jiti@2.6.1) + ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.0 + debug: 4.4.0(supports-color@8.1.1) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) - debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - optionalDependencies: + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.8.3 transitivePeerDependencies: - supports-color + - typescript - '@typescript-eslint/project-service@8.43.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.54.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.8.3) - '@typescript-eslint/types': 8.43.0 - debug: 4.4.0(supports-color@8.1.1) + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.8.3) + '@typescript-eslint/types': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@5.62.0': + '@typescript-eslint/scope-manager@8.33.0': dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 - '@typescript-eslint/scope-manager@7.13.1': + '@typescript-eslint/scope-manager@8.54.0': dependencies: - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/visitor-keys': 7.13.1 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 - '@typescript-eslint/scope-manager@7.18.0': + '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - - '@typescript-eslint/scope-manager@8.43.0': - dependencies: - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/visitor-keys': 8.43.0 - - '@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - tsutils: 3.21.0(typescript@5.8.3) - optionalDependencies: typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@7.13.1(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.8.3) - '@typescript-eslint/utils': 7.13.1(eslint@8.57.1)(typescript@5.8.3) - debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.43.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.43.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) debug: 4.4.0(supports-color@8.1.1) - eslint: 8.57.1 - ts-api-utils: 2.1.0(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/types@7.13.1': {} - - '@typescript-eslint/types@7.18.0': {} - - '@typescript-eslint/types@8.43.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.0(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.7.3 - tsutils: 3.21.0(typescript@5.8.3) - optionalDependencies: + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.39.2(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.13.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/visitor-keys': 7.13.1 - debug: 4.4.0(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.33.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.54.0': {} - '@typescript-eslint/typescript-estree@8.43.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.43.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.8.3) - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/visitor-keys': 8.43.0 + '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/visitor-keys': 8.33.0 debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 2.1.0(typescript@5.8.3) + ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.54.0(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.0 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) - eslint: 8.57.1 - eslint-scope: 5.1.1 + '@typescript-eslint/project-service': 8.54.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.8.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 9.0.5 semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - - typescript - - '@typescript-eslint/utils@7.13.1(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.13.1 - '@typescript-eslint/types': 7.13.1 - '@typescript-eslint/typescript-estree': 7.13.1(typescript@5.8.3) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) - eslint: 8.57.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.33.0 + '@typescript-eslint/types': 8.33.0 + '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/utils@8.43.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.43.0 - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.8.3) - eslint: 8.57.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@5.62.0': + '@typescript-eslint/visitor-keys@8.33.0': dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.33.0 + eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@7.13.1': + '@typescript-eslint/visitor-keys@8.54.0': dependencies: - '@typescript-eslint/types': 7.13.1 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.54.0 + eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true - '@typescript-eslint/visitor-keys@8.43.0': + '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: - '@typescript-eslint/types': 8.43.0 - eslint-visitor-keys: 4.2.1 + '@napi-rs/wasm-runtime': 0.2.12 + optional: true - '@ungap/structured-clone@1.3.0': {} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true '@vitejs/plugin-react-refresh@1.3.6': dependencies: @@ -15497,7 +14501,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-istanbul@3.2.1(vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2))': + '@vitest/coverage-istanbul@3.2.4(vitest@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.3(supports-color@8.1.1) @@ -15505,15 +14509,15 @@ snapshots: istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2) + vitest: 3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-istanbul@3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.7.0))': + '@vitest/coverage-istanbul@3.2.4(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.4.3(supports-color@8.1.1) @@ -15521,79 +14525,80 @@ snapshots: istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.7.0) + vitest: 3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-istanbul@3.2.1(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2))': + '@vitest/eslint-plugin@1.1.44(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)(vitest@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0))': dependencies: - '@istanbuljs/schema': 0.1.3 - debug: 4.4.3(supports-color@8.1.1) - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magicast: 0.3.5 - test-exclude: 7.0.1 - tinyrainbow: 2.0.0 - vitest: 3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) + optionalDependencies: + typescript: 5.8.3 + vitest: 3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0) + + '@vitest/eslint-plugin@1.1.44(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3)(vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0))': + dependencies: + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) + optionalDependencies: + typescript: 5.8.3 + vitest: 3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0) - '@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 - chai: 5.2.0 + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.1(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(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 + magic-string: 0.30.21 optionalDependencies: - msw: 2.8.7(@types/node@18.19.70)(typescript@5.8.3) - vite: 6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + msw: 2.12.8(@types/node@18.19.70)(typescript@5.8.3) + vite: 6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) - '@vitest/mocker@3.2.1(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(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 + magic-string: 0.30.21 optionalDependencies: - msw: 2.8.7(@types/node@24.7.0)(typescript@5.8.3) - vite: 6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + msw: 2.12.8(@types/node@22.19.9)(typescript@5.8.3) + vite: 6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(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.1.0 - '@vitest/snapshot@3.2.1': + '@vitest/snapshot@3.2.4': dependencies: - '@vitest/pretty-format': 3.2.1 - magic-string: 0.30.17 + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@3.2.1': + '@vitest/spy@3.2.4': dependencies: - tinyspy: 4.0.3 + tinyspy: 4.0.4 - '@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.2.1 tinyrainbow: 2.0.0 '@vscode/l10n@0.0.18': {} @@ -15609,19 +14614,6 @@ snapshots: dependencies: '@whatwg-node/node-fetch': 0.8.5 urlpattern-polyfill: 10.1.0 - optional: true - - '@whatwg-node/fetch@0.10.8': - dependencies: - '@whatwg-node/node-fetch': 0.7.21 - urlpattern-polyfill: 10.1.0 - - '@whatwg-node/node-fetch@0.7.21': - dependencies: - '@fastify/busboy': 3.1.1 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 '@whatwg-node/node-fetch@0.8.5': dependencies: @@ -15629,7 +14621,6 @@ snapshots: '@whatwg-node/disposablestack': 0.0.6 '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - optional: true '@whatwg-node/promise-helpers@1.3.2': dependencies: @@ -15676,9 +14667,6 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.4: - optional: true - aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -15705,7 +14693,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -15721,11 +14709,7 @@ snapshots: ansi-escapes@6.2.1: {} - ansi-escapes@7.1.1: - dependencies: - environment: 1.1.0 - - ansi-escapes@7.2.0: + ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -15822,7 +14806,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -15834,17 +14818,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.findlastindex@1.2.6: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -15853,21 +14827,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 @@ -15876,7 +14850,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -15913,10 +14887,10 @@ snapshots: at-least-node@1.0.0: {} - atomically@2.0.3: + atomically@2.1.0: dependencies: - stubborn-fs: 1.2.5 - when-exit: 2.1.4 + stubborn-fs: 2.0.0 + when-exit: 2.1.5 auto-bind@4.0.0: {} @@ -15926,12 +14900,12 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axe-core@4.10.3: {} + axe-core@4.11.1: {} axios@1.13.4: dependencies: follow-redirects: 1.15.11 - form-data: 4.0.5 + form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -15941,23 +14915,23 @@ snapshots: babel-plugin-const-enum@1.2.0(@babel/core@7.27.4): dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.28.4 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.27.4) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 cosmiconfig: 7.1.0 - resolve: 1.22.10 + resolve: 1.22.11 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.27.4): + babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.27.4): dependencies: - '@babel/compat-data': 7.28.4 + '@babel/compat-data': 7.29.0 '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.27.4) + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.27.4) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -15965,15 +14939,23 @@ snapshots: babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.27.4): dependencies: '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.27.4) - core-js-compat: 3.45.1 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.27.4) + core-js-compat: 3.48.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.27.4): + babel-plugin-polyfill-corejs3@0.14.0(@babel/core@7.27.4): dependencies: '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.27.4) + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.27.4) + core-js-compat: 3.48.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.27.4): + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.27.4) transitivePeerDependencies: - supports-color @@ -15982,7 +14964,7 @@ snapshots: babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.27.4)(@babel/traverse@7.29.0): dependencies: '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 optionalDependencies: '@babel/traverse': 7.29.0 @@ -15992,28 +14974,28 @@ snapshots: '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.4) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.27.4) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.4) - '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.27.4) '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.27.4) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.27.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.27.4) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.27.4) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.27.4) '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.27.4) '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.27.4) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.27.4) '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.4) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: @@ -16023,7 +15005,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.4: {} + baseline-browser-mapping@2.9.19: {} before-after-hook@3.0.2: {} @@ -16062,7 +15044,7 @@ snapshots: bottleneck@2.19.5: {} - bowser@2.12.1: {} + bowser@2.13.1: {} brace-expansion@1.1.12: dependencies: @@ -16085,13 +15067,13 @@ snapshots: dependencies: pako: 0.2.9 - browserslist@4.26.0: + browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.8.4 - caniuse-lite: 1.0.30001741 - electron-to-chromium: 1.5.218 - node-releases: 2.0.21 - update-browserslist-db: 1.1.3(browserslist@4.26.0) + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001768 + electron-to-chromium: 1.5.286 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) bser@2.1.1: dependencies: @@ -16126,12 +15108,12 @@ snapshots: cacheable-request@10.2.14: dependencies: - '@types/http-cache-semantics': 4.0.4 + '@types/http-cache-semantics': 4.2.0 get-stream: 6.0.1 http-cache-semantics: 4.2.0 keyv: 4.5.4 mimic-response: 4.0.0 - normalize-url: 8.1.0 + normalize-url: 8.1.1 responselike: 3.0.0 cachedir@2.4.0: {} @@ -16177,7 +15159,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001741: {} + caniuse-lite@1.0.30001768: {} capital-case@1.0.4: dependencies: @@ -16190,13 +15172,13 @@ snapshots: ansicolors: 0.3.2 redeyed: 2.1.1 - chai@5.2.0: + chai@5.3.3: dependencies: assertion-error: 2.0.1 - check-error: 2.1.1 + check-error: 2.1.3 deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 + loupe: 3.2.1 + pathval: 2.0.1 chalk@2.4.2: dependencies: @@ -16211,8 +15193,6 @@ snapshots: chalk@5.4.1: {} - chalk@5.6.2: {} - change-case-all@1.0.15: dependencies: change-case: 4.1.2 @@ -16243,11 +15223,9 @@ snapshots: change-case@5.4.4: {} - chardet@2.1.0: {} - chardet@2.1.1: {} - check-error@2.1.1: {} + check-error@2.1.3: {} chokidar@3.5.3: dependencies: @@ -16317,12 +15295,6 @@ snapshots: optionalDependencies: '@colors/colors': 1.5.0 - cli-truncate@2.1.0: - dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - optional: true - cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -16333,9 +15305,6 @@ snapshots: slice-ansi: 7.1.2 string-width: 8.1.1 - cli-width@3.0.0: - optional: true - cli-width@4.1.0: {} cliui@6.0.0: @@ -16415,14 +15384,16 @@ snapshots: commander@13.1.0: {} - commander@14.0.2: {} + commander@14.0.0: {} - commander@9.1.0: {} + commander@14.0.3: {} commander@9.5.0: {} comment-parser@1.4.1: {} + comment-parser@1.4.5: {} + common-tags@1.8.2: {} commondir@1.0.1: {} @@ -16454,11 +15425,11 @@ snapshots: dependencies: ajv: 8.17.1 ajv-formats: 2.1.1(ajv@8.17.1) - atomically: 2.0.3 + atomically: 2.1.0 debounce-fn: 5.1.2 dot-prop: 7.2.0 env-paths: 3.0.0 - json-schema-typed: 8.0.1 + json-schema-typed: 8.0.2 semver: 7.6.3 config-chain@1.1.13: @@ -16496,15 +15467,15 @@ snapshots: cookie@0.7.1: {} - cookie@0.7.2: {} + cookie@1.1.1: {} copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 - core-js-compat@3.45.1: + core-js-compat@3.48.0: dependencies: - browserslist: 4.26.0 + browserslist: 4.28.1 core-util-is@1.0.3: {} @@ -16529,7 +15500,7 @@ snapshots: 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.8.3 @@ -16621,9 +15592,6 @@ snapshots: dependencies: mimic-fn: 4.0.0 - debounce@1.2.1: - optional: true - debounce@2.2.0: {} debug@2.6.9: @@ -16653,7 +15621,7 @@ snapshots: decamelize@1.2.0: {} - decimal.js@10.5.0: {} + decimal.js@10.6.0: {} decode-uri-component@0.2.2: {} @@ -16720,7 +15688,7 @@ snapshots: detect-indent@7.0.2: {} - detect-libc@1.0.3: + detect-libc@2.1.2: optional: true detect-newline@4.0.1: {} @@ -16750,13 +15718,9 @@ snapshots: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 csstype: 3.2.3 domexception@4.0.0: @@ -16801,7 +15765,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.218: {} + electron-to-chromium@1.5.286: {} emoji-regex@10.6.0: {} @@ -16817,6 +15781,11 @@ snapshots: dependencies: once: 1.4.0 + enhanced-resolve@5.19.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 @@ -16828,7 +15797,7 @@ snapshots: entities@4.5.0: {} - entities@6.0.0: {} + entities@6.0.1: {} env-paths@2.2.1: {} @@ -16844,7 +15813,7 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract@1.24.0: + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -16899,18 +15868,18 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.2.1: + es-iterator-helpers@1.2.2: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -16947,7 +15916,7 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.43.0: {} + es-toolkit@1.44.0: {} es6-error@4.1.1: {} @@ -17037,150 +16006,122 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@8.10.0(eslint@8.57.1): + eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) + semver: 7.6.3 - eslint-import-resolver-node@0.3.9: + eslint-config-prettier@10.1.5(eslint@9.39.2(jiti@2.6.1)): dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.10 - transitivePeerDependencies: - - supports-color + eslint: 9.39.2(jiti@2.6.1) - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)): dependencies: - debug: 3.2.7 + eslint: 9.39.2(jiti@2.6.1) + + eslint-import-context@0.1.9(unrs-resolver@1.11.1): + dependencies: + get-tsconfig: 4.13.3 + stable-hash-x: 0.2.0 optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 + unrs-resolver: 1.11.1 + + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + dependencies: + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.39.2(jiti@2.6.1) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + get-tsconfig: 4.13.3 + is-bun-module: 2.0.0 + stable-hash-x: 0.2.0 + tinyglobby: 0.2.15 + unrs-resolver: 1.11.1 + optionalDependencies: + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 + '@typescript-eslint/parser': 8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-plugin-es@3.0.1(eslint@8.57.1): + eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + eslint: 9.39.2(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-eslint-comments@3.2.0(eslint@8.57.1): + eslint-plugin-eslint-comments@3.2.0(eslint@9.39.2(jiti@2.6.1)): dependencies: escape-string-regexp: 1.0.5 - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) ignore: 5.3.2 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 + '@typescript-eslint/types': 8.54.0 + comment-parser: 1.4.5 + debug: 4.4.3(supports-color@8.1.1) + eslint: 9.39.2(jiti@2.6.1) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 + minimatch: 9.0.5 + semver: 7.7.3 + stable-hash-x: 0.2.0 + unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest-formatting@3.1.0(eslint@8.57.1): + eslint-plugin-jest-formatting@3.1.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3): + eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsdoc@48.11.0(eslint@8.57.1): + eslint-plugin-jsdoc@50.7.1(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@es-joy/jsdoccomment': 0.46.0 + '@es-joy/jsdoccomment': 0.50.2 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.57.1 - espree: 10.3.0 - esquery: 1.6.0 - parse-imports: 2.2.1 - semver: 7.6.3 + eslint: 9.39.2(jiti@2.6.1) + espree: 10.4.0 + esquery: 1.7.0 + parse-imports-exports: 0.2.4 + semver: 7.7.3 spdx-expression-parse: 4.0.0 - synckit: 0.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.6.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.10.3 + axe-core: 4.11.1 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -17189,53 +16130,79 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-no-catch-all@1.1.0(eslint@8.57.1): + eslint-plugin-n@17.23.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + enhanced-resolve: 5.19.0 + eslint: 9.39.2(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@2.6.1)) + get-tsconfig: 4.13.3 + globals: 15.15.0 + globrex: 0.1.2 + ignore: 5.3.2 + semver: 7.6.3 + ts-declaration-location: 1.0.7(typescript@5.8.3) + transitivePeerDependencies: + - typescript + + eslint-plugin-no-catch-all@1.1.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-node@11.1.0(eslint@8.57.1): + eslint-plugin-prettier@5.5.1(eslint-config-prettier@10.1.5(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@2.8.8): dependencies: - eslint: 8.57.1 - eslint-plugin-es: 3.0.1(eslint@8.57.1) - eslint-utils: 2.1.0 - ignore: 5.3.2 - minimatch: 3.1.2 - resolve: 1.22.10 - semver: 6.3.1 + eslint: 9.39.2(jiti@2.6.1) + prettier: 2.8.8 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.12 + optionalDependencies: + eslint-config-prettier: 10.1.5(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8): + eslint-plugin-prettier@5.5.1(eslint-config-prettier@10.1.5(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1): dependencies: - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) + prettier: 3.8.1 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.12 + optionalDependencies: + eslint-config-prettier: 10.1.5(eslint@9.39.2(jiti@2.6.1)) + + eslint-plugin-prettier@5.5.1(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@2.8.8): + dependencies: + eslint: 9.39.2(jiti@2.6.1) prettier: 2.8.8 - prettier-linter-helpers: 1.0.0 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.12 optionalDependencies: - eslint-config-prettier: 8.10.0(eslint@8.57.1) + eslint-config-prettier: 9.1.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.7.4): + eslint-plugin-prettier@5.5.1(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1): dependencies: - eslint: 8.57.1 - prettier: 3.7.4 - prettier-linter-helpers: 1.0.0 + eslint: 9.39.2(jiti@2.6.1) + prettier: 3.8.1 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.12 optionalDependencies: - eslint-config-prettier: 8.10.0(eslint@8.57.1) + eslint-config-prettier: 9.1.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-promise@6.6.0(eslint@8.57.1): + eslint-plugin-promise@7.2.1(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 8.57.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): + eslint-plugin-react-hooks@5.2.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-react@7.37.3(eslint@8.57.1): + eslint-plugin-react@7.37.5(eslint@9.39.2(jiti@2.6.1)): dependencies: array-includes: 3.1.9 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.1 - eslint: 8.57.1 + es-iterator-helpers: 1.2.2 + eslint: 9.39.2(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -17249,112 +16216,72 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-sort-class-members@1.21.0(eslint@8.57.1): + eslint-plugin-sort-class-members@1.21.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) eslint-plugin-tsdoc@0.4.0: dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-rule-composer: 0.3.0 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)(vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)): - dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - vitest: 3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)(vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) - eslint: 8.57.1 + eslint: 9.39.2(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.13.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - vitest: 3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-rule-composer@0.3.0: {} + '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-utils@2.1.0: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-visitor-keys@1.3.0: {} - - eslint-visitor-keys@2.1.0: {} - eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.1: {} - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + eslint@9.39.2(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.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.2 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.0(supports-color@8.1.1) - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 2.6.1 transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) @@ -17368,7 +16295,7 @@ snapshots: esprima@4.0.1: {} - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -17376,8 +16303,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} estree-walker@2.0.2: {} @@ -17392,7 +16317,7 @@ snapshots: eventemitter3@4.0.7: {} - eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} execa@7.2.0: dependencies: @@ -17406,7 +16331,7 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 3.0.0 - expect-type@1.2.1: {} + expect-type@1.3.0: {} express@4.21.2: dependencies: @@ -17474,15 +16399,15 @@ snapshots: fast-safe-stringify@1.2.3: {} - fast-uri@3.0.6: {} + fast-uri@3.1.0: {} fast-xml-parser@5.3.4: dependencies: - strnum: 2.1.1 + strnum: 2.1.2 fastest-levenshtein@1.0.16: {} - fastq@1.19.1: + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -17500,7 +16425,7 @@ snapshots: object-assign: 4.1.1 promise: 7.3.1 setimmediate: 1.0.5 - ua-parser-js: 1.0.40 + ua-parser-js: 1.0.41 transitivePeerDependencies: - encoding @@ -17526,9 +16451,9 @@ snapshots: escape-string-regexp: 5.0.0 is-unicode-supported: 1.3.0 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 filelist@1.0.4: dependencies: @@ -17579,11 +16504,10 @@ snapshots: dependencies: micromatch: 4.0.8 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 - rimraf: 3.0.2 flat@5.0.2: {} @@ -17620,14 +16544,6 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - form-data@4.0.5: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 - formatly@0.2.4: dependencies: fd-package-json: 2.0.0 @@ -17649,13 +16565,13 @@ snapshots: fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.0 universalify: 2.0.1 fs-extra@11.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.0 universalify: 2.0.1 fs-extra@7.0.1: @@ -17674,7 +16590,7 @@ snapshots: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.0 universalify: 2.0.1 fs.realpath@1.0.0: {} @@ -17695,6 +16611,8 @@ snapshots: functions-have-names@1.2.3: {} + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -17740,6 +16658,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 + get-tsconfig@4.13.3: + dependencies: + resolve-pkg-maps: 1.0.0 + git-diff@2.0.6: dependencies: chalk: 2.4.2 @@ -17760,7 +16682,7 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.5: + glob@10.5.0: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 @@ -17769,14 +16691,11 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.3: + glob@13.0.1: dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.1 - minimatch: 10.1.1 + minimatch: 10.1.2 minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 + path-scurry: 2.0.1 glob@7.2.3: dependencies: @@ -17808,12 +16727,12 @@ snapshots: dependencies: ini: 2.0.0 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} globals@15.15.0: {} + globals@16.2.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -17828,6 +16747,8 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globrex@0.1.2: {} + gopd@1.2.0: {} got@12.6.1: @@ -17871,7 +16792,7 @@ snapshots: graphql-codegen-typescript-operation-types@2.0.2(graphql@16.10.0): dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.10.0) '@graphql-codegen/typescript': 4.1.6(graphql@16.10.0) graphql: 16.10.0 transitivePeerDependencies: @@ -17879,15 +16800,15 @@ snapshots: graphql-config@5.1.5(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3): dependencies: - '@graphql-tools/graphql-file-loader': 8.0.20(graphql@16.10.0) - '@graphql-tools/json-file-loader': 8.0.18(graphql@16.10.0) - '@graphql-tools/load': 8.1.0(graphql@16.10.0) - '@graphql-tools/merge': 9.0.24(graphql@16.10.0) - '@graphql-tools/url-loader': 8.0.31(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0) + '@graphql-tools/graphql-file-loader': 8.1.9(graphql@16.10.0) + '@graphql-tools/json-file-loader': 8.0.26(graphql@16.10.0) + '@graphql-tools/load': 8.1.8(graphql@16.10.0) + '@graphql-tools/merge': 9.1.7(graphql@16.10.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@18.19.70)(crossws@0.3.5)(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) cosmiconfig: 8.3.6(typescript@5.8.3) graphql: 16.10.0 - jiti: 2.4.2 + jiti: 2.6.1 minimatch: 9.0.5 string-env-interpolation: 1.0.1 tslib: 2.8.1 @@ -17896,21 +16817,21 @@ snapshots: - '@types/node' - bufferutil - crossws + - supports-color - typescript - - uWebSockets.js - utf-8-validate - graphql-config@5.1.5(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3): + graphql-config@5.1.5(@types/node@22.19.9)(crossws@0.3.5)(graphql@16.10.0)(typescript@5.8.3): dependencies: - '@graphql-tools/graphql-file-loader': 8.0.20(graphql@16.10.0) - '@graphql-tools/json-file-loader': 8.0.18(graphql@16.10.0) - '@graphql-tools/load': 8.1.0(graphql@16.10.0) - '@graphql-tools/merge': 9.0.24(graphql@16.10.0) - '@graphql-tools/url-loader': 8.0.31(@types/node@24.7.0)(crossws@0.3.5)(graphql@16.10.0) + '@graphql-tools/graphql-file-loader': 8.1.9(graphql@16.10.0) + '@graphql-tools/json-file-loader': 8.0.26(graphql@16.10.0) + '@graphql-tools/load': 8.1.8(graphql@16.10.0) + '@graphql-tools/merge': 9.1.7(graphql@16.10.0) + '@graphql-tools/url-loader': 8.0.33(@types/node@22.19.9)(crossws@0.3.5)(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) cosmiconfig: 8.3.6(typescript@5.8.3) graphql: 16.10.0 - jiti: 2.4.2 + jiti: 2.6.1 minimatch: 9.0.5 string-env-interpolation: 1.0.1 tslib: 2.8.1 @@ -17919,8 +16840,8 @@ snapshots: - '@types/node' - bufferutil - crossws + - supports-color - typescript - - uWebSockets.js - utf-8-validate optional: true @@ -17932,7 +16853,7 @@ snapshots: transitivePeerDependencies: - encoding - graphql-request@7.2.0(graphql@16.10.0): + graphql-request@7.4.0(graphql@16.10.0): dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) graphql: 16.10.0 @@ -17942,20 +16863,12 @@ snapshots: graphql: 16.10.0 tslib: 2.8.1 - graphql-ws@6.0.5(crossws@0.3.5)(graphql@16.10.0)(ws@8.18.0): - dependencies: - graphql: 16.10.0 - optionalDependencies: - crossws: 0.3.5 - ws: 8.18.0 - graphql-ws@6.0.7(crossws@0.3.5)(graphql@16.10.0)(ws@8.19.0): dependencies: graphql: 16.10.0 optionalDependencies: crossws: 0.3.5 ws: 8.19.0 - optional: true graphql@16.10.0: {} @@ -17984,7 +16897,7 @@ snapshots: iron-webcrypto: 1.2.1 ohash: 1.1.6 radix3: 1.1.2 - ufo: 1.6.1 + ufo: 1.6.3 uncrypto: 0.1.3 unenv: 1.10.0 @@ -18035,6 +16948,10 @@ snapshots: dependencies: lru-cache: 10.4.3 + hosted-git-info@9.0.2: + dependencies: + lru-cache: 11.2.5 + html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 @@ -18062,21 +16979,13 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - http-proxy-agent@7.0.2: + http-proxy-agent@5.0.0: dependencies: - agent-base: 7.1.4 + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color - optional: true http-proxy-node16@1.0.6: dependencies: @@ -18098,15 +17007,7 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - optional: true - - human-id@4.1.2: {} + human-id@4.1.3: {} human-signals@4.3.1: {} @@ -18120,10 +17021,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.7.0: - dependencies: - safer-buffer: 2.1.2 - iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 @@ -18138,7 +17035,7 @@ snapshots: immutable@3.7.6: {} - immutable@5.1.2: {} + immutable@5.1.4: {} import-fresh@3.3.1: dependencies: @@ -18169,10 +17066,10 @@ snapshots: ink@5.0.1(@types/react@18.3.12)(react@18.3.1): dependencies: '@alcalzone/ansi-tokenize': 0.1.3 - ansi-escapes: 7.1.1 + ansi-escapes: 7.3.0 ansi-styles: 6.2.3 auto-bind: 5.0.1 - chalk: 5.6.2 + chalk: 5.4.1 cli-boxes: 3.0.0 cli-cursor: 4.0.0 cli-truncate: 4.0.0 @@ -18202,7 +17099,7 @@ snapshots: ink@5.2.1(@types/react@18.3.12)(react@18.3.1): dependencies: '@alcalzone/ansi-tokenize': 0.1.3 - ansi-escapes: 7.2.0 + ansi-escapes: 7.3.0 ansi-styles: 6.2.3 auto-bind: 5.0.1 chalk: 5.4.1 @@ -18210,7 +17107,7 @@ snapshots: cli-cursor: 4.0.0 cli-truncate: 4.0.0 code-excerpt: 4.0.0 - es-toolkit: 1.43.0 + es-toolkit: 1.44.0 indent-string: 5.0.0 is-in-ci: 1.0.0 patch-console: 2.0.0 @@ -18232,27 +17129,6 @@ snapshots: - bufferutil - utf-8-validate - inquirer@8.2.7(@types/node@24.7.0): - dependencies: - '@inquirer/external-editor': 1.0.3(@types/node@24.7.0) - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - figures: 3.2.0 - lodash: 4.17.23 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - transitivePeerDependencies: - - '@types/node' - optional: true - internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -18305,6 +17181,10 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-bun-module@2.0.0: + dependencies: + semver: 7.7.3 + is-callable@1.2.7: {} is-core-module@2.16.1: @@ -18344,9 +17224,10 @@ snapshots: dependencies: get-east-asian-width: 1.4.0 - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -18441,7 +17322,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 is-unc-path@1.0.0: dependencies: @@ -18497,17 +17378,16 @@ snapshots: isomorphic-ws@5.0.0(ws@8.19.0): dependencies: ws: 8.19.0 - optional: true istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.27.4 - '@babel/parser': 7.28.4 + '@babel/parser': 7.29.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.3 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -18525,7 +17405,7 @@ snapshots: 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 @@ -18545,10 +17425,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.1.1: - dependencies: - '@isaacs/cliui': 8.0.2 - jake@10.9.4: dependencies: async: 3.2.6 @@ -18578,10 +17454,7 @@ snapshots: jest-get-type: 26.3.0 pretty-format: 26.6.2 - jiti@1.21.7: - optional: true - - jiti@2.4.2: {} + jiti@2.6.1: {} jju@1.4.0: {} @@ -18589,20 +17462,18 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - js-yaml@4.1.1: dependencies: argparse: 2.0.1 - jsdoc-type-pratt-parser@4.0.0: {} + jsdoc-type-pratt-parser@4.1.0: {} jsdom@20.0.3: dependencies: @@ -18612,7 +17483,7 @@ snapshots: cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.5.0 + decimal.js: 10.6.0 domexception: 4.0.0 escodegen: 2.1.0 form-data: 4.0.4 @@ -18620,7 +17491,7 @@ snapshots: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 + nwsapi: 2.2.23 parse5: 7.3.0 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -18637,8 +17508,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -18653,17 +17522,17 @@ snapshots: '@types/json-schema': 7.0.15 '@types/lodash': 4.17.19 is-glob: 4.0.3 - js-yaml: 4.1.0 - lodash: 4.17.21 + js-yaml: 4.1.1 + lodash: 4.17.23 minimist: 1.2.8 - prettier: 3.7.4 + prettier: 3.8.1 tinyglobby: 0.2.15 json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} - json-schema-typed@8.0.1: {} + json-schema-typed@8.0.2: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -18676,13 +17545,9 @@ snapshots: remedial: 1.0.8 remove-trailing-spaces: 1.0.9 - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} - jsonc-eslint-parser@2.4.0: + jsonc-eslint-parser@2.4.2: dependencies: acorn: 8.15.0 eslint-visitor-keys: 3.4.3 @@ -18697,7 +17562,7 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.1.0: + jsonfile@6.2.0: dependencies: universalify: 2.0.1 optionalDependencies: @@ -18722,17 +17587,17 @@ snapshots: '@types/node': 18.19.70 fast-glob: 3.3.3 formatly: 0.2.4 - jiti: 2.4.2 - js-yaml: 4.1.0 + jiti: 2.6.1 + js-yaml: 4.1.1 minimist: 1.2.8 oxc-resolver: 9.0.2 picocolors: 1.1.1 picomatch: 4.0.3 - smol-toml: 1.3.4 + smol-toml: 1.6.0 strip-json-comments: 5.0.1 typescript: 5.8.3 zod: 3.24.1 - zod-validation-error: 3.4.1(zod@3.24.1) + zod-validation-error: 3.5.4(zod@3.24.1) knuth-shuffle-seeded@1.0.6: dependencies: @@ -18776,25 +17641,11 @@ snapshots: dependencies: commander: 10.0.1 - listr2@4.0.5(enquirer@2.4.1): - dependencies: - cli-truncate: 2.1.0 - colorette: 2.0.20 - log-update: 4.0.0 - p-map: 4.0.0 - rfdc: 1.4.1 - rxjs: 7.8.2 - through: 2.3.8 - wrap-ansi: 7.0.0 - optionalDependencies: - enquirer: 2.4.1 - optional: true - listr2@9.0.5: dependencies: cli-truncate: 5.1.1 colorette: 2.0.20 - eventemitter3: 5.0.1 + eventemitter3: 5.0.4 log-update: 6.1.0 rfdc: 1.4.1 wrap-ansi: 9.0.2 @@ -18835,8 +17686,6 @@ snapshots: lodash.union@4.6.0: {} - lodash@4.17.21: {} - lodash@4.17.23: {} log-symbols@4.1.0: @@ -18844,20 +17693,12 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-update@4.0.0: - dependencies: - ansi-escapes: 4.3.2 - cli-cursor: 3.1.0 - slice-ansi: 4.0.0 - wrap-ansi: 6.2.0 - optional: true - log-update@6.1.0: dependencies: - ansi-escapes: 7.1.1 + ansi-escapes: 7.3.0 cli-cursor: 5.0.0 slice-ansi: 7.1.2 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 wrap-ansi: 9.0.2 loglevel@1.9.2: {} @@ -18868,7 +17709,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} + loupe@3.2.1: {} lower-case-first@2.0.2: dependencies: @@ -18876,13 +17717,13 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 lowercase-keys@3.0.0: {} lru-cache@10.4.3: {} - lru-cache@11.2.2: {} + lru-cache@11.2.5: {} lru-cache@5.1.1: dependencies: @@ -18890,23 +17731,23 @@ snapshots: lunr@2.3.9: {} - luxon@3.7.1: {} + luxon@3.7.2: {} macaddress@0.5.3: {} - magic-string@0.30.17: + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 magicast@0.3.5: dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 source-map-js: 1.2.1 make-dir@4.0.0: dependencies: - semver: 7.7.3 + semver: 7.6.3 make-error@1.3.6: {} @@ -18961,13 +17802,13 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@18.19.70): + meros@1.3.2(@types/node@18.19.70): optionalDependencies: '@types/node': 18.19.70 - meros@1.3.0(@types/node@24.7.0): + meros@1.3.2(@types/node@22.19.9): optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 22.19.9 optional: true methods@1.1.2: {} @@ -19001,7 +17842,11 @@ snapshots: minimatch@10.1.1: dependencies: - '@isaacs/brace-expansion': 5.0.0 + '@isaacs/brace-expansion': 5.0.1 + + minimatch@10.1.2: + dependencies: + '@isaacs/brace-expansion': 5.0.1 minimatch@3.1.2: dependencies: @@ -19049,25 +17894,25 @@ snapshots: ms@2.1.3: {} - msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3): + msw@2.12.8(@types/node@18.19.70)(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.19(@types/node@18.19.70) - '@mswjs/interceptors': 0.38.7 + '@inquirer/confirm': 5.1.21(@types/node@18.19.70) + '@mswjs/interceptors': 0.41.0 '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 + '@types/statuses': 2.0.6 + cookie: 1.1.1 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 + rettime: 0.10.1 + statuses: 2.0.2 strict-event-emitter: 0.5.1 - type-fest: 4.41.0 + tough-cookie: 6.0.0 + type-fest: 5.4.3 + until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: typescript: 5.8.3 @@ -19075,34 +17920,31 @@ snapshots: - '@types/node' optional: true - msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3): + msw@2.12.8(@types/node@22.19.9)(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.19(@types/node@24.7.0) - '@mswjs/interceptors': 0.38.7 + '@inquirer/confirm': 5.1.21(@types/node@22.19.9) + '@mswjs/interceptors': 0.41.0 '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 + '@types/statuses': 2.0.6 + cookie: 1.1.1 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 + rettime: 0.10.1 + statuses: 2.0.2 strict-event-emitter: 0.5.1 - type-fest: 4.41.0 + tough-cookie: 6.0.0 + type-fest: 5.4.3 + until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - '@types/node' - mute-stream@0.0.8: - optional: true - mute-stream@1.0.0: {} mute-stream@2.0.0: {} @@ -19117,7 +17959,7 @@ snapshots: nanoid@3.3.8: {} - natural-compare-lite@1.4.0: {} + napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -19141,7 +17983,7 @@ snapshots: node-domexception@1.0.0: {} - node-fetch-native@1.6.6: {} + node-fetch-native@1.6.7: {} node-fetch@2.7.0: dependencies: @@ -19157,14 +17999,14 @@ snapshots: node-machine-id@1.1.12: {} - node-releases@2.0.21: {} + node-releases@2.0.27: {} node-stream-zip@1.15.0: {} normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.10 + resolve: 1.22.11 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -19174,19 +18016,25 @@ snapshots: semver: 7.6.3 validate-npm-package-license: 3.0.4 + normalize-package-data@8.0.0: + dependencies: + hosted-git-info: 9.0.2 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + normalize-path@2.1.1: dependencies: remove-trailing-separator: 1.1.0 normalize-path@3.0.0: {} - normalize-url@8.1.0: {} + normalize-url@8.1.1: {} npm-package-arg@11.0.3: dependencies: hosted-git-info: 7.0.2 proc-log: 4.2.0 - semver: 7.7.3 + semver: 7.6.3 validate-npm-package-name: 5.0.1 npm-run-path@4.0.1: @@ -19197,11 +18045,11 @@ snapshots: dependencies: path-key: 4.0.0 - npm@10.9.3: {} + npm@10.9.4: {} nullthrows@1.1.1: {} - nwsapi@2.2.20: {} + nwsapi@2.2.23: {} nx@22.0.2: dependencies: @@ -19237,7 +18085,7 @@ snapshots: tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - yaml: 2.8.2 + yaml: 2.7.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: @@ -19281,14 +18129,14 @@ snapshots: open: 8.4.2 ora: 5.3.0 resolve.exports: 2.0.3 - semver: 7.7.3 + semver: 7.6.3 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.8.2 + yaml: 2.7.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: @@ -19337,15 +18185,9 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - object.values@1.2.1: dependencies: call-bind: 1.0.8 @@ -19390,7 +18232,7 @@ snapshots: ohash@1.1.6: {} - ohm-js@17.2.1: {} + ohm-js@17.3.0: {} on-finished@2.4.1: dependencies: @@ -19438,19 +18280,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 - optional: true - outdent@0.5.0: {} outvariant@1.4.3: {} @@ -19493,7 +18322,7 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.2.1 + yocto-queue: 1.2.2 p-locate@4.1.0: dependencies: @@ -19520,13 +18349,13 @@ snapshots: package-json@8.1.1: dependencies: got: 12.6.1 - registry-auth-token: 5.1.0 + registry-auth-token: 5.1.1 registry-url: 6.0.1 semver: 7.6.3 package-manager-detector@0.2.11: dependencies: - quansync: 0.2.10 + quansync: 0.2.11 pad-right@0.2.2: dependencies: @@ -19549,10 +18378,9 @@ snapshots: map-cache: 0.2.2 path-root: 0.1.1 - parse-imports@2.2.1: + parse-imports-exports@0.2.4: dependencies: - es-module-lexer: 1.7.0 - slashes: 3.0.12 + parse-statements: 1.0.11 parse-json@4.0.0: dependencies: @@ -19561,20 +18389,22 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 index-to-position: 1.2.0 type-fest: 4.41.0 + parse-statements@1.0.11: {} + parse5@7.3.0: dependencies: - entities: 6.0.0 + entities: 6.0.1 parseurl@1.3.3: {} @@ -19620,9 +18450,9 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-scurry@2.0.0: + path-scurry@2.0.1: dependencies: - lru-cache: 11.2.2 + lru-cache: 11.2.5 minipass: 7.1.2 path-to-regexp@0.1.12: {} @@ -19637,7 +18467,7 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} peek-stream@1.1.3: dependencies: @@ -19655,7 +18485,7 @@ snapshots: pify@4.0.1: {} - pin-github-action@3.3.1: + pin-github-action@3.4.0: dependencies: '@octokit/rest': 21.1.1 commander: 13.1.0 @@ -19676,7 +18506,7 @@ snapshots: fast-safe-stringify: 1.2.3 flatstr: 1.0.12 pino-std-serializers: 2.5.0 - pump: 3.0.2 + pump: 3.0.3 quick-format-unescaped: 1.1.2 split2: 2.2.0 @@ -19696,13 +18526,13 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.1: dependencies: fast-diff: 1.3.0 prettier@2.8.8: {} - prettier@3.7.4: {} + prettier@3.8.1: {} pretty-format@26.6.2: dependencies: @@ -19745,7 +18575,7 @@ snapshots: proto-list@1.2.4: {} - protobufjs@7.5.3: + protobufjs@7.5.4: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -19776,7 +18606,7 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - pump@3.0.2: + pump@3.0.3: dependencies: end-of-stream: 1.4.5 once: 1.4.0 @@ -19804,7 +18634,7 @@ snapshots: dependencies: side-channel: 1.1.0 - quansync@0.2.10: {} + quansync@0.2.11: {} query-string@7.1.3: dependencies: @@ -19889,16 +18719,16 @@ snapshots: react-refresh@0.10.0: {} - react-router-dom@6.30.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-router-dom@6.30.3(react-dom@17.0.2(react@17.0.2))(react@17.0.2): dependencies: - '@remix-run/router': 1.23.0 + '@remix-run/router': 1.23.2 react: 17.0.2 react-dom: 17.0.2(react@17.0.2) - react-router: 6.30.1(react@17.0.2) + react-router: 6.30.3(react@17.0.2) - react-router@6.30.1(react@17.0.2): + react-router@6.30.3(react@17.0.2): dependencies: - '@remix-run/router': 1.23.0 + '@remix-run/router': 1.23.2 react: 17.0.2 react-toastify@9.1.3(react-dom@17.0.2(react@17.0.2))(react@17.0.2): @@ -19909,7 +18739,7 @@ snapshots: react-transition-group@4.4.5(react-dom@17.0.2(react@17.0.2))(react@17.0.2): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -19918,7 +18748,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -19934,11 +18764,11 @@ snapshots: dependencies: loose-envify: 1.4.0 - read-package-up@11.0.0: + read-package-up@12.0.0: dependencies: find-up-simple: 1.0.1 - read-pkg: 9.0.1 - type-fest: 4.41.0 + read-pkg: 10.0.0 + type-fest: 5.4.3 read-pkg-up@7.0.1: dependencies: @@ -19946,6 +18776,14 @@ snapshots: read-pkg: 5.2.0 type-fest: 0.8.1 + read-pkg@10.0.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 8.0.0 + parse-json: 8.3.0 + type-fest: 5.4.3 + unicorn-magic: 0.3.0 + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.4 @@ -19953,14 +18791,6 @@ snapshots: parse-json: 5.2.0 type-fest: 0.6.0 - read-pkg@9.0.1: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 6.0.2 - parse-json: 8.3.0 - type-fest: 4.41.0 - unicorn-magic: 0.1.0 - read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -19996,7 +18826,7 @@ snapshots: rechoir@0.6.2: dependencies: - resolve: 1.22.10 + resolve: 1.22.11 redent@3.0.0: dependencies: @@ -20009,15 +18839,13 @@ snapshots: reduce-flatten@2.0.0: {} - reflect-metadata@0.1.13: {} - reflect-metadata@0.2.2: {} reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -20045,21 +18873,15 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpp@3.2.0: {} - - regexpu-core@6.3.1: + regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.12.0 + regjsparser: 0.13.0 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 - registry-auth-token@5.1.0: - dependencies: - '@pnpm/npm-conf': 2.3.1 - registry-auth-token@5.1.1: dependencies: '@pnpm/npm-conf': 3.0.2 @@ -20070,13 +18892,13 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.12.0: + regjsparser@0.13.0: dependencies: - jsesc: 3.0.2 + jsesc: 3.1.0 relay-runtime@12.0.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 fbjs: 3.0.5 invariant: 2.2.4 transitivePeerDependencies: @@ -20104,9 +18926,11 @@ snapshots: resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve.exports@2.0.3: {} - resolve@1.22.10: + resolve@1.22.11: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 @@ -20141,6 +18965,8 @@ snapshots: retry@0.13.1: {} + rettime@0.10.1: {} + reusify@1.1.0: {} rfdc@1.4.1: {} @@ -20158,46 +18984,41 @@ snapshots: semver-compare: 1.0.0 sprintf-js: 1.1.3 - rollup@4.52.5: + rollup@4.57.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.52.5 - '@rollup/rollup-android-arm64': 4.52.5 - '@rollup/rollup-darwin-arm64': 4.52.5 - '@rollup/rollup-darwin-x64': 4.52.5 - '@rollup/rollup-freebsd-arm64': 4.52.5 - '@rollup/rollup-freebsd-x64': 4.52.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 - '@rollup/rollup-linux-arm-musleabihf': 4.52.5 - '@rollup/rollup-linux-arm64-gnu': 4.52.5 - '@rollup/rollup-linux-arm64-musl': 4.52.5 - '@rollup/rollup-linux-loong64-gnu': 4.52.5 - '@rollup/rollup-linux-ppc64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-gnu': 4.52.5 - '@rollup/rollup-linux-riscv64-musl': 4.52.5 - '@rollup/rollup-linux-s390x-gnu': 4.52.5 - '@rollup/rollup-linux-x64-gnu': 4.52.5 - '@rollup/rollup-linux-x64-musl': 4.52.5 - '@rollup/rollup-openharmony-arm64': 4.52.5 - '@rollup/rollup-win32-arm64-msvc': 4.52.5 - '@rollup/rollup-win32-ia32-msvc': 4.52.5 - '@rollup/rollup-win32-x64-gnu': 4.52.5 - '@rollup/rollup-win32-x64-msvc': 4.52.5 + '@rollup/rollup-android-arm-eabi': 4.57.1 + '@rollup/rollup-android-arm64': 4.57.1 + '@rollup/rollup-darwin-arm64': 4.57.1 + '@rollup/rollup-darwin-x64': 4.57.1 + '@rollup/rollup-freebsd-arm64': 4.57.1 + '@rollup/rollup-freebsd-x64': 4.57.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 + '@rollup/rollup-linux-arm-musleabihf': 4.57.1 + '@rollup/rollup-linux-arm64-gnu': 4.57.1 + '@rollup/rollup-linux-arm64-musl': 4.57.1 + '@rollup/rollup-linux-loong64-gnu': 4.57.1 + '@rollup/rollup-linux-loong64-musl': 4.57.1 + '@rollup/rollup-linux-ppc64-gnu': 4.57.1 + '@rollup/rollup-linux-ppc64-musl': 4.57.1 + '@rollup/rollup-linux-riscv64-gnu': 4.57.1 + '@rollup/rollup-linux-riscv64-musl': 4.57.1 + '@rollup/rollup-linux-s390x-gnu': 4.57.1 + '@rollup/rollup-linux-x64-gnu': 4.57.1 + '@rollup/rollup-linux-x64-musl': 4.57.1 + '@rollup/rollup-openbsd-x64': 4.57.1 + '@rollup/rollup-openharmony-arm64': 4.57.1 + '@rollup/rollup-win32-arm64-msvc': 4.57.1 + '@rollup/rollup-win32-ia32-msvc': 4.57.1 + '@rollup/rollup-win32-x64-gnu': 4.57.1 + '@rollup/rollup-win32-x64-msvc': 4.57.1 fsevents: 2.3.3 - run-async@2.4.1: - optional: true - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 - optional: true - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -20223,13 +19044,13 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.89.1: + sass@1.97.3: dependencies: chokidar: 4.0.3 - immutable: 5.1.2 + immutable: 5.1.4 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.1 + '@parcel/watcher': 2.5.6 saxes@6.0.0: dependencies: @@ -20244,9 +19065,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - scuid@1.1.0: - optional: true - seed-random@2.2.0: {} semver-compare@1.0.0: {} @@ -20257,8 +19075,6 @@ snapshots: semver@7.6.3: {} - semver@7.7.2: {} - semver@7.7.3: {} send@0.19.0: @@ -20400,15 +19216,6 @@ snapshots: slash@3.0.0: {} - slashes@3.0.12: {} - - slice-ansi@3.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - optional: true - slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -20425,7 +19232,7 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 - smol-toml@1.3.4: {} + smol-toml@1.6.0: {} snake-case@3.0.4: dependencies: @@ -20459,7 +19266,7 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: {} + source-map@0.7.6: {} spawndamnit@3.0.1: dependencies: @@ -20499,6 +19306,8 @@ snapshots: sprintf-js@1.1.3: {} + stable-hash-x@0.2.0: {} + stack-generator@2.0.10: dependencies: stackframe: 1.3.4 @@ -20518,7 +19327,9 @@ snapshots: statuses@2.0.1: {} - std-env@3.9.0: {} + statuses@2.0.2: {} + + std-env@3.10.0: {} stop-iteration-iterator@1.1.0: dependencies: @@ -20547,7 +19358,7 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 string-width@7.2.0: dependencies: @@ -20558,20 +19369,20 @@ snapshots: string-width@8.1.1: dependencies: get-east-asian-width: 1.4.0 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -20585,7 +19396,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 string.prototype.trim@1.2.10: dependencies: @@ -20593,7 +19404,7 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 @@ -20644,9 +19455,17 @@ snapshots: strip-json-comments@5.0.1: {} - strnum@2.1.1: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + + strnum@2.1.2: {} + + stubborn-fs@2.0.0: + dependencies: + stubborn-utils: 1.0.2 - stubborn-fs@1.2.5: {} + stubborn-utils@1.0.2: {} supports-color@5.5.0: dependencies: @@ -20678,7 +19497,6 @@ snapshots: node-fetch: 3.3.2 timeout-signal: 2.0.0 whatwg-mimetype: 4.0.0 - optional: true sync-fetch@0.6.0-2: dependencies: @@ -20686,10 +19504,9 @@ snapshots: timeout-signal: 2.0.0 whatwg-mimetype: 4.0.0 - synckit@0.9.3: + synckit@0.11.12: dependencies: - '@pkgr/core': 0.1.2 - tslib: 2.8.1 + '@pkgr/core': 0.2.9 table-layout@1.0.2: dependencies: @@ -20698,11 +19515,15 @@ snapshots: typical: 5.2.0 wordwrapjs: 4.0.1 + tagged-tag@1.0.0: {} + + tapable@2.3.0: {} + tar-fs@2.1.4: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.2 + pump: 3.0.3 tar-stream: 2.2.0 tar-stream@2.2.0: @@ -20749,11 +19570,9 @@ snapshots: test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 10.4.5 + glob: 10.5.0 minimatch: 9.0.5 - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -20767,9 +19586,6 @@ snapshots: readable-stream: 2.3.8 xtend: 4.0.2 - through@2.3.8: - optional: true - timeout-signal@2.0.0: {} tiny-case@1.0.3: {} @@ -20792,18 +19608,24 @@ snapshots: '@types/tinycolor2': 1.4.6 tinycolor2: 1.6.0 - tinypool@1.1.0: {} + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} tinyspy@1.1.1: {} - tinyspy@4.0.3: {} + tinyspy@4.0.4: {} title-case@3.0.3: dependencies: tslib: 2.6.3 + tldts-core@7.0.22: {} + + tldts@7.0.22: + dependencies: + tldts-core: 7.0.22 + tmp@0.2.5: {} to-regex-range@5.0.1: @@ -20823,6 +19645,10 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 + tough-cookie@6.0.0: + dependencies: + tldts: 7.0.22 + tr46@5.1.1: dependencies: punycode: 2.3.1 @@ -20831,12 +19657,13 @@ snapshots: trim-newlines@3.0.1: {} - ts-api-utils@1.4.3(typescript@5.8.3): + ts-api-utils@2.4.0(typescript@5.8.3): dependencies: typescript: 5.8.3 - ts-api-utils@2.1.0(typescript@5.8.3): + ts-declaration-location@1.0.7(typescript@5.8.3): dependencies: + picomatch: 4.0.3 typescript: 5.8.3 ts-dedent@2.2.0: {} @@ -20858,7 +19685,7 @@ snapshots: ts-node@10.9.2(@types/node@18.19.70)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 @@ -20873,32 +19700,18 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} - tslib@2.4.1: {} tslib@2.6.3: {} tslib@2.8.1: {} - tsutils@3.21.0(typescript@5.8.3): - dependencies: - tslib: 1.14.1 - typescript: 5.8.3 - tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -20913,8 +19726,6 @@ snapshots: type-fest@0.16.0: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} type-fest@0.6.0: {} @@ -20927,6 +19738,10 @@ snapshots: type-fest@4.41.0: {} + type-fest@5.4.3: + dependencies: + tagged-tag: 1.0.0 + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -20976,19 +19791,30 @@ snapshots: typescript: 5.8.3 yaml: 2.7.0 + typescript-eslint@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + typescript@5.8.3: {} typical@4.0.0: {} typical@5.2.0: {} - ua-parser-js@1.0.40: {} + ua-parser-js@1.0.41: {} uc.micro@2.1.0: {} ufo@0.8.6: {} - ufo@1.6.1: {} + ufo@1.6.3: {} unbox-primitive@1.1.0: dependencies: @@ -21005,9 +19831,6 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.14.0: - optional: true - undici@5.29.0: dependencies: '@fastify/busboy': 2.1.1 @@ -21017,7 +19840,7 @@ snapshots: consola: 3.4.2 defu: 6.1.4 mime: 3.0.0 - node-fetch-native: 1.6.6 + node-fetch-native: 1.6.7 pathe: 1.1.2 unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -21031,7 +19854,7 @@ snapshots: unicode-property-aliases-ecmascript@2.2.0: {} - unicorn-magic@0.1.0: {} + unicorn-magic@0.3.0: {} unique-string@2.0.0: dependencies: @@ -21055,19 +19878,45 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.26.0): + unrs-resolver@1.11.1: dependencies: - browserslist: 4.26.0 + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + + until-async@3.0.2: {} + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 upper-case-first@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 upper-case@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 uri-js@4.4.1: dependencies: @@ -21092,12 +19941,8 @@ snapshots: utils-merge@1.0.1: {} - uuid@11.0.5: {} - uuid@11.1.0: {} - uuid@9.0.0: {} - v8-compile-cache-lib@3.0.1: {} validate-npm-package-license@3.0.4: @@ -21114,34 +19959,13 @@ snapshots: query-string: 7.1.3 tinyspy: 1.1.1 - vite-node@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2): - dependencies: - cac: 6.7.14 - debug: 4.4.3(supports-color@8.1.1) - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: 6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vite-node@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.7.0): + vite-node@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.7.0) + vite: 6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -21156,13 +19980,13 @@ snapshots: - tsx - yaml - vite-node@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2): + vite-node@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -21177,75 +20001,60 @@ snapshots: - tsx - yaml - vite@6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2): + vite@6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.5 + rollup: 4.57.1 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 18.19.70 fsevents: 2.3.3 - jiti: 2.4.2 - sass: 1.89.1 - yaml: 2.8.2 + jiti: 2.6.1 + sass: 1.97.3 + yaml: 2.7.0 - vite@6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.7.0): + vite@6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.5 + rollup: 4.57.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 22.19.9 fsevents: 2.3.3 - jiti: 2.4.2 - sass: 1.89.1 + jiti: 2.6.1 + sass: 1.97.3 yaml: 2.7.0 - vite@6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2): - dependencies: - esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.52.5 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 24.7.0 - fsevents: 2.3.3 - jiti: 2.4.2 - sass: 1.89.1 - yaml: 2.8.2 - - vitest@3.2.1(@types/node@18.19.70)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2): - dependencies: - '@types/chai': 5.2.2 - '@vitest/expect': 3.2.1 - '@vitest/mocker': 3.2.1(msw@2.8.7(@types/node@18.19.70)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2)) - '@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 + vitest@3.2.4(@types/node@18.19.70)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.12.8(@types/node@18.19.70)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(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.3.3 debug: 4.4.3(supports-color@8.1.1) - expect-type: 1.2.1 - magic-string: 0.30.17 + expect-type: 1.3.0 + magic-string: 0.30.21 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.9.0 + std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.15 - tinypool: 1.1.0 + tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) - vite-node: 3.2.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + vite: 6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) + vite-node: 3.2.4(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.19.70 @@ -21264,75 +20073,33 @@ snapshots: - tsx - yaml - vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.7.0): - dependencies: - '@types/chai': 5.2.2 - '@vitest/expect': 3.2.1 - '@vitest/mocker': 3.2.1(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2)) - '@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.3(supports-color@8.1.1) - expect-type: 1.2.1 - magic-string: 0.30.17 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.9.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.0 - tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.7.0) - vite-node: 3.2.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.7.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 24.7.0 - jsdom: 20.0.3 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - vitest@3.2.1(@types/node@24.7.0)(jiti@2.4.2)(jsdom@20.0.3)(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(sass@1.89.1)(yaml@2.8.2): - dependencies: - '@types/chai': 5.2.2 - '@vitest/expect': 3.2.1 - '@vitest/mocker': 3.2.1(msw@2.8.7(@types/node@24.7.0)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2)) - '@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 + vitest@3.2.4(@types/node@22.19.9)(jiti@2.6.1)(jsdom@20.0.3)(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(sass@1.97.3)(yaml@2.7.0): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.12.8(@types/node@22.19.9)(typescript@5.8.3))(vite@6.4.1(@types/node@18.19.70)(jiti@2.6.1)(sass@1.97.3)(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.3.3 debug: 4.4.3(supports-color@8.1.1) - expect-type: 1.2.1 - magic-string: 0.30.17 + expect-type: 1.3.0 + magic-string: 0.30.21 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.9.0 + std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.15 - tinypool: 1.1.0 + tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.4.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) - vite-node: 3.2.1(@types/node@24.7.0)(jiti@2.4.2)(sass@1.89.1)(yaml@2.8.2) + vite: 6.4.1(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) + vite-node: 3.2.4(@types/node@22.19.9)(jiti@2.6.1)(sass@1.97.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.7.0 + '@types/node': 22.19.9 jsdom: 20.0.3 transitivePeerDependencies: - jiti @@ -21355,7 +20122,7 @@ snapshots: vscode-languageserver-types: 3.17.5 vscode-uri: 3.1.0 - vscode-json-languageservice@5.5.0: + vscode-json-languageservice@5.7.1: dependencies: '@vscode/l10n': 0.0.18 jsonc-parser: 3.3.1 @@ -21409,7 +20176,7 @@ snapshots: tr46: 5.1.1 webidl-conversions: 7.0.0 - when-exit@2.1.4: {} + when-exit@2.1.5: {} which-boxed-primitive@1.1.1: dependencies: @@ -21427,13 +20194,13 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 which-collection@1.0.2: dependencies: @@ -21444,7 +20211,7 @@ snapshots: which-module@2.0.1: {} - which-typed-array@1.1.19: + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 @@ -21500,7 +20267,7 @@ snapshots: dependencies: ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.2 + strip-ansi: 7.1.0 wrap-ansi@9.0.2: dependencies: @@ -21512,8 +20279,7 @@ snapshots: ws@8.18.0: {} - ws@8.19.0: - optional: true + ws@8.19.0: {} xml-name-validator@4.0.0: {} @@ -21529,15 +20295,10 @@ snapshots: yallist@3.1.1: {} - yaml-ast-parser@0.0.43: - optional: true - yaml@1.10.2: {} yaml@2.7.0: {} - yaml@2.8.2: {} - yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 @@ -21575,7 +20336,7 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.2.1: {} + yocto-queue@1.2.2: {} yoctocolors-cjs@2.1.3: {} @@ -21583,7 +20344,7 @@ snapshots: yoga-wasm-web@0.3.3: {} - yup@1.7.0: + yup@1.7.1: dependencies: property-expr: 2.0.6 tiny-case: 1.0.3 @@ -21596,7 +20357,7 @@ snapshots: compress-commons: 4.1.2 readable-stream: 3.6.2 - zod-validation-error@3.4.1(zod@3.24.1): + zod-validation-error@3.5.4(zod@3.24.1): dependencies: zod: 3.24.1