@apollo/federation-internals 2.0.0-alpha.1 → 2.0.0-alpha.5

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 (87) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/buildSchema.d.ts.map +1 -1
  3. package/dist/buildSchema.js +3 -3
  4. package/dist/buildSchema.js.map +1 -1
  5. package/dist/coreSpec.d.ts +1 -1
  6. package/dist/coreSpec.d.ts.map +1 -1
  7. package/dist/coreSpec.js +2 -0
  8. package/dist/coreSpec.js.map +1 -1
  9. package/dist/debug.d.ts.map +1 -1
  10. package/dist/debug.js +7 -23
  11. package/dist/debug.js.map +1 -1
  12. package/dist/definitions.d.ts +28 -13
  13. package/dist/definitions.d.ts.map +1 -1
  14. package/dist/definitions.js +132 -71
  15. package/dist/definitions.js.map +1 -1
  16. package/dist/error.d.ts +88 -3
  17. package/dist/error.d.ts.map +1 -1
  18. package/dist/error.js +145 -5
  19. package/dist/error.js.map +1 -1
  20. package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
  21. package/dist/extractSubgraphsFromSupergraph.js +60 -8
  22. package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
  23. package/dist/federation.d.ts +7 -6
  24. package/dist/federation.d.ts.map +1 -1
  25. package/dist/federation.js +261 -81
  26. package/dist/federation.js.map +1 -1
  27. package/dist/genErrorCodeDoc.d.ts +2 -0
  28. package/dist/genErrorCodeDoc.d.ts.map +1 -0
  29. package/dist/genErrorCodeDoc.js +55 -0
  30. package/dist/genErrorCodeDoc.js.map +1 -0
  31. package/dist/inaccessibleSpec.d.ts +1 -1
  32. package/dist/inaccessibleSpec.d.ts.map +1 -1
  33. package/dist/inaccessibleSpec.js +5 -5
  34. package/dist/inaccessibleSpec.js.map +1 -1
  35. package/dist/joinSpec.d.ts.map +1 -1
  36. package/dist/joinSpec.js +6 -5
  37. package/dist/joinSpec.js.map +1 -1
  38. package/dist/operations.d.ts.map +1 -1
  39. package/dist/operations.js +16 -16
  40. package/dist/operations.js.map +1 -1
  41. package/dist/print.d.ts +1 -1
  42. package/dist/print.d.ts.map +1 -1
  43. package/dist/print.js +4 -4
  44. package/dist/print.js.map +1 -1
  45. package/dist/suggestions.js +1 -1
  46. package/dist/suggestions.js.map +1 -1
  47. package/dist/tagSpec.d.ts +2 -2
  48. package/dist/tagSpec.d.ts.map +1 -1
  49. package/dist/tagSpec.js +10 -2
  50. package/dist/tagSpec.js.map +1 -1
  51. package/dist/utils.d.ts +17 -0
  52. package/dist/utils.d.ts.map +1 -1
  53. package/dist/utils.js +97 -1
  54. package/dist/utils.js.map +1 -1
  55. package/dist/validate.js.map +1 -1
  56. package/dist/values.d.ts +2 -1
  57. package/dist/values.d.ts.map +1 -1
  58. package/dist/values.js +29 -4
  59. package/dist/values.js.map +1 -1
  60. package/jest.config.js +5 -1
  61. package/package.json +4 -8
  62. package/src/__tests__/definitions.test.ts +3 -3
  63. package/src/__tests__/extractSubgraphsFromSupergraph.test.ts +432 -0
  64. package/src/__tests__/matchers/toMatchString.ts +2 -2
  65. package/src/__tests__/removeInaccessibleElements.test.ts +8 -8
  66. package/src/__tests__/subgraphValidation.test.ts +480 -0
  67. package/src/__tests__/utils.test.ts +92 -0
  68. package/src/buildSchema.ts +12 -11
  69. package/src/coreSpec.ts +12 -10
  70. package/src/debug.ts +8 -25
  71. package/src/definitions.ts +249 -115
  72. package/src/error.ts +340 -7
  73. package/src/extractSubgraphsFromSupergraph.ts +80 -19
  74. package/src/federation.ts +350 -139
  75. package/src/genErrorCodeDoc.ts +69 -0
  76. package/src/inaccessibleSpec.ts +13 -8
  77. package/src/joinSpec.ts +11 -8
  78. package/src/operations.ts +40 -38
  79. package/src/print.ts +8 -8
  80. package/src/suggestions.ts +1 -1
  81. package/src/tagSpec.ts +12 -7
  82. package/src/types.ts +1 -1
  83. package/src/utils.ts +131 -0
  84. package/src/validate.ts +4 -4
  85. package/src/values.ts +51 -9
  86. package/tsconfig.test.tsbuildinfo +1 -1
  87. package/tsconfig.tsbuildinfo +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExternalTester = exports.addSubgraphToError = exports.addSubgraphToASTNode = exports.Subgraph = exports.Subgraphs = exports.subgraphsFromServiceList = exports.parseFieldSetArgument = exports.isEntityType = exports.isFederationDirective = exports.isFederationField = exports.isFederationTypeName = exports.isFederationType = exports.isFederationSubgraphSchema = exports.federationBuiltIns = exports.FederationBuiltIns = exports.FEDERATION_RESERVED_SUBGRAPH_NAME = exports.entitiesFieldName = exports.serviceFieldName = exports.tagDirectiveName = exports.providesDirectiveName = exports.requiresDirectiveName = exports.externalDirectiveName = exports.extendsDirectiveName = exports.keyDirectiveName = exports.fieldSetTypeName = exports.anyTypeName = exports.serviceTypeName = exports.entityTypeName = void 0;
3
+ exports.ExternalTester = exports.addSubgraphToError = exports.addSubgraphToASTNode = exports.Subgraph = exports.Subgraphs = exports.subgraphsFromServiceList = exports.parseFieldSetArgument = exports.buildSubgraph = exports.isEntityType = exports.isFederationDirective = exports.isFederationField = exports.isFederationTypeName = exports.isFederationType = exports.isFederationSubgraphSchema = exports.federationBuiltIns = exports.FederationBuiltIns = exports.FEDERATION_RESERVED_SUBGRAPH_NAME = exports.entitiesFieldName = exports.serviceFieldName = exports.tagDirectiveName = exports.providesDirectiveName = exports.requiresDirectiveName = exports.externalDirectiveName = exports.extendsDirectiveName = exports.keyDirectiveName = exports.fieldSetTypeName = exports.anyTypeName = exports.serviceTypeName = exports.entityTypeName = void 0;
4
4
  const definitions_1 = require("./definitions");
5
5
  const utils_1 = require("./utils");
6
6
  const specifiedRules_1 = require("graphql/validation/specifiedRules");
@@ -55,25 +55,46 @@ function validateFieldSetSelections(directiveName, selectionSet, hasExternalInPa
55
55
  for (const selection of selectionSet.selections()) {
56
56
  if (selection.kind === 'FieldSelection') {
57
57
  const field = selection.element().definition;
58
- if (field.hasArguments()) {
59
- throw new graphql_1.GraphQLError(`field ${field.coordinate} cannot be included because it has arguments (fields with argument are not allowed in @${directiveName})`, field.sourceAST);
60
- }
61
- const mustBeExternal = !selection.selectionSet && !allowOnNonExternalLeafFields && !hasExternalInParents;
62
58
  const isExternal = externalTester.isExternal(field);
63
59
  if (isExternal) {
64
60
  externalFieldCoordinatesCollector.push(field.coordinate);
65
61
  }
66
- else if (mustBeExternal) {
62
+ if (field.hasArguments()) {
63
+ throw error_1.ERROR_CATEGORIES.FIELDS_HAS_ARGS.get(directiveName).err({
64
+ message: `field ${field.coordinate} cannot be included because it has arguments (fields with argument are not allowed in @${directiveName})`,
65
+ nodes: field.sourceAST
66
+ });
67
+ }
68
+ const mustBeExternal = !selection.selectionSet && !allowOnNonExternalLeafFields && !hasExternalInParents;
69
+ if (!isExternal && mustBeExternal) {
70
+ const errorCode = error_1.ERROR_CATEGORIES.DIRECTIVE_FIELDS_MISSING_EXTERNAL.get(directiveName);
67
71
  if (externalTester.isFakeExternal(field)) {
68
- throw new graphql_1.GraphQLError(`field "${field.coordinate}" should not be part of a @${directiveName} since it is already "effectively" provided by this subgraph `
69
- + `(while it is marked @${exports.externalDirectiveName}, it is a @${exports.keyDirectiveName} field of an extension type, which are not internally considered external for historical/backward compatibility reasons)`, field.sourceAST);
72
+ throw errorCode.err({
73
+ message: `field "${field.coordinate}" should not be part of a @${directiveName} since it is already "effectively" provided by this subgraph `
74
+ + `(while it is marked @${exports.externalDirectiveName}, it is a @${exports.keyDirectiveName} field of an extension type, which are not internally considered external for historical/backward compatibility reasons)`,
75
+ nodes: field.sourceAST
76
+ });
70
77
  }
71
78
  else {
72
- throw new graphql_1.GraphQLError(`field "${field.coordinate}" should not be part of a @${directiveName} since it is already provided by this subgraph (it is not marked @${exports.externalDirectiveName})`, field.sourceAST);
79
+ throw errorCode.err({
80
+ message: `field "${field.coordinate}" should not be part of a @${directiveName} since it is already provided by this subgraph (it is not marked @${exports.externalDirectiveName})`,
81
+ nodes: field.sourceAST
82
+ });
73
83
  }
74
84
  }
75
85
  if (selection.selectionSet) {
76
- validateFieldSetSelections(directiveName, selection.selectionSet, hasExternalInParents || isExternal, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields);
86
+ let newHasExternalInParents = hasExternalInParents || isExternal;
87
+ const parentType = field.parent;
88
+ if (!newHasExternalInParents && (0, definitions_1.isInterfaceType)(parentType)) {
89
+ for (const implem of parentType.possibleRuntimeTypes()) {
90
+ const fieldInImplem = implem.field(field.name);
91
+ if (fieldInImplem && externalTester.isExternal(fieldInImplem)) {
92
+ newHasExternalInParents = true;
93
+ break;
94
+ }
95
+ }
96
+ }
97
+ validateFieldSetSelections(directiveName, selection.selectionSet, newHasExternalInParents, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields);
77
98
  }
78
99
  }
79
100
  else {
@@ -81,48 +102,74 @@ function validateFieldSetSelections(directiveName, selectionSet, hasExternalInPa
81
102
  }
82
103
  }
83
104
  }
84
- function validateFieldSet(type, directive, targetDescription, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields) {
105
+ function validateFieldSet(type, directive, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields, onFields) {
106
+ var _a;
85
107
  try {
86
- const selectionSet = parseFieldSetArgument(type, directive);
87
- selectionSet.validate();
88
- validateFieldSetSelections(directive.name, selectionSet, false, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields);
89
- return undefined;
90
- }
91
- catch (e) {
92
- if (!(e instanceof graphql_1.GraphQLError)) {
93
- throw e;
94
- }
95
- const nodes = (0, definitions_1.sourceASTs)(directive);
96
- if (e.nodes) {
97
- nodes.push(...e.nodes);
98
- }
99
- let msg = e.message.trim();
100
- if (msg.startsWith('Cannot query field')) {
101
- if (msg.endsWith('.')) {
102
- msg = msg.slice(0, msg.length - 1);
108
+ const fieldAcessor = onFields
109
+ ? (type, fieldName) => {
110
+ const field = type.field(fieldName);
111
+ if (field) {
112
+ onFields(field);
113
+ }
114
+ return field;
103
115
  }
104
- if (directive.name === exports.keyDirectiveName) {
105
- msg = msg + ' (the field should be either be added to this subgraph or, if it should not be resolved by this subgraph, you need to add it to this subgraph with @external).';
116
+ : undefined;
117
+ const selectionSet = parseFieldSetArgument(type, directive, fieldAcessor);
118
+ try {
119
+ validateFieldSetSelections(directive.name, selectionSet, false, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields);
120
+ return undefined;
121
+ }
122
+ catch (e) {
123
+ if (!(e instanceof graphql_1.GraphQLError)) {
124
+ throw e;
106
125
  }
107
- else {
108
- msg = msg + ' (if the field is defined in another subgraph, you need to add it to this subgraph with @external).';
126
+ const nodes = (0, definitions_1.sourceASTs)(directive);
127
+ if (e.nodes) {
128
+ nodes.push(...e.nodes);
109
129
  }
130
+ const codeDef = (_a = (0, error_1.errorCodeDef)(e)) !== null && _a !== void 0 ? _a : error_1.ERROR_CATEGORIES.DIRECTIVE_INVALID_FIELDS.get(directive.name);
131
+ return codeDef.err({
132
+ message: `${fieldSetErrorDescriptor(directive)}: ${e.message.trim()}`,
133
+ nodes,
134
+ originalError: e,
135
+ });
110
136
  }
111
- return new graphql_1.GraphQLError(`On ${targetDescription}, for ${directive}: ${msg}`, nodes);
112
137
  }
138
+ catch (e) {
139
+ if (e instanceof graphql_1.GraphQLError) {
140
+ return e;
141
+ }
142
+ else {
143
+ throw e;
144
+ }
145
+ }
146
+ }
147
+ function fieldSetErrorDescriptor(directive) {
148
+ return `On ${fieldSetTargetDescription(directive)}, for ${directiveStrUsingASTIfPossible(directive)}`;
149
+ }
150
+ function directiveStrUsingASTIfPossible(directive) {
151
+ return directive.sourceAST ? (0, graphql_1.print)(directive.sourceAST) : directive.toString();
113
152
  }
114
- function validateAllFieldSet(definition, targetTypeExtractor, targetDescriptionExtractor, errorCollector, externalTester, externalFieldCoordinatesCollector, isOnParentType, allowOnNonExternalLeafFields) {
153
+ function fieldSetTargetDescription(directive) {
154
+ var _a;
155
+ const targetKind = directive.parent instanceof definitions_1.FieldDefinition ? "field" : "type";
156
+ return `${targetKind} "${(_a = directive.parent) === null || _a === void 0 ? void 0 : _a.coordinate}"`;
157
+ }
158
+ function validateAllFieldSet(definition, targetTypeExtractor, errorCollector, externalTester, externalFieldCoordinatesCollector, isOnParentType, allowOnNonExternalLeafFields, onFields) {
115
159
  for (const application of definition.applications()) {
116
160
  const elt = application.parent;
117
161
  const type = targetTypeExtractor(elt);
118
- const targetDescription = targetDescriptionExtractor(elt);
119
162
  const parentType = isOnParentType ? type : elt.parent;
120
163
  if ((0, definitions_1.isInterfaceType)(parentType)) {
121
- errorCollector.push(new graphql_1.GraphQLError(isOnParentType
122
- ? `Cannot use ${definition.coordinate} on interface ${parentType.coordinate}: ${definition.coordinate} is not yet supported on interfaces`
123
- : `Cannot use ${definition.coordinate} on ${targetDescription} of parent type ${parentType}: ${definition.coordinate} is not yet supported within interfaces`, (0, definitions_1.sourceASTs)(application).concat(isOnParentType ? [] : (0, definitions_1.sourceASTs)(type))));
164
+ const code = error_1.ERROR_CATEGORIES.DIRECTIVE_UNSUPPORTED_ON_INTERFACE.get(definition.name);
165
+ errorCollector.push(code.err({
166
+ message: isOnParentType
167
+ ? `Cannot use ${definition.coordinate} on interface "${parentType.coordinate}": ${definition.coordinate} is not yet supported on interfaces`
168
+ : `Cannot use ${definition.coordinate} on ${fieldSetTargetDescription(application)} of parent type "${parentType}": ${definition.coordinate} is not yet supported within interfaces`,
169
+ nodes: (0, definitions_1.sourceASTs)(application).concat(isOnParentType ? [] : (0, definitions_1.sourceASTs)(type)),
170
+ }));
124
171
  }
125
- const error = validateFieldSet(type, application, targetDescription, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields);
172
+ const error = validateFieldSet(type, application, externalTester, externalFieldCoordinatesCollector, allowOnNonExternalLeafFields, onFields);
126
173
  if (error) {
127
174
  errorCollector.push(error);
128
175
  }
@@ -138,8 +185,11 @@ function validateAllExternalFieldsUsed(schema, externalTester, allExternalFields
138
185
  continue;
139
186
  }
140
187
  if (!isFieldSatisfyingInterface(field)) {
141
- errorCollector.push(new graphql_1.GraphQLError(`Field ${field.coordinate} is marked @external but is not used in any federation directive (@key, @provides, @requires) or to satisfy an interface;`
142
- + ' the field declaration has no use and should be removed (or the field should not be @external).', field.sourceAST));
188
+ errorCollector.push(error_1.ERRORS.EXTERNAL_UNUSED.err({
189
+ message: `Field "${field.coordinate}" is marked @external but is not used in any federation directive (@key, @provides, @requires) or to satisfy an interface;`
190
+ + ' the field declaration has no use and should be removed (or the field should not be @external).',
191
+ nodes: field.sourceAST,
192
+ }));
143
193
  }
144
194
  }
145
195
  }
@@ -147,6 +197,38 @@ function validateAllExternalFieldsUsed(schema, externalTester, allExternalFields
147
197
  function isFieldSatisfyingInterface(field) {
148
198
  return field.parent.interfaces().some(itf => itf.field(field.name));
149
199
  }
200
+ function validateInterfaceRuntimeImplementationFieldsTypes(itf, externalTester, errorCollector) {
201
+ const runtimeTypes = itf.possibleRuntimeTypes();
202
+ for (const field of itf.fields()) {
203
+ const withExternalOrRequires = [];
204
+ const typeToImplems = new utils_1.MultiMap();
205
+ const nodes = [];
206
+ for (const type of runtimeTypes) {
207
+ const implemField = type.field(field.name);
208
+ if (!implemField)
209
+ continue;
210
+ if (implemField.sourceAST) {
211
+ nodes.push(implemField.sourceAST);
212
+ }
213
+ if (externalTester.isExternal(implemField) || implemField.hasAppliedDirective(exports.requiresDirectiveName)) {
214
+ withExternalOrRequires.push(implemField);
215
+ }
216
+ const returnType = implemField.type;
217
+ typeToImplems.add(returnType.toString(), implemField);
218
+ }
219
+ if (withExternalOrRequires.length > 0 && typeToImplems.size > 1) {
220
+ const typeToImplemsArray = [...typeToImplems.entries()];
221
+ errorCollector.push(error_1.ERRORS.INTERFACE_FIELD_IMPLEM_TYPE_MISMATCH.err({
222
+ message: `Some of the runtime implementations of interface field "${field.coordinate}" are marked @external or have a @require (${withExternalOrRequires.map(printFieldCoordinate)}) so all the implementations should use the same type (a current limitation of federation; see https://github.com/apollographql/federation/issues/1257), but ${formatFieldsToReturnType(typeToImplemsArray[0])} while ${(0, utils_1.joinStrings)(typeToImplemsArray.slice(1).map(formatFieldsToReturnType), ' and ')}.`,
223
+ nodes
224
+ }));
225
+ }
226
+ }
227
+ }
228
+ const printFieldCoordinate = (f) => `"${f.coordinate}"`;
229
+ function formatFieldsToReturnType([type, implems]) {
230
+ return `${(0, utils_1.joinStrings)(implems.map(printFieldCoordinate))} ${implems.length == 1 ? 'has' : 'have'} type "${type}"`;
231
+ }
150
232
  class FederationBuiltIns extends definitions_1.BuiltIns {
151
233
  addBuiltInTypes(schema) {
152
234
  super.addBuiltInTypes(schema);
@@ -159,16 +241,16 @@ class FederationBuiltIns extends definitions_1.BuiltIns {
159
241
  super.addBuiltInDirectives(schema);
160
242
  const fieldSetType = new definitions_1.NonNullType(schema.type(exports.fieldSetTypeName));
161
243
  const keyDirective = this.addBuiltInDirective(schema, exports.keyDirectiveName)
162
- .addLocations('OBJECT', 'INTERFACE');
244
+ .addLocations(graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE);
163
245
  keyDirective.repeatable = true;
164
246
  keyDirective.addArgument('fields', fieldSetType);
165
247
  this.addBuiltInDirective(schema, exports.extendsDirectiveName)
166
- .addLocations('OBJECT', 'INTERFACE');
248
+ .addLocations(graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE);
167
249
  this.addBuiltInDirective(schema, exports.externalDirectiveName)
168
- .addLocations('OBJECT', 'FIELD_DEFINITION');
250
+ .addLocations(graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.FIELD_DEFINITION);
169
251
  for (const name of [exports.requiresDirectiveName, exports.providesDirectiveName]) {
170
252
  this.addBuiltInDirective(schema, name)
171
- .addLocations('FIELD_DEFINITION')
253
+ .addLocations(graphql_1.DirectiveLocation.FIELD_DEFINITION)
172
254
  .addArgument('fields', fieldSetType);
173
255
  }
174
256
  const directive = this.addBuiltInDirective(schema, 'tag').addLocations(...tagSpec_1.tagLocations);
@@ -195,7 +277,7 @@ class FederationBuiltIns extends definitions_1.BuiltIns {
195
277
  }
196
278
  const queryRoot = schema.schemaDefinition.root("query");
197
279
  const queryType = queryRoot ? queryRoot.type : schema.addType(new definitions_1.ObjectType("Query"));
198
- let entityField = queryType.field(exports.entitiesFieldName);
280
+ const entityField = queryType.field(exports.entitiesFieldName);
199
281
  if (hasEntities) {
200
282
  const anyType = schema.type(exports.anyTypeName);
201
283
  (0, utils_1.assert)(anyType, `The schema should have the _Any type`);
@@ -224,9 +306,12 @@ class FederationBuiltIns extends definitions_1.BuiltIns {
224
306
  if (type && type.name !== defaultName) {
225
307
  const existing = schema.type(defaultName);
226
308
  if (existing) {
227
- errors.push((0, error_1.error)(`ROOT_${k.toUpperCase()}_USED`, `The schema has a type named "${defaultName}" but it is not set as the ${k} root type ("${type.name}" is instead): `
228
- + 'this is not supported by federation. '
229
- + 'If a root type does not use its default name, there should be no other type with that default name.', (0, definitions_1.sourceASTs)(type, existing)));
309
+ errors.push(error_1.ERROR_CATEGORIES.ROOT_TYPE_USED.get(k).err({
310
+ message: `The schema has a type named "${defaultName}" but it is not set as the ${k} root type ("${type.name}" is instead): `
311
+ + 'this is not supported by federation. '
312
+ + 'If a root type does not use its default name, there should be no other type with that default name.',
313
+ nodes: (0, definitions_1.sourceASTs)(type, existing),
314
+ }));
230
315
  }
231
316
  type.rename(defaultName);
232
317
  }
@@ -234,15 +319,29 @@ class FederationBuiltIns extends definitions_1.BuiltIns {
234
319
  const externalTester = new ExternalTester(schema);
235
320
  const externalFieldsInFedDirectivesCoordinates = [];
236
321
  const keyDirective = this.keyDirective(schema);
237
- validateAllFieldSet(keyDirective, type => type, type => `type "${type}"`, errors, externalTester, externalFieldsInFedDirectivesCoordinates, true, true);
238
- validateAllFieldSet(this.requiresDirective(schema), field => field.parent, field => `field "${field.coordinate}"`, errors, externalTester, externalFieldsInFedDirectivesCoordinates, false, false);
322
+ validateAllFieldSet(keyDirective, type => type, errors, externalTester, externalFieldsInFedDirectivesCoordinates, true, true, field => {
323
+ if ((0, definitions_1.isListType)(field.type) || (0, definitions_1.isUnionType)(field.type) || (0, definitions_1.isInterfaceType)(field.type)) {
324
+ let kind = field.type.kind;
325
+ kind = kind.slice(0, kind.length - 'Type'.length);
326
+ throw error_1.ERRORS.KEY_FIELDS_SELECT_INVALID_TYPE.err({
327
+ message: `field "${field.coordinate}" is a ${kind} type which is not allowed in @key`
328
+ });
329
+ }
330
+ });
331
+ validateAllFieldSet(this.requiresDirective(schema), field => field.parent, errors, externalTester, externalFieldsInFedDirectivesCoordinates, false, false);
239
332
  validateAllFieldSet(this.providesDirective(schema), field => {
333
+ if (externalTester.isExternal(field)) {
334
+ throw new graphql_1.GraphQLError(`Cannot have both @provides and @external on field "${field.coordinate}"`, field.sourceAST);
335
+ }
240
336
  const type = (0, definitions_1.baseType)(field.type);
241
- if (!(0, definitions_1.isObjectType)(type)) {
242
- throw new graphql_1.GraphQLError(`Invalid @provides directive on field "${field.coordinate}": field has type "${field.type}" which is not an Object Type`, field.sourceAST);
337
+ if (!(0, definitions_1.isCompositeType)(type)) {
338
+ throw error_1.ERRORS.PROVIDES_ON_NON_OBJECT_FIELD.err({
339
+ message: `Invalid @provides directive on field "${field.coordinate}": field has type "${field.type}" which is not a Composite Type`,
340
+ nodes: field.sourceAST,
341
+ });
243
342
  }
244
343
  return type;
245
- }, field => `field ${field.coordinate}`, errors, externalTester, externalFieldsInFedDirectivesCoordinates, false, false);
344
+ }, errors, externalTester, externalFieldsInFedDirectivesCoordinates, false, false);
246
345
  validateAllExternalFieldsUsed(schema, externalTester, externalFieldsInFedDirectivesCoordinates, errors);
247
346
  const tagDirective = this.tagDirective(schema);
248
347
  if (!tagDirective.isBuiltIn) {
@@ -251,6 +350,9 @@ class FederationBuiltIns extends definitions_1.BuiltIns {
251
350
  errors.push(error);
252
351
  }
253
352
  }
353
+ for (const itf of schema.types('InterfaceType')) {
354
+ validateInterfaceRuntimeImplementationFieldsTypes(itf, externalTester, errors);
355
+ }
254
356
  return errors;
255
357
  }
256
358
  validationRules() {
@@ -276,7 +378,7 @@ class FederationBuiltIns extends definitions_1.BuiltIns {
276
378
  }
277
379
  maybeUpdateSubgraphDocument(schema, document) {
278
380
  document = super.maybeUpdateSubgraphDocument(schema, document);
279
- let definitions = document.definitions.concat();
381
+ const definitions = document.definitions.concat();
280
382
  for (const directiveName of FEDERATION_DIRECTIVES) {
281
383
  const directive = schema.directive(directiveName);
282
384
  (0, utils_1.assert)(directive, 'This method should only have been called on a schema with federation built-ins');
@@ -285,7 +387,7 @@ class FederationBuiltIns extends definitions_1.BuiltIns {
285
387
  }
286
388
  }
287
389
  return {
288
- kind: 'Document',
390
+ kind: graphql_1.Kind.DOCUMENT,
289
391
  loc: document.loc,
290
392
  definitions
291
393
  };
@@ -329,21 +431,72 @@ function buildSubgraph(name, source) {
329
431
  }
330
432
  catch (e) {
331
433
  if (e instanceof graphql_1.GraphQLError) {
332
- throw addSubgraphToError(e, name);
434
+ throw addSubgraphToError(e, name, error_1.ERRORS.INVALID_GRAPHQL);
333
435
  }
334
436
  else {
335
437
  throw e;
336
438
  }
337
439
  }
338
440
  }
441
+ exports.buildSubgraph = buildSubgraph;
339
442
  function parseFieldSetArgument(parentType, directive, fieldAccessor = (type, name) => type.field(name)) {
340
- return (0, operations_1.parseSelectionSet)(parentType, validateFieldSetValue(directive), new definitions_1.VariableDefinitions(), undefined, fieldAccessor);
443
+ var _a;
444
+ try {
445
+ const selectionSet = (0, operations_1.parseSelectionSet)(parentType, validateFieldSetValue(directive), new definitions_1.VariableDefinitions(), undefined, fieldAccessor);
446
+ selectionSet.validate();
447
+ return selectionSet;
448
+ }
449
+ catch (e) {
450
+ if (!(e instanceof graphql_1.GraphQLError)) {
451
+ throw e;
452
+ }
453
+ const nodes = (0, definitions_1.sourceASTs)(directive);
454
+ if (e.nodes) {
455
+ nodes.push(...e.nodes);
456
+ }
457
+ let msg = e.message.trim();
458
+ if (msg.startsWith('Cannot query field')) {
459
+ if (msg.endsWith('.')) {
460
+ msg = msg.slice(0, msg.length - 1);
461
+ }
462
+ if (directive.name === exports.keyDirectiveName) {
463
+ msg = msg + ' (the field should be either be added to this subgraph or, if it should not be resolved by this subgraph, you need to add it to this subgraph with @external).';
464
+ }
465
+ else {
466
+ msg = msg + ' (if the field is defined in another subgraph, you need to add it to this subgraph with @external).';
467
+ }
468
+ }
469
+ const codeDef = (_a = (0, error_1.errorCodeDef)(e)) !== null && _a !== void 0 ? _a : error_1.ERROR_CATEGORIES.DIRECTIVE_INVALID_FIELDS.get(directive.name);
470
+ throw codeDef.err({
471
+ message: `${fieldSetErrorDescriptor(directive)}: ${msg}`,
472
+ nodes,
473
+ originalError: e,
474
+ });
475
+ }
341
476
  }
342
477
  exports.parseFieldSetArgument = parseFieldSetArgument;
343
478
  function validateFieldSetValue(directive) {
479
+ var _a;
344
480
  const fields = directive.arguments().fields;
481
+ const nodes = directive.sourceAST;
345
482
  if (typeof fields !== 'string') {
346
- throw new graphql_1.GraphQLError(`Invalid value for argument ${directive.definition.argument('fields').coordinate} on ${directive.parent.coordinate}: must be a string.`, directive.sourceAST);
483
+ throw error_1.ERROR_CATEGORIES.DIRECTIVE_INVALID_FIELDS_TYPE.get(directive.name).err({
484
+ message: `Invalid value for argument "${directive.definition.argument('fields').name}": must be a string.`,
485
+ nodes,
486
+ });
487
+ }
488
+ if (nodes && nodes.kind === 'Directive') {
489
+ for (const argNode of (_a = nodes.arguments) !== null && _a !== void 0 ? _a : []) {
490
+ if (argNode.name.value === 'fields') {
491
+ if (argNode.value.kind !== 'StringValue') {
492
+ throw error_1.ERROR_CATEGORIES.DIRECTIVE_INVALID_FIELDS_TYPE.get(directive.name).err({
493
+ message: `Invalid value for argument "${directive.definition.argument('fields').name}": must be a string.`,
494
+ nodes,
495
+ });
496
+ }
497
+ break;
498
+ }
499
+ }
347
500
  }
348
501
  return fields;
349
502
  }
@@ -370,47 +523,40 @@ function subgraphsFromServiceList(serviceList) {
370
523
  exports.subgraphsFromServiceList = subgraphsFromServiceList;
371
524
  class Subgraphs {
372
525
  constructor() {
373
- this.subgraphs = [];
374
- }
375
- idx(name) {
376
- return this.subgraphs.findIndex(s => s.name === name);
526
+ this.subgraphs = new utils_1.OrderedMap();
377
527
  }
378
528
  add(subgraphOrName, url, schema) {
379
529
  const toAdd = typeof subgraphOrName === 'string'
380
530
  ? new Subgraph(subgraphOrName, url, schema instanceof definitions_1.Schema ? schema : buildSubgraph(subgraphOrName, schema))
381
531
  : subgraphOrName;
382
532
  if (toAdd.name === exports.FEDERATION_RESERVED_SUBGRAPH_NAME) {
383
- throw new graphql_1.GraphQLError(`Invalid name ${exports.FEDERATION_RESERVED_SUBGRAPH_NAME} for a subgraph: this name is reserved`);
533
+ throw error_1.ERRORS.INVALID_SUBGRAPH_NAME.err({ message: `Invalid name ${exports.FEDERATION_RESERVED_SUBGRAPH_NAME} for a subgraph: this name is reserved` });
384
534
  }
385
- const idx = this.idx(toAdd.name);
386
- if (idx >= 0) {
535
+ if (this.subgraphs.has(toAdd.name)) {
387
536
  throw new Error(`A subgraph named ${toAdd.name} already exists` + (toAdd.url ? ` (with url '${toAdd.url}')` : ''));
388
537
  }
389
- this.subgraphs.push(toAdd);
390
- this.subgraphs.sort();
538
+ this.subgraphs.add(toAdd.name, toAdd);
391
539
  return toAdd;
392
540
  }
393
541
  get(name) {
394
- const idx = this.idx(name);
395
- return idx >= 0 ? this.subgraphs[idx] : undefined;
396
- }
397
- getByIdx(idx) {
398
- return this.subgraphs[idx];
542
+ return this.subgraphs.get(name);
399
543
  }
400
544
  size() {
401
- return this.subgraphs.length;
545
+ return this.subgraphs.size;
402
546
  }
403
547
  names() {
404
- return this.subgraphs.map(s => s.name);
548
+ return this.subgraphs.keys();
405
549
  }
406
550
  values() {
407
- return this.subgraphs;
408
- }
409
- [Symbol.iterator]() {
410
551
  return this.subgraphs.values();
411
552
  }
553
+ *[Symbol.iterator]() {
554
+ for (const subgraph of this.subgraphs) {
555
+ yield subgraph;
556
+ }
557
+ }
412
558
  toString() {
413
- return '[' + this.subgraphs.map(s => s.name).join(', ') + ']';
559
+ return '[' + this.subgraphs.keys().join(', ') + ']';
414
560
  }
415
561
  }
416
562
  exports.Subgraphs = Subgraphs;
@@ -435,8 +581,29 @@ function addSubgraphToASTNode(node, subgraph) {
435
581
  };
436
582
  }
437
583
  exports.addSubgraphToASTNode = addSubgraphToASTNode;
438
- function addSubgraphToError(e, subgraphName) {
439
- const updatedCauses = (0, definitions_1.errorCauses)(e).map(cause => new graphql_1.GraphQLError(`[${subgraphName}] ${cause.message}`, cause.nodes ? cause.nodes.map(node => addSubgraphToASTNode(node, subgraphName)) : undefined, cause.source, cause.positions, cause.path, cause.originalError, cause.extensions));
584
+ function addSubgraphToError(e, subgraphName, errorCode) {
585
+ const updatedCauses = (0, definitions_1.errorCauses)(e).map(cause => {
586
+ var _a;
587
+ const message = `[${subgraphName}] ${cause.message}`;
588
+ const nodes = cause.nodes
589
+ ? cause.nodes.map(node => addSubgraphToASTNode(node, subgraphName))
590
+ : undefined;
591
+ const code = (_a = (0, error_1.errorCodeDef)(cause)) !== null && _a !== void 0 ? _a : errorCode;
592
+ if (code) {
593
+ return code.err({
594
+ message,
595
+ nodes,
596
+ source: cause.source,
597
+ positions: cause.positions,
598
+ path: cause.path,
599
+ originalError: cause.originalError,
600
+ extensions: cause.extensions,
601
+ });
602
+ }
603
+ else {
604
+ return new graphql_1.GraphQLError(message, nodes, cause.source, cause.positions, cause.path, cause.originalError, cause.extensions);
605
+ }
606
+ });
440
607
  return (0, definitions_1.ErrGraphQLValidationFailed)(updatedCauses);
441
608
  }
442
609
  exports.addSubgraphToError = addSubgraphToError;
@@ -475,6 +642,19 @@ class ExternalTester {
475
642
  isFakeExternal(field) {
476
643
  return this.fakeExternalFields.has(field.coordinate);
477
644
  }
645
+ selectsAnyExternalField(selectionSet) {
646
+ for (const selection of selectionSet.selections()) {
647
+ if (selection.kind === 'FieldSelection' && this.isExternal(selection.element().definition)) {
648
+ return true;
649
+ }
650
+ if (selection.selectionSet) {
651
+ if (this.selectsAnyExternalField(selection.selectionSet)) {
652
+ return true;
653
+ }
654
+ }
655
+ }
656
+ return false;
657
+ }
478
658
  }
479
659
  exports.ExternalTester = ExternalTester;
480
660
  //# sourceMappingURL=federation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"federation.js","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../src/federation.ts"],"names":[],"mappings":";;;AAAA,+CA2BuB;AACvB,mCAAoE;AAEpE,sEAAsE;AACtE,qCAWiB;AACjB,mCAAwE;AACxE,gGAA6F;AAC7F,+CAAgE;AAChE,6CAA+D;AAC/D,uCAAuD;AACvD,mCAKiB;AAEJ,QAAA,cAAc,GAAG,SAAS,CAAC;AAC3B,QAAA,eAAe,GAAG,UAAU,CAAC;AAC7B,QAAA,WAAW,GAAG,MAAM,CAAC;AACrB,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAE/B,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,oBAAoB,GAAG,SAAS,CAAC;AACjC,QAAA,qBAAqB,GAAG,UAAU,CAAC;AACnC,QAAA,qBAAqB,GAAG,UAAU,CAAC;AACnC,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAGnC,QAAA,gBAAgB,GAAG,KAAK,CAAC;AAEzB,QAAA,gBAAgB,GAAG,UAAU,CAAC;AAC9B,QAAA,iBAAiB,GAAG,WAAW,CAAC;AAE7C,MAAM,OAAO,GAAG,sBAAY,CAAC,MAAM,EAAE,CAAC;AAMzB,QAAA,iCAAiC,GAAG,GAAG,CAAC;AAErD,MAAM,gBAAgB,GAAG;IACvB,sBAAc;IACd,uBAAe;IACf,mBAAW;IACX,wBAAgB;CACjB,CAAC;AACF,MAAM,qBAAqB,GAAG;IAC5B,wBAAgB;IAChB,4BAAoB;IACpB,6BAAqB;IACrB,6BAAqB;IACrB,6BAAqB;IACrB,wBAAgB;CACjB,CAAC;AACF,MAAM,sBAAsB,GAAG;IAC7B,wBAAgB;IAChB,yBAAiB;CAClB,CAAC;AAEF,MAAM,mCAAmC,GAAG;IAG1C,oCAA0B;IAI1B,4BAAkB;CACnB,CAAC;AAEF,MAAM,oCAAoC,GAAG;IAC3C,+DAA8B;CAC/B,CAAC;AAEF,MAAM,2BAA2B,GAAG,kCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mCAAmC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;AAGvK,SAAS,0BAA0B,CACjC,aAAqB,EACrB,YAA0B,EAC1B,oBAA6B,EAC7B,cAA8B,EAC9B,iCAA2C,EAC3C,4BAAqC;IAErC,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,EAAE;QACjD,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACvC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;YAC7C,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAGpD,IAAI,UAAU,EAAE;gBACd,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aAC1D;YACD,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE;gBACxB,MAAM,wBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC;oBAC5D,OAAO,EAAE,SAAS,KAAK,CAAC,UAAU,0FAA0F,aAAa,GAAG;oBAC5I,KAAK,EAAE,KAAK,CAAC,SAAS;iBACvB,CAAC,CAAC;aACJ;YAED,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,4BAA4B,IAAI,CAAC,oBAAoB,CAAC;YACzG,IAAI,CAAC,UAAU,IAAI,cAAc,EAAE;gBACjC,MAAM,SAAS,GAAG,wBAAgB,CAAC,iCAAiC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACxF,IAAI,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBACxC,MAAM,SAAS,CAAC,GAAG,CAAC;wBAClB,OAAO,EAAE,UAAU,KAAK,CAAC,UAAU,8BAA8B,aAAa,+DAA+D;8BACzI,wBAAwB,6BAAqB,cAAc,wBAAgB,0HAA0H;wBACzM,KAAK,EAAE,KAAK,CAAC,SAAS;qBACvB,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,SAAS,CAAC,GAAG,CAAC;wBAClB,OAAO,EAAE,UAAU,KAAK,CAAC,UAAU,8BAA8B,aAAa,qEAAqE,6BAAqB,GAAG;wBAC3K,KAAK,EAAE,KAAK,CAAC,SAAS;qBACvB,CAAC,CAAC;iBACJ;aACF;YACD,IAAI,SAAS,CAAC,YAAY,EAAE;gBAI1B,IAAI,uBAAuB,GAAG,oBAAoB,IAAI,UAAU,CAAC;gBACjE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,uBAAuB,IAAI,IAAA,6BAAe,EAAC,UAAU,CAAC,EAAE;oBAC3D,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,oBAAoB,EAAE,EAAE;wBACtD,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC/C,IAAI,aAAa,IAAI,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;4BAC7D,uBAAuB,GAAG,IAAI,CAAC;4BAC/B,MAAM;yBACP;qBACF;iBACF;gBACD,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE,uBAAuB,EAAE,cAAc,EAAE,iCAAiC,EAAE,4BAA4B,CAAC,CAAC;aAC7K;SACF;aAAM;YACL,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,iCAAiC,EAAE,4BAA4B,CAAC,CAAC;SAC1K;KACF;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAmB,EACnB,SAAwC,EACxC,cAA8B,EAC9B,iCAA2C,EAC3C,4BAAqC,EACrC,QAAgD;;IAEhD,IAAI;QAEF,MAAM,YAAY,GAAG,QAAQ;YAC3B,CAAC,CAAC,CAAC,IAAmB,EAAE,SAAiB,EAAE,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,KAAK,EAAE;oBACT,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACjB;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAE1E,IAAI;YACF,0BAA0B,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,iCAAiC,EAAE,4BAA4B,CAAC,CAAC;YACjJ,OAAO,SAAS,CAAC;SAClB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,CAAC,CAAC,YAAY,sBAAY,CAAC,EAAE;gBAChC,MAAM,CAAC,CAAC;aACT;YACD,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,SAAS,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;aACxB;YACD,MAAM,OAAO,GAAG,MAAA,IAAA,oBAAY,EAAC,CAAC,CAAC,mCAAI,wBAAgB,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjG,OAAO,OAAO,CAAC,GAAG,CAAC;gBACjB,OAAO,EAAE,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;gBACrE,KAAK;gBACL,aAAa,EAAE,CAAC;aACjB,CAAC,CAAC;SACJ;KACF;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,sBAAY,EAAE;YAC7B,OAAO,CAAC,CAAC;SACV;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAwC;IACvE,OAAO,MAAM,yBAAyB,CAAC,SAAS,CAAC,SAAS,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;AACxG,CAAC;AAKD,SAAS,8BAA8B,CAAC,SAAyB;IAC/D,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,eAAQ,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AACpF,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAwC;;IACzE,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,YAAY,6BAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAClF,OAAO,GAAG,UAAU,KAAK,MAAA,SAAS,CAAC,MAAM,0CAAE,UAAU,GAAG,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAA8C,EAC9C,mBAAwD,EACxD,cAA8B,EAC9B,cAA8B,EAC9B,iCAA2C,EAC3C,cAAuB,EACvB,4BAAqC,EACrC,QAAgD;IAEhD,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,YAAY,EAAE,EAAE;QACnD,MAAM,GAAG,GAAG,WAAW,CAAC,MAAiB,CAAC;QAC1C,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,MAAoB,CAAC;QACrE,IAAI,IAAA,6BAAe,EAAC,UAAU,CAAC,EAAE;YAC/B,MAAM,IAAI,GAAG,wBAAgB,CAAC,kCAAkC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,cAAc;oBACrB,CAAC,CAAC,cAAc,UAAU,CAAC,UAAU,kBAAkB,UAAU,CAAC,UAAU,MAAM,UAAU,CAAC,UAAU,qCAAqC;oBAC5I,CAAC,CAAC,cAAc,UAAU,CAAC,UAAU,OAAO,yBAAyB,CAAC,WAAW,CAAC,oBAAoB,UAAU,MAAM,UAAU,CAAC,UAAU,yCAAyC;gBACtL,KAAK,EAAE,IAAA,wBAAU,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAC;aAC9E,CAAC,CAAC,CAAC;SACL;QACD,MAAM,KAAK,GAAG,gBAAgB,CAC5B,IAAI,EACJ,WAAW,EACX,cAAc,EACd,iCAAiC,EACjC,4BAA4B,EAC5B,QAAQ,CAAC,CAAC;QACZ,IAAI,KAAK,EAAE;YACT,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B;KACF;AACH,CAAC;AAMD,SAAS,6BAA6B,CACpC,MAAc,EACd,cAA8B,EAC9B,sDAAgE,EAChE,cAA8B;IAE9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE;QACjC,IAAI,CAAC,IAAA,0BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,6BAAe,EAAC,IAAI,CAAC,EAAE;YACjD,SAAS;SACV;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,sDAAsD,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAC1H,SAAS;aACV;YAED,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE;gBACtC,cAAc,CAAC,IAAI,CAAC,cAAM,CAAC,eAAe,CAAC,GAAG,CAAC;oBAC7C,OAAO,EAAE,UAAU,KAAK,CAAC,UAAU,4HAA4H;0BAC7J,iGAAiG;oBACnG,KAAK,EAAE,KAAK,CAAC,SAAS;iBACvB,CAAC,CAAC,CAAC;aACL;SACF;KACF;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAkD;IACpF,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAUD,SAAS,iDAAiD,CACxD,GAAkB,EAClB,cAA8B,EAC9B,cAA8B;IAE9B,MAAM,YAAY,GAAG,GAAG,CAAC,oBAAoB,EAAE,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,sBAAsB,GAAkC,EAAE,CAAC;QACjE,MAAM,aAAa,GAAkD,IAAI,gBAAQ,EAAE,CAAC;QACpF,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW;gBAAE,SAAS;YAC3B,IAAI,WAAW,CAAC,SAAS,EAAE;gBACzB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACnC;YACD,IAAI,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,mBAAmB,CAAC,6BAAqB,CAAC,EAAE;gBACpG,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1C;YACD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAK,CAAC;YACrC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;SACvD;QACD,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE;YAC/D,MAAM,kBAAkB,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACxD,cAAc,CAAC,IAAI,CAAC,cAAM,CAAC,oCAAoC,CAAC,GAAG,CAAC;gBAClE,OAAO,EAAE,2DAA2D,KAAK,CAAC,UAAU,8CAA8C,sBAAsB,CAAC,GAAG,CAAC,oBAAoB,CAAC,gKAAgK,wBAAwB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,UAAU,IAAA,mBAAW,EAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC,GAAG;gBAC7d,KAAK;aACN,CAAC,CAAC,CAAC;SACL;KACF;AACH,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,CAAiC,EAAU,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC;AAEhG,SAAS,wBAAwB,CAAC,CAAC,IAAI,EAAE,OAAO,CAA0C;IACxF,OAAO,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,UAAU,IAAI,GAAG,CAAC;AACpH,CAAC;AAED,MAAa,kBAAmB,SAAQ,sBAAQ;IAC9C,eAAe,CAAC,MAAc;QAC5B,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAc,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,mBAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,wBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,oBAAoB,CAAC,MAAc;QACjC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAG,IAAI,yBAAW,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAE,CAAC,CAAC;QAIrE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,wBAAgB,CAAC;aACpE,YAAY,CAAC,2BAAiB,CAAC,MAAM,EAAE,2BAAiB,CAAC,SAAS,CAAC,CAAC;QAKvE,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;QAC/B,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEjD,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,4BAAoB,CAAC;aACnD,YAAY,CAAC,2BAAiB,CAAC,MAAM,EAAE,2BAAiB,CAAC,SAAS,CAAC,CAAC;QAEvE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,6BAAqB,CAAC;aACpD,YAAY,CAAC,2BAAiB,CAAC,MAAM,EAAE,2BAAiB,CAAC,gBAAgB,CAAC,CAAC;QAE9E,KAAK,MAAM,IAAI,IAAI,CAAC,6BAAqB,EAAE,6BAAqB,CAAC,EAAE;YACjE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;iBACnC,YAAY,CAAC,2BAAiB,CAAC,gBAAgB,CAAC;iBAChD,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SACxC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,sBAAY,CAAC,CAAC;QACxF,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,yBAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAGhC,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAc,CAAC;QAG1D,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAIzB,IAAI,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;gBACnC,UAAU,CAAC,MAAM,EAAE,CAAC;aACrB;YACD,UAAU,GAAG,MAAM,CAAC,YAAY,CAAY,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAc,CAAE,CAAA;SACrG;QACD,UAAU,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,KAAK,CAAa,YAAY,CAAC,EAAE;YAC/D,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;gBAC5B,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aAChC;SACF;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE;YAChB,UAAU,CAAC,MAAM,EAAE,CAAC;SACrB;QAGD,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,wBAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACvF,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAiB,CAAC,CAAC;QACvD,IAAI,WAAW,EAAE;YACf,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAW,CAAC,CAAC;YACzC,IAAA,cAAM,EAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC;YACxD,MAAM,eAAe,GAAG,IAAI,yBAAW,CAAC,IAAI,sBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,yBAAiB,EAAE,eAAe,CAAC;qBAChE,WAAW,CAAC,iBAAiB,EAAE,IAAI,yBAAW,CAAC,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5F;iBAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;gBAI5B,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC;aAC/B;SACF;aAAM,IAAI,WAAW,EAAE;YACtB,WAAW,CAAC,MAAM,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAgB,CAAC,EAAE;YACtC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,wBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAe,CAAC,CAAC;SAC/F;IACH,CAAC;IAED,YAAY,CAAC,MAAc;;QAEzB,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,wBAAgB,CAAC,CAAC,CAAC;QAI9D,KAAK,MAAM,CAAC,IAAI,gCAAkB,EAAE;YAClC,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;YACnD,MAAM,WAAW,GAAG,IAAA,6BAAe,EAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;gBAGrC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,IAAI,QAAQ,EAAE;oBACZ,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;wBACrD,OAAO,EAAE,gCAAgC,WAAW,8BAA8B,CAAC,gBAAgB,IAAI,CAAC,IAAI,iBAAiB;8BACzH,uCAAuC;8BACvC,qGAAqG;wBACzG,KAAK,EAAE,IAAA,wBAAU,EAAC,IAAI,EAAE,QAAQ,CAAC;qBAClC,CAAC,CAAC,CAAC;iBACL;gBACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;aAC1B;SACF;QAED,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,wCAAwC,GAAa,EAAE,CAAC;QAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,mBAAmB,CACjB,YAAY,EACZ,IAAI,CAAC,EAAE,CAAC,IAAI,EACZ,MAAM,EACN,cAAc,EACd,wCAAwC,EACxC,IAAI,EACJ,IAAI,EACJ,KAAK,CAAC,EAAE;YACN,IAAI,IAAA,wBAAU,EAAC,KAAK,CAAC,IAAK,CAAC,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,IAAK,CAAC,IAAI,IAAA,6BAAe,EAAC,KAAK,CAAC,IAAK,CAAC,EAAE;gBACvF,IAAI,IAAI,GAAW,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC;gBACpC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,cAAM,CAAC,8BAA8B,CAAC,GAAG,CAAC;oBAC9C,OAAO,EAAE,UAAU,KAAK,CAAC,UAAU,UAAU,IAAI,oCAAoC;iBACtF,CAAC,CAAC;aACJ;QACH,CAAC,CACF,CAAC;QAQF,mBAAmB,CACjB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC9B,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EACrB,MAAM,EACN,cAAc,EACd,wCAAwC,EACxC,KAAK,EACL,KAAK,CACN,CAAC;QAKF,mBAAmB,CACjB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC9B,KAAK,CAAC,EAAE;YACN,IAAI,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACpC,MAAM,IAAI,sBAAY,CAAC,sDAAsD,KAAK,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACpH;YACD,MAAM,IAAI,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,IAAK,CAAC,CAAC;YACnC,IAAI,CAAC,IAAA,6BAAe,EAAC,IAAI,CAAC,EAAE;gBAC1B,MAAM,cAAM,CAAC,4BAA4B,CAAC,GAAG,CAAC;oBAC5C,OAAO,EAAE,yCAAyC,KAAK,CAAC,UAAU,sBAAsB,KAAK,CAAC,IAAI,iCAAiC;oBACnI,KAAK,EAAE,KAAK,CAAC,SAAS;iBACvB,CAAC,CAAC;aACJ;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EACD,MAAM,EACN,cAAc,EACd,wCAAwC,EACxC,KAAK,EACL,KAAK,CACN,CAAC;QAEF,6BAA6B,CAAC,MAAM,EAAE,cAAc,EAAE,wCAAwC,EAAE,MAAM,CAAC,CAAC;QAGxG,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAC7D,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;SACF;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAgB,eAAe,CAAC,EAAE;YAC9D,iDAAiD,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;SAChF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe;QACb,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,wBAAgB,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,4BAAoB,CAAC,CAAC;IAC9D,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,6BAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,6BAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,6BAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,wBAAgB,CAAC,CAAC;IAC1D,CAAC;IAED,2BAA2B,CAAC,MAAc,EAAE,QAAsB;QAChE,QAAQ,GAAG,KAAK,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE/D,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAClD,KAAK,MAAM,aAAa,IAAI,qBAAqB,EAAE;YACjD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAClD,IAAA,cAAM,EAAC,SAAS,EAAE,gFAAgF,CAAC,CAAA;YAInG,IAAI,SAAS,CAAC,SAAS,EAAE;gBACvB,WAAW,CAAC,IAAI,CAAC,IAAA,eAAK,EAAC,IAAA,gCAAwB,EAAC,SAAS,EAAE,2BAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;aAClG;SACF;QAED,OAAO;YACL,IAAI,EAAE,cAAI,CAAC,QAAQ;YACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,WAAW;SACZ,CAAC;IACJ,CAAC;CACF;AA5PD,gDA4PC;AAEY,QAAA,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAE3D,SAAgB,0BAA0B,CAAC,MAAc;IACvD,OAAO,MAAM,CAAC,QAAQ,YAAY,kBAAkB,CAAC;AACvD,CAAC;AAFD,gEAEC;AAED,SAAgB,gBAAgB,CAAC,IAAe;IAC9C,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAFD,4CAEC;AAED,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAFD,oDAEC;AAED,SAAgB,iBAAiB,CAAC,KAAqC;;IACrE,IAAI,KAAK,CAAC,MAAM,MAAK,MAAA,KAAK,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAA,EAAE;QACxE,OAAO,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AALD,8CAKC;AAED,SAAgB,qBAAqB,CAAC,SAA0C;IAC9E,OAAO,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAFD,sDAEC;AAED,SAAgB,YAAY,CAAC,IAAe;IAC1C,OAAO,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,mBAAmB,CAAC,wBAAgB,CAAC,CAAC;AACjF,CAAC;AAFD,oCAEC;AAED,SAAgB,aAAa,CAAC,IAAY,EAAE,MAA6B;IACvE,IAAI;QACF,OAAO,OAAO,MAAM,KAAK,QAAQ;YAC/B,CAAC,CAAC,IAAA,yBAAW,EAAC,IAAI,gBAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,0BAAkB,CAAC;YAC3D,CAAC,CAAC,IAAA,gCAAkB,EAAC,MAAM,EAAE,0BAAkB,CAAC,CAAC;KACpD;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,sBAAY,EAAE;YAI7B,MAAM,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,cAAM,CAAC,eAAe,CAAC,CAAC;SAC3D;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAfD,sCAeC;AAED,SAAgB,qBAAqB,CACnC,UAAyB,EACzB,SAA+E,EAC/E,gBAA8F,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;IAE9H,IAAI;QACF,MAAM,YAAY,GAAG,IAAA,8BAAiB,EAAC,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,IAAI,iCAAmB,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC1I,YAAY,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC;KACrB;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,CAAC,YAAY,sBAAY,CAAC,EAAE;YAChC,MAAM,CAAC,CAAC;SACT;QAED,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,KAAK,EAAE;YACX,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAO3B,IAAI,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;YACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACpC;YACD,IAAI,SAAS,CAAC,IAAI,KAAK,wBAAgB,EAAE;gBACvC,GAAG,GAAG,GAAG,GAAG,gKAAgK,CAAC;aAC9K;iBAAM;gBACL,GAAG,GAAG,GAAG,GAAG,qGAAqG,CAAC;aACnH;SACF;QAED,MAAM,OAAO,GAAG,MAAA,IAAA,oBAAY,EAAC,CAAC,CAAC,mCAAI,wBAAgB,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,OAAO,EAAE,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE;YACxD,KAAK;YACL,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;KACJ;AACH,CAAC;AA3CD,sDA2CC;AAED,SAAS,qBAAqB,CAAC,SAA+E;;IAC5G,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;IAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;IAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,wBAAgB,CAAC,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;YAC3E,OAAO,EAAE,+BAA+B,SAAS,CAAC,UAAW,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC,IAAI,sBAAsB;YAC5G,KAAK;SACN,CAAC,CAAC;KACJ;IAID,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;QACvC,KAAK,MAAM,OAAO,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,EAAE,EAAE;YAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACnC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;oBACxC,MAAM,wBAAgB,CAAC,6BAA6B,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;wBAC3E,OAAO,EAAE,+BAA+B,SAAS,CAAC,UAAW,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC,IAAI,sBAAsB;wBAC5G,KAAK;qBACN,CAAC,CAAC;iBACJ;gBACD,MAAM;aACP;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,SAAgB,wBAAwB,CAAC,WAAgC;;IACvE,IAAI,MAAM,GAAmB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;QACjC,IAAI;YACF,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAA,OAAO,CAAC,GAAG,mCAAI,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;SAClE;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,MAAM,EAAE;gBACV,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aAChC;iBAAM;gBACL,MAAM,CAAC,CAAC;aACT;SACF;KACF;IACD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAhBD,4DAgBC;AAKD,MAAa,SAAS;IAAtB;QACmB,cAAS,GAAG,IAAI,kBAAU,EAAoB,CAAC;IA6ClE,CAAC;IAzCC,GAAG,CAAC,cAAiC,EAAE,GAAY,EAAE,MAAuC;QAC1F,MAAM,KAAK,GAAa,OAAO,cAAc,KAAM,QAAQ;YACzD,CAAC,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,GAAI,EAAE,MAAM,YAAY,oBAAM,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,MAAO,CAAC,CAAC;YACjH,CAAC,CAAC,cAAc,CAAC;QAEnB,IAAI,KAAK,CAAC,IAAI,KAAK,yCAAiC,EAAE;YACpD,MAAM,cAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,yCAAiC,wCAAwC,EAAE,CAAC,CAAC;SAChJ;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,IAAI,iBAAiB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACpH;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,MAAM,QAAQ,CAAC;SAChB;IACH,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IACrD,CAAC;CACF;AA9CD,8BA8CC;AAED,MAAa,QAAQ;IACnB,YACW,IAAY,EACZ,GAAW,EACX,MAAc,EACvB,iBAA0B,IAAI;QAHrB,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAQ;QAGvB,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,QAAQ,EAAE,CAAC;SACnB;IACH,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,CAAA;IACrC,CAAC;CACF;AAfD,4BAeC;AAID,SAAgB,oBAAoB,CAAC,IAAa,EAAE,QAAgB;IAClE,OAAO;QACL,GAAG,IAAI;QACP,QAAQ;KACT,CAAC;AACJ,CAAC;AALD,oDAKC;AAED,SAAgB,kBAAkB,CAAC,CAAe,EAAE,YAAoB,EAAE,SAA+B;IACvG,MAAM,aAAa,GAAG,IAAA,yBAAW,EAAC,CAAC,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;;QAChD,MAAM,OAAO,GAAG,IAAI,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;YACvB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACnE,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,GAAG,MAAA,IAAA,oBAAY,EAAC,KAAK,CAAC,mCAAI,SAAS,CAAC;QAC9C,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC,GAAG,CAAC;gBACd,OAAO;gBACP,KAAK;gBACL,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,IAAI,sBAAY,CACrB,OAAO,EACP,KAAK,EACL,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,UAAU,CACjB,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,wCAA0B,EAAC,aAAa,CAAC,CAAC;AACnD,CAAC;AAhCD,gDAgCC;AAED,MAAa,cAAc;IAGzB,YAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFlB,uBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAGtD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,MAAM,YAAY,GAAG,0BAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QACD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAuB,CAAC;YAC3C,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,mBAAmB,CAAC,4BAAoB,CAAC,CAAC,EAAE;gBAC5E,SAAS;aACV;YACD,IAAI;gBACF,qBAAqB,CAAC,MAAM,EAAE,GAAoC,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE;oBAC5F,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC1C,IAAI,KAAK,IAAI,KAAK,CAAC,mBAAmB,CAAC,6BAAqB,CAAC,EAAE;wBAC7D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;qBAC/C;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;aACJ;YAAC,OAAO,CAAC,EAAE;aAGX;SACF;IACH,CAAC;IAED,UAAU,CAAC,KAAkD;QAC3D,OAAO,KAAK,CAAC,mBAAmB,CAAC,6BAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACzF,CAAC;IAED,cAAc,CAAC,KAAkD;QAC/D,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,uBAAuB,CAAC,YAA0B;QAChD,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,EAAE;YACjD,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;gBAC1F,OAAO,IAAI,CAAC;aACb;YACD,IAAI,SAAS,CAAC,YAAY,EAAE;gBAC1B,IAAI,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;oBACxD,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AArDD,wCAqDC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=genErrorCodeDoc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genErrorCodeDoc.d.ts","sourceRoot":"","sources":["../src/genErrorCodeDoc.ts"],"names":[],"mappings":""}