diff --git a/.changeset/major-baths-feel.md b/.changeset/major-baths-feel.md new file mode 100644 index 00000000000..2e7abe44983 --- /dev/null +++ b/.changeset/major-baths-feel.md @@ -0,0 +1,18 @@ +--- +'@graphql-hive/cli': minor +'hive': minor +--- + +Updated federation-composition to v0.21.0 + +- **Enhanced auth directive validation**: The federation-composition now enforces correct placement of auth directives (`@authenticated`, `@requiresScopes`, `@policy`) by rejecting attempts to place them on interfaces, interface fields, or interface objects with the new `AUTH_REQUIREMENTS_APPLIED_ON_INTERFACE` validation rule. + +- **Transitive auth requirements checking**: Added a new validation rule that ensures fields using `@requires` specify at least the auth requirements of the fields they select. If a field doesn't carry forward required auth directives, composition fails with a `MISSING_TRANSITIVE_AUTH_REQUIREMENTS` error. + +- **Auth requirements inheritance**: Interface types and fields now properly inherit `@authenticated`, `@requiresScopes`, and `@policy` directives from the object types that implement them. + +- **`@cost` directive restrictions**: The `@cost` directive can no longer be placed on interface types, their fields, or field arguments. Invalid placements now result in composition errors instead of being silently accepted. + +- **Improved `@listSize` validation**: The directive now validates that `sizedFields` point to actual list fields rather than integer counters. Additionally, `slicingArguments` validation has been added to ensure only arguments that exist in all subgraphs are retained. + +- **Fixed `EXTERNAL_MISSING_ON_BASE` rule**: Resolved false positives when handling `@interfaceObject` corner-cases, particularly for `@external` fields on object types provided by interface objects. diff --git a/integration-tests/package.json b/integration-tests/package.json index 3223f7ffc60..4706c7b51e1 100644 --- a/integration-tests/package.json +++ b/integration-tests/package.json @@ -21,7 +21,7 @@ "@hive/schema": "workspace:*", "@hive/server": "workspace:*", "@hive/storage": "workspace:*", - "@theguild/federation-composition": "0.20.2", + "@theguild/federation-composition": "0.21.0", "@trpc/client": "10.45.2", "@trpc/server": "10.45.2", "@types/async-retry": "1.4.8", diff --git a/package.json b/package.json index c10ca45d523..2571d1b0180 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "@sentry/cli": "2.40.0", "@swc/core": "1.13.5", "@theguild/eslint-config": "0.12.1", - "@theguild/federation-composition": "0.20.2", + "@theguild/federation-composition": "0.21.0", "@theguild/prettier-config": "2.0.7", "@types/node": "22.10.5", "bob-the-bundler": "7.0.1", diff --git a/packages/libraries/cli/package.json b/packages/libraries/cli/package.json index 78be0343a43..01d6377f6e1 100644 --- a/packages/libraries/cli/package.json +++ b/packages/libraries/cli/package.json @@ -60,7 +60,7 @@ "@oclif/core": "^3.26.6", "@oclif/plugin-help": "6.0.22", "@oclif/plugin-update": "4.2.13", - "@theguild/federation-composition": "0.20.2", + "@theguild/federation-composition": "0.21.0", "cli-table3": "0.6.5", "colors": "1.4.0", "env-ci": "7.3.0", diff --git a/packages/services/api/package.json b/packages/services/api/package.json index 636365257f4..18279536bcc 100644 --- a/packages/services/api/package.json +++ b/packages/services/api/package.json @@ -37,7 +37,7 @@ "@sentry/node": "7.120.2", "@sentry/types": "7.120.2", "@slack/web-api": "7.10.0", - "@theguild/federation-composition": "0.20.2", + "@theguild/federation-composition": "0.21.0", "@trpc/client": "10.45.2", "@trpc/server": "10.45.2", "@types/bcryptjs": "2.4.6", diff --git a/packages/services/demo/federation/package.json b/packages/services/demo/federation/package.json index 51c58c995fb..8479f2dcde1 100644 --- a/packages/services/demo/federation/package.json +++ b/packages/services/demo/federation/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@apollo/subgraph": "2.9.3", - "@theguild/federation-composition": "0.20.2", + "@theguild/federation-composition": "0.21.0", "graphql": "16.9.0", "graphql-yoga": "5.13.3" }, diff --git a/packages/services/schema/package.json b/packages/services/schema/package.json index c0d3568c2c1..551d1cc52ad 100644 --- a/packages/services/schema/package.json +++ b/packages/services/schema/package.json @@ -15,7 +15,7 @@ "@graphql-tools/stitching-directives": "3.1.38", "@hive/service-common": "workspace:*", "@sentry/node": "7.120.2", - "@theguild/federation-composition": "0.20.2", + "@theguild/federation-composition": "0.21.0", "@trpc/server": "10.45.2", "@types/async-retry": "1.4.8", "@types/ioredis-mock": "8.2.5", diff --git a/packages/services/server/package.json b/packages/services/server/package.json index 3152b196782..b65de55fa0a 100644 --- a/packages/services/server/package.json +++ b/packages/services/server/package.json @@ -33,7 +33,7 @@ "@sentry/integrations": "7.114.0", "@sentry/node": "7.120.2", "@swc/core": "1.13.5", - "@theguild/federation-composition": "0.20.2", + "@theguild/federation-composition": "0.21.0", "@trpc/client": "10.45.2", "@trpc/server": "10.45.2", "@whatwg-node/server": "0.10.17", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9247a54564f..96fd79b1c1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,8 +144,8 @@ importers: specifier: 0.12.1 version: 0.12.1(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) '@theguild/federation-composition': - specifier: 0.20.2 - version: 0.20.2(graphql@16.9.0) + specifier: 0.21.0 + version: 0.21.0(graphql@16.9.0) '@theguild/prettier-config': specifier: 2.0.7 version: 2.0.7(prettier@3.4.2) @@ -325,8 +325,8 @@ importers: specifier: workspace:* version: link:../packages/services/storage '@theguild/federation-composition': - specifier: 0.20.2 - version: 0.20.2(graphql@16.9.0) + specifier: 0.21.0 + version: 0.21.0(graphql@16.9.0) '@trpc/client': specifier: 10.45.2 version: 10.45.2(@trpc/server@10.45.2) @@ -468,8 +468,8 @@ importers: specifier: 4.2.13 version: 4.2.13 '@theguild/federation-composition': - specifier: 0.20.2 - version: 0.20.2(graphql@16.9.0) + specifier: 0.21.0 + version: 0.21.0(graphql@16.9.0) cli-table3: specifier: 0.6.5 version: 0.6.5 @@ -797,8 +797,8 @@ importers: specifier: 7.10.0 version: 7.10.0 '@theguild/federation-composition': - specifier: 0.20.2 - version: 0.20.2(graphql@16.9.0) + specifier: 0.21.0 + version: 0.21.0(graphql@16.9.0) '@trpc/client': specifier: 10.45.2 version: 10.45.2(@trpc/server@10.45.2) @@ -1037,8 +1037,8 @@ importers: specifier: 2.9.3 version: 2.9.3(graphql@16.9.0) '@theguild/federation-composition': - specifier: 0.20.2 - version: 0.20.2(graphql@16.9.0) + specifier: 0.21.0 + version: 0.21.0(graphql@16.9.0) graphql: specifier: 16.9.0 version: 16.9.0 @@ -1197,8 +1197,8 @@ importers: specifier: 7.120.2 version: 7.120.2 '@theguild/federation-composition': - specifier: 0.20.2 - version: 0.20.2(graphql@16.9.0) + specifier: 0.21.0 + version: 0.21.0(graphql@16.9.0) '@trpc/server': specifier: 10.45.2 version: 10.45.2 @@ -1320,8 +1320,8 @@ importers: specifier: 1.13.5 version: 1.13.5 '@theguild/federation-composition': - specifier: 0.20.2 - version: 0.20.2(graphql@16.9.0) + specifier: 0.21.0 + version: 0.21.0(graphql@16.9.0) '@trpc/client': specifier: 10.45.2 version: 10.45.2(@trpc/server@10.45.2) @@ -8539,8 +8539,8 @@ packages: peerDependencies: graphql: ^16.0.0 - '@theguild/federation-composition@0.20.2': - resolution: {integrity: sha512-QI4iSdrc4JvCWnMb1QbiHnEpdD33KGdiU66qfWOcM8ENebRGHkGjXDnUrVJ8F9g1dmCRMTNfn2NFGqTcDpeYXw==} + '@theguild/federation-composition@0.21.0': + resolution: {integrity: sha512-cdQ9rDEtBpT553DLLtcsSjtSDIadibIxAD3K5r0eUuDOfxx+es7Uk+aOucfqMlNOM3eybsgJN3T2SQmEsINwmw==} engines: {node: '>=18'} peerDependencies: graphql: ^16.0.0 @@ -17888,8 +17888,8 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -18041,11 +18041,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.596.0(@aws-sdk/client-sts@3.596.0)': + '@aws-sdk/client-sso-oidc@3.596.0': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -18084,7 +18084,6 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sts' - aws-crt '@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)': @@ -18261,11 +18260,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.596.0': + '@aws-sdk/client-sts@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -18304,6 +18303,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt '@aws-sdk/client-sts@3.723.0': @@ -18454,7 +18454,7 @@ snapshots: '@aws-sdk/credential-provider-ini@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/credential-provider-env': 3.587.0 '@aws-sdk/credential-provider-http': 3.596.0 '@aws-sdk/credential-provider-process': 3.587.0 @@ -18630,7 +18630,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity@3.587.0(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.11 '@smithy/types': 3.7.2 @@ -18925,7 +18925,7 @@ snapshots: '@aws-sdk/token-providers@3.587.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.11 '@smithy/shared-ini-file-loader': 3.1.12 @@ -19101,7 +19101,7 @@ snapshots: '@babel/traverse': 7.26.4 '@babel/types': 7.26.10 convert-source-map: 1.9.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -19121,7 +19121,7 @@ snapshots: '@babel/traverse': 7.26.4 '@babel/types': 7.26.10 convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -19442,7 +19442,7 @@ snapshots: '@babel/parser': 7.26.10 '@babel/template': 7.26.9 '@babel/types': 7.26.10 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -20084,7 +20084,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) espree: 9.6.1 globals: 13.22.0 ignore: 5.3.2 @@ -21585,7 +21585,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -21613,7 +21613,7 @@ snapshots: '@antfu/install-pkg': 1.1.0 '@antfu/utils': 9.2.0 '@iconify/types': 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.1.2 @@ -22446,7 +22446,7 @@ snapshots: ansis: 3.2.0 clean-stack: 3.0.1 cli-spinners: 2.9.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -22492,7 +22492,7 @@ snapshots: dependencies: '@oclif/core': 3.26.6(patch_hash=7432c7b46bd5e3276faff9af4fc733575417c17a0ec31df3c7a229f766e3cffc) chalk: 5.3.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) http-call: 5.3.0 lodash: 4.17.21 transitivePeerDependencies: @@ -26768,10 +26768,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@theguild/federation-composition@0.20.2(graphql@16.9.0)': + '@theguild/federation-composition@0.21.0(graphql@16.9.0)': dependencies: constant-case: 3.0.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) graphql: 16.9.0 json5: 2.2.3 lodash.sortby: 4.7.0 @@ -27371,7 +27371,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) optionalDependencies: typescript: 5.7.3 @@ -27387,7 +27387,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3) - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) ts-api-utils: 1.3.0(typescript@5.7.3) optionalDependencies: @@ -27401,7 +27401,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -27430,7 +27430,7 @@ snapshots: '@typescript/vfs@1.6.1(typescript@5.7.3)': dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) typescript: 5.7.3 transitivePeerDependencies: - supports-color @@ -27707,13 +27707,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color agent-base@7.1.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -29144,9 +29144,11 @@ snapshots: optionalDependencies: supports-color: 8.1.1 - debug@4.4.3: + debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 decamelize@1.2.0: {} @@ -29605,7 +29607,7 @@ snapshots: esbuild-register@3.5.0(esbuild@0.25.9): dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.25.9 transitivePeerDependencies: - supports-color @@ -29671,7 +29673,7 @@ snapshots: eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-plugin-import@2.29.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) enhanced-resolve: 5.17.1 eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) @@ -29873,7 +29875,7 @@ snapshots: eslint-plugin-yml@1.11.0(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)): dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0) eslint-compat-utils: 0.1.2(eslint@8.57.1(patch_hash=08d9d41d21638cb74d0f9f34877a8839601a4e5a8263066ff23e7032addbcba0)) lodash: 4.17.21 @@ -30117,7 +30119,7 @@ snapshots: extract-zip@2.0.1(supports-color@8.1.1): dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -31260,7 +31262,7 @@ snapshots: http-call@5.3.0: dependencies: content-type: 1.0.5 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) is-retry-allowed: 1.2.0 is-stream: 2.0.1 parse-json: 4.0.0 @@ -31280,14 +31282,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -31310,14 +31312,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -32903,7 +32905,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -32911,7 +32913,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.7 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -35217,7 +35219,7 @@ snapshots: require-in-the-middle@7.3.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) module-details-from-path: 1.0.3 resolve: 1.22.10 transitivePeerDependencies: @@ -35777,7 +35779,7 @@ snapshots: socks-proxy-agent@7.0.0: dependencies: agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -35785,7 +35787,7 @@ snapshots: socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -36481,7 +36483,7 @@ snapshots: tuf-js@2.2.0: dependencies: '@tufjs/models': 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) make-fetch-happen: 13.0.0 transitivePeerDependencies: - supports-color @@ -36649,7 +36651,7 @@ snapshots: '@types/unist': 3.0.0 '@ungap/structured-clone': 1.2.0 concat-stream: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) glob: 10.3.12 ignore: 5.3.2 is-empty: 1.2.0 @@ -37030,7 +37032,7 @@ snapshots: '@vitest/snapshot': 4.0.9 '@vitest/spy': 4.0.9 '@vitest/utils': 4.0.9 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 expect-type: 1.2.2 magic-string: 0.30.21