@wundergraph/composition 0.27.2 → 0.28.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.
Files changed (45) hide show
  1. package/dist/ast/utils.d.ts +0 -2
  2. package/dist/ast/utils.js +0 -34
  3. package/dist/ast/utils.js.map +1 -1
  4. package/dist/errors/errors.d.ts +3 -0
  5. package/dist/errors/errors.js +13 -0
  6. package/dist/errors/errors.js.map +1 -1
  7. package/dist/federation/federation-factory.d.ts +9 -12
  8. package/dist/federation/federation-factory.js +134 -347
  9. package/dist/federation/federation-factory.js.map +1 -1
  10. package/dist/federation/utils.d.ts +27 -6
  11. package/dist/federation/utils.js +123 -0
  12. package/dist/federation/utils.js.map +1 -1
  13. package/dist/federation/walkers.d.ts +1 -1
  14. package/dist/federation/walkers.js +7 -28
  15. package/dist/federation/walkers.js.map +1 -1
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.js +3 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/normalization/normalization-factory.d.ts +12 -10
  20. package/dist/normalization/normalization-factory.js +52 -29
  21. package/dist/normalization/normalization-factory.js.map +1 -1
  22. package/dist/normalization/utils.d.ts +1 -1
  23. package/dist/normalization/utils.js +54 -25
  24. package/dist/normalization/utils.js.map +1 -1
  25. package/dist/normalization/walkers.js +78 -73
  26. package/dist/normalization/walkers.js.map +1 -1
  27. package/dist/resolvability-graph/graph-nodes.d.ts +48 -0
  28. package/dist/resolvability-graph/graph-nodes.js +104 -0
  29. package/dist/resolvability-graph/graph-nodes.js.map +1 -0
  30. package/dist/resolvability-graph/graph.d.ts +33 -0
  31. package/dist/resolvability-graph/graph.js +406 -0
  32. package/dist/resolvability-graph/graph.js.map +1 -0
  33. package/dist/resolvability-graph/utils.d.ts +65 -0
  34. package/dist/resolvability-graph/utils.js +143 -0
  35. package/dist/resolvability-graph/utils.js.map +1 -0
  36. package/dist/schema-building/utils.js +1 -1
  37. package/dist/schema-building/utils.js.map +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/dist/utils/string-constants.d.ts +5 -2
  40. package/dist/utils/string-constants.js +6 -4
  41. package/dist/utils/string-constants.js.map +1 -1
  42. package/dist/utils/utils.d.ts +16 -2
  43. package/dist/utils/utils.js +35 -33
  44. package/dist/utils/utils.js.map +1 -1
  45. package/package.json +2 -4
@@ -17,5 +17,5 @@ export type InputValidationContainer = {
17
17
  export declare function addFieldNamesToConfigurationData(fieldDataByFieldName: Map<string, FieldData>, configurationData: ConfigurationData): void;
18
18
  export declare function extractFieldSetValue(name: string, map: Map<string, string>, directives?: ConstDirectiveNode[]): void;
19
19
  export declare function getNormalizedFieldSet(documentNode: DocumentNode): string;
20
- export declare function validateAndAddDirectivesWithFieldSetToConfigurationData(factory: NormalizationFactory, parentContainer: ParentWithFieldsData, fieldSetData: FieldSetData): void;
20
+ export declare function validateAndAddFieldSetDirectivesToConfigurationData(factory: NormalizationFactory, parentData: ParentWithFieldsData, fieldSetData: FieldSetData): void;
21
21
  export declare function isNodeQuery(typeName: string, operationTypeNode?: OperationTypeNode): boolean;
@@ -6,7 +6,7 @@ exports.getDirectiveDefinitionArgumentSets = getDirectiveDefinitionArgumentSets;
6
6
  exports.addFieldNamesToConfigurationData = addFieldNamesToConfigurationData;
7
7
  exports.extractFieldSetValue = extractFieldSetValue;
8
8
  exports.getNormalizedFieldSet = getNormalizedFieldSet;
9
- exports.validateAndAddDirectivesWithFieldSetToConfigurationData = validateAndAddDirectivesWithFieldSetToConfigurationData;
9
+ exports.validateAndAddFieldSetDirectivesToConfigurationData = validateAndAddFieldSetDirectivesToConfigurationData;
10
10
  exports.isNodeQuery = isNodeQuery;
11
11
  const graphql_1 = require("graphql");
12
12
  const utils_1 = require("../utils/utils");
@@ -232,19 +232,19 @@ function validateNonRepeatableFieldSet(factory, parentData, fieldSet, directiveF
232
232
  return;
233
233
  }
234
234
  // The child could itself be a parent and could exist as an object extension
235
- const childContainer = factory.parentDefinitionDataByTypeName.get(namedTypeName) ||
235
+ const namedTypeData = factory.parentDefinitionDataByTypeName.get(namedTypeName) ||
236
236
  factory.parentExtensionDataByTypeName.get(namedTypeName);
237
- if (!childContainer) {
237
+ if (!namedTypeData) {
238
238
  // Should not be possible to receive this error
239
239
  errorMessage = (0, errors_1.unknownTypeInFieldSetErrorMessage)(fieldSet, fieldPath, namedTypeName);
240
240
  return graphql_1.BREAK;
241
241
  }
242
- if (childContainer.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION ||
243
- childContainer.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION ||
244
- childContainer.kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION ||
245
- childContainer.kind === graphql_1.Kind.UNION_TYPE_DEFINITION) {
242
+ if (namedTypeData.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION ||
243
+ namedTypeData.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION ||
244
+ namedTypeData.kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION ||
245
+ namedTypeData.kind === graphql_1.Kind.UNION_TYPE_DEFINITION) {
246
246
  shouldDefineSelectionSet = true;
247
- parentDatas.push(childContainer);
247
+ parentDatas.push(namedTypeData);
248
248
  return;
249
249
  }
250
250
  },
@@ -341,10 +341,15 @@ function validateNonRepeatableFieldSet(factory, parentData, fieldSet, directiveF
341
341
  return { configuration: { fieldName: directiveFieldName, selectionSet: getNormalizedFieldSet(documentNode) } };
342
342
  }
343
343
  function validateKeyFieldSets(nf, entityParentData, nonResolvableByKeyFieldSet, fieldNames) {
344
+ const isEntityInterface = nf.entityInterfaceDataByTypeName.has(entityParentData.name);
344
345
  const entityTypeName = entityParentData.name;
345
346
  const errorMessages = [];
346
347
  const configurations = [];
347
348
  const keyFieldNames = new Set();
349
+ const allKeyFieldSetPaths = [];
350
+ // If the key is on an entity interface/interface object, an entity data node should not be propagated
351
+ const entityDataNode = isEntityInterface ? undefined : nf.internalGraph.addEntityDataNode(entityParentData.name);
352
+ const graphNode = nf.internalGraph.addOrUpdateNode(entityParentData.name);
348
353
  for (const [fieldSet, disableEntityResolver] of nonResolvableByKeyFieldSet) {
349
354
  // Create a new selection set so that the value can be parsed as a new DocumentNode
350
355
  const { error, documentNode } = (0, utils_2.safeParse)('{' + fieldSet + '}');
@@ -354,6 +359,8 @@ function validateKeyFieldSets(nf, entityParentData, nonResolvableByKeyFieldSet,
354
359
  }
355
360
  const parentWithFieldsDatas = [entityParentData];
356
361
  const definedFields = [];
362
+ const currentPath = [];
363
+ const keyFieldSetPaths = new Set();
357
364
  let currentDepth = -1;
358
365
  let shouldDefineSelectionSet = true;
359
366
  let lastFieldName = '';
@@ -368,12 +375,12 @@ function validateKeyFieldSets(nf, entityParentData, nonResolvableByKeyFieldSet,
368
375
  },
369
376
  Field: {
370
377
  enter(node) {
371
- const grandparentContainer = parentWithFieldsDatas[currentDepth - 1];
378
+ const grandparentData = parentWithFieldsDatas[currentDepth - 1];
372
379
  const parentData = parentWithFieldsDatas[currentDepth];
373
380
  const parentTypeName = parentData.name;
374
381
  // If an object-like was just visited, a selection set should have been entered
375
382
  if (shouldDefineSelectionSet) {
376
- errorMessages.push((0, errors_1.invalidSelectionSetErrorMessage)(fieldSet, `${grandparentContainer.name}.${lastFieldName}`, parentTypeName, (0, utils_1.kindToTypeString)(parentData.kind)));
383
+ errorMessages.push((0, errors_1.invalidSelectionSetErrorMessage)(fieldSet, `${grandparentData.name}.${lastFieldName}`, parentTypeName, (0, utils_1.kindToTypeString)(parentData.kind)));
377
384
  return graphql_1.BREAK;
378
385
  }
379
386
  const fieldName = node.name.value;
@@ -393,6 +400,7 @@ function validateKeyFieldSets(nf, entityParentData, nonResolvableByKeyFieldSet,
393
400
  errorMessages.push((0, errors_1.duplicateFieldInFieldSetErrorMessage)(fieldSet, fieldPath));
394
401
  return graphql_1.BREAK;
395
402
  }
403
+ currentPath.push(fieldName);
396
404
  // Fields that form part of an entity key are intrinsically shareable
397
405
  fieldData.isShareableBySubgraphName.set(nf.subgraphName, true);
398
406
  definedFields[currentDepth].add(fieldName);
@@ -415,6 +423,8 @@ function validateKeyFieldSets(nf, entityParentData, nonResolvableByKeyFieldSet,
415
423
  const namedTypeName = (0, ast_1.getTypeNodeNamedTypeName)(fieldData.node.type);
416
424
  // The base scalars are not in the parents map
417
425
  if (constants_1.BASE_SCALARS.has(namedTypeName)) {
426
+ keyFieldSetPaths.add(currentPath.join(string_constants_1.PERIOD));
427
+ currentPath.pop();
418
428
  return;
419
429
  }
420
430
  // The child could itself be a parent and could exist as an object extension
@@ -434,6 +444,8 @@ function validateKeyFieldSets(nf, entityParentData, nonResolvableByKeyFieldSet,
434
444
  errorMessages.push((0, errors_1.abstractTypeInKeyFieldSetErrorMessage)(fieldSet, fieldPath, namedTypeName, (0, utils_1.kindToTypeString)(namedTypeData.kind)));
435
445
  return graphql_1.BREAK;
436
446
  }
447
+ keyFieldSetPaths.add(currentPath.join(string_constants_1.PERIOD));
448
+ currentPath.pop();
437
449
  },
438
450
  },
439
451
  InlineFragment: {
@@ -485,18 +497,28 @@ function validateKeyFieldSets(nf, entityParentData, nonResolvableByKeyFieldSet,
485
497
  },
486
498
  },
487
499
  });
488
- if (!errorMessages.length) {
489
- configurations.push({
490
- fieldName: '',
491
- selectionSet: getNormalizedFieldSet(documentNode),
492
- ...(disableEntityResolver ? { disableEntityResolver: true } : {}),
493
- });
500
+ if (errorMessages.length > 0) {
501
+ continue;
502
+ }
503
+ const normalizedFieldSet = getNormalizedFieldSet(documentNode);
504
+ configurations.push({
505
+ fieldName: '',
506
+ selectionSet: normalizedFieldSet,
507
+ ...(disableEntityResolver ? { disableEntityResolver: true } : {}),
508
+ });
509
+ graphNode.satisfiedFieldSets.add(normalizedFieldSet);
510
+ if (disableEntityResolver) {
511
+ continue;
494
512
  }
513
+ entityDataNode?.addTargetSubgraphByFieldSet(normalizedFieldSet, nf.subgraphName);
514
+ allKeyFieldSetPaths.push(keyFieldSetPaths);
495
515
  }
496
516
  if (errorMessages.length) {
497
517
  nf.errors.push((0, errors_1.invalidKeyDirectivesError)(entityTypeName, errorMessages));
498
518
  return;
499
519
  }
520
+ // todo
521
+ // nf.internalGraph.addEntityNode(entityTypeName, allKeyFieldSetPaths);
500
522
  if (configurations.length) {
501
523
  return configurations;
502
524
  }
@@ -524,7 +546,7 @@ function getFieldSetParent(factory, fieldSetDirective, parentData, fieldName, pa
524
546
  }
525
547
  return { fieldSetParentContainer: childData };
526
548
  }
527
- function validateProvidesOrRequires(factory, parentData, fieldSetByFieldName, fieldSetDirective) {
549
+ function validateProvidesOrRequires(nf, parentData, fieldSetByFieldName, fieldSetDirective) {
528
550
  const errorMessages = [];
529
551
  const configurations = [];
530
552
  const parentTypeName = parentData.name;
@@ -533,7 +555,7 @@ function validateProvidesOrRequires(factory, parentData, fieldSetByFieldName, fi
533
555
  Consequently, at that time, it is unknown whether the named type is an entity.
534
556
  If it isn't, the @provides directive does not make sense and can be ignored.
535
557
  */
536
- const { fieldSetParentContainer, errorString } = getFieldSetParent(factory, fieldSetDirective, parentData, fieldName, parentTypeName);
558
+ const { fieldSetParentContainer, errorString } = getFieldSetParent(nf, fieldSetDirective, parentData, fieldName, parentTypeName);
537
559
  const fieldPath = `${parentTypeName}.${fieldName}`;
538
560
  if (errorString) {
539
561
  errorMessages.push(errorString);
@@ -542,7 +564,7 @@ function validateProvidesOrRequires(factory, parentData, fieldSetByFieldName, fi
542
564
  if (!fieldSetParentContainer) {
543
565
  continue;
544
566
  }
545
- const { errorMessage, configuration } = validateNonRepeatableFieldSet(factory, fieldSetParentContainer, fieldSet, fieldName);
567
+ const { errorMessage, configuration } = validateNonRepeatableFieldSet(nf, fieldSetParentContainer, fieldSet, fieldName);
546
568
  if (errorMessage) {
547
569
  errorMessages.push(` On "${parentTypeName}.${fieldName}" —` + errorMessage);
548
570
  continue;
@@ -555,24 +577,31 @@ function validateProvidesOrRequires(factory, parentData, fieldSetByFieldName, fi
555
577
  throw (0, errors_1.invalidConfigurationResultFatalError)(fieldPath);
556
578
  }
557
579
  if (errorMessages.length) {
558
- factory.errors.push((0, errors_1.invalidProvidesOrRequiresDirectivesError)(fieldSetDirective, errorMessages));
580
+ nf.errors.push((0, errors_1.invalidProvidesOrRequiresDirectivesError)(fieldSetDirective, errorMessages));
559
581
  return;
560
582
  }
561
583
  if (configurations.length) {
562
584
  return configurations;
563
585
  }
564
586
  }
565
- function validateAndAddDirectivesWithFieldSetToConfigurationData(factory, parentContainer, fieldSetData) {
566
- const configurationData = (0, utils_1.getOrThrowError)(factory.configurationDataByParentTypeName, parentContainer.name, 'configurationDataMap');
567
- const keys = validateKeyFieldSets(factory, parentContainer, fieldSetData.isUnresolvableByKeyFieldSet, configurationData.fieldNames);
587
+ function validateAndAddFieldSetDirectivesToConfigurationData(factory, parentData, fieldSetData) {
588
+ const configurationData = (0, utils_1.getOrThrowError)(factory.configurationDataByParentTypeName, parentData.name, 'configurationDataMap');
589
+ const keys = validateKeyFieldSets(factory, parentData, fieldSetData.isUnresolvableByKeyFieldSet, configurationData.fieldNames);
568
590
  if (keys) {
569
591
  configurationData.keys = keys;
592
+ const keyFieldSets = new Set();
593
+ for (const requiredFieldConfiguration of keys) {
594
+ if (requiredFieldConfiguration.disableEntityResolver) {
595
+ continue;
596
+ }
597
+ keyFieldSets.add(requiredFieldConfiguration.selectionSet);
598
+ }
570
599
  }
571
- const provides = validateProvidesOrRequires(factory, parentContainer, fieldSetData.provides, FieldSetDirective.PROVIDES);
600
+ const provides = validateProvidesOrRequires(factory, parentData, fieldSetData.provides, FieldSetDirective.PROVIDES);
572
601
  if (provides) {
573
602
  configurationData.provides = provides;
574
603
  }
575
- const requires = validateProvidesOrRequires(factory, parentContainer, fieldSetData.requires, FieldSetDirective.REQUIRES);
604
+ const requires = validateProvidesOrRequires(factory, parentData, fieldSetData.requires, FieldSetDirective.REQUIRES);
576
605
  if (requires) {
577
606
  configurationData.requires = requires;
578
607
  }
@@ -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":";;AA4EA,0CAMC;AAED,8FAyGC;AAED,gFAaC;AAOD,4EAmBC;AAED,oDAiBC;AAOD,sDAQC;AAkgBD,kHAkCC;AAED,kCAEC;AAhzBD,qCAWiB;AACjB,0CAAsF;AACtF,wCAA4F;AAC5F,gEAwBmC;AAEnC,6CAwB0B;AAC1B,kDAAkD;AAGlD,gDAAkE;AAQlE,SAAgB,eAAe;IAC7B,OAAO;QACL,2BAA2B,EAAE,IAAI,GAAG,EAAmB;QACvD,QAAQ,EAAE,IAAI,GAAG,EAAkB;QACnC,QAAQ,EAAE,IAAI,GAAG,EAAkB;KACpC,CAAC;AACJ,CAAC;AAED,SAAgB,yCAAyC,CACvD,IAAU,EACV,uBAAgD,EAChD,UAAU,GAAG,KAAK;IAElB,KAAK,MAAM,QAAQ,IAAI,uBAAuB,CAAC,SAAS,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAClD,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,4CAAyB;gBAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM;gBACR,CAAC;gBACD,IAAI,IAAI,KAAK,cAAI,CAAC,sBAAsB,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,6BAAU;gBACb,IAAI,IAAI,KAAK,cAAI,CAAC,oBAAoB,IAAI,IAAI,KAAK,cAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC5E,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,mCAAgB;gBACnB,IAAI,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,8BAAW;gBACd,IAAI,IAAI,KAAK,cAAI,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,yCAAsB;gBACzB,IAAI,IAAI,KAAK,cAAI,CAAC,gBAAgB,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,wCAAqB;gBACxB,IAAI,IAAI,KAAK,cAAI,CAAC,eAAe,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,+CAA4B;gBAC/B,IAAI,IAAI,KAAK,cAAI,CAAC,sBAAsB,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,qCAAkB;gBACrB,IAAI,IAAI,KAAK,cAAI,CAAC,4BAA4B,IAAI,IAAI,KAAK,cAAI,CAAC,2BAA2B,EAAE,CAAC;oBAC5F,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,kCAAe;gBAClB,IAAI,IAAI,KAAK,cAAI,CAAC,yBAAyB,IAAI,IAAI,KAAK,cAAI,CAAC,wBAAwB,EAAE,CAAC;oBACtF,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,+BAAY;gBACf,IAAI,IAAI,KAAK,cAAI,CAAC,sBAAsB,IAAI,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;oBAChF,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,4CAAyB;gBAC5B,IAAI,IAAI,KAAK,cAAI,CAAC,mBAAmB,EAAE,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,wCAAqB;gBACxB,IAAI,IAAI,KAAK,cAAI,CAAC,eAAe,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,+BAAY;gBACf,IAAI,IAAI,KAAK,cAAI,CAAC,sBAAsB,IAAI,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;oBAChF,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,+BAAY;gBACf,IAAI,IAAI,KAAK,cAAI,CAAC,iBAAiB,IAAI,IAAI,KAAK,cAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtE,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,8BAAW;gBACd,IAAI,IAAI,KAAK,cAAI,CAAC,qBAAqB,IAAI,IAAI,KAAK,cAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC9E,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,4CAAyB;gBAC5B,IAAI,IAAI,KAAK,cAAI,CAAC,mBAAmB,EAAE,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR,KAAK,8BAAW,CAAC;YACjB,0BAA0B;YAC1B,KAAK,iCAAc,CAAC;YACpB,0BAA0B;YAC1B,KAAK,qCAAkB;gBACrB,IAAI,IAAI,KAAK,cAAI,CAAC,oBAAoB,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM;YACR;gBACE,MAAM,IAAA,yCAAgC,EAAC,YAAY,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,kCAAkC,CAChD,IAAyC,EACzC,0BAAiD,EACjD,iBAA8B;IAE9B,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACzC,0BAA0B,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,iFAAiF;QACjF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACxE,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAOD,SAAgB,gCAAgC,CAC9C,oBAA4C,EAC5C,iBAAoC;IAEpC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,KAAK,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,oBAAoB,EAAE,CAAC;QAC/D,IAAI,cAAc,CAAC,yBAAyB,CAAC,GAAG,CAAC,2BAAQ,CAAC,EAAE,CAAC;YAC3D,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;gBACzC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChC,iBAAiB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAY,EAAE,GAAwB,EAAE,UAAiC;IAC5G,0DAA0D;IAC1D,yFAAyF;IACzF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IACD,uCAAuC;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,sDAAsD;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,KAAK,yBAAM,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM,EAAE,CAAC;QACtF,OAAO;IACT,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAOD,SAAgB,qBAAqB,CAAC,YAA0B;IAC9D;;;;;MAKE;IACF,OAAO,IAAA,eAAK,EAAC,IAAA,yCAAiC,EAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,6BAA6B,CACpC,OAA6B,EAC7B,UAAgC,EAChC,QAAgB,EAChB,kBAA0B;IAE1B,mFAAmF;IACnF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAA,iBAAS,EAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;IAChE,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,EAAE,YAAY,EAAE,IAAA,uCAA8B,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,YAAY,CAAC;IACjB,MAAM,WAAW,GAAmD,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,IAAI,wBAAwB,GAAG,IAAI,CAAC;IACpC,IAAI,aAAa,GAAG,kBAAkB,CAAC;IACvC,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IAChC,IAAA,eAAK,EAAC,YAAY,EAAE;QAClB,QAAQ,EAAE;YACR,KAAK;gBACH,OAAO,KAAK,CAAC;YACf,CAAC;SACF;QACD,KAAK,EAAE;YACL,KAAK,CAAC,IAAI;gBACR,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;gBACvC,IAAI,UAAU,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;oBACnD,YAAY,GAAG,IAAA,4CAAmC,EAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;oBACxF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,+EAA+E;gBAC/E,IAAI,wBAAwB,EAAE,CAAC;oBAC7B,YAAY,GAAG,IAAA,wCAA+B,EAC5C,QAAQ,EACR,SAAS,EACT,cAAc,EACd,IAAA,wBAAgB,EAAC,UAAU,CAAC,IAAI,CAAC,CAClC,CAAC;oBACF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAClC,SAAS,GAAG,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC;gBAC7C,aAAa,GAAG,SAAS,CAAC;gBAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACjE,sDAAsD;gBACtD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,YAAY,GAAG,IAAA,6CAAoC,EAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;oBACzF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/C,YAAY,GAAG,IAAA,6CAAoC,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACzE,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM,aAAa,GAAG,IAAA,8BAAwB,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpE,8CAA8C;gBAC9C,IAAI,wBAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,4EAA4E;gBAC5E,MAAM,aAAa,GACjB,OAAO,CAAC,8BAA8B,CAAC,GAAG,CAAC,aAAa,CAAC;oBACzD,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,+CAA+C;oBAC/C,YAAY,GAAG,IAAA,0CAAiC,EAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;oBACrF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,IACE,aAAa,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB;oBAClD,aAAa,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB;oBACjD,aAAa,CAAC,IAAI,KAAK,cAAI,CAAC,yBAAyB;oBACrD,aAAa,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,EACjD,CAAC;oBACD,wBAAwB,GAAG,IAAI,CAAC;oBAChC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;YACH,CAAC;SACF;QACD,cAAc,EAAE;YACd,KAAK,CAAC,IAAI;gBACR,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,YAAY,GAAG,IAAA,uDAA8C,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACnF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxD,+CAA+C;gBAC/C,IAAI,iBAAiB,KAAK,cAAc,EAAE,CAAC;oBACzC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC7B,wBAAwB,GAAG,IAAI,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,YAAY,GAAG,IAAA,8CAAqC,EAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;oBAC7G,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,MAAM,qBAAqB,GACzB,OAAO,CAAC,8BAA8B,CAAC,GAAG,CAAC,iBAAiB,CAAC;oBAC7D,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,YAAY,GAAG,IAAA,uDAA8C,EAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;oBACtG,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,IACE,qBAAqB,CAAC,IAAI,KAAK,cAAI,CAAC,yBAAyB;oBAC7D,qBAAqB,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB;oBAC1D,qBAAqB,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB;oBACzD,qBAAqB,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,EACzD,CAAC;oBACD,YAAY,GAAG,IAAA,2DAAkD,EAC/D,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,IAAA,wBAAgB,EAAC,qBAAqB,CAAC,IAAI,CAAC,CAC7C,CAAC;oBACF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,mCAAmC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAC1F,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACpE,YAAY,GAAG,IAAA,uDAA8C,EAC3D,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,IAAA,wBAAgB,EAAC,UAAU,CAAC,IAAI,CAAC,EACjC,cAAc,CACf,CAAC;oBACF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,wBAAwB,GAAG,IAAI,CAAC;gBAChC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK;gBACH,WAAW,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC;SACF;QACD,YAAY,EAAE;YACZ,KAAK;gBACH,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBAC9B,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;oBAClD,IAAI,eAAe,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;wBACxD,sBAAsB;wBACtB,YAAY,GAAG,IAAA,gDAAuC,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;wBAChF,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,MAAM,SAAS,GAAG,eAAe,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,YAAY,GAAG,IAAA,6CAAoC,EAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;wBACxF,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,MAAM,kBAAkB,GAAG,IAAA,8BAAwB,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzE,kGAAkG;oBAClG,MAAM,cAAc,GAAG,OAAO,CAAC,8BAA8B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBACtF,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAI,CAAC,sBAAsB,CAAC;oBACrF,YAAY,GAAG,IAAA,kDAAyC,EACtD,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,IAAA,wBAAgB,EAAC,SAAS,CAAC,CAC5B,CAAC;oBACF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,YAAY,IAAI,CAAC,CAAC;gBAClB,wBAAwB,GAAG,KAAK,CAAC;gBACjC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;oBAC3D,YAAY,GAAG,IAAA,gDAAuC,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAChF,OAAO,eAAK,CAAC;gBACf,CAAC;gBACD,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC;YACxC,CAAC;YACD,KAAK;gBACH,IAAI,wBAAwB,EAAE,CAAC;oBAC7B,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;oBACtD,YAAY,GAAG,IAAA,wCAA+B,EAC5C,QAAQ,EACR,SAAS,EACT,eAAe,CAAC,IAAI,EACpB,IAAA,wBAAgB,EAAC,eAAe,CAAC,IAAI,CAAC,CACvC,CAAC;oBACF,wBAAwB,GAAG,KAAK,CAAC;gBACnC,CAAC;gBACD,mFAAmF;gBACnF,YAAY,IAAI,CAAC,CAAC;gBAClB,WAAW,CAAC,GAAG,EAAE,CAAC;gBAClB,aAAa,CAAC,GAAG,EAAE,CAAC;YACtB,CAAC;SACF;KACF,CAAC,CAAC;IACH,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,qBAAqB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;AACjH,CAAC;AAED,SAAS,oBAAoB,CAC3B,EAAwB,EACxB,gBAAsC,EACtC,0BAAgD,EAChD,UAAuB;IAEvB,MAAM,iBAAiB,GAAG,EAAE,CAAC,6BAA6B,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC;IAC7C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,cAAc,GAAiC,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,mBAAmB,GAAuB,EAAE,CAAC;IACnD,sGAAsG;IACtG,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjH,MAAM,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC,IAAI,0BAA0B,EAAE,CAAC;QAC3E,mFAAmF;QACnF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAA,iBAAS,EAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;QAChE,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,IAAA,uCAA8B,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACpE,SAAS;QACX,CAAC;QACD,MAAM,qBAAqB,GAA2B,CAAC,gBAAgB,CAAC,CAAC;QACzE,MAAM,aAAa,GAAuB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAkB,EAAE,CAAC;QACtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,wBAAwB,GAAG,IAAI,CAAC;QACpC,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAA,eAAK,EAAC,YAAY,EAAE;YAClB,QAAQ,EAAE;gBACR,KAAK,CAAC,IAAI;oBACR,mEAAmE;oBACnE,mFAAmF;oBACnF,aAAa,CAAC,IAAI,CAChB,IAAA,uCAA8B,EAC5B,QAAQ,EACR,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,aAAa,EAAE,EAC9D,IAAI,CAAC,IAAI,CAAC,KAAK,CAChB,CACF,CAAC;oBACF,OAAO,eAAK,CAAC;gBACf,CAAC;aACF;YACD,KAAK,EAAE;gBACL,KAAK,CAAC,IAAI;oBACR,MAAM,eAAe,GAAG,qBAAqB,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;oBAChE,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;oBACvD,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;oBACvC,+EAA+E;oBAC/E,IAAI,wBAAwB,EAAE,CAAC;wBAC7B,aAAa,CAAC,IAAI,CAChB,IAAA,wCAA+B,EAC7B,QAAQ,EACR,GAAG,eAAe,CAAC,IAAI,IAAI,aAAa,EAAE,EAC1C,cAAc,EACd,IAAA,wBAAgB,EAAC,UAAU,CAAC,IAAI,CAAC,CAClC,CACF,CAAC;wBACF,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBAClC,MAAM,SAAS,GAAG,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC;oBACnD,aAAa,GAAG,SAAS,CAAC;oBAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACjE,sDAAsD;oBACtD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,aAAa,CAAC,IAAI,CAAC,IAAA,6CAAoC,EAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;wBAC9F,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,IAAI,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;wBAC9C,aAAa,CAAC,IAAI,CAAC,IAAA,2CAAkC,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;wBAC5E,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/C,aAAa,CAAC,IAAI,CAAC,IAAA,6CAAoC,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;wBAC9E,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5B,qEAAqE;oBACrE,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;oBAC/D,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC3C;;4CAEwB;oBACxB,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;wBACvB,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAC7B,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,MAAM,uBAAuB,GAAG,EAAE,CAAC,iCAAiC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;wBACzF,IAAI,CAAC,uBAAuB,EAAE,CAAC;4BAC7B,aAAa,CAAC,IAAI,CAAC,IAAA,6CAAoC,EAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;4BAC9F,OAAO,eAAK,CAAC;wBACf,CAAC;wBACD,uBAAuB,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACpD,CAAC;oBACD,IAAA,yBAAiB,EAAC,EAAE,CAAC,6BAA6B,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC5G,MAAM,aAAa,GAAG,IAAA,8BAAwB,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpE,8CAA8C;oBAC9C,IAAI,wBAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;wBACpC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,yBAAM,CAAC,CAAC,CAAC;wBAC/C,WAAW,CAAC,GAAG,EAAE,CAAC;wBAClB,OAAO;oBACT,CAAC;oBACD,4EAA4E;oBAC5E,MAAM,aAAa,GACjB,EAAE,CAAC,8BAA8B,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,6BAA6B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC9G,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,+CAA+C;wBAC/C,aAAa,CAAC,IAAI,CAAC,IAAA,0CAAiC,EAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;wBAC1F,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,IAAI,aAAa,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB,IAAI,aAAa,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC5G,wBAAwB,GAAG,IAAI,CAAC;wBAChC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC1C,OAAO;oBACT,CAAC;oBACD,uDAAuD;oBACvD,IAAI,IAAA,sBAAc,EAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvC,aAAa,CAAC,IAAI,CAChB,IAAA,8CAAqC,EACnC,QAAQ,EACR,SAAS,EACT,aAAa,EACb,IAAA,wBAAgB,EAAC,aAAa,CAAC,IAAI,CAAC,CACrC,CACF,CAAC;wBACF,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,yBAAM,CAAC,CAAC,CAAC;oBAC/C,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;aACF;YACD,cAAc,EAAE;gBACd,KAAK;oBACH,aAAa,CAAC,IAAI,CAAC,6CAAoC,CAAC,CAAC;oBACzD,OAAO,eAAK,CAAC;gBACf,CAAC;aACF;YACD,YAAY,EAAE;gBACZ,KAAK;oBACH,IAAI,CAAC,wBAAwB,EAAE,CAAC;wBAC9B,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;wBACvD,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;wBACvC,MAAM,SAAS,GAAG,GAAG,cAAc,IAAI,aAAa,EAAE,CAAC;wBACvD,0CAA0C;wBAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBACrE,IAAI,CAAC,SAAS,EAAE,CAAC;4BACf,aAAa,CAAC,IAAI,CAAC,IAAA,6CAAoC,EAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;4BAC7F,OAAO,eAAK,CAAC;wBACf,CAAC;wBACD,MAAM,kBAAkB,GAAG,IAAA,8BAAwB,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACzE,kGAAkG;wBAClG,MAAM,aAAa,GAAG,EAAE,CAAC,8BAA8B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBAChF,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,cAAI,CAAC,sBAAsB,CAAC;wBACvF,aAAa,CAAC,IAAI,CAChB,IAAA,kDAAyC,EACvC,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,IAAA,wBAAgB,EAAC,aAAa,CAAC,CAChC,CACF,CAAC;wBACF,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,YAAY,IAAI,CAAC,CAAC;oBAClB,wBAAwB,GAAG,KAAK,CAAC;oBACjC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,IAAI,qBAAqB,CAAC,MAAM,EAAE,CAAC;wBACrE,aAAa,CAAC,IAAI,CAAC,IAAA,gDAAuC,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;wBACrF,OAAO,eAAK,CAAC;oBACf,CAAC;oBACD,aAAa,CAAC,IAAI,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC;gBACxC,CAAC;gBACD,KAAK;oBACH,IAAI,wBAAwB,EAAE,CAAC;wBAC7B,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;wBACjE,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC;wBACtD,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;wBAC3D,MAAM,SAAS,GAAG,GAAG,mBAAmB,IAAI,aAAa,EAAE,CAAC;wBAC5D,aAAa,CAAC,IAAI,CAChB,IAAA,wCAA+B,EAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,IAAA,wBAAgB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CACzG,CAAC;wBACF,wBAAwB,GAAG,KAAK,CAAC;oBACnC,CAAC;oBACD,mFAAmF;oBACnF,YAAY,IAAI,CAAC,CAAC;oBAClB,qBAAqB,CAAC,GAAG,EAAE,CAAC;oBAC5B,aAAa,CAAC,GAAG,EAAE,CAAC;gBACtB,CAAC;aACF;SACF,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC/D,cAAc,CAAC,IAAI,CAAC;YAClB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,kBAAkB;YAChC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,cAAc,EAAE,2BAA2B,CAAC,kBAAkB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;QACjF,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,kCAAyB,EAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IACD,OAAO;IACP,uEAAuE;IACvE,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,IAAK,iBAGJ;AAHD,WAAK,iBAAiB;IACpB,0CAAqB,CAAA;IACrB,0CAAqB,CAAA;AACvB,CAAC,EAHI,iBAAiB,KAAjB,iBAAiB,QAGrB;AAOD,SAAS,iBAAiB,CACxB,OAA6B,EAC7B,iBAAoC,EACpC,UAAgC,EAChC,SAAiB,EACjB,cAAsB;IAEtB,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QACrD,OAAO,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,CAAC;IACD,MAAM,SAAS,GAAG,IAAA,uBAAe,EAC/B,UAAU,CAAC,oBAAoB,EAC/B,SAAS,EACT,GAAG,cAAc,uBAAuB,CACzC,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAA,8BAAwB,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GACb,OAAO,CAAC,8BAA8B,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC9D,OAAO,CAAC,6BAA6B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB,IAAI,SAAS,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACpH,OAAO;YACL,WAAW,EAAE,IAAA,0CAAiC,EAAC,GAAG,cAAc,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC;SACrG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,0BAA0B,CACjC,EAAwB,EACxB,UAAgC,EAChC,mBAAwC,EACxC,iBAAoC;IAEpC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,cAAc,GAAiC,EAAE,CAAC;IACxD,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;IACvC,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC;QACxD;;;UAGE;QACF,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,GAAG,iBAAiB,CAChE,EAAE,EACF,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,cAAc,CACf,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,6BAA6B,CACnE,EAAE,EACF,uBAAuB,EACvB,QAAQ,EACR,SAAS,CACV,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,aAAa,CAAC,IAAI,CAAC,QAAQ,cAAc,IAAI,SAAS,KAAK,GAAG,YAAY,CAAC,CAAC;YAC5E,SAAS;QACX,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QACD,sBAAsB;QACtB,MAAM,IAAA,6CAAoC,EAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,iDAAwC,EAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAgB,mDAAmD,CACjE,OAA6B,EAC7B,UAAgC,EAChC,YAA0B;IAE1B,MAAM,iBAAiB,GAAG,IAAA,uBAAe,EACvC,OAAO,CAAC,iCAAiC,EACzC,UAAU,CAAC,IAAI,EACf,sBAAsB,CACvB,CAAC;IACF,MAAM,IAAI,GAAG,oBAAoB,CAC/B,OAAO,EACP,UAAU,EACV,YAAY,CAAC,2BAA2B,EACxC,iBAAiB,CAAC,UAAU,CAC7B,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,0BAA0B,IAAI,IAAI,EAAE,CAAC;YAC9C,IAAI,0BAA0B,CAAC,qBAAqB,EAAE,CAAC;gBACrD,SAAS;YACX,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpH,IAAI,QAAQ,EAAE,CAAC;QACb,iBAAiB,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxC,CAAC;IACD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpH,IAAI,QAAQ,EAAE,CAAC;QACb,iBAAiB,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,QAAgB,EAAE,iBAAqC;IACjF,OAAO,QAAQ,KAAK,wBAAK,IAAI,iBAAiB,KAAK,2BAAiB,CAAC,KAAK,CAAC;AAC7E,CAAC"}
@@ -63,13 +63,11 @@ function upsertDirectiveSchemaAndEntityDefinitions(nf, document) {
63
63
  },
64
64
  InterfaceTypeDefinition: {
65
65
  enter(node) {
66
+ const typeName = node.name.value;
67
+ nf.internalGraph.addOrUpdateNode(typeName, { isAbstract: true });
66
68
  if (!(0, utils_2.isObjectLikeNodeEntity)(node)) {
67
69
  return;
68
70
  }
69
- const typeName = node.name.value;
70
- if (!nf.graph.hasNode(typeName)) {
71
- nf.graph.addNode(typeName);
72
- }
73
71
  const fieldSetData = (0, utils_1.getValueOrDefault)(nf.fieldSetDataByTypeName, typeName, utils_3.newFieldSetData);
74
72
  nf.extractKeyFieldSets(node, fieldSetData);
75
73
  (0, utils_1.upsertEntityDataProperties)(nf.entityDataByTypeName, {
@@ -77,8 +75,9 @@ function upsertDirectiveSchemaAndEntityDefinitions(nf, document) {
77
75
  keyFieldSets: fieldSetData.isUnresolvableByKeyFieldSet.keys(),
78
76
  ...(nf.subgraphName ? { subgraphNames: [nf.subgraphName] } : {}),
79
77
  });
80
- (0, utils_1.getValueOrDefault)(nf.entityInterfaces, typeName, () => ({
78
+ (0, utils_1.getValueOrDefault)(nf.entityInterfaceDataByTypeName, typeName, () => ({
81
79
  concreteTypeNames: new Set(),
80
+ fieldDatas: [],
82
81
  interfaceFieldNames: new Set(),
83
82
  interfaceObjectFieldNames: new Set(),
84
83
  isInterfaceObject: false,
@@ -107,6 +106,9 @@ function upsertDirectiveSchemaAndEntityDefinitions(nf, document) {
107
106
  return;
108
107
  }
109
108
  const typeName = node.name.value;
109
+ if ((0, utils_2.isNodeInterfaceObject)(node)) {
110
+ nf.internalGraph.addOrUpdateNode(typeName, { isAbstract: true });
111
+ }
110
112
  const fieldSetData = (0, utils_1.getValueOrDefault)(nf.fieldSetDataByTypeName, typeName, utils_3.newFieldSetData);
111
113
  nf.extractKeyFieldSets(node, fieldSetData);
112
114
  (0, utils_1.upsertEntityDataProperties)(nf.entityDataByTypeName, {
@@ -161,6 +163,47 @@ function upsertDirectiveSchemaAndEntityDefinitions(nf, document) {
161
163
  schemaNodes.push(node);
162
164
  },
163
165
  },
166
+ UnionTypeDefinition: {
167
+ enter(node) {
168
+ const typeName = node.name.value;
169
+ if (typeName === string_constants_1.ENTITY_UNION) {
170
+ return false;
171
+ }
172
+ // Also adds concrete types to the internal graph
173
+ nf.addConcreteTypesForUnion(node);
174
+ if (nf.parentDefinitionDataByTypeName.has(typeName)) {
175
+ nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), typeName));
176
+ return false;
177
+ }
178
+ (0, utils_4.addUnionDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
179
+ },
180
+ },
181
+ UnionTypeExtension: {
182
+ enter(node) {
183
+ const typeName = node.name.value;
184
+ if (typeName === string_constants_1.ENTITY_UNION) {
185
+ return false;
186
+ }
187
+ const extension = nf.parentExtensionDataByTypeName.get(typeName);
188
+ if (!node.types?.length) {
189
+ nf.errors.push((0, errors_1.noDefinedUnionMembersError)(typeName, true));
190
+ return false;
191
+ }
192
+ // Also adds concrete types to the internal graph
193
+ nf.addConcreteTypesForUnion(node);
194
+ if (extension) {
195
+ if (extension.kind !== graphql_1.Kind.UNION_TYPE_EXTENSION) {
196
+ nf.errors.push((0, errors_1.incompatibleExtensionKindsError)(node, extension.kind));
197
+ return false;
198
+ }
199
+ (0, utils_4.extractDirectives)(node, extension.directivesByDirectiveName, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, typeName);
200
+ (0, utils_4.extractUniqueUnionMembers)(node.types, extension.memberByMemberTypeName, nf.errors, typeName, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
201
+ return false;
202
+ }
203
+ (0, utils_4.addUnionExtensionDataByNode)(nf.parentExtensionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
204
+ return false;
205
+ },
206
+ },
164
207
  });
165
208
  /* It is possible that directives definitions are defined in the schema after the schema nodes that declare those
166
209
  * directives have been defined. Consequently, the directives can only be validated after the walker has finished
@@ -171,10 +214,12 @@ function upsertDirectiveSchemaAndEntityDefinitions(nf, document) {
171
214
  }
172
215
  function upsertParentsAndChildren(nf, document) {
173
216
  let isParentRootType = false;
217
+ let currentParentNode;
174
218
  (0, graphql_1.visit)(document, {
175
219
  EnumTypeDefinition: {
176
220
  enter(node) {
177
221
  nf.originalParentTypeName = node.name.value;
222
+ nf.internalGraph.addOrUpdateNode(nf.originalParentTypeName, { isLeaf: true });
178
223
  if (nf.parentDefinitionDataByTypeName.has(nf.originalParentTypeName)) {
179
224
  nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.originalParentTypeName));
180
225
  return false;
@@ -191,6 +236,8 @@ function upsertParentsAndChildren(nf, document) {
191
236
  EnumTypeExtension: {
192
237
  enter(node) {
193
238
  nf.originalParentTypeName = node.name.value;
239
+ // todo can this be removed? why was it here?
240
+ // nf.internalGraph.addNode(nf.originalParentTypeName);
194
241
  nf.lastParentNodeKind = node.kind;
195
242
  nf.isCurrentParentExtension = true;
196
243
  const extension = nf.parentExtensionDataByTypeName.get(nf.originalParentTypeName);
@@ -245,12 +292,16 @@ function upsertParentsAndChildren(nf, document) {
245
292
  }
246
293
  nf.extractEventDirectivesToConfiguration(node);
247
294
  }
248
- // subscriptionFilter is temporarily an edfs-only feature
295
+ // subscriptionFilter is temporarily an EDFS-only feature
249
296
  if (nf.edfsDirectiveReferences.size > 0) {
250
297
  nf.validateSubscriptionFilterDirectiveLocation(node);
251
298
  }
252
299
  nf.lastChildNodeKind = node.kind;
253
300
  const fieldNamedTypeName = (0, ast_1.getTypeNodeNamedTypeName)(node.type);
301
+ // The edges of interface nodes are their concrete types, so fields are not added
302
+ if (currentParentNode && !currentParentNode.isAbstract) {
303
+ nf.internalGraph.addEdge(currentParentNode, nf.internalGraph.addOrUpdateNode(fieldNamedTypeName), nf.childName);
304
+ }
254
305
  if (!constants_1.BASE_SCALARS.has(fieldNamedTypeName)) {
255
306
  nf.referencedTypeNames.add(fieldNamedTypeName);
256
307
  }
@@ -273,9 +324,9 @@ function upsertParentsAndChildren(nf, document) {
273
324
  // Add parent-level shareable and external to the field extraction and repeatable validation
274
325
  (0, utils_4.addInheritedDirectivesToFieldData)(parentData.directivesByDirectiveName, directivesByDirectiveName);
275
326
  const fieldData = (0, utils_4.addFieldDataByNode)(parentData.fieldDataByFieldName, node, argumentDataByArgumentName, directivesByDirectiveName, nf.originalParentTypeName, nf.renamedParentTypeName || nf.originalParentTypeName, nf.subgraphName, nf.isSubgraphVersionTwo, nf.errors);
276
- const entityContainer = nf.entityDataByTypeName.get(nf.originalParentTypeName);
277
- if (entityContainer) {
278
- entityContainer.fieldNames.add(nf.childName);
327
+ const entityData = nf.entityDataByTypeName.get(nf.originalParentTypeName);
328
+ if (entityData) {
329
+ entityData.fieldNames.add(nf.childName);
279
330
  // Only entities will have an existing FieldSet
280
331
  const existingFieldSet = nf.fieldSetDataByTypeName.get(nf.originalParentTypeName);
281
332
  if (existingFieldSet) {
@@ -391,7 +442,7 @@ function upsertParentsAndChildren(nf, document) {
391
442
  nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), typeName));
392
443
  return false;
393
444
  }
394
- const entityInterfaceData = nf.entityInterfaces.get(typeName);
445
+ const entityInterfaceData = nf.entityInterfaceDataByTypeName.get(typeName);
395
446
  (0, utils_4.addInterfaceDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, !!entityInterfaceData, nf.subgraphName);
396
447
  if (!entityInterfaceData) {
397
448
  return;
@@ -433,11 +484,11 @@ function upsertParentsAndChildren(nf, document) {
433
484
  isParentRootType = (0, utils_4.isTypeNameRootType)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
434
485
  nf.renamedParentTypeName = (0, utils_4.getRenamedRootTypeName)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
435
486
  nf.originalTypeNameByRenamedTypeName.set(nf.renamedParentTypeName, nf.originalParentTypeName);
436
- if (!nf.graph.hasNode(nf.renamedParentTypeName)) {
437
- nf.graph.addNode(nf.renamedParentTypeName);
438
- }
487
+ currentParentNode = isParentRootType
488
+ ? nf.internalGraph.getRootNode(nf.renamedParentTypeName)
489
+ : nf.internalGraph.addOrUpdateNode(nf.renamedParentTypeName);
439
490
  nf.lastParentNodeKind = node.kind;
440
- (0, utils_2.addConcreteTypesForImplementedInterfaces)(node, nf.concreteTypeNamesByAbstractTypeName);
491
+ nf.addConcreteTypesForImplementedInterfaces(node);
441
492
  nf.handleInterfaceObject(node);
442
493
  // handling for @extends directive
443
494
  if ((0, utils_2.isNodeExtension)(node)) {
@@ -455,6 +506,7 @@ function upsertParentsAndChildren(nf, document) {
455
506
  ? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_EXTENSION_DATA_MAP)
456
507
  : (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_DEFINITION_DATA_MAP);
457
508
  (0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)(parentData);
509
+ currentParentNode = undefined;
458
510
  isParentRootType = false;
459
511
  nf.isCurrentParentExtension = false;
460
512
  nf.originalParentTypeName = '';
@@ -471,15 +523,16 @@ function upsertParentsAndChildren(nf, document) {
471
523
  isParentRootType = (0, utils_4.isTypeNameRootType)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
472
524
  nf.renamedParentTypeName = (0, utils_4.getRenamedRootTypeName)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
473
525
  nf.originalTypeNameByRenamedTypeName.set(nf.renamedParentTypeName, nf.originalParentTypeName);
474
- if (!nf.graph.hasNode(nf.renamedParentTypeName)) {
475
- nf.graph.addNode(nf.renamedParentTypeName);
476
- }
526
+ currentParentNode = isParentRootType
527
+ ? nf.internalGraph.getRootNode(nf.renamedParentTypeName)
528
+ : nf.internalGraph.addOrUpdateNode(nf.renamedParentTypeName);
477
529
  nf.lastParentNodeKind = node.kind;
478
- (0, utils_2.addConcreteTypesForImplementedInterfaces)(node, nf.concreteTypeNamesByAbstractTypeName);
530
+ nf.addConcreteTypesForImplementedInterfaces(node);
479
531
  return nf.handleExtensionWithFields(node, isParentRootType);
480
532
  },
481
533
  leave() {
482
534
  (0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)((0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_EXTENSION_DATA_MAP));
535
+ currentParentNode = undefined;
483
536
  isParentRootType = false;
484
537
  nf.isCurrentParentExtension = false;
485
538
  nf.originalParentTypeName = '';
@@ -489,16 +542,15 @@ function upsertParentsAndChildren(nf, document) {
489
542
  },
490
543
  ScalarTypeDefinition: {
491
544
  enter(node) {
492
- const name = node.name.value;
493
- if (name === string_constants_1.ANY_SCALAR) {
545
+ nf.originalParentTypeName = node.name.value;
546
+ if (nf.originalParentTypeName === string_constants_1.ANY_SCALAR) {
494
547
  return false;
495
548
  }
496
- const parent = nf.parentDefinitionDataByTypeName.get(name);
497
- if (parent) {
498
- nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), name));
549
+ if (nf.parentDefinitionDataByTypeName.has(nf.originalParentTypeName)) {
550
+ nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.originalParentTypeName));
499
551
  return false;
500
552
  }
501
- nf.originalParentTypeName = name;
553
+ nf.internalGraph.addOrUpdateNode(nf.originalParentTypeName, { isLeaf: true });
502
554
  nf.lastParentNodeKind = node.kind;
503
555
  const directivesByDirectiveName = nf.extractDirectivesAndAuthorization(node, new Map());
504
556
  (0, utils_4.addScalarDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, directivesByDirectiveName);
@@ -515,6 +567,8 @@ function upsertParentsAndChildren(nf, document) {
515
567
  return false;
516
568
  }
517
569
  nf.lastParentNodeKind = node.kind;
570
+ // todo
571
+ // nf.internalGraph.addOrUpdateNode(nf.originalParentTypeName, { isLeaf: true });
518
572
  const extension = nf.parentExtensionDataByTypeName.get(nf.originalParentTypeName);
519
573
  if (extension) {
520
574
  if (extension.kind !== graphql_1.Kind.SCALAR_TYPE_EXTENSION) {
@@ -533,55 +587,6 @@ function upsertParentsAndChildren(nf, document) {
533
587
  nf.lastParentNodeKind = graphql_1.Kind.NULL;
534
588
  },
535
589
  },
536
- UnionTypeDefinition: {
537
- enter(node) {
538
- nf.originalParentTypeName = node.name.value;
539
- if (nf.originalParentTypeName === string_constants_1.ENTITY_UNION) {
540
- return false;
541
- }
542
- const parent = nf.parentDefinitionDataByTypeName.get(nf.originalParentTypeName);
543
- if (parent) {
544
- nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.originalParentTypeName));
545
- return false;
546
- }
547
- nf.lastParentNodeKind = node.kind;
548
- (0, utils_4.addUnionDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
549
- },
550
- leave() {
551
- nf.originalParentTypeName = '';
552
- nf.lastParentNodeKind = graphql_1.Kind.NULL;
553
- },
554
- },
555
- UnionTypeExtension: {
556
- enter(node) {
557
- nf.originalParentTypeName = node.name.value;
558
- if (nf.originalParentTypeName === string_constants_1.ENTITY_UNION) {
559
- return false;
560
- }
561
- const extension = nf.parentExtensionDataByTypeName.get(nf.originalParentTypeName);
562
- if (!node.types?.length) {
563
- nf.errors.push((0, errors_1.noDefinedUnionMembersError)(nf.originalParentTypeName, true));
564
- return false;
565
- }
566
- nf.lastParentNodeKind = node.kind;
567
- (0, utils_2.addConcreteTypesForUnion)(node, nf.concreteTypeNamesByAbstractTypeName);
568
- if (extension) {
569
- if (extension.kind !== graphql_1.Kind.UNION_TYPE_EXTENSION) {
570
- nf.errors.push((0, errors_1.incompatibleExtensionKindsError)(node, extension.kind));
571
- return false;
572
- }
573
- (0, utils_4.extractDirectives)(node, extension.directivesByDirectiveName, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.originalParentTypeName);
574
- (0, utils_4.extractUniqueUnionMembers)(node.types, extension.memberByMemberTypeName, nf.errors, nf.originalParentTypeName, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
575
- return false;
576
- }
577
- (0, utils_4.addUnionExtensionDataByNode)(nf.parentExtensionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
578
- return false;
579
- },
580
- leave() {
581
- nf.originalParentTypeName = '';
582
- nf.lastParentNodeKind = graphql_1.Kind.NULL;
583
- },
584
- },
585
590
  });
586
591
  }
587
592
  // Walker to handle the consolidation of the @authenticated and @requiresScopes directives