@wundergraph/composition 0.16.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- import { ArgumentNode, DocumentNode, FieldDefinitionNode, FieldNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, SelectionSetNode, StringValueNode, UnionTypeExtensionNode } from 'graphql';
1
+ import { ArgumentNode, DocumentNode, FieldDefinitionNode, FieldNode, InputObjectTypeDefinitionNode, InputObjectTypeExtensionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, SchemaDefinitionNode, SchemaExtensionNode, SelectionSetNode, StringValueNode, UnionTypeExtensionNode } from 'graphql';
2
2
  import { MutableEnumValueDefinitionNode, MutableFieldDefinitionNode, MutableInputValueDefinitionNode, MutableTypeDefinitionNode, ObjectLikeTypeNode } from './ast';
3
- import { UnionTypeDefinitionNode } from 'graphql/index';
3
+ import { EnumTypeDefinitionNode, EnumTypeExtensionNode, ScalarTypeDefinitionNode, ScalarTypeExtensionNode, UnionTypeDefinitionNode } from 'graphql/index';
4
4
  import { DirectiveContainer, NodeContainer } from '../federation/utils';
5
5
  export declare function isObjectLikeNodeEntity(node: ObjectLikeTypeNode): boolean;
6
6
  export declare function isNodeInterfaceObject(node: ObjectTypeDefinitionNode): boolean;
@@ -33,4 +33,11 @@ type ParseResult = {
33
33
  error?: Error;
34
34
  };
35
35
  export declare function safeParse(value: string): ParseResult;
36
+ export type EnumTypeNode = EnumTypeDefinitionNode | EnumTypeExtensionNode;
37
+ export type InputObjectTypeNode = InputObjectTypeDefinitionNode | InputObjectTypeExtensionNode;
38
+ export type InterfaceTypeNode = InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode;
39
+ export type ObjectTypeNode = ObjectTypeDefinitionNode | ObjectTypeExtensionNode;
40
+ export type ScalarTypeNode = ScalarTypeDefinitionNode | ScalarTypeExtensionNode;
41
+ export type SchemaNode = SchemaDefinitionNode | SchemaExtensionNode;
42
+ export type UnionTypeNode = UnionTypeDefinitionNode | UnionTypeExtensionNode;
36
43
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/ast/utils.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,20 @@ import { ConstDirectiveNode, ConstValueNode, DirectiveDefinitionNode, EnumValueD
3
3
  import { ConstValueNodeWithValue, MutableInputValueDefinitionNode, MutableTypeDefinitionNode } from '../ast/ast';
4
4
  import { ArgumentContainer, ArgumentMap, DeprecatedDirectiveContainer, DirectiveContainer, DirectiveMap, FederationResultContainer, FieldContainer, InterfaceContainer, MergeMethod, ObjectContainer, ParentMap, PersistedDirectivesContainer, RootTypeFieldData } from './utils';
5
5
  import { InternalSubgraph, Subgraph } from '../subgraph/subgraph';
6
- import { EntityContainer, EntityContainerByTypeName, EntityInterfaceFederationData, InvalidRequiredArgument } from '../utils/utils';
7
- import { ArgumentConfigurationData } from '../subgraph/router-configuration';
6
+ import { AuthorizationData, EntityContainer, EntityContainerByTypeName, EntityInterfaceFederationData, InvalidRequiredArgument } from '../utils/utils';
7
+ import { FieldConfiguration } from '../router-configuration/router-configuration';
8
8
  export declare class FederationFactory {
9
+ authorizationDataByParentTypeName: Map<string, AuthorizationData>;
9
10
  abstractToConcreteTypeNames: Map<string, Set<string>>;
10
11
  areFieldsExternal: boolean;
11
12
  areFieldsShareable: boolean;
12
13
  argumentTypeNameSet: Set<string>;
13
- argumentConfigurations: ArgumentConfigurationData[];
14
+ fieldConfigurationByFieldPath: Map<string, FieldConfiguration>;
14
15
  entityInterfaceFederationDataByTypeName: Map<string, EntityInterfaceFederationData>;
15
16
  executableDirectives: Set<string>;
16
17
  parentTypeName: string;
17
18
  persistedDirectives: Set<string>;
19
+ persistedDirectiveDefinitions: Set<string>;
18
20
  currentSubgraphName: string;
19
21
  childName: string;
20
22
  directiveDefinitions: DirectiveMap;
@@ -38,8 +40,9 @@ export declare class FederationFactory {
38
40
  rootTypeNames: Set<string>;
39
41
  internalSubgraphBySubgraphName: Map<string, InternalSubgraph>;
40
42
  shareableErrorTypeNames: Map<string, Set<string>>;
43
+ renamedTypeNameByOriginalTypeName: Map<string, string>;
41
44
  warnings: string[];
42
- constructor(entityContainersByTypeName: EntityContainerByTypeName, entityInterfaceFederationDataByTypeName: Map<string, EntityInterfaceFederationData>, internalSubgraphBySubgraphName: Map<string, InternalSubgraph>, warnings?: string[]);
45
+ constructor(authorizationDataByParentTypeName: Map<string, AuthorizationData>, entityContainersByTypeName: EntityContainerByTypeName, entityInterfaceFederationDataByTypeName: Map<string, EntityInterfaceFederationData>, internalSubgraphBySubgraphName: Map<string, InternalSubgraph>, warnings?: string[]);
43
46
  isObjectRootType(node: ObjectTypeDefinitionNode | ObjectTypeExtensionNode): boolean;
44
47
  populateMultiGraphAndRenameOperations(subgraphs: Map<string, InternalSubgraph>): void;
45
48
  getEnumMergeMethod(enumName: string): MergeMethod;
@@ -52,7 +55,6 @@ export declare class FederationFactory {
52
55
  isFieldEntityKey(): boolean;
53
56
  isFieldExternal(node: FieldDefinitionNode): boolean;
54
57
  isFieldShareable(node: FieldDefinitionNode): boolean;
55
- getOverrideTargetSubgraphName(node: FieldDefinitionNode): string;
56
58
  upsertDirectiveNode(node: DirectiveDefinitionNode): void;
57
59
  isShareabilityOfAllFieldInstancesValid(fieldContainer: FieldContainer): boolean;
58
60
  upsertFieldNode(node: FieldDefinitionNode): void;
@@ -64,6 +66,7 @@ export declare class FederationFactory {
64
66
  getAndValidateImplementedInterfaces(container: ObjectContainer | InterfaceContainer): NamedTypeNode[];
65
67
  mergeArguments(container: FieldContainer | DirectiveContainer, args: MutableInputValueDefinitionNode[], errors: InvalidRequiredArgument[], argumentNames?: string[]): void;
66
68
  addValidExecutableDirectiveDefinition(directiveName: string, directiveContainer: DirectiveContainer, definitions: MutableTypeDefinitionNode[]): void;
69
+ pushAuthorizationDirectives(fieldContainer: FieldContainer, parentTypeName: string): void;
67
70
  getMergedFieldDefinitionNode(fieldContainer: FieldContainer, parentTypeName: string): FieldDefinitionNode;
68
71
  upsertDeprecatedDirective(directive: ConstDirectiveNode, deprecatedDirectiveContainer: DeprecatedDirectiveContainer): void;
69
72
  mergeTagDirectives(directive: ConstDirectiveNode, map: Map<string, ConstDirectiveNode>): void;
@@ -75,6 +78,7 @@ export declare class FederationFactory {
75
78
  evaluateResolvabilityOfObject(parentContainer: ObjectContainer, rootTypeFieldData: RootTypeFieldData, currentFieldPath: string, evaluatedObjectLikes: Set<string>, entityAncestors: string[], isParentAbstract?: boolean): void;
76
79
  evaluateResolvabilityOfAbstractType(abstractTypeName: string, abstractKind: Kind, rootTypeFieldData: RootTypeFieldData, currentFieldPath: string, evaluatedObjectLikes: Set<string>, entityAncestors: string[]): void;
77
80
  validateKeyFieldSetsForImplicitEntity(entityContainer: EntityContainer): void;
81
+ handleAuthorizationDataForRenamedTypes(): void;
78
82
  federate(): FederationResultContainer;
79
83
  }
80
84
  export declare function federateSubgraphs(subgraphs: Subgraph[]): FederationResultContainer;
@@ -17,15 +17,17 @@ const normalization_factory_1 = require("../normalization/normalization-factory"
17
17
  const utils_4 = require("../normalization/utils");
18
18
  const index_1 = require("graphql/index");
19
19
  class FederationFactory {
20
+ authorizationDataByParentTypeName;
20
21
  abstractToConcreteTypeNames = new Map();
21
22
  areFieldsExternal = false;
22
23
  areFieldsShareable = false;
23
24
  argumentTypeNameSet = new Set();
24
- argumentConfigurations = [];
25
+ fieldConfigurationByFieldPath = new Map();
25
26
  entityInterfaceFederationDataByTypeName;
26
27
  executableDirectives = new Set();
27
28
  parentTypeName = '';
28
29
  persistedDirectives = new Set([string_constants_1.DEPRECATED, string_constants_1.INACCESSIBLE, string_constants_1.TAG]);
30
+ persistedDirectiveDefinitions = new Set([string_constants_1.AUTHENTICATED, string_constants_1.DEPRECATED, string_constants_1.INACCESSIBLE, string_constants_1.TAG, string_constants_1.REQUIRES_SCOPES]);
29
31
  currentSubgraphName = '';
30
32
  childName = '';
31
33
  directiveDefinitions = new Map();
@@ -49,8 +51,10 @@ class FederationFactory {
49
51
  rootTypeNames = new Set([string_constants_1.DEFAULT_MUTATION, string_constants_1.DEFAULT_QUERY, string_constants_1.DEFAULT_SUBSCRIPTION]);
50
52
  internalSubgraphBySubgraphName;
51
53
  shareableErrorTypeNames = new Map();
54
+ renamedTypeNameByOriginalTypeName = new Map();
52
55
  warnings;
53
- constructor(entityContainersByTypeName, entityInterfaceFederationDataByTypeName, internalSubgraphBySubgraphName, warnings) {
56
+ constructor(authorizationDataByParentTypeName, entityContainersByTypeName, entityInterfaceFederationDataByTypeName, internalSubgraphBySubgraphName, warnings) {
57
+ this.authorizationDataByParentTypeName = authorizationDataByParentTypeName;
54
58
  this.entityContainersByTypeName = entityContainersByTypeName;
55
59
  this.entityInterfaceFederationDataByTypeName = entityInterfaceFederationDataByTypeName;
56
60
  this.internalSubgraphBySubgraphName = internalSubgraphBySubgraphName;
@@ -228,26 +232,6 @@ class FederationFactory {
228
232
  isFieldShareable(node) {
229
233
  return (!this.isCurrentSubgraphVersionTwo || this.areFieldsShareable || this.isFieldEntityKey() || (0, utils_1.isNodeShareable)(node));
230
234
  }
231
- getOverrideTargetSubgraphName(node) {
232
- if (!node.directives) {
233
- return '';
234
- }
235
- for (const directive of node.directives) {
236
- if (directive.name.value !== string_constants_1.OVERRIDE) {
237
- continue;
238
- }
239
- // validation was handled earlier
240
- if (!directive.arguments) {
241
- return '';
242
- }
243
- const valueNode = directive.arguments[0].value;
244
- if (valueNode.kind !== graphql_1.Kind.STRING) {
245
- return '';
246
- }
247
- return valueNode.value;
248
- }
249
- return '';
250
- }
251
235
  upsertDirectiveNode(node) {
252
236
  const directiveName = node.name.value;
253
237
  const directiveDefinition = this.directiveDefinitions.get(directiveName);
@@ -280,24 +264,19 @@ class FederationFactory {
280
264
  let shareableFields = 0;
281
265
  let unshareableFields = 0;
282
266
  for (const [subgraphName, isShareable] of fieldContainer.subgraphsByShareable) {
283
- if (isShareable) {
284
- shareableFields += 1;
285
- if (shareableFields && unshareableFields) {
286
- return false;
287
- }
288
- continue;
289
- }
267
+ /*
268
+ shareability is ignored if:
269
+ 1. the field is external
270
+ 2. the field is overridden by another subgraph (in which case it has not been upserted)
271
+ */
290
272
  if (fieldContainer.subgraphsByExternal.get(subgraphName)) {
291
273
  continue;
292
274
  }
293
- // if the current field is overridden, its shareability doesn't matter
294
- if (fieldContainer.overrideTargetSubgraphName === subgraphName) {
295
- continue;
296
- }
297
- // shareability doesn't matter if:
298
- // the field has only been seen exactly twice—the target override and the source override
299
- if (fieldContainer.subgraphNames.size === 2 &&
300
- fieldContainer.subgraphNames.has(fieldContainer.overrideTargetSubgraphName)) {
275
+ if (isShareable) {
276
+ if (unshareableFields) {
277
+ return false;
278
+ }
279
+ shareableFields += 1;
301
280
  continue;
302
281
  }
303
282
  unshareableFields += 1;
@@ -322,12 +301,10 @@ class FederationFactory {
322
301
  const fieldPath = `${this.parentTypeName}.${this.childName}`;
323
302
  const fieldRootTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, node.type);
324
303
  const existingFieldContainer = fieldMap.get(this.childName);
325
- const targetSubgraph = this.getOverrideTargetSubgraphName(node);
326
304
  if (existingFieldContainer) {
327
305
  this.extractPersistedDirectives(node.directives || [], existingFieldContainer.directives);
328
306
  (0, utils_1.setLongestDescriptionForNode)(existingFieldContainer.node, node.description);
329
307
  existingFieldContainer.subgraphNames.add(this.currentSubgraphName);
330
- existingFieldContainer.overrideTargetSubgraphName = targetSubgraph;
331
308
  existingFieldContainer.subgraphsByShareable.set(this.currentSubgraphName, isFieldShareable);
332
309
  existingFieldContainer.subgraphsByExternal.set(this.currentSubgraphName, isFieldExternal);
333
310
  const { typeErrors, typeNode } = (0, type_merging_1.getLeastRestrictiveMergedTypeNode)(existingFieldContainer.node.type, node.type, this.parentTypeName, this.childName);
@@ -344,7 +321,7 @@ class FederationFactory {
344
321
  /* A field is valid if one of the following is true:
345
322
  1. The field is an interface
346
323
  2. The field is external
347
- 3. The existing fields AND the current field are ALL shareable
324
+ 3. Non-external fields are ALL shareable
348
325
  4. All other fields besides the current field are external
349
326
  */
350
327
  if (this.isCurrentParentInterface ||
@@ -371,7 +348,6 @@ class FederationFactory {
371
348
  isShareable: isFieldShareable,
372
349
  node: (0, ast_1.fieldDefinitionNodeToMutable)(node, this.parentTypeName),
373
350
  namedTypeName: fieldRootTypeName,
374
- overrideTargetSubgraphName: targetSubgraph,
375
351
  subgraphNames: new Set([this.currentSubgraphName]),
376
352
  subgraphsByShareable: new Map([[this.currentSubgraphName, isFieldShareable]]),
377
353
  subgraphsByExternal: new Map([[this.currentSubgraphName, isFieldExternal]]),
@@ -769,11 +745,30 @@ class FederationFactory {
769
745
  directiveContainer.node.arguments = args;
770
746
  definitions.push(directiveContainer.node);
771
747
  }
748
+ pushAuthorizationDirectives(fieldContainer, parentTypeName) {
749
+ const authorizationData = this.authorizationDataByParentTypeName.get(parentTypeName);
750
+ if (!authorizationData) {
751
+ return;
752
+ }
753
+ const fieldAuthorizationData = authorizationData.fieldAuthorizationDataByFieldName.get(fieldContainer.node.name.value);
754
+ if (!fieldAuthorizationData) {
755
+ return;
756
+ }
757
+ if (fieldAuthorizationData.requiresAuthentication) {
758
+ fieldContainer.directives.directives.set(string_constants_1.AUTHENTICATED, [(0, utils_3.generateAuthenticatedDirective)()]);
759
+ }
760
+ if (fieldAuthorizationData.requiredScopes.length > 0) {
761
+ fieldContainer.directives.directives.set(string_constants_1.REQUIRES_SCOPES, [
762
+ (0, utils_3.generateRequiresScopesDirective)(fieldAuthorizationData.requiredScopes),
763
+ ]);
764
+ }
765
+ }
772
766
  getMergedFieldDefinitionNode(fieldContainer, parentTypeName) {
773
- if (!fieldContainer.arguments) {
767
+ this.pushAuthorizationDirectives(fieldContainer, parentTypeName);
768
+ (0, utils_1.pushPersistedDirectivesAndGetNode)(fieldContainer);
769
+ if (fieldContainer.arguments.size < 1) {
774
770
  return fieldContainer.node;
775
771
  }
776
- (0, utils_1.pushPersistedDirectivesAndGetNode)(fieldContainer);
777
772
  const fieldName = fieldContainer.node.name.value;
778
773
  const fieldPath = `${parentTypeName}.${fieldName}`;
779
774
  const args = [];
@@ -784,7 +779,7 @@ class FederationFactory {
784
779
  this.errors.push((0, errors_1.invalidRequiredArgumentsError)(string_constants_1.FIELD, fieldPath, errors));
785
780
  }
786
781
  else if (argumentNames.length > 0) {
787
- this.argumentConfigurations.push({
782
+ this.fieldConfigurationByFieldPath.set(`${parentTypeName}.${fieldName}`, {
788
783
  argumentNames,
789
784
  fieldName,
790
785
  typeName: parentTypeName,
@@ -1165,6 +1160,23 @@ class FederationFactory {
1165
1160
  configurationData.keys = keys;
1166
1161
  }
1167
1162
  }
1163
+ handleAuthorizationDataForRenamedTypes() {
1164
+ for (const [originalTypeName, renamedTypeName] of this.renamedTypeNameByOriginalTypeName) {
1165
+ const originalAuthorizationData = this.authorizationDataByParentTypeName.get(originalTypeName);
1166
+ if (!originalAuthorizationData) {
1167
+ continue;
1168
+ }
1169
+ originalAuthorizationData.typeName = renamedTypeName;
1170
+ const renamedAuthorizationData = this.authorizationDataByParentTypeName.get(renamedTypeName);
1171
+ if (!renamedAuthorizationData) {
1172
+ this.authorizationDataByParentTypeName.set(renamedTypeName, originalAuthorizationData);
1173
+ }
1174
+ else {
1175
+ (0, utils_3.addAuthorizationDataProperties)(originalAuthorizationData, renamedAuthorizationData);
1176
+ }
1177
+ this.authorizationDataByParentTypeName.delete(originalTypeName);
1178
+ }
1179
+ }
1168
1180
  federate() {
1169
1181
  this.populateMultiGraphAndRenameOperations(this.internalSubgraphBySubgraphName);
1170
1182
  const factory = this;
@@ -1174,6 +1186,7 @@ class FederationFactory {
1174
1186
  this.keyFieldNamesByParentTypeName = subgraph.keyFieldNamesByParentTypeName;
1175
1187
  (0, subgraph_1.walkSubgraphToFederate)(subgraph.definitions, subgraph.overriddenFieldNamesByParentTypeName, factory);
1176
1188
  }
1189
+ this.handleAuthorizationDataForRenamedTypes();
1177
1190
  for (const [typeName, entityInterfaceData] of this.entityInterfaceFederationDataByTypeName) {
1178
1191
  (0, utils_3.subtractSourceSetFromTargetSet)(entityInterfaceData.interfaceFieldNames, entityInterfaceData.interfaceObjectFieldNames);
1179
1192
  const entityInterface = (0, utils_3.getOrThrowError)(this.parents, typeName, 'parents');
@@ -1231,13 +1244,16 @@ class FederationFactory {
1231
1244
  }
1232
1245
  const definitions = [];
1233
1246
  for (const [directiveName, directiveContainer] of this.directiveDefinitions) {
1234
- if (this.persistedDirectives.has(directiveName)) {
1247
+ if (this.persistedDirectiveDefinitions.has(directiveName)) {
1235
1248
  definitions.push(directiveContainer.node);
1236
1249
  continue;
1237
1250
  }
1238
- // The definitions must be present in all subgraphs to kept in the federated graph
1251
+ // The definitions must be present in all subgraphs to be kept in the federated graph
1239
1252
  this.addValidExecutableDirectiveDefinition(directiveName, directiveContainer, definitions);
1240
1253
  }
1254
+ if (this.directiveDefinitions.has(string_constants_1.REQUIRES_SCOPES)) {
1255
+ definitions.push(constants_1.SCOPE_SCALAR_DEFINITION);
1256
+ }
1241
1257
  for (const [typeName, extension] of this.extensions) {
1242
1258
  this.parentTypeName = typeName;
1243
1259
  if (extension.isRootType && !this.parents.has(typeName)) {
@@ -1464,9 +1480,12 @@ class FederationFactory {
1464
1480
  schema: subgraph.schema,
1465
1481
  });
1466
1482
  }
1483
+ for (const authorizationData of this.authorizationDataByParentTypeName.values()) {
1484
+ (0, utils_3.upsertAuthorizationConfiguration)(this.fieldConfigurationByFieldPath, authorizationData);
1485
+ }
1467
1486
  return {
1468
1487
  federationResult: {
1469
- argumentConfigurations: this.argumentConfigurations,
1488
+ fieldConfigurations: Array.from(this.fieldConfigurationByFieldPath.values()),
1470
1489
  subgraphConfigBySubgraphName,
1471
1490
  federatedGraphAST: newAst,
1472
1491
  federatedGraphSchema: (0, graphql_1.buildASTSchema)(newAst),
@@ -1480,7 +1499,7 @@ function federateSubgraphs(subgraphs) {
1480
1499
  if (subgraphs.length < 1) {
1481
1500
  return { errors: [errors_1.minimumSubgraphRequirementError] };
1482
1501
  }
1483
- const { entityContainerByTypeName, errors, internalSubgraphBySubgraphName, warnings } = (0, normalization_factory_1.batchNormalize)(subgraphs);
1502
+ const { authorizationDataByParentTypeName, entityContainerByTypeName, errors, internalSubgraphBySubgraphName, warnings, } = (0, normalization_factory_1.batchNormalize)(subgraphs);
1484
1503
  if (errors) {
1485
1504
  return { errors };
1486
1505
  }
@@ -1519,7 +1538,7 @@ function federateSubgraphs(subgraphs) {
1519
1538
  ],
1520
1539
  };
1521
1540
  }
1522
- return new FederationFactory(entityContainerByTypeName, entityInterfaceFederationDataByTypeName, internalSubgraphBySubgraphName, warnings).federate();
1541
+ return new FederationFactory(authorizationDataByParentTypeName, entityContainerByTypeName, entityInterfaceFederationDataByTypeName, internalSubgraphBySubgraphName, warnings).federate();
1523
1542
  }
1524
1543
  exports.federateSubgraphs = federateSubgraphs;
1525
1544
  //# sourceMappingURL=federation-factory.js.map