@graphql-tools/federation
Version:
Useful tools to create and manipulate GraphQL schemas.
1,902 lines (1,412 loc) • 73.4 kB
Markdown
# @graphql-tools/federation
## 3.1.6-alpha-5a915f8ac34fa347d6f4ece5af391e6fa922ca99
### Patch Changes
- [#862](https://github.com/graphql-hive/gateway/pull/862) [`5a915f8`](https://github.com/graphql-hive/gateway/commit/5a915f8ac34fa347d6f4ece5af391e6fa922ca99) 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 [[`5a915f8`](https://github.com/graphql-hive/gateway/commit/5a915f8ac34fa347d6f4ece5af391e6fa922ca99), [`5a915f8`](https://github.com/graphql-hive/gateway/commit/5a915f8ac34fa347d6f4ece5af391e6fa922ca99), [`5a915f8`](https://github.com/graphql-hive/gateway/commit/5a915f8ac34fa347d6f4ece5af391e6fa922ca99), [`5a915f8`](https://github.com/graphql-hive/gateway/commit/5a915f8ac34fa347d6f4ece5af391e6fa922ca99)]:
- @graphql-tools/delegate@10.2.15-alpha-5a915f8ac34fa347d6f4ece5af391e6fa922ca99
- @graphql-tools/executor-http@1.3.1-alpha-5a915f8ac34fa347d6f4ece5af391e6fa922ca99
- @graphql-tools/stitch@9.4.20-alpha-5a915f8ac34fa347d6f4ece5af391e6fa922ca99
- @graphql-tools/wrap@10.0.33-alpha-5a915f8ac34fa347d6f4ece5af391e6fa922ca99
## 3.1.5
### 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`)
- [#727](https://github.com/graphql-hive/gateway/pull/727) [`c54a080`](https://github.com/graphql-hive/gateway/commit/c54a080b8b9c477ed55dd7c23fc8fcae9139bec8) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
- Updated dependency [`@whatwg-node/disposablestack@^0.0.6` ↗︎](https://www.npmjs.com/package/@whatwg-node/disposablestack/v/0.0.6) (from `^0.0.5`, in `dependencies`)
- Updated dependencies [[`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1), [`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1), [`c54a080`](https://github.com/graphql-hive/gateway/commit/c54a080b8b9c477ed55dd7c23fc8fcae9139bec8), [`d949143`](https://github.com/graphql-hive/gateway/commit/d94914302b5b2c71b1c95df5145326fba89b023c), [`661b103`](https://github.com/graphql-hive/gateway/commit/661b103a7b9586641e69b78cbaad516e550e7192), [`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1), [`6334b2e`](https://github.com/graphql-hive/gateway/commit/6334b2e5d4942693121ab7d44a96fa80408aace1), [`9c2f323`](https://github.com/graphql-hive/gateway/commit/9c2f323ece47d9c0ef8f4e44050390096ceac17f), [`2a54e85`](https://github.com/graphql-hive/gateway/commit/2a54e85f2848aea7525703ea33918a21db96b26b)]:
- @graphql-tools/delegate@10.2.14
- @graphql-tools/executor-http@1.3.0
- @graphql-tools/stitch@9.4.19
- @graphql-tools/wrap@10.0.32
## 3.1.4
### Patch Changes
- [#696](https://github.com/graphql-hive/gateway/pull/696) [`a289faa`](https://github.com/graphql-hive/gateway/commit/a289faae1469eb46f1458be341d21909fe5f8f8f) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency [`@whatwg-node/fetch@^0.10.4` ↗︎](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.10.4) (from `^0.10.1`, in `dependencies`)
- Updated dependencies [[`a289faa`](https://github.com/graphql-hive/gateway/commit/a289faae1469eb46f1458be341d21909fe5f8f8f), [`20d275c`](https://github.com/graphql-hive/gateway/commit/20d275cd1badf76665874492d4550a7732b46f62)]:
- @graphql-tools/executor-http@1.2.8
## 3.1.3
### Patch Changes
- Updated dependencies [[`2318393`](https://github.com/graphql-hive/gateway/commit/2318393bc7b3aca7f53806a44b59277cd176702d)]:
- @graphql-tools/delegate@10.2.13
- @graphql-tools/stitch@9.4.18
- @graphql-tools/wrap@10.0.31
## 3.1.2
### 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`)
- 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), [`d72209a`](https://github.com/graphql-hive/gateway/commit/d72209ad82ec53689f93ce5d81bfa52493919ad9), [`7146f8d`](https://github.com/graphql-hive/gateway/commit/7146f8decca808ab2c68f4971ba9b64ca27a9b87), [`7146f8d`](https://github.com/graphql-hive/gateway/commit/7146f8decca808ab2c68f4971ba9b64ca27a9b87)]:
- @graphql-tools/delegate@10.2.12
- @graphql-tools/executor-http@1.2.7
- @graphql-tools/stitch@9.4.17
- @graphql-tools/wrap@10.0.30
## 3.1.1
### Patch Changes
- Updated dependencies [[`8c80ac9`](https://github.com/graphql-hive/gateway/commit/8c80ac98cd5afd7c063945f4704fe4866622c5d7), [`8c80ac9`](https://github.com/graphql-hive/gateway/commit/8c80ac98cd5afd7c063945f4704fe4866622c5d7)]:
- @graphql-tools/executor-http@1.2.6
## 3.1.0
### Minor Changes
- [#444](https://github.com/graphql-hive/gateway/pull/444) [`b52c9ba`](https://github.com/graphql-hive/gateway/commit/b52c9ba47f84d0905f1f63fdfe071c891dce5b7f) Thanks [@ardatan](https://github.com/ardatan)! - Now `SupergraphSchemaManager` can be used in `ApolloServer` as `gateway`;
```ts
import { ApolloServer } from '@apollo/server';
import { SupergraphSchemaManager } from '@graphql-tools/federation';
const gateway = new SupergraphSchemaManager();
const apolloServer = new ApolloServer({
gateway,
});
```
And with the new `onStitchedSchema` option, you can manipulate the executable schema created from the supergraph.
The following example demonstrates how to use `onStitchedSchema` with `applyMiddleware` from `graphql-middleware`:
```ts
import { SupergraphSchemaManager } from '@graphql-tools/federation';
import { applyMiddleware } from 'graphql-middleware';
const logInput = async (resolve, root, args, context, info) => {
console.log(`1. logInput: ${JSON.stringify(args)}`);
const result = await resolve(root, args, context, info);
console.log(`5. logInput`);
return result;
};
const logResult = async (resolve, root, args, context, info) => {
console.log(`2. logResult`);
const result = await resolve(root, args, context, info);
console.log(`4. logResult: ${JSON.stringify(result)}`);
return result;
};
const gateway = new SupergraphSchemaManager({
onStitchedSchema: async (schema) => {
// Manipulate the schema
return applyMiddleware(schema, logInput, logResult);
},
});
```
### Patch Changes
- [#552](https://github.com/graphql-hive/gateway/pull/552) [`b0bc26b`](https://github.com/graphql-hive/gateway/commit/b0bc26b8e18a2e61e5fa96f48cd77820e3598b52) Thanks [@ardatan](https://github.com/ardatan)! - Handle shared subscription root fields correctly
In case of conflicting subscription root fields coming from different subgraphs or different entry points(multiple keys),
subscription was failing.
- Updated dependencies [[`9144222`](https://github.com/graphql-hive/gateway/commit/91442220b2242a0fa082d4b544d03621572eecd0)]:
- @graphql-tools/delegate@10.2.11
- @graphql-tools/stitch@9.4.16
- @graphql-tools/wrap@10.0.29
## 3.0.10
### 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/stitch@9.4.15
## 3.0.9
### 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)! - In case of shared Mutation field in different subgraphs, choose the best option instead of choosing the last option just like we do in Query root fields
- Updated dependencies [[`a625269`](https://github.com/graphql-hive/gateway/commit/a62526936680d030339fc26cc55d76507134b022), [`14152f7`](https://github.com/graphql-hive/gateway/commit/14152f70d91572c0e60ba15ddeb2ffd0b41c9e92)]:
- @graphql-tools/stitch@9.4.14
- @graphql-tools/executor-http@1.2.5
## 3.0.8
### Patch Changes
- [#351](https://github.com/graphql-hive/gateway/pull/351) [`0591aa9`](https://github.com/graphql-hive/gateway/commit/0591aa9cc9718a1c7d8b6fa68723a3155f775cc7) Thanks [@ardatan](https://github.com/ardatan)! - Keep the custom directives(using @composeDirective) from the supergraph, in the unified schema served by the gateway should keep it.
## 3.0.7
### Patch Changes
- [#387](https://github.com/graphql-hive/gateway/pull/387) [`3571399`](https://github.com/graphql-hive/gateway/commit/35713997b5330989b001c6317631621af24c404b) Thanks [@ardatan](https://github.com/ardatan)! - In case of shared root field on Mutation, it was batched incorrectly across subgraphs. But instead only one mutation should be called as mutations should not be parallel
- Updated dependencies []:
- @graphql-tools/executor-http@1.2.4
- @graphql-tools/stitch@9.4.13
## 3.0.6
### Patch Changes
- Updated dependencies []:
- @graphql-tools/stitch@9.4.12
## 3.0.5
### Patch Changes
- Updated dependencies [[`55eb1b4`](https://github.com/graphql-hive/gateway/commit/55eb1b4d14aec7b3e6c7bcf9f596bc01192d022c), [`55eb1b4`](https://github.com/graphql-hive/gateway/commit/55eb1b4d14aec7b3e6c7bcf9f596bc01192d022c)]:
- @graphql-tools/executor-http@1.2.3
## 3.0.4
### 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/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), [`e606975`](https://github.com/graphql-hive/gateway/commit/e60697593290255fb9ac407e591ae3e8cb752df2), [`15975c2`](https://github.com/graphql-hive/gateway/commit/15975c28daddbb4f31d520371f53520aecacaac7)]:
- @graphql-tools/delegate@10.2.9
- @graphql-tools/executor-http@1.2.2
- @graphql-tools/stitch@9.4.11
- @graphql-tools/wrap@10.0.27
## 3.0.3
### Patch Changes
- [#333](https://github.com/graphql-hive/gateway/pull/333) [`0d81307`](https://github.com/graphql-hive/gateway/commit/0d813079753e7c66158499e2db6e301a3c145856) Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
- Updated dependency [`@graphql-yoga/typed-event-target@^3.0.1` ↗︎](https://www.npmjs.com/package/@graphql-yoga/typed-event-target/v/3.0.1) (from `^3.0.0`, in `dependencies`)
## 3.0.2
### Patch Changes
- Updated dependencies [[`23b8987`](https://github.com/graphql-hive/gateway/commit/23b89874fcf10b4cb6b1b941f29fa5f5aecf0ef2), [`23b8987`](https://github.com/graphql-hive/gateway/commit/23b89874fcf10b4cb6b1b941f29fa5f5aecf0ef2)]:
- @graphql-tools/delegate@10.2.8
- @graphql-tools/executor-http@1.2.1
- @graphql-tools/stitch@9.4.10
- @graphql-tools/wrap@10.0.26
## 3.0.1
### Patch Changes
- Updated dependencies [[`367b359`](https://github.com/graphql-hive/gateway/commit/367b3593cb7fd51c42ef4a13ab4adac202845734)]:
- @graphql-tools/executor-http@1.2.0
## 3.0.0
### Major Changes
- [#308](https://github.com/graphql-hive/gateway/pull/308) [`d747d4c`](https://github.com/graphql-hive/gateway/commit/d747d4cd37317e8a9b2b95a5270c0fbd47e4cba3) Thanks [@ardatan](https://github.com/ardatan)! - BREAKING CHANGES;
- Removed `buildSubgraphSchema`, use `@apollo/subgraph` instead.
- Removed the following gateway related functions, and prefer using Supergraph approach instead
- `getSubschemaForFederationWithURL`
- `getSubschemaForFederationWithTypeDefs`
- `getSubschemaForFederationWithExecutor`
- `getSubschemaForFederationWithSchema`
- `federationSubschemaTransformer`
- `SupergraphSchemaManager` is no longer an `EventEmitter` but `EventTarget` instead, and it emits a real `Event` object.
- `SupergraphSchemaManager` is now `Disposable` and it no longer stops based on Nodejs terminate events, so you should use `using` syntax.
```ts
using manager = new SupergraphSchemaManager({ ... });
manager.addEventListener('error', (event: SupergraphSchemaManagerErrorEvent) => {
console.error(event.detail.error);
});
let schema: GraphQLSchema | null = null;
manager.addEventListener('schema', (event: SupergraphSchemaManagerSchemaEvent) => {
schema = event.detail.schema;
});
```
### Patch Changes
- [#308](https://github.com/graphql-hive/gateway/pull/308) [`d747d4c`](https://github.com/graphql-hive/gateway/commit/d747d4cd37317e8a9b2b95a5270c0fbd47e4cba3) Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Added dependency [`@graphql-yoga/typed-event-target@^3.0.0` ↗︎](https://www.npmjs.com/package/@graphql-yoga/typed-event-target/v/3.0.0) (to `dependencies`)
- Added dependency [`@whatwg-node/disposablestack@^0.0.5` ↗︎](https://www.npmjs.com/package/@whatwg-node/disposablestack/v/0.0.5) (to `dependencies`)
- Added dependency [`@whatwg-node/events@^0.1.2` ↗︎](https://www.npmjs.com/package/@whatwg-node/events/v/0.1.2) (to `dependencies`)
## 2.2.40
### 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), [`34d1224`](https://github.com/graphql-hive/gateway/commit/34d12249ead65b8277df976f6318dca757df1151)]:
- @graphql-tools/delegate@10.2.7
- @graphql-tools/executor-http@1.1.14
- @graphql-tools/stitch@9.4.9
- @graphql-tools/wrap@10.0.25
## 2.2.39
### Patch Changes
- Updated dependencies [[`3f1a0fa`](https://github.com/graphql-hive/gateway/commit/3f1a0fa9f1f3b91542d00a0211d7def8ef30827e)]:
- @graphql-tools/executor-http@1.1.13
## 2.2.38
### 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/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 [[`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), [`cdca511`](https://github.com/graphql-hive/gateway/commit/cdca5116ce30c2bfced1130c9fbead67280af9d4), [`cdca511`](https://github.com/graphql-hive/gateway/commit/cdca5116ce30c2bfced1130c9fbead67280af9d4)]:
- @graphql-tools/delegate@10.2.6
- @graphql-tools/executor-http@1.1.12
- @graphql-tools/stitch@9.4.8
- @graphql-tools/wrap@10.0.24
## 2.2.37
### Patch Changes
- Updated dependencies [[`9ce705c`](https://github.com/graphql-hive/gateway/commit/9ce705c5ccc5e6f4ac26af6e6471a6d2f4e995db)]:
- @graphql-tools/delegate@10.2.5
- @graphql-tools/stitch@9.4.7
- @graphql-tools/wrap@10.0.23
## 2.2.36
### Patch Changes
- Updated dependencies [[`76642d8`](https://github.com/graphql-hive/gateway/commit/76642d84b722bae28115310f25a6ac4865b41598)]:
- @graphql-tools/stitch@9.4.6
## 2.2.35
### Patch Changes
- Updated dependencies []:
- @graphql-tools/delegate@10.2.4
- @graphql-tools/stitch@9.4.5
- @graphql-tools/wrap@10.0.22
## 2.2.34
### Patch Changes
- [#234](https://github.com/graphql-hive/gateway/pull/234) [`ba7e585`](https://github.com/graphql-hive/gateway/commit/ba7e585bcabbcec2ccd35f0903f25fdce9eeb214) Thanks [@ardatan](https://github.com/ardatan)! - Drop \`@hidden\` support in favor of \`@inaccessible\`
## 2.2.33
### 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/stitch@9.4.4
- @graphql-tools/wrap@10.0.21
## 2.2.32
### 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)! - dependencies updates:
- Updated dependency [`@whatwg-node/fetch@^0.10.1` ↗︎](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.10.1) (from `^0.10.0`, in `dependencies`)
- [#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), [`2e0add3`](https://github.com/graphql-hive/gateway/commit/2e0add3ea9b237ad385d5b5cd4c12eeeb847805a)]:
- @graphql-tools/executor-http@1.1.11
- @graphql-tools/delegate@10.2.2
- @graphql-tools/stitch@9.4.3
- @graphql-tools/wrap@10.0.20
## 2.2.31
### 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.12` ↗︎](https://www.npmjs.com/package/value-or-promise/v/1.0.12) (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.12` ↗︎](https://www.npmjs.com/package/value-or-promise/v/1.0.12) (from `dependencies`)
- [#199](https://github.com/graphql-hive/gateway/pull/199) [`b534288`](https://github.com/graphql-hive/gateway/commit/b5342885f8ac1197d70cbf45266c83b720b4f85a) Thanks [@ardatan](https://github.com/ardatan)! - Logs are now easier to read, bigger results not do not create bigger outputs but instead they are all logged in a single line
- Updated dependencies [[`310613d`](https://github.com/graphql-hive/gateway/commit/310613d68d1df3e2bceafbd0730084a4c83527bf), [`310613d`](https://github.com/graphql-hive/gateway/commit/310613d68d1df3e2bceafbd0730084a4c83527bf), [`9438e21`](https://github.com/graphql-hive/gateway/commit/9438e21982ed5c6fb18cb678b275046595ae00f5), [`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), [`f0b6921`](https://github.com/graphql-hive/gateway/commit/f0b69219fefc1b24c5511a1c623a5e3bbaf5ca0b), [`f71366d`](https://github.com/graphql-hive/gateway/commit/f71366d234fe8f30a419814fe1460f1e22663241), [`9438e21`](https://github.com/graphql-hive/gateway/commit/9438e21982ed5c6fb18cb678b275046595ae00f5), [`b534288`](https://github.com/graphql-hive/gateway/commit/b5342885f8ac1197d70cbf45266c83b720b4f85a), [`697308d`](https://github.com/graphql-hive/gateway/commit/697308df3b2dd96f28dc65a5f5361a911077e022)]:
- @graphql-tools/delegate@10.2.1
- @graphql-tools/executor-http@1.1.10
- @graphql-tools/stitch@9.4.2
- @graphql-tools/wrap@10.0.19
## 2.2.30
### Patch Changes
- [`725d5b7`](https://github.com/graphql-hive/gateway/commit/725d5b7952be3a2fb2caeb40d26c194fb03b35d5) Thanks [@ardatan](https://github.com/ardatan)! - Fix regression on override type interface
- Updated dependencies [[`725d5b7`](https://github.com/graphql-hive/gateway/commit/725d5b7952be3a2fb2caeb40d26c194fb03b35d5)]:
- @graphql-tools/stitch@9.4.1
## 2.2.29
### Patch Changes
- Updated dependencies [[`f32cb2a`](https://github.com/graphql-hive/gateway/commit/f32cb2a0289aa32e4811ced5dc1aac3efb0674f1)]:
- @graphql-tools/delegate@10.2.0
- @graphql-tools/stitch@9.4.0
- @graphql-tools/wrap@10.0.18
## 2.2.28
### 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/stitch@9.3.5
## 2.2.26
### Patch Changes
- [#6663](https://github.com/ardatan/graphql-tools/pull/6663)
[`d06afe3`](https://github.com/ardatan/graphql-tools/commit/d06afe3065edb15f4c58c1c155a230d8d542669f)
Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
- Updated dependency
[`@whatwg-node/fetch@^0.10.0` ↗︎](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.10.0)
(from `^0.9.17`, in `dependencies`)
- Updated dependencies
[[`d06afe3`](https://github.com/ardatan/graphql-tools/commit/d06afe3065edb15f4c58c1c155a230d8d542669f),
[`04d5cd7`](https://github.com/ardatan/graphql-tools/commit/04d5cd785be759f0327586a75b9a6ef70cbacf95)]:
- @graphql-tools/executor-http@1.1.8
## 2.2.25
### Patch Changes
- [`342e044`](https://github.com/ardatan/graphql-tools/commit/342e044c7da74aaf5df6a90ce68973c525c9aa10)
Thanks [@ardatan](https://github.com/ardatan)! - Prevent extra queries to the same subgraph
multiple times on the same plan, and merge iterables correctly
- Updated dependencies
[[`342e044`](https://github.com/ardatan/graphql-tools/commit/342e044c7da74aaf5df6a90ce68973c525c9aa10)]:
- @graphql-tools/delegate@10.1.1
- @graphql-tools/stitch@9.3.3
- @graphql-tools/wrap@10.0.15
## 2.2.24
### Patch Changes
- [#6619](https://github.com/ardatan/graphql-tools/pull/6619)
[`e9906eb`](https://github.com/ardatan/graphql-tools/commit/e9906eb311132ab902720e75bc787228d67c0e34)
Thanks [@kroupacz](https://github.com/kroupacz)! - Handle shared root field queries with aliases
- Updated dependencies
[[`e9906eb`](https://github.com/ardatan/graphql-tools/commit/e9906eb311132ab902720e75bc787228d67c0e34)]:
- @graphql-tools/delegate@10.1.0
- @graphql-tools/stitch@9.3.2
- @graphql-tools/wrap@10.0.14
## 2.2.23
### Patch Changes
- Updated dependencies
[[`da1de08`](https://github.com/ardatan/graphql-tools/commit/da1de08c269a4cb3ed8240bf191833f7e75a6b01)]:
- @graphql-tools/delegate@10.0.29
- @graphql-tools/stitch@9.3.1
- @graphql-tools/wrap@10.0.13
## 2.2.22
### Patch Changes
- Updated dependencies
[[`2bb2adb`](https://github.com/ardatan/graphql-tools/commit/2bb2adbe81ab940e582ea2c779a766817c099c9c)]:
- @graphql-tools/stitch@9.3.0
## 2.2.21
### Patch Changes
- [`5145fc4`](https://github.com/ardatan/graphql-tools/commit/5145fc4f4eed543219dbab5c0bd54e4636e1b952)
Thanks [@ardatan](https://github.com/ardatan)! - Run \`onSubschemaConfig\` in the right place
## 2.2.20
### Patch Changes
- Updated dependencies
[[`f470f49`](https://github.com/ardatan/graphql-tools/commit/f470f49f7d8445801a2983f14532124588f9f59e)]:
- @graphql-tools/delegate@10.0.28
- @graphql-tools/stitch@9.2.17
- @graphql-tools/wrap@10.0.12
## 2.2.19
### 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/stitch@9.2.16
- @graphql-tools/wrap@10.0.11
## 2.2.18
### Patch Changes
- [#6598](https://github.com/ardatan/graphql-tools/pull/6598)
[`4deac7f`](https://github.com/ardatan/graphql-tools/commit/4deac7f3ac468334874f1d9e4ab41943fdf2818c)
Thanks [@kroupacz](https://github.com/kroupacz)! - If `currentUnavailableSelectionSet.selections`
is empty array then "query planning" will fail.
## 2.2.17
### Patch Changes
- [`b1e002f`](https://github.com/ardatan/graphql-tools/commit/b1e002f16fe01f7d5d42f9a6b6c8d3ec67fe93ba)
Thanks [@ardatan](https://github.com/ardatan)! - If required non-nullable key is null, do not send
it to the subgraph;
See optimizations.test.ts for more details.
## 2.2.16
### Patch Changes
- [#6586](https://github.com/ardatan/graphql-tools/pull/6586)
[`8effad4`](https://github.com/ardatan/graphql-tools/commit/8effad4ffb9be1bca098b8cb6ce41b84ac7d9b6b)
Thanks [@ardatan](https://github.com/ardatan)! - Performance improvements on upstream request
execution
- Updated dependencies
[[`8effad4`](https://github.com/ardatan/graphql-tools/commit/8effad4ffb9be1bca098b8cb6ce41b84ac7d9b6b)]:
- @graphql-tools/delegate@10.0.26
- @graphql-tools/stitch@9.2.15
- @graphql-tools/wrap@10.0.10
## 2.2.15
### Patch Changes
- Updated dependencies
[[`8a16b01`](https://github.com/ardatan/graphql-tools/commit/8a16b01296457bdcfbb111e02b6f6569ef8b04aa)]:
- @graphql-tools/delegate@10.0.25
- @graphql-tools/stitch@9.2.14
- @graphql-tools/wrap@10.0.9
## 2.2.14
### Patch Changes
- [`e0070c2`](https://github.com/ardatan/graphql-tools/commit/e0070c2327ca49bc2a87b88d6ff1066ac2078d2b)
Thanks [@ardatan](https://github.com/ardatan)! - Fix unavailable field error throwing
## 2.2.13
### Patch Changes
- Updated dependencies
[[`4cdb462`](https://github.com/ardatan/graphql-tools/commit/4cdb46248774f2d5ae2757d40e1d55e83d7413b3)]:
- @graphql-tools/delegate@10.0.24
- @graphql-tools/stitch@9.2.13
- @graphql-tools/wrap@10.0.8
## 2.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/stitch@9.2.12
- @graphql-tools/wrap@10.0.7
## 2.2.11
### Patch Changes
- Updated dependencies
[[`dcb3e27`](https://github.com/ardatan/graphql-tools/commit/dcb3e276cce59340596156542bcede9d8b143d44),
[`cf2ce5e`](https://github.com/ardatan/graphql-tools/commit/cf2ce5ed4773087cc324599f2812f4fb91398b21)]:
- @graphql-tools/stitch@9.2.11
- @graphql-tools/utils@10.5.5
- @graphql-tools/delegate@10.0.22
- @graphql-tools/executor-http@1.1.7
- @graphql-tools/merge@9.0.8
- @graphql-tools/schema@10.0.7
- @graphql-tools/wrap@10.0.6
## 2.2.10
### Patch Changes
- [`a600be6`](https://github.com/ardatan/graphql-tools/commit/a600be627a6d619ef4c95a445a5c7801d166787b)
Thanks [@ardatan](https://github.com/ardatan)! - Add `onSubgraphAST`
## 2.2.9
### Patch Changes
- [#6469](https://github.com/ardatan/graphql-tools/pull/6469)
[`0e87805`](https://github.com/ardatan/graphql-tools/commit/0e8780572fb1a852c8f4d7c8a59b064ae92bdd6b)
Thanks [@User!](https://github.com/User!)! - Handle merged selection sets in the computed fields;
When a selection set for a computed field needs to be merged, resolve that required selection set
fully then resolve the computed field. In the following case, the selection set for the `author`
field in the `Post` type is merged with the selection set for the `authorId` field in the
`Comment` type.
```graphql
type Query {
feed: [Post!]!
}
type Post {
id: ID! @computed(selectionSet: "{ comments { authorId } }")
}
type Comment {
id: ID!
authorId: ID!
}
type User {
id: ID!
name: String!
}
```
```graphql
type Post {
id: ID!
comments: [Comment!]!
}
type Comment {
id: ID!
}
```
- Updated dependencies
[[`0e87805`](https://github.com/ardatan/graphql-tools/commit/0e8780572fb1a852c8f4d7c8a59b064ae92bdd6b)]:
- @graphql-tools/delegate@10.0.20
## 2.2.8
### Patch Changes
- [#6441](https://github.com/ardatan/graphql-tools/pull/6441)
[`52a69ed`](https://github.com/ardatan/graphql-tools/commit/52a69edb8979fd081d1caea90684f5d61dc9f6ec)
Thanks [@ardatan](https://github.com/ardatan)! - Filter errors as null in the projected key
If the key field has `Error`, do not send them to the subgraphs as objects but `null`.
## 2.2.7
### Patch Changes
- [#6437](https://github.com/ardatan/graphql-tools/pull/6437)
[`3188051`](https://github.com/ardatan/graphql-tools/commit/3188051ae530772210e9f3a2c9615932ef13f497)
Thanks [@User](https://github.com/User), [@()](<https://github.com/()>),
[@{](https://github.com/{), [@{](https://github.com/{), [@{](https://github.com/{),
[@{](https://github.com/{), [@{](https://github.com/{)! - Fix the bug happens when a merged field
is a computed field requires another computed field requires a field from the initial subschema.
In the following test case, `totalOrdersPrices` needs `userOrders` which needs `lastName` from
initial `Query.user`. So the bug was skipping the dependencies of `userOrders` because it assumed
`lastName` already there by mistake.
```ts
const schema1 = makeExecutableSchema({
typeDefs: /* GraphQL */ `
type User {
id: ID!
firstName: String!
lastName: String!
address: String
}
type Query {
}
`,
resolvers: {
Query: {
=> {
return {
id: 1,
firstName: 'Jake',
lastName: 'Dawkins',
address: 'everywhere',
};
},
},
},
});
const schema2 = makeExecutableSchema({
typeDefs: /* GraphQL */ `
type UserOrder {
id: ID!
}
type User {
id: ID!
totalOrdersPrices: Int
aggregatedOrdersByStatus: Int
}
type Query {
userWithOrderDetails(userId: ID!, userOrderIds: [ID]): User
}
`,
resolvers: {
Query: {
userWithOrderDetails: (_root, { userId, userOrderIds }) => {
return {
id: userId,
userOrders: userOrderIds?.map((userOrderId: string) => ({ id: userOrderId })),
};
},
},
totalOrdersPrices(user) {
if (user.userOrders instanceof Error) {
return user.userOrders;
}
if (!user.userOrders) {
throw new Error('UserOrders is required');
}
return 0;
},
aggregatedOrdersByStatus(user) {
if (user.userOrders instanceof Error) {
return user.userOrders;
}
if (!user.userOrders) {
throw new Error('UserOrders is required');
}
return 1;
},
},
},
});
const schema3 = makeExecutableSchema({
typeDefs: /* GraphQL */ `
type User {
id: ID!
userOrders: [UserOrder!]
}
type UserOrder {
id: ID!
}
type Query {
userWithOrders(id: ID!, lastName: String): User
}
`,
resolvers: {
Query: {
userWithOrders: (_root, { id, lastName }) => {
return {
id,
lastName,
};
},
},
userOrders(user) {
if (!user.lastName) {
throw new Error('LastName is required');
}
return [
{
id: `${user.lastName}1`,
},
];
},
},
},
});
const stitchedSchema = stitchSchemas({
subschemas: [
{
schema: schema1,
},
{
schema: schema2,
merge: {
selectionSet: '{ id }',
fieldName: 'userWithOrderDetails',
args: ({ id, userOrders }: { id: string; userOrders: any[] }) => ({
userId: id,
userOrderIds: userOrders?.map?.(({ id }: { id: string }) => id),
}),
fields: {
totalOrdersPrices: {
selectionSet: '{ userOrders { id } }',
computed: true,
},
aggregatedOrdersByStatus: {
selectionSet: '{ userOrders { id } }',
computed: true,
},
},
},
},
},
{
schema: schema3,
merge: {
selectionSet: '{ id }',
fieldName: 'userWithOrders',
args: ({ id, lastName }: { id: string; lastName: string }) => ({
id,
lastName,
}),
fields: {
userOrders: {
selectionSet: '{ lastName }',
computed: true,
},
},
},
},
},
],
});
const res = await normalizedExecutor({
schema: stitchedSchema,
document: parse(/* GraphQL */ `
query User {
user {
aggregatedOrdersByStatus
totalOrdersPrices
}
}
`),
});
expect(res).toEqual({
data: {
aggregatedOrdersByStatus: 1,
totalOrdersPrices: 0,
},
},
});
```
- Updated dependencies
[[`3188051`](https://github.com/ardatan/graphql-tools/commit/3188051ae530772210e9f3a2c9615932ef13f497)]:
- @graphql-tools/delegate@10.0.19
## 2.2.6
### Patch Changes
- [`b8bf584`](https://github.com/ardatan/graphql-tools/commit/b8bf584fde87d3064c204d8ac2f9da5b869249c0)
Thanks [@ardatan](https://github.com/ardatan)! - Introduce \`getDirectiveExtensions\` and refactor
directive handling in the extensions
- Updated dependencies
[[`b8bf584`](https://github.com/ardatan/graphql-tools/commit/b8bf584fde87d3064c204d8ac2f9da5b869249c0)]:
- @graphql-tools/utils@10.4.0
- @graphql-tools/schema@10.0.5
- @graphql-tools/merge@9.0.5
## 2.2.5
### Patch Changes
- [`dbb0516`](https://github.com/ardatan/graphql-tools/commit/dbb05162731b7a2baf08f4756d4a4de3dce0a951)
Thanks [@ardatan](https://github.com/ardatan)! - If there are repeated computed fields like below,
project the data for the computed fields for each `fields` and merge them correctly. And if they
are array as in `userOrders`, merge them by respecting the order (the second one can have `price`
maybe).
```graphql
type UserOrder @key(fields: "id") {
id: ID!
status: String!
price: Int!
}
type User @key(fields: "id") {
id: ID!
userOrders: [UserOrder!] @external
totalOrdersPrices: Int @requires(fields: "userOrders { id }")
aggregatedOrdersByStatus: Int @requires(fields: "userOrders { id }")
}
```
## 2.2.4
### Patch Changes
- [#6403](https://github.com/ardatan/graphql-tools/pull/6403)
[`3803897`](https://github.com/ardatan/graphql-tools/commit/3803897cef27b15bad1718819c5d75030afbe781)
Thanks [@ardatan](https://github.com/ardatan)! - Cleanup extra fields, empty inline fragments and
duplicate \_\_typename fields
- Updated dependencies
[[`3803897`](https://github.com/ardatan/graphql-tools/commit/3803897cef27b15bad1718819c5d75030afbe781)]:
- @graphql-tools/delegate@10.0.17
## 2.2.3
### Patch Changes
- [`0d203ab`](https://github.com/ardatan/graphql-tools/commit/0d203ab57671cfa6d4417e60b08b3224a65bec91)
Thanks [@ardatan](https://github.com/ardatan)! - Support `@requires` with arguments like
`@requires(fields: "price(currency: 'USD')")`
## 2.2.2
### Patch Changes
- [`63cab60`](https://github.com/ardatan/graphql-tools/commit/63cab60dca3f36614ff5cb26869e1e7d3e939c50)
Thanks [@ardatan](https://github.com/ardatan)! - Use type definition merger instead of
\`concatAST\` to merge type definitions for creating a subschema for Federation
## 2.2.1
### Patch Changes
- [`33e8146`](https://github.com/ardatan/graphql-tools/commit/33e8146e33aa17790ee76d14e52f62c684ee1b16)
Thanks [@ardatan](https://github.com/ardatan)! - Fail on query planning phase if the query plan is
not successful before the actual execution
- Updated dependencies
[[`33e8146`](https://github.com/ardatan/graphql-tools/commit/33e8146e33aa17790ee76d14e52f62c684ee1b16)]:
- @graphql-tools/delegate@10.0.16
## 2.2.0
### Minor Changes
- [#6368](https://github.com/ardatan/graphql-tools/pull/6368)
[`334d301`](https://github.com/ardatan/graphql-tools/commit/334d301007d4d73e09182f22a76bdce1937ec8af)
Thanks [@EmrysMyrddin](https://github.com/EmrysMyrddin)! - Expose the loaded supergrapth SDL in
the `schema` event
## 2.1.4
### Patch Changes
- [`167b47c`](https://github.com/ardatan/graphql-tools/commit/167b47cbc6ae31ce046cf6cc17365813d2481d4c)
Thanks [@ardatan](https://github.com/ardatan)! - New options to configure query batching and
batched delegation
```ts
{
batchingOptions: {
dataLoaderOptions: {
maxBatchSize: 10, // Limits the query batching
}
},
batchDelegateOptions: {
maxBatchSize: 10, // Limits the batch delegation
}
}
```
Learn more about these here;
[Batch Delegation](https://the-guild.dev/graphql/stitching/docs/approaches/schema-extensions#batch-delegation-array-batching)
[Query Batching](https://the-guild.dev/graphql/stitching/docs/getting-started/remote-subschemas#batch-the-executor-query-batching)
## 2.1.3
### Patch Changes
- [`d54b21a`](https://github.com/ardatan/graphql-tools/commit/d54b21a235f9632d320a32f15594ecd70b5eae29)
Thanks [@ardatan](https://github.com/ardatan)! - Do not apply type merging for non-resolvable
entities
- Updated dependencies
[[`d54b21a`](https://github.com/ardatan/graphql-tools/commit/d54b21a235f9632d320a32f15594ecd70b5eae29),
[`d54b21a`](https://github.com/ardatan/graphql-tools/commit/d54b21a235f9632d320a32f15594ecd70b5eae29)]:
- @graphql-tools/delegate@10.0.15
## 2.1.2
### Patch Changes
- [#6355](https://github.com/ardatan/graphql-tools/pull/6355)
[`c6d175b`](https://github.com/ardatan/graphql-tools/commit/c6d175b2c1de640d2156ba0b2c69bf7e8884d98f)
Thanks [@ardatan](https://github.com/ardatan)! - Handle errors coming from subgraphs correctly
when a root field is shared by different subgraphs
- If subgraph A returns an error for `Query.foo`, and subgraph B returns the data, ignore the
error and keep it for null fields.
- If both subgraphs return errors, return them as `AggregateError` then return them to the gateway
result.
- Updated dependencies
[[`8094c37`](https://github.com/ardatan/graphql-tools/commit/8094c3733c745b2ccb7adcca38024c82c42319a0),
[`97c88a0`](https://github.com/ardatan/graphql-tools/commit/97c88a0844eff2ace5914b8e18a2d32dc5b8c265)]:
- @graphql-tools/delegate@10.0.14
- @graphql-tools/executor-http@1.1.5
## 2.1.1
### Patch Changes
- [#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 use `entryPoints` for `MergedTypeConfig`
if there is only one
- [#6278](https://github.com/ardatan/graphql-tools/pull/6278)
[`66c99d9`](https://github.com/ardatan/graphql-tools/commit/66c99d9c9e480cc4e1569b032952caea0ff69c0c)
Thanks [@ardatan](https://github.com/ardatan)! - Exclude `@defer` in the subgraph requests
- Updated dependencies
[[`66c99d9`](https://github.com/ardatan/graphql-tools/commit/66c99d9c9e480cc4e1569b032952caea0ff69c0c),
[`3f301dc`](https://github.com/ardatan/graphql-tools/commit/3f301dc74a99ea1db28fe75923fa26ba2736d9f7)]:
- @graphql-tools/delegate@10.0.12
- @graphql-tools/stitch@9.2.10
- @graphql-tools/utils@10.2.3
## 2.1.0
### Minor Changes
- [#6267](https://github.com/ardatan/graphql-tools/pull/6267)
[`d5dd794`](https://github.com/ardatan/graphql-tools/commit/d5dd794352878aec9b0d543dfe2e6995142dddff)
Thanks [@EmrysMyrddin](https://github.com/EmrysMyrddin)! - Add `delayInSeconds` to the `failure`
event to give users more control on failure handling.
- [#6267](https://github.com/ardatan/graphql-tools/pull/6267)
[`d5dd794`](https://github.com/ardatan/graphql-tools/commit/d5dd794352878aec9b0d543dfe2e6995142dddff)
Thanks [@EmrysMyrddin](https://github.com/EmrysMyrddin)! - Add a the ability to start polling with
a delay. This ease the handling of failure handling, allowing to restart the manager and
respecting GraphOS minimum retry delay.
### Patch Changes
- [#6267](https://github.com/ardatan/graphql-tools/pull/6267)
[`d5dd794`](https://github.com/ardatan/graphql-tools/commit/d5dd794352878aec9b0d543dfe2e6995142dddff)
Thanks [@EmrysMyrddin](https://github.com/EmrysMyrddin)! - Fix Supergraph Manager Event Emitter
not calling every listener when at least one has been registered using `once` method.
## 2.0.1
### Patch Changes
- [#6238](https://github.com/ardatan/graphql-tools/pull/6238)
[`0f7059b`](https://github.com/ardatan/graphql-tools/commit/0f7059beb218d0012c48e121c55e7db386796bee)
Thanks [@ardatan](https://github.com/ardatan)! - Merge the elements of the lists if the root field
is shared across different subgraphs
```graphql
type Query {
products: [Product] # If this field is returned by multiple subgraphs, the elements of the lists will be merged
}
```
- Updated dependencies
[[`0f7059b`](https://github.com/ardatan/graphql-tools/commit/0f7059beb218d0012c48e121c55e7db386796bee)]:
- @graphql-tools/utils@10.2.2
## 2.0.0
### Major Changes
- [#6227](https://github.com/ardatan/graphql-tools/pull/6227)
[`85c383f`](https://github.com/ardatan/graphql-tools/commit/85c383fbb44eeb2a0509480d84ca0b12811bc3ca)
Thanks [@ardatan](https://github.com/ardatan)! - BREAKING CHANGES:
- `getSubschemasFromSupergraphSdl` has been removed in favor of the new
`getStitchingOptionsFromSupergraphSdl`, and it returns the options for `stitchSchemas` instead
of the map of subschemas
- `onExecutor` has been removed in favor of `onSubschemaConfig`
- To change the default HTTP executor options, use `httpExecutorOpts` instead of `onExecutor`
### Patch Changes
- [#6223](https://github.com/ardatan/graphql-tools/pull/6223)
[`db29280`](https://github.com/ardatan/graphql-tools/commit/db29280ef4b058857923ed8a207052fe06ba5fa0)
Thanks [@EmrysMyrddin](https://github.com/EmrysMyrddin)! - dependencies updates:
- Added dependency
[`@whatwg-node/fetch@^0.9.17` ↗︎](https://www.npmjs.com/package/@whatwg-node/fetch/v/0.9.17)
(to `dependencies`)
## 1.1.36
### 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
- [#6189](https://github.com/ardatan/graphql-tools/pull/6189)
[`0134f7f`](https://github.com/ardatan/graphql-tools/commit/0134f7ffe5383603961d69337bfa5bceefb3ed74)
Thanks [@ardatan](https://github.com/ardatan)! - Handle interface types with non-shared
implementations;
For example, you have the following services, where `Node` is implemented in both services, but
`Foo` and `Bar` are only implemented in one service. And when the gateway receives the following
query, it should be converted to this because `Node` is not implemented as `Bar` in Service 1
while implemented in Service 2.
Query conversion;
```graphql
# Gateway request
query {
fooBar(id: "1") {
... on Node {
id
}
}
}
```
```graphql
# Service 1 Request
query {
fooBar(id: "1") {
... on Foo {
id
}
... on Bar {
id
}
}
}
```
Services;
```graphql
# Service 1
union FooBar = Foo | Bar
interface Node {
id: ID!
}
type Foo implements Node {
id: ID!
}
type Bar {
id: ID!
}
type Query {
fooBar(id: ID!): FooBar
}
```
```graphql
# Service 2
interface Node {
id: ID!
}
type Foo implements Node {
id: ID!
}
type Bar implements Node {
id: ID!
}
```
- [#6187](https://github.com/ardatan/graphql-tools/pull/6187)
[`dfccfbf`](https://github.com/ardatan/graphql-tools/commit/dfccfbfd6633dd576f660c648f3c6cecff3667a1)
Thanks [@ardatan](https://github.com/ardatan)! - Respect @provides to optimize the query plan
- [#6188](https://github.com/ardatan/graphql-tools/pull/6188)
[`e10c13a`](https://github.com/ardatan/graphql-tools/commit/e10c13a60e344b9217dc77a7cac50ec447feda7e)
Thanks [@ardatan](https://github.com/ardatan)! - If two different subschemas have the root field,
use the same field to resolve missing fields instead of applying a type merging in advance
- Updated dependencies
[[`7368829`](https://github.com/ardatan/graphql-tools/commit/73688291af0c8cb2fe550fe8c74fd8af84cb360f),
[`e10c13a`](https://github.com/ardatan/graphql-tools/commit/e10c13a60e344b9217dc77a7cac50ec447feda7e),
[`e10c13a`](https://github.com/ardatan/graphql-tools/commit/e10c13a60e344b9217dc77a7cac50ec447feda7e),
[`dfccfbf`](https://github.com/ardatan/graphql-tools/commit/dfccfbfd6633dd576f660c648f3c6cecff3667a1),
[`0134f7f`](https://github.com/ardatan/graphql-tools/commit/0134f7ffe5383603961d69337bfa5bceefb3ed74),
[`eec9d3d`](https://github.com/ardatan/graphql-tools/commit/eec9d3d86a1a0a748321263ef9bc4db13fd3c35c),
[`03a47b1`](https://github.com/ardatan/graphql-tools/commit/03a47b181516e17f33c84f364df9482c2d1ba502),
[`e10c13a`](https://github.com/ardatan/graphql-tools/commit/e10c13a60e344b9217dc77a7cac50ec447feda7e),
[`0827497`](https://github.com/ardatan/graphql-tools/commit/08274975ccb1524d88fc8b95f42deb1cba05425d)]:
- @graphql-tools/delegate@10.0.11
- @graphql-tools/schema@10.0.4
- @graphql-tools/stitch@9.2.9
- @graphql-tools/utils@10.2.1
## 1.1.35
### Patch Changes
- [#6141](https://github.com/ardatan/graphql-tools/pull/6141)
[`cd962c1`](https://github.com/ardatan/graphql-tools/commit/cd962c1048b21c0a6f91c943860089b050ac5f5e)
Thanks [@ardatan](https://github.com/ardatan)! - When the gateway receives the query, now it
chooses the best root field if there is the same root field in different subgraphs. For example,
if there is `node(id: ID!): Node` in all subgraphs but one implements `User` and the other
implements `Post`, the gateway will choose the subgraph that implements `User` or `Post` based on
the query.
If there is a unresolvable interface field, it throws.
See
[this supergraph and the test query](https://github.com/ardatan/graphql-tools/tree/master/packages/federation/test/fixtures/federation-compatibility/corrupted-supergraph-node-id)
to see a real-life example
- [#6143](https://github.com/ardatan/graphql-tools/pull/6143)
[`04d5431`](https://github.com/ardatan/graphql-tools/commit/04d5431deccc42d75b6ae2ae8ed941dac4c3679a)
Thanks [@ardatan](https://github.com/ardatan)! - Implement interface objects support
- Updated dependencies
[[`a83da08`](https://github.com/ardatan/graphql-tools/commit/a83da087e24929ed0734a2cff63c97bd45cc9eb4),
[`fc9c71f`](https://github.com/ardatan/graphql-tools/commit/fc9c71fbc9057a8e32e0d8813b23819c631afa65),
[`cd962c1`](https://github.com/ardatan/graphql-tools/commit/cd962c1048b21c0a6f91c943860089b050ac5f5e)]:
- @graphql-tools/delegate@10.0.10
- @graphql-tools/stitch@9.2.8
## 1.1.34
### Patch Changes
- [#6130](https://github.com/ardatan/graphql-tools/pull/6130)
[`508ae6b`](https://github.com/ardatan/graphql-tools/commit/508ae6bbe36248926b58719d71042c4d608782a1)
Thanks [@ardatan](https://github.com/ardatan)! - Support overrides on interfaces See
[packages/federation/test/fixtures/federation-compatibility/override-type-interface/supergraph.graphql](https://github.com/ardatan/graphql-tools/blob/739264d5f7f2f4254d4d41f965d664ae04c37e45/packages/federation/test/fixtures/federation-compatibility/override-type-interface/supergraph.graphql)
for more details
## 1.1.33
### Patch Changes
- [`361052a`](https://github.com/ardatan/graphql-tools/commit/361052a5fcc7f3bb00092efa3efd5767b9ac1ee6)
Thanks [@ardatan](https://github.com/ardatan)! - Small fix: check all final types to find orphan
interfaces
## 1.1.32
### Patch Changes
- [#6126](https://github.com/ardatan/graphql-tools/pull/6126)
[`680351e`](https://github.com/ardatan/graphql-tools/commit/680351ee2af39ffd6b4b0048a28954d0d4b8a926)
Thanks [@ardatan](https://github.com/ardatan)! - When there is a Node subschema, and others to
resolve the rest of the entities by using a union resolver as in Federation like below, it was
failing. This version fixes that issue.
```graphql
query {
node(id: "1") {
id # Fetches from Node
... on User {
name # Fetches from User
}
}
}
```
```graphql
type Query {
node(id: ID!): Node
}
interface Node {
id: ID!
}
type User implements Node {
id: ID!
}
type Post implements Node {
id: ID!
}
```
```graphql
# User subschema
scalar _Any
type Query {
_entities(representations: [_Any!]!): [_Entity]!
}
union _Entity = User
interface Node {
id: ID!
}
type User implements Node {
id: ID!
name: String!
}
```
```graphql
# Post subschema
scalar _Any
union _Entity = Post
type Query {
_entities(representations: [_Any!]!): [_Entity]!
}
interface Node {
id: ID!
}
type Post implements Node {
id: ID!
title: String!
}
```
- Updated dependencies
[[`680351e`](https://github.com/ardatan/graphql-tools/commit/680351ee2af39ffd6b4b0048a28954d0d4b8a926)]:
- @graphql-tools/delegate@10.0.9
- @graphql-tools/stitch@9.2.7
## 1.1.31
### Patch Changes
- [`98b2795`](https://github.com/ardatan/graphql-tools/commit/98b2795120e05dec1d91b57422f50d38c088b630)
Thanks [@ardatan](https://github.com/ardatan)! - Improvements on unavailable field selection, and
key object projection
- Updated dependencies
[[`98b2795`](https://github.com/ardatan/graphql-tools/commit/98b2795120e05dec1d91b57422f50d38c088b630)]:
- @graphql-tools/stitch@9.2.6
## 1.1.30
### Patch Changes
- [`9238e14`](https://github.com/ardatan/graphql-tools/commit/9238e140862d33c6df072c42054fc642eda37840)
Thanks [@ardatan](https://github.com/ardatan)! - Improvements on field merging and extraction of
unavailable fields
- Updated dependencies
[[`9238e14`](https://github.com/ardatan/graphql-tools/commit/9238e140862d33c6df072c42054fc642eda37840),
[`4ce3ffc`](https://github.com/ardatan/graphql-tools/commit/4ce3ffc8ec927651587e0aa236fdd573e883ef21)]:
- @graphql-tools/stitch@9.2.5
- @graphql-tools/delegate@10.0.8
## 1.1.29
### Patch Changes
- [#6109](https://github.com/ardatan/graphql-tools/pull/6109)
[`074fad4`](https://github.com/ardatan/graphql-tools/commit/074fad4144095fbefe449ced397b7707963bd7aa)
Thanks [@ardatan](https://github.com/ardatan)! - Show responses in debug logging with `DEBUG` env
var
- Updated dependencies
[[`074fad4`](https://github.com/ardatan/graphql-tools/commit/074fad4144095fbefe449ced397b7707963bd7aa),
[`074fad4`](https://github.com/ardatan/graphql-tools/commit/074fad4144095fbefe449ced397b7707963bd7aa)]:
- @graphql-tools/delegate@10.0.7
- @graphql-tools/stitch@9.2.3
## 1.1.28
### Patch Changes
- [#6091](https://github.com/ardatan/graphql-tools/pull/6091)
[`9bca9e0`](https://github.com/ardatan/graphql-tools/commit/9bca9e03915a2e12d164e355be9aed389b0de3a4)
Thanks [@User](https://github.com/User), [@User](https://github.com/User)! - If the gateway
receives a query with an overlapping fields for the subschema, it uses aliases to resolve it
correctly.
Let's say subschema A has the following schema;
```graphql
type Query {
}
interface User {
id: ID!
name: String!
}
type Admin implements User {
id: ID!
name: String!
role: String!
}
type Customer implements User {
id: ID!
name: String
email: String
}
```
And let's say the gateway has the following schema instead;
```graphql
type Query {
}
interface User {
id: ID!
name: String!
}
type Admin implements User {
id: ID!
name: String!
role: String!
}
type Customer implements User {
id: ID!
name: String!
email: String!
}
```
In this case, the following query is fine for the gateway but for the subschema, it's not;
```graphql
query {
user {
... on Admin {
id
name # This is nullable in the subschema
role
}
... on Customer {
id
name # This is non-nullable in the subschema
email
}
}
}
```
So the subgraph will throw based on this rule
[OverlappingFieldsCanBeMerged](https://github.com/graphql/graphql-js/blob/main/src/validation/rules/OverlappingFieldsCanBeMergedRule.ts)
To avoid this, the gateway will use aliases to resolve the query correctly. The query will be
transformed to the following;
```graphql
query {
user {
... on Admin {
id
name # This is nullable in the subschema
role
}
... on Customer {
id
name: _nullable_name # This is non-nullable in the subschema
email
}
}
}
```
- Updated dependencies
[[`9bca9e0`](https://github.com/ardatan/graphql-tools/commit/9bca9e03915a2e12d164e355be9aed389b0de3a4),
[`9bca9e0`](https://github.com/ardatan/graphql-tools/commit/9bca9e03915a2e12d164e355be9aed389b0de3a4),
[`243c353`](https://github.com/ardatan/graphql-tools/commit/243c353412921cf0063f963ee46b9c63d2f33b41)]:
- @graphql-tools/stitch@9.2.0
- @graphql-tools/delegate@10.0.5
## 1.1.27
### Patch Changes
- [#6086](https://github.com/ardatan/graphql-tools/pull/6086)
[`f538e50`](https://github.com/ardatan/graphql-tools/commit/f538e503c3cdb152bd29f77804217100cac0f648)
Thanks [@ardatan](https://github.com/ardatan)! - Handle @inaccessible types correctly
## 1.1.26
### Patch Changes
- [#6071](https://github.com/ardatan/graphql-tools/pull/6071)
[`6cf507f`](https://github.com/ardatan/graphql-tools/commit/6cf507fc70d2474c71c8604ab117d01af76376e1)
Thanks [@ardatan](https://github.com/ardatan)! - Handle inaccessible enum values
## 1.1.25
### Patch Changes
- [`e09c383`](https://github.com/ardatan/graphql-tools/commit/e09c383a540f84f56db141466b711f88fce8548d)
Thanks [@ardatan](https://github.com/ardatan)! - Respect fields with specified types
## 1.1.24
### Patch Changes
- [`458ef46`](https://github.com/ardatan/graphql-tools/commit/458ef46536db003edc399587feabfcee7b186830)
Thanks [@ardatan](https://github.com/ardatan)! - Remove extra logs
## 1.1.23
### Patch Changes
- [`2202768`](https://github.com/ardatan/graphql-tools/commit/220276800d271e7c6fbc43339eb779b618c82e68)
Thanks [@ardatan](https://github.com/ardatan)! - Federation v1 support improvements
## 1.1.22
### Patch Changes
- [`4620bb2`](https://github.com/ardatan/graphql-tools/commit/4620bb2a352fd0e645950aaae8bb54cbc7c85ce7)
Thanks [@ardatan](https://github.com/ardatan)! - Handle unspecified key fields
## 1.1.21
### Patch Changes
- [`14f4fae`](https://github.com/ardatan/graphql-tools/commit/14f4faec87b1423c5541dab16dc2c5c1298edcf7)
Thanks [@ardatan](https://github.com/ardatan)! - Handle orphan scalars with directives
## 1.1.20
### Patch Changes
- [`b78ce7e`](https://github.com/ardatan/graphql-tools/commit/b78ce7e42c8d016d972b125a86508f5ab78d57a6)
Thanks [@ardatan](https://github.com/ardatan)! - Handle orphan union types
## 1.1.19
### Patch Changes
- [#5956](https://github.com/ardatan/graphql-tools/pull/5956)
[`d4395dd`](https://github.com/ardatan/graphql-tools/commit/d4395dd7d21db3becdf51cc0508e35d246dcbe1e)
Thanks [@ardatan](https://github.com/ardatan)! - Handle orphan types
- Updated dependencies
[[`8199416`](https://github.com/ardatan/graphql-tools/commit/81994160488aad1114b0d130083bcf694fe13aba),
[`baf3c28`](https://github.com/ardatan/graphql-tools/commit/baf3c28f43dcfafffd15386daeb153bc2895c1b3)]:
- @graphql-tools/wrap@10.0.3
- @graphql-tools/utils@10.1.1
## 1.1.18
### Patch Changes
- [#5946](https://github.com/ardatan/graphql-tools/pull/5946)
[`107c021`](https://github.com/ardatan/graphql-tools/commit/107c021aa191f0654c45ed72b45d650993e2142f)
Thanks [@ardatan](https://github.com/ardatan)! - If an interface or scalar type is not annotated
for a subgraph explicitly, consider them as a shared type
## 1.1.17
### Patch Changes
- [#5913](https://github.com/ardatan/graphql-tools/pull/5913)
[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703)
Thanks [@enisdenjo](https://github.com/enisdenjo)! - dependencies updates:
- Updated dependency
[`@graphql-tools/delegate@^10.0.3` ↗︎](https://www.npmjs.com/package/@graphql-tools/delegate/v/10.0.3)
(from `^10.0.1`, in `dependencies`)
- Updated dependency
[`@graphql-tools/executor-http@^1.0.8` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor-http/v/1.0.8)
(from `^1.0.6`, in `dependencies`)
- Updated dependency
[`@graphql-tools/merge@^9.0.1` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/9.0.1)
(from `^9.0.0`, in `dependencies`)
- Updated dependency
[`@graphql-tools/schema@^10.0.2` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/10.0.2)
(from `^10.0.0`, in `dependencies`)
- Updated dependency
[`@graphql-tools/stitch@^9.0.4` ↗︎](https://www.npmjs.com/package/@graphql-tools/stitch/v/9.0.4)
(from `^9.0.2`, in `dependencies`)
- Updated dependency
[`@graphql-tools/utils@^10.0.13` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/10.0.13)
(from `^10.0.0`, in `dependencies`)
- Updated dependency
[`@graphql-tools/wrap@^10.0.1` ↗︎](https://www.npmjs.com/package/@graphql-tools/wrap/v/10.0.1)
(from `^10.0.0`, in `dependencies`)
- Updated dependencies
[[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703),
[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703),
[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703),
[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703),
[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703),
[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703),
[`83c0af0`](https://github.com/ardatan/graphql-tools/commit/83c0af0713ff2ce55ccfb97a1810ecfecfeab703)]:
- @graphql-tools/delegate@10.0.4
- @graphql-tools/executor-http@1.0.9
- @graphql-tools/merge@9.0.3
- @graphql-tools/schema@10.0.3
- @graphql-tools/stitch@9.0.5
- @graphql-tools/wrap@10.0.2
## 1.1.16
### Patch Changes
- [`7583729`](https://github.com/ardatan/graphql-tools/commit/7583729718ffd528bba5d1c5c4ea087975102c1f)
Thanks [@ardatan](https://github.com/ardatan)! - Fix `getSubschemaForFederationWithTypeDefs` for
non-supergraph merging of subgraphs
## 1.1.15
### Patch Changes
- [#5885](https://github.com/ardatan/graphql-tools/pull/5885)
[`2d76909`](https://github.com/ardatan/graphql-tools/commit/2d76909908a918562a9f7599825b70ae60f91127)
Thanks [@ardatan](https://github.com/ardatan)! - Avoid creating invalid schema when there is no
entity
## 1.1.14
### Patch Changes
- [#5878](https://github.com/ardatan/graphql-tools/pull/5878)
[`ba062ff`](https://github.com/ardatan/graphql-tools/commit/ba062ff4880f6922eaddfcbd746782275a8f689e)
Thanks [@darren-west](https://github.com/darren-west)! - fix: buildSubgraphSchema with no entity
keys
## 1.1.13
### Patch Changes
- [`974df8a`](https://github.com/ardatan/graphql-tools/commit/974df8a1a1bca422bac5d971a3f8029cd9728efd)
Thanks [@ardatan](https://github.com/ardatan)! - Debug logging & expose the subgraph schema
- Updated dependencies
[[`b798b3b`](https://github.com/ardatan/graphql-tools/commit/b798b3b0a54f634bf2dd2275ef47f5263a5ce238)]:
- @graphql-tools/executor-http@1.0.6
## 1.1.12
### Patch Changes
- [`efedc590`](https://github.com/ardatan/graphql-tools/commit/efedc59018ea1d63f86973d0c6608b3c7ddc2e71)
Thanks [@ardatan](https://github.com/ardatan)! - Handle unions correctly
## 1.1.11
### Patch Changes
- [`250715a1`](https://github.com/ardatan/graphql-tools/commit/250715a1e18f0c645240ea78bb80f7557ac81340)
Thanks [@ardatan](https://github.com/ardatan)! - Support `extend type` in subgraph SDL
- [`250715a1`](https://github.com/ardatan/graphql-tools/commit/250715a1e18f0c645240ea78bb80f7557ac81340)
Thanks [@ardatan](https://github.com/ardatan)! - Support supergraph with no join\_\_type
directives on Query type
## 1.1.10
### Patch Changes
- [`cda328c3`](https://github.com/ardatan/graphql-tools/commit/cda328c3e487ea51e13a3b18f0e2e494fd3275ca)
Thanks [@ardatan](https://github.com/ardatan)! - Support for multiple key entrypoints for an
object, and avoid sending whole object if possible
- Updated dependencies
[[`cda328c3`](https://github.com/ardatan/graphql-tools/commit/cda328c3e487ea51e13a3b18f0e2e494fd3275ca)]:
- @graphql-tools/stitch@9.0.2
## 1.1.9
### Patch Changes
- [`3ed8cbd6`](https://github.com/ardatan/graphql-tools/commit/3ed8cbd68988492e8b220a82b3590bad2a1c672b)
Thanks [@ardatan](https://github.com/ardatan)! - Support @join\_\_implements in Federation
## 1.1.8
### Patch Changes
- [`7fe63895`](https://github.com/ardatan/graphql-tools/commit/7fe63895c1b989de3ab433e90945cb318718ddac)
Thanks [@ardatan](https://github.com/ardatan)! - Fix Fed v2 support
## 1.1.7
### Patch Changes
- [#5579](https://github.com/ardatan/graphql-tools/pull/5579)
[`d30e8735`](https://github.com/ardatan/graphql-tools/commit/d30e8735682c3a7209cded3fc16dd889ddfa5ddf)
Thanks [@ardatan](https://github.com/ardatan)! - Optimizations and refactor
## 1.1.6
### Patch Changes
- [`9b404e83`](https://github.com/ardatan/graphql-tools/commit/9b404e8346af2831e3ed56326cd9e1e9f8582b42)
Thanks [@ardatan](https://github.com/ardatan)! - Handle type ownerships correctly
## 1.1.5
### Patch Changes
- [#5567](https://github.com/ardatan/graphql-tools/pull/5567)
[`61393975`](https://github.com/ardatan/graphql-tools/commit/61393975c535e45c108500feea1ceec461586c6e)
Thanks [@ardatan](https://github.com/ardatan)! - Respect input types
## 1.1.4
### Patch Changes
- [#5559](https://github.com/ardatan/graphql-tools/pull/5559)
[`ada5c56a`](https://github.com/ardatan/graphql-tools/commit/ada5c56af472e06d595e53a035c105e745490bfc)
Thanks [@ardatan](https://github.com/ardatan)! - Support unowned types such as interfaces, unions
and scalars
## 1.1.3
### Patch Changes
- [#5474](https://github.com/ardatan/graphql-tools/pull/5474)
[`f31be313`](https://github.com/ardatan/graphql-tools/commit/f31be313b2af5a7c5bf893f1ce1dc7d36bf5340c)
Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Removed dependency [`lodash.pick@^4.4.0` ↗︎](https://www.npmjs.com/package/lodash.pick/v/4.4.0)
(from `dependencies`)
- [#5474](https://github.com/ardatan/graphql-tools/pull/5474)
[`f31be313`](https://github.com/ardatan/graphql-tools/commit/f31be313b2af5a7c5bf893f1ce1dc7d36bf5340c)
Thanks [@ardatan](https://github.com/ardatan)! - Optimizations for federation
- Updated dependencies
[[`f31be313`](https://github.com/ardatan/graphql-tools/commit/f31be313b2af5a7c5bf893f1ce1dc7d36bf5340c)]:
- @graphql-tools/delegate@10.0.1
- @graphql-tools/stitch@9.0.1
## 1.1.2
### Patch Changes
- [#5468](https://github.com/ardatan/graphql-tools/pull/5468)
[`de9e8a67`](https://github.com/ardatan/graphql-tools/commit/de9e8a678a0ab38e5fc1cbf6c1bf27c265cc0c01)
Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Added dependency [`lodash.pick@^4.4.0` ↗︎](https://www.npmjs.com/package/lodash.pick/v/4.4.0)
(to `dependencies`)
- [#5468](https://github.com/ardatan/graphql-tools/pull/5468)
[`de9e8a67`](https://github.com/ardatan/graphql-tools/commit/de9e8a678a0ab38e5fc1cbf6c1bf27c265cc0c01)
Thanks [@ardatan](https://github.com/ardatan)! - Reduce the number of upstream requests
## 1.1.1
### Patch Changes
- [`d593dfce`](https://github.com/ardatan/graphql-tools/commit/d593dfce52a895993c754903687043a9d5429803)
Thanks [@ardatan](https://github.com/ardatan)! - Adding `batch` option to allow batching
## 1.1.0
### Minor Changes
- [#5455](https://github.com/ardatan/graphql-tools/pull/5455)
[`d4de4a8e`](https://github.com/ardatan/graphql-tools/commit/d4de4a8e84f7dabbaab058b264a350a3592dd752)
Thanks [@ardatan](https://github.com/ardatan)! - Supergraph SDL support
## 1.0.0
### Major Changes
- [#5274](https://github.com/ardatan/graphql-tools/pull/5274)
[`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955)
Thanks [@ardatan](https://github.com/ardatan)! - Drop Node 14 support. Require Node.js `>= 16`
### Patch Changes
- Updated dependencies
[[`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955),
[`8fba6cc1`](https://github.com/ardatan/graphql-tools/commit/8fba6cc1876e914d587f5b253332aaedbcaa65e6),
[`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955),
[`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955),
[`944a68e8`](https://github.com/ardatan/graphql-tools/commit/944a68e8becf9c86b4c97fd17c372d98a285b955)]:
- @graphql-tools/executor-http@1.0.0
- @graphql-tools/delegate@10.0.0
- @graphql-tools/schema@10.0.0
- @graphql-tools/stitch@9.0.0
- @graphql-tools/merge@9.0.0
- @graphql-tools/utils@10.0.0
- @graphql-tools/wrap@10.0.0
## 0.0.3
### Patch Changes
- [#5223](https://github.com/ardatan/graphql-tools/pull/5223)
[`24c13616`](https://github.com/ardatan/graphql-tools/commit/24c136160fe675c08c1c1fe06bfb8883cdf0b466)
Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency
[`@graphql-tools/executor-http@^0.1.9` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor-http/v/0.1.9)
(from `^0.0.7`, in `dependencies`)
## 0.0.2
### Patch Changes
- [#5212](https://github.com/ardatan/graphql-tools/pull/5212)
[`0cd9e8c4`](https://github.com/ardatan/graphql-tools/commit/0cd9e8c4469d07e53ad8e7944ba144f58c4db34f)
Thanks [@ardatan](https://github.com/ardatan)! - dependencies updates:
- Updated dependency
[`@graphql-tools/delegate@^9.0.19` ↗︎](https://www.npmjs.com/package/@graphql-tools/delegate/v/9.0.19)
(from `9.0.19`, in `dependencies`)
- Updated dependency
[`@graphql-tools/merge@^8.3.16` ↗︎](https://www.npmjs.com/package/@graphql-tools/merge/v/8.3.16)
(from `8.3.16`, in `dependencies`)
- Updated dependency
[`@graphql-tools/schema@^9.0.14` ↗︎](https://www.npmjs.com/package/@graphql-tools/schema/v/9.0.14)
(from `9.0.14`, in `dependencies`)
- Updated dependency
[`@graphql-tools/wrap@^9.2.20` ↗︎](https://www.npmjs.com/package/@graphql-tools/wrap/v/9.2.20)
(from `9.2.20`, in `dependencies`)
- Updated dependency
[`@graphql-tools/utils@^9.1.3` ↗︎](https://www.npmjs.com/package/@graphql-tools/utils/v/9.1.3)
(from `9.1.3`, in `dependencies`)
- Updated dependency
[`@graphql-tools/executor-http@^0.0.7` ↗︎](https://www.npmjs.com/package/@graphql-tools/executor-http/v/0.0.7)
(from `0.0.7`, in `dependencies`)
- Updated dependency
[`@graphql-tools/stitch@^8.7.34` ↗︎](https://www.npmjs.com/package/@graphql-tools/stitch/v/8.7.34)
(from `8.7.34`, in `dependencies`)
- Added dependency
[`value-or-promise@^1.0.12` ↗︎](https://www.npmjs.com/package/value-or-promise/v/1.0.12) (to
`dependencies`)
- [#5215](https://github.com/ardatan/graphql-tools/pull/5215)
[`88244048`](https://github.com/ardatan/graphql-tools/commit/882440487551abcb5bdd4f626f3b56ac2e886f11)
Thanks [@ardatan](https://github.com/ardatan)! - Avoid object spread
- [#5220](https://github.com/ardatan/graphql-tools/pull/5220)
[`8e80b689`](https://github.com/ardatan/graphql-tools/commit/8e80b6893d2342353731610d5da9db633d806083)
Thanks [@ardatan](https://github.com/ardatan)! - Performance improvements
- Updated dependencies
[[`8e80b689`](https://github.com/ardatan/graphql-tools/commit/8e80b6893d2342353731610d5da9db633d806083)]:
- @graphql-tools/delegate@9.0.35
- @graphql-tools/stitch@8.7.49
## 0.0.1
### Patch Changes
- [#4974](https://github.com/ardatan/graphql-tools/pull/4974)
[`1c0e80a6`](https://github.com/ardatan/graphql-tools/commit/1c0e80a60827169eb3eb99fe5710b1e891b89740)
Thanks [@ardatan](https://github.com/ardatan)! - New Federation package