@apollo/federation-internals 2.8.0-connectors.5 → 2.8.1
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.
- package/dist/definitions.d.ts +1 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +5 -1
- package/dist/definitions.js.map +1 -1
- package/dist/directiveAndTypeSpecification.d.ts +13 -1
- package/dist/directiveAndTypeSpecification.d.ts.map +1 -1
- package/dist/directiveAndTypeSpecification.js +2 -2
- package/dist/directiveAndTypeSpecification.js.map +1 -1
- package/dist/error.d.ts +25 -0
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +50 -0
- package/dist/error.js.map +1 -1
- package/dist/extractSubgraphsFromSupergraph.d.ts +1 -1
- package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
- package/dist/extractSubgraphsFromSupergraph.js +62 -7
- package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
- package/dist/federation.d.ts +19 -2
- package/dist/federation.d.ts.map +1 -1
- package/dist/federation.js +420 -7
- package/dist/federation.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/knownCoreFeatures.d.ts +3 -0
- package/dist/knownCoreFeatures.d.ts.map +1 -1
- package/dist/knownCoreFeatures.js +12 -1
- package/dist/knownCoreFeatures.js.map +1 -1
- package/dist/operations.d.ts +10 -8
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +48 -16
- package/dist/operations.js.map +1 -1
- package/dist/specs/contextSpec.d.ts +20 -0
- package/dist/specs/contextSpec.d.ts.map +1 -0
- package/dist/specs/contextSpec.js +62 -0
- package/dist/specs/contextSpec.js.map +1 -0
- package/dist/specs/coreSpec.d.ts +1 -0
- package/dist/specs/coreSpec.d.ts.map +1 -1
- package/dist/specs/coreSpec.js +3 -0
- package/dist/specs/coreSpec.js.map +1 -1
- package/dist/specs/federationSpec.d.ts +8 -2
- package/dist/specs/federationSpec.d.ts.map +1 -1
- package/dist/specs/federationSpec.js +16 -1
- package/dist/specs/federationSpec.js.map +1 -1
- package/dist/specs/joinSpec.d.ts +6 -0
- package/dist/specs/joinSpec.d.ts.map +1 -1
- package/dist/specs/joinSpec.js +11 -1
- package/dist/specs/joinSpec.js.map +1 -1
- package/dist/specs/sourceSpec.d.ts +69 -0
- package/dist/specs/sourceSpec.d.ts.map +1 -0
- package/dist/specs/sourceSpec.js +345 -0
- package/dist/specs/sourceSpec.js.map +1 -0
- package/dist/supergraphs.d.ts +4 -0
- package/dist/supergraphs.d.ts.map +1 -1
- package/dist/supergraphs.js +35 -2
- package/dist/supergraphs.js.map +1 -1
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +39 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/definitions.ts +4 -0
- package/src/directiveAndTypeSpecification.ts +8 -1
- package/src/error.ts +175 -0
- package/src/extractSubgraphsFromSupergraph.ts +76 -14
- package/src/federation.ts +636 -15
- package/src/index.ts +2 -1
- package/src/knownCoreFeatures.ts +15 -0
- package/src/operations.ts +63 -23
- package/src/specs/contextSpec.ts +87 -0
- package/src/specs/coreSpec.ts +5 -0
- package/src/specs/federationSpec.ts +18 -1
- package/src/specs/joinSpec.ts +27 -3
- package/src/specs/sourceSpec.ts +607 -0
- package/src/supergraphs.ts +37 -1
- package/src/utils.ts +38 -0
- package/dist/specs/connectSpec.d.ts +0 -42
- package/dist/specs/connectSpec.d.ts.map +0 -1
- package/dist/specs/connectSpec.js +0 -82
- package/dist/specs/connectSpec.js.map +0 -1
- package/src/specs/connectSpec.ts +0 -181
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AASA,SAAgB,MAAM,CAAC,SAAc,EAAE,OAAgC;IACrE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAJD,wBAIC;AAED,SAAgB,iBAAiB,CAAC,CAAQ;IACxC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC;AAFD,8CAEC;AAED,MAAa,QAAe,SAAQ,GAAW;IAC7C,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAwB;QAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnBD,4BAmBC;AAED,MAAa,WAAkB,SAAQ,GAAc;IACnD,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAA2B;QAChC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnBD,kCAmBC;AASD,MAAa,UAAU;IAKb,MAAM,CAAC,gBAAgB,CAAI,CAAI,EAAE,CAAI;QAC3C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,YAAY,YAAoC,UAAU,CAAC,gBAAgB;QAbnE,UAAK,GAAQ,EAAE,CAAC;QAChB,YAAO,GAAa,IAAI,GAAG,EAAO,CAAC;QAazC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,CAAC,EAAE,6CAA6C,CAAC,CAAC;YACzD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAGO,gBAAgB,CAAC,GAAM;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,OAAO,KAAK,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IAID,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,CAAC,EAAE,6CAA6C,CAAC,CAAC;YACzD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF;AAzED,gCAyEC;AAQD,SAAgB,WAAW,CACzB,CAAe,EACf,CAAe,EACf,QAAoC;IAEpC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAlBD,kCAkBC;AAKD,SAAgB,QAAQ,CAAI,QAAgB,EAAE,WAAmB;IAC/D,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAVD,4BAUC;AAED,SAAgB,OAAO,CAAI,QAAqB;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1C,CAAC;AAHD,0BAGC;AAED,SAAgB,SAAS,CAAI,GAAwB;IACnD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,8BAOC;AAED,SAAgB,OAAO,CAAI,GAAwB;IACjD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,0BAOC;AAED,SAAgB,UAAU,CAAO,GAAsB;IACrD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAClC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,gCAOC;AAED,SAAgB,SAAS,CAAI,GAAmB;IAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,8BAOC;AAED,MAAa,mBAAmB;IAAhC;QACmB,QAAG,GAAG,IAAI,GAAG,EAAQ,CAAC;IAqDzC,CAAC;IAjDS,WAAW;QACjB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAtDD,kDAsDC;AAED,SAAgB,gBAAgB,CAAI,GAAQ,EAAE,SAAiB;IAC7D,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,4CAOC;AAWD,SAAgB,6BAA6B,CAAC,GAAY;IACxD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,QAAQ,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,GAAG;YACN,OAAO,IAAI,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,IAAI,CAAC;QACV,KAAK,GAAG;YACN,OAAO,KAAK,CAAC;QACf;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAhBD,sEAgBC;AASD,SAAgB,WAAW,CAAC,MAAgB,EAAE,MAAc,IAAI,EAAE,QAAiB,EAAE,UAAkB,OAAO;IAC5G,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7G,CAAC;AAbD,kCAaC;AAID,MAAM,yCAAyC,GAAG,GAAG,CAAC;AAUtD,SAAgB,sBAAsB,CACpC,KAAe,EACf,EACE,UAAU,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,oBAAoB,GAOrB;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,MAAM,GAAG,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,yCAAyC,CAAC;IAEjF,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,CAC9B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE;QAC5B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO;gBACP,MAAM;aACP,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,OAAO,GAAG,CAAC;YACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC,EACD,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CACzB,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,YAAY,GAAG,GAAG;QACpB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,YAAY,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,OAAO,YAAY,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC;IAChF,CAAC;AACH,CAAC;AAjDD,wDAiDC;AAUM,MAAM,SAAS,GAAG,CAAI,CAAgB,EAAU,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAA5E,QAAA,SAAS,aAAmE;AAOzF,SAAgB,kBAAkB,CAAI,OAAU,EAAE,KAAU;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AARD,gDAQC;AAID,SAAgB,eAAe,CAAI,KAAU;IAC3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC;AAFD,0CAEC;AAGD,SAAgB,QAAQ,CAAI,KAAU,EAAE,SAA4B;IAClE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,4BAQC;AAED,SAAgB,cAAc,CAAM,EAAoB,EAAE,EAAoB;IAC5E,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,GAAG,CAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AARD,wCAQC;AAED,SAAgB,WAAW,CAAI,EAAiB,EAAE,EAAiB;IACjE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;IAC5B,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,kCAQC;AAED,SAAgB,SAAS,CAAI,EAAiB,EAAE,EAAiB;IAC/D,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,8BAgBC"}
|
package/package.json
CHANGED
package/src/definitions.ts
CHANGED
|
@@ -3786,3 +3786,7 @@ function copyDirectiveDefinitionInner(
|
|
|
3786
3786
|
dest.sourceAST = source.sourceAST;
|
|
3787
3787
|
dest.description = source.description;
|
|
3788
3788
|
}
|
|
3789
|
+
|
|
3790
|
+
export function isFieldDefinition(elem: SchemaElement<any, any>): elem is FieldDefinition<any> {
|
|
3791
|
+
return elem instanceof FieldDefinition;
|
|
3792
|
+
}
|
|
@@ -24,6 +24,7 @@ import { sameType } from "./types";
|
|
|
24
24
|
import { arrayEquals, assert } from "./utils";
|
|
25
25
|
import { ArgumentCompositionStrategy } from "./argumentCompositionStrategies";
|
|
26
26
|
import { FeatureDefinition, FeatureVersion } from "./specs/coreSpec";
|
|
27
|
+
import { Subgraph } from '.';
|
|
27
28
|
|
|
28
29
|
export type DirectiveSpecification = {
|
|
29
30
|
name: string,
|
|
@@ -34,8 +35,11 @@ export type DirectiveSpecification = {
|
|
|
34
35
|
export type DirectiveCompositionSpecification = {
|
|
35
36
|
supergraphSpecification: (federationVersion: FeatureVersion) => FeatureDefinition,
|
|
36
37
|
argumentsMerger?: (schema: Schema, feature: CoreFeature) => ArgumentMerger | GraphQLError,
|
|
38
|
+
staticArgumentTransform?: StaticArgumentsTransform,
|
|
37
39
|
}
|
|
38
40
|
|
|
41
|
+
export type StaticArgumentsTransform = (subgraph: Subgraph, args: Readonly<{[key: string]: any}>) => Readonly<{[key: string]: any}>;
|
|
42
|
+
|
|
39
43
|
export type ArgumentMerger = {
|
|
40
44
|
merge: (argName: string, values: any[]) => any,
|
|
41
45
|
toString: () => string,
|
|
@@ -75,6 +79,7 @@ export function createDirectiveSpecification({
|
|
|
75
79
|
args = [],
|
|
76
80
|
composes = false,
|
|
77
81
|
supergraphSpecification = undefined,
|
|
82
|
+
staticArgumentTransform = undefined,
|
|
78
83
|
}: {
|
|
79
84
|
name: string,
|
|
80
85
|
locations: DirectiveLocation[],
|
|
@@ -82,6 +87,7 @@ export function createDirectiveSpecification({
|
|
|
82
87
|
args?: DirectiveArgumentSpecification[],
|
|
83
88
|
composes?: boolean,
|
|
84
89
|
supergraphSpecification?: (fedVersion: FeatureVersion) => FeatureDefinition,
|
|
90
|
+
staticArgumentTransform?: (subgraph: Subgraph, args: {[key: string]: any}) => {[key: string]: any},
|
|
85
91
|
}): DirectiveSpecification {
|
|
86
92
|
let composition: DirectiveCompositionSpecification | undefined = undefined;
|
|
87
93
|
if (composes) {
|
|
@@ -109,7 +115,7 @@ export function createDirectiveSpecification({
|
|
|
109
115
|
+ `${strategy.name} only supports ${supportedMsg}`
|
|
110
116
|
);
|
|
111
117
|
}
|
|
112
|
-
}
|
|
118
|
+
}
|
|
113
119
|
return {
|
|
114
120
|
merge: (argName, values) => {
|
|
115
121
|
const strategy = argStrategies.get(argName);
|
|
@@ -128,6 +134,7 @@ export function createDirectiveSpecification({
|
|
|
128
134
|
composition = {
|
|
129
135
|
supergraphSpecification,
|
|
130
136
|
argumentsMerger,
|
|
137
|
+
staticArgumentTransform,
|
|
131
138
|
};
|
|
132
139
|
}
|
|
133
140
|
|
package/src/error.ts
CHANGED
|
@@ -325,6 +325,36 @@ const TYPE_KIND_MISMATCH = makeCodeDefinition(
|
|
|
325
325
|
{ ...DEFAULT_METADATA, replaces: ['VALUE_TYPE_KIND_MISMATCH', 'EXTENSION_OF_WRONG_KIND', 'ENUM_MISMATCH_TYPE'] },
|
|
326
326
|
);
|
|
327
327
|
|
|
328
|
+
const CONTEXT_NOT_SET = makeCodeDefinition(
|
|
329
|
+
'CONTEXT_NOT_SET',
|
|
330
|
+
'Context is never set for context trying to be used.',
|
|
331
|
+
{ addedIn: '2.8.0' },
|
|
332
|
+
);
|
|
333
|
+
|
|
334
|
+
const CONTEXT_INVALID_SELECTION= makeCodeDefinition(
|
|
335
|
+
'CONTEXT_INVALID_SELECTION',
|
|
336
|
+
'Selection within @fromContext must resolve to a single field.',
|
|
337
|
+
{ addedIn: '2.8.0' },
|
|
338
|
+
);
|
|
339
|
+
|
|
340
|
+
const NO_CONTEXT_IN_SELECTION = makeCodeDefinition(
|
|
341
|
+
'NO_CONTEXT_IN_SELECTION',
|
|
342
|
+
'Selection in @fromContext field argument does not reference a context.',
|
|
343
|
+
{ addedIn: '2.8.0' },
|
|
344
|
+
);
|
|
345
|
+
|
|
346
|
+
const CONTEXT_NO_RESOLVABLE_KEY = makeCodeDefinition(
|
|
347
|
+
'CONTEXT_NO_RESOLVABLE_KEY',
|
|
348
|
+
'If an ObjectType uses a @fromContext, at least one of its keys must be resolvable.',
|
|
349
|
+
{ addedIn: '2.8.0' },
|
|
350
|
+
);
|
|
351
|
+
|
|
352
|
+
const CONTEXT_NAME_INVALID = makeCodeDefinition(
|
|
353
|
+
'CONTEXT_NAME_INVALID',
|
|
354
|
+
'Context name is invalid.',
|
|
355
|
+
{ addedIn: '2.8.0' },
|
|
356
|
+
);
|
|
357
|
+
|
|
328
358
|
const EXTERNAL_TYPE_MISMATCH = makeCodeDefinition(
|
|
329
359
|
'EXTERNAL_TYPE_MISMATCH',
|
|
330
360
|
'An `@external` field has a type that is incompatible with the declaration(s) of that field in other subgraphs.',
|
|
@@ -561,6 +591,125 @@ const INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE = makeCodeDefinition(
|
|
|
561
591
|
{ addedIn: '2.3.0' },
|
|
562
592
|
)
|
|
563
593
|
|
|
594
|
+
const SOURCE_FEDERATION_VERSION_REQUIRED = makeCodeDefinition(
|
|
595
|
+
'SOURCE_FEDERATION_VERSION_REQUIRED',
|
|
596
|
+
'Schemas using `@source{API,Type,Field}` directives must @link-import v2.7 or later of federation',
|
|
597
|
+
{ addedIn: '2.7.1' },
|
|
598
|
+
);
|
|
599
|
+
|
|
600
|
+
const SOURCE_API_NAME_INVALID = makeCodeDefinition(
|
|
601
|
+
'SOURCE_API_NAME_INVALID',
|
|
602
|
+
'Each `@sourceAPI` directive must take a unique and valid name as an argument',
|
|
603
|
+
{ addedIn: '2.7.0' },
|
|
604
|
+
);
|
|
605
|
+
|
|
606
|
+
const SOURCE_API_PROTOCOL_INVALID = makeCodeDefinition(
|
|
607
|
+
'SOURCE_API_PROTOCOL_INVALID',
|
|
608
|
+
'Each `@sourceAPI` directive must specify exactly one of the known protocols',
|
|
609
|
+
{ addedIn: '2.7.0' },
|
|
610
|
+
);
|
|
611
|
+
|
|
612
|
+
const SOURCE_API_HTTP_BASE_URL_INVALID = makeCodeDefinition(
|
|
613
|
+
'SOURCE_API_HTTP_BASE_URL_INVALID',
|
|
614
|
+
'The `@sourceAPI` directive must specify a valid http.baseURL',
|
|
615
|
+
{ addedIn: '2.7.0' },
|
|
616
|
+
);
|
|
617
|
+
|
|
618
|
+
const SOURCE_HTTP_HEADERS_INVALID = makeCodeDefinition(
|
|
619
|
+
'SOURCE_HTTP_HEADERS_INVALID',
|
|
620
|
+
'The `http.headers` argument of `@source*` directives must specify valid HTTP headers',
|
|
621
|
+
{ addedIn: '2.7.0' },
|
|
622
|
+
);
|
|
623
|
+
|
|
624
|
+
const SOURCE_TYPE_API_ERROR = makeCodeDefinition(
|
|
625
|
+
'SOURCE_TYPE_API_ERROR',
|
|
626
|
+
'The `api` argument of the `@sourceType` directive must match a valid `@sourceAPI` name',
|
|
627
|
+
{ addedIn: '2.7.0' },
|
|
628
|
+
);
|
|
629
|
+
|
|
630
|
+
const SOURCE_TYPE_PROTOCOL_INVALID = makeCodeDefinition(
|
|
631
|
+
'SOURCE_TYPE_PROTOCOL_INVALID',
|
|
632
|
+
'The `@sourceType` directive must specify the same protocol as its corresponding `@sourceAPI`',
|
|
633
|
+
{ addedIn: '2.7.0' },
|
|
634
|
+
);
|
|
635
|
+
|
|
636
|
+
const SOURCE_TYPE_HTTP_METHOD_INVALID = makeCodeDefinition(
|
|
637
|
+
'SOURCE_TYPE_HTTP_METHOD_INVALID',
|
|
638
|
+
'The `@sourceType` directive must specify exactly one of `http.GET` or `http.POST`',
|
|
639
|
+
{ addedIn: '2.7.0' },
|
|
640
|
+
);
|
|
641
|
+
|
|
642
|
+
const SOURCE_TYPE_HTTP_PATH_INVALID = makeCodeDefinition(
|
|
643
|
+
'SOURCE_TYPE_HTTP_PATH_INVALID',
|
|
644
|
+
'The `@sourceType` directive must specify a valid URL template for `http.GET` or `http.POST`',
|
|
645
|
+
{ addedIn: '2.7.0' },
|
|
646
|
+
);
|
|
647
|
+
|
|
648
|
+
const SOURCE_TYPE_HTTP_BODY_INVALID = makeCodeDefinition(
|
|
649
|
+
'SOURCE_TYPE_HTTP_BODY_INVALID',
|
|
650
|
+
'If the `@sourceType` specifies `http.body`, it must be a valid `JSONSelection`',
|
|
651
|
+
{ addedIn: '2.7.0' },
|
|
652
|
+
);
|
|
653
|
+
|
|
654
|
+
const SOURCE_TYPE_ON_NON_OBJECT_OR_NON_ENTITY = makeCodeDefinition(
|
|
655
|
+
'SOURCE_TYPE_ON_NON_OBJECT_OR_NON_ENTITY',
|
|
656
|
+
'The `@sourceType` directive must be applied to an object or interface type that also has `@key`',
|
|
657
|
+
{ addedIn: '2.7.0' },
|
|
658
|
+
);
|
|
659
|
+
|
|
660
|
+
const SOURCE_TYPE_SELECTION_INVALID = makeCodeDefinition(
|
|
661
|
+
'SOURCE_TYPE_SELECTION_INVALID',
|
|
662
|
+
'The `selection` argument of the `@sourceType` directive must be a valid `JSONSelection` that outputs fields of the GraphQL type',
|
|
663
|
+
);
|
|
664
|
+
|
|
665
|
+
const SOURCE_FIELD_API_ERROR = makeCodeDefinition(
|
|
666
|
+
'SOURCE_FIELD_API_ERROR',
|
|
667
|
+
'The `api` argument of the `@sourceField` directive must match a valid `@sourceAPI` name',
|
|
668
|
+
{ addedIn: '2.7.0' },
|
|
669
|
+
);
|
|
670
|
+
|
|
671
|
+
const SOURCE_FIELD_PROTOCOL_INVALID = makeCodeDefinition(
|
|
672
|
+
'SOURCE_FIELD_PROTOCOL_INVALID',
|
|
673
|
+
'If `@sourceField` specifies a protocol, it must match the corresponding `@sourceAPI` protocol',
|
|
674
|
+
{ addedIn: '2.7.0' },
|
|
675
|
+
);
|
|
676
|
+
|
|
677
|
+
const SOURCE_FIELD_HTTP_METHOD_INVALID = makeCodeDefinition(
|
|
678
|
+
'SOURCE_FIELD_HTTP_METHOD_INVALID',
|
|
679
|
+
'The `@sourceField` directive must specify at most one of `http.{GET,POST,PUT,PATCH,DELETE}`',
|
|
680
|
+
{ addedIn: '2.7.0' },
|
|
681
|
+
);
|
|
682
|
+
|
|
683
|
+
const SOURCE_FIELD_HTTP_PATH_INVALID = makeCodeDefinition(
|
|
684
|
+
'SOURCE_FIELD_HTTP_PATH_INVALID',
|
|
685
|
+
'The `@sourceField` directive must specify a valid URL template for `http.{GET,POST,PUT,PATCH,DELETE}`',
|
|
686
|
+
{ addedIn: '2.7.0' },
|
|
687
|
+
);
|
|
688
|
+
|
|
689
|
+
const SOURCE_FIELD_HTTP_BODY_INVALID = makeCodeDefinition(
|
|
690
|
+
'SOURCE_FIELD_HTTP_BODY_INVALID',
|
|
691
|
+
'If `@sourceField` specifies http.body, it must be a valid `JSONSelection` matching available arguments and fields',
|
|
692
|
+
{ addedIn: '2.7.0' },
|
|
693
|
+
);
|
|
694
|
+
|
|
695
|
+
const SOURCE_FIELD_SELECTION_INVALID = makeCodeDefinition(
|
|
696
|
+
'SOURCE_FIELD_SELECTION_INVALID',
|
|
697
|
+
'The `selection` argument of the `@sourceField` directive must be a valid `JSONSelection` that outputs fields of the GraphQL type',
|
|
698
|
+
{ addedIn: '2.7.0' },
|
|
699
|
+
);
|
|
700
|
+
|
|
701
|
+
const SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD = makeCodeDefinition(
|
|
702
|
+
'SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD',
|
|
703
|
+
'The `@sourceField` directive must be applied to a field of the `Query` or `Mutation` types, or of an entity type',
|
|
704
|
+
{ addedIn: '2.7.0' },
|
|
705
|
+
);
|
|
706
|
+
|
|
707
|
+
const CONTEXTUAL_ARGUMENT_NOT_CONTEXTUAL_IN_ALL_SUBGRAPHS = makeCodeDefinition(
|
|
708
|
+
'CONTEXTUAL_ARGUMENT_NOT_CONTEXTUAL_IN_ALL_SUBGRAPHS',
|
|
709
|
+
'Argument on field is marked contextual in only some subgraphs',
|
|
710
|
+
{ addedIn: '2.7.0' },
|
|
711
|
+
);
|
|
712
|
+
|
|
564
713
|
export const ERROR_CATEGORIES = {
|
|
565
714
|
DIRECTIVE_FIELDS_MISSING_EXTERNAL,
|
|
566
715
|
DIRECTIVE_UNSUPPORTED_ON_INTERFACE,
|
|
@@ -603,6 +752,11 @@ export const ERRORS = {
|
|
|
603
752
|
NO_QUERIES,
|
|
604
753
|
INTERFACE_FIELD_NO_IMPLEM,
|
|
605
754
|
TYPE_KIND_MISMATCH,
|
|
755
|
+
CONTEXT_NOT_SET,
|
|
756
|
+
CONTEXT_INVALID_SELECTION,
|
|
757
|
+
NO_CONTEXT_IN_SELECTION,
|
|
758
|
+
CONTEXT_NO_RESOLVABLE_KEY,
|
|
759
|
+
CONTEXT_NAME_INVALID,
|
|
606
760
|
EXTERNAL_TYPE_MISMATCH,
|
|
607
761
|
EXTERNAL_ARGUMENT_MISSING,
|
|
608
762
|
EXTERNAL_ARGUMENT_TYPE_MISMATCH,
|
|
@@ -649,6 +803,27 @@ export const ERRORS = {
|
|
|
649
803
|
INTERFACE_OBJECT_USAGE_ERROR,
|
|
650
804
|
INTERFACE_KEY_NOT_ON_IMPLEMENTATION,
|
|
651
805
|
INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE,
|
|
806
|
+
// Errors related to @sourceAPI, @sourceType, and/or @sourceField
|
|
807
|
+
SOURCE_FEDERATION_VERSION_REQUIRED,
|
|
808
|
+
SOURCE_API_NAME_INVALID,
|
|
809
|
+
SOURCE_API_PROTOCOL_INVALID,
|
|
810
|
+
SOURCE_API_HTTP_BASE_URL_INVALID,
|
|
811
|
+
SOURCE_HTTP_HEADERS_INVALID,
|
|
812
|
+
SOURCE_TYPE_API_ERROR,
|
|
813
|
+
SOURCE_TYPE_PROTOCOL_INVALID,
|
|
814
|
+
SOURCE_TYPE_HTTP_METHOD_INVALID,
|
|
815
|
+
SOURCE_TYPE_HTTP_PATH_INVALID,
|
|
816
|
+
SOURCE_TYPE_HTTP_BODY_INVALID,
|
|
817
|
+
SOURCE_TYPE_ON_NON_OBJECT_OR_NON_ENTITY,
|
|
818
|
+
SOURCE_TYPE_SELECTION_INVALID,
|
|
819
|
+
SOURCE_FIELD_API_ERROR,
|
|
820
|
+
SOURCE_FIELD_PROTOCOL_INVALID,
|
|
821
|
+
SOURCE_FIELD_HTTP_METHOD_INVALID,
|
|
822
|
+
SOURCE_FIELD_HTTP_PATH_INVALID,
|
|
823
|
+
SOURCE_FIELD_HTTP_BODY_INVALID,
|
|
824
|
+
SOURCE_FIELD_SELECTION_INVALID,
|
|
825
|
+
SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD,
|
|
826
|
+
CONTEXTUAL_ARGUMENT_NOT_CONTEXTUAL_IN_ALL_SUBGRAPHS,
|
|
652
827
|
};
|
|
653
828
|
|
|
654
829
|
const codeDefByCode = Object.values(ERRORS).reduce((obj: {[code: string]: ErrorCodeDefinition}, codeDef: ErrorCodeDefinition) => { obj[codeDef.code] = codeDef; return obj; }, {});
|
|
@@ -40,7 +40,7 @@ import { parseSelectionSet } from "./operations";
|
|
|
40
40
|
import fs from 'fs';
|
|
41
41
|
import path from 'path';
|
|
42
42
|
import { validateStringContainsBoolean } from "./utils";
|
|
43
|
-
import { errorCauses, printErrors } from ".";
|
|
43
|
+
import { CONTEXT_VERSIONS, ContextSpecDefinition, DirectiveDefinition, errorCauses, isFederationDirectiveDefinedInSchema, printErrors } from ".";
|
|
44
44
|
|
|
45
45
|
function filteredTypes(
|
|
46
46
|
supergraph: Schema,
|
|
@@ -193,7 +193,7 @@ function typesUsedInFederationDirective(fieldSet: string | undefined, parentType
|
|
|
193
193
|
return usedTypes;
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
export function extractSubgraphsFromSupergraph(supergraph: Schema, validateExtractedSubgraphs: boolean = true): Subgraphs {
|
|
196
|
+
export function extractSubgraphsFromSupergraph(supergraph: Schema, validateExtractedSubgraphs: boolean = true): [Subgraphs, Map<string, string>] {
|
|
197
197
|
const [coreFeatures, joinSpec] = validateSupergraph(supergraph);
|
|
198
198
|
const isFed1 = joinSpec.version.equals(new FeatureVersion(0, 1));
|
|
199
199
|
try {
|
|
@@ -212,6 +212,17 @@ export function extractSubgraphsFromSupergraph(supergraph: Schema, validateExtra
|
|
|
212
212
|
return subgraph;
|
|
213
213
|
};
|
|
214
214
|
|
|
215
|
+
const subgraphNameToGraphEnumValue = new Map<string, string>();
|
|
216
|
+
for (const [k, v] of graphEnumNameToSubgraphName.entries()) {
|
|
217
|
+
subgraphNameToGraphEnumValue.set(v, k);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
const getSubgraphEnumValue = (subgraphName: string): string => {
|
|
221
|
+
const enumValue = subgraphNameToGraphEnumValue.get(subgraphName);
|
|
222
|
+
assert(enumValue, () => `Invalid subgraph name ${subgraphName} found: does not match a subgraph defined in the @join__Graph enum`);
|
|
223
|
+
return enumValue;
|
|
224
|
+
}
|
|
225
|
+
|
|
215
226
|
const types = filteredTypes(supergraph, joinSpec, coreFeatures.coreDefinition);
|
|
216
227
|
const args: ExtractArguments = {
|
|
217
228
|
supergraph,
|
|
@@ -219,6 +230,7 @@ export function extractSubgraphsFromSupergraph(supergraph: Schema, validateExtra
|
|
|
219
230
|
joinSpec,
|
|
220
231
|
filteredTypes: types,
|
|
221
232
|
getSubgraph,
|
|
233
|
+
getSubgraphEnumValue,
|
|
222
234
|
};
|
|
223
235
|
if (isFed1) {
|
|
224
236
|
extractSubgraphsFromFed1Supergraph(args);
|
|
@@ -241,7 +253,7 @@ export function extractSubgraphsFromSupergraph(supergraph: Schema, validateExtra
|
|
|
241
253
|
}
|
|
242
254
|
}
|
|
243
255
|
|
|
244
|
-
return subgraphs;
|
|
256
|
+
return [subgraphs, subgraphNameToGraphEnumValue];
|
|
245
257
|
} catch (e) {
|
|
246
258
|
let error = e;
|
|
247
259
|
let subgraph: Subgraph | undefined = undefined;
|
|
@@ -281,6 +293,7 @@ type ExtractArguments = {
|
|
|
281
293
|
joinSpec: JoinSpecDefinition,
|
|
282
294
|
filteredTypes: NamedType[],
|
|
283
295
|
getSubgraph: (application: Directive<any, { graph?: string }>) => Subgraph | undefined,
|
|
296
|
+
getSubgraphEnumValue: (subgraphName: string) => string
|
|
284
297
|
}
|
|
285
298
|
|
|
286
299
|
type SubgraphTypeInfo<T extends NamedType> = Map<string, { type: T, subgraph: Subgraph }>;
|
|
@@ -297,12 +310,13 @@ type TypesInfo = {
|
|
|
297
310
|
unionTypes: TypeInfo<UnionType>[],
|
|
298
311
|
};
|
|
299
312
|
|
|
300
|
-
function addAllEmptySubgraphTypes({
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
313
|
+
function addAllEmptySubgraphTypes(args: ExtractArguments): TypesInfo {
|
|
314
|
+
const {
|
|
315
|
+
supergraph,
|
|
316
|
+
joinSpec,
|
|
317
|
+
filteredTypes,
|
|
318
|
+
getSubgraph,
|
|
319
|
+
} = args;
|
|
306
320
|
const typeDirective = joinSpec.typeDirective(supergraph);
|
|
307
321
|
|
|
308
322
|
const objOrItfTypes: TypeInfo<ObjectType | InterfaceType>[] = [];
|
|
@@ -316,16 +330,16 @@ function addAllEmptySubgraphTypes({
|
|
|
316
330
|
// (on top of it making sense code-wise since both type behave exactly the same for most of what we're doing here).
|
|
317
331
|
case 'InterfaceType':
|
|
318
332
|
case 'ObjectType':
|
|
319
|
-
objOrItfTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective),
|
|
333
|
+
objOrItfTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective), args) });
|
|
320
334
|
break;
|
|
321
335
|
case 'InputObjectType':
|
|
322
|
-
inputObjTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective),
|
|
336
|
+
inputObjTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective), args) });
|
|
323
337
|
break;
|
|
324
338
|
case 'EnumType':
|
|
325
|
-
enumTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective),
|
|
339
|
+
enumTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective), args) });
|
|
326
340
|
break;
|
|
327
341
|
case 'UnionType':
|
|
328
|
-
unionTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective),
|
|
342
|
+
unionTypes.push({ type, subgraphsInfo: addEmptyType(type, type.appliedDirectivesOf(typeDirective), args) });
|
|
329
343
|
break;
|
|
330
344
|
case 'ScalarType':
|
|
331
345
|
// Scalar are a bit special in that they don't have any sub-component, so we don't track them beyond adding them to the
|
|
@@ -350,8 +364,9 @@ function addAllEmptySubgraphTypes({
|
|
|
350
364
|
function addEmptyType<T extends NamedType>(
|
|
351
365
|
type: T,
|
|
352
366
|
typeApplications: Directive<T, JoinTypeDirectiveArguments>[],
|
|
353
|
-
|
|
367
|
+
args: ExtractArguments,
|
|
354
368
|
): SubgraphTypeInfo<T> {
|
|
369
|
+
const { supergraph, getSubgraph, getSubgraphEnumValue } = args;
|
|
355
370
|
// In fed2, we always mark all types with `@join__type` but making sure.
|
|
356
371
|
assert(typeApplications.length > 0, `Missing @join__type on ${type}`)
|
|
357
372
|
const subgraphsInfo: SubgraphTypeInfo<T> = new Map<string, { type: T, subgraph: Subgraph }>();
|
|
@@ -382,6 +397,33 @@ function addEmptyType<T extends NamedType>(
|
|
|
382
397
|
}
|
|
383
398
|
}
|
|
384
399
|
}
|
|
400
|
+
|
|
401
|
+
const coreFeatures = supergraph.coreFeatures;
|
|
402
|
+
assert(coreFeatures, 'Should have core features');
|
|
403
|
+
const contextFeature = coreFeatures.getByIdentity(ContextSpecDefinition.identity);
|
|
404
|
+
let supergraphContextDirective: DirectiveDefinition<{ name: string}> | undefined;
|
|
405
|
+
if (contextFeature) {
|
|
406
|
+
const contextSpec = CONTEXT_VERSIONS.find(contextFeature.url.version);
|
|
407
|
+
assert(contextSpec, 'Should have context spec');
|
|
408
|
+
supergraphContextDirective = contextSpec.contextDirective(supergraph);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
if (supergraphContextDirective) {
|
|
412
|
+
const contextApplications = type.appliedDirectivesOf(supergraphContextDirective);
|
|
413
|
+
// for every application, apply the context directive to the correct subgraph
|
|
414
|
+
for (const application of contextApplications) {
|
|
415
|
+
const { name } = application.arguments();
|
|
416
|
+
const match = name.match(/^(.*)__([A-Za-z]\w*)$/);
|
|
417
|
+
const graph = match ? match[1] : undefined;
|
|
418
|
+
const context = match ? match[2] : undefined;
|
|
419
|
+
assert(graph, `Invalid context name ${name} found in ${application} on ${application.parent}: does not match the expected pattern`);
|
|
420
|
+
const subgraphInfo = subgraphsInfo.get(getSubgraphEnumValue(graph));
|
|
421
|
+
const contextDirective = subgraphInfo?.subgraph.metadata().contextDirective();
|
|
422
|
+
if (subgraphInfo && contextDirective && isFederationDirectiveDefinedInSchema(contextDirective)) {
|
|
423
|
+
subgraphInfo.type.applyDirective(contextDirective, {name: context});
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
385
427
|
return subgraphsInfo;
|
|
386
428
|
}
|
|
387
429
|
|
|
@@ -610,6 +652,26 @@ function addSubgraphField({
|
|
|
610
652
|
if (joinFieldArgs?.provides) {
|
|
611
653
|
subgraphField.applyDirective(subgraph.metadata().providesDirective(), {'fields': joinFieldArgs.provides});
|
|
612
654
|
}
|
|
655
|
+
if (joinFieldArgs?.contextArguments) {
|
|
656
|
+
const fromContextDirective = subgraph.metadata().fromContextDirective();
|
|
657
|
+
if (!isFederationDirectiveDefinedInSchema(fromContextDirective)) {
|
|
658
|
+
throw new Error(`@fromContext directive is not defined in the subgraph schema: ${subgraph.name}`);
|
|
659
|
+
} else {
|
|
660
|
+
for (const arg of joinFieldArgs.contextArguments) {
|
|
661
|
+
// this code will remove the subgraph name from the context
|
|
662
|
+
const match = arg.context.match(/^.*__([A-Za-z]\w*)$/);
|
|
663
|
+
if (!match) {
|
|
664
|
+
throw new Error(`Invalid context argument: ${arg.context}`);
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
subgraphField.addArgument(arg.name, decodeType(arg.type, subgraph.schema, subgraph.name));
|
|
668
|
+
const argOnField = subgraphField.argument(arg.name);
|
|
669
|
+
argOnField?.applyDirective(fromContextDirective, {
|
|
670
|
+
field: `\$${match[1]} ${arg.selection}`,
|
|
671
|
+
});
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
}
|
|
613
675
|
const external = !!joinFieldArgs?.external;
|
|
614
676
|
if (external) {
|
|
615
677
|
subgraphField.applyDirective(subgraph.metadata().externalDirective());
|