@wix/graphql-codegen-ts-builders 1.0.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 (50) hide show
  1. package/README.md +207 -0
  2. package/dist/es/src/documents-to-operations.d.ts +18 -0
  3. package/dist/es/src/documents-to-operations.d.ts.map +1 -0
  4. package/dist/es/src/documents-to-operations.js +200 -0
  5. package/dist/es/src/documents-to-operations.js.map +1 -0
  6. package/dist/es/src/helpers.d.ts +10 -0
  7. package/dist/es/src/helpers.d.ts.map +1 -0
  8. package/dist/es/src/helpers.js +84 -0
  9. package/dist/es/src/helpers.js.map +1 -0
  10. package/dist/es/src/index.d.ts +24 -0
  11. package/dist/es/src/index.d.ts.map +1 -0
  12. package/dist/es/src/index.js +362 -0
  13. package/dist/es/src/index.js.map +1 -0
  14. package/dist/es/src/mock-value-generator.d.ts +51 -0
  15. package/dist/es/src/mock-value-generator.d.ts.map +1 -0
  16. package/dist/es/src/mock-value-generator.js +370 -0
  17. package/dist/es/src/mock-value-generator.js.map +1 -0
  18. package/dist/es/src/types.d.ts +87 -0
  19. package/dist/es/src/types.d.ts.map +1 -0
  20. package/dist/es/src/types.js +6 -0
  21. package/dist/es/src/types.js.map +1 -0
  22. package/dist/es/src/utility-types.d.ts +10 -0
  23. package/dist/es/src/utility-types.d.ts.map +1 -0
  24. package/dist/es/src/utility-types.js +12 -0
  25. package/dist/es/src/utility-types.js.map +1 -0
  26. package/dist/src/documents-to-operations.d.ts +18 -0
  27. package/dist/src/documents-to-operations.d.ts.map +1 -0
  28. package/dist/src/documents-to-operations.js +207 -0
  29. package/dist/src/documents-to-operations.js.map +1 -0
  30. package/dist/src/helpers.d.ts +10 -0
  31. package/dist/src/helpers.d.ts.map +1 -0
  32. package/dist/src/helpers.js +96 -0
  33. package/dist/src/helpers.js.map +1 -0
  34. package/dist/src/index.d.ts +24 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +366 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/mock-value-generator.d.ts +51 -0
  39. package/dist/src/mock-value-generator.d.ts.map +1 -0
  40. package/dist/src/mock-value-generator.js +377 -0
  41. package/dist/src/mock-value-generator.js.map +1 -0
  42. package/dist/src/types.d.ts +87 -0
  43. package/dist/src/types.d.ts.map +1 -0
  44. package/dist/src/types.js +9 -0
  45. package/dist/src/types.js.map +1 -0
  46. package/dist/src/utility-types.d.ts +10 -0
  47. package/dist/src/utility-types.d.ts.map +1 -0
  48. package/dist/src/utility-types.js +16 -0
  49. package/dist/src/utility-types.js.map +1 -0
  50. package/package.json +76 -0
@@ -0,0 +1,362 @@
1
+ import { parse, printSchema } from 'graphql';
2
+ import { faker } from '@faker-js/faker';
3
+ import { getUtilTypes } from './utility-types';
4
+ import { oldVisit } from '@graphql-codegen/plugin-helpers';
5
+ import { generateMockValue, setupFunctionTokens } from './mock-value-generator';
6
+ import { documentsToOperations, simplifyOperationsData, } from './documents-to-operations';
7
+ import { toMockName, createNameConverter, toOperationMockName, calculatePickedFields, operationToOperationType, } from './helpers';
8
+ var getMockString = function (typeName, fields, typeNamesConvention, terminateCircularRelationships, prefix, typesPrefix, transformUnderscore) {
9
+ if (typesPrefix === void 0) { typesPrefix = ''; }
10
+ var typeNameConverter = createNameConverter(typeNamesConvention, transformUnderscore);
11
+ var casedName = typeNameConverter(typeName);
12
+ var casedNameWithPrefix = typeNameConverter(typeName, typesPrefix);
13
+ if (terminateCircularRelationships) {
14
+ return "\nexport const ".concat(toMockName(typeName, casedName, prefix), " = <T extends DeepPartial<").concat(casedNameWithPrefix, ">>(overrides?: T, _relationshipsToOmit: Set<string> = new Set(), pickedFields: PickedFields = new Map()): T => {\n const relationshipsToOmit: Set<string> = new Set(_relationshipsToOmit);\n relationshipsToOmit.add('").concat(casedName, "');\n const result = {} as T;\n\n").concat(fields, "\n\n return result;\n};");
15
+ }
16
+ else {
17
+ return "\nexport const ".concat(toMockName(typeName, casedName, prefix), " = <T extends DeepPartial<").concat(casedNameWithPrefix, ">>(overrides?: T, pickedFields: PickedFields = new Map()): T => {\n const result = {} as T;\n\n").concat(fields, "\n\n return result;\n};");
18
+ }
19
+ };
20
+ var getImportTypes = function (_a) {
21
+ var typeNamesConvention = _a.typeNamesConvention, definitions = _a.definitions, types = _a.types, typesFile = _a.typesFile, typesPrefix = _a.typesPrefix, enumsPrefix = _a.enumsPrefix, transformUnderscore = _a.transformUnderscore, enumsAsTypes = _a.enumsAsTypes;
22
+ var typenameConverter = createNameConverter(typeNamesConvention, transformUnderscore);
23
+ var typeImports = (typesPrefix === null || typesPrefix === void 0 ? void 0 : typesPrefix.endsWith('.'))
24
+ ? [typesPrefix.slice(0, -1)]
25
+ : definitions
26
+ .filter(function (_a) {
27
+ var typeName = _a.typeName;
28
+ return !!typeName;
29
+ })
30
+ .map(function (_a) {
31
+ var typeName = _a.typeName;
32
+ return typenameConverter(typeName, typesPrefix);
33
+ });
34
+ var enumTypes = (enumsPrefix === null || enumsPrefix === void 0 ? void 0 : enumsPrefix.endsWith('.'))
35
+ ? [enumsPrefix.slice(0, -1)]
36
+ : types
37
+ .filter(function (_a) {
38
+ var type = _a.type;
39
+ return type === 'enum';
40
+ })
41
+ .map(function (_a) {
42
+ var name = _a.name;
43
+ return typenameConverter(name, enumsPrefix);
44
+ });
45
+ if (!enumsAsTypes) {
46
+ typeImports.push.apply(typeImports, enumTypes);
47
+ }
48
+ function onlyUnique(value, index, self) {
49
+ return self.indexOf(value) === index;
50
+ }
51
+ return typesFile
52
+ ? "import { ".concat(typeImports
53
+ .filter(onlyUnique)
54
+ .join(', '), " } from '").concat(typesFile, "';\n")
55
+ : '';
56
+ };
57
+ // This plugin was generated with the help of ast explorer.
58
+ // https://astexplorer.net
59
+ // Paste your graphql schema in it, and you'll be able to see what the `astNode` will look like
60
+ export var plugin = function (schema, documents, config) {
61
+ var _a, _b, _c, _d, _e;
62
+ var _f = documentsToOperations(documents, schema), operations = _f.operations, fragments = _f.fragments;
63
+ var _g = simplifyOperationsData(operations, fragments), queries = _g.queries, mutations = _g.mutations;
64
+ var printedSchema = printSchema(schema); // Returns a string representation of the schema
65
+ var astNode = parse(printedSchema); // Transforms the string into ASTNode
66
+ if ('typenames' in config) {
67
+ throw new Error('Config `typenames` was renamed to `typeNames`. Please update your config');
68
+ }
69
+ var enumValuesConvention = config.enumValues || 'change-case-all#pascalCase';
70
+ var typeNamesConvention = config.typeNames || 'change-case-all#pascalCase';
71
+ var transformUnderscore = (_a = config.transformUnderscore) !== null && _a !== void 0 ? _a : true;
72
+ var listElementCount = Math.max(0, (_b = config.listElementCount) !== null && _b !== void 0 ? _b : 1);
73
+ var dynamicValues = !!config.dynamicValues;
74
+ var generateLibrary = config.generateLibrary || 'casual';
75
+ var enumsAsTypes = (_c = config.enumsAsTypes) !== null && _c !== void 0 ? _c : false;
76
+ var useImplementingTypes = (_d = config.useImplementingTypes) !== null && _d !== void 0 ? _d : false;
77
+ var defaultNullableToNull = (_e = config.defaultNullableToNull) !== null && _e !== void 0 ? _e : false;
78
+ if (generateLibrary === 'faker' && config.locale) {
79
+ faker.setLocale(config.locale);
80
+ }
81
+ // List of types that are enums
82
+ var types = [];
83
+ var typeVisitor = {
84
+ EnumTypeDefinition: function (node) {
85
+ var name = node.name.value;
86
+ if (!types.find(function (enumType) { return enumType.name === name; })) {
87
+ types.push({
88
+ name: name,
89
+ type: 'enum',
90
+ values: node.values ? node.values.map(function (node) { return node.name.value; }) : [],
91
+ });
92
+ }
93
+ },
94
+ UnionTypeDefinition: function (node) {
95
+ var name = node.name.value;
96
+ if (!types.find(function (enumType) { return enumType.name === name; })) {
97
+ types.push({
98
+ name: name,
99
+ type: 'union',
100
+ types: node.types,
101
+ });
102
+ }
103
+ },
104
+ ObjectTypeDefinition: function (node) {
105
+ // This function triggered per each type
106
+ var typeName = node.name.value;
107
+ if (config.useImplementingTypes) {
108
+ if (!types.find(function (objectType) { return objectType.name === typeName; })) {
109
+ node.interfaces.length &&
110
+ types.push({
111
+ name: typeName,
112
+ type: 'implement',
113
+ types: node,
114
+ });
115
+ }
116
+ }
117
+ },
118
+ ScalarTypeDefinition: function (node) {
119
+ var name = node.name.value;
120
+ if (!types.find(function (scalarType) { return scalarType.name === name; })) {
121
+ types.push({
122
+ name: name,
123
+ type: 'scalar',
124
+ });
125
+ }
126
+ },
127
+ };
128
+ var visitor = {
129
+ FieldDefinition: function (node) {
130
+ var fieldName = node.name.value;
131
+ return {
132
+ name: fieldName,
133
+ mockFn: function (typeName) {
134
+ var value = generateMockValue({
135
+ typeName: typeName,
136
+ fieldName: fieldName,
137
+ types: types,
138
+ typeNamesConvention: typeNamesConvention,
139
+ enumValuesConvention: enumValuesConvention,
140
+ terminateCircularRelationships: !!config.terminateCircularRelationships,
141
+ prefix: config.prefix,
142
+ typesPrefix: config.typesPrefix,
143
+ enumsPrefix: config.enumsPrefix,
144
+ currentType: node.type,
145
+ customScalars: config.scalars,
146
+ transformUnderscore: transformUnderscore,
147
+ listElementCount: listElementCount,
148
+ dynamicValues: dynamicValues,
149
+ generateLibrary: generateLibrary,
150
+ fieldGeneration: config.fieldGeneration,
151
+ enumsAsTypes: enumsAsTypes,
152
+ useImplementingTypes: useImplementingTypes,
153
+ defaultNullableToNull: defaultNullableToNull,
154
+ nonNull: false,
155
+ });
156
+ return " if (pickedFields.size === 0 || pickedFields.has('".concat(fieldName, "')) {\n result.").concat(fieldName, " = overrides && overrides.hasOwnProperty('").concat(fieldName, "') ? ").concat(typeof value === 'string' && value.includes('{}')
157
+ ? value.includes('[')
158
+ ? "overrides.".concat(fieldName, "!.map((x) => ").concat(value
159
+ .replace('[', '')
160
+ .replace(']', '')
161
+ .replace('({}', '(x ?? {}'), ")").replace('{} as', 'x ?? {} as')
162
+ : "".concat(value
163
+ .replace('({}', "(overrides.".concat(fieldName, " ?? {}"))
164
+ .replace('{} as', "overrides.".concat(fieldName, " ?? {} as")))
165
+ : "overrides.".concat(fieldName, "!"), " : ").concat(value, ";\n }");
166
+ },
167
+ };
168
+ },
169
+ InputObjectTypeDefinition: function (node) {
170
+ var fieldName = node.name.value;
171
+ return {
172
+ typeName: fieldName,
173
+ mockFn: function () {
174
+ var mockFields = node.fields
175
+ ? node.fields
176
+ .map(function (field) {
177
+ var value = generateMockValue({
178
+ typeName: fieldName,
179
+ fieldName: field.name.value,
180
+ types: types,
181
+ typeNamesConvention: typeNamesConvention,
182
+ enumValuesConvention: enumValuesConvention,
183
+ terminateCircularRelationships: !!config.terminateCircularRelationships,
184
+ prefix: config.prefix,
185
+ typesPrefix: config.typesPrefix,
186
+ enumsPrefix: config.enumsPrefix,
187
+ currentType: field.type,
188
+ customScalars: config.scalars,
189
+ transformUnderscore: transformUnderscore,
190
+ listElementCount: listElementCount,
191
+ dynamicValues: dynamicValues,
192
+ generateLibrary: generateLibrary,
193
+ fieldGeneration: config.fieldGeneration,
194
+ enumsAsTypes: enumsAsTypes,
195
+ useImplementingTypes: useImplementingTypes,
196
+ defaultNullableToNull: defaultNullableToNull,
197
+ nonNull: false,
198
+ });
199
+ return " if (pickedFields.size === 0 || pickedFields.has('".concat(field.name.value, "')) {\n result.").concat(field.name.value, " = overrides && overrides.hasOwnProperty('").concat(field.name.value, "') ? ").concat(typeof value === 'string' && value.includes('{}')
200
+ ? value.includes('[')
201
+ ? "overrides.".concat(field.name.value, "!.map((x) => ").concat(value
202
+ .replace('[', '')
203
+ .replace(']'.replace('({}', '(x ?? {}'), '')
204
+ .replace('{} as', 'x ?? {} as'), ")")
205
+ : value
206
+ .replace('({}', "(overrides.".concat(field.name.value, " ?? {}"))
207
+ .replace('{} as', "overrides.".concat(field.name.value, " ?? {} as"))
208
+ : "overrides.".concat(field.name.value, "!"), " : ").concat(value, ";\n }");
209
+ })
210
+ .join('\n')
211
+ : '';
212
+ return getMockString(fieldName, mockFields, typeNamesConvention, false, config.prefix, config.typesPrefix, transformUnderscore);
213
+ },
214
+ };
215
+ },
216
+ ObjectTypeDefinition: function (node) {
217
+ // This function triggered per each type
218
+ var typeName = node.name.value;
219
+ var fields = node.fields;
220
+ return {
221
+ typeName: typeName,
222
+ mockFn: function () {
223
+ var mockFields = fields
224
+ ? fields.map(function (_a) {
225
+ var mockFn = _a.mockFn;
226
+ return mockFn(typeName);
227
+ }).join('\n')
228
+ : '';
229
+ return getMockString(typeName, mockFields, typeNamesConvention, !!config.terminateCircularRelationships, config.prefix, config.typesPrefix, transformUnderscore);
230
+ },
231
+ };
232
+ },
233
+ InterfaceTypeDefinition: function (node) {
234
+ var typeName = node.name.value;
235
+ var fields = node.fields;
236
+ return {
237
+ typeName: typeName,
238
+ mockFn: function () {
239
+ var mockFields = fields
240
+ ? fields.map(function (_a) {
241
+ var mockFn = _a.mockFn;
242
+ return mockFn(typeName);
243
+ }).join('\n')
244
+ : '';
245
+ return getMockString(typeName, mockFields, typeNamesConvention, !!config.terminateCircularRelationships, config.prefix, config.typesPrefix, transformUnderscore);
246
+ },
247
+ };
248
+ },
249
+ };
250
+ function pickedFieldsToCode(pickedFields) {
251
+ if (!pickedFields) {
252
+ return "undefined";
253
+ }
254
+ if (pickedFields.size === 0) {
255
+ return "new Map()";
256
+ }
257
+ return "new Map([".concat(Array.from(pickedFields).map(function (_a) {
258
+ var fieldName = _a[0], selections = _a[1];
259
+ return "['".concat(fieldName, "', ").concat(pickedFieldsToCode(selections), "]");
260
+ }), "])");
261
+ }
262
+ var getOperationMockString = function (operation) {
263
+ var operationTypeDeclaration = operationToOperationType(operation);
264
+ var operationType = toOperationMockName(operation);
265
+ var operationBuilderDeclaration = "".concat(operationTypeDeclaration, "\n\n\nexport const a").concat(operationType, "Response = (overrides?: DeepPartial<").concat(operationType, ">): ").concat(operationType, " => {\n const relationshipsToOmit= new Set<string>()\n const pickedFields = new Map<string, any>([\n").concat(operation.selections.reduce(function (selectedPickedFields, _a) {
266
+ var name = _a.name, type = _a.type;
267
+ var pickedFields = calculatePickedFields(type);
268
+ var stringifiedPickedFields = pickedFieldsToCode(pickedFields);
269
+ selectedPickedFields += " ['".concat(name, "', ").concat(stringifiedPickedFields, "],\n");
270
+ return selectedPickedFields;
271
+ }, ""), " ]);\n\n return {\n").concat(operation.selections.reduce(function (selectedFields, _a) {
272
+ var name = _a.name, type = _a.type, typeNode = _a.typeNode;
273
+ var value = generateMockValue({
274
+ typeName: type.name,
275
+ fieldName: name,
276
+ types: types,
277
+ typeNamesConvention: typeNamesConvention,
278
+ enumValuesConvention: enumValuesConvention,
279
+ terminateCircularRelationships: !!config.terminateCircularRelationships,
280
+ prefix: config.prefix,
281
+ typesPrefix: config.typesPrefix,
282
+ enumsPrefix: config.enumsPrefix,
283
+ currentType: typeNode,
284
+ customScalars: config.scalars,
285
+ transformUnderscore: transformUnderscore,
286
+ listElementCount: listElementCount,
287
+ dynamicValues: dynamicValues,
288
+ generateLibrary: generateLibrary,
289
+ fieldGeneration: config.fieldGeneration,
290
+ enumsAsTypes: enumsAsTypes,
291
+ useImplementingTypes: useImplementingTypes,
292
+ defaultNullableToNull: defaultNullableToNull,
293
+ nonNull: false,
294
+ });
295
+ selectedFields += " ".concat(name, ": (overrides && overrides.hasOwnProperty('").concat(name, "') ? ").concat(typeof value === 'string' && value.includes('{}')
296
+ ? value.includes('[')
297
+ ? "overrides.".concat(name, "!.map((x) => ").concat(value
298
+ .replace('[', '')
299
+ .replace(']', '')
300
+ .replace('({}', '(x ?? {}'), ")")
301
+ : value.replace('({}', "(overrides.".concat(name, " ?? {}"))
302
+ : "overrides.".concat(name, "!"), " : ").concat(value, ") as any,\n");
303
+ return selectedFields;
304
+ }, ""), " };\n};");
305
+ return operationBuilderDeclaration;
306
+ };
307
+ // run on the types first
308
+ oldVisit(astNode, { leave: typeVisitor });
309
+ var result = oldVisit(astNode, { leave: visitor });
310
+ var definitions = result.definitions.filter(function (definition) { return !!definition; });
311
+ var typesFile = config.typesFile
312
+ ? config.typesFile.replace(/\.[\w]+$/, '')
313
+ : null;
314
+ var typesFileImport = getImportTypes({
315
+ typeNamesConvention: typeNamesConvention,
316
+ definitions: definitions,
317
+ types: types,
318
+ typesFile: typesFile,
319
+ typesPrefix: config.typesPrefix,
320
+ enumsPrefix: config.enumsPrefix,
321
+ transformUnderscore: transformUnderscore,
322
+ enumsAsTypes: enumsAsTypes,
323
+ });
324
+ // Function that will generate the mocks.
325
+ // We generate it after having visited because we need to distinct types from enums
326
+ var mockFns = definitions
327
+ .map(function (_a) {
328
+ var mockFn = _a.mockFn;
329
+ return mockFn;
330
+ })
331
+ .filter(function (mockFn) { return !!mockFn; })
332
+ .map(function (mockFn) { return mockFn(); })
333
+ .join('\n');
334
+ var functionTokens = setupFunctionTokens(generateLibrary);
335
+ var mockFile = '';
336
+ if (dynamicValues) {
337
+ mockFile += "".concat(functionTokens.import, "\n");
338
+ }
339
+ mockFile += typesFileImport;
340
+ mockFile += getUtilTypes();
341
+ if (dynamicValues) {
342
+ mockFile += "\n".concat(functionTokens.seed, "\n");
343
+ }
344
+ mockFile += mockFns;
345
+ if (dynamicValues) {
346
+ mockFile += "\n\n".concat(functionTokens.seedFunction);
347
+ }
348
+ mockFile += '\n';
349
+ for (var _i = 0, queries_1 = queries; _i < queries_1.length; _i++) {
350
+ var query = queries_1[_i];
351
+ var operationString = getOperationMockString(query);
352
+ mockFile += "\n".concat(operationString, "\n");
353
+ }
354
+ for (var _h = 0, mutations_1 = mutations; _h < mutations_1.length; _h++) {
355
+ var mutation = mutations_1[_h];
356
+ var operationString = getOperationMockString(mutation);
357
+ mockFile += "\n".concat(operationString, "\n");
358
+ }
359
+ mockFile += '\n';
360
+ return mockFile;
361
+ };
362
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { NamedTypeNode, ObjectTypeDefinitionNode, TypeNode } from 'graphql';
2
+ import { NamingConvention, GeneratorDefinition, ScalarMap, TypeFieldMap } from './types';
3
+ interface TypeItem {
4
+ name: string;
5
+ type: 'enum' | 'scalar' | 'union' | 'implement';
6
+ values?: string[];
7
+ types?: readonly NamedTypeNode[] | ObjectTypeDefinitionNode;
8
+ }
9
+ type Options<T = TypeNode> = {
10
+ typeName: string;
11
+ fieldName: string;
12
+ types: TypeItem[];
13
+ typeNamesConvention: NamingConvention;
14
+ enumValuesConvention: NamingConvention;
15
+ terminateCircularRelationships: boolean;
16
+ prefix: string | undefined;
17
+ typesPrefix: string;
18
+ enumsPrefix: string;
19
+ currentType: T;
20
+ customScalars?: ScalarMap;
21
+ transformUnderscore: boolean;
22
+ listElementCount: number;
23
+ dynamicValues: boolean;
24
+ generateLibrary: 'casual' | 'faker';
25
+ fieldGeneration?: TypeFieldMap;
26
+ enumsAsTypes?: boolean;
27
+ useImplementingTypes: boolean;
28
+ defaultNullableToNull: boolean;
29
+ nonNull: boolean;
30
+ };
31
+ interface MockValueGenerator {
32
+ dynamicValues: boolean;
33
+ word: () => string;
34
+ uuid: () => string;
35
+ boolean: () => boolean | string;
36
+ integer: () => number | string;
37
+ float: () => number | string;
38
+ date: () => string;
39
+ seed: (seed: number) => void;
40
+ }
41
+ type FunctionTokens = Record<'import' | 'seed' | 'seedFunction', string>;
42
+ type SetupMockValueGeneratorOptions = {
43
+ generateLibrary: 'casual' | 'faker';
44
+ dynamicValues: boolean;
45
+ };
46
+ export declare function setupMockValueGenerator({ generateLibrary, dynamicValues, }: SetupMockValueGeneratorOptions): MockValueGenerator;
47
+ export declare function setupFunctionTokens(generateLibrary: 'casual' | 'faker'): FunctionTokens;
48
+ export declare function generateMockValue(opts: Options): string | number | boolean;
49
+ export declare function getCustomValue(generatorDefinition: GeneratorDefinition, opts: Options<NamedTypeNode>): any;
50
+ export {};
51
+ //# sourceMappingURL=mock-value-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-value-generator.d.ts","sourceRoot":"","sources":["../../../src/mock-value-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,aAAa,EACb,wBAAwB,EACxB,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,wBAAwB,CAAC;CAC7D;AAED,KAAK,OAAO,CAAC,CAAC,GAAG,QAAQ,IAAI;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,mBAAmB,EAAE,gBAAgB,CAAC;IACtC,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,8BAA8B,EAAE,OAAO,CAAC;IACxC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC;IACf,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,UAAU,kBAAkB;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC;IAC/B,KAAK,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAMD,KAAK,cAAc,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC;AAEzE,KAAK,8BAA8B,GAAG;IACpC,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAmEF,wBAAgB,uBAAuB,CAAC,EACtC,eAAe,EACf,aAAa,GACd,EAAE,8BAA8B,GAAG,kBAAkB,CAOrD;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,QAAQ,GAAG,OAAO,GAClC,cAAc,CAOhB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAqC1E;AAqJD,wBAAgB,cAAc,CAC5B,mBAAmB,EAAE,mBAAmB,EACxC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,OAW7B"}