@apollo/federation-internals 2.0.0-preview.8 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/buildSchema.js +1 -1
  3. package/dist/buildSchema.js.map +1 -1
  4. package/dist/coreSpec.d.ts +13 -6
  5. package/dist/coreSpec.d.ts.map +1 -1
  6. package/dist/coreSpec.js +105 -38
  7. package/dist/coreSpec.js.map +1 -1
  8. package/dist/definitions.d.ts +25 -11
  9. package/dist/definitions.d.ts.map +1 -1
  10. package/dist/definitions.js +115 -63
  11. package/dist/definitions.js.map +1 -1
  12. package/dist/directiveAndTypeSpecification.d.ts +11 -1
  13. package/dist/directiveAndTypeSpecification.d.ts.map +1 -1
  14. package/dist/directiveAndTypeSpecification.js +77 -20
  15. package/dist/directiveAndTypeSpecification.js.map +1 -1
  16. package/dist/error.d.ts +13 -0
  17. package/dist/error.d.ts.map +1 -1
  18. package/dist/error.js +28 -2
  19. package/dist/error.js.map +1 -1
  20. package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
  21. package/dist/extractSubgraphsFromSupergraph.js +7 -1
  22. package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
  23. package/dist/federation.d.ts +19 -6
  24. package/dist/federation.d.ts.map +1 -1
  25. package/dist/federation.js +107 -80
  26. package/dist/federation.js.map +1 -1
  27. package/dist/federationSpec.d.ts +3 -3
  28. package/dist/federationSpec.d.ts.map +1 -1
  29. package/dist/federationSpec.js +34 -26
  30. package/dist/federationSpec.js.map +1 -1
  31. package/dist/inaccessibleSpec.d.ts +11 -5
  32. package/dist/inaccessibleSpec.d.ts.map +1 -1
  33. package/dist/inaccessibleSpec.js +631 -29
  34. package/dist/inaccessibleSpec.js.map +1 -1
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +1 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/introspection.d.ts.map +1 -1
  40. package/dist/introspection.js +8 -3
  41. package/dist/introspection.js.map +1 -1
  42. package/dist/joinSpec.d.ts +6 -2
  43. package/dist/joinSpec.d.ts.map +1 -1
  44. package/dist/joinSpec.js +6 -0
  45. package/dist/joinSpec.js.map +1 -1
  46. package/dist/operations.d.ts +1 -0
  47. package/dist/operations.d.ts.map +1 -1
  48. package/dist/operations.js +16 -1
  49. package/dist/operations.js.map +1 -1
  50. package/dist/{sharing.d.ts → precompute.d.ts} +1 -1
  51. package/dist/precompute.d.ts.map +1 -0
  52. package/dist/{sharing.js → precompute.js} +3 -3
  53. package/dist/precompute.js.map +1 -0
  54. package/dist/schemaUpgrader.d.ts.map +1 -1
  55. package/dist/schemaUpgrader.js +17 -7
  56. package/dist/schemaUpgrader.js.map +1 -1
  57. package/dist/suggestions.d.ts +1 -1
  58. package/dist/suggestions.d.ts.map +1 -1
  59. package/dist/suggestions.js.map +1 -1
  60. package/dist/supergraphs.d.ts.map +1 -1
  61. package/dist/supergraphs.js +2 -0
  62. package/dist/supergraphs.js.map +1 -1
  63. package/dist/tagSpec.d.ts +6 -2
  64. package/dist/tagSpec.d.ts.map +1 -1
  65. package/dist/tagSpec.js +30 -14
  66. package/dist/tagSpec.js.map +1 -1
  67. package/dist/validate.js +13 -7
  68. package/dist/validate.js.map +1 -1
  69. package/dist/values.d.ts +2 -2
  70. package/dist/values.d.ts.map +1 -1
  71. package/dist/values.js +13 -11
  72. package/dist/values.js.map +1 -1
  73. package/package.json +4 -4
  74. package/src/__tests__/coreSpec.test.ts +112 -0
  75. package/src/__tests__/removeInaccessibleElements.test.ts +2229 -137
  76. package/src/__tests__/subgraphValidation.test.ts +357 -1
  77. package/src/__tests__/values.test.ts +315 -3
  78. package/src/buildSchema.ts +1 -1
  79. package/src/coreSpec.ts +161 -48
  80. package/src/definitions.ts +223 -90
  81. package/src/directiveAndTypeSpecification.ts +98 -21
  82. package/src/error.ts +80 -2
  83. package/src/extractSubgraphsFromSupergraph.ts +7 -1
  84. package/src/federation.ts +124 -97
  85. package/src/federationSpec.ts +37 -30
  86. package/src/inaccessibleSpec.ts +983 -49
  87. package/src/index.ts +1 -0
  88. package/src/introspection.ts +8 -3
  89. package/src/joinSpec.ts +19 -4
  90. package/src/operations.ts +15 -0
  91. package/src/{sharing.ts → precompute.ts} +3 -6
  92. package/src/schemaUpgrader.ts +29 -13
  93. package/src/suggestions.ts +1 -1
  94. package/src/supergraphs.ts +2 -0
  95. package/src/tagSpec.ts +42 -16
  96. package/src/validate.ts +20 -9
  97. package/src/values.ts +39 -12
  98. package/tsconfig.test.tsbuildinfo +1 -1
  99. package/tsconfig.tsbuildinfo +1 -1
  100. package/dist/sharing.d.ts.map +0 -1
  101. package/dist/sharing.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import { Schema } from "./definitions";
2
2
  import { FeatureDefinition, FeatureDefinitions, FeatureVersion } from "./coreSpec";
3
+ import { GraphQLError } from "graphql";
3
4
  export declare const federationIdentity = "https://specs.apollo.dev/federation";
4
5
  export declare const fieldSetTypeSpec: import("./directiveAndTypeSpecification").TypeSpecification;
5
6
  export declare const keyDirectiveSpec: import("./directiveAndTypeSpecification").DirectiveSpecification;
@@ -8,15 +9,14 @@ export declare const externalDirectiveSpec: import("./directiveAndTypeSpecificat
8
9
  export declare const requiresDirectiveSpec: import("./directiveAndTypeSpecification").DirectiveSpecification;
9
10
  export declare const providesDirectiveSpec: import("./directiveAndTypeSpecification").DirectiveSpecification;
10
11
  export declare const shareableDirectiveSpec: import("./directiveAndTypeSpecification").DirectiveSpecification;
11
- export declare const tagDirectiveSpec: import("./directiveAndTypeSpecification").DirectiveSpecification;
12
- export declare const inaccessibleDirectiveSpec: import("./directiveAndTypeSpecification").DirectiveSpecification;
12
+ export declare const overrideDirectiveSpec: import("./directiveAndTypeSpecification").DirectiveSpecification;
13
13
  export declare const FEDERATION2_ONLY_SPEC_DIRECTIVES: import("./directiveAndTypeSpecification").DirectiveSpecification[];
14
14
  export declare const FEDERATION2_SPEC_DIRECTIVES: import("./directiveAndTypeSpecification").DirectiveSpecification[];
15
15
  export declare const ALL_FEDERATION_DIRECTIVES_DEFAULT_NAMES: string[];
16
16
  export declare const FEDERATION_SPEC_TYPES: import("./directiveAndTypeSpecification").TypeSpecification[];
17
17
  export declare class FederationSpecDefinition extends FeatureDefinition {
18
18
  constructor(version: FeatureVersion);
19
- addElementsToSchema(schema: Schema): void;
19
+ addElementsToSchema(schema: Schema): GraphQLError[];
20
20
  allElementNames(): string[];
21
21
  }
22
22
  export declare const FEDERATION_VERSIONS: FeatureDefinitions<FederationSpecDefinition>;
@@ -1 +1 @@
1
- {"version":3,"file":"federationSpec.d.ts","sourceRoot":"","sources":["../src/federationSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAa/F,eAAO,MAAM,kBAAkB,wCAAwC,CAAC;AAExE,eAAO,MAAM,gBAAgB,6DAAsD,CAAC;AAEpF,eAAO,MAAM,gBAAgB,kEAQ3B,CAAC;AAEH,eAAO,MAAM,oBAAoB,kEAG/B,CAAC;AAEH,eAAO,MAAM,qBAAqB,kEAGhC,CAAC;AAEH,eAAO,MAAM,qBAAqB,kEAMhC,CAAC;AAEH,eAAO,MAAM,qBAAqB,kEAMhC,CAAC;AAEH,eAAO,MAAM,sBAAsB,kEAGjC,CAAC;AAEH,eAAO,MAAM,gBAAgB,kEAO3B,CAAC;AAEH,eAAO,MAAM,yBAAyB,kEAGpC,CAAC;AAYH,eAAO,MAAM,gCAAgC,oEAG5C,CAAC;AAGF,eAAO,MAAM,2BAA2B,oEAQvC,CAAC;AAKF,eAAO,MAAM,uCAAuC,UAAuD,CAAC;AAE5G,eAAO,MAAM,qBAAqB,+DAEjC,CAAA;AAED,qBAAa,wBAAyB,SAAQ,iBAAiB;gBACjD,OAAO,EAAE,cAAc;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAWlC,eAAe,IAAI,MAAM,EAAE;CAK5B;AAED,eAAO,MAAM,mBAAmB,8CAC8B,CAAC"}
1
+ {"version":3,"file":"federationSpec.d.ts","sourceRoot":"","sources":["../src/federationSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAM/F,OAAO,EAAqB,YAAY,EAAE,MAAM,SAAS,CAAC;AAO1D,eAAO,MAAM,kBAAkB,wCAAwC,CAAC;AAExE,eAAO,MAAM,gBAAgB,6DAAsD,CAAC;AAEpF,eAAO,MAAM,gBAAgB,kEAW3B,CAAC;AAEH,eAAO,MAAM,oBAAoB,kEAG/B,CAAC;AAEH,eAAO,MAAM,qBAAqB,kEAOhC,CAAC;AAEH,eAAO,MAAM,qBAAqB,kEAOhC,CAAC;AAEH,eAAO,MAAM,qBAAqB,kEAOhC,CAAC;AAEH,eAAO,MAAM,sBAAsB,kEAGjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,kEAOhC,CAAC;AAYH,eAAO,MAAM,gCAAgC,oEAI5C,CAAC;AAGF,eAAO,MAAM,2BAA2B,oEAQvC,CAAC;AAKF,eAAO,MAAM,uCAAuC,UAAuD,CAAC;AAE5G,eAAO,MAAM,qBAAqB,+DAEjC,CAAA;AAED,qBAAa,wBAAyB,SAAQ,iBAAiB;gBACjD,OAAO,EAAE,cAAc;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAanD,eAAe,IAAI,MAAM,EAAE;CAK5B;AAED,eAAO,MAAM,mBAAmB,8CAC8B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FEDERATION_VERSIONS = exports.FederationSpecDefinition = exports.FEDERATION_SPEC_TYPES = exports.ALL_FEDERATION_DIRECTIVES_DEFAULT_NAMES = exports.FEDERATION2_SPEC_DIRECTIVES = exports.FEDERATION2_ONLY_SPEC_DIRECTIVES = exports.inaccessibleDirectiveSpec = exports.tagDirectiveSpec = exports.shareableDirectiveSpec = exports.providesDirectiveSpec = exports.requiresDirectiveSpec = exports.externalDirectiveSpec = exports.extendsDirectiveSpec = exports.keyDirectiveSpec = exports.fieldSetTypeSpec = exports.federationIdentity = void 0;
3
+ exports.FEDERATION_VERSIONS = exports.FederationSpecDefinition = exports.FEDERATION_SPEC_TYPES = exports.ALL_FEDERATION_DIRECTIVES_DEFAULT_NAMES = exports.FEDERATION2_SPEC_DIRECTIVES = exports.FEDERATION2_ONLY_SPEC_DIRECTIVES = exports.overrideDirectiveSpec = exports.shareableDirectiveSpec = exports.providesDirectiveSpec = exports.requiresDirectiveSpec = exports.externalDirectiveSpec = exports.extendsDirectiveSpec = exports.keyDirectiveSpec = exports.fieldSetTypeSpec = exports.federationIdentity = void 0;
4
4
  const definitions_1 = require("./definitions");
5
5
  const coreSpec_1 = require("./coreSpec");
6
6
  const directiveAndTypeSpecification_1 = require("./directiveAndTypeSpecification");
@@ -16,10 +16,13 @@ exports.keyDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSp
16
16
  name: 'key',
17
17
  locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE],
18
18
  repeatable: true,
19
- argumentFct: (schema) => [
20
- fieldsArgument(schema),
21
- { name: 'resolvable', type: schema.booleanType(), defaultValue: true },
22
- ]
19
+ argumentFct: (schema) => ({
20
+ args: [
21
+ fieldsArgument(schema),
22
+ { name: 'resolvable', type: schema.booleanType(), defaultValue: true },
23
+ ],
24
+ errors: [],
25
+ }),
23
26
  });
24
27
  exports.extendsDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
25
28
  name: 'extends',
@@ -28,36 +31,38 @@ exports.extendsDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirecti
28
31
  exports.externalDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
29
32
  name: 'external',
30
33
  locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.FIELD_DEFINITION],
34
+ argumentFct: (schema) => ({
35
+ args: [{ name: 'reason', type: schema.stringType() }],
36
+ errors: [],
37
+ }),
31
38
  });
32
39
  exports.requiresDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
33
40
  name: 'requires',
34
41
  locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
35
- argumentFct: (schema) => {
36
- return [fieldsArgument(schema)];
37
- }
42
+ argumentFct: (schema) => ({
43
+ args: [fieldsArgument(schema)],
44
+ errors: [],
45
+ }),
38
46
  });
39
47
  exports.providesDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
40
48
  name: 'provides',
41
49
  locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
42
- argumentFct: (schema) => {
43
- return [fieldsArgument(schema)];
44
- }
50
+ argumentFct: (schema) => ({
51
+ args: [fieldsArgument(schema)],
52
+ errors: [],
53
+ }),
45
54
  });
46
55
  exports.shareableDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
47
56
  name: 'shareable',
48
57
  locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.FIELD_DEFINITION],
49
58
  });
50
- exports.tagDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
51
- name: 'tag',
52
- locations: tagSpec_1.tagLocations,
53
- repeatable: true,
54
- argumentFct: (schema) => {
55
- return [{ name: 'name', type: new definitions_1.NonNullType(schema.stringType()) }];
56
- }
57
- });
58
- exports.inaccessibleDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
59
- name: 'inaccessible',
60
- locations: inaccessibleSpec_1.inaccessibleLocations,
59
+ exports.overrideDirectiveSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
60
+ name: 'override',
61
+ locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
62
+ argumentFct: (schema) => ({
63
+ args: [{ name: 'from', type: new definitions_1.NonNullType(schema.stringType()) }],
64
+ errors: [],
65
+ }),
61
66
  });
62
67
  function fieldsArgument(schema) {
63
68
  return { name: 'fields', type: fieldSetType(schema) };
@@ -69,14 +74,15 @@ function fieldSetType(schema) {
69
74
  }
70
75
  exports.FEDERATION2_ONLY_SPEC_DIRECTIVES = [
71
76
  exports.shareableDirectiveSpec,
72
- exports.inaccessibleDirectiveSpec,
77
+ inaccessibleSpec_1.INACCESSIBLE_VERSIONS.latest().inaccessibleDirectiveSpec,
78
+ exports.overrideDirectiveSpec,
73
79
  ];
74
80
  exports.FEDERATION2_SPEC_DIRECTIVES = [
75
81
  exports.keyDirectiveSpec,
76
82
  exports.requiresDirectiveSpec,
77
83
  exports.providesDirectiveSpec,
78
84
  exports.externalDirectiveSpec,
79
- exports.tagDirectiveSpec,
85
+ tagSpec_1.TAG_VERSIONS.latest().tagDirectiveSpec,
80
86
  exports.extendsDirectiveSpec,
81
87
  ...exports.FEDERATION2_ONLY_SPEC_DIRECTIVES,
82
88
  ];
@@ -91,10 +97,12 @@ class FederationSpecDefinition extends coreSpec_1.FeatureDefinition {
91
97
  addElementsToSchema(schema) {
92
98
  const feature = this.featureInSchema(schema);
93
99
  (0, utils_1.assert)(feature, 'The federation specification should have been added to the schema before this is called');
94
- exports.fieldSetTypeSpec.checkOrAdd(schema, feature.typeNameInSchema(exports.fieldSetTypeSpec.name));
100
+ let errors = [];
101
+ errors = errors.concat(this.addTypeSpec(schema, exports.fieldSetTypeSpec));
95
102
  for (const directive of exports.FEDERATION2_SPEC_DIRECTIVES) {
96
- directive.checkOrAdd(schema, feature.directiveNameInSchema(directive.name));
103
+ errors = errors.concat(this.addDirectiveSpec(schema, directive));
97
104
  }
105
+ return errors;
98
106
  }
99
107
  allElementNames() {
100
108
  return exports.FEDERATION2_SPEC_DIRECTIVES.map((spec) => `@${spec.name}`).concat([
@@ -1 +1 @@
1
- {"version":3,"file":"federationSpec.js","sourceRoot":"","sources":["../src/federationSpec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federationSpec.js","sourceRoot":"","sources":["../src/federationSpec.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,19 @@
1
- import { FeatureDefinition, FeatureDefinitions, FeatureVersion } from "./coreSpec";
1
+ import { CorePurpose, FeatureDefinition, FeatureDefinitions, FeatureVersion } from "./coreSpec";
2
2
  import { DirectiveDefinition, Schema } from "./definitions";
3
- import { DirectiveLocation } from "graphql";
3
+ import { GraphQLError, DirectiveLocation } from "graphql";
4
+ import { DirectiveSpecification } from "./directiveAndTypeSpecification";
4
5
  export declare const inaccessibleIdentity = "https://specs.apollo.dev/inaccessible";
5
- export declare const inaccessibleLocations: DirectiveLocation[];
6
6
  export declare class InaccessibleSpecDefinition extends FeatureDefinition {
7
+ readonly inaccessibleLocations: DirectiveLocation[];
8
+ readonly inaccessibleDirectiveSpec: DirectiveSpecification;
9
+ private readonly printedInaccessibleDefinition;
7
10
  constructor(version: FeatureVersion);
8
- addElementsToSchema(schema: Schema): void;
9
- inaccessibleDirective(schema: Schema): DirectiveDefinition<Record<string, never>>;
11
+ isV01(): boolean;
12
+ addElementsToSchema(schema: Schema): GraphQLError[];
13
+ inaccessibleDirective(schema: Schema): DirectiveDefinition<Record<string, never>> | undefined;
14
+ checkCompatibleDirective(definition: DirectiveDefinition): GraphQLError | undefined;
10
15
  allElementNames(): string[];
16
+ get defaultCorePurpose(): CorePurpose | undefined;
11
17
  }
12
18
  export declare const INACCESSIBLE_VERSIONS: FeatureDefinitions<InaccessibleSpecDefinition>;
13
19
  export declare function removeInaccessibleElements(schema: Schema): void;
@@ -1 +1 @@
1
- {"version":3,"file":"inaccessibleSpec.d.ts","sourceRoot":"","sources":["../src/inaccessibleSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EACL,mBAAmB,EAKnB,MAAM,EACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI1D,eAAO,MAAM,oBAAoB,0CAA0C,CAAC;AAE5E,eAAO,MAAM,qBAAqB,qBAKjC,CAAC;AAEF,qBAAa,0BAA2B,SAAQ,iBAAiB;gBACnD,OAAO,EAAE,cAAc;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAIlC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAIjF,eAAe,IAAI,MAAM,EAAE;CAG5B;AAED,eAAO,MAAM,qBAAqB,gDAC8B,CAAC;AAIjE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,QA0DxD"}
1
+ {"version":3,"file":"inaccessibleSpec.d.ts","sourceRoot":"","sources":["../src/inaccessibleSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAGL,mBAAmB,EAmBnB,MAAM,EAIP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG1D,OAAO,EAAgC,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAGvG,eAAO,MAAM,oBAAoB,0CAA0C,CAAC;AAE5E,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,SAAgB,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;IAC3D,SAAgB,yBAAyB,EAAE,sBAAsB,CAAC;IAClE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAS;gBAE3C,OAAO,EAAE,cAAc;IA0BnC,KAAK;IAIL,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAInD,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS;IAI7F,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG,YAAY,GAAG,SAAS;IAYnF,eAAe,IAAI,MAAM,EAAE;IAI3B,IAAI,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAEhD;CACF;AAED,eAAO,MAAM,qBAAqB,gDAE8B,CAAC;AAIjE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,QAkDxD"}