@wundergraph/composition 0.35.0 → 0.36.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.
Files changed (44) hide show
  1. package/dist/ast/utils.js.map +1 -1
  2. package/dist/errors/errors.d.ts +16 -16
  3. package/dist/errors/errors.js +81 -82
  4. package/dist/errors/errors.js.map +1 -1
  5. package/dist/federation/federation-factory.d.ts +11 -3
  6. package/dist/federation/federation-factory.js +137 -10
  7. package/dist/federation/federation-factory.js.map +1 -1
  8. package/dist/federation/utils.d.ts +2 -1
  9. package/dist/federation/utils.js +11 -0
  10. package/dist/federation/utils.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/normalization/directive-definition-data.d.ts +25 -0
  15. package/dist/normalization/directive-definition-data.js +559 -0
  16. package/dist/normalization/directive-definition-data.js.map +1 -0
  17. package/dist/normalization/normalization-factory.d.ts +36 -11
  18. package/dist/normalization/normalization-factory.js +678 -124
  19. package/dist/normalization/normalization-factory.js.map +1 -1
  20. package/dist/normalization/utils.d.ts +27 -4
  21. package/dist/normalization/utils.js +31 -114
  22. package/dist/normalization/utils.js.map +1 -1
  23. package/dist/normalization/walkers.js +71 -68
  24. package/dist/normalization/walkers.js.map +1 -1
  25. package/dist/schema-building/ast.d.ts +1 -0
  26. package/dist/schema-building/ast.js +9 -0
  27. package/dist/schema-building/ast.js.map +1 -1
  28. package/dist/schema-building/type-definition-data.d.ts +36 -2
  29. package/dist/schema-building/type-definition-data.js.map +1 -1
  30. package/dist/schema-building/utils.d.ts +10 -20
  31. package/dist/schema-building/utils.js +54 -333
  32. package/dist/schema-building/utils.js.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/dist/utils/composition-version.js +1 -1
  35. package/dist/utils/constants.d.ts +25 -3
  36. package/dist/utils/constants.js +200 -134
  37. package/dist/utils/constants.js.map +1 -1
  38. package/dist/utils/string-constants.d.ts +14 -0
  39. package/dist/utils/string-constants.js +30 -3
  40. package/dist/utils/string-constants.js.map +1 -1
  41. package/dist/utils/utils.d.ts +2 -1
  42. package/dist/utils/utils.js +7 -2
  43. package/dist/utils/utils.js.map +1 -1
  44. package/package.json +3 -2
@@ -3,36 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FieldSetDirective = exports.MergeMethod = void 0;
4
4
  exports.newPersistedDirectivesData = newPersistedDirectivesData;
5
5
  exports.isNodeExternalOrShareable = isNodeExternalOrShareable;
6
- exports.getDefinedArgumentsForDirective = getDefinedArgumentsForDirective;
7
- exports.getDirectiveValidationErrors = getDirectiveValidationErrors;
8
- exports.extractDirectives = extractDirectives;
9
- exports.extractArguments = extractArguments;
10
6
  exports.isTypeRequired = isTypeRequired;
7
+ exports.areDefaultValuesCompatible = areDefaultValuesCompatible;
11
8
  exports.compareAndValidateInputValueDefaultValues = compareAndValidateInputValueDefaultValues;
12
- exports.addEnumValueDataByNode = addEnumValueDataByNode;
13
- exports.addInheritedDirectivesToFieldData = addInheritedDirectivesToFieldData;
14
- exports.addFieldDataByNode = addFieldDataByNode;
15
- exports.addInputValueDataByNode = addInputValueDataByNode;
16
- exports.addPersistedDirectiveDefinitionDataByNode = addPersistedDirectiveDefinitionDataByNode;
17
9
  exports.setMutualExecutableLocations = setMutualExecutableLocations;
18
10
  exports.isTypeNameRootType = isTypeNameRootType;
19
11
  exports.getRenamedRootTypeName = getRenamedRootTypeName;
20
- exports.getEnumNodeByData = getEnumNodeByData;
21
- exports.getInputObjectNodeByData = getInputObjectNodeByData;
22
- exports.getCompositeOutputNodeByData = getCompositeOutputNodeByData;
23
- exports.getScalarNodeByData = getScalarNodeByData;
24
- exports.getSchemaNodeByData = getSchemaNodeByData;
25
- exports.getUnionNodeByData = getUnionNodeByData;
26
- exports.removeInheritableDirectivesFromParentWithFieldsData = removeInheritableDirectivesFromParentWithFieldsData;
12
+ exports.childMapToValueArray = childMapToValueArray;
13
+ exports.removeInheritableDirectivesFromObjectParent = removeInheritableDirectivesFromObjectParent;
14
+ exports.removeIgnoredDirectives = removeIgnoredDirectives;
27
15
  exports.setLongestDescription = setLongestDescription;
28
16
  exports.isParentDataRootType = isParentDataRootType;
29
17
  exports.isParentDataInterfaceType = isParentDataInterfaceType;
30
18
  exports.setParentDataExtensionType = setParentDataExtensionType;
31
19
  exports.extractPersistedDirectives = extractPersistedDirectives;
32
20
  exports.pushAuthorizationDirectives = pushAuthorizationDirectives;
21
+ exports.generateDeprecatedDirective = generateDeprecatedDirective;
33
22
  exports.getClientPersistedDirectiveNodes = getClientPersistedDirectiveNodes;
34
23
  exports.getNodeForRouterSchemaByData = getNodeForRouterSchemaByData;
35
- exports.getNodeWithPersistedDirectivesByFieldData = getNodeWithPersistedDirectivesByFieldData;
36
24
  exports.getClientSchemaFieldNodeByFieldData = getClientSchemaFieldNodeByFieldData;
37
25
  exports.getNodeWithPersistedDirectivesByInputValueData = getNodeWithPersistedDirectivesByInputValueData;
38
26
  exports.getValidFieldArgumentNodes = getValidFieldArgumentNodes;
@@ -45,16 +33,14 @@ exports.isLeafKind = isLeafKind;
45
33
  exports.getSubscriptionFilterValue = getSubscriptionFilterValue;
46
34
  exports.getParentTypeName = getParentTypeName;
47
35
  exports.newConditionalFieldData = newConditionalFieldData;
36
+ exports.getDefinitionDataCoords = getDefinitionDataCoords;
48
37
  const graphql_1 = require("graphql");
49
38
  const type_definition_data_1 = require("./type-definition-data");
50
- const ast_1 = require("./ast");
51
39
  const utils_1 = require("../ast/utils");
52
40
  const errors_1 = require("../errors/errors");
53
41
  const string_constants_1 = require("../utils/string-constants");
54
- const utils_2 = require("../normalization/utils");
55
- const utils_3 = require("../utils/utils");
42
+ const utils_2 = require("../utils/utils");
56
43
  const constants_1 = require("../utils/constants");
57
- const merge_1 = require("@graphql-tools/merge");
58
44
  function newPersistedDirectivesData() {
59
45
  return {
60
46
  deprecatedReason: '',
@@ -83,135 +69,6 @@ function isNodeExternalOrShareable(node, areAllFieldsShareable, directivesByDire
83
69
  }
84
70
  return result;
85
71
  }
86
- function getDefinedArgumentsForDirective(directiveNode, argumentTypeNodeByArgumentName, requiredArguments, hostPath, errorMessages) {
87
- const directiveArguments = directiveNode.arguments || [];
88
- const directiveName = directiveNode.name.value;
89
- const definedArguments = new Set();
90
- const duplicateArgumentNames = new Set();
91
- const unexpectedArgumentNames = new Set();
92
- for (const argument of directiveArguments) {
93
- const argumentName = argument.name.value;
94
- // If an argument is observed more than once, it is a duplication error.
95
- // However, the error should only propagate once.
96
- if (definedArguments.has(argumentName)) {
97
- duplicateArgumentNames.add(argumentName);
98
- continue;
99
- }
100
- const argumentTypeNode = argumentTypeNodeByArgumentName.get(argumentName);
101
- if (!argumentTypeNode) {
102
- unexpectedArgumentNames.add(argumentName);
103
- continue;
104
- }
105
- // TODO validate argument values
106
- // if (argumentTypeNode) {
107
- // errorMessages.push(invalidDirectiveArgumentTypeErrorMessage(
108
- // requiredArguments.has(directiveName), argumentName, argumentTypeNode, argument.value.kind),
109
- // );
110
- // }
111
- definedArguments.add(argumentName);
112
- }
113
- if (duplicateArgumentNames.size > 0) {
114
- errorMessages.push((0, errors_1.duplicateDirectiveArgumentDefinitionsErrorMessage)(directiveName, hostPath, [...duplicateArgumentNames]));
115
- }
116
- if (unexpectedArgumentNames.size > 0) {
117
- errorMessages.push((0, errors_1.unexpectedDirectiveArgumentErrorMessage)(directiveName, [...unexpectedArgumentNames]));
118
- }
119
- return definedArguments;
120
- }
121
- function getDirectiveValidationErrors(directiveNode, hostKind, directivesByDirectiveName, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, hostPath, isArgument = false) {
122
- const directiveName = directiveNode.name.value;
123
- const directiveDefinition = directiveDefinitionByDirectiveName.get(directiveName) ||
124
- constants_1.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.get(directiveName);
125
- const errorMessages = [];
126
- if (!directiveDefinition) {
127
- errorMessages.push((0, errors_1.undefinedDirectiveErrorMessage)(directiveName, hostPath));
128
- return errorMessages;
129
- }
130
- const argumentTypeNodeByArgumentName = new Map();
131
- const requiredArguments = new Set();
132
- (0, utils_2.getDirectiveDefinitionArgumentSets)(directiveDefinition.arguments || [], argumentTypeNodeByArgumentName, requiredArguments);
133
- if (!(0, utils_2.areNodeKindAndDirectiveLocationCompatible)(hostKind, directiveDefinition, isArgument)) {
134
- errorMessages.push((0, errors_1.invalidDirectiveLocationErrorMessage)(hostPath, isArgument ? graphql_1.Kind.ARGUMENT : hostKind, directiveName));
135
- }
136
- if (!directiveDefinition.repeatable && directivesByDirectiveName.get(directiveName)) {
137
- const handledRepeatedDirectives = (0, utils_3.getValueOrDefault)(handledRepeatedDirectivesByHostPath, hostPath, () => new Set());
138
- // If the directive name exists as a value on the host path key, the repeatable error has been handled
139
- if (!handledRepeatedDirectives.has(directiveName)) {
140
- handledRepeatedDirectives.add(directiveName);
141
- errorMessages.push((0, errors_1.invalidRepeatedDirectiveErrorMessage)(directiveName, hostPath));
142
- }
143
- }
144
- if (!directiveDefinition.arguments?.length) {
145
- if (directiveNode.arguments?.length) {
146
- errorMessages.push((0, errors_1.unexpectedDirectiveArgumentsErrorMessage)(directiveNode, hostPath));
147
- }
148
- return errorMessages;
149
- }
150
- if (!directiveNode.arguments?.length) {
151
- if (requiredArguments.size > 0) {
152
- errorMessages.push((0, errors_1.undefinedRequiredArgumentsErrorMessage)(directiveName, hostPath, [...requiredArguments]));
153
- }
154
- return errorMessages;
155
- }
156
- const definedArguments = getDefinedArgumentsForDirective(directiveNode, argumentTypeNodeByArgumentName, requiredArguments, hostPath, errorMessages);
157
- const missingRequiredArguments = (0, utils_3.getEntriesNotInHashSet)(requiredArguments, definedArguments);
158
- if (missingRequiredArguments.length > 0) {
159
- errorMessages.push((0, errors_1.undefinedRequiredArgumentsErrorMessage)(directiveName, hostPath, [...requiredArguments], missingRequiredArguments));
160
- }
161
- return errorMessages;
162
- }
163
- function extractDirectives(node, directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, hostPath, isArgument = false) {
164
- if (!node.directives) {
165
- return directivesByDirectiveName;
166
- }
167
- const entityKeys = new Set();
168
- for (const directiveNode of node.directives) {
169
- const errorMessages = getDirectiveValidationErrors(directiveNode, node.kind, directivesByDirectiveName, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, hostPath, isArgument);
170
- const directiveName = directiveNode.name.value;
171
- if (errorMessages.length > 0) {
172
- errors.push((0, errors_1.invalidDirectiveError)(directiveName, hostPath, errorMessages));
173
- continue;
174
- }
175
- if (string_constants_1.IGNORED_PARENT_DIRECTIVES.has(directiveName)) {
176
- continue;
177
- }
178
- if (directiveName === string_constants_1.KEY) {
179
- // The argument was validated earlier
180
- const entityKey = directiveNode.arguments[0].value.value;
181
- if (entityKeys.has(entityKey)) {
182
- continue;
183
- }
184
- entityKeys.add(entityKey);
185
- }
186
- const existingDirectives = directivesByDirectiveName.get(directiveName);
187
- existingDirectives
188
- ? existingDirectives.push(directiveNode)
189
- : directivesByDirectiveName.set(directiveName, [directiveNode]);
190
- }
191
- return directivesByDirectiveName;
192
- }
193
- function extractArguments(argumentDataByArgumentName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, parentsWithChildArguments, originalParentTypeName, renamedParentTypeName, subgraphName) {
194
- if (!node.arguments?.length) {
195
- return argumentDataByArgumentName;
196
- }
197
- const fieldName = node.name.value;
198
- const originalFieldPath = `${originalParentTypeName}.${fieldName}`;
199
- const renamedFieldPath = `${renamedParentTypeName}.${fieldName}`;
200
- parentsWithChildArguments.add(originalParentTypeName);
201
- const duplicatedArguments = new Set();
202
- for (const argumentNode of node.arguments) {
203
- const argumentName = argumentNode.name.value;
204
- if (argumentDataByArgumentName.has(argumentName)) {
205
- duplicatedArguments.add(argumentName);
206
- continue;
207
- }
208
- addInputValueDataByNode(argumentDataByArgumentName, argumentNode, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, `${originalFieldPath}(${argumentName}: ...)`, subgraphName, errors, `${renamedFieldPath}(${argumentName}: ...)`);
209
- }
210
- if (duplicatedArguments.size > 0) {
211
- errors.push((0, errors_1.duplicateArgumentsError)(originalFieldPath, [...duplicatedArguments]));
212
- }
213
- return argumentDataByArgumentName;
214
- }
215
72
  function isTypeRequired(node) {
216
73
  return node.kind === graphql_1.Kind.NON_NULL_TYPE;
217
74
  }
@@ -260,89 +117,6 @@ function compareAndValidateInputValueDefaultValues(existingData, incomingData, e
260
117
  return;
261
118
  }
262
119
  }
263
- function addEnumValueDataByNode(enumValueDataByValueName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, parentTypeName, subgraphName) {
264
- const name = node.name.value;
265
- enumValueDataByValueName.set(name, {
266
- appearances: 1,
267
- directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, `${parentTypeName}.${name}`),
268
- name,
269
- node: (0, ast_1.getMutableEnumValueNode)(node),
270
- parentTypeName,
271
- persistedDirectivesData: newPersistedDirectivesData(),
272
- subgraphNames: new Set([subgraphName]),
273
- description: (0, utils_1.formatDescription)(node.description),
274
- });
275
- }
276
- function addInheritedDirectivesToFieldData(parentDirectivesByDirectiveName, fieldDirectivesByDirectiveName) {
277
- for (const directiveName of constants_1.INHERITABLE_DIRECTIVE_NAMES) {
278
- if (parentDirectivesByDirectiveName.get(directiveName)) {
279
- (0, utils_3.getValueOrDefault)(fieldDirectivesByDirectiveName, directiveName, () => [(0, utils_3.generateSimpleDirective)(directiveName)]);
280
- }
281
- }
282
- return fieldDirectivesByDirectiveName;
283
- }
284
- function addFieldDataByNode(fieldDataByFieldName, node, argumentDataByArgumentName, directivesByDirectiveName, originalParentTypeName, renamedParentTypeName, subgraphName, isSubgraphVersionTwo, errors) {
285
- const name = node.name.value;
286
- const fieldPath = `${originalParentTypeName}.${name}`;
287
- const isNodeExternalOrShareableResult = isNodeExternalOrShareable(node, !isSubgraphVersionTwo, directivesByDirectiveName);
288
- const fieldData = {
289
- argumentDataByArgumentName: argumentDataByArgumentName,
290
- isExternalBySubgraphName: new Map([[subgraphName, isNodeExternalOrShareableResult.isExternal]]),
291
- isInaccessible: directivesByDirectiveName.has(string_constants_1.INACCESSIBLE),
292
- isShareableBySubgraphName: new Map([[subgraphName, isNodeExternalOrShareableResult.isShareable]]),
293
- node: (0, ast_1.getMutableFieldNode)(node, fieldPath, errors),
294
- name,
295
- namedTypeName: (0, ast_1.getTypeNodeNamedTypeName)(node.type),
296
- originalParentTypeName,
297
- persistedDirectivesData: newPersistedDirectivesData(),
298
- renamedParentTypeName,
299
- subgraphNames: new Set([subgraphName]),
300
- type: (0, ast_1.getMutableTypeNode)(node.type, fieldPath, errors),
301
- directivesByDirectiveName,
302
- description: (0, utils_1.formatDescription)(node.description),
303
- };
304
- fieldDataByFieldName.set(name, fieldData);
305
- return fieldData;
306
- }
307
- function addInputValueDataByNode(inputValueDataByValueName, node, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, originalPath, subgraphName, errors, renamedPath) {
308
- const name = node.name.value;
309
- // Only arguments have renamed paths
310
- const isArgument = !!renamedPath;
311
- if (node.defaultValue && !areDefaultValuesCompatible(node.type, node.defaultValue)) {
312
- errors.push((0, errors_1.incompatibleInputValueDefaultValueTypeError)((isArgument ? string_constants_1.ARGUMENT : string_constants_1.INPUT_FIELD) + ` "${name}"`, originalPath, (0, merge_1.printTypeNode)(node.type), (0, graphql_1.print)(node.defaultValue)));
313
- }
314
- inputValueDataByValueName.set(name, {
315
- directivesByDirectiveName: extractDirectives(node, new Map(), errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, originalPath, isArgument),
316
- includeDefaultValue: !!node.defaultValue,
317
- isArgument,
318
- name,
319
- node: (0, ast_1.getMutableInputValueNode)(node, originalPath, errors),
320
- originalPath,
321
- persistedDirectivesData: newPersistedDirectivesData(),
322
- renamedPath: renamedPath || originalPath,
323
- requiredSubgraphNames: new Set(isTypeRequired(node.type) ? [subgraphName] : []),
324
- subgraphNames: new Set([subgraphName]),
325
- type: (0, ast_1.getMutableTypeNode)(node.type, originalPath, errors),
326
- defaultValue: node.defaultValue, // TODO validate
327
- description: (0, utils_1.formatDescription)(node.description),
328
- });
329
- }
330
- function addPersistedDirectiveDefinitionDataByNode(persistedDirectiveDefinitionDataByDirectiveName, node, errors, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, executableLocations, subgraphName) {
331
- const name = node.name.value;
332
- const argumentDataByArgumentName = new Map();
333
- for (const argumentNode of node.arguments || []) {
334
- const originalPath = `@${name}(${argumentNode.name.value}: ...)`;
335
- addInputValueDataByNode(argumentDataByArgumentName, argumentNode, directiveDefinitionByDirectiveName, handledRepeatedDirectivesByHostPath, originalPath, subgraphName, errors, originalPath);
336
- }
337
- persistedDirectiveDefinitionDataByDirectiveName.set(name, {
338
- argumentDataByArgumentName,
339
- executableLocations,
340
- name: name,
341
- repeatable: node.repeatable,
342
- subgraphNames: new Set([subgraphName]),
343
- description: (0, utils_1.formatDescription)(node.description),
344
- });
345
- }
346
120
  function setMutualExecutableLocations(persistedDirectiveDefinitionData, incomingExecutableLocations) {
347
121
  const mutualExecutableLocations = new Set();
348
122
  for (const incomingExecutableLocation of incomingExecutableLocations) {
@@ -379,11 +153,11 @@ function addAuthorizationDirectivesToFieldData(authorizationDataByParentTypeName
379
153
  return;
380
154
  }
381
155
  if (fieldAuthorizationData.requiresAuthentication) {
382
- const authenticatedDirective = (0, utils_3.generateSimpleDirective)(string_constants_1.AUTHENTICATED);
156
+ const authenticatedDirective = (0, utils_2.generateSimpleDirective)(string_constants_1.AUTHENTICATED);
383
157
  fieldData.directivesByDirectiveName.set(string_constants_1.AUTHENTICATED, [authenticatedDirective]);
384
158
  }
385
159
  if (fieldAuthorizationData.requiredScopes.length > 0) {
386
- const requiresScopesDirective = (0, utils_3.generateRequiresScopesDirective)(fieldAuthorizationData.requiredScopes);
160
+ const requiresScopesDirective = (0, utils_2.generateRequiresScopesDirective)(fieldAuthorizationData.requiredScopes);
387
161
  fieldData.directivesByDirectiveName.set(string_constants_1.REQUIRES_SCOPES, [requiresScopesDirective]);
388
162
  }
389
163
  }
@@ -411,93 +185,31 @@ function childMapToValueArray(map, authorizationDataByParentTypeName) {
411
185
  }
412
186
  return valueArray;
413
187
  }
414
- function getValidFlattenedDirectiveArray(directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, hostPath) {
415
- const flattenedArray = [];
416
- for (const [directiveName, directiveNodes] of directivesByDirectiveName) {
417
- const directiveDefinition = directiveDefinitionByDirectiveName.get(directiveName) ||
418
- constants_1.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.get(directiveName);
419
- if (!directiveDefinition) {
420
- continue;
421
- }
422
- if (!directiveDefinition.repeatable && directiveNodes.length > 1) {
423
- errors.push((0, errors_1.invalidDirectiveError)(directiveName, hostPath, [(0, errors_1.invalidRepeatedDirectiveErrorMessage)(directiveName, hostPath)]));
424
- continue;
425
- }
426
- if (directiveName !== string_constants_1.KEY) {
427
- flattenedArray.push(...directiveNodes);
428
- continue;
429
- }
430
- const normalizedDirectiveNodes = [];
431
- const entityKeys = new Set();
432
- const errorMessages = [];
433
- for (const keyDirectiveNode of directiveNodes) {
434
- const directiveValue = keyDirectiveNode.arguments[0].value;
435
- if (directiveValue.kind !== graphql_1.Kind.STRING) {
436
- errorMessages.push((0, errors_1.invalidKeyDirectiveArgumentErrorMessage)(directiveValue.kind));
437
- continue;
438
- }
439
- const entityKey = directiveValue.value;
440
- if (entityKeys.has(entityKey)) {
441
- continue;
442
- }
443
- entityKeys.add(entityKey);
444
- flattenedArray.push(keyDirectiveNode);
445
- normalizedDirectiveNodes.push(keyDirectiveNode);
446
- }
447
- directivesByDirectiveName.set(directiveName, normalizedDirectiveNodes);
448
- if (errorMessages.length > 0) {
449
- errors.push((0, errors_1.invalidDirectiveError)(directiveName, hostPath, errorMessages));
450
- }
451
- }
452
- return flattenedArray;
453
- }
454
- function getEnumNodeByData(enumDefinitionData, errors, directiveDefinitionByDirectiveName, authorizationDataByParentTypeName) {
455
- enumDefinitionData.node.description = enumDefinitionData.description;
456
- enumDefinitionData.node.directives = getValidFlattenedDirectiveArray(enumDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, enumDefinitionData.name);
457
- enumDefinitionData.node.values = childMapToValueArray(enumDefinitionData.enumValueDataByValueName, authorizationDataByParentTypeName);
458
- return enumDefinitionData.node;
459
- }
460
- function getInputObjectNodeByData(inputObjectDefinitionData, errors, directiveDefinitionByDirectiveName, authorizationDataByParentTypeName) {
461
- inputObjectDefinitionData.node.description = inputObjectDefinitionData.description;
462
- inputObjectDefinitionData.node.directives = getValidFlattenedDirectiveArray(inputObjectDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, inputObjectDefinitionData.name);
463
- inputObjectDefinitionData.node.fields = childMapToValueArray(inputObjectDefinitionData.inputValueDataByValueName, authorizationDataByParentTypeName);
464
- return inputObjectDefinitionData.node;
465
- }
466
- function getCompositeOutputNodeByData(compositeOutputData, errors, directiveDefinitionByDirectiveName, authorizationDataByParentTypeName) {
467
- compositeOutputData.node.description = compositeOutputData.description;
468
- compositeOutputData.node.directives = getValidFlattenedDirectiveArray(compositeOutputData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, compositeOutputData.name);
469
- compositeOutputData.node.fields = childMapToValueArray(compositeOutputData.fieldDataByFieldName, authorizationDataByParentTypeName);
470
- compositeOutputData.node.interfaces = (0, utils_1.setToNamedTypeNodeArray)(compositeOutputData.implementedInterfaceTypeNames);
471
- return compositeOutputData.node;
472
- }
473
- function getScalarNodeByData(scalarDefinitionData, errors, directiveDefinitionByDirectiveName) {
474
- scalarDefinitionData.node.description = scalarDefinitionData.description;
475
- scalarDefinitionData.node.directives = getValidFlattenedDirectiveArray(scalarDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, scalarDefinitionData.name);
476
- return scalarDefinitionData.node;
477
- }
478
- function getSchemaNodeByData(schemaData, errors, directiveDefinitionByDirectiveName) {
479
- return {
480
- description: schemaData.description,
481
- directives: getValidFlattenedDirectiveArray(schemaData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, schemaData.typeName),
482
- kind: schemaData.kind,
483
- operationTypes: (0, utils_3.mapToArrayOfValues)(schemaData.operationTypes),
484
- };
485
- }
486
- function getUnionNodeByData(unionDefinitionData, errors, directiveDefinitionByDirectiveName) {
487
- unionDefinitionData.node.description = unionDefinitionData.description;
488
- unionDefinitionData.node.directives = getValidFlattenedDirectiveArray(unionDefinitionData.directivesByDirectiveName, errors, directiveDefinitionByDirectiveName, unionDefinitionData.name);
489
- unionDefinitionData.node.types = (0, utils_3.mapToArrayOfValues)(unionDefinitionData.memberByMemberTypeName);
490
- return unionDefinitionData.node;
491
- }
492
- function removeInheritableDirectivesFromParentWithFieldsData(parentData) {
188
+ function removeInheritableDirectivesFromObjectParent(parentData) {
189
+ if (parentData.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION) {
190
+ return;
191
+ }
493
192
  for (const directiveName of constants_1.INHERITABLE_DIRECTIVE_NAMES) {
494
193
  parentData.directivesByDirectiveName.delete(directiveName);
495
194
  }
496
195
  }
196
+ function removeIgnoredDirectives(data) {
197
+ for (const directiveName of string_constants_1.IGNORED_PARENT_DIRECTIVES) {
198
+ data.directivesByDirectiveName.delete(directiveName);
199
+ }
200
+ }
497
201
  function setLongestDescription(existingData, incomingData) {
498
202
  if (!incomingData.description) {
499
203
  return;
500
204
  }
205
+ if ('configureDescriptionDataBySubgraphName' in incomingData) {
206
+ // There should be only be an incoming value for a single subgraph
207
+ for (const { propagate } of incomingData.configureDescriptionDataBySubgraphName.values()) {
208
+ if (!propagate) {
209
+ return;
210
+ }
211
+ }
212
+ }
501
213
  if (!existingData.description || existingData.description.value.length < incomingData.description.value.length) {
502
214
  existingData.description = { ...incomingData.description, block: true };
503
215
  }
@@ -509,10 +221,7 @@ function isParentDataRootType(parentData) {
509
221
  return parentData.isRootType;
510
222
  }
511
223
  function isParentDataInterfaceType(parentData) {
512
- if (parentData.kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION) {
513
- return true;
514
- }
515
- return false;
224
+ return parentData.kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION;
516
225
  }
517
226
  function setParentDataExtensionType(existingData, incomingData) {
518
227
  if (existingData.extensionType === incomingData.extensionType || existingData.extensionType === type_definition_data_1.ExtensionType.NONE) {
@@ -577,11 +286,11 @@ function pushAuthorizationDirectives(fieldData, authorizationData) {
577
286
  return;
578
287
  }
579
288
  if (fieldAuthorizationData.requiresAuthentication) {
580
- fieldData.persistedDirectivesData.directives.set(string_constants_1.AUTHENTICATED, [(0, utils_3.generateSimpleDirective)(string_constants_1.AUTHENTICATED)]);
289
+ fieldData.persistedDirectivesData.directives.set(string_constants_1.AUTHENTICATED, [(0, utils_2.generateSimpleDirective)(string_constants_1.AUTHENTICATED)]);
581
290
  }
582
291
  if (fieldAuthorizationData.requiredScopes.length > 0) {
583
292
  fieldData.persistedDirectivesData.directives.set(string_constants_1.REQUIRES_SCOPES, [
584
- (0, utils_3.generateRequiresScopesDirective)(fieldAuthorizationData.requiredScopes),
293
+ (0, utils_2.generateRequiresScopesDirective)(fieldAuthorizationData.requiredScopes),
585
294
  ]);
586
295
  }
587
296
  }
@@ -601,7 +310,7 @@ function generateDeprecatedDirective(reason) {
601
310
  ],
602
311
  };
603
312
  }
604
- function getValidFlattenedPersistedDirectiveNodeArray(directivesByDirectiveName, persistedDirectiveDefinitionByDirectiveName, hostPath, errors) {
313
+ function getValidFlattenedPersistedDirectiveNodeArray(directivesByDirectiveName, persistedDirectiveDefinitionByDirectiveName, directiveCoords, errors) {
605
314
  const persistedDirectiveNodes = [];
606
315
  for (const [directiveName, directiveNodes] of directivesByDirectiveName) {
607
316
  const persistedDirectiveDefinition = persistedDirectiveDefinitionByDirectiveName.get(directiveName);
@@ -613,7 +322,7 @@ function getValidFlattenedPersistedDirectiveNodeArray(directivesByDirectiveName,
613
322
  continue;
614
323
  }
615
324
  if (!persistedDirectiveDefinition.repeatable) {
616
- errors.push((0, errors_1.invalidRepeatedFederatedDirectiveErrorMessage)(directiveName, hostPath));
325
+ errors.push((0, errors_1.invalidRepeatedFederatedDirectiveErrorMessage)(directiveName, directiveCoords));
617
326
  continue;
618
327
  }
619
328
  persistedDirectiveNodes.push(...directiveNodes);
@@ -651,14 +360,6 @@ function getNodeForRouterSchemaByData(data, persistedDirectiveDefinitionByDirect
651
360
  data.node.directives = getRouterPersistedDirectiveNodes(data, persistedDirectiveDefinitionByDirectiveName, errors);
652
361
  return data.node;
653
362
  }
654
- function getNodeWithPersistedDirectivesByFieldData(fieldData, persistedDirectiveDefinitionByDirectiveName, argumentNodes, errors) {
655
- fieldData.node.arguments = argumentNodes;
656
- fieldData.node.name = (0, utils_1.stringToNameNode)(fieldData.name);
657
- fieldData.node.type = fieldData.type;
658
- fieldData.node.description = fieldData.description;
659
- fieldData.node.directives = getRouterPersistedDirectiveNodes(fieldData, persistedDirectiveDefinitionByDirectiveName, errors);
660
- return fieldData.node;
661
- }
662
363
  function getClientSchemaFieldNodeByFieldData(fieldData) {
663
364
  const directives = getClientPersistedDirectiveNodes(fieldData);
664
365
  const argumentNodes = [];
@@ -700,7 +401,7 @@ function getValidFieldArgumentNodes(fieldData, persistedDirectiveDefinitionByDir
700
401
  else if (isTypeRequired(inputValueData.type)) {
701
402
  invalidRequiredArguments.push({
702
403
  inputValueName: argumentName,
703
- missingSubgraphs: (0, utils_3.getEntriesNotInHashSet)(fieldData.subgraphNames, inputValueData.subgraphNames),
404
+ missingSubgraphs: (0, utils_2.getEntriesNotInHashSet)(fieldData.subgraphNames, inputValueData.subgraphNames),
704
405
  requiredSubgraphs: [...inputValueData.requiredSubgraphNames],
705
406
  });
706
407
  }
@@ -710,7 +411,7 @@ function getValidFieldArgumentNodes(fieldData, persistedDirectiveDefinitionByDir
710
411
  }
711
412
  else if (argumentNames.length > 0) {
712
413
  // fieldConfiguration might already exist through subscriptionFilter
713
- (0, utils_3.getValueOrDefault)(fieldConfigurationByFieldPath, fieldPath, () => ({
414
+ (0, utils_2.getValueOrDefault)(fieldConfigurationByFieldPath, fieldPath, () => ({
714
415
  argumentNames,
715
416
  fieldName: fieldData.name,
716
417
  typeName: fieldData.renamedParentTypeName,
@@ -721,7 +422,7 @@ function getValidFieldArgumentNodes(fieldData, persistedDirectiveDefinitionByDir
721
422
  function addValidatedArgumentNodes(argumentNodes, hostData, persistedDirectiveDefinitionByDirectiveName, errors, argumentNamesForFieldConfiguration) {
722
423
  const invalidRequiredArgumentErrors = [];
723
424
  for (const [argumentName, argumentData] of hostData.argumentDataByArgumentName) {
724
- const missingSubgraphs = (0, utils_3.getEntriesNotInHashSet)(hostData.subgraphNames, argumentData.subgraphNames);
425
+ const missingSubgraphs = (0, utils_2.getEntriesNotInHashSet)(hostData.subgraphNames, argumentData.subgraphNames);
725
426
  if (missingSubgraphs.length > 0) {
726
427
  // Required arguments must be defined in all subgraphs that define the field
727
428
  if (argumentData.requiredSubgraphNames.size > 0) {
@@ -893,4 +594,24 @@ function newConditionalFieldData() {
893
594
  requiredBy: [],
894
595
  };
895
596
  }
597
+ function getDefinitionDataCoords(data, useRenamedPath) {
598
+ switch (data.kind) {
599
+ case graphql_1.Kind.ENUM_VALUE_DEFINITION: {
600
+ return `${data.parentTypeName}.${data.name}`;
601
+ }
602
+ case graphql_1.Kind.FIELD_DEFINITION: {
603
+ return `${useRenamedPath ? data.renamedParentTypeName : data.originalParentTypeName}.${data.name}`;
604
+ }
605
+ case graphql_1.Kind.ARGUMENT:
606
+ // intentional fallthrough
607
+ case graphql_1.Kind.INPUT_VALUE_DEFINITION: {
608
+ return useRenamedPath ? data.renamedPath : data.originalPath;
609
+ }
610
+ case graphql_1.Kind.OBJECT_TYPE_DEFINITION: {
611
+ return useRenamedPath ? data.renamedTypeName : data.name;
612
+ }
613
+ default:
614
+ return data.name;
615
+ }
616
+ }
896
617
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/schema-building/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/schema-building/utils.ts"],"names":[],"mappings":"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"}