@apollo/federation-internals 2.5.7 → 2.6.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.
Files changed (87) hide show
  1. package/dist/definitions.d.ts +1 -1
  2. package/dist/definitions.d.ts.map +1 -1
  3. package/dist/definitions.js +2 -2
  4. package/dist/definitions.js.map +1 -1
  5. package/dist/directiveAndTypeSpecification.d.ts +1 -1
  6. package/dist/directiveAndTypeSpecification.d.ts.map +1 -1
  7. package/dist/extractSubgraphsFromSupergraph.js +1 -1
  8. package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
  9. package/dist/federation.d.ts +5 -2
  10. package/dist/federation.d.ts.map +1 -1
  11. package/dist/federation.js +13 -6
  12. package/dist/federation.js.map +1 -1
  13. package/dist/index.d.ts +7 -7
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +7 -7
  16. package/dist/index.js.map +1 -1
  17. package/dist/knownCoreFeatures.d.ts +1 -1
  18. package/dist/knownCoreFeatures.d.ts.map +1 -1
  19. package/dist/schemaUpgrader.js +1 -1
  20. package/dist/schemaUpgrader.js.map +1 -1
  21. package/dist/{authenticatedSpec.d.ts → specs/authenticatedSpec.d.ts} +0 -4
  22. package/dist/specs/authenticatedSpec.d.ts.map +1 -0
  23. package/dist/{authenticatedSpec.js → specs/authenticatedSpec.js} +2 -5
  24. package/dist/specs/authenticatedSpec.js.map +1 -0
  25. package/dist/{coreSpec.d.ts → specs/coreSpec.d.ts} +2 -2
  26. package/dist/specs/coreSpec.d.ts.map +1 -0
  27. package/dist/{coreSpec.js → specs/coreSpec.js} +8 -8
  28. package/dist/specs/coreSpec.js.map +1 -0
  29. package/dist/{federationSpec.d.ts → specs/federationSpec.d.ts} +4 -3
  30. package/dist/specs/federationSpec.d.ts.map +1 -0
  31. package/dist/{federationSpec.js → specs/federationSpec.js} +12 -6
  32. package/dist/specs/federationSpec.js.map +1 -0
  33. package/dist/{inaccessibleSpec.d.ts → specs/inaccessibleSpec.d.ts} +2 -2
  34. package/dist/specs/inaccessibleSpec.d.ts.map +1 -0
  35. package/dist/{inaccessibleSpec.js → specs/inaccessibleSpec.js} +5 -5
  36. package/dist/specs/inaccessibleSpec.js.map +1 -0
  37. package/dist/{joinSpec.d.ts → specs/joinSpec.d.ts} +2 -2
  38. package/dist/specs/joinSpec.d.ts.map +1 -0
  39. package/dist/{joinSpec.js → specs/joinSpec.js} +3 -3
  40. package/dist/specs/joinSpec.js.map +1 -0
  41. package/dist/specs/policySpec.d.ts +12 -0
  42. package/dist/specs/policySpec.d.ts.map +1 -0
  43. package/dist/specs/policySpec.js +52 -0
  44. package/dist/specs/policySpec.js.map +1 -0
  45. package/dist/{requiresScopesSpec.d.ts → specs/requiresScopesSpec.d.ts} +0 -4
  46. package/dist/specs/requiresScopesSpec.d.ts.map +1 -0
  47. package/dist/{requiresScopesSpec.js → specs/requiresScopesSpec.js} +5 -8
  48. package/dist/specs/requiresScopesSpec.js.map +1 -0
  49. package/dist/{tagSpec.d.ts → specs/tagSpec.d.ts} +2 -5
  50. package/dist/specs/tagSpec.d.ts.map +1 -0
  51. package/dist/{tagSpec.js → specs/tagSpec.js} +5 -8
  52. package/dist/specs/tagSpec.js.map +1 -0
  53. package/dist/supergraphs.d.ts +1 -1
  54. package/dist/supergraphs.d.ts.map +1 -1
  55. package/dist/supergraphs.js +2 -2
  56. package/dist/supergraphs.js.map +1 -1
  57. package/package.json +2 -2
  58. package/src/definitions.ts +2 -2
  59. package/src/directiveAndTypeSpecification.ts +1 -1
  60. package/src/extractSubgraphsFromSupergraph.ts +2 -2
  61. package/src/federation.ts +15 -6
  62. package/src/index.ts +7 -7
  63. package/src/knownCoreFeatures.ts +1 -1
  64. package/src/schemaUpgrader.ts +1 -1
  65. package/src/{authenticatedSpec.ts → specs/authenticatedSpec.ts} +2 -9
  66. package/src/{coreSpec.ts → specs/coreSpec.ts} +8 -8
  67. package/src/{federationSpec.ts → specs/federationSpec.ts} +13 -6
  68. package/src/{inaccessibleSpec.ts → specs/inaccessibleSpec.ts} +5 -5
  69. package/src/{joinSpec.ts → specs/joinSpec.ts} +4 -4
  70. package/src/specs/policySpec.ts +69 -0
  71. package/src/{requiresScopesSpec.ts → specs/requiresScopesSpec.ts} +5 -11
  72. package/src/{tagSpec.ts → specs/tagSpec.ts} +5 -9
  73. package/src/supergraphs.ts +4 -4
  74. package/dist/authenticatedSpec.d.ts.map +0 -1
  75. package/dist/authenticatedSpec.js.map +0 -1
  76. package/dist/coreSpec.d.ts.map +0 -1
  77. package/dist/coreSpec.js.map +0 -1
  78. package/dist/federationSpec.d.ts.map +0 -1
  79. package/dist/federationSpec.js.map +0 -1
  80. package/dist/inaccessibleSpec.d.ts.map +0 -1
  81. package/dist/inaccessibleSpec.js.map +0 -1
  82. package/dist/joinSpec.d.ts.map +0 -1
  83. package/dist/joinSpec.js.map +0 -1
  84. package/dist/requiresScopesSpec.d.ts.map +0 -1
  85. package/dist/requiresScopesSpec.js.map +0 -1
  86. package/dist/tagSpec.d.ts.map +0 -1
  87. package/dist/tagSpec.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requiresScopesSpec.js","sourceRoot":"","sources":["../../src/specs/requiresScopesSpec.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,yCAMoB;AACpB,gDAAuD;AACvD,oFAA+G;AAC/G,4DAA4D;AAC5D,oFAAmF;AACnF,oCAAkC;AAElC,IAAY,sBAEX;AAFD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;AACjB,CAAC,EAFW,sBAAsB,sCAAtB,sBAAsB,QAEjC;AAED,MAAa,4BAA6B,SAAQ,4BAAiB;IAKjE,YAAY,OAAuB;QACjC,KAAK,CACH,IAAI,qBAAU,CACZ,4BAA4B,CAAC,QAAQ,EACrC,4BAA4B,CAAC,aAAa,EAC1C,OAAO,CACR,CACF,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,IAAA,6DAA6B,EAAC,EAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEzF,IAAI,CAAC,iBAAiB,CAAC,IAAA,4DAA4B,EAAC;YAClD,IAAI,EAAE,4BAA4B,CAAC,aAAa;YAChD,IAAI,EAAE,CAAC;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;wBACxB,IAAA,cAAM,EAAC,OAAO,EAAE,2DAA2D,CAAC,CAAC;wBAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;wBACzE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACzC,IAAA,cAAM,EAAC,SAAS,EAAE,GAAG,EAAE,CAAC,aAAa,SAAS,iBAAiB,CAAC,CAAC;wBACjE,OAAO,IAAI,yBAAW,CAAC,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClG,CAAC;oBACD,mBAAmB,EAAE,+DAA+B,CAAC,KAAK;iBAC3D,CAAC;YACF,SAAS,EAAE;gBACT,2BAAiB,CAAC,gBAAgB;gBAClC,2BAAiB,CAAC,MAAM;gBACxB,2BAAiB,CAAC,SAAS;gBAC3B,2BAAiB,CAAC,MAAM;gBACxB,2BAAiB,CAAC,IAAI;aACvB;YACD,QAAQ,EAAE,IAAI;YACd,uBAAuB,EAAE,GAAG,EAAE,CAAC,gCAAwB,CAAC,MAAM,EAAE;SACjE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC;;AA3CH,oEA4CC;AA3CwB,0CAAa,GAAG,gBAAgB,CAAC;AACjC,qCAAQ,GAC7B,4BAA4B,4BAA4B,CAAC,aAAa,EAAE,CAAC;AA2ChE,QAAA,wBAAwB,GACnC,IAAI,6BAAkB,CACpB,4BAA4B,CAAC,QAAQ,CACtC,CAAC,GAAG,CAAC,IAAI,4BAA4B,CAAC,IAAI,yBAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpE,IAAA,wCAAoB,EAAC,gCAAwB,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { DirectiveLocation, GraphQLError } from "graphql";
2
2
  import { FeatureDefinition, FeatureDefinitions, FeatureVersion } from "./coreSpec";
3
- import { DirectiveDefinition, Schema } from "./definitions";
4
- import { DirectiveSpecification } from "./directiveAndTypeSpecification";
3
+ import { DirectiveDefinition } from "../definitions";
4
+ import { DirectiveSpecification } from "../directiveAndTypeSpecification";
5
5
  export declare const tagIdentity = "https://specs.apollo.dev/tag";
6
6
  export declare class TagSpecDefinition extends FeatureDefinition {
7
7
  readonly tagLocations: DirectiveLocation[];
@@ -10,9 +10,6 @@ export declare class TagSpecDefinition extends FeatureDefinition {
10
10
  constructor(version: FeatureVersion, minimumFederationVersion?: FeatureVersion);
11
11
  private isV01;
12
12
  private isV02;
13
- tagDirective(schema: Schema): DirectiveDefinition<{
14
- name: string;
15
- }>;
16
13
  checkCompatibleDirective(definition: DirectiveDefinition): GraphQLError | undefined;
17
14
  }
18
15
  export declare const TAG_VERSIONS: FeatureDefinitions<TagSpecDefinition>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagSpec.d.ts","sourceRoot":"","sources":["../../src/specs/tagSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAe,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAgC,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAKxG,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,SAAgB,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClD,SAAgB,gBAAgB,EAAE,sBAAsB,CAAC;IACzD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;gBAElC,OAAO,EAAE,cAAc,EAAE,wBAAwB,CAAC,EAAE,cAAc;IAmC9E,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAIb,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,YAAY,GAAG,SAAS;CAYpF;AAED,eAAO,MAAM,YAAY,uCAGwD,CAAC"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TAG_VERSIONS = exports.TagSpecDefinition = exports.tagIdentity = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const coreSpec_1 = require("./coreSpec");
6
- const definitions_1 = require("./definitions");
7
- const directiveAndTypeSpecification_1 = require("./directiveAndTypeSpecification");
8
- const error_1 = require("./error");
9
- const knownCoreFeatures_1 = require("./knownCoreFeatures");
10
- const types_1 = require("./types");
6
+ const definitions_1 = require("../definitions");
7
+ const directiveAndTypeSpecification_1 = require("../directiveAndTypeSpecification");
8
+ const error_1 = require("../error");
9
+ const knownCoreFeatures_1 = require("../knownCoreFeatures");
10
+ const types_1 = require("../types");
11
11
  exports.tagIdentity = 'https://specs.apollo.dev/tag';
12
12
  class TagSpecDefinition extends coreSpec_1.FeatureDefinition {
13
13
  constructor(version, minimumFederationVersion) {
@@ -43,9 +43,6 @@ class TagSpecDefinition extends coreSpec_1.FeatureDefinition {
43
43
  isV02() {
44
44
  return this.version.equals(new coreSpec_1.FeatureVersion(0, 2));
45
45
  }
46
- tagDirective(schema) {
47
- return this.directive(schema, 'tag');
48
- }
49
46
  checkCompatibleDirective(definition) {
50
47
  const hasUnknownArguments = Object.keys(definition.arguments()).length > 1;
51
48
  const nameArg = definition.argument('name');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagSpec.js","sourceRoot":"","sources":["../../src/specs/tagSpec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DocumentNode } from "graphql";
2
2
  import { CoreFeatures, Schema } from "./definitions";
3
- import { JoinSpecDefinition } from "./joinSpec";
3
+ import { JoinSpecDefinition } from "./specs/joinSpec";
4
4
  import { Subgraphs } from ".";
5
5
  export declare const DEFAULT_SUPPORTED_SUPERGRAPH_FEATURES: Set<string>;
6
6
  export declare function validateSupergraph(supergraph: Schema): [CoreFeatures, JoinSpecDefinition];
@@ -1 +1 @@
1
- {"version":3,"file":"supergraphs.d.ts","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAI7E,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,eAAO,MAAM,qCAAqC,aAWhD,CAAC;AAwCH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAezF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,qBAAa,UAAU;IAMnB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAE5E,OAAO,CAAC,UAAU,CAAC,CAAY;gBAGpB,MAAM,EAAE,MAAM,EACvB,iBAAiB,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAA4C,EAC5D,cAAc,GAAE,OAAc;IAiBjD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE;IAe9H,iBAAiB,IAAI,SAAS;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE;IAI3D,SAAS,IAAI,SAAS;IAUtB,SAAS,IAAI,MAAM;CAGpB"}
1
+ {"version":3,"file":"supergraphs.d.ts","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAInF,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,eAAO,MAAM,qCAAqC,aAWhD,CAAC;AAwCH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAezF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,qBAAa,UAAU;IAMnB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAE5E,OAAO,CAAC,UAAU,CAAC,CAAY;gBAGpB,MAAM,EAAE,MAAM,EACvB,iBAAiB,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAA4C,EAC5D,cAAc,GAAE,OAAc;IAiBjD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE;IAe9H,iBAAiB,IAAI,SAAS;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE;IAI3D,SAAS,IAAI,SAAS;IAUtB,SAAS,IAAI,MAAM;CAGpB"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Supergraph = exports.isFed1Supergraph = exports.validateSupergraph = exports.DEFAULT_SUPPORTED_SUPERGRAPH_FEATURES = void 0;
4
- const coreSpec_1 = require("./coreSpec");
4
+ const coreSpec_1 = require("./specs/coreSpec");
5
5
  const definitions_1 = require("./definitions");
6
- const joinSpec_1 = require("./joinSpec");
6
+ const joinSpec_1 = require("./specs/joinSpec");
7
7
  const buildSchema_1 = require("./buildSchema");
8
8
  const extractSubgraphsFromSupergraph_1 = require("./extractSubgraphsFromSupergraph");
9
9
  const error_1 = require("./error");
@@ -1 +1 @@
1
- {"version":3,"file":"supergraphs.js","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":";;;AACA,yCAA4E;AAC5E,+CAAiE;AACjE,yCAA6E;AAC7E,+CAAgE;AAChE,qFAA8H;AAC9H,mCAAiC;AAGpB,QAAA,qCAAqC,GAAG,IAAI,GAAG,CAAC;IAC3D,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,qBAAU,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAOxF,SAAS,mBAAmB,CAAC,YAA0B,EAAE,iBAA8B;IACrF,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IAC3C,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE;QACnD,MAAM,kBAAkB,GAAG,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACjF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,0BAA0B,CAAC,GAAG,CAC/C,mDAAmD,UAAU,CAAC,GAAG,CAAC,OAAO,GAAG;gBAC5E,+FAA+F,EAC/F;gBACE,KAAK,EAAE,IAAA,wBAAU,EAAC,UAAU,CAAC,SAAS,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACrF,CACF,CAAC,CAAC;SACJ;KACF;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE;QAChD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE;YACrH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACvD,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,0BAA0B,CAAC,GAAG,CAC/C,WAAW,OAAO,CAAC,GAAG,YAAY,OAAO,CAAC,OAAO,qBAAqB,EACtE,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CACvC,CAAC,CAAC;aACJ;SACF;KACF;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;KAClC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;KAC7F;IACD,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;KAC9F;IACD,MAAM,QAAQ,GAAG,wBAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAC5C,0DAA0D,WAAW,CAAC,GAAG,CAAC,OAAO,yBAAyB,wBAAa,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACrJ;IACD,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAfD,gDAeC;AAED,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,yBAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAFD,4CAEC;AAED,MAAa,UAAU;IAKrB,YACW,MAAc,EACvB,oBAAwC,6CAAqC,EAC5D,iBAA0B,IAAI;QAFtC,WAAM,GAAN,MAAM,CAAQ;QAEN,mBAAc,GAAd,cAAc,CAAgB;QAE/C,MAAM,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,iBAAiB,KAAK,IAAI,EAAE;YAC9B,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;SACtD;QAED,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,QAAQ,EAAE,CAAC;SACnB;aAAM;YACL,MAAM,CAAC,WAAW,EAAE,CAAC;SACtB;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAA,2EAA0C,EAAC,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAoC,EAAE,OAA2E;QAE5H,MAAM,MAAM,GAAG,OAAO,aAAa,KAAK,QAAQ;YAC9C,CAAC,CAAC,IAAA,yBAAW,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACjD,CAAC,CAAC,IAAA,gCAAkB,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3D,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAC,CAAC;IACzF,CAAC;IAQD,iBAAiB;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAIpB,IAAI,CAAC,UAAU,GAAG,IAAA,+DAA8B,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACpF;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;CACF;AAzDD,gCAyDC"}
1
+ {"version":3,"file":"supergraphs.js","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/federation-internals",
3
- "version": "2.5.7",
3
+ "version": "2.6.0",
4
4
  "description": "Apollo Federation internal utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "apollo"
19
19
  ],
20
20
  "author": "Apollo <packages@apollographql.com>",
21
- "license": "SEE LICENSE IN ./LICENSE",
21
+ "license": "Elastic-2.0",
22
22
  "engines": {
23
23
  "node": ">=14.15.0"
24
24
  },
@@ -30,7 +30,7 @@ import {
30
30
  findCoreSpecVersion,
31
31
  isCoreSpecDirectiveApplication,
32
32
  removeAllCoreFeatures,
33
- } from "./coreSpec";
33
+ } from "./specs/coreSpec";
34
34
  import { assert, mapValues, MapWithCachedArrays, removeArrayElement } from "./utils";
35
35
  import {
36
36
  withDefaultValues,
@@ -42,7 +42,7 @@ import {
42
42
  argumentsEquals,
43
43
  collectVariablesInValue
44
44
  } from "./values";
45
- import { removeInaccessibleElements } from "./inaccessibleSpec";
45
+ import { removeInaccessibleElements } from "./specs/inaccessibleSpec";
46
46
  import { printDirectiveDefinition, printSchema } from './print';
47
47
  import { sameType } from './types';
48
48
  import { addIntrospectionFields, introspectionFieldNames, isIntrospectionName } from "./introspection";
@@ -23,7 +23,7 @@ import { valueEquals, valueToString } from "./values";
23
23
  import { sameType } from "./types";
24
24
  import { arrayEquals, assert } from "./utils";
25
25
  import { ArgumentCompositionStrategy } from "./argumentCompositionStrategies";
26
- import { FeatureDefinition, FeatureVersion } from "./coreSpec";
26
+ import { FeatureDefinition, FeatureVersion } from "./specs/coreSpec";
27
27
 
28
28
  export type DirectiveSpecification = {
29
29
  name: string,
@@ -28,8 +28,8 @@ import {
28
28
  parseFieldSetArgument,
29
29
  removeInactiveProvidesAndRequires,
30
30
  } from "./federation";
31
- import { CoreSpecDefinition, FeatureVersion } from "./coreSpec";
32
- import { JoinFieldDirectiveArguments, JoinSpecDefinition, JoinTypeDirectiveArguments } from "./joinSpec";
31
+ import { CoreSpecDefinition, FeatureVersion } from "./specs/coreSpec";
32
+ import { JoinFieldDirectiveArguments, JoinSpecDefinition, JoinTypeDirectiveArguments } from "./specs/joinSpec";
33
33
  import { FederationMetadata, Subgraph, Subgraphs } from "./federation";
34
34
  import { assert } from "./utils";
35
35
  import { validateSupergraph } from "./supergraphs";
package/src/federation.ts CHANGED
@@ -49,7 +49,7 @@ import {
49
49
  import { KnownTypeNamesInFederationRule } from "./validation/KnownTypeNamesInFederationRule";
50
50
  import { buildSchema, buildSchemaFromAST } from "./buildSchema";
51
51
  import { parseSelectionSet, SelectionSet } from './operations';
52
- import { TAG_VERSIONS } from "./tagSpec";
52
+ import { TAG_VERSIONS } from "./specs/tagSpec";
53
53
  import {
54
54
  errorCodeDef,
55
55
  ErrorCodeDefinition,
@@ -71,7 +71,7 @@ import {
71
71
  CoreImport,
72
72
  extractCoreFeatureImports,
73
73
  CoreOrLinkDirectiveArgs,
74
- } from "./coreSpec";
74
+ } from "./specs/coreSpec";
75
75
  import {
76
76
  FEDERATION_VERSIONS,
77
77
  federationIdentity,
@@ -79,12 +79,12 @@ import {
79
79
  FederationTypeName,
80
80
  FEDERATION1_TYPES,
81
81
  FEDERATION1_DIRECTIVES,
82
- } from "./federationSpec";
82
+ } from "./specs/federationSpec";
83
83
  import { defaultPrintOptions, PrintOptions as PrintOptions, printSchema } from "./print";
84
84
  import { createObjectTypeSpecification, createScalarTypeSpecification, createUnionTypeSpecification } from "./directiveAndTypeSpecification";
85
85
  import { didYouMean, suggestionList } from "./suggestions";
86
86
  import { coreFeatureDefinitionIfKnown } from "./knownCoreFeatures";
87
- import { joinIdentity } from "./joinSpec";
87
+ import { joinIdentity } from "./specs/joinSpec";
88
88
 
89
89
  const linkSpec = LINK_VERSIONS.latest();
90
90
  const tagSpec = TAG_VERSIONS.latest();
@@ -770,6 +770,10 @@ export class FederationMetadata {
770
770
  return this.getPost20FederationDirective(FederationDirectiveName.REQUIRES_SCOPES);
771
771
  }
772
772
 
773
+ policyDirective(): Post20FederationDirectiveDefinition<{scopes: string[]}> {
774
+ return this.getPost20FederationDirective(FederationDirectiveName.POLICY);
775
+ }
776
+
773
777
  allFederationDirectives(): DirectiveDefinition[] {
774
778
  const baseDirectives: DirectiveDefinition[] = [
775
779
  this.keyDirective(),
@@ -805,6 +809,11 @@ export class FederationMetadata {
805
809
  baseDirectives.push(requiresScopesDirective);
806
810
  }
807
811
 
812
+ const policyDirective = this.policyDirective();
813
+ if (isFederationDirectiveDefinedInSchema(policyDirective)) {
814
+ baseDirectives.push(policyDirective);
815
+ }
816
+
808
817
  return baseDirectives;
809
818
  }
810
819
 
@@ -1182,9 +1191,9 @@ export function setSchemaAsFed2Subgraph(schema: Schema) {
1182
1191
 
1183
1192
  // This is the full @link declaration as added by `asFed2SubgraphDocument`. It's here primarily for uses by tests that print and match
1184
1193
  // subgraph schema to avoid having to update 20+ tests every time we use a new directive or the order of import changes ...
1185
- export const FEDERATION2_LINK_WITH_FULL_IMPORTS = '@link(url: "https://specs.apollo.dev/federation/v2.5", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective", "@interfaceObject", "@authenticated", "@requiresScopes"])';
1194
+ export const FEDERATION2_LINK_WITH_FULL_IMPORTS = '@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective", "@interfaceObject", "@authenticated", "@requiresScopes", "@policy"])';
1186
1195
  // This is the full @link declaration that is added when upgrading fed v1 subgraphs to v2 version. It should only be used by tests.
1187
- export const FEDERATION2_LINK_WITH_AUTO_EXPANDED_IMPORTS = '@link(url: "https://specs.apollo.dev/federation/v2.5", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective", "@interfaceObject"])';
1196
+ export const FEDERATION2_LINK_WITH_AUTO_EXPANDED_IMPORTS = '@link(url: "https://specs.apollo.dev/federation/v2.6", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective", "@interfaceObject"])';
1188
1197
 
1189
1198
  /**
1190
1199
  * Given a document that is assumed to _not_ be a fed2 schema (it does not have a `@link` to the federation spec),
package/src/index.ts CHANGED
@@ -7,11 +7,11 @@ export * from './types';
7
7
  export * from './operations';
8
8
  export * from './utils';
9
9
  export * from './debug';
10
- export * from './coreSpec';
11
- export * from './joinSpec';
12
- export * from './tagSpec';
13
- export * from './inaccessibleSpec';
14
- export * from './federationSpec';
10
+ export * from './specs/coreSpec';
11
+ export * from './specs/joinSpec';
12
+ export * from './specs/tagSpec';
13
+ export * from './specs/inaccessibleSpec';
14
+ export * from './specs/federationSpec';
15
15
  export * from './supergraphs';
16
16
  export * from './error';
17
17
  export * from './schemaUpgrader';
@@ -20,5 +20,5 @@ export * from './graphQLJSSchemaToAST';
20
20
  export * from './directiveAndTypeSpecification';
21
21
  export { coreFeatureDefinitionIfKnown } from './knownCoreFeatures';
22
22
  export * from './argumentCompositionStrategies';
23
- export * from './authenticatedSpec';
24
- export * from './requiresScopesSpec';
23
+ export * from './specs/authenticatedSpec';
24
+ export * from './specs/requiresScopesSpec';
@@ -1,4 +1,4 @@
1
- import { FeatureDefinition, FeatureDefinitions, FeatureUrl } from "./coreSpec";
1
+ import { FeatureDefinition, FeatureDefinitions, FeatureUrl } from "./specs/coreSpec";
2
2
 
3
3
  const registeredFeatures: Map<string, FeatureDefinitions> = new Map();
4
4
 
@@ -33,7 +33,7 @@ import {
33
33
  } from "./federation";
34
34
  import { assert, firstOf, MultiMap } from "./utils";
35
35
  import { valueEquals } from "./values";
36
- import { FEDERATION1_TYPES } from "./federationSpec";
36
+ import { FEDERATION1_TYPES } from "./specs/federationSpec";
37
37
 
38
38
  export type UpgradeResult = UpgradeSuccess | UpgradeFailure;
39
39
 
@@ -6,9 +6,8 @@ import {
6
6
  FeatureUrl,
7
7
  FeatureVersion,
8
8
  } from "./coreSpec";
9
- import { DirectiveDefinition, Schema } from "./definitions";
10
- import { createDirectiveSpecification } from "./directiveAndTypeSpecification";
11
- import { registerKnownFeature } from "./knownCoreFeatures";
9
+ import { createDirectiveSpecification } from "../directiveAndTypeSpecification";
10
+ import { registerKnownFeature } from "../knownCoreFeatures";
12
11
 
13
12
  export class AuthenticatedSpecDefinition extends FeatureDefinition {
14
13
  public static readonly directiveName = "authenticated";
@@ -38,12 +37,6 @@ export class AuthenticatedSpecDefinition extends FeatureDefinition {
38
37
  }));
39
38
  }
40
39
 
41
- authenticatedDirective(
42
- schema: Schema
43
- ): DirectiveDefinition<{ name: string }> {
44
- return this.directive(schema, AuthenticatedSpecDefinition.directiveName)!;
45
- }
46
-
47
40
  get defaultCorePurpose(): CorePurpose {
48
41
  return 'SECURITY';
49
42
  }
@@ -1,13 +1,13 @@
1
1
  import { ASTNode, DirectiveLocation, GraphQLError, StringValueNode } from "graphql";
2
2
  import { URL } from "url";
3
- import { CoreFeature, Directive, DirectiveDefinition, EnumType, ErrGraphQLAPISchemaValidationFailed, ErrGraphQLValidationFailed, InputType, ListType, NamedType, NonNullType, ScalarType, Schema, SchemaDefinition, SchemaElement, sourceASTs } from "./definitions";
4
- import { sameType } from "./types";
5
- import { assert, findLast, firstOf, MapWithCachedArrays } from './utils';
6
- import { aggregateError, ERRORS } from "./error";
7
- import { valueToString } from "./values";
8
- import { coreFeatureDefinitionIfKnown, registerKnownFeature } from "./knownCoreFeatures";
9
- import { didYouMean, suggestionList } from "./suggestions";
10
- import { ArgumentSpecification, createDirectiveSpecification, createEnumTypeSpecification, createScalarTypeSpecification, DirectiveCompositionSpecification, DirectiveSpecification, TypeSpecification } from "./directiveAndTypeSpecification";
3
+ import { CoreFeature, Directive, DirectiveDefinition, EnumType, ErrGraphQLAPISchemaValidationFailed, ErrGraphQLValidationFailed, InputType, ListType, NamedType, NonNullType, ScalarType, Schema, SchemaDefinition, SchemaElement, sourceASTs } from "../definitions";
4
+ import { sameType } from "../types";
5
+ import { assert, findLast, firstOf, MapWithCachedArrays } from '../utils';
6
+ import { aggregateError, ERRORS } from "../error";
7
+ import { valueToString } from "../values";
8
+ import { coreFeatureDefinitionIfKnown, registerKnownFeature } from "../knownCoreFeatures";
9
+ import { didYouMean, suggestionList } from "../suggestions";
10
+ import { ArgumentSpecification, createDirectiveSpecification, createEnumTypeSpecification, createScalarTypeSpecification, DirectiveCompositionSpecification, DirectiveSpecification, TypeSpecification } from "../directiveAndTypeSpecification";
11
11
 
12
12
  export const coreIdentity = 'https://specs.apollo.dev/core';
13
13
  export const linkIdentity = 'https://specs.apollo.dev/link';
@@ -2,21 +2,22 @@ import {
2
2
  InputType,
3
3
  NonNullType,
4
4
  Schema,
5
- } from "./definitions";
5
+ } from "../definitions";
6
6
  import { FeatureDefinition, FeatureDefinitions, FeatureUrl, FeatureVersion } from "./coreSpec";
7
7
  import {
8
8
  ArgumentSpecification,
9
9
  createDirectiveSpecification,
10
10
  createScalarTypeSpecification,
11
- } from "./directiveAndTypeSpecification";
11
+ } from "../directiveAndTypeSpecification";
12
12
  import { DirectiveLocation } from "graphql";
13
- import { assert } from "./utils";
13
+ import { assert } from "../utils";
14
14
  import { TAG_VERSIONS } from "./tagSpec";
15
- import { federationMetadata } from "./federation";
16
- import { registerKnownFeature } from "./knownCoreFeatures";
15
+ import { federationMetadata } from "../federation";
16
+ import { registerKnownFeature } from "../knownCoreFeatures";
17
17
  import { INACCESSIBLE_VERSIONS } from "./inaccessibleSpec";
18
18
  import { AUTHENTICATED_VERSIONS } from "./authenticatedSpec";
19
19
  import { REQUIRES_SCOPES_VERSIONS } from "./requiresScopesSpec";
20
+ import { POLICY_VERSIONS } from './policySpec';
20
21
 
21
22
  export const federationIdentity = 'https://specs.apollo.dev/federation';
22
23
 
@@ -38,6 +39,7 @@ export enum FederationDirectiveName {
38
39
  INTERFACE_OBJECT = 'interfaceObject',
39
40
  AUTHENTICATED = 'authenticated',
40
41
  REQUIRES_SCOPES = 'requiresScopes',
42
+ POLICY = 'policy',
41
43
  }
42
44
 
43
45
  const fieldSetTypeSpec = createScalarTypeSpecification({ name: FederationTypeName.FIELD_SET });
@@ -149,6 +151,10 @@ export class FederationSpecDefinition extends FeatureDefinition {
149
151
  this.registerSubFeature(AUTHENTICATED_VERSIONS.find(new FeatureVersion(0, 1))!);
150
152
  this.registerSubFeature(REQUIRES_SCOPES_VERSIONS.find(new FeatureVersion(0, 1))!);
151
153
  }
154
+
155
+ if (version >= (new FeatureVersion(2, 6))) {
156
+ this.registerSubFeature(POLICY_VERSIONS.find(new FeatureVersion(0, 1))!);
157
+ }
152
158
  }
153
159
  }
154
160
 
@@ -158,6 +164,7 @@ export const FEDERATION_VERSIONS = new FeatureDefinitions<FederationSpecDefiniti
158
164
  .add(new FederationSpecDefinition(new FeatureVersion(2, 2)))
159
165
  .add(new FederationSpecDefinition(new FeatureVersion(2, 3)))
160
166
  .add(new FederationSpecDefinition(new FeatureVersion(2, 4)))
161
- .add(new FederationSpecDefinition(new FeatureVersion(2, 5)));
167
+ .add(new FederationSpecDefinition(new FeatureVersion(2, 5)))
168
+ .add(new FederationSpecDefinition(new FeatureVersion(2, 6)));
162
169
 
163
170
  registerKnownFeature(FEDERATION_VERSIONS);
@@ -25,12 +25,12 @@ import {
25
25
  SchemaDefinition,
26
26
  SchemaElement,
27
27
  UnionType,
28
- } from "./definitions";
28
+ } from "../definitions";
29
29
  import { GraphQLError, DirectiveLocation } from "graphql";
30
- import { registerKnownFeature } from "./knownCoreFeatures";
31
- import { ERRORS } from "./error";
32
- import { createDirectiveSpecification, DirectiveSpecification } from "./directiveAndTypeSpecification";
33
- import { assert } from "./utils";
30
+ import { registerKnownFeature } from "../knownCoreFeatures";
31
+ import { ERRORS } from "../error";
32
+ import { createDirectiveSpecification, DirectiveSpecification } from "../directiveAndTypeSpecification";
33
+ import { assert } from "../utils";
34
34
 
35
35
  export const inaccessibleIdentity = 'https://specs.apollo.dev/inaccessible';
36
36
 
@@ -6,10 +6,10 @@ import {
6
6
  ScalarType,
7
7
  Schema,
8
8
  NonNullType,
9
- } from "./definitions";
10
- import { Subgraph, Subgraphs } from "./federation";
11
- import { registerKnownFeature } from './knownCoreFeatures';
12
- import { MultiMap } from "./utils";
9
+ } from "../definitions";
10
+ import { Subgraph, Subgraphs } from "../federation";
11
+ import { registerKnownFeature } from '../knownCoreFeatures';
12
+ import { MultiMap } from "../utils";
13
13
 
14
14
  export const joinIdentity = 'https://specs.apollo.dev/join';
15
15
 
@@ -0,0 +1,69 @@
1
+ import { DirectiveLocation } from "graphql";
2
+ import {
3
+ CorePurpose,
4
+ FeatureDefinition,
5
+ FeatureDefinitions,
6
+ FeatureUrl,
7
+ FeatureVersion,
8
+ } from "./coreSpec";
9
+ import { ListType, NonNullType } from "../definitions";
10
+ import { createDirectiveSpecification, createScalarTypeSpecification } from "../directiveAndTypeSpecification";
11
+ import { registerKnownFeature } from "../knownCoreFeatures";
12
+ import { ARGUMENT_COMPOSITION_STRATEGIES } from "../argumentCompositionStrategies";
13
+ import { assert } from "../utils";
14
+
15
+ export enum PolicyTypeName {
16
+ POLICY = 'Policy',
17
+ }
18
+ export class PolicySpecDefinition extends FeatureDefinition {
19
+ public static readonly directiveName = "policy";
20
+ public static readonly identity =
21
+ `https://specs.apollo.dev/${PolicySpecDefinition.directiveName}`;
22
+
23
+ constructor(version: FeatureVersion) {
24
+ super(
25
+ new FeatureUrl(
26
+ PolicySpecDefinition.identity,
27
+ PolicySpecDefinition.directiveName,
28
+ version,
29
+ )
30
+ );
31
+
32
+ this.registerType(createScalarTypeSpecification({ name: PolicyTypeName.POLICY }));
33
+
34
+ this.registerDirective(createDirectiveSpecification({
35
+ name: PolicySpecDefinition.directiveName,
36
+ args: [{
37
+ name: 'policies',
38
+ type: (schema, feature) => {
39
+ assert(feature, "Shouldn't be added without being attached to a @link spec");
40
+ const policyName = feature.typeNameInSchema(PolicyTypeName.POLICY);
41
+ const PolicyType = schema.type(policyName);
42
+ assert(PolicyType, () => `Expected "${policyName}" to be defined`);
43
+ return new NonNullType(new ListType(new NonNullType(new ListType(new NonNullType(PolicyType)))));
44
+ },
45
+ compositionStrategy: ARGUMENT_COMPOSITION_STRATEGIES.UNION,
46
+ }],
47
+ locations: [
48
+ DirectiveLocation.FIELD_DEFINITION,
49
+ DirectiveLocation.OBJECT,
50
+ DirectiveLocation.INTERFACE,
51
+ DirectiveLocation.SCALAR,
52
+ DirectiveLocation.ENUM,
53
+ ],
54
+ composes: true,
55
+ supergraphSpecification: () => POLICY_VERSIONS.latest(),
56
+ }));
57
+ }
58
+
59
+ get defaultCorePurpose(): CorePurpose {
60
+ return 'SECURITY';
61
+ }
62
+ }
63
+
64
+ export const POLICY_VERSIONS =
65
+ new FeatureDefinitions<PolicySpecDefinition>(
66
+ PolicySpecDefinition.identity
67
+ ).add(new PolicySpecDefinition(new FeatureVersion(0, 1)));
68
+
69
+ registerKnownFeature(POLICY_VERSIONS);
@@ -6,11 +6,11 @@ import {
6
6
  FeatureUrl,
7
7
  FeatureVersion,
8
8
  } from "./coreSpec";
9
- import { DirectiveDefinition, ListType, NonNullType, Schema } from "./definitions";
10
- import { createDirectiveSpecification, createScalarTypeSpecification } from "./directiveAndTypeSpecification";
11
- import { registerKnownFeature } from "./knownCoreFeatures";
12
- import { ARGUMENT_COMPOSITION_STRATEGIES } from "./argumentCompositionStrategies";
13
- import { assert } from "./utils";
9
+ import { ListType, NonNullType } from "../definitions";
10
+ import { createDirectiveSpecification, createScalarTypeSpecification } from "../directiveAndTypeSpecification";
11
+ import { registerKnownFeature } from "../knownCoreFeatures";
12
+ import { ARGUMENT_COMPOSITION_STRATEGIES } from "../argumentCompositionStrategies";
13
+ import { assert } from "../utils";
14
14
 
15
15
  export enum RequiresScopesTypeName {
16
16
  SCOPE = 'Scope',
@@ -57,12 +57,6 @@ export class RequiresScopesSpecDefinition extends FeatureDefinition {
57
57
  }));
58
58
  }
59
59
 
60
- requiresScopesDirective(
61
- schema: Schema
62
- ): DirectiveDefinition<{ name: string }> {
63
- return this.directive(schema, RequiresScopesSpecDefinition.directiveName)!;
64
- }
65
-
66
60
  get defaultCorePurpose(): CorePurpose {
67
61
  return 'SECURITY';
68
62
  }
@@ -1,10 +1,10 @@
1
1
  import { DirectiveLocation, GraphQLError } from "graphql";
2
2
  import { FeatureDefinition, FeatureDefinitions, FeatureUrl, FeatureVersion } from "./coreSpec";
3
- import { DirectiveDefinition, NonNullType, Schema } from "./definitions";
4
- import { createDirectiveSpecification, DirectiveSpecification } from "./directiveAndTypeSpecification";
5
- import { ERRORS } from "./error";
6
- import { registerKnownFeature } from "./knownCoreFeatures";
7
- import { sameType } from "./types";
3
+ import { DirectiveDefinition, NonNullType } from "../definitions";
4
+ import { createDirectiveSpecification, DirectiveSpecification } from "../directiveAndTypeSpecification";
5
+ import { ERRORS } from "../error";
6
+ import { registerKnownFeature } from "../knownCoreFeatures";
7
+ import { sameType } from "../types";
8
8
 
9
9
  export const tagIdentity = 'https://specs.apollo.dev/tag';
10
10
 
@@ -56,10 +56,6 @@ export class TagSpecDefinition extends FeatureDefinition {
56
56
  return this.version.equals(new FeatureVersion(0, 2))
57
57
  }
58
58
 
59
- tagDirective(schema: Schema): DirectiveDefinition<{name: string}> {
60
- return this.directive(schema, 'tag')!;
61
- }
62
-
63
59
  checkCompatibleDirective(definition: DirectiveDefinition): GraphQLError | undefined {
64
60
  const hasUnknownArguments = Object.keys(definition.arguments()).length > 1;
65
61
  const nameArg = definition.argument('name');
@@ -1,7 +1,7 @@
1
1
  import { DocumentNode, GraphQLError } from "graphql";
2
- import { ErrCoreCheckFailed, FeatureUrl, FeatureVersion } from "./coreSpec";
2
+ import { ErrCoreCheckFailed, FeatureUrl, FeatureVersion } from "./specs/coreSpec";
3
3
  import { CoreFeatures, Schema, sourceASTs } from "./definitions";
4
- import { joinIdentity, JoinSpecDefinition, JOIN_VERSIONS } from "./joinSpec";
4
+ import { joinIdentity, JoinSpecDefinition, JOIN_VERSIONS } from "./specs/joinSpec";
5
5
  import { buildSchema, buildSchemaFromAST } from "./buildSchema";
6
6
  import { extractSubgraphsNamesAndUrlsFromSupergraph, extractSubgraphsFromSupergraph } from "./extractSubgraphsFromSupergraph";
7
7
  import { ERRORS } from "./error";
@@ -90,11 +90,11 @@ export class Supergraph {
90
90
  private readonly shouldValidate: boolean = true,
91
91
  ) {
92
92
  const [coreFeatures] = validateSupergraph(schema);
93
-
93
+
94
94
  if (supportedFeatures !== null) {
95
95
  checkFeatureSupport(coreFeatures, supportedFeatures);
96
96
  }
97
-
97
+
98
98
  if (shouldValidate) {
99
99
  schema.validate();
100
100
  } else {
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticatedSpec.d.ts","sourceRoot":"","sources":["../src/authenticatedSpec.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAElB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5D,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE,gBAAuB,aAAa,mBAAmB;IACvD,gBAAuB,QAAQ,SAA2E;gBAE9F,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc;IAwB7E,sBAAsB,CACpB,MAAM,EAAE,MAAM,GACb,mBAAmB,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxC,IAAI,kBAAkB,IAAI,WAAW,CAEpC;CACF;AAED,eAAO,MAAM,sBAAsB,iDAQhC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticatedSpec.js","sourceRoot":"","sources":["../src/authenticatedSpec.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAC5C,yCAMoB;AAEpB,mFAA+E;AAC/E,2DAA2D;AAE3D,MAAa,2BAA4B,SAAQ,4BAAiB;IAIhE,YAAY,OAAuB,EAAE,wBAAwC;QAC3E,KAAK,CACH,IAAI,qBAAU,CACZ,2BAA2B,CAAC,QAAQ,EACpC,2BAA2B,CAAC,aAAa,EACzC,OAAO,CACR,EACD,wBAAwB,CACzB,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,IAAA,4DAA4B,EAAC;YAClD,IAAI,EAAE,2BAA2B,CAAC,aAAa;YAC/C,SAAS,EAAE;gBACT,2BAAiB,CAAC,gBAAgB;gBAClC,2BAAiB,CAAC,MAAM;gBACxB,2BAAiB,CAAC,SAAS;gBAC3B,2BAAiB,CAAC,MAAM;gBACxB,2BAAiB,CAAC,IAAI;aACvB;YACD,QAAQ,EAAE,IAAI;YACd,uBAAuB,EAAE,GAAG,EAAE,CAAC,8BAAsB,CAAC,MAAM,EAAE;SAC/D,CAAC,CAAC,CAAC;IACN,CAAC;IAED,sBAAsB,CACpB,MAAc;QAEd,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,aAAa,CAAE,CAAC;IAC5E,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC;;AApCH,kEAqCC;AApCwB,yCAAa,GAAG,eAAe,CAAC;AAChC,oCAAQ,GAAG,4BAA4B,2BAA2B,CAAC,aAAa,EAAE,CAAC;AAqC/F,QAAA,sBAAsB,GACjC,IAAI,6BAAkB,CACpB,2BAA2B,CAAC,QAAQ,CACrC,CAAC,GAAG,CACH,IAAI,2BAA2B,CAC7B,IAAI,yBAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,IAAI,yBAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CACzB,CACF,CAAC;AAEJ,IAAA,wCAAoB,EAAC,8BAAsB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"coreSpec.d.ts","sourceRoot":"","sources":["../src/coreSpec.ts"],"names":[],"mappings":"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"}