@apollo/gateway 2.1.0-alpha.4 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAgC,MAAM,SAAS,CAAC;AAI3G,OAAO,EAA+B,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAA+D,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAErK,qBAAa,uBAAuB,CAClC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC1D,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IAEtC,OAAO,EAAE,OAAO,CAAC;gBAGf,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,GACjD,MAAM,GACN,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAkB/C,GAAG,EAAG,MAAM,CAAC;IAoBb,GAAG,EAAE,OAAO,CAAS;IAMrB,+BAA+B,EAAE,OAAO,CAAQ;IAE1C,OAAO,CACX,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,OAAO,CAAC,sBAAsB,CAAC;YAgGpB,WAAW;IAsDlB,eAAe,CAAC,CACrB,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAET,OAAO;IA0Cd,kBAAkB,CAAC,CACxB,cAAc,EAAE,QAAQ,CACtB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CACjF,GACA,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAEpD,iBAAiB,CACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,gBAAgB,EAC/B,cAAc,CAAC,EAAE,eAAe,EAChC,QAAQ,CAAC,EAAE,QAAQ;IAKd,SAAS,CACd,aAAa,EAAE,eAAe,EAC9B,aAAa,CAAC,EAAE,gBAAgB,EAChC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IASd,iBAAiB,CAAC,QAAQ,EAAE,eAAe;CAsBzD"}
1
+ {"version":3,"file":"RemoteGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAgC,MAAM,SAAS,CAAC;AAI3G,OAAO,EAA+B,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAA+D,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAErK,qBAAa,uBAAuB,CAClC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC1D,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IAEtC,OAAO,EAAE,OAAO,CAAC;gBAGf,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,GACjD,MAAM,GACN,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAkB/C,GAAG,EAAG,MAAM,CAAC;IAoBb,GAAG,EAAE,OAAO,CAAS;IAMrB,+BAA+B,EAAE,OAAO,CAAQ;IAE1C,OAAO,CACX,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,OAAO,CAAC,sBAAsB,CAAC;YAkGpB,WAAW;IAsDlB,eAAe,CAAC,CACrB,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAET,OAAO;IA0Cd,kBAAkB,CAAC,CACxB,cAAc,EAAE,QAAQ,CACtB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CACjF,GACA,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAEpD,iBAAiB,CACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,gBAAgB,EAC/B,cAAc,CAAC,EAAE,eAAe,EAChC,QAAQ,CAAC,EAAE,QAAQ;IAKd,SAAS,CACd,aAAa,EAAE,eAAe,EAC9B,aAAa,CAAC,EAAE,gBAAgB,EAChC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IASd,iBAAiB,CAAC,QAAQ,EAAE,eAAe;CAsBzD"}
@@ -47,7 +47,9 @@ class RemoteGraphQLDataSource {
47
47
  }
48
48
  const { query, ...requestWithoutQuery } = request;
49
49
  const overallCachePolicy = this.honorSubgraphCacheControlHeader &&
50
- options.kind === types_1.GraphQLDataSourceRequestKind.INCOMING_OPERATION
50
+ options.kind === types_1.GraphQLDataSourceRequestKind.INCOMING_OPERATION &&
51
+ options.incomingRequestContext.overallCachePolicy &&
52
+ 'restrict' in options.incomingRequestContext.overallCachePolicy
51
53
  ? options.incomingRequestContext.overallCachePolicy
52
54
  : null;
53
55
  if (this.apq) {
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteGraphQLDataSource.js","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteGraphQLDataSource.js","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAmD;AACnD,mCAA2G;AAC3G,+DAAsD;AACtD,uEAAoE;AACpE,0EAAwC;AACxC,2CAAsF;AAEtF,qCAA+D;AAG/D,MAAa,uBAAuB;IAMlC,YACE,MAE6C;QAsC/C,QAAG,GAAY,KAAK,CAAC;QAMrB,oCAA+B,GAAY,IAAI,CAAC;QA1C9C,IAAI,CAAC,OAAO,GAAG,2BAAO,CAAC,QAAQ,CAAC;YAK9B,UAAU,EAAE,QAAQ;YAIpB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QACH,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACpC;IACH,CAAC;IA8BD,KAAK,CAAC,OAAO,CACX,OAAkD;;QAElD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAQtD,MAAM,OAAO,GAAG,eAA2B,CAAC;QAG5C,MAAM,OAAO,GAAG,IAAI,oBAAgB,EAAE,CAAC;QACvC,IAAI,MAAA,OAAO,CAAC,IAAI,0CAAE,OAAO,EAAE;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC7B;SACF;QACD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAEhD,OAAO,CAAC,IAAI,GAAG;YACb,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO;SACR,CAAC;QAEF,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,GAAG,OAAO,CAAC;QAKlD,MAAM,kBAAkB,GACtB,IAAI,CAAC,+BAA+B;YACpC,OAAO,CAAC,IAAI,KAAK,oCAA4B,CAAC,kBAAkB;YAChE,OAAO,CAAC,sBAAsB,CAAC,kBAAkB;YACjD,UAAU,IAAI,OAAO,CAAC,sBAAsB,CAAC,kBAAkB;YAC7D,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,kBAAkB;YACnD,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,MAAM,OAAO,GAAG,IAAA,6BAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAIzE,mBAAmB,CAAC,UAAU,GAAG;gBAC/B,GAAG,OAAO,CAAC,UAAU;gBACrB,cAAc,EAAE;oBACd,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,OAAO;iBACpB;aACF,CAAC;YAEF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,WAAW,CAClD,mBAAmB,EACnB,OAAO,CACR,CAAC;YAIF,IACE,CAAC,qBAAqB,CAAC,MAAM;gBAC7B,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,wBAAwB,CACtD,EACD;gBACA,OAAO,IAAI,CAAC,OAAO,CAAC;oBAClB,QAAQ,EAAE,qBAAqB;oBAC/B,OAAO,EAAE,mBAAmB;oBAC5B,OAAO;oBACP,kBAAkB;iBACnB,CAAC,CAAC;aACJ;SACF;QAKD,MAAM,gBAAgB,GAA0B;YAC9C,KAAK;YACL,GAAG,mBAAmB;SACvB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,QAAQ;YACR,OAAO,EAAE,gBAAgB;YACzB,OAAO;YACP,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA8B,EAC9B,OAAiB;QAIjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAKD,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC;QAChD,MAAM,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACzE,MAAM,WAAW,GAAuB;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YACzC,IAAI,EAAE,6BAA6B;SACpC,CAAC;QAMF,MAAM,YAAY,GAAG,IAAI,oBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEjE,IAAI,aAA0C,CAAC;QAE/C,IAAI;YAGF,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAE1D,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;gBACrB,MAAM,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;aACnD;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAExE,IAAI,CAAC,IAAA,qBAAQ,EAAC,IAAI,CAAC,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;aACvE;YAED,OAAO;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,aAAa;aACpB,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACpE,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAMO,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,OAAO,EACP,kBAAkB,GAMnB;;QACC,MAAM,iBAAiB,GACrB,OAAO,IAAI,CAAC,kBAAkB,KAAK,UAAU;YAC3C,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC/D,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,kBAAkB,EAAE;YACtB,MAAM,MAAM,GAAG,IAAA,iDAAuB,EACpC,MAAA,QAAQ,CAAC,IAAI,0CAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAC5C,CAAC;YAMF,MAAM,IAAI,GAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAC1D,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;aACvB;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;gBAC9B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;aACxB;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;gBAC7B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;aACvB;YACD,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACnC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAQM,iBAAiB,CACtB,KAAY,EACZ,aAA+B,EAC/B,cAAgC,EAChC,QAAmB;QAEnB,MAAM,KAAK,CAAC;IACd,CAAC;IAEM,SAAS,CACd,aAA8B,EAC9B,aAAgC,EAChC,QAAmB;QAEnB,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;YAC7D,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;SAC7B;aAAM;YACL,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;SAC7B;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,QAAyB;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,UAAU,GAA2B;YACzC,QAAQ,EAAE;gBACR,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,IAAI;aACL;SACF,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,UAAU,CAAC,IAAI,GAAG,iBAAiB,CAAC;SACrC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAClC,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC;SAC/B;QAED,OAAO,IAAI,sBAAY,CAAC,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EAAE;YACpE,UAAU;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAjTD,0DAiTC"}
@@ -1 +1 @@
1
- {"version":3,"file":"addExtensions.d.ts","sourceRoot":"","sources":["../../src/schema-helper/addExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAalE"}
1
+ {"version":3,"file":"addExtensions.d.ts","sourceRoot":"","sources":["../../src/schema-helper/addExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKxC,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAiBlE"}
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addExtensions = void 0;
4
4
  const { version } = require('../../package.json');
5
5
  function addExtensions(schema) {
6
- var _a;
6
+ var _a, _b, _c;
7
+ const schemaExtension = (_a = schema.extensions) !== null && _a !== void 0 ? _a : {};
8
+ const apolloExtension = (_b = schemaExtension === null || schemaExtension === void 0 ? void 0 : schemaExtension.apollo) !== null && _b !== void 0 ? _b : {};
9
+ const gatewayExtension = (_c = apolloExtension === null || apolloExtension === void 0 ? void 0 : apolloExtension.gateway) !== null && _c !== void 0 ? _c : {};
7
10
  schema.extensions = {
8
11
  ...schema.extensions,
9
12
  apollo: {
10
- ...schema.extensions.apollo,
13
+ ...apolloExtension,
11
14
  gateway: {
12
- ...(_a = schema.extensions.apollo) === null || _a === void 0 ? void 0 : _a.gateway,
15
+ ...gatewayExtension,
13
16
  version,
14
17
  }
15
18
  },
@@ -1 +1 @@
1
- {"version":3,"file":"addExtensions.js","sourceRoot":"","sources":["../../src/schema-helper/addExtensions.ts"],"names":[],"mappings":";;;AACA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,SAAgB,aAAa,CAAC,MAAqB;;IACjD,MAAM,CAAC,UAAU,GAAG;QAClB,GAAG,MAAM,CAAC,UAAU;QACpB,MAAM,EAAE;YACN,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;YAC3B,OAAO,EAAE;gBACP,GAAG,MAAA,MAAM,CAAC,UAAU,CAAC,MAAM,0CAAE,OAAO;gBACpC,OAAO;aACR;SACF;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAbD,sCAaC"}
1
+ {"version":3,"file":"addExtensions.js","sourceRoot":"","sources":["../../src/schema-helper/addExtensions.ts"],"names":[],"mappings":";;;AAGA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,SAAgB,aAAa,CAAC,MAAqB;;IACjD,MAAM,eAAe,GAAG,MAAA,MAAM,CAAC,UAAqC,mCAAI,EAAE,CAAC;IAC3E,MAAM,eAAe,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,EAAE,CAAC;IACtD,MAAM,gBAAgB,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,mCAAI,EAAE,CAAC;IAExD,MAAM,CAAC,UAAU,GAAG;QAClB,GAAG,MAAM,CAAC,UAAU;QACpB,MAAM,EAAE;YACN,GAAG,eAAe;YAClB,OAAO,EAAE;gBACP,GAAG,gBAAgB;gBACnB,OAAO;aACR;SACF;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,sCAiBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/gateway",
3
- "version": "2.1.0-alpha.4",
3
+ "version": "2.1.0",
4
4
  "description": "Apollo Gateway",
5
5
  "author": "Apollo <packages@apollographql.com>",
6
6
  "main": "dist/index.js",
@@ -25,11 +25,10 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@apollo/composition": "^2.1.0-alpha.4",
29
- "@apollo/core-schema": "~0.3.0",
30
- "@apollo/federation-internals": "^2.1.0-alpha.4",
31
- "@apollo/query-planner": "^2.1.0-alpha.4",
32
- "@apollo/server-gateway-interface": "^1.0.1",
28
+ "@apollo/composition": "^2.1.0",
29
+ "@apollo/federation-internals": "^2.1.0",
30
+ "@apollo/query-planner": "^2.1.0",
31
+ "@apollo/server-gateway-interface": "^1.0.2",
33
32
  "@apollo/utils.createhash": "^1.1.0",
34
33
  "@apollo/utils.fetcher": "^1.1.0",
35
34
  "@apollo/utils.isnodelike": "^1.1.0",
@@ -47,5 +46,5 @@
47
46
  "peerDependencies": {
48
47
  "graphql": "^16.5.0"
49
48
  },
50
- "gitHead": "db61f574cc2ee95a53dac8b95a5a320f8caf6fbc"
49
+ "gitHead": "6dec2f26af031434c56bea46a75330559dac5f5b"
51
50
  }
@@ -2938,6 +2938,140 @@ describe('executeQueryPlan', () => {
2938
2938
  }
2939
2939
  `);
2940
2940
  });
2941
+
2942
+ test('correctly include key/typename when top-level required object is non-external', async () => {
2943
+ const entityTwo = {
2944
+ id: 'key2',
2945
+ external: 'v2',
2946
+ };
2947
+ const entityOne = {
2948
+ id: 'key1',
2949
+ two: { id: entityTwo.id },
2950
+ };
2951
+
2952
+ const s1 = {
2953
+ name: 'S1',
2954
+ typeDefs: gql`
2955
+ type Query {
2956
+ one: One
2957
+ }
2958
+
2959
+ type One @key(fields: "id") {
2960
+ id: ID!
2961
+ two: Two
2962
+ computed: String @requires(fields: "two { external }")
2963
+ }
2964
+
2965
+ type Two @key(fields: "id") {
2966
+ id: ID!
2967
+ external: String @external
2968
+ }
2969
+ `,
2970
+ resolvers: {
2971
+ Query: {
2972
+ one() {
2973
+ return entityOne;
2974
+ },
2975
+ },
2976
+ One: {
2977
+ __resolveReference(ref: { id: string }) {
2978
+ return ref.id === entityOne.id ? { ...entityOne, ...ref } : undefined;
2979
+ },
2980
+ computed(parent: any) {
2981
+ return `computed value: ${parent.two.external}`;
2982
+ },
2983
+ },
2984
+ }
2985
+ }
2986
+
2987
+ const s2 = {
2988
+ name: 'S2',
2989
+ typeDefs: gql`
2990
+ type Two @key(fields: "id") {
2991
+ id: ID!
2992
+ external: String
2993
+ }
2994
+ `,
2995
+ resolvers: {
2996
+ Two: {
2997
+ __resolveReference(ref: { id: string }) {
2998
+ return ref.id === entityTwo.id ? entityTwo : undefined;
2999
+ },
3000
+ },
3001
+ }
3002
+ }
3003
+
3004
+ const { serviceMap, schema, queryPlanner} = getFederatedTestingSchema([ s1, s2 ]);
3005
+
3006
+ const operation = parseOp(`
3007
+ {
3008
+ one {
3009
+ computed
3010
+ }
3011
+ }
3012
+ `, schema);
3013
+ const queryPlan = buildPlan(operation, queryPlanner);
3014
+ expect(queryPlan).toMatchInlineSnapshot(`
3015
+ QueryPlan {
3016
+ Sequence {
3017
+ Fetch(service: "S1") {
3018
+ {
3019
+ one {
3020
+ __typename
3021
+ two {
3022
+ __typename
3023
+ id
3024
+ }
3025
+ id
3026
+ }
3027
+ }
3028
+ },
3029
+ Flatten(path: "one.two") {
3030
+ Fetch(service: "S2") {
3031
+ {
3032
+ ... on Two {
3033
+ __typename
3034
+ id
3035
+ }
3036
+ } =>
3037
+ {
3038
+ ... on Two {
3039
+ external
3040
+ }
3041
+ }
3042
+ },
3043
+ },
3044
+ Flatten(path: "one") {
3045
+ Fetch(service: "S1") {
3046
+ {
3047
+ ... on One {
3048
+ __typename
3049
+ two {
3050
+ external
3051
+ }
3052
+ id
3053
+ }
3054
+ } =>
3055
+ {
3056
+ ... on One {
3057
+ computed
3058
+ }
3059
+ }
3060
+ },
3061
+ },
3062
+ },
3063
+ }
3064
+ `);
3065
+ const response = await executePlan(queryPlan, operation, undefined, schema, serviceMap);
3066
+ expect(response.errors).toBeUndefined();
3067
+ expect(response.data).toMatchInlineSnapshot(`
3068
+ Object {
3069
+ "one": Object {
3070
+ "computed": "computed value: v2",
3071
+ },
3072
+ }
3073
+ `);
3074
+ });
2941
3075
  });
2942
3076
 
2943
3077
  describe('@key', () => {
@@ -106,7 +106,9 @@ export class RemoteGraphQLDataSource<
106
106
  // there.
107
107
  const overallCachePolicy =
108
108
  this.honorSubgraphCacheControlHeader &&
109
- options.kind === GraphQLDataSourceRequestKind.INCOMING_OPERATION
109
+ options.kind === GraphQLDataSourceRequestKind.INCOMING_OPERATION &&
110
+ options.incomingRequestContext.overallCachePolicy &&
111
+ 'restrict' in options.incomingRequestContext.overallCachePolicy
110
112
  ? options.incomingRequestContext.overallCachePolicy
111
113
  : null;
112
114
 
@@ -3,9 +3,63 @@ import { addExtensions } from '../addExtensions';
3
3
  const { version } = require('../../../package.json');
4
4
 
5
5
  describe('addExtensions', () => {
6
+
6
7
  it('adds gateway extensions to a schema', async () => {
7
8
  const schema = buildSchema('type Query { hello: String }');
8
9
  expect(schema.extensions).toEqual({});
9
10
  expect(addExtensions(schema).extensions).toEqual({ apollo: { gateway: { version: version } } });
10
11
  });
12
+
13
+ it('does not delete existing extensions', async () => {
14
+ const schema = buildSchema('type Query { hello: String }');
15
+ expect(schema.extensions).toEqual({});
16
+ schema.extensions = {
17
+ foo: 'bar',
18
+ apollo: {
19
+ gateway: {
20
+ version: 'hello'
21
+ }
22
+ }
23
+ };
24
+ expect(addExtensions(schema).extensions).toEqual({
25
+ foo: 'bar',
26
+ apollo: {
27
+ gateway: {
28
+ version: version
29
+ }
30
+ }
31
+ });
32
+ });
33
+
34
+ it('works with undefined apollo block', async () => {
35
+ const schema = buildSchema('type Query { hello: String }');
36
+ expect(schema.extensions).toEqual({});
37
+ schema.extensions = {
38
+ apollo: undefined
39
+ };
40
+ expect(addExtensions(schema).extensions).toEqual({
41
+ apollo: {
42
+ gateway: {
43
+ version: version
44
+ }
45
+ }
46
+ });
47
+ });
48
+
49
+ it('works with undefined gateway block', async () => {
50
+ const schema = buildSchema('type Query { hello: String }');
51
+ expect(schema.extensions).toEqual({});
52
+ schema.extensions = {
53
+ apollo: {
54
+ gateway: undefined
55
+ }
56
+ };
57
+ expect(addExtensions(schema).extensions).toEqual({
58
+ apollo: {
59
+ gateway: {
60
+ version: version
61
+ }
62
+ }
63
+ });
64
+ });
11
65
  });
@@ -1,13 +1,19 @@
1
1
  import { GraphQLSchema } from 'graphql';
2
+ import { GraphQLSchemaExtensions } from 'graphql/type/schema';
3
+
2
4
  const { version } = require('../../package.json');
3
5
 
4
6
  export function addExtensions(schema: GraphQLSchema): GraphQLSchema {
7
+ const schemaExtension = schema.extensions as GraphQLSchemaExtensions ?? {};
8
+ const apolloExtension = schemaExtension?.apollo ?? {};
9
+ const gatewayExtension = apolloExtension?.gateway ?? {};
10
+
5
11
  schema.extensions = {
6
12
  ...schema.extensions,
7
13
  apollo: {
8
- ...schema.extensions.apollo,
14
+ ...apolloExtension,
9
15
  gateway: {
10
- ...schema.extensions.apollo?.gateway,
16
+ ...gatewayExtension,
11
17
  version,
12
18
  }
13
19
  },