From c719214a945564e4afc4bf1610e3dcdfb3838fe1 Mon Sep 17 00:00:00 2001 From: Chris Lenfest Date: Thu, 5 Oct 2023 11:20:19 -0500 Subject: [PATCH 01/21] Don't fail default value check if custom scalar is shadowing a built in one of the same name. (#2809) * Don't fail default value check if custom scalar is shadowing a built in one of the same name. Fixes #2806 --- .changeset/tall-cats-flash.md | 7 +++++++ .cspell/cspell-dict.txt | 1 + .../src/__tests__/composeFed1Subgraphs.test.ts | 18 ++++++++++++++++++ internals-js/src/validate.ts | 15 ++++++++++----- internals-js/src/values.ts | 2 +- 5 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 .changeset/tall-cats-flash.md diff --git a/.changeset/tall-cats-flash.md b/.changeset/tall-cats-flash.md new file mode 100644 index 000000000..62c3b8e5c --- /dev/null +++ b/.changeset/tall-cats-flash.md @@ -0,0 +1,7 @@ +--- +"@apollo/composition": patch +"@apollo/federation-internals": patch +--- + +Fixing issue where redeclaration of custom scalars in a fed1 schema may cause upgrade errors + \ No newline at end of file diff --git a/.cspell/cspell-dict.txt b/.cspell/cspell-dict.txt index 396cfd18d..3de941c55 100644 --- a/.cspell/cspell-dict.txt +++ b/.cspell/cspell-dict.txt @@ -175,6 +175,7 @@ Queryf reacheable reasonse recusive +redeclaration refered Referencer referencer diff --git a/composition-js/src/__tests__/composeFed1Subgraphs.test.ts b/composition-js/src/__tests__/composeFed1Subgraphs.test.ts index e22bede09..8e158fb41 100644 --- a/composition-js/src/__tests__/composeFed1Subgraphs.test.ts +++ b/composition-js/src/__tests__/composeFed1Subgraphs.test.ts @@ -727,4 +727,22 @@ describe('override', () => { '[subgraphB] Invalid definition for directive \"@override\": missing required argument "from"', ]]); }); + + it('repro redefined built-in scalar breaks @key directive', () => { + const subgraphA = { + typeDefs: gql` + scalar Boolean + type Query { + q: String + } + type A @key(fields: "k") { + k: ID! + } + `, + name: 'subgraphA', + }; + + const result = composeServices([subgraphA,]); + assertCompositionSuccess(result); + }); }); diff --git a/internals-js/src/validate.ts b/internals-js/src/validate.ts index e4a02bf36..755f79a2d 100644 --- a/internals-js/src/validate.ts +++ b/internals-js/src/validate.ts @@ -8,6 +8,7 @@ import { InterfaceType, isInputObjectType, isNonNullType, + isScalarType, NamedSchemaElement, ObjectType, Schema, @@ -17,7 +18,7 @@ import { VariableDefinitions } from "./definitions"; import { assertName, ASTNode, GraphQLError, GraphQLErrorOptions } from "graphql"; -import { isValidValue, valueToString } from "./values"; +import { isValidValue, valueToString, isValidValueApplication } from "./values"; import { introspectionTypeNames, isIntrospectionName } from "./introspection"; import { isSubtype, sameType } from "./types"; import { ERRORS } from "./error"; @@ -290,10 +291,14 @@ class Validator { ); } if (arg.defaultValue !== undefined && !isValidValue(arg.defaultValue, arg, new VariableDefinitions())) { - this.addError( - `Invalid default value (got: ${valueToString(arg.defaultValue)}) provided for argument ${arg.coordinate} of type ${arg.type}.`, - { nodes: sourceASTs(arg) }, - ); + // don't error if custom scalar is shadowing a builtin scalar + const builtInScalar = this.schema.builtInScalarTypes().find((t) => arg.type && isScalarType(arg.type) && t.name === arg.type.name); + if (!builtInScalar || !isValidValueApplication(arg.defaultValue, builtInScalar, arg.defaultValue, new VariableDefinitions())) { + this.addError( + `Invalid default value (got: ${valueToString(arg.defaultValue)}) provided for argument ${arg.coordinate} of type ${arg.type}.`, + { nodes: sourceASTs(arg) }, + ); + } } } diff --git a/internals-js/src/values.ts b/internals-js/src/values.ts index 7dd7ddd2d..11b2968e5 100644 --- a/internals-js/src/values.ts +++ b/internals-js/src/values.ts @@ -492,7 +492,7 @@ export function isValidValue(value: any, argument: ArgumentDefinition | Inp return isValidValueApplication(value, argument.type!, argument.defaultValue, variableDefinitions); } -function isValidValueApplication(value: any, locationType: InputType, locationDefault: any, variableDefinitions: VariableDefinitions): boolean { +export function isValidValueApplication(value: any, locationType: InputType, locationDefault: any, variableDefinitions: VariableDefinitions): boolean { // Note that this needs to be first, or the recursive call within 'isNonNullType' would break for variables if (isVariable(value)) { const definition = variableDefinitions.definition(value); From e2dad360899b44c60cd07eab52bb9b33de75ba67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Oct 2023 01:32:46 +0000 Subject: [PATCH 02/21] chore(deps): update dependency @apollo/client to v3.8.5 (#2811) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index f6ab49f31..103d412aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ ], "devDependencies": { "@apollo/cache-control-types": "1.0.3", - "@apollo/client": "3.8.4", + "@apollo/client": "3.8.5", "@apollo/server": "4.9.4", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", @@ -198,9 +198,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.4.tgz", - "integrity": "sha512-QFXE4ylSHUa6LgYoOGsPysJCm4YJOOM1NwHyF6msZdZXIerqUVpLvxQOdQEXgS0RWvYiBMC1wGOWKzJKSWBdAg==", + "version": "3.8.5", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.5.tgz", + "integrity": "sha512-/ueWC3f1pFeH+tWbM1phz6pzUGGijyml6oQ+LKUcQzpXF6tVFPrb6oUIUQCbZpr6Xmv/dtNiFDohc39ra7Solg==", "dev": true, "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", @@ -2285,9 +2285,9 @@ "peer": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "peer": true, "dependencies": { @@ -7400,9 +7400,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "peer": true, "dependencies": { @@ -17310,9 +17310,9 @@ "license": "MIT" }, "node_modules/v8-to-istanbul": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.2.tgz", - "integrity": "sha512-ZGBe7VAivuuoQXTeckpbYKTdtjXGcm3ZUHXC0PAk0CzFyuYvwi73a58iEKI3GkGD1c3EHc+EgfR1w5pgbfzJlQ==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", diff --git a/package.json b/package.json index cdfcce130..25c3b6113 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ ], "devDependencies": { "@apollo/cache-control-types": "1.0.3", - "@apollo/client": "3.8.4", + "@apollo/client": "3.8.5", "@apollo/server": "4.9.4", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", From c11be82e2cdca6f849e02f374d6e133b3296d939 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 7 Oct 2023 16:45:31 -0500 Subject: [PATCH 03/21] chore(deps): update all non-major dependencies (#2814) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 39 ++++++++++++++++++++++++--------------- package.json | 4 ++-- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 103d412aa..9e7b11485 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "@types/nock": "10.0.3", "@types/node": "14.18.63", "@types/node-fetch": "2.6.6", - "@types/uuid": "9.0.4", + "@types/uuid": "9.0.5", "@typescript-eslint/eslint-plugin": "5.62.0", "bunyan": "1.8.15", "codecov": "3.8.3", @@ -61,7 +61,7 @@ "ts-jest": "29.1.1", "ts-node": "10.9.1", "typescript": "5.2.2", - "winston": "3.10.0", + "winston": "3.11.0", "winston-transport": "4.5.0" }, "engines": { @@ -4117,9 +4117,9 @@ "license": "MIT" }, "node_modules/@types/uuid": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", - "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.5.tgz", + "integrity": "sha512-xfHdwa1FMJ082prjSJpoEI57GZITiQz10r3vEJCHa2khEFQjKy91aWKz6+zybzssCvXUwE1LQWgWVwZ4nYUvHQ==" }, "node_modules/@types/ws": { "version": "8.5.4", @@ -4130,9 +4130,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.26.tgz", - "integrity": "sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==", + "version": "17.0.28", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.28.tgz", + "integrity": "sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -4506,9 +4506,9 @@ } }, "node_modules/@whatwg-node/fetch/node_modules/@types/node": { - "version": "18.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz", - "integrity": "sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA==", + "version": "18.18.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.4.tgz", + "integrity": "sha512-t3rNFBgJRugIhackit2mVcLfF6IRc0JE4oeizPQL8Zrm8n2WY/0wOdpOPhdtG0V9Q2TlW/axbF1MJ6z+Yj/kKQ==", "dev": true, "peer": true }, @@ -17529,12 +17529,12 @@ } }, "node_modules/winston": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.10.0.tgz", - "integrity": "sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", + "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", "dev": true, "dependencies": { - "@colors/colors": "1.5.0", + "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", @@ -17563,6 +17563,15 @@ "node": ">= 6.4.0" } }, + "node_modules/winston/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/word-wrap": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", diff --git a/package.json b/package.json index 25c3b6113..dbea753b8 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@types/nock": "10.0.3", "@types/node": "14.18.63", "@types/node-fetch": "2.6.6", - "@types/uuid": "9.0.4", + "@types/uuid": "9.0.5", "@typescript-eslint/eslint-plugin": "5.62.0", "bunyan": "1.8.15", "codecov": "3.8.3", @@ -93,7 +93,7 @@ "ts-jest": "29.1.1", "ts-node": "10.9.1", "typescript": "5.2.2", - "winston": "3.10.0", + "winston": "3.11.0", "winston-transport": "4.5.0" }, "jest": { From 638365ae5417571e768ae66e855bc7535d60ca3b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Oct 2023 15:57:00 -0500 Subject: [PATCH 04/21] Version Packages (#2810) Co-authored-by: github-actions[bot] --- .changeset/tall-cats-flash.md | 7 ---- composition-js/CHANGELOG.md | 10 ++++++ composition-js/package.json | 6 ++-- .../CHANGELOG.md | 2 ++ .../package.json | 2 +- gateway-js/CHANGELOG.md | 8 +++++ gateway-js/package.json | 8 ++--- internals-js/CHANGELOG.md | 6 ++++ internals-js/package.json | 2 +- package-lock.json | 32 +++++++++---------- query-graphs-js/CHANGELOG.md | 6 ++++ query-graphs-js/package.json | 4 +-- query-planner-js/CHANGELOG.md | 7 ++++ query-planner-js/package.json | 6 ++-- subgraph-js/CHANGELOG.md | 6 ++++ subgraph-js/package.json | 4 +-- 16 files changed, 77 insertions(+), 39 deletions(-) delete mode 100644 .changeset/tall-cats-flash.md diff --git a/.changeset/tall-cats-flash.md b/.changeset/tall-cats-flash.md deleted file mode 100644 index 62c3b8e5c..000000000 --- a/.changeset/tall-cats-flash.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@apollo/composition": patch -"@apollo/federation-internals": patch ---- - -Fixing issue where redeclaration of custom scalars in a fed1 schema may cause upgrade errors - \ No newline at end of file diff --git a/composition-js/CHANGELOG.md b/composition-js/CHANGELOG.md index a1f33397e..1e108479f 100644 --- a/composition-js/CHANGELOG.md +++ b/composition-js/CHANGELOG.md @@ -1,5 +1,15 @@ # CHANGELOG for `@apollo/composition` +## 2.5.6 +### Patch Changes + + +- Fixing issue where redeclaration of custom scalars in a fed1 schema may cause upgrade errors ([#2809](https://github.com/apollographql/federation/pull/2809)) + +- Updated dependencies [[`c719214a`](https://github.com/apollographql/federation/commit/c719214a945564e4afc4bf1610e3dcdfb3838fe1)]: + - @apollo/federation-internals@2.5.6 + - @apollo/query-graphs@2.5.6 + ## 2.5.5 ### Patch Changes diff --git a/composition-js/package.json b/composition-js/package.json index 026ec4da9..7d01c44a0 100644 --- a/composition-js/package.json +++ b/composition-js/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/composition", - "version": "2.5.5", + "version": "2.5.6", "description": "Apollo Federation composition utilities", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -27,8 +27,8 @@ "access": "public" }, "dependencies": { - "@apollo/federation-internals": "2.5.5", - "@apollo/query-graphs": "2.5.5" + "@apollo/federation-internals": "2.5.6", + "@apollo/query-graphs": "2.5.6" }, "peerDependencies": { "graphql": "^16.5.0" diff --git a/federation-integration-testsuite-js/CHANGELOG.md b/federation-integration-testsuite-js/CHANGELOG.md index 17a0f03ac..c79e7b4ec 100644 --- a/federation-integration-testsuite-js/CHANGELOG.md +++ b/federation-integration-testsuite-js/CHANGELOG.md @@ -1,5 +1,7 @@ # CHANGELOG for `federation-integration-testsuite-js` +## 2.5.6 + ## 2.5.5 ## 2.5.4 diff --git a/federation-integration-testsuite-js/package.json b/federation-integration-testsuite-js/package.json index 9f11662be..bfff2165c 100644 --- a/federation-integration-testsuite-js/package.json +++ b/federation-integration-testsuite-js/package.json @@ -1,7 +1,7 @@ { "name": "apollo-federation-integration-testsuite", "private": true, - "version": "2.5.5", + "version": "2.5.6", "description": "Apollo Federation Integrations / Test Fixtures", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/gateway-js/CHANGELOG.md b/gateway-js/CHANGELOG.md index eb0c6f9c9..2336bfa0f 100644 --- a/gateway-js/CHANGELOG.md +++ b/gateway-js/CHANGELOG.md @@ -1,5 +1,13 @@ # CHANGELOG for `@apollo/gateway` +## 2.5.6 +### Patch Changes + +- Updated dependencies [[`c719214a`](https://github.com/apollographql/federation/commit/c719214a945564e4afc4bf1610e3dcdfb3838fe1)]: + - @apollo/composition@2.5.6 + - @apollo/federation-internals@2.5.6 + - @apollo/query-planner@2.5.6 + ## 2.5.5 ### Patch Changes diff --git a/gateway-js/package.json b/gateway-js/package.json index 409aea988..dc303cd71 100644 --- a/gateway-js/package.json +++ b/gateway-js/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/gateway", - "version": "2.5.5", + "version": "2.5.6", "description": "Apollo Gateway", "author": "Apollo ", "main": "dist/index.js", @@ -25,9 +25,9 @@ "access": "public" }, "dependencies": { - "@apollo/composition": "2.5.5", - "@apollo/federation-internals": "2.5.5", - "@apollo/query-planner": "2.5.5", + "@apollo/composition": "2.5.6", + "@apollo/federation-internals": "2.5.6", + "@apollo/query-planner": "2.5.6", "@apollo/server-gateway-interface": "^1.1.0", "@apollo/usage-reporting-protobuf": "^4.1.0", "@apollo/utils.createhash": "^2.0.0", diff --git a/internals-js/CHANGELOG.md b/internals-js/CHANGELOG.md index 64db9168b..362eb4e95 100644 --- a/internals-js/CHANGELOG.md +++ b/internals-js/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG for `@apollo/federation-internals` +## 2.5.6 +### Patch Changes + + +- Fixing issue where redeclaration of custom scalars in a fed1 schema may cause upgrade errors ([#2809](https://github.com/apollographql/federation/pull/2809)) + ## 2.5.5 ## 2.5.4 diff --git a/internals-js/package.json b/internals-js/package.json index 177fe2b77..6d3c28690 100644 --- a/internals-js/package.json +++ b/internals-js/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/federation-internals", - "version": "2.5.5", + "version": "2.5.6", "description": "Apollo Federation internal utilities", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/package-lock.json b/package-lock.json index 9e7b11485..683e1315d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,11 +71,11 @@ }, "composition-js": { "name": "@apollo/composition", - "version": "2.5.5", + "version": "2.5.6", "license": "SEE LICENSE IN ./LICENSE", "dependencies": { - "@apollo/federation-internals": "2.5.5", - "@apollo/query-graphs": "2.5.5" + "@apollo/federation-internals": "2.5.6", + "@apollo/query-graphs": "2.5.6" }, "engines": { "node": ">=14.15.0" @@ -86,7 +86,7 @@ }, "federation-integration-testsuite-js": { "name": "apollo-federation-integration-testsuite", - "version": "2.5.5", + "version": "2.5.6", "license": "SEE LICENSE IN ./LICENSE", "dependencies": { "graphql-tag": "^2.12.6", @@ -95,12 +95,12 @@ }, "gateway-js": { "name": "@apollo/gateway", - "version": "2.5.5", + "version": "2.5.6", "license": "SEE LICENSE IN ./LICENSE", "dependencies": { - "@apollo/composition": "2.5.5", - "@apollo/federation-internals": "2.5.5", - "@apollo/query-planner": "2.5.5", + "@apollo/composition": "2.5.6", + "@apollo/federation-internals": "2.5.6", + "@apollo/query-planner": "2.5.6", "@apollo/server-gateway-interface": "^1.1.0", "@apollo/usage-reporting-protobuf": "^4.1.0", "@apollo/utils.createhash": "^2.0.0", @@ -126,7 +126,7 @@ }, "internals-js": { "name": "@apollo/federation-internals", - "version": "2.5.5", + "version": "2.5.6", "license": "SEE LICENSE IN ./LICENSE", "dependencies": { "@types/uuid": "^9.0.0", @@ -17755,10 +17755,10 @@ }, "query-graphs-js": { "name": "@apollo/query-graphs", - "version": "2.5.5", + "version": "2.5.6", "license": "SEE LICENSE IN ./LICENSE", "dependencies": { - "@apollo/federation-internals": "2.5.5", + "@apollo/federation-internals": "2.5.6", "deep-equal": "^2.0.5", "ts-graphviz": "^1.5.4", "uuid": "^9.0.0" @@ -17772,11 +17772,11 @@ }, "query-planner-js": { "name": "@apollo/query-planner", - "version": "2.5.5", + "version": "2.5.6", "license": "SEE LICENSE IN ./LICENSE", "dependencies": { - "@apollo/federation-internals": "2.5.5", - "@apollo/query-graphs": "2.5.5", + "@apollo/federation-internals": "2.5.6", + "@apollo/query-graphs": "2.5.6", "@apollo/utils.keyvaluecache": "^2.1.0", "chalk": "^4.1.0", "deep-equal": "^2.0.5", @@ -17805,11 +17805,11 @@ }, "subgraph-js": { "name": "@apollo/subgraph", - "version": "2.5.5", + "version": "2.5.6", "license": "MIT", "dependencies": { "@apollo/cache-control-types": "^1.0.2", - "@apollo/federation-internals": "2.5.5" + "@apollo/federation-internals": "2.5.6" }, "engines": { "node": ">=14.15.0" diff --git a/query-graphs-js/CHANGELOG.md b/query-graphs-js/CHANGELOG.md index 7d564e16d..2cf7ec9b5 100644 --- a/query-graphs-js/CHANGELOG.md +++ b/query-graphs-js/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG for `@apollo/query-graphs` +## 2.5.6 +### Patch Changes + +- Updated dependencies [[`c719214a`](https://github.com/apollographql/federation/commit/c719214a945564e4afc4bf1610e3dcdfb3838fe1)]: + - @apollo/federation-internals@2.5.6 + ## 2.5.5 ### Patch Changes diff --git a/query-graphs-js/package.json b/query-graphs-js/package.json index dda831253..88cbd9e2f 100644 --- a/query-graphs-js/package.json +++ b/query-graphs-js/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/query-graphs", - "version": "2.5.5", + "version": "2.5.6", "description": "Apollo Federation library to work with 'query graphs'", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -23,7 +23,7 @@ "node": ">=14.15.0" }, "dependencies": { - "@apollo/federation-internals": "2.5.5", + "@apollo/federation-internals": "2.5.6", "deep-equal": "^2.0.5", "ts-graphviz": "^1.5.4", "uuid": "^9.0.0" diff --git a/query-planner-js/CHANGELOG.md b/query-planner-js/CHANGELOG.md index 0ec617fb1..2e9b016df 100644 --- a/query-planner-js/CHANGELOG.md +++ b/query-planner-js/CHANGELOG.md @@ -1,5 +1,12 @@ # CHANGELOG for `@apollo/query-planner` +## 2.5.6 +### Patch Changes + +- Updated dependencies [[`c719214a`](https://github.com/apollographql/federation/commit/c719214a945564e4afc4bf1610e3dcdfb3838fe1)]: + - @apollo/federation-internals@2.5.6 + - @apollo/query-graphs@2.5.6 + ## 2.5.5 ### Patch Changes diff --git a/query-planner-js/package.json b/query-planner-js/package.json index b247402e6..2c44e946f 100644 --- a/query-planner-js/package.json +++ b/query-planner-js/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/query-planner", - "version": "2.5.5", + "version": "2.5.6", "description": "Apollo Query Planner", "author": "Apollo ", "main": "dist/index.js", @@ -25,8 +25,8 @@ "access": "public" }, "dependencies": { - "@apollo/federation-internals": "2.5.5", - "@apollo/query-graphs": "2.5.5", + "@apollo/federation-internals": "2.5.6", + "@apollo/query-graphs": "2.5.6", "@apollo/utils.keyvaluecache": "^2.1.0", "chalk": "^4.1.0", "deep-equal": "^2.0.5", diff --git a/subgraph-js/CHANGELOG.md b/subgraph-js/CHANGELOG.md index cac11d486..5427f1fca 100644 --- a/subgraph-js/CHANGELOG.md +++ b/subgraph-js/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG for `@apollo/subgraph` +## 2.5.6 +### Patch Changes + +- Updated dependencies [[`c719214a`](https://github.com/apollographql/federation/commit/c719214a945564e4afc4bf1610e3dcdfb3838fe1)]: + - @apollo/federation-internals@2.5.6 + ## 2.5.5 ### Patch Changes diff --git a/subgraph-js/package.json b/subgraph-js/package.json index b84e5888e..3af4c1b1d 100644 --- a/subgraph-js/package.json +++ b/subgraph-js/package.json @@ -1,6 +1,6 @@ { "name": "@apollo/subgraph", - "version": "2.5.5", + "version": "2.5.6", "description": "Apollo Subgraph Utilities", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -25,7 +25,7 @@ }, "dependencies": { "@apollo/cache-control-types": "^1.0.2", - "@apollo/federation-internals": "2.5.5" + "@apollo/federation-internals": "2.5.6" }, "peerDependencies": { "graphql": "^16.5.0" From f5cb250fa5683f6a4aaa216f13de3f34d80b588b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 10:35:52 +0000 Subject: [PATCH 05/21] chore(deps): update all non-major dependencies (#2821) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 23 ++++++++++++----------- package.json | 6 +++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 683e1315d..1dd37ff7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "jest-junit": "16.0.0", "log4js": "6.9.1", "mocked-env": "1.3.5", - "nock": "13.3.3", + "nock": "13.3.4", "node-fetch": "2.7.0", "prettier": "3.0.3", "prettier-2": "npm:prettier@2.8.8", @@ -62,7 +62,7 @@ "ts-node": "10.9.1", "typescript": "5.2.2", "winston": "3.11.0", - "winston-transport": "4.5.0" + "winston-transport": "4.6.0" }, "engines": { "node": ">=14.15.0", @@ -4506,9 +4506,9 @@ } }, "node_modules/@whatwg-node/fetch/node_modules/@types/node": { - "version": "18.18.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.4.tgz", - "integrity": "sha512-t3rNFBgJRugIhackit2mVcLfF6IRc0JE4oeizPQL8Zrm8n2WY/0wOdpOPhdtG0V9Q2TlW/axbF1MJ6z+Yj/kKQ==", + "version": "18.18.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.5.tgz", + "integrity": "sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A==", "dev": true, "peer": true }, @@ -13631,9 +13631,9 @@ } }, "node_modules/nock": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.3.tgz", - "integrity": "sha512-z+KUlILy9SK/RjpeXDiDUEAq4T94ADPHE3qaRkf66mpEhzc/ytOMm3Bwdrbq6k1tMWkbdujiKim3G2tfQARuJw==", + "version": "13.3.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.4.tgz", + "integrity": "sha512-DDpmn5oLEdCTclEqweOT4U7bEpuoifBMFUXem9sA4turDAZ5tlbrEoWqCorwXey8CaAw44mst5JOQeVNiwtkhw==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -17551,16 +17551,17 @@ } }, "node_modules/winston-transport": { - "version": "4.5.0", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", "dev": true, - "license": "MIT", "dependencies": { "logform": "^2.3.2", "readable-stream": "^3.6.0", "triple-beam": "^1.3.0" }, "engines": { - "node": ">= 6.4.0" + "node": ">= 12.0.0" } }, "node_modules/winston/node_modules/@colors/colors": { diff --git a/package.json b/package.json index dbea753b8..908ed10a7 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "jest-junit": "16.0.0", "log4js": "6.9.1", "mocked-env": "1.3.5", - "nock": "13.3.3", + "nock": "13.3.4", "node-fetch": "2.7.0", "prettier": "3.0.3", "prettier-2": "npm:prettier@2.8.8", @@ -94,7 +94,7 @@ "ts-node": "10.9.1", "typescript": "5.2.2", "winston": "3.11.0", - "winston-transport": "4.5.0" + "winston-transport": "4.6.0" }, "jest": { "projects": [ @@ -107,7 +107,7 @@ ] }, "volta": { - "node": "18.18.0", + "node": "18.18.2", "npm": "10.1.0" } } From ebd50c09aa714fbc3e29690c03e918db1cae25a2 Mon Sep 17 00:00:00 2001 From: Dariusz Kuc <9501705+dariuszkuc@users.noreply.github.com> Date: Mon, 16 Oct 2023 13:38:20 -0500 Subject: [PATCH 06/21] docs: update fed subgraph support with latest results (#2823) --- .../supported-subgraphs.md | 59 +++++++++---------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/docs/source/building-supergraphs/supported-subgraphs.md b/docs/source/building-supergraphs/supported-subgraphs.md index 8a85c0375..36e9aa3e4 100644 --- a/docs/source/building-supergraphs/supported-subgraphs.md +++ b/docs/source/building-supergraphs/supported-subgraphs.md @@ -25,12 +25,11 @@ The following open-source GraphQL server libraries and hosted solutions support Ballerina GraphQL Module A spec-compliant, production-ready, Standard Library module for building and interacting with GraphQL APIs using Ballerina.

Github: ballerina-platform/module-ballerina-graphql
Type: Code first
-Stars: 83 ⭐
-Last Release: 2023-06-30

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🔲
@provides🔲
federated tracing🔲
@link🟢
@shareable🔲
@tag🔲
@override🔲
@inaccessible🔲
@composeDirective🔲
@interfaceObject🔲
+Stars: 91 ⭐
+Last Release: 2023-09-18

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🔲
@provides🔲
federated tracing🔲
@link🟢
@shareable🔲
@tag🔲
@override🔲
@inaccessible🔲
@composeDirective🔲
@interfaceObject🔲
- ## C# / .NET @@ -46,8 +45,8 @@ Last Release: 2023-08-11

+Stars: 9.2k ⭐
+Last Release: 2023-10-05

+Last Release: 2023-10-04

Core Library: GraphQL.js
Federation Library: Apollo Subgraph
+Stars: 7.8k ⭐
+Last Release: 2023-09-28

Core Library: GraphQL.js
Federation Library: Apollo Subgraph
+Stars: 2.1k ⭐
+Last Release: 2023-10-05

Core Library: GraphQL.js
+Stars: 4.7k ⭐
+Last Release: 2023-10-13

Federation Library: apollographql/federation-hotchocolate
_service<
Hot Chocolate
Open-source GraphQL server for the Microsoft .NET platform that takes the complexity away and lets you focus on delivering the next big thing.

Github: ChilliCream/graphql-platform
Type: Code first | SDL first
-Stars: 4.6k ⭐
-Last Release: 2023-08-25

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🔲
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link
@shareable🔲
@tag🔲
@override🔲
@inaccessible🔲
@composeDirective🔲
@interfaceObject🔲
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🔲
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
@@ -61,7 +60,7 @@ Last Release: 2023-08-25

_service<
Absinthe
The GraphQL toolkit for Elixir

Github: absinthe-graphql/absinthe
Type: Code first
-Stars: 4.1k ⭐
+Stars: 4.2k ⭐
Last Release: 2021-09-28

Federation Library: DivvyPayHQ/absinthe_federation
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
@@ -76,8 +75,8 @@ Last Release: 2021-09-28

Federation Library: gqlgen
go generate based graphql server library

Github: 99designs/gqlgen
Type: SDL first
-Stars: 9.1k ⭐
-Last Release: 2023-07-27

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🔲
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🔲
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
GraphQL Go (fork)
This is a fork of graphql-go/graphql that adds Federation support

Github: dariuszkuc/graphql
Type: Code first
@@ -96,8 +95,8 @@ Last Release: 2022-11-11

+Stars: 2.8k ⭐
+Last Release: 2023-10-12

Core Library: GraphQL Java
Federation Library: apollographql/federation-jvm
+Stars: 1.7k ⭐
+Last Release: 2023-09-21

Core Library: GraphQL Java
+Last Release: 2023-09-19

Core Library: GraphQL Java
Federation Library: apollographql/federation-jvm
_service<
dgs-framework
GraphQL for Java with Spring Boot made easy.

Github: netflix/dgs-framework
Type: SDL first
-Stars: 2.7k ⭐
-Last Release: 2023-07-27

Core Library: GraphQL Java
Federation Library: apollographql/federation-jvm
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
GraphQL Java Kickstart (Spring Boot)
GraphQL and GraphiQL Spring Framework Boot Starters - Forked from oembedler/graphql-spring-boot due to inactivity.

Github: graphql-java-kickstart/graphql-spring-boot
Type: SDL first
@@ -106,13 +105,13 @@ Last Release: 2022-12-05

Core Library: GraphQL Kotlin
Libraries for running GraphQL in Kotlin

Github: ExpediaGroup/graphql-kotlin
Type: Code first
-Stars: 1.6k ⭐
-Last Release: 2023-06-19

Core Library: GraphQL Java
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
Spring GraphQL
Spring Integration for GraphQL

Github: spring-projects/spring-graphql
Type: SDL first
Stars: 1.4k ⭐
-Last Release: 2023-07-18

Core Library: GraphQL Java
Federation Library: apollographql/federation-jvm
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
@@ -127,7 +126,7 @@ Last Release: 2023-07-18

Core Library: apollographql/apollo-server
Type: SDL first
Stars: 13.5k ⭐
-Last Release: 2023-08-24

Core Library: GraphQL.js
Federation Library: Apollo Subgraph
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
express-graphql
Create a GraphQL HTTP server with Express.

Github: graphql/express-graphql
Type: SDL first
@@ -136,12 +135,12 @@ Last Release: 2020-11-19

Core Library: GraphQL Yoga
The fully-featured GraphQL server with focus on easy setup, performance and great developer experience.

Github: dotansimha/graphql-yoga
Type: SDL first
-Stars: 7.7k ⭐
-Last Release: 2023-08-22

Core Library: GraphQL.js
Federation Library: Apollo Subgraph
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
GraphQL Helix
A highly evolved and framework-agnostic GraphQL HTTP server.

Github: contra/graphql-helix
Type: SDL first
-Stars: 822 ⭐
+Stars: 828 ⭐
Last Release: 2022-07-09

Core Library: GraphQL.js
Federation Library: Apollo Subgraph
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
Mercurius
Implement GraphQL servers and gateways with Fastify

Github: mercurius-js/mercurius
@@ -161,8 +160,8 @@ Last Release: 2023-06-16

Core Library: Pothos GraphQL
Plugin based GraphQL schema builder that makes building graphql schemas with TypeScript easy, fast and enjoyable.

Github: hayes/pothos
Type: Code first
-Stars: 2.0k ⭐
-Last Release: 2023-08-11

Core Library: GraphQL.js
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
@@ -177,12 +176,12 @@ Last Release: 2023-08-11

Core Library: nuwave/lighthouse
Type: SDL first
Stars: 3.2k ⭐
-Last Release: 2023-08-04

Core Library: webonyx/graphql-php
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link
@shareable🔲
@tag🔲
@override🔲
@inaccessible🔲
@composeDirective🔲
@interfaceObject🔲
+Last Release: 2023-10-06

Core Library: webonyx/graphql-php
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link
@shareable🔲
@tag🔲
@override🔲
@inaccessible🔲
@composeDirective🔲
@interfaceObject🔲
GraphQL PHP PHP implementation of the GraphQL specification based on the reference implementation in JavaScript

Github: webonyx/graphql-php
Type: Code first
Stars: 4.5k ⭐
-Last Release: 2023-08-08

Federation Library: Skillshare/apollo-federation-php
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link
@shareable🔲
@tag🔲
@override🔲
@inaccessible🔲
@composeDirective🔲
@interfaceObject🔲
+Last Release: 2023-10-04

Federation Library: Skillshare/apollo-federation-php
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link
@shareable🔲
@tag🔲
@override🔲
@inaccessible🔲
@composeDirective🔲
@interfaceObject🔲
@@ -206,8 +205,8 @@ Last Release: 2023-07-26

Core Library: Strawberry A GraphQL library for Python that leverages type annotations 🍓

Github: strawberry-graphql/strawberry
Type: Code first
-Stars: 3.4k ⭐
-Last Release: 2023-08-24

Core Library: GraphQL-core 3
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
+Stars: 3.5k ⭐
+Last Release: 2023-10-07

Core Library: GraphQL-core 3
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
@@ -251,13 +250,13 @@ Last Release: 2022-11-28

+Stars: 887 ⭐
+Last Release: 2023-09-10

+Last Release: 2023-09-12

Federation Library: sangria-graphql/sangria-federated
_service<
Caliban
Functional GraphQL library for Scala

Github: ghostdogpr/caliban
Type: Code first
-Stars: 880 ⭐
-Last Release: 2023-08-06

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🔲
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🔲
@key (composite)🔲
repeatable @key🔲
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
Sangria
Scala GraphQL implementation

Github: sangria-graphql/sangria
Type: Code first
Stars: 2.0k ⭐
-Last Release: 2023-06-20

Federation Library: sangria-graphql/sangria-federated
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
@@ -271,7 +270,7 @@ Last Release: 2023-06-20

Federation Library: Graphiti The Swift GraphQL Schema framework for macOS and Linux

Github: GraphQLSwift/Graphiti
Type: SDL first
-Stars: 507 ⭐
+Stars: 509 ⭐
Last Release: 2023-07-31

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
@@ -291,12 +290,12 @@ Last Release: 2023-07-31

+Last Release: 2023-10-12

+Stars: 455 ⭐
+Last Release: 2023-10-12

Core Library: GraphQL.js
Federation Library: Apollo Subgraph
From 807a5c7f6a012befd8f007d9f2a63accda9967d7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 13:02:12 -0700 Subject: [PATCH 07/21] chore(deps): update dependency @apollo/client to v3.8.6 (#2824) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1dd37ff7b..5dbc66ff2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ ], "devDependencies": { "@apollo/cache-control-types": "1.0.3", - "@apollo/client": "3.8.5", + "@apollo/client": "3.8.6", "@apollo/server": "4.9.4", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", @@ -198,9 +198,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.5.tgz", - "integrity": "sha512-/ueWC3f1pFeH+tWbM1phz6pzUGGijyml6oQ+LKUcQzpXF6tVFPrb6oUIUQCbZpr6Xmv/dtNiFDohc39ra7Solg==", + "version": "3.8.6", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.6.tgz", + "integrity": "sha512-FnHg3vhQP8tQzgBs6oTJCFFIbovelDGYujj6MK7CJneiHf62TJstCIO0Ot4A1h7XrgFEtgl8a/OgajQWqrTuYw==", "dev": true, "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", diff --git a/package.json b/package.json index 908ed10a7..fc87b9a11 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ ], "devDependencies": { "@apollo/cache-control-types": "1.0.3", - "@apollo/client": "3.8.5", + "@apollo/client": "3.8.6", "@apollo/server": "4.9.4", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", From a4958a676f11e2d42ec5d1e7c0715a02b992f849 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 13:07:11 -0700 Subject: [PATCH 08/21] Bump @babel/traverse from 7.21.3 to 7.23.2 (#2826) Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.3 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 112 ++++++++++++++++++++++++++-------------------- 1 file changed, 63 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5dbc66ff2..5fbe49b0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -588,11 +588,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -645,11 +647,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.3", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.21.3", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -726,31 +729,34 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -854,28 +860,31 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -902,12 +911,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.18.6", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -915,9 +925,10 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.3", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -1461,31 +1472,33 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1494,12 +1507,13 @@ } }, "node_modules/@babel/types": { - "version": "7.21.3", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { From 7abc4f9df28e3ec6fa6839f12381b6e4eb310bdb Mon Sep 17 00:00:00 2001 From: Dariusz Kuc <9501705+dariuszkuc@users.noreply.github.com> Date: Wed, 18 Oct 2023 00:28:49 -0500 Subject: [PATCH 09/21] docs: update hotchocolate results (#2828) --- docs/source/building-supergraphs/supported-subgraphs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/building-supergraphs/supported-subgraphs.md b/docs/source/building-supergraphs/supported-subgraphs.md index 36e9aa3e4..32009a51f 100644 --- a/docs/source/building-supergraphs/supported-subgraphs.md +++ b/docs/source/building-supergraphs/supported-subgraphs.md @@ -46,7 +46,7 @@ Last Release: 2023-08-11

_service<
Executable GraphQL schema from multiple data sources, query anything, run anywhere.

Github: Urigo/graphql-mesh
Type: undefined
Stars: 3.0k ⭐
-Last Release: 2023-08-24

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
Neo4J Graph Database
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations.

Github: neo4j/graphql
Type: Code first | SDL first
-Stars: 445 ⭐
-Last Release: 2023-08-22

Core Library: GraphQL.js
Federation Library: Apollo Subgraph
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🟢
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
StepZen, an IBM Company
Build GraphQL APIs for all your data in a declarative way. Federate across any data source, including GraphQL.

_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🔲
repeatable @key🔲
@requires🟢
@provides🔲
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🔲
@interfaceObject🔲
+Last Release: 2023-10-13

Federation Library: apollographql/federation-hotchocolate
_service<
Open-source GraphQL server for the Microsoft .NET platform that takes the complexity away and lets you focus on delivering the next big thing.

Github: ChilliCream/graphql-platform
Type: Code first | SDL first
Stars: 4.7k ⭐
-Last Release: 2023-10-13

Federation Library: apollographql/federation-hotchocolate
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🔲
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
_service🟢
@key (single)🟢
@key (multi)🟢
@key (composite)🟢
repeatable @key🟢
@requires🟢
@provides🟢
federated tracing🔲
@link🟢
@shareable🟢
@tag🟢
@override🟢
@inaccessible🟢
@composeDirective🟢
@interfaceObject🟢
From 8f8036c7e4d983036ad32228518a88fe352cb65c Mon Sep 17 00:00:00 2001 From: Matt Peake <7741049+peakematt@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:53:28 -0400 Subject: [PATCH 10/21] SECOPS-2268: Add Gitleaks to CI (#2817) --- .circleci/config.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 16f8769d9..ba7a30bce 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,6 +2,7 @@ version: 2.1 orbs: node: circleci/node@5.1.0 + secops: apollo/circleci-secops-orb@2.0.1 jobs: # Unfortunately cimg/node doesn't tag its images with major only, you have to specify a minor version. @@ -58,3 +59,12 @@ workflows: - node/run: name: Check Prettier (tests) npm-run: prettier:check + security-scans: + jobs: + - secops/gitleaks: + context: + - platform-docker-ro + - github-orb + - secops-oidc + git-base-revision: <<#pipeline.git.base_revision>><><> + git-revision: << pipeline.git.revision >> From 23c1c942d44f8b50892aa6dace4884d214f86f55 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 16:03:18 -0700 Subject: [PATCH 11/21] chore(deps): update dependency npm to v10.2.0 (#2815) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fc87b9a11..408c9a95b 100644 --- a/package.json +++ b/package.json @@ -108,6 +108,6 @@ }, "volta": { "node": "18.18.2", - "npm": "10.1.0" + "npm": "10.2.0" } } From 95c7a4449639ca409182a4ebcc79fcb31eacd7a7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 21 Oct 2023 12:35:26 +0000 Subject: [PATCH 12/21] chore(deps): update all non-major dependencies (#2831) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 108 +++++++++++++++++++++++----------------------- package.json | 16 +++---- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5fbe49b0e..5c2b09c76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,17 +28,17 @@ "@josephg/resolvable": "1.0.1", "@opentelemetry/node": "0.24.0", "@svitejs/changesets-changelog-github-compact": "1.1.0", - "@types/async-retry": "1.4.6", - "@types/bunyan": "1.8.9", - "@types/deep-equal": "1.0.2", - "@types/jest": "29.5.5", - "@types/js-levenshtein": "1.1.1", + "@types/async-retry": "1.4.7", + "@types/bunyan": "1.8.10", + "@types/deep-equal": "1.0.3", + "@types/jest": "29.5.6", + "@types/js-levenshtein": "1.1.2", "@types/loglevel": "1.5.4", "@types/make-fetch-happen": "10.0.2", "@types/nock": "10.0.3", "@types/node": "14.18.63", - "@types/node-fetch": "2.6.6", - "@types/uuid": "9.0.5", + "@types/node-fetch": "2.6.7", + "@types/uuid": "9.0.6", "@typescript-eslint/eslint-plugin": "5.62.0", "bunyan": "1.8.15", "codecov": "3.8.3", @@ -52,7 +52,7 @@ "jest-junit": "16.0.0", "log4js": "6.9.1", "mocked-env": "1.3.5", - "nock": "13.3.4", + "nock": "13.3.6", "node-fetch": "2.7.0", "prettier": "3.0.3", "prettier-2": "npm:prettier@2.8.8", @@ -3412,9 +3412,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -3822,9 +3822,9 @@ "license": "MIT" }, "node_modules/@types/async-retry": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.6.tgz", - "integrity": "sha512-or8JPgYUtyPpO0ddHImwUWmSjVE/UalxgMm2d0r3698QhjzlM7eke0PT60bOxs1NG7HxU232RQ1vy1iQKGGRTw==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.7.tgz", + "integrity": "sha512-4NH5wuf9x7LZWD23/knI6RBywD1qCmLm7wNaqq0riy7hdDrCGGfkPOUvx0Cb78lVrFrEnCvocoL8+UcvSQlBDw==", "dev": true, "dependencies": { "@types/retry": "*" @@ -3877,9 +3877,9 @@ } }, "node_modules/@types/bunyan": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", - "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.10.tgz", + "integrity": "sha512-A82U/3EAdWX89f+dfysGiRvbeoLuRLV3i6SLg3HuNK4Yf+dHOqdbxT70vQUwvD3DOr2Dvpcv9dRX4ipTf0LpEg==", "dev": true, "dependencies": { "@types/node": "*" @@ -3894,9 +3894,9 @@ } }, "node_modules/@types/deep-equal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.2.tgz", - "integrity": "sha512-pjMMQWhqEKL/rxzUWQKpnbM2oFhRIx4kJ/7mH7MtbJWOA0yrZK0h4WA+RgKa70IHS9amWT7+jvmVmEcL2nXm3A==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.3.tgz", + "integrity": "sha512-xP1pB67eLrRdMLKpXUXhYN/3uiJN1gNalcVOSY5kdJbxhGuZTTE8awSWOD9LCJDzQZVsuZZcnMMLRrbf+nOUSQ==", "dev": true }, "node_modules/@types/express": { @@ -3967,9 +3967,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.5", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", - "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", + "version": "29.5.6", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.6.tgz", + "integrity": "sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -3977,9 +3977,10 @@ } }, "node_modules/@types/js-levenshtein": { - "version": "1.1.1", - "dev": true, - "license": "MIT" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.2.tgz", + "integrity": "sha512-/NCbMABw2uacuyE16Iwka1EzREDD50/W2ggRBad0y1WHBvAkvR9OEINxModVY7D428gXBe0igeVX7bUc9GaslQ==", + "dev": true }, "node_modules/@types/js-yaml": { "version": "4.0.5", @@ -4046,9 +4047,9 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, "node_modules/@types/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-lX17GZVpJ/fuCjguZ5b3TjEbSENxmEk1B2z02yoXSK9WMEWRivhdSY73wWMn6bpcCDAOh6qAdktpKHIlkDk2lg==", "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -4131,9 +4132,9 @@ "license": "MIT" }, "node_modules/@types/uuid": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.5.tgz", - "integrity": "sha512-xfHdwa1FMJ082prjSJpoEI57GZITiQz10r3vEJCHa2khEFQjKy91aWKz6+zybzssCvXUwE1LQWgWVwZ4nYUvHQ==" + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.6.tgz", + "integrity": "sha512-BT2Krtx4xaO6iwzwMFUYvWBWkV2pr37zD68Vmp1CDV196MzczBRxuEpD6Pr395HAgebC/co7hOphs53r8V7jew==" }, "node_modules/@types/ws": { "version": "8.5.4", @@ -4144,9 +4145,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.28", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.28.tgz", - "integrity": "sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==", + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", + "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -4520,9 +4521,9 @@ } }, "node_modules/@whatwg-node/fetch/node_modules/@types/node": { - "version": "18.18.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.5.tgz", - "integrity": "sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A==", + "version": "18.18.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz", + "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==", "dev": true, "peer": true }, @@ -6586,9 +6587,9 @@ } }, "node_modules/cucumber-messages/node_modules/@types/uuid": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.11.tgz", - "integrity": "sha512-CJNkbEu4IdVuBMRVaNC2GjASgJK7ziqDlVXWuJ1pvhOLADl7nzxhTKjHRdOmo2SuXuygcWBmzgYgn9foTX0UiA==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.12.tgz", + "integrity": "sha512-4mZWvs9415R6KNlPUZaMDgpnNpFZrO7yZoFfVc6phuOpnUlU06KGu4+83e857jfWkYBMNVZF/1HDoG/aEbePow==", "dev": true }, "node_modules/cucumber-messages/node_modules/uuid": { @@ -10180,9 +10181,9 @@ "license": "MIT" }, "node_modules/jest-cucumber/node_modules/@types/yargs": { - "version": "15.0.16", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.16.tgz", - "integrity": "sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==", + "version": "15.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.17.tgz", + "integrity": "sha512-cj53I8GUcWJIgWVTSVe2L7NJAB5XWGdsoMosVvUgv1jEnMbAcsbaCzt1coUcyi8Sda5PgTWAooG8jNyDTD+CWA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -11069,9 +11070,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/@types/yargs": { - "version": "15.0.16", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.16.tgz", - "integrity": "sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==", + "version": "15.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.17.tgz", + "integrity": "sha512-cj53I8GUcWJIgWVTSVe2L7NJAB5XWGdsoMosVvUgv1jEnMbAcsbaCzt1coUcyi8Sda5PgTWAooG8jNyDTD+CWA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -11411,9 +11412,9 @@ } }, "node_modules/jest-jasmine2/node_modules/@types/yargs": { - "version": "15.0.16", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.16.tgz", - "integrity": "sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==", + "version": "15.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.17.tgz", + "integrity": "sha512-cj53I8GUcWJIgWVTSVe2L7NJAB5XWGdsoMosVvUgv1jEnMbAcsbaCzt1coUcyi8Sda5PgTWAooG8jNyDTD+CWA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -13645,14 +13646,13 @@ } }, "node_modules/nock": { - "version": "13.3.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.4.tgz", - "integrity": "sha512-DDpmn5oLEdCTclEqweOT4U7bEpuoifBMFUXem9sA4turDAZ5tlbrEoWqCorwXey8CaAw44mst5JOQeVNiwtkhw==", + "version": "13.3.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.6.tgz", + "integrity": "sha512-lT6YuktKroUFM+27mubf2uqQZVy2Jf+pfGzuh9N6VwdHlFoZqvi4zyxFTVR1w/ChPqGY6yxGehHp6C3wqCASCw==", "dev": true, "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", "propagate": "^2.0.0" }, "engines": { diff --git a/package.json b/package.json index 408c9a95b..1355fab2c 100644 --- a/package.json +++ b/package.json @@ -60,17 +60,17 @@ "@josephg/resolvable": "1.0.1", "@opentelemetry/node": "0.24.0", "@svitejs/changesets-changelog-github-compact": "1.1.0", - "@types/async-retry": "1.4.6", - "@types/bunyan": "1.8.9", - "@types/deep-equal": "1.0.2", - "@types/jest": "29.5.5", - "@types/js-levenshtein": "1.1.1", + "@types/async-retry": "1.4.7", + "@types/bunyan": "1.8.10", + "@types/deep-equal": "1.0.3", + "@types/jest": "29.5.6", + "@types/js-levenshtein": "1.1.2", "@types/loglevel": "1.5.4", "@types/make-fetch-happen": "10.0.2", "@types/nock": "10.0.3", "@types/node": "14.18.63", - "@types/node-fetch": "2.6.6", - "@types/uuid": "9.0.5", + "@types/node-fetch": "2.6.7", + "@types/uuid": "9.0.6", "@typescript-eslint/eslint-plugin": "5.62.0", "bunyan": "1.8.15", "codecov": "3.8.3", @@ -84,7 +84,7 @@ "jest-junit": "16.0.0", "log4js": "6.9.1", "mocked-env": "1.3.5", - "nock": "13.3.4", + "nock": "13.3.6", "node-fetch": "2.7.0", "prettier": "3.0.3", "prettier-2": "npm:prettier@2.8.8", From fa697206752d50da67035951eecd0edaeef1be81 Mon Sep 17 00:00:00 2001 From: Dylan Anthony Date: Thu, 26 Oct 2023 14:59:16 -0600 Subject: [PATCH 13/21] Remove invalid advice about omitting fields from `@shareable` types --- docs/source/federated-types/sharing-types.mdx | 30 ++----------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/docs/source/federated-types/sharing-types.mdx b/docs/source/federated-types/sharing-types.mdx index 683b8f109..2dfefa459 100644 --- a/docs/source/federated-types/sharing-types.mdx +++ b/docs/source/federated-types/sharing-types.mdx @@ -137,35 +137,9 @@ To make `Position.z` shareable, you can do one of the following: ## Differing shared fields -Shared fields can differ between subgraphs in specific ways: -* The return type of a shared field can vary in nullability (`String` / `String!`). - * A shared field's return type _can't_ vary in its core type (`Int` vs. `String`) or in whether it returns a list (`Int` vs. `[Int]`). -* A field can be omitted from a subgraph, _if_ that field is always [resolvable](../federated-types/composition/#rules-of-composition). +The type of a shared field can vary in nullability (`String` / `String!`), but _can't_ vary in its core type (`Int` vs. `String`) or in whether it returns a list (`Int` vs. `[Int]`). Shareable value types must also have the same fields in _every_ subgraph that defines them. -For example, take a look at the shared `Food` type below: - - - -```graphql {3} title="Subgraph A" -type Food @shareable { - name: String! - price: Int! -} -``` - -```graphql {3-4} title="Subgraph B" -type Food @shareable { - name: String! - price: Int # Nullable - inStock: Boolean! # Not in A -} -``` - -<> - - - -The above `Food` types differ in the nullability of their fields _and_ the fields included in each type. +> To contribute different fields from different subgraphs, you can use [entity types](../entities) instead of shareable value types. ### Return types From 55bc96a369828b5be332d4851d4bd52e9058f19e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 03:09:57 +0000 Subject: [PATCH 14/21] chore(deps): update dependency @apollo/server to v4.9.5 (#2840) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 75 ++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 53 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5c2b09c76..4da78a006 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "devDependencies": { "@apollo/cache-control-types": "1.0.3", "@apollo/client": "3.8.6", - "@apollo/server": "4.9.4", + "@apollo/server": "4.9.5", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", "@changesets/cli": "2.26.2", @@ -283,9 +283,9 @@ "link": true }, "node_modules/@apollo/server": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@apollo/server/-/server-4.9.4.tgz", - "integrity": "sha512-lopNDM3sZerTcYH/P85QX5HqSNV4HoVbtX3zOrf0ak7eplhPDiGVyF0jQWRbL64znG6KXW+nMuLDTyFTMQnvgA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@apollo/server/-/server-4.9.5.tgz", + "integrity": "sha512-eDBfArYbZaTm1AGa82M1aL7lOscVhnZsH85+OWmHMIR98qntzEjNpWpQPYDTru63Qxs4kHcY29NUx/kMGZfGEA==", "dev": true, "dependencies": { "@apollo/cache-control-types": "^1.0.3", @@ -4521,11 +4521,14 @@ } }, "node_modules/@whatwg-node/fetch/node_modules/@types/node": { - "version": "18.18.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz", - "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==", + "version": "18.18.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.7.tgz", + "integrity": "sha512-bw+lEsxis6eqJYW8Ql6+yTqkE6RuFtsQPSe5JxXbqYRFQEER5aJA9a5UH9igqDWm3X4iLHIKOHlnAXLM4mi7uQ==", "dev": true, - "peer": true + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@whatwg-node/fetch/node_modules/@whatwg-node/node-fetch": { "version": "0.3.2", @@ -4596,9 +4599,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.1.tgz", + "integrity": "sha512-IJTNCJMRHfRfb8un89z1QtS0x890C2QUrUxFMK8zy+RizcId6mfnqOf68Bu9YkDgpLYuvCm6aYbwDatXVZPjMQ==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4645,9 +4648,10 @@ } }, "node_modules/acorn-walk": { - "version": "8.2.0", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -8239,8 +8243,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -8767,6 +8775,18 @@ "node": ">=0.10.0" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/header-case": { "version": "2.0.4", "dev": true, @@ -9100,14 +9120,15 @@ } }, "node_modules/is-accessor-descriptor": { - "version": "1.0.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, - "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/is-arguments": { @@ -9203,14 +9224,15 @@ } }, "node_modules/is-data-descriptor": { - "version": "1.0.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, - "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-date-object": { @@ -17064,6 +17086,13 @@ "node": ">=0.10.0" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "peer": true + }, "node_modules/union-value": { "version": "1.0.1", "dev": true, diff --git a/package.json b/package.json index 1355fab2c..ec788d7e2 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "devDependencies": { "@apollo/cache-control-types": "1.0.3", "@apollo/client": "3.8.6", - "@apollo/server": "4.9.4", + "@apollo/server": "4.9.5", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", "@changesets/cli": "2.26.2", From 3d908cfa75b0a90e09516c8e7422164ff5e29e00 Mon Sep 17 00:00:00 2001 From: Dylan Anthony Date: Mon, 30 Oct 2023 11:02:40 -0600 Subject: [PATCH 15/21] Update docs/source/federated-types/sharing-types.mdx Co-authored-by: Maria Elisabeth Schreiber --- docs/source/federated-types/sharing-types.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/federated-types/sharing-types.mdx b/docs/source/federated-types/sharing-types.mdx index 2dfefa459..0896f3724 100644 --- a/docs/source/federated-types/sharing-types.mdx +++ b/docs/source/federated-types/sharing-types.mdx @@ -137,7 +137,8 @@ To make `Position.z` shareable, you can do one of the following: ## Differing shared fields -The type of a shared field can vary in nullability (`String` / `String!`), but _can't_ vary in its core type (`Int` vs. `String`) or in whether it returns a list (`Int` vs. `[Int]`). Shareable value types must also have the same fields in _every_ subgraph that defines them. +Shared fields can only differ in their [return types](#return-types) and [arguments](#arguments) in specific ways. +If fields you want to share between subgraphs differ more than is permitted, use [entities](../entities) instead of shareable value types. > To contribute different fields from different subgraphs, you can use [entity types](../entities) instead of shareable value types. From 79dfc3ae8ec2c8b08509024d282ddee96a829c03 Mon Sep 17 00:00:00 2001 From: Dylan Anthony Date: Mon, 30 Oct 2023 11:02:48 -0600 Subject: [PATCH 16/21] Update docs/source/federated-types/sharing-types.mdx Co-authored-by: Maria Elisabeth Schreiber --- docs/source/federated-types/sharing-types.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/source/federated-types/sharing-types.mdx b/docs/source/federated-types/sharing-types.mdx index 0896f3724..d48c868da 100644 --- a/docs/source/federated-types/sharing-types.mdx +++ b/docs/source/federated-types/sharing-types.mdx @@ -140,7 +140,6 @@ To make `Position.z` shareable, you can do one of the following: Shared fields can only differ in their [return types](#return-types) and [arguments](#arguments) in specific ways. If fields you want to share between subgraphs differ more than is permitted, use [entities](../entities) instead of shareable value types. -> To contribute different fields from different subgraphs, you can use [entity types](../entities) instead of shareable value types. ### Return types From 38657b66314fa46267863611fe998752e3d90b40 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 21:12:26 -0500 Subject: [PATCH 17/21] chore(deps): update all non-major dependencies (#2843) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 56 +++++++++++++++++++++++------------------------ package.json | 14 ++++++------ 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4da78a006..0b61938fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ ], "devDependencies": { "@apollo/cache-control-types": "1.0.3", - "@apollo/client": "3.8.6", + "@apollo/client": "3.8.7", "@apollo/server": "4.9.5", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", @@ -28,16 +28,16 @@ "@josephg/resolvable": "1.0.1", "@opentelemetry/node": "0.24.0", "@svitejs/changesets-changelog-github-compact": "1.1.0", - "@types/async-retry": "1.4.7", - "@types/bunyan": "1.8.10", - "@types/deep-equal": "1.0.3", - "@types/jest": "29.5.6", + "@types/async-retry": "1.4.8", + "@types/bunyan": "1.8.11", + "@types/deep-equal": "1.0.4", + "@types/jest": "29.5.7", "@types/js-levenshtein": "1.1.2", "@types/loglevel": "1.5.4", "@types/make-fetch-happen": "10.0.2", "@types/nock": "10.0.3", "@types/node": "14.18.63", - "@types/node-fetch": "2.6.7", + "@types/node-fetch": "2.6.8", "@types/uuid": "9.0.6", "@typescript-eslint/eslint-plugin": "5.62.0", "bunyan": "1.8.15", @@ -52,7 +52,7 @@ "jest-junit": "16.0.0", "log4js": "6.9.1", "mocked-env": "1.3.5", - "nock": "13.3.6", + "nock": "13.3.8", "node-fetch": "2.7.0", "prettier": "3.0.3", "prettier-2": "npm:prettier@2.8.8", @@ -198,9 +198,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.6.tgz", - "integrity": "sha512-FnHg3vhQP8tQzgBs6oTJCFFIbovelDGYujj6MK7CJneiHf62TJstCIO0Ot4A1h7XrgFEtgl8a/OgajQWqrTuYw==", + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.7.tgz", + "integrity": "sha512-DnQtFkQrCyxHTSa9gR84YRLmU/al6HeXcLZazVe+VxKBmx/Hj4rV8xWtzfWYX5ijartsqDR7SJgV037MATEecA==", "dev": true, "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", @@ -3822,9 +3822,9 @@ "license": "MIT" }, "node_modules/@types/async-retry": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.7.tgz", - "integrity": "sha512-4NH5wuf9x7LZWD23/knI6RBywD1qCmLm7wNaqq0riy7hdDrCGGfkPOUvx0Cb78lVrFrEnCvocoL8+UcvSQlBDw==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@types/async-retry/-/async-retry-1.4.8.tgz", + "integrity": "sha512-Qup/B5PWLe86yI5I3av6ePGaeQrIHNKCwbsQotD6aHQ6YkHsMUxVZkZsmx/Ry3VZQ6uysHwTjQ7666+k6UjVJA==", "dev": true, "dependencies": { "@types/retry": "*" @@ -3877,9 +3877,9 @@ } }, "node_modules/@types/bunyan": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.10.tgz", - "integrity": "sha512-A82U/3EAdWX89f+dfysGiRvbeoLuRLV3i6SLg3HuNK4Yf+dHOqdbxT70vQUwvD3DOr2Dvpcv9dRX4ipTf0LpEg==", + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.11.tgz", + "integrity": "sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -3894,9 +3894,9 @@ } }, "node_modules/@types/deep-equal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.3.tgz", - "integrity": "sha512-xP1pB67eLrRdMLKpXUXhYN/3uiJN1gNalcVOSY5kdJbxhGuZTTE8awSWOD9LCJDzQZVsuZZcnMMLRrbf+nOUSQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.4.tgz", + "integrity": "sha512-tqdiS4otQP4KmY0PR3u6KbZ5EWvhNdUoS/jc93UuK23C220lOZ/9TvjfxdPcKvqwwDVtmtSCrnr0p/2dirAxkA==", "dev": true }, "node_modules/@types/express": { @@ -3967,9 +3967,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.6", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.6.tgz", - "integrity": "sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==", + "version": "29.5.7", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.7.tgz", + "integrity": "sha512-HLyetab6KVPSiF+7pFcUyMeLsx25LDNDemw9mGsJBkai/oouwrjTycocSDYopMEwFhN2Y4s9oPyOCZNofgSt2g==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -4047,9 +4047,9 @@ "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" }, "node_modules/@types/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-lX17GZVpJ/fuCjguZ5b3TjEbSENxmEk1B2z02yoXSK9WMEWRivhdSY73wWMn6bpcCDAOh6qAdktpKHIlkDk2lg==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-nnH5lV9QCMPsbEVdTb5Y+F3GQxLSw1xQgIydrb2gSfEavRPs50FnMr+KUaa+LoPSqibm2N+ZZxH7lavZlAT4GA==", "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -13668,9 +13668,9 @@ } }, "node_modules/nock": { - "version": "13.3.6", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.6.tgz", - "integrity": "sha512-lT6YuktKroUFM+27mubf2uqQZVy2Jf+pfGzuh9N6VwdHlFoZqvi4zyxFTVR1w/ChPqGY6yxGehHp6C3wqCASCw==", + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", + "integrity": "sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==", "dev": true, "dependencies": { "debug": "^4.1.0", diff --git a/package.json b/package.json index ec788d7e2..81a94c889 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ ], "devDependencies": { "@apollo/cache-control-types": "1.0.3", - "@apollo/client": "3.8.6", + "@apollo/client": "3.8.7", "@apollo/server": "4.9.5", "@apollo/utils.fetcher": "2.0.1", "@changesets/changelog-github": "0.4.8", @@ -60,16 +60,16 @@ "@josephg/resolvable": "1.0.1", "@opentelemetry/node": "0.24.0", "@svitejs/changesets-changelog-github-compact": "1.1.0", - "@types/async-retry": "1.4.7", - "@types/bunyan": "1.8.10", - "@types/deep-equal": "1.0.3", - "@types/jest": "29.5.6", + "@types/async-retry": "1.4.8", + "@types/bunyan": "1.8.11", + "@types/deep-equal": "1.0.4", + "@types/jest": "29.5.7", "@types/js-levenshtein": "1.1.2", "@types/loglevel": "1.5.4", "@types/make-fetch-happen": "10.0.2", "@types/nock": "10.0.3", "@types/node": "14.18.63", - "@types/node-fetch": "2.6.7", + "@types/node-fetch": "2.6.8", "@types/uuid": "9.0.6", "@typescript-eslint/eslint-plugin": "5.62.0", "bunyan": "1.8.15", @@ -84,7 +84,7 @@ "jest-junit": "16.0.0", "log4js": "6.9.1", "mocked-env": "1.3.5", - "nock": "13.3.6", + "nock": "13.3.8", "node-fetch": "2.7.0", "prettier": "3.0.3", "prettier-2": "npm:prettier@2.8.8", From 01e4266924b148ee61b1b07572351babdf0b805c Mon Sep 17 00:00:00 2001 From: Trevor Scheer Date: Tue, 7 Nov 2023 08:31:48 -0800 Subject: [PATCH 18/21] Stop renovate updates to version-0.x branch (#2847) --- renovate.json5 | 64 -------------------------------------------------- 1 file changed, 64 deletions(-) diff --git a/renovate.json5 b/renovate.json5 index 9c06d2f1d..055246522 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -14,7 +14,6 @@ // important updatets. "baseBranches": [ "main", - "version-0.x", ], "dependencyDashboard": true, // The "circleci" manager is intentionally disabled right now (e.g., not @@ -92,50 +91,12 @@ automerge: false, matchManagers: [ "npm" ], }, - // v0.x is stuck on the following major package versions due to node 12 support - // the packages listed below have dropped support for node 12 in current major versions - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["@types/node"], - "allowedVersions": "12.x" - }, - { - "matchBaseBranches": ["version-0.x"], - "matchPackagePatterns": ["^@apollo/utils"], - "allowedVersions": "1.x" - }, // v3.x utils packages drop support for node 14 { "matchBaseBranches": ["main"], "matchPackagePatterns": ["^@apollo/utils"], "allowedVersions": "2.x" }, - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["make-fetch-happen", "@types/make-fetch-happen"], - "allowedVersions": "10.x" - }, - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["lerna"], - "allowedVersions": "4.x" - }, - { - "matchBaseBranches": ["version-0.x"], - "matchPackagePatterns": ["jest", "pretty-format"], - "allowedVersions": "28.x" - }, - { - "matchBaseBranches": ["version-0.x"], - "matchPackagePatterns": ["@apollo/core-schema"], - "allowedVersions": "0.2.x" - }, - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["node"], - "matchPaths": ["v12-node-compatibility/package.json"], - "allowedVersions": "12.x", - }, // @graphql-codegen/*@4 drops support for node 14 { "matchPackagePatterns": ["^@graphql-codegen"], @@ -151,35 +112,10 @@ "matchPackageNames": ["make-fetch-happen"], "allowedVersions": "11.x", }, - // make-fetch-happen@11 drops support for node 12 - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["make-fetch-happen"], - "allowedVersions": "10.x", - }, // cspell@7 drops support for node 14 { "matchPackageNames": ["cspell"], "allowedVersions": "6.x", }, - // @apollo/cache-control-types@1.0.3 accidentally broke support for node 12 - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["@apollo/cache-control-types"], - "allowedVersions": "1.0.2", - }, - // typescript@5.1 drops support for node 12 - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["typescript"], - "allowedVersions": "5.0.x", - }, - // lru-cache@7.13.1 is the last patch which includes an important AbortSignal type as part of its polyfill - // this was a breaking change for node 12 support - { - "matchBaseBranches": ["version-0.x"], - "matchPackageNames": ["lru-cache"], - "allowedVersions": "7.13.1", - }, ] } From de54cb2d6042697c0b9a4177929864c36312c653 Mon Sep 17 00:00:00 2001 From: Andrew McGivery Date: Tue, 7 Nov 2023 17:31:42 -0500 Subject: [PATCH 19/21] Updating multiple keys section to have code example on resolve reference --- docs/source/entities-advanced.mdx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/source/entities-advanced.mdx b/docs/source/entities-advanced.mdx index 7debc595e..6b75a2c0d 100644 --- a/docs/source/entities-advanced.mdx +++ b/docs/source/entities-advanced.mdx @@ -87,7 +87,24 @@ type Product @key(fields: "id", resolvable: false) { type Product @key(fields: "sku", resolvable: false) { sku: String! } +``` + +When resolving a reference for an entity with multiple keys, you can determine how to resolve based on which key is present: +```js title="resolvers.js" +// Products subgraph +const resolvers = { + Product: { + __resolveReference(productRepresentation) { + if(productRepresentation.sku){ + return fetchProductBySku(productRepresentation.id); + } else { + return fetchProductByID(productRepresentation.id); + } + } + }, + // ...other resolvers... +} ``` ### Differing `@key`s across subgraphs From 8e8c6d0d60876eabdf0a1e933f5bd56842195cd7 Mon Sep 17 00:00:00 2001 From: Andrew McGivery Date: Tue, 7 Nov 2023 17:35:10 -0500 Subject: [PATCH 20/21] Typos --- docs/source/entities-advanced.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/entities-advanced.mdx b/docs/source/entities-advanced.mdx index 6b75a2c0d..bd2a4862f 100644 --- a/docs/source/entities-advanced.mdx +++ b/docs/source/entities-advanced.mdx @@ -89,7 +89,7 @@ type Product @key(fields: "sku", resolvable: false) { } ``` -When resolving a reference for an entity with multiple keys, you can determine how to resolve based on which key is present: +When resolving a reference for an entity with multiple keys, you can determine how to resolve it based on which key is present: ```js title="resolvers.js" // Products subgraph @@ -97,7 +97,7 @@ const resolvers = { Product: { __resolveReference(productRepresentation) { if(productRepresentation.sku){ - return fetchProductBySku(productRepresentation.id); + return fetchProductBySku(productRepresentation.sku); } else { return fetchProductByID(productRepresentation.id); } From 1d9127fd101a60ac4cb49268bb5bda485b294d25 Mon Sep 17 00:00:00 2001 From: Andrew McGivery Date: Wed, 8 Nov 2023 14:28:34 -0500 Subject: [PATCH 21/21] Added suggested note --- docs/source/entities-advanced.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/entities-advanced.mdx b/docs/source/entities-advanced.mdx index bd2a4862f..848286ed4 100644 --- a/docs/source/entities-advanced.mdx +++ b/docs/source/entities-advanced.mdx @@ -89,7 +89,7 @@ type Product @key(fields: "sku", resolvable: false) { } ``` -When resolving a reference for an entity with multiple keys, you can determine how to resolve it based on which key is present: +When resolving a reference for an entity with multiple keys, you can determine how to resolve it based on which key is present. For example, if you're using [`@apollo/subgraph`](/apollo-server/using-federation/api/apollo-subgraph/), it could look like this: ```js title="resolvers.js" // Products subgraph