@wundergraph/composition 0.55.0 → 0.56.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 (32) hide show
  1. package/dist/ast/utils.d.ts +1 -0
  2. package/dist/normalization/types.d.ts +9 -7
  3. package/dist/resolvability-graph/graph.d.ts +4 -3
  4. package/dist/resolvability-graph/graph.js +31 -36
  5. package/dist/resolvability-graph/graph.js.map +1 -1
  6. package/dist/resolvability-graph/types/types.d.ts +2 -1
  7. package/dist/resolvability-graph/utils/types/params.d.ts +8 -1
  8. package/dist/resolvability-graph/utils/types/types.d.ts +1 -0
  9. package/dist/resolvability-graph/utils/utils.js +62 -9
  10. package/dist/resolvability-graph/utils/utils.js.map +1 -1
  11. package/dist/schema-building/params.d.ts +8 -0
  12. package/dist/schema-building/params.js +3 -0
  13. package/dist/schema-building/params.js.map +1 -0
  14. package/dist/schema-building/utils.d.ts +6 -3
  15. package/dist/schema-building/utils.js +29 -8
  16. package/dist/schema-building/utils.js.map +1 -1
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/dist/types/types.d.ts +2 -0
  19. package/dist/utils/composition-version.js +1 -1
  20. package/dist/utils/string-constants.d.ts +1 -0
  21. package/dist/utils/string-constants.js +2 -1
  22. package/dist/utils/string-constants.js.map +1 -1
  23. package/dist/utils/types.d.ts +2 -2
  24. package/dist/v1/federation/federation-factory.d.ts +3 -2
  25. package/dist/v1/federation/federation-factory.js +10 -2
  26. package/dist/v1/federation/federation-factory.js.map +1 -1
  27. package/dist/v1/federation/params.d.ts +2 -1
  28. package/dist/v1/normalization/normalization-factory.d.ts +7 -5
  29. package/dist/v1/normalization/normalization-factory.js +65 -3
  30. package/dist/v1/normalization/normalization-factory.js.map +1 -1
  31. package/dist/v1/normalization/params.d.ts +7 -1
  32. package/package.json +2 -2
@@ -28,6 +28,7 @@ export type ObjectTypeNode = ObjectTypeDefinitionNode | ObjectTypeExtensionNode;
28
28
  export type ScalarTypeNode = ScalarTypeDefinitionNode | ScalarTypeExtensionNode;
29
29
  export type SchemaNode = SchemaDefinitionNode | SchemaExtensionNode;
30
30
  export type UnionTypeNode = UnionTypeDefinitionNode | UnionTypeExtensionNode;
31
+ export type ParentTypeNode = EnumTypeNode | InputObjectTypeNode | InterfaceTypeNode | ObjectTypeNode | ScalarTypeNode | UnionTypeNode;
31
32
  export type InterfaceNodeKind = Kind.INTERFACE_TYPE_DEFINITION | Kind.INTERFACE_TYPE_EXTENSION;
32
33
  export type ObjectNodeKind = Kind.OBJECT_TYPE_DEFINITION | Kind.OBJECT_TYPE_EXTENSION;
33
34
  export type CompositeOutputNodeKind = InterfaceNodeKind | ObjectNodeKind;
@@ -4,7 +4,7 @@ import { type ConfigurationData, type Costs } from '../router-configuration/type
4
4
  import { type AuthorizationData, type ConditionalFieldData, type EntityData, type EntityInterfaceSubgraphData, type ParentDefinitionData, type PersistedDirectiveDefinitionData } from '../schema-building/types';
5
5
  import { type Graph } from '../resolvability-graph/graph';
6
6
  import { type InternalSubgraph } from '../subgraph/types';
7
- import { type DirectiveName, type TypeName } from '../types/types';
7
+ import { type AbstractTypeName, type DirectiveName, type InterfaceTypeName, type SubgraphName, type TypeName } from '../types/types';
8
8
  export type NormalizationFailure = {
9
9
  errors: Array<Error>;
10
10
  success: false;
@@ -20,9 +20,10 @@ export type NormalizationSuccess = {
20
20
  entityInterfaces: Map<string, EntityInterfaceSubgraphData>;
21
21
  entityDataByTypeName: Map<string, EntityData>;
22
22
  fieldCoordsByNamedTypeName: Map<string, Set<string>>;
23
- originalTypeNameByRenamedTypeName: Map<string, string>;
23
+ interfaceImplementationTypeNamesByInterfaceTypeName: Map<InterfaceTypeName, Set<InterfaceTypeName>>;
24
24
  isEventDrivenGraph: boolean;
25
25
  isVersionTwo: boolean;
26
+ originalTypeNameByRenamedTypeName: Map<string, string>;
26
27
  keyFieldNamesByParentTypeName: Map<string, Set<string>>;
27
28
  keyFieldSetsByEntityTypeNameByKeyFieldCoords: Map<string, Map<string, Set<string>>>;
28
29
  operationTypes: Map<string, OperationTypeNode>;
@@ -44,11 +45,12 @@ export type BatchNormalizationFailure = {
44
45
  };
45
46
  export type BatchNormalizationSuccess = {
46
47
  success: true;
47
- authorizationDataByParentTypeName: Map<string, AuthorizationData>;
48
- concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
49
- entityDataByTypeName: Map<string, EntityData>;
50
- fieldCoordsByNamedTypeName: Map<string, Set<string>>;
51
- internalSubgraphBySubgraphName: Map<string, InternalSubgraph>;
48
+ authorizationDataByParentTypeName: Map<TypeName, AuthorizationData>;
49
+ concreteTypeNamesByAbstractTypeName: Map<AbstractTypeName, Set<TypeName>>;
50
+ entityDataByTypeName: Map<TypeName, EntityData>;
51
+ fieldCoordsByNamedTypeName: Map<TypeName, Set<string>>;
52
+ interfaceImplementationTypeNamesByInterfaceTypeName: Map<InterfaceTypeName, Set<InterfaceTypeName>>;
53
+ internalSubgraphBySubgraphName: Map<SubgraphName, InternalSubgraph>;
52
54
  internalGraph: Graph;
53
55
  warnings: Array<Warning>;
54
56
  };
@@ -1,9 +1,10 @@
1
1
  import { Edge, EntityDataNode, GraphNode, type GraphNodeOptions, RootNode } from './graph-nodes';
2
2
  import { type GraphFieldData, type RootTypeName } from '../utils/types';
3
- import { type FieldName, type SubgraphName, type TypeName, type ValidationResult } from './types/types';
3
+ import { type FieldName, type NodeName, type SubgraphName, type TypeName, type ValidationResult } from './types/types';
4
4
  import { type ConsolidateUnresolvablePathsParams, type ValidateEntitiesParams, type VisitEntityParams } from './types/params';
5
5
  import { type NodeResolutionData } from './node-resolution-data/node-resolution-data';
6
- import { type EntityResolvabilityErrorsParams, type EntitySharedRootFieldResolvabilityErrorsParams } from './utils/types/params';
6
+ import { type EntityResolvabilityErrorsParams } from './utils/types/params';
7
+ import { type EntityAncestorCollection } from './utils/types/types';
7
8
  export declare class Graph {
8
9
  edgeId: number;
9
10
  entityDataNodeByTypeName: Map<string, EntityDataNode>;
@@ -34,5 +35,5 @@ export declare class Graph {
34
35
  validateRootFieldEntities({ rootFieldData, walker }: ValidateEntitiesParams): ValidationResult;
35
36
  validateEntities(params: ValidateEntitiesParams): ValidationResult;
36
37
  getEntityResolvabilityErrors({ entityNodeName, pathFromRoot, rootFieldData, subgraphNameByUnresolvablePath, }: EntityResolvabilityErrorsParams): Array<Error>;
37
- getSharedEntityResolvabilityErrors({ entityNodeNames, pathFromRoot, rootFieldData, resDataByPath, subgraphNameByUnresolvablePath, }: EntitySharedRootFieldResolvabilityErrorsParams): Array<Error>;
38
+ getEntityAncestorCollection(entityNodeNames: Set<NodeName>): EntityAncestorCollection;
38
39
  }
@@ -262,6 +262,11 @@ class Graph {
262
262
  validateSharedRootFieldEntities({ rootFieldData, walker }) {
263
263
  const resolvedPaths = new Set();
264
264
  for (const [pathFromRoot, entityNodeNames] of walker.entityNodeNamesByPath) {
265
+ if (walker.unresolvablePaths.size < 1) {
266
+ return {
267
+ success: true,
268
+ };
269
+ }
265
270
  const subgraphNameByUnresolvablePath = new Map();
266
271
  // Shared fields are unique contexts, so the resolution data cannot be reused.
267
272
  const resDataByRelativeOriginPath = new Map();
@@ -287,37 +292,29 @@ class Graph {
287
292
  subgraphNameByUnresolvablePath,
288
293
  walker,
289
294
  });
295
+ // Check nothing further needs to be done
290
296
  if (subgraphNameByUnresolvablePath.size < 1) {
291
297
  continue;
292
298
  }
299
+ // Only do this if we have to
293
300
  this.consolidateUnresolvableEntityWithRootPaths({
294
301
  pathFromRoot,
295
302
  resDataByRelativeOriginPath,
296
303
  subgraphNameByUnresolvablePath,
297
304
  walker,
298
305
  });
299
- const errors = new Array();
300
- if (subgraphNameByUnresolvablePath.size > 0) {
301
- errors.push(...this.getSharedEntityResolvabilityErrors({
302
- entityNodeNames,
303
- resDataByPath: resDataByRelativeOriginPath,
304
- pathFromRoot,
305
- rootFieldData,
306
- subgraphNameByUnresolvablePath,
307
- }));
308
- }
309
- if (walker.unresolvablePaths.size > 0) {
310
- errors.push(...(0, utils_1.generateRootResolvabilityErrors)({
311
- unresolvablePaths: walker.unresolvablePaths,
312
- resDataByPath: walker.resDataByPath,
313
- rootFieldData,
314
- }));
315
- }
316
- if (errors.length < 1) {
306
+ // Check again before returning an error
307
+ if (subgraphNameByUnresolvablePath.size < 1) {
317
308
  continue;
318
309
  }
319
310
  return {
320
- errors,
311
+ errors: (0, utils_1.generateSharedEntityResolvabilityErrors)({
312
+ entityAncestors: this.getEntityAncestorCollection(entityNodeNames),
313
+ pathFromRoot,
314
+ resDataByPath: resDataByRelativeOriginPath,
315
+ rootFieldData: rootFieldData,
316
+ subgraphNameByUnresolvablePath,
317
+ }),
321
318
  success: false,
322
319
  };
323
320
  }
@@ -391,26 +388,24 @@ class Graph {
391
388
  subgraphNameByUnresolvablePath,
392
389
  });
393
390
  }
394
- getSharedEntityResolvabilityErrors({ entityNodeNames, pathFromRoot, rootFieldData, resDataByPath, subgraphNameByUnresolvablePath, }) {
395
- let entityTypeName = undefined;
391
+ getEntityAncestorCollection(entityNodeNames) {
392
+ const typeName = (0, utils_2.getFirstEntry)(entityNodeNames).split(string_constants_1.LITERAL_PERIOD)[1];
393
+ const { fieldSetsByTargetSubgraphName } = (0, utils_2.getOrThrowError)(this.entityDataNodeByTypeName, typeName, 'entityDataNodeByTypeName');
396
394
  const subgraphNames = new Array();
395
+ const sourceSubgraphNamesBySatisfiedFieldSet = new Map();
397
396
  for (const entityNodeName of entityNodeNames) {
398
- const segments = entityNodeName.split(string_constants_1.LITERAL_PERIOD);
399
- entityTypeName ??= segments[1];
400
- subgraphNames.push(segments[0]);
397
+ const { satisfiedFieldSets, subgraphName } = (0, utils_2.getOrThrowError)(this.nodeByNodeName, entityNodeName, 'nodeByNodeName');
398
+ for (const fieldSet of satisfiedFieldSets) {
399
+ (0, utils_2.getValueOrDefault)(sourceSubgraphNamesBySatisfiedFieldSet, fieldSet, () => []).push(subgraphName);
400
+ }
401
+ subgraphNames.push(subgraphName);
401
402
  }
402
- const { fieldSetsByTargetSubgraphName } = (0, utils_2.getOrThrowError)(this.entityDataNodeByTypeName, entityTypeName, 'entityDataNodeByTypeName');
403
- return (0, utils_1.generateSharedEntityResolvabilityErrors)({
404
- entityAncestors: {
405
- fieldSetsByTargetSubgraphName,
406
- subgraphNames,
407
- typeName: entityTypeName,
408
- },
409
- pathFromRoot,
410
- resDataByPath,
411
- rootFieldData: rootFieldData,
412
- subgraphNameByUnresolvablePath,
413
- });
403
+ return {
404
+ fieldSetsByTargetSubgraphName,
405
+ sourceSubgraphNamesBySatisfiedFieldSet,
406
+ subgraphNames,
407
+ typeName,
408
+ };
414
409
  }
415
410
  }
416
411
  exports.Graph = Graph;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/resolvability-graph/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/resolvability-graph/graph.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,13 @@ export type VisitNodeResult = {
5
5
  isRevisitedNode?: true;
6
6
  };
7
7
  export type FieldName = string;
8
+ export type FieldCoords = `${TypeName}.${FieldName}`;
8
9
  export type NodeName = `${SubgraphName}.${TypeName}`;
9
10
  export type SelectionPath = string;
10
11
  export type SubgraphName = string;
11
12
  export type TypeName = string;
12
13
  export type RootFieldData = {
13
- coords: `${TypeName}.${FieldName}`;
14
+ coords: FieldCoords;
14
15
  message: string;
15
16
  subgraphNames: Set<SubgraphName>;
16
17
  };
@@ -1,4 +1,4 @@
1
- import { type NodeName, type RootFieldData, type SelectionPath, type SubgraphName } from '../../types/types';
1
+ import { type FieldCoords, type NodeName, type RootFieldData, type SelectionPath, type SubgraphName } from '../../types/types';
2
2
  import { type NodeResolutionData } from '../../node-resolution-data/node-resolution-data';
3
3
  import { type EntityAncestorCollection, type EntityAncestorData } from './types';
4
4
  import { type UnresolvableFieldData } from '../utils';
@@ -48,3 +48,10 @@ export type GenerateSharedResolvabilityErrorReasonsParams = {
48
48
  unresolvableFieldData: UnresolvableFieldData;
49
49
  entityAncestors: EntityAncestorCollection;
50
50
  };
51
+ export type GetEntityReasonsParams = {
52
+ coords: FieldCoords;
53
+ entityAncestors: EntityAncestorCollection;
54
+ fieldSets: Set<string>;
55
+ reasons: Array<string>;
56
+ targetSubgraphName: SubgraphName;
57
+ };
@@ -6,6 +6,7 @@ export type EntityAncestorData = {
6
6
  };
7
7
  export type EntityAncestorCollection = {
8
8
  fieldSetsByTargetSubgraphName: Map<SubgraphName, Set<string>>;
9
+ sourceSubgraphNamesBySatisfiedFieldSet: Map<string, Array<SubgraphName>>;
9
10
  subgraphNames: Array<SubgraphName>;
10
11
  typeName: TypeName;
11
12
  };
@@ -79,8 +79,48 @@ function generateResolvabilityErrorReasons({ entityAncestorData, rootFieldData,
79
79
  }
80
80
  return reasons;
81
81
  }
82
+ function getSelfEntityReasons({ entityAncestors: { subgraphNames, typeName }, fieldSets, reasons, targetSubgraphName, }) {
83
+ for (const fieldSet of fieldSets) {
84
+ const filteredSubgraphNames = subgraphNames.filter((subgraphName) => subgraphName !== targetSubgraphName);
85
+ if (filteredSubgraphNames.length < 1) {
86
+ continue;
87
+ }
88
+ const isSubsetPlural = filteredSubgraphNames.length > 1;
89
+ reasons.push(`The entity ancestor${isSubsetPlural ? 's' : ''} "${typeName}" in` +
90
+ ` subgraph${isSubsetPlural ? `s` : ``} "${filteredSubgraphNames.join(string_constants_1.QUOTATION_JOIN)}"` +
91
+ ` do${isSubsetPlural ? `` : `es`} not satisfy the key field set "${fieldSet}"` +
92
+ ` to access subgraph "${targetSubgraphName}".`);
93
+ }
94
+ }
95
+ function getAncestorEntityReasons({ coords, entityAncestors: { sourceSubgraphNamesBySatisfiedFieldSet, subgraphNames, typeName }, fieldSets, reasons, targetSubgraphName, }) {
96
+ const unsatisfiedFieldSetReasons = [];
97
+ const satisfiedFieldSetReasons = [];
98
+ for (const fieldSet of fieldSets) {
99
+ const sourceSubgraphNames = sourceSubgraphNamesBySatisfiedFieldSet.get(fieldSet);
100
+ if (!sourceSubgraphNames) {
101
+ const filteredSubgraphNames = subgraphNames.filter((subgraphName) => subgraphName !== targetSubgraphName);
102
+ const isSubsetPlural = filteredSubgraphNames.length > 1;
103
+ unsatisfiedFieldSetReasons.push(`The entity ancestor${isSubsetPlural ? 's' : ''} "${typeName}" in` +
104
+ ` subgraph${isSubsetPlural ? `s` : ``} "${filteredSubgraphNames.join(string_constants_1.QUOTATION_JOIN)}" ` +
105
+ ` do${isSubsetPlural ? `` : `es`} not satisfy the key field set "${fieldSet}"` +
106
+ ` to access subgraph "${targetSubgraphName}".`);
107
+ continue;
108
+ }
109
+ const filteredSubgraphNames = sourceSubgraphNames.filter((subgraphName) => subgraphName !== targetSubgraphName);
110
+ if (filteredSubgraphNames.length < 1) {
111
+ continue;
112
+ }
113
+ const isSubsetPlural = filteredSubgraphNames.length > 1;
114
+ satisfiedFieldSetReasons.push(`The entity ancestor "${typeName}" in subgraph${isSubsetPlural ? `s` : ``}` +
115
+ ` "${filteredSubgraphNames.join(string_constants_1.QUOTATION_JOIN)}" ${isSubsetPlural ? 'are' : 'is'} able to satisfy at least` +
116
+ ` one key field set to access subgraph "${targetSubgraphName}", but this still does not provide a route` +
117
+ ` to resolve "${coords}".`);
118
+ }
119
+ reasons.push(...(satisfiedFieldSetReasons.length > 0 ? satisfiedFieldSetReasons : unsatisfiedFieldSetReasons));
120
+ }
82
121
  function generateSharedResolvabilityErrorReasons({ entityAncestors, rootFieldData, unresolvableFieldData, }) {
83
122
  const { externalSubgraphNames, fieldName, typeName, subgraphNames } = unresolvableFieldData;
123
+ const coords = `${typeName}.${fieldName}`;
84
124
  const reasons = [rootFieldData.message];
85
125
  if (externalSubgraphNames.size > 0) {
86
126
  const nonExternalSubgraphNames = subgraphNames.difference(externalSubgraphNames);
@@ -95,29 +135,42 @@ function generateSharedResolvabilityErrorReasons({ entityAncestors, rootFieldDat
95
135
  (subgraphNames.size > 1 ? `s` : ``) +
96
136
  `: "${[...subgraphNames].join(string_constants_1.QUOTATION_JOIN)}".`);
97
137
  }
138
+ const isEntity = typeName === entityAncestors.typeName;
98
139
  let hasIntersectingTargetSubgraph = false;
99
140
  for (const [targetSubgraphName, fieldSets] of entityAncestors.fieldSetsByTargetSubgraphName) {
100
141
  if (!subgraphNames.has(targetSubgraphName)) {
101
142
  continue;
102
143
  }
103
- const filteredSubgraphNames = entityAncestors.subgraphNames.filter((subgraphName) => subgraphName !== targetSubgraphName);
104
- const isSubsetPlural = filteredSubgraphNames.length > 1;
105
144
  hasIntersectingTargetSubgraph = true;
106
- for (const fieldSet of fieldSets) {
107
- reasons.push(`The entity ancestor "${entityAncestors.typeName}" in subgraph${isSubsetPlural ? `s` : ``}` +
108
- ` "${filteredSubgraphNames.join(string_constants_1.QUOTATION_JOIN)}" do${isSubsetPlural ? `` : `es`} not satisfy` +
109
- ` the key field set "${fieldSet}" to access subgraph "${targetSubgraphName}".`);
145
+ if (isEntity) {
146
+ getSelfEntityReasons({
147
+ coords,
148
+ entityAncestors,
149
+ fieldSets,
150
+ reasons,
151
+ targetSubgraphName,
152
+ });
153
+ }
154
+ else {
155
+ getAncestorEntityReasons({
156
+ coords,
157
+ entityAncestors,
158
+ fieldSets,
159
+ reasons,
160
+ targetSubgraphName,
161
+ });
110
162
  }
111
163
  }
112
164
  if (!hasIntersectingTargetSubgraph) {
113
165
  const isPlural = entityAncestors.subgraphNames.length > 1;
114
166
  reasons.push(`The entity ancestor "${entityAncestors.typeName}" in subgraph${isPlural ? `s` : ``}` +
115
- ` "${entityAncestors.subgraphNames.join(string_constants_1.QUOTATION_JOIN)}" ha${isPlural ? `ve` : `s`} no accessible target` +
116
- ` entities (resolvable @key directives) in the subgraphs where "${typeName}.${fieldName}" is defined.`);
167
+ ` "${entityAncestors.subgraphNames.join(string_constants_1.QUOTATION_JOIN)}" has no accessible target` +
168
+ ` entities (resolvable @key directives) in the subgraphs where "${coords}" is defined.`);
117
169
  }
118
170
  reasons.push(`The type "${typeName}" is not a descendant of any other entity ancestors that can provide a shared route to access "${fieldName}".`);
119
171
  if (typeName !== entityAncestors.typeName) {
120
- reasons.push(`The type "${typeName}" has no accessible target entities (resolvable @key directives) in any other subgraph, so accessing other subgraphs is not possible.`);
172
+ reasons.push(`The type "${typeName}" has no accessible target entities (resolvable @key directives) in any` +
173
+ ` other subgraph, so accessing other subgraphs is not possible.`);
121
174
  }
122
175
  return reasons;
123
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/resolvability-graph/utils/utils.ts"],"names":[],"mappings":";;AA+BA,4CAaC;AAgBD,8EAgEC;AAED,0FA2DC;AAED,oEA2BC;AAED,gDAUC;AAYD,0EAoCC;AAED,8EAyCC;AAED,0FAwCC;AAED,4EAYC;AArXD,gDAA4D;AAC5D,6CAAoD;AAmBpD,oEAA8E;AAC9E,oEAA4E;AAU5E,SAAgB,gBAAgB,CAC9B,QAAkB,EAClB,SAAoB,EACpB,aAAgC;IAEhC,OAAO;QACL,MAAM,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE;QAClC,OAAO,EACL,wBAAwB,QAAQ,IAAI,SAAS,wCAAwC;YACrF,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI;QACnD,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAyB,EAAE,UAAkB;IAC7E,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;IACnC,CAAC;IACD,OAAO,CACL,SAAS,CAAC,IAAI;QACd,UAAU;QACV,gCAAa,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACpC,OAAO;QACP,gCAAa,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACpC,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAgB,iCAAiC,CAAC,EAChD,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACmB;IACxC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC;IAC5F,MAAM,OAAO,GAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,wBAAwB,GAAG,aAAa,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,yDAAyD;YAC1F,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,EAC9D,cAAc,QAAQ,IAAI,SAAS,uEAAuE;YACxG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CAC5D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,wCAAwC;YACzE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CACpD,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,6BAA6B,GAAG,KAAK,CAAC;QAC1C,KAAK,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,6BAA6B,EAAE,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YACD,6BAA6B,GAAG,IAAI,CAAC;YACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,kBAAkB,CAAC,YAAY,KAAK,kBAAkB,EAAE,CAAC;oBAC3D,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,wBAAwB,kBAAkB,CAAC,QAAQ,kBAAkB,kBAAkB,CAAC,YAAY,yCAAyC,QAAQ,yBAAyB,kBAAkB,IAAI,CACrM,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CACV,wBAAwB,kBAAkB,CAAC,QAAQ,kBAAkB,kBAAkB,CAAC,YAAY,4FAA4F,QAAQ,IAAI,SAAS,eAAe,CACrO,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,kGAAkG,SAAS,IAAI,CACrI,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CACV,+DAA+D,aAAa,CAAC,MAAM,oCAAoC,SAAS,IAAI,CACrI,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,0FAA0F,SAAS,IAAI,CAC7H,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,QAAQ,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,uIAAuI,CAC7J,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,uCAAuC,CAAC,EACtD,eAAe,EACf,aAAa,EACb,qBAAqB,GACyB;IAC9C,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC;IAC5F,MAAM,OAAO,GAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,wBAAwB,GAAG,aAAa,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,yDAAyD;YAC1F,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,EAC9D,cAAc,QAAQ,IAAI,SAAS,uEAAuE;YACxG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CAC5D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,wCAAwC;YACzE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CACpD,CAAC;IACJ,CAAC;IACD,IAAI,6BAA6B,GAAG,KAAK,CAAC;IAC1C,KAAK,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,eAAe,CAAC,6BAA6B,EAAE,CAAC;QAC5F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QACD,MAAM,qBAAqB,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,CAChE,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,KAAK,kBAAkB,CACtD,CAAC;QACF,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACxD,6BAA6B,GAAG,IAAI,CAAC;QACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACV,wBAAwB,eAAe,CAAC,QAAQ,gBAAgB,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzF,KAAK,qBAAqB,CAAC,IAAI,CAAC,iCAAc,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,cAAc;gBAC9F,uBAAuB,QAAQ,yBAAyB,kBAAkB,IAAI,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CACV,wBAAwB,eAAe,CAAC,QAAQ,gBAAgB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnF,KAAK,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,iCAAc,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,uBAAuB;YAC1G,kEAAkE,QAAQ,IAAI,SAAS,eAAe,CACzG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,kGAAkG,SAAS,IAAI,CACrI,CAAC;IACF,IAAI,QAAQ,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,uIAAuI,CAC7J,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,4BAA4B,CAC1C,SAAiB,EACjB,QAAgB,8CAA2B;IAE3C,4EAA4E;IAC5E,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;IACrD,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,gEAAgE;QAChE,cAAc,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,cAAc,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YACtC,WAAW,IAAI,gCAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,eAAe,yBAAyB,CAAC;QACrG,CAAC;QACD,WAAW,IAAI,gCAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACnE,SAAS,GAAG,gCAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,SAAS;QACT,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAChC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAwB,EAC3D,SAAyB;IAEzB,OAAO,CACL,WAAW;QACX,gCAAa,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;QACrD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,YAAqB;IACnE,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,+BAA+B,CAAC,EAC9C,aAAa,EACb,aAAa,EACb,iBAAiB,GACa;IAC9B,MAAM,sBAAsB,GAAG,IAAI,KAAK,EAAyB,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;YACrD,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,SAAS;gBACT,YAAY,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBACjE,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CACT,IAAA,8BAAqB,EACnB,qBAAqB,EACrB,iCAAiC,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC,CAC5E,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,iCAAiC,CAAC,EAChD,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,8BAA8B,GACJ;IAC1B,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,8BAA8B,EAAE,CAAC;QAClE,MAAM,sBAAsB,GAAG,IAAI,KAAK,EAAyB,CAAC;QAClE,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;YACrD,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,SAAS;gBACT,YAAY,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBACjE,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACtC,CAAC,CAAC;QACL,CAAC;QACD,0DAA0D;QAC1D,kBAAkB,CAAC,YAAY,GAAG,YAAY,CAAC;QAC/C,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CACT,IAAA,8BAAqB,EACnB,qBAAqB,EACrB,iCAAiC,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC,CAChG,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,uCAAuC,CAAC,EACtD,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,8BAA8B,GACE;IAChC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC;QACzD,MAAM,sBAAsB,GAAG,IAAI,KAAK,EAAyB,CAAC;QAClE,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;YACrD,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,SAAS;gBACT,YAAY,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBACjE,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACtC,CAAC,CAAC;QACL,CAAC;QACD,0DAA0D;QAC1D,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CACT,IAAA,8BAAqB,EACnB,qBAAqB,EACrB,uCAAuC,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAC,CACnG,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,gCAAgC,CAAC,EAC/C,mBAAmB,EACnB,aAAa,GAC0B;IACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,IAAI,GAAG,CAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAiB,CAAC;IACjD,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;QAC7C,eAAe,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/resolvability-graph/utils/utils.ts"],"names":[],"mappings":";;AAiCA,4CAaC;AAgBD,8EAgEC;AA+DD,0FAqEC;AAED,oEA2BC;AAED,gDAUC;AAYD,0EAoCC;AAED,8EAyCC;AAED,0FAwCC;AAED,4EAYC;AA9bD,gDAA4D;AAC5D,6CAAoD;AAqBpD,oEAA8E;AAC9E,oEAA4E;AAU5E,SAAgB,gBAAgB,CAC9B,QAAkB,EAClB,SAAoB,EACpB,aAAgC;IAEhC,OAAO;QACL,MAAM,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE;QAClC,OAAO,EACL,wBAAwB,QAAQ,IAAI,SAAS,wCAAwC;YACrF,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI;QACnD,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAyB,EAAE,UAAkB;IAC7E,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;IACnC,CAAC;IACD,OAAO,CACL,SAAS,CAAC,IAAI;QACd,UAAU;QACV,gCAAa,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACpC,OAAO;QACP,gCAAa,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACpC,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAgB,iCAAiC,CAAC,EAChD,kBAAkB,EAClB,aAAa,EACb,qBAAqB,GACmB;IACxC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC;IAC5F,MAAM,OAAO,GAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,wBAAwB,GAAG,aAAa,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,yDAAyD;YAC1F,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,EAC9D,cAAc,QAAQ,IAAI,SAAS,uEAAuE;YACxG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CAC5D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,wCAAwC;YACzE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CACpD,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,6BAA6B,GAAG,KAAK,CAAC;QAC1C,KAAK,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,6BAA6B,EAAE,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YACD,6BAA6B,GAAG,IAAI,CAAC;YACrC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,kBAAkB,CAAC,YAAY,KAAK,kBAAkB,EAAE,CAAC;oBAC3D,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,wBAAwB,kBAAkB,CAAC,QAAQ,kBAAkB,kBAAkB,CAAC,YAAY,yCAAyC,QAAQ,yBAAyB,kBAAkB,IAAI,CACrM,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CACV,wBAAwB,kBAAkB,CAAC,QAAQ,kBAAkB,kBAAkB,CAAC,YAAY,4FAA4F,QAAQ,IAAI,SAAS,eAAe,CACrO,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,kGAAkG,SAAS,IAAI,CACrI,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CACV,+DAA+D,aAAa,CAAC,MAAM,oCAAoC,SAAS,IAAI,CACrI,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,0FAA0F,SAAS,IAAI,CAC7H,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,QAAQ,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,uIAAuI,CAC7J,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,eAAe,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAC5C,SAAS,EACT,OAAO,EACP,kBAAkB,GACK;IACvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,KAAK,kBAAkB,CAAC,CAAC;QAC1G,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CACV,sBAAsB,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,MAAM;YAChE,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,qBAAqB,CAAC,IAAI,CAAC,iCAAc,CAAC,GAAG;YACvF,MAAM,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,mCAAmC,QAAQ,GAAG;YAC9E,wBAAwB,kBAAkB,IAAI,CACjD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,EAChC,MAAM,EACN,eAAe,EAAE,EAAE,sCAAsC,EAAE,aAAa,EAAE,QAAQ,EAAE,EACpF,SAAS,EACT,OAAO,EACP,kBAAkB,GACK;IACvB,MAAM,0BAA0B,GAAkB,EAAE,CAAC;IACrD,MAAM,wBAAwB,GAAkB,EAAE,CAAC;IACnD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,mBAAmB,GAAG,sCAAsC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,KAAK,kBAAkB,CAAC,CAAC;YAC1G,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YACxD,0BAA0B,CAAC,IAAI,CAC7B,sBAAsB,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,MAAM;gBAChE,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,qBAAqB,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI;gBACxF,MAAM,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,mCAAmC,QAAQ,GAAG;gBAC9E,wBAAwB,kBAAkB,IAAI,CACjD,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,KAAK,kBAAkB,CAAC,CAAC;QAChH,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACxD,wBAAwB,CAAC,IAAI,CAC3B,wBAAwB,QAAQ,gBAAgB,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzE,KAAK,qBAAqB,CAAC,IAAI,CAAC,iCAAc,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,2BAA2B;YAC5G,0CAA0C,kBAAkB,4CAA4C;YACxG,gBAAgB,MAAM,IAAI,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACjH,CAAC;AAED,SAAgB,uCAAuC,CAAC,EACtD,eAAe,EACf,aAAa,EACb,qBAAqB,GACyB;IAC9C,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC;IAC5F,MAAM,MAAM,GAAgB,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;IACvD,MAAM,OAAO,GAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,wBAAwB,GAAG,aAAa,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,yDAAyD;YAC1F,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,EAC9D,cAAc,QAAQ,IAAI,SAAS,uEAAuE;YACxG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CAC5D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,cAAc,QAAQ,IAAI,SAAS,wCAAwC;YACzE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,iCAAc,CAAC,IAAI,CACpD,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,KAAK,eAAe,CAAC,QAAQ,CAAC;IACvD,IAAI,6BAA6B,GAAG,KAAK,CAAC;IAC1C,KAAK,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,eAAe,CAAC,6BAA6B,EAAE,CAAC;QAC5F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,6BAA6B,GAAG,IAAI,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,oBAAoB,CAAC;gBACnB,MAAM;gBACN,eAAe;gBACf,SAAS;gBACT,OAAO;gBACP,kBAAkB;aACnB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,wBAAwB,CAAC;gBACvB,MAAM;gBACN,eAAe;gBACf,SAAS;gBACT,OAAO;gBACP,kBAAkB;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CACV,wBAAwB,eAAe,CAAC,QAAQ,gBAAgB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnF,KAAK,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,iCAAc,CAAC,4BAA4B;YACnF,kEAAkE,MAAM,eAAe,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,kGAAkG,SAAS,IAAI,CACrI,CAAC;IACF,IAAI,QAAQ,KAAK,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CACV,aAAa,QAAQ,yEAAyE;YAC5F,gEAAgE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,4BAA4B,CAC1C,SAAiB,EACjB,QAAgB,8CAA2B;IAE3C,4EAA4E;IAC5E,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;IACrD,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,gEAAgE;QAChE,cAAc,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,cAAc,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YACtC,WAAW,IAAI,gCAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,eAAe,yBAAyB,CAAC;QACrG,CAAC;QACD,WAAW,IAAI,gCAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACnE,SAAS,GAAG,gCAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;IAC9D,CAAC;IACD,OAAO;QACL,SAAS;QACT,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAChC,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAwB,EAC3D,SAAyB;IAEzB,OAAO,CACL,WAAW;QACX,gCAAa,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;QACrD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,YAAqB;IACnE,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,+BAA+B,CAAC,EAC9C,aAAa,EACb,aAAa,EACb,iBAAiB,GACa;IAC9B,MAAM,sBAAsB,GAAG,IAAI,KAAK,EAAyB,CAAC;IAClE,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;YACrD,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,SAAS;gBACT,YAAY,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBACjE,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CACT,IAAA,8BAAqB,EACnB,qBAAqB,EACrB,iCAAiC,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC,CAC5E,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,iCAAiC,CAAC,EAChD,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,8BAA8B,GACJ;IAC1B,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,8BAA8B,EAAE,CAAC;QAClE,MAAM,sBAAsB,GAAG,IAAI,KAAK,EAAyB,CAAC;QAClE,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;YACrD,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,SAAS;gBACT,YAAY,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBACjE,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACtC,CAAC,CAAC;QACL,CAAC;QACD,0DAA0D;QAC1D,kBAAkB,CAAC,YAAY,GAAG,YAAY,CAAC;QAC/C,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CACT,IAAA,8BAAqB,EACnB,qBAAqB,EACrB,iCAAiC,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC,CAChG,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,uCAAuC,CAAC,EACtD,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,8BAA8B,GACE;IAChC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC;QACzD,MAAM,sBAAsB,GAAG,IAAI,KAAK,EAAyB,CAAC;QAClE,MAAM,kBAAkB,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC7D,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxE,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,eAAe,EAAE,CAAC;YACrD,sBAAsB,CAAC,IAAI,CAAC;gBAC1B,qBAAqB,EAAE,SAAS,CAAC,qBAAqB;gBACtD,SAAS;gBACT,YAAY,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBACjE,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACtC,CAAC,CAAC;QACL,CAAC;QACD,0DAA0D;QAC1D,KAAK,MAAM,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CACT,IAAA,8BAAqB,EACnB,qBAAqB,EACrB,uCAAuC,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAC,CACnG,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,gCAAgC,CAAC,EAC/C,mBAAmB,EACnB,aAAa,GAC0B;IACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,IAAI,GAAG,CAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAiB,CAAC;IACjD,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;QAC7C,eAAe,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type TypeNode } from 'graphql';
2
+ import { type InterfaceTypeName, type TypeName } from '../types/types';
3
+ export type IsTypeValidImplementationParams = {
4
+ concreteTypeNamesByAbstractTypeName: Map<TypeName, Set<TypeName>>;
5
+ implementationType: TypeNode;
6
+ interfaceImplementationTypeNamesByInterfaceTypeName: Map<InterfaceTypeName, Set<InterfaceTypeName>>;
7
+ originalType: TypeNode;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/schema-building/params.ts"],"names":[],"mappings":""}
@@ -1,10 +1,11 @@
1
1
  import { type BooleanValueNode, type ConstDirectiveNode, type ConstValueNode, type DefinitionNode, type DirectiveDefinitionNode, type EnumValueDefinitionNode, type EnumValueNode, type FieldDefinitionNode, type FloatValueNode, type InputValueDefinitionNode, type IntValueNode, Kind, type NullValueNode, OperationTypeNode, type StringValueNode, type TypeNode } from 'graphql';
2
- import { type AuthorizationData, type ChildData, type CompositeOutputData, type ConditionalFieldData, type DefinitionData, type ExternalFieldData, type FieldData, type InputObjectDefinitionData, type InputValueData, type InterfaceDefinitionData, type NodeData, type ObjectDefinitionData, type ParentDefinitionData, type PersistedDirectiveDefinitionData, type PersistedDirectivesData, type SchemaData } from './types';
2
+ import { type AuthorizationData, type ChildData, type CompositeOutputData, type ConditionalFieldData, type DefinitionData, type EnumDefinitionData, type ExternalFieldData, type FieldData, type InputObjectDefinitionData, type InputValueData, type InterfaceDefinitionData, type NodeData, type ObjectDefinitionData, type ParentDefinitionData, type PersistedDirectiveDefinitionData, type PersistedDirectivesData, type SchemaData } from './types';
3
3
  import { type MutableDefinitionNode, type MutableFieldNode, type MutableInputValueNode } from './ast';
4
- import { type ObjectTypeNode } from '../ast/utils';
4
+ import { type InterfaceTypeNode, type ObjectTypeNode, type ParentTypeNode } from '../ast/utils';
5
5
  import { type SubscriptionFilterValue } from '../router-configuration/types';
6
6
  import { type InputNodeKind, type OutputNodeKind } from '../utils/types';
7
7
  import { type DirectiveName, type FieldName, type SubgraphName, type TypeName } from '../types/types';
8
+ import { type IsTypeValidImplementationParams } from './params';
8
9
  export declare function newPersistedDirectivesData(): PersistedDirectivesData;
9
10
  type IsNodeExternalOrShareableResult = {
10
11
  isExternal: boolean;
@@ -47,7 +48,7 @@ export declare enum MergeMethod {
47
48
  INTERSECTION = 1,
48
49
  CONSISTENT = 2
49
50
  }
50
- export declare function isTypeValidImplementation(originalType: TypeNode, implementationType: TypeNode, concreteTypeNamesByAbstractTypeName: Map<TypeName, Set<TypeName>>): boolean;
51
+ export declare function isTypeValidImplementation({ concreteTypeNamesByAbstractTypeName, implementationType, interfaceImplementationTypeNamesByInterfaceTypeName, originalType, }: IsTypeValidImplementationParams): boolean;
51
52
  export declare function isNodeDataInaccessible(data: NodeData): boolean;
52
53
  export declare function isLeafKind(kind: Kind): boolean;
53
54
  export declare function getSubscriptionFilterValue(valueNode: BooleanValueNode | EnumValueNode | FloatValueNode | IntValueNode | NullValueNode | StringValueNode): SubscriptionFilterValue;
@@ -62,4 +63,6 @@ export declare function isFieldData(data: ChildData | NodeData | SchemaData): da
62
63
  export declare function isInputObjectDefinitionData(data: ParentDefinitionData): data is InputObjectDefinitionData;
63
64
  export declare function isInputNodeKind(kind: Kind): kind is InputNodeKind;
64
65
  export declare function isOutputNodeKind(kind: Kind): kind is OutputNodeKind;
66
+ export declare function isInterfaceNode(node: ParentTypeNode): node is InterfaceTypeNode;
67
+ export declare function isEnumData(data: ParentDefinitionData): data is EnumDefinitionData;
65
68
  export {};
@@ -41,6 +41,8 @@ exports.isFieldData = isFieldData;
41
41
  exports.isInputObjectDefinitionData = isInputObjectDefinitionData;
42
42
  exports.isInputNodeKind = isInputNodeKind;
43
43
  exports.isOutputNodeKind = isOutputNodeKind;
44
+ exports.isInterfaceNode = isInterfaceNode;
45
+ exports.isEnumData = isEnumData;
44
46
  const graphql_1 = require("graphql");
45
47
  const types_1 = require("./types");
46
48
  const utils_1 = require("../ast/utils");
@@ -476,15 +478,25 @@ var MergeMethod;
476
478
  MergeMethod[MergeMethod["INTERSECTION"] = 1] = "INTERSECTION";
477
479
  MergeMethod[MergeMethod["CONSISTENT"] = 2] = "CONSISTENT";
478
480
  })(MergeMethod || (exports.MergeMethod = MergeMethod = {}));
479
- function isTypeValidImplementation(originalType, implementationType, concreteTypeNamesByAbstractTypeName) {
481
+ function isTypeValidImplementation({ concreteTypeNamesByAbstractTypeName, implementationType, interfaceImplementationTypeNamesByInterfaceTypeName, originalType, }) {
480
482
  if (originalType.kind === graphql_1.Kind.NON_NULL_TYPE) {
481
483
  if (implementationType.kind !== graphql_1.Kind.NON_NULL_TYPE) {
482
484
  return false;
483
485
  }
484
- return isTypeValidImplementation(originalType.type, implementationType.type, concreteTypeNamesByAbstractTypeName);
486
+ return isTypeValidImplementation({
487
+ concreteTypeNamesByAbstractTypeName,
488
+ implementationType: implementationType.type,
489
+ interfaceImplementationTypeNamesByInterfaceTypeName,
490
+ originalType: originalType.type,
491
+ });
485
492
  }
486
493
  if (implementationType.kind === graphql_1.Kind.NON_NULL_TYPE) {
487
- return isTypeValidImplementation(originalType, implementationType.type, concreteTypeNamesByAbstractTypeName);
494
+ return isTypeValidImplementation({
495
+ concreteTypeNamesByAbstractTypeName,
496
+ implementationType: implementationType.type,
497
+ interfaceImplementationTypeNamesByInterfaceTypeName,
498
+ originalType,
499
+ });
488
500
  }
489
501
  switch (originalType.kind) {
490
502
  case graphql_1.Kind.NAMED_TYPE:
@@ -494,16 +506,19 @@ function isTypeValidImplementation(originalType, implementationType, concreteTyp
494
506
  if (originalTypeName === implementationTypeName) {
495
507
  return true;
496
508
  }
509
+ const abstractTypes = interfaceImplementationTypeNamesByInterfaceTypeName.get(originalTypeName);
497
510
  const concreteTypes = concreteTypeNamesByAbstractTypeName.get(originalTypeName);
498
- if (!concreteTypes) {
499
- return false;
500
- }
501
- return concreteTypes.has(implementationTypeName);
511
+ return !!(concreteTypes?.has(implementationTypeName) || abstractTypes?.has(implementationTypeName));
502
512
  }
503
513
  return false;
504
514
  default:
505
515
  if (implementationType.kind === graphql_1.Kind.LIST_TYPE) {
506
- return isTypeValidImplementation(originalType.type, implementationType.type, concreteTypeNamesByAbstractTypeName);
516
+ return isTypeValidImplementation({
517
+ concreteTypeNamesByAbstractTypeName,
518
+ implementationType: implementationType.type,
519
+ interfaceImplementationTypeNamesByInterfaceTypeName,
520
+ originalType: originalType.type,
521
+ });
507
522
  }
508
523
  return false;
509
524
  }
@@ -606,4 +621,10 @@ function isInputNodeKind(kind) {
606
621
  function isOutputNodeKind(kind) {
607
622
  return string_constants_1.OUTPUT_NODE_KINDS.has(kind);
608
623
  }
624
+ function isInterfaceNode(node) {
625
+ return string_constants_1.INTERFACE_NODE_KINDS.has(node.kind);
626
+ }
627
+ function isEnumData(data) {
628
+ return data.kind === graphql_1.Kind.ENUM_TYPE_DEFINITION;
629
+ }
609
630
  //# sourceMappingURL=utils.js.map