@wundergraph/composition 0.6.2 → 0.7.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.
- package/dist/ast/utils.d.ts +10 -19
- package/dist/ast/utils.js +51 -165
- package/dist/ast/utils.js.map +1 -1
- package/dist/errors/errors.d.ts +23 -5
- package/dist/errors/errors.js +135 -25
- package/dist/errors/errors.js.map +1 -1
- package/dist/federation/federation-factory.js +3 -10
- package/dist/federation/federation-factory.js.map +1 -1
- package/dist/federation/utils.d.ts +0 -3
- package/dist/normalization/normalization-factory.d.ts +5 -3
- package/dist/normalization/normalization-factory.js +104 -64
- package/dist/normalization/normalization-factory.js.map +1 -1
- package/dist/normalization/utils.d.ts +11 -2
- package/dist/normalization/utils.js +441 -83
- package/dist/normalization/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/constants.d.ts +2 -1
- package/dist/utils/constants.js +12 -11
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/string-constants.d.ts +1 -1
- package/dist/utils/string-constants.js +1 -1
- package/dist/utils/string-constants.js.map +1 -1
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +11 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.validateDirectivesWithFieldSet = exports.getNormalizedFieldSet = exports.extractFieldSetValue = exports.addNonExternalFieldsToSet = exports.getDefinedArgumentsForDirective = exports.getDirectiveDefinitionArgumentSets = exports.areNodeKindAndDirectiveLocationCompatible = exports.unionContainerToNode = exports.schemaContainerToNode = exports.scalarContainerToNode = exports.objectLikeContainerToNode = exports.inputObjectContainerToNode = exports.enumContainerToNode = exports.newFieldSetContainer = void 0;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
5
|
const utils_1 = require("../utils/utils");
|
|
6
6
|
const utils_2 = require("../ast/utils");
|
|
7
7
|
const string_constants_1 = require("../utils/string-constants");
|
|
8
8
|
const type_merging_1 = require("../type-merging/type-merging");
|
|
9
9
|
const errors_1 = require("../errors/errors");
|
|
10
|
+
const constants_1 = require("../utils/constants");
|
|
11
|
+
function newFieldSetContainer() {
|
|
12
|
+
return {
|
|
13
|
+
keys: new Set(),
|
|
14
|
+
provides: new Map(),
|
|
15
|
+
requires: new Map(),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.newFieldSetContainer = newFieldSetContainer;
|
|
10
19
|
function childMapToValueArray(factory, map, parentTypeName) {
|
|
11
20
|
const valueArray = [];
|
|
12
21
|
for (const childContainer of map.values()) {
|
|
@@ -182,115 +191,464 @@ function areNodeKindAndDirectiveLocationCompatible(kind, directiveDefinitionNode
|
|
|
182
191
|
return false;
|
|
183
192
|
}
|
|
184
193
|
exports.areNodeKindAndDirectiveLocationCompatible = areNodeKindAndDirectiveLocationCompatible;
|
|
185
|
-
function
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
if (isExtension) {
|
|
193
|
-
validateExtensionEntityKey(factory, objectTypeName, entityKey, errorMessages);
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
validateBaseObjectEntityKey(factory, objectTypeName, entityKey, errorMessages);
|
|
197
|
-
}
|
|
198
|
-
if (errorMessages.length > 0) {
|
|
199
|
-
factory.errors.push((0, errors_1.invalidKeyDirectiveError)(objectTypeName, errorMessages));
|
|
194
|
+
function getDirectiveDefinitionArgumentSets(args, allArguments, requiredArguments) {
|
|
195
|
+
for (const argument of args) {
|
|
196
|
+
const argumentName = argument.name.value;
|
|
197
|
+
allArguments.add(argumentName);
|
|
198
|
+
// If the definition defines a default argument, it's not necessary to include it
|
|
199
|
+
if (argument.type.kind === graphql_1.Kind.NON_NULL_TYPE && !argument.defaultValue) {
|
|
200
|
+
requiredArguments.add(argumentName);
|
|
200
201
|
}
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
|
-
exports.
|
|
204
|
-
function
|
|
205
|
-
const
|
|
206
|
-
for (const
|
|
207
|
-
const
|
|
208
|
-
if (!
|
|
209
|
-
errorMessages.push((0, errors_1.
|
|
204
|
+
exports.getDirectiveDefinitionArgumentSets = getDirectiveDefinitionArgumentSets;
|
|
205
|
+
function getDefinedArgumentsForDirective(args, allArguments, directiveName, hostPath, errorMessages) {
|
|
206
|
+
const definedArguments = new Set();
|
|
207
|
+
for (const argument of args) {
|
|
208
|
+
const argumentName = argument.name.value;
|
|
209
|
+
if (!allArguments.has(argumentName)) {
|
|
210
|
+
errorMessages.push((0, errors_1.unexpectedDirectiveArgumentErrorMessage)(directiveName, argumentName));
|
|
210
211
|
continue;
|
|
211
212
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (entityKey.nestedKeys?.some((nestedKey) => nestedKey.parent === fieldName)) {
|
|
213
|
+
if (definedArguments.has(argumentName)) {
|
|
214
|
+
errorMessages.push((0, errors_1.duplicateDirectiveArgumentDefinitionErrorMessage)(directiveName, hostPath, argumentName));
|
|
215
215
|
continue;
|
|
216
216
|
}
|
|
217
|
-
|
|
218
|
-
const fieldTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, field.node.type);
|
|
219
|
-
const parentContainer = factory.parents.get(fieldTypeName);
|
|
220
|
-
if (parentContainer && parentContainer.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION) {
|
|
221
|
-
errorMessages.push((0, errors_1.objectInCompositeKeyWithoutSelectionsErrorMessage)(fieldName, fieldTypeName));
|
|
222
|
-
}
|
|
217
|
+
definedArguments.add(argumentName);
|
|
223
218
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
219
|
+
return definedArguments;
|
|
220
|
+
}
|
|
221
|
+
exports.getDefinedArgumentsForDirective = getDefinedArgumentsForDirective;
|
|
222
|
+
function addNonExternalFieldsToSet(fields, fieldNames) {
|
|
223
|
+
for (const [fieldName, fieldContainer] of fields) {
|
|
224
|
+
if (fieldContainer.directives.has(string_constants_1.EXTERNAL)) {
|
|
225
|
+
continue;
|
|
231
226
|
}
|
|
227
|
+
fieldNames.add(fieldName);
|
|
232
228
|
}
|
|
233
|
-
|
|
229
|
+
}
|
|
230
|
+
exports.addNonExternalFieldsToSet = addNonExternalFieldsToSet;
|
|
231
|
+
function extractFieldSetValue(name, map, directives) {
|
|
232
|
+
// ALl directive validation errors are accounted for later
|
|
233
|
+
// Requires and provides should not be repeatable, so the length should be no more than 1
|
|
234
|
+
if (!directives || directives.length > 1) {
|
|
234
235
|
return;
|
|
235
236
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
continue;
|
|
241
|
-
}
|
|
242
|
-
const fieldPath = `${objectTypeName}.${field.name}`;
|
|
243
|
-
validateBaseObjectEntityKey(factory, (0, type_merging_1.getNamedTypeForChild)(fieldPath, field.node.type), nestedKey, errorMessages);
|
|
237
|
+
// There should be exactly one argument
|
|
238
|
+
const args = directives[0].arguments;
|
|
239
|
+
if (!args || args.length !== 1) {
|
|
240
|
+
return;
|
|
244
241
|
}
|
|
242
|
+
// The argument should be a string type named "fields"
|
|
243
|
+
const fieldsArgument = args[0];
|
|
244
|
+
if (fieldsArgument.name.value !== string_constants_1.FIELDS || fieldsArgument.value.kind !== graphql_1.Kind.STRING) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
map.set(name, fieldsArgument.value.value);
|
|
248
|
+
}
|
|
249
|
+
exports.extractFieldSetValue = extractFieldSetValue;
|
|
250
|
+
function getNormalizedFieldSet(documentNode) {
|
|
251
|
+
/*
|
|
252
|
+
1. Lexicographically sort the DocumentNode
|
|
253
|
+
2. Convert to a string
|
|
254
|
+
3. Replace consecutive whitespace with a single space
|
|
255
|
+
4. Remove the leading and trailing "{ " and " }", respectively
|
|
256
|
+
*/
|
|
257
|
+
return (0, graphql_1.print)((0, utils_2.lexicographicallySortDocumentNode)(documentNode))
|
|
258
|
+
.replaceAll(/\s+/g, ' ')
|
|
259
|
+
.slice(2, -2);
|
|
245
260
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
261
|
+
exports.getNormalizedFieldSet = getNormalizedFieldSet;
|
|
262
|
+
function validateNonRepeatableFieldSet(factory, parentContainer, fieldSet, directiveFieldName) {
|
|
263
|
+
// Create a new selection set so that the value can be parsed as a new DocumentNode
|
|
264
|
+
const { error, documentNode } = (0, utils_2.safeParse)('{' + fieldSet + '}');
|
|
265
|
+
if (error || !documentNode) {
|
|
266
|
+
return { errorMessage: (0, errors_1.unparsableFieldSetErrorMessage)(fieldSet, error) };
|
|
250
267
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
268
|
+
let errorMessage;
|
|
269
|
+
const parentContainers = [parentContainer];
|
|
270
|
+
const definedFields = [];
|
|
271
|
+
let currentDepth = -1;
|
|
272
|
+
let shouldDefineSelectionSet = true;
|
|
273
|
+
let lastFieldName = directiveFieldName;
|
|
274
|
+
let fieldPath = parentContainer.name.value;
|
|
275
|
+
(0, graphql_1.visit)(documentNode, {
|
|
276
|
+
Argument: {
|
|
277
|
+
enter(node) {
|
|
278
|
+
return false;
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
Field: {
|
|
282
|
+
enter(node) {
|
|
283
|
+
// const grandparentContainer = parentContainers[currentDepth - 1];
|
|
284
|
+
const parentContainer = parentContainers[currentDepth];
|
|
285
|
+
const parentTypeName = parentContainer.name.value;
|
|
286
|
+
if (parentContainer.kind === graphql_1.Kind.UNION_TYPE_DEFINITION) {
|
|
287
|
+
errorMessage = (0, errors_1.invalidSelectionOnUnionErrorMessage)(fieldSet, fieldPath, parentTypeName);
|
|
288
|
+
return graphql_1.BREAK;
|
|
289
|
+
}
|
|
290
|
+
// If an object-like was just visited, a selection set should have been entered
|
|
291
|
+
if (shouldDefineSelectionSet) {
|
|
292
|
+
errorMessage = (0, errors_1.invalidSelectionSetErrorMessage)(fieldSet, fieldPath, parentTypeName, (0, utils_1.kindToTypeString)(parentContainer.kind));
|
|
293
|
+
return graphql_1.BREAK;
|
|
294
|
+
}
|
|
295
|
+
const fieldName = node.name.value;
|
|
296
|
+
fieldPath = `${parentTypeName}.${fieldName}`;
|
|
297
|
+
lastFieldName = fieldName;
|
|
298
|
+
const fieldContainer = parentContainer.fields.get(fieldName);
|
|
299
|
+
// undefined if the field does not exist on the parent
|
|
300
|
+
if (!fieldContainer) {
|
|
301
|
+
errorMessage = (0, errors_1.undefinedFieldInFieldSetErrorMessage)(fieldSet, parentTypeName, fieldName);
|
|
302
|
+
return graphql_1.BREAK;
|
|
303
|
+
}
|
|
304
|
+
if (fieldContainer.arguments.size) {
|
|
305
|
+
errorMessage = (0, errors_1.argumentsInKeyFieldSetErrorMessage)(fieldSet, fieldPath);
|
|
306
|
+
return graphql_1.BREAK;
|
|
307
|
+
}
|
|
308
|
+
if (definedFields[currentDepth].has(fieldName)) {
|
|
309
|
+
errorMessage = (0, errors_1.duplicateFieldInFieldSetErrorMessage)(fieldSet, fieldPath);
|
|
310
|
+
return graphql_1.BREAK;
|
|
311
|
+
}
|
|
312
|
+
definedFields[currentDepth].add(fieldName);
|
|
313
|
+
const namedTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, fieldContainer.node.type);
|
|
314
|
+
// The base scalars are not in the parents map
|
|
315
|
+
if (constants_1.BASE_SCALARS.has(namedTypeName)) {
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
// The child could itself be a parent and could exist as an object extension
|
|
319
|
+
const childContainer = factory.parents.get(namedTypeName)
|
|
320
|
+
|| factory.extensions.get(namedTypeName);
|
|
321
|
+
if (!childContainer) {
|
|
322
|
+
// Should not be possible to receive this error
|
|
323
|
+
errorMessage = (0, errors_1.unknownTypeInFieldSetErrorMessage)(fieldSet, fieldPath, namedTypeName);
|
|
324
|
+
return graphql_1.BREAK;
|
|
325
|
+
}
|
|
326
|
+
if (childContainer.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION
|
|
327
|
+
|| childContainer.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION
|
|
328
|
+
|| childContainer.kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION
|
|
329
|
+
|| childContainer.kind === graphql_1.Kind.UNION_TYPE_DEFINITION) {
|
|
330
|
+
shouldDefineSelectionSet = true;
|
|
331
|
+
parentContainers.push(childContainer);
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
},
|
|
336
|
+
InlineFragment: {
|
|
337
|
+
enter(node) {
|
|
338
|
+
const parentContainer = parentContainers[currentDepth];
|
|
339
|
+
const parentTypeName = parentContainer.name.value;
|
|
340
|
+
if (!node.typeCondition) {
|
|
341
|
+
errorMessage = (0, errors_1.inlineFragmentWithoutTypeConditionErrorMessage)(fieldSet, fieldPath);
|
|
342
|
+
return graphql_1.BREAK;
|
|
343
|
+
}
|
|
344
|
+
const typeConditionName = node.typeCondition.name.value;
|
|
345
|
+
// It's possible to infinitely define fragments
|
|
346
|
+
if (typeConditionName === parentTypeName) {
|
|
347
|
+
parentContainers.push(parentContainer);
|
|
348
|
+
shouldDefineSelectionSet = true;
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
if (!(0, utils_2.isKindAbstract)(parentContainer.kind)) {
|
|
352
|
+
errorMessage = (0, errors_1.invalidInlineFragmentTypeErrorMessage)(fieldSet, fieldPath, typeConditionName, parentTypeName);
|
|
353
|
+
return graphql_1.BREAK;
|
|
354
|
+
}
|
|
355
|
+
const fragmentTypeContainer = factory.parents.get(typeConditionName)
|
|
356
|
+
|| factory.extensions.get(typeConditionName);
|
|
357
|
+
if (!fragmentTypeContainer) {
|
|
358
|
+
errorMessage = (0, errors_1.unknownInlineFragmentTypeConditionErrorMessage)(fieldSet, fieldPath, typeConditionName);
|
|
359
|
+
return graphql_1.BREAK;
|
|
360
|
+
}
|
|
361
|
+
if (fragmentTypeContainer.kind !== graphql_1.Kind.INTERFACE_TYPE_DEFINITION
|
|
362
|
+
&& fragmentTypeContainer.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION
|
|
363
|
+
&& fragmentTypeContainer.kind !== graphql_1.Kind.OBJECT_TYPE_EXTENSION
|
|
364
|
+
&& fragmentTypeContainer.kind !== graphql_1.Kind.UNION_TYPE_DEFINITION) {
|
|
365
|
+
errorMessage = (0, errors_1.invalidInlineFragmentTypeConditionTypeErrorMessage)(fieldSet, fieldPath, typeConditionName, (0, utils_1.kindToTypeString)(fragmentTypeContainer.kind));
|
|
366
|
+
return graphql_1.BREAK;
|
|
367
|
+
}
|
|
368
|
+
const concreteTypeNames = factory.abstractToConcreteTypeNames.get(parentTypeName);
|
|
369
|
+
if (!concreteTypeNames || !concreteTypeNames.has(typeConditionName)) {
|
|
370
|
+
errorMessage = (0, errors_1.invalidInlineFragmentTypeConditionErrorMessage)(fieldSet, fieldPath, typeConditionName, (0, utils_1.kindToTypeString)(parentContainer.kind), parentTypeName);
|
|
371
|
+
return graphql_1.BREAK;
|
|
372
|
+
}
|
|
373
|
+
shouldDefineSelectionSet = true;
|
|
374
|
+
parentContainers.push(fragmentTypeContainer);
|
|
375
|
+
},
|
|
376
|
+
leave() {
|
|
377
|
+
parentContainers.pop();
|
|
378
|
+
},
|
|
379
|
+
},
|
|
380
|
+
SelectionSet: {
|
|
381
|
+
enter() {
|
|
382
|
+
if (!shouldDefineSelectionSet) {
|
|
383
|
+
const parentContainer = parentContainers[currentDepth];
|
|
384
|
+
if (parentContainer.kind === graphql_1.Kind.UNION_TYPE_DEFINITION) {
|
|
385
|
+
// Should never happen
|
|
386
|
+
errorMessage = (0, errors_1.unparsableFieldSetSelectionErrorMessage)(fieldSet, lastFieldName);
|
|
387
|
+
return graphql_1.BREAK;
|
|
388
|
+
}
|
|
389
|
+
const fieldContainer = parentContainer.fields.get(lastFieldName);
|
|
390
|
+
if (!fieldContainer) {
|
|
391
|
+
errorMessage = (0, errors_1.undefinedFieldInFieldSetErrorMessage)(fieldSet, fieldPath, lastFieldName);
|
|
392
|
+
return graphql_1.BREAK;
|
|
393
|
+
}
|
|
394
|
+
const fieldNamedTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, fieldContainer.node.type);
|
|
395
|
+
// If the child is not found, it's a base scalar. Undefined types would have already been handled.
|
|
396
|
+
const childContainer = factory.parents.get(fieldNamedTypeName);
|
|
397
|
+
const childKind = childContainer
|
|
398
|
+
? childContainer.kind : graphql_1.Kind.SCALAR_TYPE_DEFINITION;
|
|
399
|
+
errorMessage = (0, errors_1.invalidSelectionSetDefinitionErrorMessage)(fieldSet, fieldPath, fieldNamedTypeName, (0, utils_1.kindToTypeString)(childKind));
|
|
400
|
+
return graphql_1.BREAK;
|
|
401
|
+
}
|
|
402
|
+
currentDepth += 1;
|
|
403
|
+
shouldDefineSelectionSet = false;
|
|
404
|
+
if (currentDepth < 0 || currentDepth >= parentContainers.length) {
|
|
405
|
+
errorMessage = (0, errors_1.unparsableFieldSetSelectionErrorMessage)(fieldSet, lastFieldName);
|
|
406
|
+
return graphql_1.BREAK;
|
|
407
|
+
}
|
|
408
|
+
definedFields.push(new Set());
|
|
409
|
+
},
|
|
410
|
+
leave() {
|
|
411
|
+
if (shouldDefineSelectionSet) {
|
|
412
|
+
const parentContainer = parentContainers[currentDepth + 1];
|
|
413
|
+
errorMessage = (0, errors_1.invalidSelectionSetErrorMessage)(fieldSet, fieldPath, parentContainer.name.value, (0, utils_1.kindToTypeString)(parentContainer.kind));
|
|
414
|
+
shouldDefineSelectionSet = false;
|
|
415
|
+
}
|
|
416
|
+
// Empty selection sets would be a parse error, so it is unnecessary to handle them
|
|
417
|
+
currentDepth -= 1;
|
|
418
|
+
parentContainers.pop();
|
|
419
|
+
definedFields.pop();
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
});
|
|
423
|
+
if (errorMessage) {
|
|
424
|
+
return { errorMessage };
|
|
254
425
|
}
|
|
255
|
-
|
|
426
|
+
return { configuration: { fieldName: directiveFieldName, selectionSet: getNormalizedFieldSet(documentNode) } };
|
|
256
427
|
}
|
|
257
|
-
function
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
|
|
428
|
+
function validateKeyFieldSets(factory, entityContainer, fieldSets, fieldNames) {
|
|
429
|
+
const entityTypeName = entityContainer.name.value;
|
|
430
|
+
const errorMessages = [];
|
|
431
|
+
const configurations = [];
|
|
432
|
+
const keyFieldNames = new Set();
|
|
433
|
+
for (const fieldSet of fieldSets) {
|
|
434
|
+
// Create a new selection set so that the value can be parsed as a new DocumentNode
|
|
435
|
+
const { error, documentNode } = (0, utils_2.safeParse)('{' + fieldSet + '}');
|
|
436
|
+
if (error || !documentNode) {
|
|
437
|
+
errorMessages.push((0, errors_1.unparsableFieldSetErrorMessage)(fieldSet, error));
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
const parentContainers = [entityContainer];
|
|
441
|
+
const definedFields = [];
|
|
442
|
+
let currentDepth = -1;
|
|
443
|
+
let shouldDefineSelectionSet = true;
|
|
444
|
+
let lastFieldName = '';
|
|
445
|
+
(0, graphql_1.visit)(documentNode, {
|
|
446
|
+
Argument: {
|
|
447
|
+
enter(node) {
|
|
448
|
+
errorMessages.push((0, errors_1.unexpectedArgumentErrorMessage)(fieldSet, `${parentContainers[currentDepth].name.value}.${lastFieldName}`, node.name.value));
|
|
449
|
+
return graphql_1.BREAK;
|
|
450
|
+
},
|
|
451
|
+
},
|
|
452
|
+
Field: {
|
|
453
|
+
enter(node) {
|
|
454
|
+
const grandparentContainer = parentContainers[currentDepth - 1];
|
|
455
|
+
const parentContainer = parentContainers[currentDepth];
|
|
456
|
+
const parentTypeName = parentContainer.name.value;
|
|
457
|
+
// If an object-like was just visited, a selection set should have been entered
|
|
458
|
+
if (shouldDefineSelectionSet) {
|
|
459
|
+
errorMessages.push((0, errors_1.invalidSelectionSetErrorMessage)(fieldSet, `${grandparentContainer.name.value}.${lastFieldName}`, parentTypeName, (0, utils_1.kindToTypeString)(parentContainer.kind)));
|
|
460
|
+
return graphql_1.BREAK;
|
|
461
|
+
}
|
|
462
|
+
const fieldName = node.name.value;
|
|
463
|
+
const fieldPath = `${parentTypeName}.${fieldName}`;
|
|
464
|
+
lastFieldName = fieldName;
|
|
465
|
+
const fieldContainer = parentContainer.fields.get(fieldName);
|
|
466
|
+
// undefined if the field does not exist on the parent
|
|
467
|
+
if (!fieldContainer) {
|
|
468
|
+
errorMessages.push((0, errors_1.undefinedFieldInFieldSetErrorMessage)(fieldSet, parentTypeName, fieldName));
|
|
469
|
+
return graphql_1.BREAK;
|
|
470
|
+
}
|
|
471
|
+
if (fieldContainer.arguments.size) {
|
|
472
|
+
errorMessages.push((0, errors_1.argumentsInKeyFieldSetErrorMessage)(fieldSet, fieldPath));
|
|
473
|
+
return graphql_1.BREAK;
|
|
474
|
+
}
|
|
475
|
+
if (definedFields[currentDepth].has(fieldName)) {
|
|
476
|
+
errorMessages.push((0, errors_1.duplicateFieldInFieldSetErrorMessage)(fieldSet, fieldPath));
|
|
477
|
+
return graphql_1.BREAK;
|
|
478
|
+
}
|
|
479
|
+
definedFields[currentDepth].add(fieldName);
|
|
480
|
+
// Depth 0 is the original parent type
|
|
481
|
+
// If a field is external, but it's part of a key FieldSet, it will be included in the root configuration
|
|
482
|
+
if (currentDepth === 0) {
|
|
483
|
+
keyFieldNames.add(fieldName);
|
|
484
|
+
fieldNames.add(fieldName);
|
|
485
|
+
}
|
|
486
|
+
(0, utils_1.getValueOrDefault)(factory.keyFieldsByParentTypeName, parentTypeName, () => new Set)
|
|
487
|
+
.add(fieldName);
|
|
488
|
+
const namedTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, fieldContainer.node.type);
|
|
489
|
+
// The base scalars are not in the parents map
|
|
490
|
+
if (constants_1.BASE_SCALARS.has(namedTypeName)) {
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
// The child could itself be a parent and could exist as an object extension
|
|
494
|
+
const childContainer = factory.parents.get(namedTypeName)
|
|
495
|
+
|| factory.extensions.get(namedTypeName);
|
|
496
|
+
if (!childContainer) {
|
|
497
|
+
// Should not be possible to receive this error
|
|
498
|
+
errorMessages.push((0, errors_1.unknownTypeInFieldSetErrorMessage)(fieldSet, fieldPath, namedTypeName));
|
|
499
|
+
return graphql_1.BREAK;
|
|
500
|
+
}
|
|
501
|
+
if (childContainer.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION
|
|
502
|
+
|| childContainer.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION) {
|
|
503
|
+
shouldDefineSelectionSet = true;
|
|
504
|
+
parentContainers.push(childContainer);
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
// interfaces and unions are invalid in a key directive
|
|
508
|
+
if ((0, utils_2.isKindAbstract)(childContainer.kind)) {
|
|
509
|
+
errorMessages.push((0, errors_1.abstractTypeInKeyFieldSetErrorMessage)(fieldSet, fieldPath, namedTypeName, (0, utils_1.kindToTypeString)(childContainer.kind)));
|
|
510
|
+
return graphql_1.BREAK;
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
},
|
|
514
|
+
InlineFragment: {
|
|
515
|
+
enter() {
|
|
516
|
+
errorMessages.push(errors_1.inlineFragmentInFieldSetErrorMessage);
|
|
517
|
+
return graphql_1.BREAK;
|
|
518
|
+
},
|
|
519
|
+
},
|
|
520
|
+
SelectionSet: {
|
|
521
|
+
enter() {
|
|
522
|
+
if (!shouldDefineSelectionSet) {
|
|
523
|
+
const parentContainer = parentContainers[currentDepth];
|
|
524
|
+
const parentTypeName = parentContainer.name.value;
|
|
525
|
+
const fieldPath = `${parentTypeName}.${lastFieldName}`;
|
|
526
|
+
// If the last field is not an object-like
|
|
527
|
+
const fieldContainer = parentContainer.fields.get(lastFieldName);
|
|
528
|
+
if (!fieldContainer) {
|
|
529
|
+
errorMessages.push((0, errors_1.undefinedFieldInFieldSetErrorMessage)(fieldSet, fieldPath, lastFieldName));
|
|
530
|
+
return graphql_1.BREAK;
|
|
531
|
+
}
|
|
532
|
+
const fieldNamedTypeName = (0, type_merging_1.getNamedTypeForChild)(fieldPath, fieldContainer.node.type);
|
|
533
|
+
// If the child is not found, it's a base scalar. Undefined types would have already been handled.
|
|
534
|
+
const childContainer = factory.parents.get(fieldNamedTypeName);
|
|
535
|
+
const childKind = childContainer
|
|
536
|
+
? childContainer.kind : graphql_1.Kind.SCALAR_TYPE_DEFINITION;
|
|
537
|
+
errorMessages.push((0, errors_1.invalidSelectionSetDefinitionErrorMessage)(fieldSet, fieldPath, fieldNamedTypeName, (0, utils_1.kindToTypeString)(childKind)));
|
|
538
|
+
return graphql_1.BREAK;
|
|
539
|
+
}
|
|
540
|
+
currentDepth += 1;
|
|
541
|
+
shouldDefineSelectionSet = false;
|
|
542
|
+
if (currentDepth < 0 || currentDepth >= parentContainers.length) {
|
|
543
|
+
errorMessages.push((0, errors_1.unparsableFieldSetSelectionErrorMessage)(fieldSet, lastFieldName));
|
|
544
|
+
return graphql_1.BREAK;
|
|
545
|
+
}
|
|
546
|
+
definedFields.push(new Set());
|
|
547
|
+
},
|
|
548
|
+
leave() {
|
|
549
|
+
if (shouldDefineSelectionSet) {
|
|
550
|
+
const grandparentContainer = parentContainers[currentDepth];
|
|
551
|
+
const grandparentTypeName = grandparentContainer.name.value;
|
|
552
|
+
const parentContainer = parentContainers[currentDepth + 1];
|
|
553
|
+
const fieldPath = `${grandparentTypeName}.${lastFieldName}`;
|
|
554
|
+
errorMessages.push((0, errors_1.invalidSelectionSetErrorMessage)(fieldSet, fieldPath, parentContainer.name.value, (0, utils_1.kindToTypeString)(parentContainer.kind)));
|
|
555
|
+
shouldDefineSelectionSet = false;
|
|
556
|
+
}
|
|
557
|
+
// Empty selection sets would be a parse error, so it is unnecessary to handle them
|
|
558
|
+
currentDepth -= 1;
|
|
559
|
+
parentContainers.pop();
|
|
560
|
+
definedFields.pop();
|
|
561
|
+
},
|
|
562
|
+
},
|
|
563
|
+
});
|
|
564
|
+
if (!errorMessages.length) {
|
|
565
|
+
configurations.push({ fieldName: '', selectionSet: getNormalizedFieldSet(documentNode) });
|
|
566
|
+
}
|
|
261
567
|
}
|
|
262
|
-
if (
|
|
263
|
-
|
|
568
|
+
if (errorMessages.length) {
|
|
569
|
+
factory.errors.push((0, errors_1.invalidKeyDirectivesError)(entityTypeName, errorMessages));
|
|
264
570
|
return;
|
|
265
571
|
}
|
|
266
|
-
|
|
572
|
+
if (configurations.length) {
|
|
573
|
+
return configurations;
|
|
574
|
+
}
|
|
267
575
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
}
|
|
576
|
+
var FieldSetDirective;
|
|
577
|
+
(function (FieldSetDirective) {
|
|
578
|
+
FieldSetDirective["PROVIDES"] = "provides";
|
|
579
|
+
FieldSetDirective["REQUIRES"] = "requires";
|
|
580
|
+
})(FieldSetDirective || (FieldSetDirective = {}));
|
|
581
|
+
function getFieldSetParent(factory, fieldSetDirective, parentContainer, fieldName, parentTypeName) {
|
|
582
|
+
if (fieldSetDirective !== FieldSetDirective.PROVIDES) {
|
|
583
|
+
return factory.entities.has(parentTypeName) ? { fieldSetParentContainer: parentContainer } : {};
|
|
584
|
+
}
|
|
585
|
+
const fieldContainer = (0, utils_1.getOrThrowError)(parentContainer.fields, fieldName, `${parentTypeName}.fields`);
|
|
586
|
+
const fieldNamedTypeName = (0, type_merging_1.getNamedTypeForChild)(`${parentTypeName}.${fieldName}`, fieldContainer.node.type);
|
|
587
|
+
if (!factory.entities.has(fieldNamedTypeName)) {
|
|
588
|
+
return {};
|
|
589
|
+
}
|
|
590
|
+
const childContainer = factory.parents.get(fieldNamedTypeName)
|
|
591
|
+
|| factory.extensions.get(fieldNamedTypeName);
|
|
592
|
+
if (!childContainer
|
|
593
|
+
|| (childContainer.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION && childContainer.kind !== graphql_1.Kind.OBJECT_TYPE_EXTENSION)) {
|
|
594
|
+
return {
|
|
595
|
+
errorString: (0, errors_1.unknownProvidesEntityErrorMessage)(`${parentTypeName}.${fieldName}`, fieldNamedTypeName),
|
|
596
|
+
};
|
|
276
597
|
}
|
|
598
|
+
return { fieldSetParentContainer: childContainer };
|
|
277
599
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
600
|
+
function validateProvidesOrRequires(factory, parentContainer, fieldSetByFieldName, fieldSetDirective) {
|
|
601
|
+
const errorMessages = [];
|
|
602
|
+
const configurations = [];
|
|
603
|
+
const parentTypeName = parentContainer.name.value;
|
|
604
|
+
for (const [fieldName, fieldSet] of fieldSetByFieldName) {
|
|
605
|
+
/* It is possible to encounter a field before encountering the type definition.
|
|
606
|
+
Consequently, at that time, it is unknown whether the named type is an entity.
|
|
607
|
+
If it isn't, the @provides directive does not make sense and can be ignored.
|
|
608
|
+
*/
|
|
609
|
+
const { fieldSetParentContainer, errorString } = getFieldSetParent(factory, fieldSetDirective, parentContainer, fieldName, parentTypeName);
|
|
610
|
+
const fieldPath = `${parentTypeName}.${fieldName}`;
|
|
611
|
+
if (errorString) {
|
|
612
|
+
errorMessages.push(errorString);
|
|
285
613
|
continue;
|
|
286
614
|
}
|
|
287
|
-
if (
|
|
288
|
-
errorMessages.push((0, errors_1.duplicateDirectiveArgumentDefinitionErrorMessage)(directiveName, hostPath, argumentName));
|
|
615
|
+
if (!fieldSetParentContainer) {
|
|
289
616
|
continue;
|
|
290
617
|
}
|
|
291
|
-
|
|
618
|
+
const { errorMessage, configuration } = validateNonRepeatableFieldSet(factory, fieldSetParentContainer, fieldSet, fieldName);
|
|
619
|
+
if (errorMessage) {
|
|
620
|
+
errorMessages.push(` On "${parentTypeName}.${fieldName}" —` + errorMessage);
|
|
621
|
+
continue;
|
|
622
|
+
}
|
|
623
|
+
if (configuration) {
|
|
624
|
+
configurations.push(configuration);
|
|
625
|
+
continue;
|
|
626
|
+
}
|
|
627
|
+
// Should never happen
|
|
628
|
+
throw (0, errors_1.invalidConfigurationResultFatalError)(fieldPath);
|
|
629
|
+
}
|
|
630
|
+
if (errorMessages.length) {
|
|
631
|
+
factory.errors.push((0, errors_1.invalidProvidesOrRequiresDirectivesError)(fieldSetDirective, errorMessages));
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
if (configurations.length) {
|
|
635
|
+
return configurations;
|
|
292
636
|
}
|
|
293
|
-
return definedArguments;
|
|
294
637
|
}
|
|
295
|
-
|
|
638
|
+
function validateDirectivesWithFieldSet(factory, parentContainer, fieldSetContainer) {
|
|
639
|
+
const configurationData = (0, utils_1.getOrThrowError)(factory.configurationDataMap, parentContainer.name.value, 'configurationDataMap');
|
|
640
|
+
const keys = validateKeyFieldSets(factory, parentContainer, fieldSetContainer.keys, configurationData.fieldNames);
|
|
641
|
+
if (keys) {
|
|
642
|
+
configurationData.keys = keys;
|
|
643
|
+
}
|
|
644
|
+
const provides = validateProvidesOrRequires(factory, parentContainer, fieldSetContainer.provides, FieldSetDirective.PROVIDES);
|
|
645
|
+
if (provides) {
|
|
646
|
+
configurationData.provides = provides;
|
|
647
|
+
}
|
|
648
|
+
const requires = validateProvidesOrRequires(factory, parentContainer, fieldSetContainer.requires, FieldSetDirective.REQUIRES);
|
|
649
|
+
if (requires) {
|
|
650
|
+
configurationData.requires = requires;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
exports.validateDirectivesWithFieldSet = validateDirectivesWithFieldSet;
|
|
296
654
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/normalization/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/normalization/utils.ts"],"names":[],"mappings":"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"}
|