From 5a026857b14ffaa56c783d97ef7503ec7d77b3a0 Mon Sep 17 00:00:00 2001 From: jdolle <1841898+jdolle@users.noreply.github.com> Date: Thu, 16 Jul 2026 09:33:58 -0700 Subject: [PATCH] Upgrade composition library to address oneOf usage and external field edge case --- .changeset/tough-feet-battle.md | 8 +++++ integration-tests/package.json | 2 +- package.json | 2 +- packages/libraries/cli/package.json | 2 +- packages/services/api/package.json | 2 +- .../services/demo/federation/package.json | 2 +- packages/services/schema/package.json | 2 +- packages/services/server/package.json | 2 +- pnpm-lock.yaml | 34 +++++++++---------- 9 files changed, 32 insertions(+), 24 deletions(-) create mode 100644 .changeset/tough-feet-battle.md diff --git a/.changeset/tough-feet-battle.md b/.changeset/tough-feet-battle.md new file mode 100644 index 00000000000..23333426093 --- /dev/null +++ b/.changeset/tough-feet-battle.md @@ -0,0 +1,8 @@ +--- +'@graphql-hive/cli': patch +'hive': patch +--- + +Upgrade composition library to support oneOf directive without requiring composeDirective, and to +fix an edge case where an external field is not flagged as external in the supergraph if another +graph uses that field in the key diff --git a/integration-tests/package.json b/integration-tests/package.json index 85687877022..04795d0253a 100644 --- a/integration-tests/package.json +++ b/integration-tests/package.json @@ -26,7 +26,7 @@ "@hive/server": "workspace:*", "@hive/service-common": "workspace:*", "@hive/storage": "workspace:*", - "@theguild/federation-composition": "0.22.3", + "@theguild/federation-composition": "0.23.1", "@trpc/client": "10.45.3", "@trpc/server": "10.45.3", "@types/async-retry": "1.4.8", diff --git a/package.json b/package.json index 57606f746d4..f5ec8342184 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "@sentry/cli": "2.40.0", "@swc/core": "1.13.5", "@theguild/eslint-config": "0.12.1", - "@theguild/federation-composition": "0.22.3", + "@theguild/federation-composition": "0.23.1", "@theguild/prettier-config": "2.0.7", "@types/node": "24.12.2", "bob-the-bundler": "7.0.1", diff --git a/packages/libraries/cli/package.json b/packages/libraries/cli/package.json index 31bd7b8dfac..7279a2e7db1 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.2.36", "@oclif/plugin-update": "4.7.16", - "@theguild/federation-composition": "0.22.3", + "@theguild/federation-composition": "0.23.1", "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 f5ed2a41df4..5d757f8e7bc 100644 --- a/packages/services/api/package.json +++ b/packages/services/api/package.json @@ -44,7 +44,7 @@ "@sentry/node": "7.120.2", "@sentry/types": "7.120.2", "@slack/web-api": "7.10.0", - "@theguild/federation-composition": "0.22.3", + "@theguild/federation-composition": "0.23.1", "@trpc/client": "10.45.3", "@trpc/server": "10.45.3", "@types/bcryptjs": "2.4.6", diff --git a/packages/services/demo/federation/package.json b/packages/services/demo/federation/package.json index 51610f55a7e..0cc9956b2bd 100644 --- a/packages/services/demo/federation/package.json +++ b/packages/services/demo/federation/package.json @@ -7,7 +7,7 @@ }, "dependencies": { "@apollo/subgraph": "2.13.2", - "@theguild/federation-composition": "0.22.3", + "@theguild/federation-composition": "0.23.1", "graphql": "16.9.0", "graphql-yoga": "5.13.3" }, diff --git a/packages/services/schema/package.json b/packages/services/schema/package.json index b472250ff5c..6c9b80a3730 100644 --- a/packages/services/schema/package.json +++ b/packages/services/schema/package.json @@ -16,7 +16,7 @@ "@graphql-tools/utils": "11.1.0", "@hive/service-common": "workspace:*", "@sentry/node": "7.120.2", - "@theguild/federation-composition": "0.22.3", + "@theguild/federation-composition": "0.23.1", "@trpc/server": "10.45.3", "@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 efa1260d3c3..fde7d138701 100644 --- a/packages/services/server/package.json +++ b/packages/services/server/package.json @@ -38,7 +38,7 @@ "@hive/workflows": "workspace:*", "@sentry/node": "7.120.2", "@swc/core": "1.13.5", - "@theguild/federation-composition": "0.22.3", + "@theguild/federation-composition": "0.23.1", "@trpc/client": "10.45.3", "@trpc/server": "10.45.3", "@whatwg-node/server": "0.10.17", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da08627a02a..c14db4cfc55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -178,8 +178,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.22.3 - version: 0.22.3(graphql@16.9.0) + specifier: 0.23.1 + version: 0.23.1(graphql@16.9.0) '@theguild/prettier-config': specifier: 2.0.7 version: 2.0.7(prettier@3.4.2) @@ -347,8 +347,8 @@ importers: specifier: workspace:* version: link:../packages/services/storage '@theguild/federation-composition': - specifier: 0.22.3 - version: 0.22.3(graphql@16.9.0) + specifier: 0.23.1 + version: 0.23.1(graphql@16.9.0) '@trpc/client': specifier: 10.45.3 version: 10.45.3(@trpc/server@10.45.3) @@ -523,8 +523,8 @@ importers: specifier: 4.7.16 version: 4.7.16 '@theguild/federation-composition': - specifier: 0.22.3 - version: 0.22.3(graphql@16.9.0) + specifier: 0.23.1 + version: 0.23.1(graphql@16.9.0) cli-table3: specifier: 0.6.5 version: 0.6.5 @@ -1154,8 +1154,8 @@ importers: specifier: 7.10.0 version: 7.10.0 '@theguild/federation-composition': - specifier: 0.22.3 - version: 0.22.3(graphql@16.9.0) + specifier: 0.23.1 + version: 0.23.1(graphql@16.9.0) '@trpc/client': specifier: 10.45.3 version: 10.45.3(@trpc/server@10.45.3) @@ -1400,8 +1400,8 @@ importers: specifier: 2.13.2 version: 2.13.2(graphql@16.9.0) '@theguild/federation-composition': - specifier: 0.22.3 - version: 0.22.3(graphql@16.9.0) + specifier: 0.23.1 + version: 0.23.1(graphql@16.9.0) graphql: specifier: 16.9.0 version: 16.9.0 @@ -1512,8 +1512,8 @@ importers: specifier: 7.120.2 version: 7.120.2 '@theguild/federation-composition': - specifier: 0.22.3 - version: 0.22.3(graphql@16.9.0) + specifier: 0.23.1 + version: 0.23.1(graphql@16.9.0) '@trpc/server': specifier: 10.45.3 version: 10.45.3 @@ -1638,8 +1638,8 @@ importers: specifier: 1.13.5 version: 1.13.5 '@theguild/federation-composition': - specifier: 0.22.3 - version: 0.22.3(graphql@16.9.0) + specifier: 0.23.1 + version: 0.23.1(graphql@16.9.0) '@trpc/client': specifier: 10.45.3 version: 10.45.3(@trpc/server@10.45.3) @@ -10546,8 +10546,8 @@ packages: peerDependencies: graphql: ^16.0.0 - '@theguild/federation-composition@0.22.3': - resolution: {integrity: sha512-hjmS5AM+Yt/sH5cO2PCxTH1y/lAf5FyHwz+YtazvWhwbNf2TjWCUlzEY5sXgaBftHfMRCkGb+Bw23aVrYdts9g==} + '@theguild/federation-composition@0.23.1': + resolution: {integrity: sha512-6dUo+NdgM/+ZIteueqkqxRJz7ZXk8RN0Cs05KFVxXGClg9PpHtsMOQdpZ5rEZXhsPuZuEuvAzoQux7VgzeXY/w==} engines: {node: '>=18'} peerDependencies: graphql: ^16.0.0 @@ -31817,7 +31817,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@theguild/federation-composition@0.22.3(graphql@16.9.0)': + '@theguild/federation-composition@0.23.1(graphql@16.9.0)': dependencies: constant-case: 3.0.4 debug: 4.4.3(supports-color@8.1.1)