@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.
- package/dist/definitions.d.ts +2 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +14 -2
- package/dist/definitions.js.map +1 -1
- package/dist/error.d.ts +3 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +17 -12
- package/dist/error.js.map +1 -1
- package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
- package/dist/extractSubgraphsFromSupergraph.js +31 -5
- package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
- package/dist/federation.d.ts +14 -6
- package/dist/federation.d.ts.map +1 -1
- package/dist/federation.js +141 -62
- package/dist/federation.js.map +1 -1
- package/dist/federationSpec.d.ts +2 -1
- package/dist/federationSpec.d.ts.map +1 -1
- package/dist/federationSpec.js +9 -1
- package/dist/federationSpec.js.map +1 -1
- package/dist/joinSpec.d.ts +9 -1
- package/dist/joinSpec.d.ts.map +1 -1
- package/dist/joinSpec.js +24 -2
- package/dist/joinSpec.js.map +1 -1
- package/dist/operations.d.ts +12 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +59 -5
- package/dist/operations.js.map +1 -1
- package/dist/schemaUpgrader.d.ts.map +1 -1
- package/dist/schemaUpgrader.js +9 -0
- package/dist/schemaUpgrader.js.map +1 -1
- package/dist/supergraphs.d.ts.map +1 -1
- package/dist/supergraphs.js +1 -0
- package/dist/supergraphs.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/extractSubgraphsFromSupergraph.test.ts +0 -1
- package/src/__tests__/schemaUpgrader.test.ts +43 -0
- package/src/__tests__/subgraphValidation.test.ts +126 -57
- package/src/__tests__/testUtils.ts +28 -0
- package/src/__tests__/values.test.ts +1 -1
- package/src/definitions.ts +12 -0
- package/src/error.ts +34 -16
- package/src/extractSubgraphsFromSupergraph.ts +40 -9
- package/src/federation.ts +178 -73
- package/src/federationSpec.ts +10 -1
- package/src/joinSpec.ts +40 -11
- package/src/operations.ts +76 -8
- package/src/schemaUpgrader.ts +13 -0
- package/src/supergraphs.ts +1 -0
- package/tsconfig.test.tsbuildinfo +1 -1
- 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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
308
|
-
|
|
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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"}
|
package/dist/federation.d.ts
CHANGED
|
@@ -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():
|
|
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:
|
|
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.
|
|
95
|
-
export declare function asFed2SubgraphDocument(document: 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, }: {
|
package/dist/federation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,WAAW,EAEX,SAAS,EACT,mBAAmB,EAGnB,eAAe,EACf,oBAAoB,EACpB,aAAa,EAMb,SAAS,EAET,UAAU,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,YAAY,EAEZ,aAAa,EAEb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
|
package/dist/federation.js
CHANGED
|
@@ -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
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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 (
|
|
250
|
-
|
|
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
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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
|
-
|
|
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.
|
|
684
|
-
function asFed2SubgraphDocument(document) {
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
};
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
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
|
|
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),
|