@wundergraph/composition 0.6.2 → 0.7.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.
@@ -13,15 +13,12 @@ const buildASTSchema_1 = require("../buildASTSchema/buildASTSchema");
13
13
  const merge_1 = require("@graphql-tools/merge");
14
14
  const ast_1 = require("../ast/ast");
15
15
  function normalizeSubgraphFromString(subgraph) {
16
- let document;
17
- try {
18
- document = (0, graphql_1.parse)(subgraph);
19
- }
20
- catch (err) {
21
- return { errors: [(0, errors_1.subgraphInvalidSyntaxError)(err)] };
16
+ const { error, documentNode } = (0, utils_1.safeParse)(subgraph);
17
+ if (error || !documentNode) {
18
+ return { errors: [(0, errors_1.subgraphInvalidSyntaxError)(error)] };
22
19
  }
23
20
  const normalizationFactory = new NormalizationFactory();
24
- return normalizationFactory.normalize(document);
21
+ return normalizationFactory.normalize(documentNode);
25
22
  }
26
23
  exports.normalizeSubgraphFromString = normalizeSubgraphFromString;
27
24
  function normalizeSubgraph(document) {
@@ -32,9 +29,11 @@ exports.normalizeSubgraph = normalizeSubgraph;
32
29
  class NormalizationFactory {
33
30
  abstractToConcreteTypeNames = new Map();
34
31
  allDirectiveDefinitions = new Map();
32
+ configurationDataMap = new Map();
35
33
  customDirectiveDefinitions = new Map();
36
34
  errors = [];
37
- entityMap = new Map();
35
+ entities = new Set();
36
+ fieldSetsByParent = new Map();
38
37
  keyFieldsByParentTypeName = new Map();
39
38
  operationTypeNames = new Map();
40
39
  parents = new Map();
@@ -280,14 +279,9 @@ class NormalizationFactory {
280
279
  || !isEntity) {
281
280
  return;
282
281
  }
283
- const existingEntityKeyMap = this.entityMap.get(this.parentTypeName);
284
- const { entityKeyMap, errors } = (0, utils_1.getEntityKeyExtractionResults)(node, existingEntityKeyMap || new Map());
285
- if (errors.length > 0) {
286
- this.errors.push(...errors);
287
- }
288
- if (!existingEntityKeyMap) {
289
- this.entityMap.set(this.parentTypeName, entityKeyMap);
290
- }
282
+ this.entities.add(this.parentTypeName);
283
+ const fieldSets = (0, utils_3.getValueOrDefault)(this.fieldSetsByParent, this.parentTypeName, utils_2.newFieldSetContainer);
284
+ this.extractKeyFieldSets(node, fieldSets.keys);
291
285
  }
292
286
  validateChildDirectives(child, hostPath) {
293
287
  const childKind = child.node.kind;
@@ -363,6 +357,42 @@ class NormalizationFactory {
363
357
  return false;
364
358
  }
365
359
  }
360
+ extractKeyFieldSets(node, rawFieldSets) {
361
+ const parentTypeName = node.name.value;
362
+ if (!node.directives?.length) {
363
+ // This should never happen
364
+ this.errors.push((0, errors_1.expectedEntityError)(parentTypeName));
365
+ return;
366
+ }
367
+ const errorMessages = [];
368
+ for (const directive of node.directives) {
369
+ if (directive.name.value !== string_constants_1.KEY) {
370
+ continue;
371
+ }
372
+ if (!directive.arguments || directive.arguments.length < 1) {
373
+ errorMessages.push((0, errors_1.undefinedRequiredArgumentsErrorMessage)(string_constants_1.KEY, parentTypeName, [string_constants_1.FIELDS]));
374
+ continue;
375
+ }
376
+ for (const arg of directive.arguments) {
377
+ const argumentName = arg.name.value;
378
+ if (arg.name.value === string_constants_1.RESOLVABLE) {
379
+ continue;
380
+ }
381
+ if (arg.name.value !== string_constants_1.FIELDS) {
382
+ errorMessages.push((0, errors_1.unexpectedDirectiveArgumentErrorMessage)(string_constants_1.KEY, argumentName));
383
+ break;
384
+ }
385
+ if (arg.value.kind !== graphql_1.Kind.STRING) {
386
+ errorMessages.push((0, errors_1.invalidKeyDirectiveArgumentErrorMessage)(arg.value.kind));
387
+ break;
388
+ }
389
+ rawFieldSets.add(arg.value.value);
390
+ }
391
+ }
392
+ if (errorMessages.length) {
393
+ this.errors.push((0, errors_1.invalidKeyDirectivesError)(parentTypeName, errorMessages));
394
+ }
395
+ }
366
396
  validateInterfaceImplementations(container) {
367
397
  if (container.interfaces.size < 1) {
368
398
  return;
@@ -564,9 +594,9 @@ class NormalizationFactory {
564
594
  }
565
595
  const fieldPath = `${factory.parentTypeName}.${name}`;
566
596
  factory.isChild = true;
567
- const fieldRootType = (0, type_merging_1.getNamedTypeForChild)(fieldPath, node.type);
568
- if (!constants_1.BASE_SCALARS.has(fieldRootType)) {
569
- factory.referencedTypeNames.add(fieldRootType);
597
+ const fieldNamedTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, node.type);
598
+ if (!constants_1.BASE_SCALARS.has(fieldNamedTypeName)) {
599
+ factory.referencedTypeNames.add(fieldNamedTypeName);
570
600
  }
571
601
  const parent = factory.isCurrentParentExtension
572
602
  ? (0, utils_3.getOrThrowError)(factory.extensions, factory.parentTypeName, string_constants_1.EXTENSIONS)
@@ -578,14 +608,11 @@ class NormalizationFactory {
578
608
  throw (0, errors_1.unexpectedKindFatalError)(factory.parentTypeName);
579
609
  }
580
610
  if (parent.fields.has(name)) {
581
- const error = factory.isCurrentParentExtension
582
- ? (0, errors_1.duplicateFieldExtensionError)(factory.parentTypeName, name)
583
- : (0, errors_1.duplicateFieldDefinitionError)(name, factory.parentTypeName);
584
- factory.errors.push(error);
611
+ factory.errors.push((0, errors_1.duplicateFieldDefinitionError)(name, factory.parentTypeName));
585
612
  return;
586
613
  }
587
614
  // recreate the node so the argument descriptions are updated
588
- parent.fields.set(name, {
615
+ const fieldContainer = {
589
616
  arguments: factory.extractArguments(node, new Map(), fieldPath),
590
617
  directives: factory.extractDirectives(node, new Map()),
591
618
  name,
@@ -595,8 +622,29 @@ class NormalizationFactory {
595
622
  ...arg,
596
623
  description: (0, utils_1.formatDescription)(arg.description),
597
624
  })),
598
- }
599
- });
625
+ },
626
+ };
627
+ parent.fields.set(name, fieldContainer);
628
+ // Only entities will have an existing FieldSet
629
+ const existingFieldSet = factory.fieldSetsByParent.get(factory.parentTypeName);
630
+ if (existingFieldSet) {
631
+ // @requires should only be defined on a field whose parent is an entity
632
+ // If there is existingFieldSet, it's an entity
633
+ (0, utils_2.extractFieldSetValue)(name, existingFieldSet.requires, fieldContainer.directives.get(string_constants_1.REQUIRES));
634
+ // @provides only makes sense on entities, but the field can be encountered before the type definition
635
+ // When the FieldSet is evaluated, it will be checked whether the field is an entity.
636
+ (0, utils_2.extractFieldSetValue)(name, existingFieldSet.provides, fieldContainer.directives.get(string_constants_1.PROVIDES));
637
+ return;
638
+ }
639
+ const providesDirectives = fieldContainer.directives.get(string_constants_1.PROVIDES);
640
+ // Check whether the directive exists to avoid creating unnecessary fieldSet configurations
641
+ if (!providesDirectives) {
642
+ return;
643
+ }
644
+ const fieldSetContainer = (0, utils_3.getValueOrDefault)(factory.fieldSetsByParent, factory.parentTypeName, utils_2.newFieldSetContainer);
645
+ // @provides only makes sense on entities, but the field can be encountered before the type definition
646
+ // When the FieldSet is evaluated, it will be checked whether the field is an entity.
647
+ (0, utils_2.extractFieldSetValue)(name, fieldSetContainer.provides, providesDirectives);
600
648
  },
601
649
  leave() {
602
650
  factory.isChild = false;
@@ -740,14 +788,9 @@ class NormalizationFactory {
740
788
  if (!isEntity) {
741
789
  return;
742
790
  }
743
- const existingEntityKeyMap = factory.entityMap.get(name);
744
- const { entityKeyMap, errors } = (0, utils_1.getEntityKeyExtractionResults)(node, existingEntityKeyMap || new Map());
745
- if (errors.length > 0) {
746
- factory.errors.push(...errors);
747
- }
748
- if (!existingEntityKeyMap) {
749
- factory.entityMap.set(name, entityKeyMap);
750
- }
791
+ factory.entities.add(name);
792
+ const fieldSets = (0, utils_3.getValueOrDefault)(factory.fieldSetsByParent, name, utils_2.newFieldSetContainer);
793
+ factory.extractKeyFieldSets(node, fieldSets.keys);
751
794
  },
752
795
  leave() {
753
796
  factory.isCurrentParentExtension = false;
@@ -911,6 +954,7 @@ class NormalizationFactory {
911
954
  for (const directiveDefinition of constants_1.BASE_DIRECTIVE_DEFINITIONS) {
912
955
  definitions.push(directiveDefinition);
913
956
  }
957
+ definitions.push(constants_1.FIELD_SET_DEFINITION);
914
958
  if (factory.isSubgraphVersionTwo) {
915
959
  for (const directiveDefinition of constants_1.VERSION_TWO_DIRECTIVE_DEFINITIONS) {
916
960
  definitions.push(directiveDefinition);
@@ -923,30 +967,22 @@ class NormalizationFactory {
923
967
  if (this.schemaDefinition.operationTypes.size > 0) {
924
968
  definitions.push((0, utils_2.schemaContainerToNode)(this, this.schemaDefinition));
925
969
  }
926
- // configurationDataMap is map of ConfigurationData per type name.
927
- // It is an Intermediate configuration object that will be converted to an engine configuration in the router
928
- const configurationDataMap = new Map();
929
970
  const validExtensionOrphans = new Set();
930
971
  const parentsToIgnore = new Set();
931
972
  for (const [extensionTypeName, extensionContainer] of this.extensions) {
932
- const entity = this.entityMap.get(extensionTypeName);
973
+ const isEntity = this.entities.has(extensionTypeName);
933
974
  const configurationData = {
934
975
  fieldNames: new Set(),
935
- isRootNode: !!entity,
976
+ isRootNode: isEntity,
936
977
  typeName: extensionTypeName,
937
978
  };
938
- if (entity) {
939
- configurationData.keys = [...entity.keys()].map((selectionSet) => ({
940
- fieldName: '', selectionSet,
941
- }));
942
- }
979
+ this.configurationDataMap.set(extensionTypeName, configurationData);
943
980
  if (extensionContainer.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION) {
944
981
  if (this.operationTypeNames.has(extensionTypeName)) {
945
982
  extensionContainer.fields.delete(string_constants_1.SERVICE_FIELD);
946
983
  extensionContainer.fields.delete(string_constants_1.ENTITIES_FIELD);
947
984
  }
948
- (0, utils_3.addIterableValuesToSet)(extensionContainer.fields.keys(), configurationData.fieldNames);
949
- configurationDataMap.set(extensionTypeName, configurationData);
985
+ (0, utils_2.addNonExternalFieldsToSet)(extensionContainer.fields, configurationData.fieldNames);
950
986
  }
951
987
  const baseType = this.parents.get(extensionTypeName);
952
988
  if (!baseType) {
@@ -954,7 +990,6 @@ class NormalizationFactory {
954
990
  this.errors.push((0, errors_1.noBaseTypeExtensionError)(extensionTypeName));
955
991
  }
956
992
  else {
957
- (0, utils_2.validateEntityKeys)(this, extensionTypeName, true);
958
993
  this.validateInterfaceImplementations(extensionContainer);
959
994
  validExtensionOrphans.add(extensionTypeName);
960
995
  definitions.push((0, utils_2.objectLikeContainerToNode)(this, extensionContainer));
@@ -1006,12 +1041,12 @@ class NormalizationFactory {
1006
1041
  continue;
1007
1042
  }
1008
1043
  baseType.fields.set(fieldName, fieldContainer);
1009
- configurationData.fieldNames.add(fieldName);
1044
+ if (!fieldContainer.arguments.has(string_constants_1.EXTERNAL)) {
1045
+ configurationData.fieldNames.add(fieldName);
1046
+ }
1010
1047
  }
1011
- (0, utils_2.validateEntityKeys)(this, extensionTypeName);
1012
1048
  this.mergeUniqueInterfaces(objectLikeExtension.interfaces, baseType.interfaces, extensionTypeName);
1013
1049
  this.validateInterfaceImplementations(baseType);
1014
- configurationDataMap.set(extensionTypeName, configurationData);
1015
1050
  definitions.push((0, utils_2.objectLikeContainerToNode)(this, baseType, objectLikeExtension));
1016
1051
  break;
1017
1052
  case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
@@ -1041,13 +1076,12 @@ class NormalizationFactory {
1041
1076
  case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
1042
1077
  // intentional fallthrough
1043
1078
  case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
1044
- const entity = this.entityMap.get(parentTypeName);
1079
+ const isEntity = this.entities.has(parentTypeName);
1045
1080
  if (this.operationTypeNames.has(parentTypeName)) {
1046
1081
  parentContainer.fields.delete(string_constants_1.SERVICE_FIELD);
1047
1082
  parentContainer.fields.delete(string_constants_1.ENTITIES_FIELD);
1048
1083
  }
1049
1084
  if (this.parentsWithChildArguments.has(parentTypeName)) {
1050
- const parentContainer = (0, utils_3.getOrThrowError)(this.parents, parentTypeName, string_constants_1.PARENTS);
1051
1085
  if (parentContainer.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION
1052
1086
  && parentContainer.kind !== graphql_1.Kind.INTERFACE_TYPE_DEFINITION) {
1053
1087
  continue;
@@ -1059,18 +1093,12 @@ class NormalizationFactory {
1059
1093
  }
1060
1094
  const configurationData = {
1061
1095
  fieldNames: new Set(),
1062
- isRootNode: !!entity,
1096
+ isRootNode: isEntity,
1063
1097
  typeName: parentTypeName,
1064
1098
  };
1065
- if (entity) {
1066
- configurationData.keys = [...entity.keys()].map((selectionSet) => ({
1067
- fieldName: '', selectionSet,
1068
- }));
1069
- }
1070
- (0, utils_3.addIterableValuesToSet)(parentContainer.fields.keys(), configurationData.fieldNames);
1071
- (0, utils_2.validateEntityKeys)(this, parentTypeName);
1099
+ this.configurationDataMap.set(parentTypeName, configurationData);
1100
+ (0, utils_2.addNonExternalFieldsToSet)(parentContainer.fields, configurationData.fieldNames);
1072
1101
  this.validateInterfaceImplementations(parentContainer);
1073
- configurationDataMap.set(parentTypeName, configurationData);
1074
1102
  definitions.push((0, utils_2.objectLikeContainerToNode)(this, parentContainer));
1075
1103
  break;
1076
1104
  case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
@@ -1111,7 +1139,7 @@ class NormalizationFactory {
1111
1139
  if (!object && !extension) {
1112
1140
  continue;
1113
1141
  }
1114
- const rootNode = configurationDataMap.get(operationTypeName);
1142
+ const rootNode = this.configurationDataMap.get(operationTypeName);
1115
1143
  if (rootNode) {
1116
1144
  rootNode.isRootNode = true;
1117
1145
  rootNode.typeName = defaultTypeName;
@@ -1140,7 +1168,7 @@ class NormalizationFactory {
1140
1168
  }
1141
1169
  }
1142
1170
  for (const referencedTypeName of this.referencedTypeNames) {
1143
- if (this.parents.has(referencedTypeName) || this.entityMap.has(referencedTypeName)) {
1171
+ if (this.parents.has(referencedTypeName) || this.entities.has(referencedTypeName)) {
1144
1172
  continue;
1145
1173
  }
1146
1174
  const extension = this.extensions.get(referencedTypeName);
@@ -1148,6 +1176,16 @@ class NormalizationFactory {
1148
1176
  this.errors.push((0, errors_1.undefinedTypeError)(referencedTypeName));
1149
1177
  }
1150
1178
  }
1179
+ for (const [parentTypeName, fieldSets] of this.fieldSetsByParent) {
1180
+ const parentContainer = this.parents.get(parentTypeName)
1181
+ || this.extensions.get(parentTypeName);
1182
+ if (!parentContainer
1183
+ || (parentContainer.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION && parentContainer.kind != graphql_1.Kind.OBJECT_TYPE_EXTENSION)) {
1184
+ this.errors.push((0, errors_1.undefinedObjectParentError)(parentTypeName));
1185
+ continue;
1186
+ }
1187
+ (0, utils_2.validateDirectivesWithFieldSet)(this, parentContainer, fieldSets);
1188
+ }
1151
1189
  if (this.errors.length > 0) {
1152
1190
  return { errors: this.errors };
1153
1191
  }
@@ -1157,7 +1195,9 @@ class NormalizationFactory {
1157
1195
  };
1158
1196
  return {
1159
1197
  normalizationResult: {
1160
- configurationDataMap,
1198
+ // configurationDataMap is map of ConfigurationData per type name.
1199
+ // It is an Intermediate configuration object that will be converted to an engine configuration in the router
1200
+ configurationDataMap: this.configurationDataMap,
1161
1201
  isVersionTwo: this.isSubgraphVersionTwo,
1162
1202
  keyFieldsByParentTypeName: this.keyFieldsByParentTypeName,
1163
1203
  operationTypes: this.operationTypeNames,
@@ -1 +1 @@
1
- {"version":3,"file":"normalization-factory.js","sourceRoot":"","sources":["../../src/normalization/normalization-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalization-factory.js","sourceRoot":"","sources":["../../src/normalization/normalization-factory.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ConstArgumentNode, ConstDirectiveNode, DirectiveDefinitionNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeDefinitionNode, OperationTypeNode, ScalarTypeDefinitionNode, SchemaDefinitionNode, StringValueNode, UnionTypeDefinitionNode } from 'graphql';
1
+ import { ConstArgumentNode, ConstDirectiveNode, DirectiveDefinitionNode, DocumentNode, EnumTypeDefinitionNode, EnumValueDefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, Kind, NamedTypeNode, NameNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeDefinitionNode, OperationTypeNode, ScalarTypeDefinitionNode, SchemaDefinitionNode, StringValueNode, UnionTypeDefinitionNode } from 'graphql';
2
2
  import { NormalizationFactory } from './normalization-factory';
3
3
  export type EnumContainer = {
4
4
  description?: StringValueNode;
@@ -77,6 +77,12 @@ export type EnumExtensionContainer = {
77
77
  name: NameNode;
78
78
  values: Map<string, EnumValueContainer>;
79
79
  };
80
+ export type FieldSetContainer = {
81
+ keys: Set<string>;
82
+ provides: Map<string, string>;
83
+ requires: Map<string, string>;
84
+ };
85
+ export declare function newFieldSetContainer(): FieldSetContainer;
80
86
  export type InputObjectExtensionContainer = {
81
87
  directives: Map<string, ConstDirectiveNode[]>;
82
88
  fields: Map<string, InputValueContainer>;
@@ -120,10 +126,13 @@ export declare function scalarContainerToNode(factory: NormalizationFactory, bas
120
126
  export declare function schemaContainerToNode(factory: NormalizationFactory, baseSchema: SchemaContainer): SchemaDefinitionNode;
121
127
  export declare function unionContainerToNode(factory: NormalizationFactory, baseUnion: UnionContainer, unionExtension?: UnionExtensionContainer): UnionTypeDefinitionNode;
122
128
  export declare function areNodeKindAndDirectiveLocationCompatible(kind: Kind, directiveDefinitionNode: DirectiveDefinitionNode): boolean;
123
- export declare function validateEntityKeys(factory: NormalizationFactory, objectTypeName: string, isExtension?: boolean): void;
124
129
  export declare function getDirectiveDefinitionArgumentSets(args: readonly InputValueDefinitionNode[], allArguments: Set<string>, requiredArguments: Set<string>): void;
125
130
  export declare function getDefinedArgumentsForDirective(args: readonly ConstArgumentNode[], allArguments: Set<string>, directiveName: string, hostPath: string, errorMessages: string[]): Set<string>;
126
131
  export type InputValidationContainer = {
127
132
  hasUnhandledError: boolean;
128
133
  typeString: string;
129
134
  };
135
+ export declare function addNonExternalFieldsToSet(fields: Map<string, FieldContainer>, fieldNames: Set<string>): void;
136
+ export declare function extractFieldSetValue(name: string, map: Map<string, string>, directives?: ConstDirectiveNode[]): void;
137
+ export declare function getNormalizedFieldSet(documentNode: DocumentNode): string;
138
+ export declare function validateDirectivesWithFieldSet(factory: NormalizationFactory, parentContainer: ObjectContainer | ObjectExtensionContainer, fieldSetContainer: FieldSetContainer): void;