@graphql-tools/stitch
Version:
A set of utils for faster development of GraphQL tools
1,017 lines (708 loc) • 120 kB
Markdown
# @graphql-tools/stitch
## 10.1.25
### Patch Changes
- Updated dependencies [[`8a08de3`](https://github.com/graphql-hive/gateway/commit/8a08de36be598f975ba500a28a9bd9710ead2d66), [`65ce370`](https://github.com/graphql-hive/gateway/commit/65ce3702231068c946d4f95147b556cab57ad28c)]:
- @graphql-tools/delegate@12.0.20
- @graphql-tools/batch-delegate@10.0.27
- @graphql-tools/wrap@11.1.19
## 10.1.24
### Patch Changes
- [#2351](https://github.com/graphql-hive/gateway/pull/2351) [`0bbdbbc`](https://github.com/graphql-hive/gateway/commit/0bbdbbc22b75d9705a77f96144af002c796a695d) Thanks [@ardatan](https://github.com/ardatan)! - Fix `@provides` so the gateway only requests the provided fields the client actually selected, and stops delegating to the owner subgraph when `@provides` already covers the request.
Previously, when a subgraph declared `@provides(fields: "...")` on a field, the gateway would still:
1. Forward **every** field listed in `@provides` to that subgraph, even when the client never asked for them.
2. After receiving the response, plan additional delegations to the owner subgraph for `@provides`-covered fields whenever the providing subgraph declared them as `@external`, even though the data was already returned.
For example with:
```graphql
# subgraph B (provider)
type Query {
entity: Entity @provides(fields: "name description")
}
type Entity @key(fields: "id") {
id: ID!
name: String! @external
description: String! @external
}
```
a client query of `{ entity { id name } }` would still cause the gateway to ask subgraph B for `description` *and* fetch `name` again from subgraph A (the owner of `Entity`).
After this fix:
- Only the `@provides` fields the client actually selected are forwarded to the providing subgraph (request side).
- The delegation planner now recognises `@provides` declarations at every nested level (e.g. `@provides(fields: "nested { nestedNested { name description } }")`) and `@provides` declarations made via inline fragments on union/interface members (e.g. `@provides(fields: "... on Book { title }")`), so the gateway no longer round-trips to the owner subgraph for fields that the providing subgraph has already returned.
- Fragment spreads in the client query are correctly handled when selecting nested `@provides`-covered fields. Previously, using a fragment spread (e.g. `...MyFrag`) for nested `@external` fields could cause an unnecessary delegation to the owner because selection subtraction compared only the spread name with the explicit `@provides` fields. The planner now resolves fragment spreads before subtracting provided selections, while preserving the fragment type condition and directives when only part of a fragment remains.
Aliases, direct field selections, fragments, fragment spreads, `@include`/`@skip` directives wrapping a `@provides` field, and nested `@provides` selections are preserved without unnecessary owner delegations.
- Updated dependencies [[`0bbdbbc`](https://github.com/graphql-hive/gateway/commit/0bbdbbc22b75d9705a77f96144af002c796a695d)]:
- @graphql-tools/delegate@12.0.19
- @graphql-tools/batch-delegate@10.0.26
- @graphql-tools/wrap@11.1.18
## 10.1.23
### Patch Changes
- Updated dependencies []:
- @graphql-tools/delegate@12.0.18
- @graphql-tools/batch-delegate@10.0.25
- @graphql-tools/wrap@11.1.17
## 10.1.22
### Patch Changes
- [#2401](https://github.com/graphql-hive/gateway/pull/2401) [`83465de`](https://github.com/graphql-hive/gateway/commit/83465def4d854d1f0912f635bd9621433fd33c8b) Thanks [@n1ru4l](https://github.com/n1ru4l)! - Fix `mergeDirectives` option and default it to `true`
Custom directive definitions from subschemas were silently dropped from the stitched schema unless `mergeDirectives: true` was explicitly passed to `stitchSchemas`. This meant a schema like:
```graphql
directive @public on SCHEMA | OBJECT | FIELD_DEFINITION
type Query @public {
isAnExample: Boolean @public
}
```
would stitch into a broken schema where `@public` was used on types and fields but never defined.
The default is now `true`, so directive definitions are always collected and retained in the stitched schema, this is the expected behaviour since the merging was partial before this fix (usages got merged, but definitions not).
Passing `mergeDirectives: false` now produces a fully clean result - both directive definitions and all their usages on types, fields, input fields, and enum values are stripped.
## 10.1.21
### Patch Changes
- Updated dependencies [[`b6230c9`](https://github.com/graphql-hive/gateway/commit/b6230c97709065c2f540b6d263af492379eca359)]:
- @graphql-tools/batch-delegate@10.0.24
## 10.1.20
### Patch Changes
- Updated dependencies [[`3e774e0`](https://github.com/graphql-hive/gateway/commit/3e774e050bc2d3c33e0f36a258ab6a8d94bf0750)]:
- @graphql-tools/delegate@12.0.17
- @graphql-tools/batch-delegate@10.0.23
- @graphql-tools/wrap@11.1.16
## 10.1.19
### Patch Changes
- Updated dependencies [[`deafdc0`](https://github.com/graphql-hive/gateway/commit/deafdc00e388ed195c2cdf77e98cd19e7d496d48)]:
- @graphql-tools/delegate@12.0.16
- @graphql-tools/batch-delegate@10.0.22
- @graphql-tools/wrap@11.1.15
## 10.1.18
### Patch Changes
- Updated dependencies [[`dff525f`](https://github.com/graphql-hive/gateway/commit/dff525f214d3525434c5a73a5b3fb22c46550163)]:
- @graphql-tools/delegate@12.0.14
- @graphql-tools/batch-delegate@10.0.20
- @graphql-tools/wrap@11.1.14
## 10.1.17
### Patch Changes
- Updated dependencies []:
- @graphql-tools/delegate@12.0.13
- @graphql-tools/batch-delegate@10.0.19
- @graphql-tools/wrap@11.1.13
## 10.1.16
### Patch Changes
- Updated dependencies [[`da68d27`](https://github.com/graphql-hive/gateway/commit/da68d2710dff1f8bca5b17bcd5368e631f72114e)]:
- @graphql-tools/delegate@12.0.12
- @graphql-tools/batch-delegate@10.0.18
- @graphql-tools/wrap@11.1.12
## 10.1.15
### Patch Changes
- Updated dependencies []:
- @graphql-tools/delegate@12.0.11
- @graphql-tools/batch-delegate@10.0.17
- @graphql-tools/wrap@11.1.11
## 10.1.14
### Patch Changes
- Updated dependencies [[`dae3fe4`](https://github.com/graphql-hive/gateway/commit/dae3fe4fbb9c78598d1bbf91c2ed07ab1b90f05d)]:
- @graphql-tools/wrap@11.1.10
- @graphql-tools/delegate@12.0.10
- @graphql-tools/batch-delegate@10.0.16
## 10.1.13
### Patch Changes
- [#2022](https://github.com/graphql-hive/gateway/pull/2022) [`43aaa6a`](https://github.com/graphql-hive/gateway/commit/43aaa6ab8c1c64cae92e9cdff7016ebdf1afa756) Thanks [@ardatan](https://github.com/ardatan)! - Fix redundant extra calls to the same subschema in case of `@canonical` annotation
- Updated dependencies [[`43aaa6a`](https://github.com/graphql-hive/gateway/commit/43aaa6ab8c1c64cae92e9cdff7016ebdf1afa756)]:
- @graphql-tools/delegate@12.0.9
- @graphql-tools/batch-delegate@10.0.15
- @graphql-tools/wrap@11.1.9
## 10.1.12
### Patch Changes
- Updated dependencies [[`4065b7f`](https://github.com/graphql-hive/gateway/commit/4065b7fbb08d9e75c5f0d3b2b4d42d665aa9dbd9)]:
- @graphql-tools/delegate@12.0.8
- @graphql-tools/batch-delegate@10.0.14
- @graphql-tools/wrap@11.1.8
## 10.1.11
### Patch Changes
- Updated dependencies [[`584a293`](https://github.com/graphql-hive/gateway/commit/584a293e3dafa7cd2d0210f80299c81b6707bcd4)]:
- @graphql-tools/delegate@12.0.7
- @graphql-tools/batch-delegate@10.0.13
- @graphql-tools/wrap@11.1.7
## 10.1.10
### Patch Changes
- [#1916](https://github.com/graphql-hive/gateway/pull/1916) [`2200fc3`](https://github.com/graphql-hive/gateway/commit/2200fc3e9b94db77a642835bbf2d646c65b3e8d0) Thanks [@ardatan](https://github.com/ardatan)! - - Handle the type merging order correctly with custom labels and percentage labels for progressive override
- Do not pass `percent(x)` labels to the progressive override handler
- Apply progressive override to the shared root fields
- Updated dependencies [[`2200fc3`](https://github.com/graphql-hive/gateway/commit/2200fc3e9b94db77a642835bbf2d646c65b3e8d0)]:
- @graphql-tools/delegate@12.0.6
- @graphql-tools/batch-delegate@10.0.12
- @graphql-tools/wrap@11.1.6
## 10.1.9
### Patch Changes
- Updated dependencies [[`e92c5a9`](https://github.com/graphql-hive/gateway/commit/e92c5a9702a2aea395a4a4e3a482b92f528655e8)]:
- @graphql-tools/delegate@12.0.5
- @graphql-tools/batch-delegate@10.0.11
- @graphql-tools/wrap@11.1.5
## 10.1.8
### Patch Changes
- [#1842](https://github.com/graphql-hive/gateway/pull/1842) [`93aa767`](https://github.com/graphql-hive/gateway/commit/93aa76755afc93085280646fb7cb14e6d02b4a7f) Thanks [@dependabot](https://github.com/apps/dependabot)! - dependencies updates:
- Updated dependency [`@graphql-tools/utils@^11.0.0` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/11.0.0) (from `^10.10.3`, in `dependencies`)
- Updated dependencies [[`93aa767`](https://github.com/graphql-hive/gateway/commit/93aa76755afc93085280646fb7cb14e6d02b4a7f), [`93aa767`](https://github.com/graphql-hive/gateway/commit/93aa76755afc93085280646fb7cb14e6d02b4a7f), [`93aa767`](https://github.com/graphql-hive/gateway/commit/93aa76755afc93085280646fb7cb14e6d02b4a7f)]:
- @graphql-tools/batch-delegate@10.0.10
- @graphql-tools/delegate@12.0.4
- @graphql-tools/wrap@11.1.4
## 10.1.7
### Patch Changes
- Updated dependencies [[`dcd8f0e`](https://github.com/graphql-hive/gateway/commit/dcd8f0e93fd220cb99f79cadea759ea49bc15308)]:
- @graphql-tools/delegate@12.0.3
- @graphql-tools/batch-delegate@10.0.9
- @graphql-tools/wrap@11.1.3
## 10.1.6
### Patch Changes
- Updated dependencies [[`da8b8e3`](https://github.com/graphql-hive/gateway/commit/da8b8e3f3545487249b11c6577e3889f68527249)]:
- @graphql-tools/delegate@12.0.2
- @graphql-tools/batch-delegate@10.0.8
- @graphql-tools/wrap@11.1.2
## 10.1.5
### Patch Changes
- Updated dependencies [[`0d14faf`](https://github.com/graphql-hive/gateway/commit/0d14fafdbaf3fb27eef123016ef2ca977d6688d8)]:
- @graphql-tools/delegate@12.0.1
- @graphql-tools/batch-delegate@10.0.7
- @graphql-tools/wrap@11.1.1
## 10.1.4
### Patch Changes
- [#1735](https://github.com/graphql-hive/gateway/pull/1735) [`55173a5`](https://github.com/graphql-hive/gateway/commit/55173a55344a07fdf9531efcbaa4cb142fff655e) Thanks [@enisdenjo](https://github.com/enisdenjo)! - Ensure key fields propagate correctly for interface/object combinations
- [#1727](https://github.com/graphql-hive/gateway/pull/1727) [`1dbc653`](https://github.com/graphql-hive/gateway/commit/1dbc6536cb992a705cac7894acca6fe5431b72de) Thanks [@ardatan](https://github.com/ardatan)! - Avoid extra `__typename` in the root selection
```diff
query {
- __typename
hello
}
```
- Updated dependencies [[`bc6cddd`](https://github.com/graphql-hive/gateway/commit/bc6cddd1c53a012dd02a1d8a7217a28e65cc6ae9), [`1dbc653`](https://github.com/graphql-hive/gateway/commit/1dbc6536cb992a705cac7894acca6fe5431b72de), [`bc6cddd`](https://github.com/graphql-hive/gateway/commit/bc6cddd1c53a012dd02a1d8a7217a28e65cc6ae9), [`b520eb2`](https://github.com/graphql-hive/gateway/commit/b520eb2309f627578519826d6b9e0056252c6c46)]:
- @graphql-tools/wrap@11.1.0
- @graphql-tools/delegate@12.0.0
- @graphql-tools/batch-delegate@10.0.6
## 10.1.3
### Patch Changes
- [#1691](https://github.com/graphql-hive/gateway/pull/1691) [`7ecaf7e`](https://github.com/graphql-hive/gateway/commit/7ecaf7e8f658c4e4c1a91d1e8db3c1a8ceca51cb) Thanks [@dependabot](https://github.com/apps/dependabot)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.4.13` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.4.13) (from `^1.4.11`, in `dependencies`)
- Updated dependency [`@graphql-tools/merge@^9.1.5` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.1.5) (from `^9.1.3`, in `dependencies`)
- Updated dependency [`@graphql-tools/schema@^10.0.29` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.29) (from `^10.0.27`, in `dependencies`)
- Updated dependency [`@graphql-tools/utils@^10.10.3` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.10.3) (from `^10.10.1`, in `dependencies`)
- Updated dependencies [[`7ecaf7e`](https://github.com/graphql-hive/gateway/commit/7ecaf7e8f658c4e4c1a91d1e8db3c1a8ceca51cb), [`7ecaf7e`](https://github.com/graphql-hive/gateway/commit/7ecaf7e8f658c4e4c1a91d1e8db3c1a8ceca51cb), [`7ecaf7e`](https://github.com/graphql-hive/gateway/commit/7ecaf7e8f658c4e4c1a91d1e8db3c1a8ceca51cb)]:
- @graphql-tools/batch-delegate@10.0.5
- @graphql-tools/delegate@11.1.3
- @graphql-tools/wrap@11.0.5
## 10.1.2
### Patch Changes
- [#1608](https://github.com/graphql-hive/gateway/pull/1608) [`9c789fb`](https://github.com/graphql-hive/gateway/commit/9c789fb11f6de80e781ff056cb5b98c548938bea) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.4.11` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.4.11) (from `^1.4.9`, in `dependencies`)
- Updated dependency [`@graphql-tools/merge@^9.1.3` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.1.3) (from `^9.1.1`, in `dependencies`)
- Updated dependency [`@graphql-tools/schema@^10.0.27` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.27) (from `^10.0.25`, in `dependencies`)
- Updated dependency [`@graphql-tools/utils@^10.10.1` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.10.1) (from `^10.9.1`, in `dependencies`)
- [#1662](https://github.com/graphql-hive/gateway/pull/1662) [`27789de`](https://github.com/graphql-hive/gateway/commit/27789de7967cb5299d471c00434591f309b978ff) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`@graphql-tools/utils@^10.10.1` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.10.1) (from `^10.10.0`, in `dependencies`)
- [#1663](https://github.com/graphql-hive/gateway/pull/1663) [`d678113`](https://github.com/graphql-hive/gateway/commit/d678113debfe28095ed6e09c2abba4451a42608a) Thanks [@dependabot](https://github.com/apps/dependabot)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.4.11` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.4.11) (from `^1.4.10`, in `dependencies`)
- Updated dependency [`@graphql-tools/merge@^9.1.3` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.1.3) (from `^9.1.2`, in `dependencies`)
- Updated dependency [`@graphql-tools/schema@^10.0.27` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.27) (from `^10.0.26`, in `dependencies`)
- Updated dependencies [[`9c789fb`](https://github.com/graphql-hive/gateway/commit/9c789fb11f6de80e781ff056cb5b98c548938bea), [`27789de`](https://github.com/graphql-hive/gateway/commit/27789de7967cb5299d471c00434591f309b978ff), [`9c789fb`](https://github.com/graphql-hive/gateway/commit/9c789fb11f6de80e781ff056cb5b98c548938bea), [`27789de`](https://github.com/graphql-hive/gateway/commit/27789de7967cb5299d471c00434591f309b978ff), [`d678113`](https://github.com/graphql-hive/gateway/commit/d678113debfe28095ed6e09c2abba4451a42608a), [`9c789fb`](https://github.com/graphql-hive/gateway/commit/9c789fb11f6de80e781ff056cb5b98c548938bea), [`27789de`](https://github.com/graphql-hive/gateway/commit/27789de7967cb5299d471c00434591f309b978ff), [`d678113`](https://github.com/graphql-hive/gateway/commit/d678113debfe28095ed6e09c2abba4451a42608a)]:
- @graphql-tools/batch-delegate@10.0.4
- @graphql-tools/delegate@11.1.2
- @graphql-tools/wrap@11.0.4
## 10.1.1
### Patch Changes
- [#1654](https://github.com/graphql-hive/gateway/pull/1654) [`efed5e0`](https://github.com/graphql-hive/gateway/commit/efed5e0c257edcacb51dae7f670c2026a747a851) Thanks [@dependabot](https://github.com/apps/dependabot)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.4.10` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.4.10) (from `^1.4.9`, in `dependencies`)
- Updated dependency [`@graphql-tools/merge@^9.1.2` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.1.2) (from `^9.1.1`, in `dependencies`)
- Updated dependency [`@graphql-tools/schema@^10.0.26` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.26) (from `^10.0.25`, in `dependencies`)
- Updated dependency [`@graphql-tools/utils@^10.10.0` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.10.0) (from `^10.9.1`, in `dependencies`)
- [#1656](https://github.com/graphql-hive/gateway/pull/1656) [`3226919`](https://github.com/graphql-hive/gateway/commit/3226919d58930289491696fa3b56ed85c766e3f5) Thanks [@enisdenjo](https://github.com/enisdenjo)! - Fix Progressive Override to prevent caching on different variations of override
- Updated dependencies [[`efed5e0`](https://github.com/graphql-hive/gateway/commit/efed5e0c257edcacb51dae7f670c2026a747a851), [`efed5e0`](https://github.com/graphql-hive/gateway/commit/efed5e0c257edcacb51dae7f670c2026a747a851), [`efed5e0`](https://github.com/graphql-hive/gateway/commit/efed5e0c257edcacb51dae7f670c2026a747a851)]:
- @graphql-tools/batch-delegate@10.0.3
- @graphql-tools/delegate@11.1.1
- @graphql-tools/wrap@11.0.3
## 10.1.0
### Minor Changes
- [#1624](https://github.com/graphql-hive/gateway/pull/1624) [`a8458b2`](https://github.com/graphql-hive/gateway/commit/a8458b24e71fda37a515eaf9ac9af43a73e7823f) Thanks [@ardatan](https://github.com/ardatan)! - Progressive Override for Safer Field Migrations
Introduces Progressive Override, allowing you to safely migrate fields between subgraphs using the `@override` directive with a label. Control the rollout using custom logic in the gateway (e.g., percentage, headers) or the built-in percent(x) label for gradual, incremental traffic migration.
Detailed documentation can be found [here](https://the-guild.dev/graphql/hive/docs/gateway/other-features/progressive-override).
### Patch Changes
- Updated dependencies [[`a54b0c1`](https://github.com/graphql-hive/gateway/commit/a54b0c1777229aaeea295bcd15d4f4d6e4e615f7), [`058ef2f`](https://github.com/graphql-hive/gateway/commit/058ef2f8373ea822fed985b705416cb39d5b6efc), [`a8458b2`](https://github.com/graphql-hive/gateway/commit/a8458b24e71fda37a515eaf9ac9af43a73e7823f), [`20f7a50`](https://github.com/graphql-hive/gateway/commit/20f7a50c5ddb862c2921e91ca43d9858bae1bce8)]:
- @graphql-tools/delegate@11.1.0
- @graphql-tools/batch-delegate@10.0.2
- @graphql-tools/wrap@11.0.2
## 10.0.2
### Patch Changes
- [#1546](https://github.com/graphql-hive/gateway/pull/1546) [`818461e`](https://github.com/graphql-hive/gateway/commit/818461e6ea55bb10ba4ead9ed214848e1ba4bfd2) Thanks [@ardatan](https://github.com/ardatan)! - Normalize the subschemas with root types in a custom names like `query_root` instead of `Query`, then stitch them
```graphql
schema {
query: query_root
subscription: subscription_root
}
type Post {
id: ID!
text: String
userId: ID!
}
type query_root {
postById(id: ID!): Post
}
type subscription_root {
postsByUserId(userId: ID!): [Post]!
}
```
and
```graphql
type User {
id: ID!
email: String
}
type Query {
userById(id: ID!): User
}
```
should be stitched as;
```graphql
type Query {
postById(id: ID!): Post
userById(id: ID!): User
}
type Subscription {
postsByUserId(userId: ID!): [Post]!
}
type Post {
id: ID!
text: String
userId: ID!
}
type User {
id: ID!
email: String
}
```
## 10.0.1
### Patch Changes
- [#1473](https://github.com/graphql-hive/gateway/pull/1473) [`838ffec`](https://github.com/graphql-hive/gateway/commit/838ffecb2ad3d4ef6bbb65607a56302cb45e2f14) Thanks [@dependabot](https://github.com/apps/dependabot)! - dependencies updates:
- Updated dependency [`@whatwg-node/promise-helpers@^1.3.2` ↗︎](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.3.2) (from `^1.3.0`, in `dependencies`)
- Updated dependencies [[`838ffec`](https://github.com/graphql-hive/gateway/commit/838ffecb2ad3d4ef6bbb65607a56302cb45e2f14), [`838ffec`](https://github.com/graphql-hive/gateway/commit/838ffecb2ad3d4ef6bbb65607a56302cb45e2f14), [`838ffec`](https://github.com/graphql-hive/gateway/commit/838ffecb2ad3d4ef6bbb65607a56302cb45e2f14)]:
- @graphql-tools/batch-delegate@10.0.1
- @graphql-tools/delegate@11.0.1
- @graphql-tools/wrap@11.0.1
## 10.0.0
### Major Changes
- [#956](https://github.com/graphql-hive/gateway/pull/956) [`46d2661`](https://github.com/graphql-hive/gateway/commit/46d26615c2c3c5f936c1d1bca1d03b025c1ce86a) Thanks [@EmrysMyrddin](https://github.com/EmrysMyrddin)! - Drop Node 18 support
Least supported Node version is now v20.
### Patch Changes
- Updated dependencies [[`46d2661`](https://github.com/graphql-hive/gateway/commit/46d26615c2c3c5f936c1d1bca1d03b025c1ce86a), [`46d2661`](https://github.com/graphql-hive/gateway/commit/46d26615c2c3c5f936c1d1bca1d03b025c1ce86a), [`46d2661`](https://github.com/graphql-hive/gateway/commit/46d26615c2c3c5f936c1d1bca1d03b025c1ce86a)]:
- @graphql-tools/batch-delegate@10.0.0
- @graphql-tools/delegate@11.0.0
- @graphql-tools/wrap@11.0.0
## 9.4.29
### Patch Changes
- [#1405](https://github.com/graphql-hive/gateway/pull/1405) [`29f0409`](https://github.com/graphql-hive/gateway/commit/29f0409fe851b45d717ab5d0f5651dde3012e913) Thanks [@ardatan](https://github.com/ardatan)! - Handle `@oneOf` directive properly while stitching subschemas
## 9.4.28
### Patch Changes
- [#1358](https://github.com/graphql-hive/gateway/pull/1358) [`8e37851`](https://github.com/graphql-hive/gateway/commit/8e3785194d97edbe82c7fce316104b81bb0362f1) Thanks [@dependabot](https://github.com/apps/dependabot)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.4.9` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.4.9) (from `^1.4.8`, in `dependencies`)
- Updated dependency [`@graphql-tools/merge@^9.1.1` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.1.1) (from `^9.1.0`, in `dependencies`)
- Updated dependency [`@graphql-tools/schema@^10.0.25` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.25) (from `^10.0.24`, in `dependencies`)
- Updated dependency [`@graphql-tools/utils@^10.9.1` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.9.1) (from `^10.9.0`, in `dependencies`)
- Updated dependencies [[`8e37851`](https://github.com/graphql-hive/gateway/commit/8e3785194d97edbe82c7fce316104b81bb0362f1), [`8e37851`](https://github.com/graphql-hive/gateway/commit/8e3785194d97edbe82c7fce316104b81bb0362f1), [`8e37851`](https://github.com/graphql-hive/gateway/commit/8e3785194d97edbe82c7fce316104b81bb0362f1)]:
- @graphql-tools/batch-delegate@9.0.41
- @graphql-tools/delegate@10.2.23
- @graphql-tools/wrap@10.1.4
## 9.4.27
### Patch Changes
- [#1344](https://github.com/graphql-hive/gateway/pull/1344) [`a71236d`](https://github.com/graphql-hive/gateway/commit/a71236d6ba356741bc85fe27757bea45576dcf1a) Thanks [@dependabot](https://github.com/apps/dependabot)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.4.8` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.4.8) (from `^1.4.7`, in `dependencies`)
- Updated dependency [`@graphql-tools/merge@^9.1.0` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.1.0) (from `^9.0.12`, in `dependencies`)
- Updated dependency [`@graphql-tools/schema@^10.0.24` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.24) (from `^10.0.11`, in `dependencies`)
- Updated dependency [`@graphql-tools/utils@^10.9.0` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.9.0) (from `^10.8.1`, in `dependencies`)
- Updated dependencies [[`a71236d`](https://github.com/graphql-hive/gateway/commit/a71236d6ba356741bc85fe27757bea45576dcf1a), [`a71236d`](https://github.com/graphql-hive/gateway/commit/a71236d6ba356741bc85fe27757bea45576dcf1a), [`a71236d`](https://github.com/graphql-hive/gateway/commit/a71236d6ba356741bc85fe27757bea45576dcf1a)]:
- @graphql-tools/batch-delegate@9.0.40
- @graphql-tools/delegate@10.2.22
- @graphql-tools/wrap@10.1.3
## 9.4.26
### Patch Changes
- Updated dependencies [[`b69c80b`](https://github.com/graphql-hive/gateway/commit/b69c80b259bd0565eb9826f7ee9bc8e6c32076d1)]:
- @graphql-tools/delegate@10.2.21
- @graphql-tools/batch-delegate@9.0.39
- @graphql-tools/wrap@10.1.2
## 9.4.25
### Patch Changes
- Updated dependencies [[`0655d1f`](https://github.com/graphql-hive/gateway/commit/0655d1fc604179b6cc0c148d73e38d6e8d839c56), [`0655d1f`](https://github.com/graphql-hive/gateway/commit/0655d1fc604179b6cc0c148d73e38d6e8d839c56), [`0655d1f`](https://github.com/graphql-hive/gateway/commit/0655d1fc604179b6cc0c148d73e38d6e8d839c56)]:
- @graphql-tools/delegate@10.2.20
- @graphql-tools/batch-delegate@9.0.38
- @graphql-tools/wrap@10.1.1
## 9.4.24
### Patch Changes
- Updated dependencies [[`4a80de1`](https://github.com/graphql-hive/gateway/commit/4a80de1a2884dc42a5f09202b6215c3e6780efc4), [`f634b53`](https://github.com/graphql-hive/gateway/commit/f634b53478199c2b783a608e22fbe51401942039), [`dca6529`](https://github.com/graphql-hive/gateway/commit/dca6529b234f1e178ad87a8992c5a7de12831128)]:
- @graphql-tools/wrap@10.1.0
- @graphql-tools/batch-delegate@9.0.37
- @graphql-tools/delegate@10.2.19
## 9.4.23
### Patch Changes
- [#1117](https://github.com/graphql-hive/gateway/pull/1117) [`0512be3`](https://github.com/graphql-hive/gateway/commit/0512be32399268eb7926db48675ddb5763fd8578) Thanks [@ardatan](https://github.com/ardatan)! - Optimizes `@provides` handling by avoiding the generation of new query plans when a parent subgraph already supplies the requested fields.
- Refactors and inlines `subtractSelectionSets` to compute leftover selections.
- Threads a `providedSelectionNode` through planning to subtract out provided fields early.
- Updates stitching and federation logic to conditionally skip planning when selections are already available.
- Updated dependencies [[`0512be3`](https://github.com/graphql-hive/gateway/commit/0512be32399268eb7926db48675ddb5763fd8578)]:
- @graphql-tools/delegate@10.2.18
- @graphql-tools/batch-delegate@9.0.36
- @graphql-tools/wrap@10.0.36
## 9.4.22
### Patch Changes
- [#950](https://github.com/graphql-hive/gateway/pull/950) [`c7ea2c5`](https://github.com/graphql-hive/gateway/commit/c7ea2c5ae71b6b338ef22edd927a3fc93803965f) Thanks [@kroupacz](https://github.com/kroupacz)! - Errors should not be swallowed when it is thrown from the shared root
- Updated dependencies [[`c7ea2c5`](https://github.com/graphql-hive/gateway/commit/c7ea2c5ae71b6b338ef22edd927a3fc93803965f), [`0af3485`](https://github.com/graphql-hive/gateway/commit/0af3485abb1b3dfba4126f09d291b2096d23aa32)]:
- @graphql-tools/delegate@10.2.17
- @graphql-tools/batch-delegate@9.0.35
- @graphql-tools/wrap@10.0.35
## 9.4.21
### Patch Changes
- [#532](https://github.com/graphql-hive/gateway/pull/532) [`4e33933`](https://github.com/graphql-hive/gateway/commit/4e339333945f4c4547d9ae719e67b4671fe89f04) Thanks [@EmrysMyrddin](https://github.com/EmrysMyrddin)! - dependencies updates:
- Updated dependency [`@whatwg-node/promise-helpers@^1.3.0` ↗︎](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.3.0) (from `^1.2.5`, in `dependencies`)
- [#906](https://github.com/graphql-hive/gateway/pull/906) [`7b86c09`](https://github.com/graphql-hive/gateway/commit/7b86c097f5d424b82c84b87c743d5ed4ebe6aa5c) Thanks [@ardatan](https://github.com/ardatan)! - Extract unavailable fields for the target subschema from the fragments provided in the original query
- Updated dependencies [[`4e33933`](https://github.com/graphql-hive/gateway/commit/4e339333945f4c4547d9ae719e67b4671fe89f04), [`4e33933`](https://github.com/graphql-hive/gateway/commit/4e339333945f4c4547d9ae719e67b4671fe89f04), [`4e33933`](https://github.com/graphql-hive/gateway/commit/4e339333945f4c4547d9ae719e67b4671fe89f04)]:
- @graphql-tools/batch-delegate@9.0.34
- @graphql-tools/delegate@10.2.16
- @graphql-tools/wrap@10.0.34
## 9.4.20
### Patch Changes
- [#862](https://github.com/graphql-hive/gateway/pull/862) [`278618a`](https://github.com/graphql-hive/gateway/commit/278618a1383a01016041ce0a40adec8803c62448) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`@whatwg-node/promise-helpers@^1.2.5` ↗︎](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.2.5) (from `^1.0.0`, in `dependencies`)
- Updated dependencies [[`278618a`](https://github.com/graphql-hive/gateway/commit/278618a1383a01016041ce0a40adec8803c62448), [`278618a`](https://github.com/graphql-hive/gateway/commit/278618a1383a01016041ce0a40adec8803c62448), [`278618a`](https://github.com/graphql-hive/gateway/commit/278618a1383a01016041ce0a40adec8803c62448)]:
- @graphql-tools/batch-delegate@9.0.33
- @graphql-tools/delegate@10.2.15
- @graphql-tools/wrap@10.0.33
## 9.4.19
### Patch Changes
- [#726](https://github.com/graphql-hive/gateway/pull/726) [`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Added dependency [`@whatwg-node/promise-helpers@^1.0.0` ↗︎](https://www.npmjs.com/package/@whatwg-node/promise-helpers/v/1.0.0) (to `dependencies`)
- Updated dependencies [[`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1), [`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1), [`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1), [`2a54e85`](https://github.com/graphql-hive/gateway/commit/2a54e85f2848aea7525703ea33918a21db96b26b)]:
- @graphql-tools/batch-delegate@9.0.32
- @graphql-tools/delegate@10.2.14
- @graphql-tools/wrap@10.0.32
## 9.4.18
### Patch Changes
- Updated dependencies [[`2318393`](https://github.com/graphql-hive/gateway/commit/2318393bc7b3aca7f53806a44b59277cd176702d)]:
- @graphql-tools/delegate@10.2.13
- @graphql-tools/batch-delegate@9.0.31
- @graphql-tools/wrap@10.0.31
## 9.4.17
### Patch Changes
- [#620](https://github.com/graphql-hive/gateway/pull/620) [`d72209a`](https://github.com/graphql-hive/gateway/commit/d72209ad82ec53689f93ce5d81bfa52493919ad9) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
- Updated dependency [`@graphql-tools/utils@^10.8.1` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.8.1) (from `^10.7.0`, in `dependencies`)
- [#614](https://github.com/graphql-hive/gateway/pull/614) [`7146f8d`](https://github.com/graphql-hive/gateway/commit/7146f8decca808ab2c68f4971ba9b64ca27a9b87) Thanks [@ardatan](https://github.com/ardatan)! - Fix a bug while isolating computed abstract type fields
When a field in an interface needs to be isolated,
it should not remove the field from the base subschema if it is used by other members of the base subschema.
- [#614](https://github.com/graphql-hive/gateway/pull/614) [`7146f8d`](https://github.com/graphql-hive/gateway/commit/7146f8decca808ab2c68f4971ba9b64ca27a9b87) Thanks [@ardatan](https://github.com/ardatan)! - While calculating the best subschema for a selection set, respect fragments
- Updated dependencies [[`d72209a`](https://github.com/graphql-hive/gateway/commit/d72209ad82ec53689f93ce5d81bfa52493919ad9), [`d72209a`](https://github.com/graphql-hive/gateway/commit/d72209ad82ec53689f93ce5d81bfa52493919ad9), [`d72209a`](https://github.com/graphql-hive/gateway/commit/d72209ad82ec53689f93ce5d81bfa52493919ad9)]:
- @graphql-tools/batch-delegate@9.0.30
- @graphql-tools/delegate@10.2.12
- @graphql-tools/wrap@10.0.30
## 9.4.16
### Patch Changes
- Updated dependencies [[`9144222`](https://github.com/graphql-hive/gateway/commit/91442220b2242a0fa082d4b544d03621572eecd0)]:
- @graphql-tools/delegate@10.2.11
- @graphql-tools/batch-delegate@9.0.29
- @graphql-tools/wrap@10.0.29
## 9.4.15
### Patch Changes
- Updated dependencies [[`18682e6`](https://github.com/graphql-hive/gateway/commit/18682e6873091afe63f09414f02f93649a4da141), [`e9f78cd`](https://github.com/graphql-hive/gateway/commit/e9f78cd29681ca9b4371e12953a31d2b8f5e4c17)]:
- @graphql-tools/delegate@10.2.10
- @graphql-tools/wrap@10.0.28
- @graphql-tools/batch-delegate@9.0.28
## 9.4.14
### Patch Changes
- [#443](https://github.com/graphql-hive/gateway/pull/443) [`a625269`](https://github.com/graphql-hive/gateway/commit/a62526936680d030339fc26cc55d76507134b022) Thanks [@ardatan](https://github.com/ardatan)! - Respect fragments while calculating the selection score
## 9.4.13
### Patch Changes
- Updated dependencies [[`da65b2d`](https://github.com/graphql-hive/gateway/commit/da65b2d8a66714fb5a135e66ebbe59fa37182600)]:
- @graphql-tools/batch-delegate@9.0.27
## 9.4.12
### Patch Changes
- Updated dependencies [[`21e1f05`](https://github.com/graphql-hive/gateway/commit/21e1f05373a78c93b52b5321f1f4e8d7aba17151)]:
- @graphql-tools/batch-delegate@9.0.26
## 9.4.11
### Patch Changes
- [#373](https://github.com/graphql-hive/gateway/pull/373) [`e606975`](https://github.com/graphql-hive/gateway/commit/e60697593290255fb9ac407e591ae3e8cb752df2) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.3.10` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.3.10) (from `^1.3.6`, in `dependencies`)
- Updated dependency [`@graphql-tools/utils@^10.7.0` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.7.0) (from `^10.6.2`, in `dependencies`)
- Updated dependencies [[`e606975`](https://github.com/graphql-hive/gateway/commit/e60697593290255fb9ac407e591ae3e8cb752df2), [`e606975`](https://github.com/graphql-hive/gateway/commit/e60697593290255fb9ac407e591ae3e8cb752df2), [`e606975`](https://github.com/graphql-hive/gateway/commit/e60697593290255fb9ac407e591ae3e8cb752df2)]:
- @graphql-tools/batch-delegate@9.0.25
- @graphql-tools/delegate@10.2.9
- @graphql-tools/wrap@10.0.27
## 9.4.10
### Patch Changes
- Updated dependencies [[`23b8987`](https://github.com/graphql-hive/gateway/commit/23b89874fcf10b4cb6b1b941f29fa5f5aecf0ef2)]:
- @graphql-tools/delegate@10.2.8
- @graphql-tools/batch-delegate@9.0.24
- @graphql-tools/wrap@10.0.26
## 9.4.9
### Patch Changes
- [#291](https://github.com/graphql-hive/gateway/pull/291) [`34d1224`](https://github.com/graphql-hive/gateway/commit/34d12249ead65b8277df976f6318dca757df1151) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`tslib@^2.8.1` ↗︎](https://www.npmjs.com/package/tslib/v/2.8.1) (from `^2.4.0`, in `dependencies`)
- Updated dependencies [[`34d1224`](https://github.com/graphql-hive/gateway/commit/34d12249ead65b8277df976f6318dca757df1151), [`34d1224`](https://github.com/graphql-hive/gateway/commit/34d12249ead65b8277df976f6318dca757df1151), [`34d1224`](https://github.com/graphql-hive/gateway/commit/34d12249ead65b8277df976f6318dca757df1151)]:
- @graphql-tools/batch-delegate@9.0.23
- @graphql-tools/delegate@10.2.7
- @graphql-tools/wrap@10.0.25
## 9.4.8
### Patch Changes
- [#269](https://github.com/graphql-hive/gateway/pull/269) [`cdca511`](https://github.com/graphql-hive/gateway/commit/cdca5116ce30c2bfced1130c9fbead67280af9d4) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`@graphql-tools/executor@^1.3.6` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor/v/1.3.6) (from `^1.3.3`, in `dependencies`)
- Updated dependency [`@graphql-tools/merge@^9.0.12` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.0.12) (from `^9.0.9`, in `dependencies`)
- Updated dependency [`@graphql-tools/schema@^10.0.11` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.11) (from `^10.0.8`, in `dependencies`)
- Updated dependency [`@graphql-tools/utils@^10.6.2` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.2) (from `^10.6.0`, in `dependencies`)
- Updated dependencies [[`6f56083`](https://github.com/graphql-hive/gateway/commit/6f56083028402780f505db1492b9e84ab4227a4f), [`7df2215`](https://github.com/graphql-hive/gateway/commit/7df2215abd309dc1dfd91f4ec91ce975f3982c62), [`cdca511`](https://github.com/graphql-hive/gateway/commit/cdca5116ce30c2bfced1130c9fbead67280af9d4), [`7df2215`](https://github.com/graphql-hive/gateway/commit/7df2215abd309dc1dfd91f4ec91ce975f3982c62), [`cdca511`](https://github.com/graphql-hive/gateway/commit/cdca5116ce30c2bfced1130c9fbead67280af9d4), [`cdca511`](https://github.com/graphql-hive/gateway/commit/cdca5116ce30c2bfced1130c9fbead67280af9d4)]:
- @graphql-tools/batch-delegate@9.0.22
- @graphql-tools/delegate@10.2.6
- @graphql-tools/wrap@10.0.24
## 9.4.7
### Patch Changes
- Updated dependencies [[`9ce705c`](https://github.com/graphql-hive/gateway/commit/9ce705c5ccc5e6f4ac26af6e6471a6d2f4e995db)]:
- @graphql-tools/delegate@10.2.5
- @graphql-tools/batch-delegate@9.0.21
- @graphql-tools/wrap@10.0.23
## 9.4.6
### Patch Changes
- [#247](https://github.com/graphql-hive/gateway/pull/247) [`76642d8`](https://github.com/graphql-hive/gateway/commit/76642d84b722bae28115310f25a6ac4865b41598) Thanks [@ardatan](https://github.com/ardatan)! - Fixes the bug when interfaces extended by \`additionalTypeDefs\`
## 9.4.5
### Patch Changes
- Updated dependencies []:
- @graphql-tools/delegate@10.2.4
- @graphql-tools/batch-delegate@9.0.20
- @graphql-tools/wrap@10.0.22
## 9.4.4
### Patch Changes
- [#231](https://github.com/graphql-hive/gateway/pull/231) [`7ca0ff3`](https://github.com/graphql-hive/gateway/commit/7ca0ff331e42c133c4218a8086bbf0a7607f45d0) Thanks [@ardatan](https://github.com/ardatan)! - Avoid extensions and use \`stitchingInfo\` for provided fields
- Updated dependencies [[`7ca0ff3`](https://github.com/graphql-hive/gateway/commit/7ca0ff331e42c133c4218a8086bbf0a7607f45d0)]:
- @graphql-tools/delegate@10.2.3
- @graphql-tools/batch-delegate@9.0.19
- @graphql-tools/wrap@10.0.21
## 9.4.3
### Patch Changes
- [#205](https://github.com/graphql-hive/gateway/pull/205) [`2e0add3`](https://github.com/graphql-hive/gateway/commit/2e0add3ea9b237ad385d5b5cd4c12eeeb847805a) Thanks [@ardatan](https://github.com/ardatan)! - Fix missing key fields in the nested queries
- Updated dependencies [[`2e0add3`](https://github.com/graphql-hive/gateway/commit/2e0add3ea9b237ad385d5b5cd4c12eeeb847805a)]:
- @graphql-tools/delegate@10.2.2
- @graphql-tools/batch-delegate@9.0.18
- @graphql-tools/wrap@10.0.20
## 9.4.2
### Patch Changes
- [#164](https://github.com/graphql-hive/gateway/pull/164) [`310613d`](https://github.com/graphql-hive/gateway/commit/310613d68d1df3e2bceafbd0730084a4c83527bf) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`@graphql-tools/utils@^10.6.0` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.6.0) (from `^10.5.6`, in `dependencies`)
- [#185](https://github.com/graphql-hive/gateway/pull/185) [`f0b6921`](https://github.com/graphql-hive/gateway/commit/f0b69219fefc1b24c5511a1c623a5e3bbaf5ca0b) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Removed dependency [`value-or-promise@^1.0.11` ↗︎](https://www.npmjs.com/package/value-or-promise/v/1.0.11) (from `dependencies`)
- [#188](https://github.com/graphql-hive/gateway/pull/188) [`f71366d`](https://github.com/graphql-hive/gateway/commit/f71366d234fe8f30a419814fe1460f1e22663241) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Removed dependency [`value-or-promise@^1.0.11` ↗︎](https://www.npmjs.com/package/value-or-promise/v/1.0.11) (from `dependencies`)
- Updated dependencies [[`310613d`](https://github.com/graphql-hive/gateway/commit/310613d68d1df3e2bceafbd0730084a4c83527bf), [`f0b6921`](https://github.com/graphql-hive/gateway/commit/f0b69219fefc1b24c5511a1c623a5e3bbaf5ca0b), [`f71366d`](https://github.com/graphql-hive/gateway/commit/f71366d234fe8f30a419814fe1460f1e22663241), [`310613d`](https://github.com/graphql-hive/gateway/commit/310613d68d1df3e2bceafbd0730084a4c83527bf), [`310613d`](https://github.com/graphql-hive/gateway/commit/310613d68d1df3e2bceafbd0730084a4c83527bf), [`f0b6921`](https://github.com/graphql-hive/gateway/commit/f0b69219fefc1b24c5511a1c623a5e3bbaf5ca0b), [`f71366d`](https://github.com/graphql-hive/gateway/commit/f71366d234fe8f30a419814fe1460f1e22663241)]:
- @graphql-tools/batch-delegate@9.0.17
- @graphql-tools/delegate@10.2.1
- @graphql-tools/wrap@10.0.19
## 9.4.1
### Patch Changes
- [`725d5b7`](https://github.com/graphql-hive/gateway/commit/725d5b7952be3a2fb2caeb40d26c194fb03b35d5) Thanks [@ardatan](https://github.com/ardatan)! - Fix regression on override type interface
## 9.4.0
### Minor Changes
- [#148](https://github.com/graphql-hive/gateway/pull/148) [`f32cb2a`](https://github.com/graphql-hive/gateway/commit/f32cb2a0289aa32e4811ced5dc1aac3efb0674f1) Thanks [@ardatan](https://github.com/ardatan)! - Introduce \`onDelegationPlan\` and \`onDelegationStageExecuteDone\` hooks
### Patch Changes
- Updated dependencies [[`f32cb2a`](https://github.com/graphql-hive/gateway/commit/f32cb2a0289aa32e4811ced5dc1aac3efb0674f1)]:
- @graphql-tools/delegate@10.2.0
- @graphql-tools/batch-delegate@9.0.16
- @graphql-tools/wrap@10.0.18
## 9.3.5
### Patch Changes
- Updated dependencies [[`73c621d`](https://github.com/graphql-hive/gateway/commit/73c621d98a4e6ca134527e349bc71223c03d06db), [`19bc6a4`](https://github.com/graphql-hive/gateway/commit/19bc6a4c222ff157553785ea16760888cdfe10bb)]:
- @graphql-tools/delegate@10.1.3
- @graphql-tools/wrap@10.0.17
- @graphql-tools/batch-delegate@9.0.15
## 9.3.3
### Patch Changes
- Updated dependencies
[[`342e044`](https://github.com/ardatan/graphql-tools/commit/342e044c7da74aaf5df6a90ce68973c525c9aa10)]:
- @graphql-tools/delegate@10.1.1
- @graphql-tools/batch-delegate@9.0.13
- @graphql-tools/wrap@10.0.15
## 9.3.2
### Patch Changes
- Updated dependencies
[[`e9906eb`](https://github.com/ardatan/graphql-tools/commit/e9906eb311132ab902720e75bc787228d67c0e34)]:
- @graphql-tools/delegate@10.1.0
- @graphql-tools/batch-delegate@9.0.12
- @graphql-tools/wrap@10.0.14
## 9.3.1
### Patch Changes
- Updated dependencies
[[`da1de08`](https://github.com/ardatan/graphql-tools/commit/da1de08c269a4cb3ed8240bf191833f7e75a6b01)]:
- @graphql-tools/delegate@10.0.29
- @graphql-tools/batch-delegate@9.0.11
- @graphql-tools/wrap@10.0.13
## 9.3.0
### Minor Changes
- [#6629](https://github.com/ardatan/graphql-tools/pull/6629)
[`2bb2adb`](https://github.com/ardatan/graphql-tools/commit/2bb2adbe81ab940e582ea2c779a766817c099c9c)
Thanks [@aarne](https://github.com/aarne)! - Performance improvement in stitchSchemas
## 9.2.17
### Patch Changes
- Updated dependencies
[[`f470f49`](https://github.com/ardatan/graphql-tools/commit/f470f49f7d8445801a2983f14532124588f9f59e)]:
- @graphql-tools/delegate@10.0.28
- @graphql-tools/batch-delegate@9.0.10
- @graphql-tools/wrap@10.0.12
## 9.2.16
### Patch Changes
- [`180f3f0`](https://github.com/ardatan/graphql-tools/commit/180f3f0c8362613eb3013ff12f2d5405cd987903)
Thanks [@ardatan](https://github.com/ardatan)! - Avoid extra calls if the keys are already
resolved
- Updated dependencies
[[`180f3f0`](https://github.com/ardatan/graphql-tools/commit/180f3f0c8362613eb3013ff12f2d5405cd987903)]:
- @graphql-tools/delegate@10.0.27
- @graphql-tools/batch-delegate@9.0.9
- @graphql-tools/wrap@10.0.11
## 9.2.15
### Patch Changes
- Updated dependencies
[[`8effad4`](https://github.com/ardatan/graphql-tools/commit/8effad4ffb9be1bca098b8cb6ce41b84ac7d9b6b)]:
- @graphql-tools/delegate@10.0.26
- @graphql-tools/batch-delegate@9.0.8
- @graphql-tools/wrap@10.0.10
## 9.2.14
### Patch Changes
- Updated dependencies
[[`8a16b01`](https://github.com/ardatan/graphql-tools/commit/8a16b01296457bdcfbb111e02b6f6569ef8b04aa)]:
- @graphql-tools/delegate@10.0.25
- @graphql-tools/batch-delegate@9.0.7
- @graphql-tools/wrap@10.0.9
## 9.2.13
### Patch Changes
- Updated dependencies
[[`4cdb462`](https://github.com/ardatan/graphql-tools/commit/4cdb46248774f2d5ae2757d40e1d55e83d7413b3)]:
- @graphql-tools/delegate@10.0.24
- @graphql-tools/batch-delegate@9.0.6
- @graphql-tools/wrap@10.0.8
## 9.2.12
### Patch Changes
- [#6573](https://github.com/ardatan/graphql-tools/pull/6573)
[`7e2938d`](https://github.com/ardatan/graphql-tools/commit/7e2938d45c6d0a6eb6b18b89f9f80e9b5b5c08db)
Thanks [@ardatan](https://github.com/ardatan)! - When there are two services like below then the
following query senty, the gateway tries to fetch `id` as an extra field because it considers `id`
might be needed while this is not correct. This patch avoids any extra calls, and forwards the
query as is to the 2nd service.
```graphql
query {
viewer {
booksContainer(input: $input) {
edges {
cursor
node {
source {
# Book(upc=)
upc
}
}
}
pageInfo {
endCursor
}
}
}
}
```
```graphql
type Book @key(fields: "id") @key(fields: "upc") {
id: ID!
upc: ID!
}
```
```graphql
type BookContainer { # the type that is used in a collection
id: ID!
# ... other stuff here
source: Book!
}
type Book @key(fields: "upc") {
upc: ID!
}
type Query {
viewer: Viewer
}
type Viewer {
booksContainer: BooksContainerResult
}
type BooksContainerResult {
edges: [BooksContainerEdge!]!
pageInfo: PageInfo!
}
type BooksContainerEdge {
node: BookContainer!
cursor: String!
}
type PageInfo {
endCursor: String
}
```
- Updated dependencies
[[`7e2938d`](https://github.com/ardatan/graphql-tools/commit/7e2938d45c6d0a6eb6b18b89f9f80e9b5b5c08db)]:
- @graphql-tools/delegate@10.0.23
- @graphql-tools/batch-delegate@9.0.5
- @graphql-tools/wrap@10.0.7
## 9.2.11
### Patch Changes
- [#6543](https://github.com/ardatan/graphql-tools/pull/6543)
[`dcb3e27`](https://github.com/ardatan/graphql-tools/commit/dcb3e276cce59340596156542bcede9d8b143d44)
Thanks [@enisdenjo](https://github.com/enisdenjo)! - Isolate computed fields return objects only
if not referenced from other, non-isolated, objects
- Updated dependencies
[[`cf2ce5e`](https://github.com/ardatan/graphql-tools/commit/cf2ce5ed4773087cc324599f2812f4fb91398b21)]:
- @graphql-tools/utils@10.5.5
- @graphql-tools/batch-delegate@9.0.4
- @graphql-tools/delegate@10.0.22
- @graphql-tools/executor@1.3.2
- @graphql-tools/merge@9.0.8
- @graphql-tools/schema@10.0.7
- @graphql-tools/wrap@10.0.6
## 9.2.10
### Patch Changes
- [#6278](https://github.com/ardatan/graphql-tools/pull/6278)
[`66c99d9`](https://github.com/ardatan/graphql-tools/commit/66c99d9c9e480cc4e1569b032952caea0ff69c0c)
Thanks [@ardatan](https://github.com/ardatan)! - Handle `@defer`
- [#6293](https://github.com/ardatan/graphql-tools/pull/6293)
[`3f301dc`](https://github.com/ardatan/graphql-tools/commit/3f301dc74a99ea1db28fe75923fa26ba2736d9f7)
Thanks [@ardatan](https://github.com/ardatan)! - Do not apply isolation for Mutation fields
- Updated dependencies
[[`66c99d9`](https://github.com/ardatan/graphql-tools/commit/66c99d9c9e480cc4e1569b032952caea0ff69c0c),
[`74f995f`](https://github.com/ardatan/graphql-tools/commit/74f995f17dfea6385e08bcdd662e7ad6fcfb5dfa)]:
- @graphql-tools/delegate@10.0.12
- @graphql-tools/utils@10.2.3
- @graphql-tools/executor@1.2.8
## 9.2.9
### Patch Changes
- [#6194](https://github.com/ardatan/graphql-tools/pull/6194)
[`7368829`](https://github.com/ardatan/graphql-tools/commit/73688291af0c8cb2fe550fe8c74fd8af84cb360f)
Thanks [@ardatan](https://github.com/ardatan)! - Handle interface objects in a different way
- [#6180](https://github.com/ardatan/graphql-tools/pull/6180)
[`eec9d3d`](https://github.com/ardatan/graphql-tools/commit/eec9d3d86a1a0a748321263ef9bc4db13fd3c35c)
Thanks [@ardatan](https://github.com/ardatan)! - Handle nested dependencies in the computed fields
```ts
{
merge: {
Product: {
selectionSet: '{ id }',
fields: {
isExpensive: {
selectionSet: '{ price }',
computed: true,
},
canAfford: {
selectionSet: '{ isExpensive }',
computed: true,
},
}
}
}
}
```
- [#6179](https://github.com/ardatan/graphql-tools/pull/6179)
[`03a47b1`](https://github.com/ardatan/graphql-tools/commit/03a47b181516e17f33c84f364df9482c2d1ba502)
Thanks [@ardatan](https://github.com/ardatan)! - Support computed fields resolved via a root field
returning an interface When a computed field returning an object, and that field is resolved via
an interface, the computed field will now be resolved correctly.
- [#6188](https://github.com/ardatan/graphql-tools/pull/6188)
[`e10c13a`](https://github.com/ardatan/graphql-tools/commit/e10c13a60e344b9217dc77a7cac50ec447feda7e)
Thanks [@ardatan](https://github.com/ardatan)! - Handle nested selections in
`calculateSelectionScore`
- [#6175](https://github.com/ardatan/graphql-tools/pull/6175)
[`0827497`](https://github.com/ardatan/graphql-tools/commit/08274975ccb1524d88fc8b95f42deb1cba05425d)
Thanks [@ardatan](https://github.com/ardatan)! - If there is a subschema with some selection set,
and another with some other selection set. After the calculation of delegation stage, if one
subschema can cover the other selection set as well, then we can merge the two sel