@apollo/federation-internals 2.2.2 → 2.3.0-alpha.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 (50) hide show
  1. package/dist/definitions.d.ts +2 -0
  2. package/dist/definitions.d.ts.map +1 -1
  3. package/dist/definitions.js +14 -2
  4. package/dist/definitions.js.map +1 -1
  5. package/dist/error.d.ts +3 -1
  6. package/dist/error.d.ts.map +1 -1
  7. package/dist/error.js +17 -12
  8. package/dist/error.js.map +1 -1
  9. package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
  10. package/dist/extractSubgraphsFromSupergraph.js +31 -5
  11. package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
  12. package/dist/federation.d.ts +14 -6
  13. package/dist/federation.d.ts.map +1 -1
  14. package/dist/federation.js +141 -62
  15. package/dist/federation.js.map +1 -1
  16. package/dist/federationSpec.d.ts +2 -1
  17. package/dist/federationSpec.d.ts.map +1 -1
  18. package/dist/federationSpec.js +9 -1
  19. package/dist/federationSpec.js.map +1 -1
  20. package/dist/joinSpec.d.ts +9 -1
  21. package/dist/joinSpec.d.ts.map +1 -1
  22. package/dist/joinSpec.js +24 -2
  23. package/dist/joinSpec.js.map +1 -1
  24. package/dist/operations.d.ts +12 -0
  25. package/dist/operations.d.ts.map +1 -1
  26. package/dist/operations.js +59 -5
  27. package/dist/operations.js.map +1 -1
  28. package/dist/schemaUpgrader.d.ts.map +1 -1
  29. package/dist/schemaUpgrader.js +9 -0
  30. package/dist/schemaUpgrader.js.map +1 -1
  31. package/dist/supergraphs.d.ts.map +1 -1
  32. package/dist/supergraphs.js +1 -0
  33. package/dist/supergraphs.js.map +1 -1
  34. package/package.json +2 -2
  35. package/src/__tests__/extractSubgraphsFromSupergraph.test.ts +0 -1
  36. package/src/__tests__/schemaUpgrader.test.ts +43 -0
  37. package/src/__tests__/subgraphValidation.test.ts +126 -57
  38. package/src/__tests__/testUtils.ts +28 -0
  39. package/src/__tests__/values.test.ts +1 -1
  40. package/src/definitions.ts +12 -0
  41. package/src/error.ts +34 -16
  42. package/src/extractSubgraphsFromSupergraph.ts +40 -9
  43. package/src/federation.ts +178 -73
  44. package/src/federationSpec.ts +10 -1
  45. package/src/joinSpec.ts +40 -11
  46. package/src/operations.ts +76 -8
  47. package/src/schemaUpgrader.ts +13 -0
  48. package/src/supergraphs.ts +1 -0
  49. package/tsconfig.test.tsbuildinfo +1 -1
  50. package/tsconfig.tsbuildinfo +1 -1
@@ -139,7 +139,12 @@ function extractSubgraphsFromSupergraph(supergraph) {
139
139
  const implementsDirective = joinSpec.implementsDirective(supergraph);
140
140
  const ownerDirective = joinSpec.ownerDirective(supergraph);
141
141
  const fieldDirective = joinSpec.fieldDirective(supergraph);
142
- const getSubgraph = (application) => graphEnumNameToSubgraphName.get(application.arguments().graph);
142
+ const unionMemberDirective = joinSpec.unionMemberDirective(supergraph);
143
+ const enumValueDirective = joinSpec.enumValueDirective(supergraph);
144
+ const getSubgraph = (application) => {
145
+ const graph = application.arguments().graph;
146
+ return graph ? graphEnumNameToSubgraphName.get(graph) : undefined;
147
+ };
143
148
  let includeTypeInSubgraph = () => true;
144
149
  if (isFed1) {
145
150
  const reachableTypesBySubgraph = collectFieldReachableTypesForAllSubgraphs(supergraph, subgraphs.names(), (f, name) => {
@@ -188,7 +193,11 @@ function extractSubgraphsFromSupergraph(supergraph) {
188
193
  const schema = subgraphs.get(subgraphName).schema;
189
194
  let subgraphType = schema.type(type.name);
190
195
  if (!subgraphType) {
191
- subgraphType = schema.addType((0, definitions_1.newNamedType)(type.kind, type.name));
196
+ const kind = args.isInterfaceObject ? 'ObjectType' : type.kind;
197
+ subgraphType = schema.addType((0, definitions_1.newNamedType)(kind, type.name));
198
+ if (args.isInterfaceObject) {
199
+ subgraphType.applyDirective('interfaceObject');
200
+ }
192
201
  }
193
202
  if (args.key) {
194
203
  const { resolvable } = args;
@@ -257,6 +266,9 @@ function extractSubgraphsFromSupergraph(supergraph) {
257
266
  }).length > 1;
258
267
  for (const application of fieldApplications) {
259
268
  const args = application.arguments();
269
+ if (!args.graph) {
270
+ continue;
271
+ }
260
272
  const subgraph = subgraphs.get(graphEnumNameToSubgraphName.get(args.graph));
261
273
  const subgraphField = addSubgraphField(field, subgraph, args.type);
262
274
  if (!subgraphField) {
@@ -293,7 +305,11 @@ function extractSubgraphsFromSupergraph(supergraph) {
293
305
  }
294
306
  (0, utils_1.assert)((0, definitions_1.isEnumType)(subgraphEnum), () => `${subgraphEnum} should be an enum but found a ${subgraphEnum.kind}`);
295
307
  for (const value of type.values) {
296
- subgraphEnum.addValue(value.name);
308
+ const addValue = !enumValueDirective
309
+ || value.appliedDirectivesOf(enumValueDirective).some((d) => graphEnumNameToSubgraphName.get(d.arguments().graph) === subgraph.name);
310
+ if (addValue) {
311
+ subgraphEnum.addValue(value.name);
312
+ }
297
313
  }
298
314
  }
299
315
  break;
@@ -304,8 +320,18 @@ function extractSubgraphsFromSupergraph(supergraph) {
304
320
  continue;
305
321
  }
306
322
  (0, utils_1.assert)((0, definitions_1.isUnionType)(subgraphUnion), () => `${subgraphUnion} should be an enum but found a ${subgraphUnion.kind}`);
307
- for (const memberType of type.types()) {
308
- const subgraphType = subgraph.schema.type(memberType.name);
323
+ let membersInSubgraph;
324
+ if (unionMemberDirective) {
325
+ membersInSubgraph = type
326
+ .appliedDirectivesOf(unionMemberDirective)
327
+ .filter((d) => graphEnumNameToSubgraphName.get(d.arguments().graph) === subgraph.name)
328
+ .map((d) => d.arguments().member);
329
+ }
330
+ else {
331
+ membersInSubgraph = type.types().map((t) => t.name);
332
+ }
333
+ for (const memberTypeName of membersInSubgraph) {
334
+ const subgraphType = subgraph.schema.type(memberTypeName);
309
335
  if (subgraphType) {
310
336
  subgraphUnion.addType(subgraphType);
311
337
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extractSubgraphsFromSupergraph.js","sourceRoot":"","sources":["../src/extractSubgraphsFromSupergraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractSubgraphsFromSupergraph.js","sourceRoot":"","sources":["../src/extractSubgraphsFromSupergraph.ts"],"names":[],"mappings":"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"}
@@ -27,10 +27,12 @@ export declare class FederationMetadata {
27
27
  isFieldFakeExternal(field: FieldDefinition<any> | InputFieldDefinition): boolean;
28
28
  selectionSelectsAnyExternalField(selectionSet: SelectionSet): boolean;
29
29
  isFieldShareable(field: FieldDefinition<any>): boolean;
30
+ isInterfaceObjectType(type: NamedType): type is ObjectType;
30
31
  federationDirectiveNameInSchema(name: string): string;
31
32
  federationTypeNameInSchema(name: string): string;
32
33
  private getLegacyFederationDirective;
33
34
  private getFederationDirective;
35
+ private getPost20FederationDirective;
34
36
  keyDirective(): DirectiveDefinition<{
35
37
  fields: any;
36
38
  resolvable?: boolean;
@@ -52,12 +54,11 @@ export declare class FederationMetadata {
52
54
  tagDirective(): DirectiveDefinition<{
53
55
  name: string;
54
56
  }>;
55
- composeDirective(): DirectiveDefinition<{
56
- name: string;
57
- }> | FederationDirectiveNotDefinedInSchema<{
57
+ composeDirective(): Post20FederationDirectiveDefinition<{
58
58
  name: string;
59
59
  }>;
60
60
  inaccessibleDirective(): DirectiveDefinition<{}>;
61
+ interfaceObjectDirective(): Post20FederationDirectiveDefinition<{}>;
61
62
  allFederationDirectives(): DirectiveDefinition[];
62
63
  entityType(): UnionType | undefined;
63
64
  anyType(): ScalarType;
@@ -71,9 +72,13 @@ export declare type FederationDirectiveNotDefinedInSchema<TApplicationArgs exten
71
72
  name: string;
72
73
  applications: () => readonly Directive<any, TApplicationArgs>[];
73
74
  };
75
+ export declare type Post20FederationDirectiveDefinition<TApplicationArgs extends {
76
+ [key: string]: any;
77
+ }> = DirectiveDefinition<TApplicationArgs> | FederationDirectiveNotDefinedInSchema<TApplicationArgs>;
74
78
  export declare function isFederationDirectiveDefinedInSchema<TApplicationArgs extends {
75
79
  [key: string]: any;
76
- }>(definition: DirectiveDefinition<TApplicationArgs> | FederationDirectiveNotDefinedInSchema<TApplicationArgs>): definition is DirectiveDefinition<TApplicationArgs>;
80
+ }>(definition: Post20FederationDirectiveDefinition<TApplicationArgs>): definition is DirectiveDefinition<TApplicationArgs>;
81
+ export declare function hasAppliedDirective(type: NamedType, definition: Post20FederationDirectiveDefinition<any>): boolean;
77
82
  export declare class FederationBlueprint extends SchemaBlueprint {
78
83
  private readonly withRootTypeRenaming;
79
84
  constructor(withRootTypeRenaming: boolean);
@@ -91,13 +96,16 @@ export declare class FederationBlueprint extends SchemaBlueprint {
91
96
  applyDirectivesAfterParsing(): boolean;
92
97
  }
93
98
  export declare function setSchemaAsFed2Subgraph(schema: Schema): void;
94
- export declare const FEDERATION2_LINK_WITH_FULL_IMPORTS = "@link(url: \"https://specs.apollo.dev/federation/v2.2\", import: [\"@key\", \"@requires\", \"@provides\", \"@external\", \"@tag\", \"@extends\", \"@shareable\", \"@inaccessible\", \"@override\", \"@composeDirective\"])";
95
- export declare function asFed2SubgraphDocument(document: DocumentNode): DocumentNode;
99
+ export declare const FEDERATION2_LINK_WITH_FULL_IMPORTS = "@link(url: \"https://specs.apollo.dev/federation/v2.3\", import: [\"@key\", \"@requires\", \"@provides\", \"@external\", \"@tag\", \"@extends\", \"@shareable\", \"@inaccessible\", \"@override\", \"@composeDirective\", \"@interfaceObject\"])";
100
+ export declare function asFed2SubgraphDocument(document: DocumentNode, options?: {
101
+ addAsSchemaExtension: boolean;
102
+ }): DocumentNode;
96
103
  export declare function printSubgraphNames(names: string[]): string;
97
104
  export declare function federationMetadata(schema: Schema): FederationMetadata | undefined;
98
105
  export declare function isFederationSubgraphSchema(schema: Schema): boolean;
99
106
  export declare function isFederationField(field: FieldDefinition<CompositeType>): boolean;
100
107
  export declare function isEntityType(type: NamedType): boolean;
108
+ export declare function isInterfaceObjectType(type: NamedType): boolean;
101
109
  export declare function buildSubgraph(name: string, url: string, source: DocumentNode | string, withRootTypeRenaming?: boolean): Subgraph;
102
110
  export declare function newEmptyFederation2Schema(config?: SchemaConfig): Schema;
103
111
  export declare function parseFieldSetArgument({ parentType, directive, fieldAccessor, validate, decorateValidationErrors, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeInactiveProvidesAndRequires = exports.addSubgraphToError = exports.addSubgraphToASTNode = exports.Subgraph = exports.FEDERATION_OPERATION_FIELDS = exports.entitiesFieldName = exports.serviceFieldName = exports.FEDERATION_OPERATION_TYPES = exports.entityTypeSpec = exports.serviceTypeSpec = exports.anyTypeSpec = exports.Subgraphs = exports.subgraphsFromServiceList = exports.collectTargetFields = exports.parseFieldSetArgument = exports.newEmptyFederation2Schema = exports.buildSubgraph = exports.isEntityType = exports.isFederationField = exports.isFederationSubgraphSchema = exports.federationMetadata = exports.printSubgraphNames = exports.asFed2SubgraphDocument = exports.FEDERATION2_LINK_WITH_FULL_IMPORTS = exports.setSchemaAsFed2Subgraph = exports.FederationBlueprint = exports.isFederationDirectiveDefinedInSchema = exports.FederationMetadata = exports.collectUsedFields = exports.FEDERATION_UNNAMED_SUBGRAPH_NAME = exports.FEDERATION_RESERVED_SUBGRAPH_NAME = void 0;
3
+ exports.removeInactiveProvidesAndRequires = exports.addSubgraphToError = exports.addSubgraphToASTNode = exports.Subgraph = exports.FEDERATION_OPERATION_FIELDS = exports.entitiesFieldName = exports.serviceFieldName = exports.FEDERATION_OPERATION_TYPES = exports.entityTypeSpec = exports.serviceTypeSpec = exports.anyTypeSpec = exports.Subgraphs = exports.subgraphsFromServiceList = exports.collectTargetFields = exports.parseFieldSetArgument = exports.newEmptyFederation2Schema = exports.buildSubgraph = exports.isInterfaceObjectType = exports.isEntityType = exports.isFederationField = exports.isFederationSubgraphSchema = exports.federationMetadata = exports.printSubgraphNames = exports.asFed2SubgraphDocument = exports.FEDERATION2_LINK_WITH_FULL_IMPORTS = exports.setSchemaAsFed2Subgraph = exports.FederationBlueprint = exports.hasAppliedDirective = exports.isFederationDirectiveDefinedInSchema = exports.FederationMetadata = exports.collectUsedFields = exports.FEDERATION_UNNAMED_SUBGRAPH_NAME = exports.FEDERATION_RESERVED_SUBGRAPH_NAME = void 0;
4
4
  const definitions_1 = require("./definitions");
5
5
  const utils_1 = require("./utils");
6
6
  const specifiedRules_1 = require("graphql/validation/specifiedRules");
@@ -149,12 +149,12 @@ function fieldSetTargetDescription(directive) {
149
149
  const targetKind = directive.parent instanceof definitions_1.FieldDefinition ? "field" : "type";
150
150
  return `${targetKind} "${(_a = directive.parent) === null || _a === void 0 ? void 0 : _a.coordinate}"`;
151
151
  }
152
- function validateAllFieldSet({ definition, targetTypeExtractor, errorCollector, metadata, isOnParentType = false, allowOnNonExternalLeafFields = false, allowFieldsWithArguments = false, onFields, }) {
152
+ function validateAllFieldSet({ definition, targetTypeExtractor, errorCollector, metadata, isOnParentType = false, allowOnNonExternalLeafFields = false, allowFieldsWithArguments = false, allowOnInterface = false, onFields, }) {
153
153
  for (const application of definition.applications()) {
154
154
  const elt = application.parent;
155
155
  const type = targetTypeExtractor(elt);
156
156
  const parentType = isOnParentType ? type : elt.parent;
157
- if ((0, definitions_1.isInterfaceType)(parentType)) {
157
+ if ((0, definitions_1.isInterfaceType)(parentType) && !allowOnInterface) {
158
158
  const code = error_1.ERROR_CATEGORIES.DIRECTIVE_UNSUPPORTED_ON_INTERFACE.get(definition.name);
159
159
  errorCollector.push(code.err(isOnParentType
160
160
  ? `Cannot use ${definition.coordinate} on interface "${parentType.coordinate}": ${definition.coordinate} is not yet supported on interfaces`
@@ -230,31 +230,49 @@ function validateNoExternalOnInterfaceFields(metadata, errorCollector) {
230
230
  }
231
231
  }
232
232
  }
233
- function validateInterfaceRuntimeImplementationFieldsTypes(itf, metadata, errorCollector) {
234
- var _a;
235
- const requiresDirective = (_a = federationMetadata(itf.schema())) === null || _a === void 0 ? void 0 : _a.requiresDirective();
236
- (0, utils_1.assert)(requiresDirective, 'Schema should be a federation subgraph, but @requires directive not found');
237
- const runtimeTypes = itf.possibleRuntimeTypes();
238
- for (const field of itf.fields()) {
239
- const withExternalOrRequires = [];
240
- const typeToImplems = new utils_1.MultiMap();
241
- const nodes = [];
242
- for (const type of runtimeTypes) {
243
- const implemField = type.field(field.name);
244
- if (!implemField)
245
- continue;
246
- if (implemField.sourceAST) {
247
- nodes.push(implemField.sourceAST);
233
+ function validateKeyOnInterfacesAreAlsoOnAllImplementations(metadata, errorCollector) {
234
+ for (const itfType of metadata.schema.interfaceTypes()) {
235
+ const implementations = itfType.possibleRuntimeTypes();
236
+ for (const keyApplication of itfType.appliedDirectivesOf(metadata.keyDirective())) {
237
+ const fields = parseFieldSetArgument({ parentType: itfType, directive: keyApplication, validate: false });
238
+ const isResolvable = !(keyApplication.arguments().resolvable === false);
239
+ const implementationsWithKeyButNotResolvable = new Array();
240
+ const implementationsMissingKey = new Array();
241
+ for (const type of implementations) {
242
+ const matchingApp = type.appliedDirectivesOf(metadata.keyDirective()).find((app) => {
243
+ const appFields = parseFieldSetArgument({ parentType: type, directive: app, validate: false });
244
+ return fields.equals(appFields);
245
+ });
246
+ if (matchingApp) {
247
+ if (isResolvable && matchingApp.arguments().resolvable === false) {
248
+ implementationsWithKeyButNotResolvable.push(type);
249
+ }
250
+ }
251
+ else {
252
+ implementationsMissingKey.push(type);
253
+ }
254
+ }
255
+ if (implementationsMissingKey.length > 0) {
256
+ const typesString = (0, utils_1.printHumanReadableList)(implementationsMissingKey.map((i) => `"${i.coordinate}"`), {
257
+ prefix: 'type',
258
+ prefixPlural: 'types',
259
+ });
260
+ errorCollector.push(error_1.ERRORS.INTERFACE_KEY_NOT_ON_IMPLEMENTATION.err(`Key ${keyApplication} on interface type "${itfType.coordinate}" is missing on implementation ${typesString}.`, { nodes: (0, definitions_1.sourceASTs)(...implementationsMissingKey) }));
248
261
  }
249
- if (metadata.isFieldExternal(implemField) || implemField.hasAppliedDirective(requiresDirective)) {
250
- withExternalOrRequires.push(implemField);
262
+ else if (implementationsWithKeyButNotResolvable.length > 0) {
263
+ const typesString = (0, utils_1.printHumanReadableList)(implementationsWithKeyButNotResolvable.map((i) => `"${i.coordinate}"`), {
264
+ prefix: 'type',
265
+ prefixPlural: 'types',
266
+ });
267
+ errorCollector.push(error_1.ERRORS.INTERFACE_KEY_NOT_ON_IMPLEMENTATION.err(`Key ${keyApplication} on interface type "${itfType.coordinate}" should be resolvable on all implementation types, but is declared with argument "@key(resolvable:)" set to false in ${typesString}.`, { nodes: (0, definitions_1.sourceASTs)(...implementationsWithKeyButNotResolvable) }));
251
268
  }
252
- const returnType = implemField.type;
253
- typeToImplems.add(returnType.toString(), implemField);
254
269
  }
255
- if (withExternalOrRequires.length > 0 && typeToImplems.size > 1) {
256
- const typeToImplemsArray = [...typeToImplems.entries()];
257
- errorCollector.push(error_1.ERRORS.INTERFACE_FIELD_IMPLEM_TYPE_MISMATCH.err(`Some of the runtime implementations of interface field "${field.coordinate}" are marked @external or have a @require (${withExternalOrRequires.map(printFieldCoordinate)}) so all the implementations should use the same type (a current limitation of federation; see https://github.com/apollographql/federation/issues/1257), but ${formatFieldsToReturnType(typeToImplemsArray[0])} while ${(0, utils_1.joinStrings)(typeToImplemsArray.slice(1).map(formatFieldsToReturnType), ' and ')}.`, { nodes }));
270
+ }
271
+ }
272
+ function validateInterfaceObjectsAreOnEntities(metadata, errorCollector) {
273
+ for (const application of metadata.interfaceObjectDirective().applications()) {
274
+ if (!isEntityType(application.parent)) {
275
+ errorCollector.push(error_1.ERRORS.INTERFACE_OBJECT_USAGE_ERROR.err(`The @interfaceObject directive can only be applied to entity types but type "${application.parent.coordinate}" has no @key in this subgraph.`, { nodes: application.parent.sourceAST }));
258
276
  }
259
277
  }
260
278
  }
@@ -284,10 +302,6 @@ function validateShareableNotRepeatedOnSameDeclaration(element, metadata, errorC
284
302
  }
285
303
  }
286
304
  }
287
- const printFieldCoordinate = (f) => `"${f.coordinate}"`;
288
- function formatFieldsToReturnType([type, implems]) {
289
- return `${(0, utils_1.joinStrings)(implems.map(printFieldCoordinate))} ${implems.length == 1 ? 'has' : 'have'} type "${type}"`;
290
- }
291
305
  class FederationMetadata {
292
306
  constructor(schema) {
293
307
  this.schema = schema;
@@ -349,6 +363,10 @@ class FederationMetadata {
349
363
  isFieldShareable(field) {
350
364
  return this.sharingPredicate()(field);
351
365
  }
366
+ isInterfaceObjectType(type) {
367
+ return (0, definitions_1.isObjectType)(type)
368
+ && hasAppliedDirective(type, this.interfaceObjectDirective());
369
+ }
352
370
  federationDirectiveNameInSchema(name) {
353
371
  if (this.isFed2Schema()) {
354
372
  const coreFeatures = this.schema.coreFeatures;
@@ -384,6 +402,13 @@ class FederationMetadata {
384
402
  getFederationDirective(name) {
385
403
  return this.schema.directive(this.federationDirectiveNameInSchema(name));
386
404
  }
405
+ getPost20FederationDirective(name) {
406
+ var _a;
407
+ return (_a = this.getFederationDirective(name)) !== null && _a !== void 0 ? _a : {
408
+ name,
409
+ applications: () => new Array(),
410
+ };
411
+ }
387
412
  keyDirective() {
388
413
  return this.getLegacyFederationDirective(federationSpec_1.FederationDirectiveName.KEY);
389
414
  }
@@ -409,15 +434,14 @@ class FederationMetadata {
409
434
  return this.getLegacyFederationDirective(federationSpec_1.FederationDirectiveName.TAG);
410
435
  }
411
436
  composeDirective() {
412
- var _a;
413
- return (_a = this.getFederationDirective(federationSpec_1.FederationDirectiveName.COMPOSE_DIRECTIVE)) !== null && _a !== void 0 ? _a : {
414
- name: federationSpec_1.FederationDirectiveName.COMPOSE_DIRECTIVE,
415
- applications: () => new Array(),
416
- };
437
+ return this.getPost20FederationDirective(federationSpec_1.FederationDirectiveName.COMPOSE_DIRECTIVE);
417
438
  }
418
439
  inaccessibleDirective() {
419
440
  return this.getLegacyFederationDirective(federationSpec_1.FederationDirectiveName.INACCESSIBLE);
420
441
  }
442
+ interfaceObjectDirective() {
443
+ return this.getPost20FederationDirective(federationSpec_1.FederationDirectiveName.INTERFACE_OBJECT);
444
+ }
421
445
  allFederationDirectives() {
422
446
  const baseDirectives = [
423
447
  this.keyDirective(),
@@ -437,6 +461,10 @@ class FederationMetadata {
437
461
  if (isFederationDirectiveDefinedInSchema(composeDirective)) {
438
462
  baseDirectives.push(composeDirective);
439
463
  }
464
+ const interfaceObjectDirective = this.interfaceObjectDirective();
465
+ if (isFederationDirectiveDefinedInSchema(interfaceObjectDirective)) {
466
+ baseDirectives.push(interfaceObjectDirective);
467
+ }
440
468
  return baseDirectives;
441
469
  }
442
470
  entityType() {
@@ -469,6 +497,10 @@ function isFederationDirectiveDefinedInSchema(definition) {
469
497
  return definition instanceof definitions_1.DirectiveDefinition;
470
498
  }
471
499
  exports.isFederationDirectiveDefinedInSchema = isFederationDirectiveDefinedInSchema;
500
+ function hasAppliedDirective(type, definition) {
501
+ return isFederationDirectiveDefinedInSchema(definition) && type.hasAppliedDirective(definition);
502
+ }
503
+ exports.hasAppliedDirective = hasAppliedDirective;
472
504
  class FederationBlueprint extends definitions_1.SchemaBlueprint {
473
505
  constructor(withRootTypeRenaming) {
474
506
  super();
@@ -547,6 +579,7 @@ class FederationBlueprint extends definitions_1.SchemaBlueprint {
547
579
  metadata,
548
580
  isOnParentType: true,
549
581
  allowOnNonExternalLeafFields: true,
582
+ allowOnInterface: metadata.federationFeature().url.version.compareTo(new coreSpec_1.FeatureVersion(2, 3)) >= 0,
550
583
  onFields: field => {
551
584
  const type = (0, definitions_1.baseType)(field.type);
552
585
  if ((0, definitions_1.isUnionType)(type) || (0, definitions_1.isInterfaceType)(type)) {
@@ -580,6 +613,8 @@ class FederationBlueprint extends definitions_1.SchemaBlueprint {
580
613
  });
581
614
  validateNoExternalOnInterfaceFields(metadata, errorCollector);
582
615
  validateAllExternalFieldsUsed(metadata, errorCollector);
616
+ validateKeyOnInterfacesAreAlsoOnAllImplementations(metadata, errorCollector);
617
+ validateInterfaceObjectsAreOnEntities(metadata, errorCollector);
583
618
  const tagDirective = metadata.tagDirective();
584
619
  if (tagDirective) {
585
620
  const error = tagSpec.checkCompatibleDirective(tagDirective);
@@ -587,9 +622,6 @@ class FederationBlueprint extends definitions_1.SchemaBlueprint {
587
622
  errorCollector.push(error);
588
623
  }
589
624
  }
590
- for (const itf of schema.interfaceTypes()) {
591
- validateInterfaceRuntimeImplementationFieldsTypes(itf, metadata, errorCollector);
592
- }
593
625
  for (const objectType of schema.objectTypes()) {
594
626
  validateShareableNotRepeatedOnSameDeclaration(objectType, metadata, errorCollector);
595
627
  for (const field of objectType.fields()) {
@@ -680,30 +712,69 @@ function setSchemaAsFed2Subgraph(schema) {
680
712
  }
681
713
  }
682
714
  exports.setSchemaAsFed2Subgraph = setSchemaAsFed2Subgraph;
683
- exports.FEDERATION2_LINK_WITH_FULL_IMPORTS = '@link(url: "https://specs.apollo.dev/federation/v2.2", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective"])';
684
- function asFed2SubgraphDocument(document) {
685
- const fed2LinkExtension = {
686
- kind: graphql_1.Kind.SCHEMA_EXTENSION,
687
- directives: [{
688
- kind: graphql_1.Kind.DIRECTIVE,
689
- name: { kind: graphql_1.Kind.NAME, value: coreSpec_1.linkDirectiveDefaultName },
690
- arguments: [{
691
- kind: graphql_1.Kind.ARGUMENT,
692
- name: { kind: graphql_1.Kind.NAME, value: 'url' },
693
- value: { kind: graphql_1.Kind.STRING, value: federationSpec.url.toString() }
694
- },
695
- {
696
- kind: graphql_1.Kind.ARGUMENT,
697
- name: { kind: graphql_1.Kind.NAME, value: 'import' },
698
- value: { kind: graphql_1.Kind.LIST, values: federationSpec.directiveSpecs().map((spec) => ({ kind: graphql_1.Kind.STRING, value: `@${spec.name}` })) }
699
- }]
700
- }]
701
- };
702
- return {
703
- kind: graphql_1.Kind.DOCUMENT,
704
- loc: document.loc,
705
- definitions: document.definitions.concat(fed2LinkExtension)
706
- };
715
+ exports.FEDERATION2_LINK_WITH_FULL_IMPORTS = '@link(url: "https://specs.apollo.dev/federation/v2.3", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective", "@interfaceObject"])';
716
+ function asFed2SubgraphDocument(document, options) {
717
+ var _a, _b;
718
+ const directiveToAdd = ({
719
+ kind: graphql_1.Kind.DIRECTIVE,
720
+ name: { kind: graphql_1.Kind.NAME, value: coreSpec_1.linkDirectiveDefaultName },
721
+ arguments: [
722
+ {
723
+ kind: graphql_1.Kind.ARGUMENT,
724
+ name: { kind: graphql_1.Kind.NAME, value: 'url' },
725
+ value: { kind: graphql_1.Kind.STRING, value: federationSpec.url.toString() }
726
+ },
727
+ {
728
+ kind: graphql_1.Kind.ARGUMENT,
729
+ name: { kind: graphql_1.Kind.NAME, value: 'import' },
730
+ value: { kind: graphql_1.Kind.LIST, values: federationSpec.directiveSpecs().map((spec) => ({ kind: graphql_1.Kind.STRING, value: `@${spec.name}` })) }
731
+ }
732
+ ]
733
+ });
734
+ if ((_a = options === null || options === void 0 ? void 0 : options.addAsSchemaExtension) !== null && _a !== void 0 ? _a : true) {
735
+ return {
736
+ kind: graphql_1.Kind.DOCUMENT,
737
+ loc: document.loc,
738
+ definitions: document.definitions.concat({
739
+ kind: graphql_1.Kind.SCHEMA_EXTENSION,
740
+ directives: [directiveToAdd]
741
+ }),
742
+ };
743
+ }
744
+ const existingSchemaDefinition = document.definitions.find((d) => d.kind == graphql_1.Kind.SCHEMA_DEFINITION);
745
+ if (existingSchemaDefinition) {
746
+ return {
747
+ kind: graphql_1.Kind.DOCUMENT,
748
+ loc: document.loc,
749
+ definitions: document.definitions.filter((d) => d !== existingSchemaDefinition).concat([{
750
+ ...existingSchemaDefinition,
751
+ directives: [directiveToAdd].concat((_b = existingSchemaDefinition.directives) !== null && _b !== void 0 ? _b : []),
752
+ }]),
753
+ };
754
+ }
755
+ else {
756
+ const hasMutation = document.definitions.some((d) => d.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION && d.name.value === 'Mutation');
757
+ const makeOpType = (opType, name) => ({
758
+ kind: graphql_1.Kind.OPERATION_TYPE_DEFINITION,
759
+ operation: opType,
760
+ type: {
761
+ kind: graphql_1.Kind.NAMED_TYPE,
762
+ name: {
763
+ kind: graphql_1.Kind.NAME,
764
+ value: name,
765
+ }
766
+ },
767
+ });
768
+ return {
769
+ kind: graphql_1.Kind.DOCUMENT,
770
+ loc: document.loc,
771
+ definitions: document.definitions.concat({
772
+ kind: graphql_1.Kind.SCHEMA_DEFINITION,
773
+ directives: [directiveToAdd],
774
+ operationTypes: [makeOpType(graphql_1.OperationTypeNode.QUERY, 'Query')].concat(hasMutation ? makeOpType(graphql_1.OperationTypeNode.MUTATION, 'Mutation') : []),
775
+ }),
776
+ };
777
+ }
707
778
  }
708
779
  exports.asFed2SubgraphDocument = asFed2SubgraphDocument;
709
780
  function printSubgraphNames(names) {
@@ -730,13 +801,21 @@ function isFederationField(field) {
730
801
  }
731
802
  exports.isFederationField = isFederationField;
732
803
  function isEntityType(type) {
733
- if (type.kind !== "ObjectType") {
804
+ if (!(0, definitions_1.isObjectType)(type) && !(0, definitions_1.isInterfaceType)(type)) {
734
805
  return false;
735
806
  }
736
807
  const metadata = federationMetadata(type.schema());
737
808
  return !!metadata && type.hasAppliedDirective(metadata.keyDirective());
738
809
  }
739
810
  exports.isEntityType = isEntityType;
811
+ function isInterfaceObjectType(type) {
812
+ if (!(0, definitions_1.isObjectType)(type)) {
813
+ return false;
814
+ }
815
+ const metadata = federationMetadata(type.schema());
816
+ return !!metadata && metadata.isInterfaceObjectType(type);
817
+ }
818
+ exports.isInterfaceObjectType = isInterfaceObjectType;
740
819
  function buildSubgraph(name, url, source, withRootTypeRenaming = true) {
741
820
  const buildOptions = {
742
821
  blueprint: new FederationBlueprint(withRootTypeRenaming),