@servicenow/sdk-build-core 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.
- package/dist/BuildOptions.d.ts +50 -0
- package/dist/BuildOptions.js +46 -0
- package/dist/BuildOptions.js.map +1 -0
- package/dist/GUID.d.ts +2 -0
- package/dist/GUID.js +48 -0
- package/dist/GUID.js.map +1 -0
- package/dist/Keys.d.ts +29 -0
- package/dist/Keys.js +258 -0
- package/dist/Keys.js.map +1 -0
- package/dist/TypeScript.d.ts +5 -0
- package/dist/TypeScript.js +81 -0
- package/dist/TypeScript.js.map +1 -0
- package/dist/XML.d.ts +25 -0
- package/dist/XML.js +72 -0
- package/dist/XML.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/Context.d.ts +198 -0
- package/dist/plugins/Context.js +3 -0
- package/dist/plugins/Context.js.map +1 -0
- package/dist/plugins/Diagnostic.d.ts +10 -0
- package/dist/plugins/Diagnostic.js +52 -0
- package/dist/plugins/Diagnostic.js.map +1 -0
- package/dist/plugins/Plugin.d.ts +175 -0
- package/dist/plugins/Plugin.js +15 -0
- package/dist/plugins/Plugin.js.map +1 -0
- package/dist/plugins/behaviors/Arranger.d.ts +26 -0
- package/dist/plugins/behaviors/Arranger.js +3 -0
- package/dist/plugins/behaviors/Arranger.js.map +1 -0
- package/dist/plugins/behaviors/Composer.d.ts +101 -0
- package/dist/plugins/behaviors/Composer.js +15 -0
- package/dist/plugins/behaviors/Composer.js.map +1 -0
- package/dist/plugins/behaviors/Diagnostics.d.ts +8 -0
- package/dist/plugins/behaviors/Diagnostics.js +3 -0
- package/dist/plugins/behaviors/Diagnostics.js.map +1 -0
- package/dist/plugins/behaviors/Generator.d.ts +21 -0
- package/dist/plugins/behaviors/Generator.js +3 -0
- package/dist/plugins/behaviors/Generator.js.map +1 -0
- package/dist/plugins/behaviors/OwnedTables.d.ts +6 -0
- package/dist/plugins/behaviors/OwnedTables.js +3 -0
- package/dist/plugins/behaviors/OwnedTables.js.map +1 -0
- package/dist/plugins/behaviors/PostProcessor.d.ts +5 -0
- package/dist/plugins/behaviors/PostProcessor.js +3 -0
- package/dist/plugins/behaviors/PostProcessor.js.map +1 -0
- package/dist/plugins/behaviors/Serializer.d.ts +29 -0
- package/dist/plugins/behaviors/Serializer.js +3 -0
- package/dist/plugins/behaviors/Serializer.js.map +1 -0
- package/dist/plugins/behaviors/Transformer.d.ts +23 -0
- package/dist/plugins/behaviors/Transformer.js +3 -0
- package/dist/plugins/behaviors/Transformer.js.map +1 -0
- package/dist/plugins/behaviors/extractors/Data.d.ts +107 -0
- package/dist/plugins/behaviors/extractors/Data.js +191 -0
- package/dist/plugins/behaviors/extractors/Data.js.map +1 -0
- package/dist/plugins/behaviors/extractors/Extractors.d.ts +41 -0
- package/dist/plugins/behaviors/extractors/Extractors.js +3 -0
- package/dist/plugins/behaviors/extractors/Extractors.js.map +1 -0
- package/dist/plugins/behaviors/extractors/index.d.ts +2 -0
- package/dist/plugins/behaviors/extractors/index.js +19 -0
- package/dist/plugins/behaviors/extractors/index.js.map +1 -0
- package/dist/plugins/behaviors/index.d.ts +9 -0
- package/dist/plugins/behaviors/index.js +26 -0
- package/dist/plugins/behaviors/index.js.map +1 -0
- package/dist/plugins/index.d.ts +5 -0
- package/dist/plugins/index.js +23 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/util/CallExpression.d.ts +6 -0
- package/dist/plugins/util/CallExpression.js +93 -0
- package/dist/plugins/util/CallExpression.js.map +1 -0
- package/dist/plugins/util/CodeTransformation.d.ts +74 -0
- package/dist/plugins/util/CodeTransformation.js +421 -0
- package/dist/plugins/util/CodeTransformation.js.map +1 -0
- package/dist/plugins/util/ConfigurationFunction.d.ts +106 -0
- package/dist/plugins/util/ConfigurationFunction.js +377 -0
- package/dist/plugins/util/ConfigurationFunction.js.map +1 -0
- package/dist/plugins/util/ObjectLiteral.d.ts +9 -0
- package/dist/plugins/util/ObjectLiteral.js +60 -0
- package/dist/plugins/util/ObjectLiteral.js.map +1 -0
- package/dist/plugins/util/index.d.ts +4 -0
- package/dist/plugins/util/index.js +21 -0
- package/dist/plugins/util/index.js.map +1 -0
- package/dist/util/Debug.d.ts +8 -0
- package/dist/util/Debug.js +39 -0
- package/dist/util/Debug.js.map +1 -0
- package/dist/util/Util.d.ts +4 -0
- package/dist/util/Util.js +41 -0
- package/dist/util/Util.js.map +1 -0
- package/dist/util/XMLJsonBuilder.d.ts +18 -0
- package/dist/util/XMLJsonBuilder.js +59 -0
- package/dist/util/XMLJsonBuilder.js.map +1 -0
- package/dist/util/XMLUploadParser.d.ts +22 -0
- package/dist/util/XMLUploadParser.js +67 -0
- package/dist/util/XMLUploadParser.js.map +1 -0
- package/dist/util/index.d.ts +4 -0
- package/dist/util/index.js +21 -0
- package/dist/util/index.js.map +1 -0
- package/license +9 -0
- package/package.json +42 -0
- package/src/BuildOptions.ts +27 -0
- package/src/GUID.ts +26 -0
- package/src/Keys.ts +287 -0
- package/src/TypeScript.ts +65 -0
- package/src/XML.ts +85 -0
- package/src/index.ts +8 -0
- package/src/plugins/Context.ts +249 -0
- package/src/plugins/Diagnostic.ts +31 -0
- package/src/plugins/Plugin.ts +246 -0
- package/src/plugins/behaviors/Arranger.ts +42 -0
- package/src/plugins/behaviors/Composer.ts +124 -0
- package/src/plugins/behaviors/Diagnostics.ts +13 -0
- package/src/plugins/behaviors/Generator.ts +31 -0
- package/src/plugins/behaviors/OwnedTables.ts +5 -0
- package/src/plugins/behaviors/PostProcessor.ts +6 -0
- package/src/plugins/behaviors/Serializer.ts +39 -0
- package/src/plugins/behaviors/Transformer.ts +32 -0
- package/src/plugins/behaviors/extractors/Data.ts +247 -0
- package/src/plugins/behaviors/extractors/Extractors.ts +57 -0
- package/src/plugins/behaviors/extractors/index.ts +2 -0
- package/src/plugins/behaviors/index.ts +9 -0
- package/src/plugins/index.ts +5 -0
- package/src/plugins/util/CallExpression.ts +83 -0
- package/src/plugins/util/CodeTransformation.ts +500 -0
- package/src/plugins/util/ConfigurationFunction.ts +477 -0
- package/src/plugins/util/ObjectLiteral.ts +37 -0
- package/src/plugins/util/index.ts +4 -0
- package/src/util/Debug.ts +46 -0
- package/src/util/Util.ts +21 -0
- package/src/util/XMLJsonBuilder.ts +64 -0
- package/src/util/XMLUploadParser.ts +90 -0
- package/src/util/index.ts +4 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as ts from 'ts-morph';
|
|
2
|
+
import { Context } from '../Context';
|
|
3
|
+
import { EntityData, ExtractionResult } from '../behaviors';
|
|
4
|
+
export declare const CURRENT_CALL_EXPRESSION = "current_call_expression";
|
|
5
|
+
export declare function getCallExpressionName(node: ts.CallExpression): string;
|
|
6
|
+
export declare function extractCallExpression<const A extends unknown[], const E extends A extends [infer T extends Record<string, unknown>] ? T : never, const K extends string>(fn: (...args: A) => E, kind: K, node: ts.CallExpression, context: Context, guid: (entity: E) => string, validate?: (entity: unknown) => entity is E): ExtractionResult<EntityData<E>>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.CURRENT_CALL_EXPRESSION = void 0;
|
|
27
|
+
exports.getCallExpressionName = getCallExpressionName;
|
|
28
|
+
exports.extractCallExpression = extractCallExpression;
|
|
29
|
+
const ts = __importStar(require("ts-morph"));
|
|
30
|
+
const behaviors_1 = require("../behaviors");
|
|
31
|
+
const Diagnostic_1 = require("../Diagnostic");
|
|
32
|
+
exports.CURRENT_CALL_EXPRESSION = 'current_call_expression';
|
|
33
|
+
function getCallExpressionName(node) {
|
|
34
|
+
const expression = node.getExpression();
|
|
35
|
+
if (ts.Node.isIdentifier(expression)) {
|
|
36
|
+
return expression.getText();
|
|
37
|
+
}
|
|
38
|
+
else if (ts.Node.isPropertyAccessExpression(expression)) {
|
|
39
|
+
return expression.getName();
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
throw `CallExpression does not have an identifier: ${expression.getText()}`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function extractCallExpression(fn, kind, node, context, guid, validate = (_) => true) {
|
|
46
|
+
const name = getCallExpressionName(node);
|
|
47
|
+
if (name !== fn.name) {
|
|
48
|
+
return { handled: false };
|
|
49
|
+
}
|
|
50
|
+
//Needed to perform specific parsing and handling of nodes based on call expression
|
|
51
|
+
const oldNodeValue = context.store[exports.CURRENT_CALL_EXPRESSION];
|
|
52
|
+
context.store[exports.CURRENT_CALL_EXPRESSION] = fn.name;
|
|
53
|
+
const diagnostics = [];
|
|
54
|
+
const args = node.getArguments().map((a) => {
|
|
55
|
+
const result = context.extractAst(a);
|
|
56
|
+
if (!result.handled) {
|
|
57
|
+
diagnostics.push(new Diagnostic_1.FluentDiagnostic(a, `Unsupported argument in ${fn.name} call`));
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
diagnostics.push(...result.diagnostics);
|
|
61
|
+
if (!(0 in result.data) || result.data.length !== 1) {
|
|
62
|
+
diagnostics.push(new Diagnostic_1.FluentDiagnostic(a, `Unsupported argument in ${fn.name} call`));
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return result.data[0];
|
|
66
|
+
});
|
|
67
|
+
context.store[exports.CURRENT_CALL_EXPRESSION] = oldNodeValue;
|
|
68
|
+
if (!(0 in args) || args.length !== 1) {
|
|
69
|
+
return {
|
|
70
|
+
handled: true,
|
|
71
|
+
data: [],
|
|
72
|
+
diagnostics: [
|
|
73
|
+
...diagnostics,
|
|
74
|
+
new Diagnostic_1.FluentDiagnostic(node, `Expected ${fn.name} call to have exactly one argument`),
|
|
75
|
+
],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const entity = args[0];
|
|
79
|
+
const entityValue = entity.getValue();
|
|
80
|
+
if (!validate(entityValue)) {
|
|
81
|
+
return {
|
|
82
|
+
handled: true,
|
|
83
|
+
data: [],
|
|
84
|
+
diagnostics: [...diagnostics, new Diagnostic_1.FluentDiagnostic(node, `Invalid ${fn.name} call argument`)],
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
handled: true,
|
|
89
|
+
diagnostics,
|
|
90
|
+
data: [new behaviors_1.EntityData(kind, guid(entityValue), entity, node)],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=CallExpression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallExpression.js","sourceRoot":"","sources":["../../../src/plugins/util/CallExpression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { SupportedNode } from '@servicenow/sdk-project';
|
|
2
|
+
import { Context } from '../Context';
|
|
3
|
+
import * as ts from 'ts-morph';
|
|
4
|
+
import * as z from 'zod';
|
|
5
|
+
import { Document } from '../behaviors';
|
|
6
|
+
export declare function stringify(val: unknown): string;
|
|
7
|
+
export type PartialElements<A extends unknown[]> = {
|
|
8
|
+
[I in keyof A]: Partial<A[I]>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Formats a source file name with the .now.ts extension.
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatSourceFileName(name: string): string;
|
|
14
|
+
export declare function getSysUpdateName(document: Document & {
|
|
15
|
+
xml?: string;
|
|
16
|
+
}, table: string): string;
|
|
17
|
+
export declare function getOrCreateEntitySourceFile(context: Context, sysUpdateName: string): ts.SourceFile;
|
|
18
|
+
export declare function addDefaultImportIfAbsent(sourceFile: ts.SourceFile, moduleSpecifier: string, module: string): void;
|
|
19
|
+
export declare function addNamedImportIfAbsent(context: Context, sourceFile: ts.SourceFile, moduleSpecifier: string, module: {
|
|
20
|
+
name: string;
|
|
21
|
+
} | string): ts.ImportSpecifier;
|
|
22
|
+
/**
|
|
23
|
+
* Generate an exported variable assignment initialized by a function call with
|
|
24
|
+
* the provided arguments.
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateCallExpressionDefaultExport<const A extends unknown[]>(context: Context, sourceFile: ts.SourceFile, moduleSpecifier: string, fn: (...args: A) => unknown, ...args: PartialElements<A>): ts.ExportAssignment;
|
|
27
|
+
export declare function generateCallExpressionExport<const A extends unknown[]>(context: Context, sourceFile: ts.SourceFile, moduleSpecifier: string, exportName: string, fn: (...args: A) => unknown, ...args: PartialElements<A>): ts.VariableDeclaration;
|
|
28
|
+
export declare function generateCallExpression<const A extends unknown[]>(context: Context, sourceFile: ts.SourceFile, moduleSpecifier: string, fn: (...args: A) => unknown, ...args: PartialElements<A>): ts.CallExpression<ts.ts.CallExpression>;
|
|
29
|
+
/**
|
|
30
|
+
* Generate an exported variable assignment initialized by a function call with the
|
|
31
|
+
* provided arguments. The exported variable name will be automatically determined
|
|
32
|
+
* based on the function's name and the document's ID.
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateCallExpressionExportForDocument<const A extends unknown[]>(context: Context, info: {
|
|
35
|
+
sourceFile: ts.SourceFile;
|
|
36
|
+
moduleSpecifier: string;
|
|
37
|
+
}, fn: (...args: A) => unknown, ...args: PartialElements<A>): ts.ExportAssignment;
|
|
38
|
+
export declare function getOrCreatePropertyAssignment(obj: ts.ObjectLiteralExpression, name: string, initializer?: string): ts.PropertyAssignment;
|
|
39
|
+
export declare function createOrUpdateScriptProperty(obj: ts.ObjectLiteralExpression, name: string, value: string): ts.PropertyAssignment | undefined;
|
|
40
|
+
export declare function createOrUpdateStringLiteralProperty(obj: ts.ObjectLiteralExpression, name: string, value: string | undefined, valueQuoteStyle?: "'" | '"' | '`'): ts.PropertyAssignment | undefined;
|
|
41
|
+
export declare function isEscapedPropertyAssignment(args: ts.ObjectLiteralExpression, name: string): boolean;
|
|
42
|
+
/** utility function to get the $id value in a object literal node */
|
|
43
|
+
export declare const getNodeId: (node: ts.ObjectLiteralExpression) => string | undefined;
|
|
44
|
+
/** utility iterator for iterating array structures in rest api*/
|
|
45
|
+
export declare class ArrayIterator {
|
|
46
|
+
private prop;
|
|
47
|
+
arrayExpression: ts.ArrayLiteralExpression;
|
|
48
|
+
elements: ts.Expression<ts.ts.Expression>[];
|
|
49
|
+
idx: number;
|
|
50
|
+
constructor(prop: ts.PropertyAssignment);
|
|
51
|
+
hasNext(): boolean;
|
|
52
|
+
next(): ts.Expression<ts.ts.Expression>;
|
|
53
|
+
getExpression(): ts.ArrayLiteralExpression;
|
|
54
|
+
}
|
|
55
|
+
export declare function writeArrayPropertyAsReference(arg: ts.ObjectLiteralExpression, name: string, def: string, value: string[]): void;
|
|
56
|
+
export declare const recordSchema: z.ZodObject<{
|
|
57
|
+
$id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
58
|
+
data: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
59
|
+
table: z.ZodString;
|
|
60
|
+
}, "strip", z.ZodTypeAny, {
|
|
61
|
+
data: Record<string, any>;
|
|
62
|
+
$id: string | number;
|
|
63
|
+
table: string;
|
|
64
|
+
}, {
|
|
65
|
+
data: Record<string, any>;
|
|
66
|
+
$id: string | number;
|
|
67
|
+
table: string;
|
|
68
|
+
}>;
|
|
69
|
+
export declare function writePropertyAsReference(arg: ts.ObjectLiteralExpression, name: string, def: string, value: unknown): void;
|
|
70
|
+
export declare function writeCustomProperty(arg: ts.ObjectLiteralExpression, name: string, def: string, value: string): void;
|
|
71
|
+
export declare function mergeDataIntoObjectLiteral(node: ts.ObjectLiteralExpression, data: object): void;
|
|
72
|
+
export declare function setPropertyAssignmentValue(property: ts.PropertyAssignment, value: string | ts.PropertyAssignmentStructure | ts.ImportSpecifierStructure | object): void;
|
|
73
|
+
export declare function transformFunctionArguments<const A extends unknown[]>(node: ts.CallExpression, fn: (...args: A) => unknown, ...args: PartialElements<A>): boolean;
|
|
74
|
+
export declare function removeNode(node: SupportedNode): void;
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.recordSchema = exports.ArrayIterator = exports.getNodeId = void 0;
|
|
27
|
+
exports.stringify = stringify;
|
|
28
|
+
exports.formatSourceFileName = formatSourceFileName;
|
|
29
|
+
exports.getSysUpdateName = getSysUpdateName;
|
|
30
|
+
exports.getOrCreateEntitySourceFile = getOrCreateEntitySourceFile;
|
|
31
|
+
exports.addDefaultImportIfAbsent = addDefaultImportIfAbsent;
|
|
32
|
+
exports.addNamedImportIfAbsent = addNamedImportIfAbsent;
|
|
33
|
+
exports.generateCallExpressionDefaultExport = generateCallExpressionDefaultExport;
|
|
34
|
+
exports.generateCallExpressionExport = generateCallExpressionExport;
|
|
35
|
+
exports.generateCallExpression = generateCallExpression;
|
|
36
|
+
exports.generateCallExpressionExportForDocument = generateCallExpressionExportForDocument;
|
|
37
|
+
exports.getOrCreatePropertyAssignment = getOrCreatePropertyAssignment;
|
|
38
|
+
exports.createOrUpdateScriptProperty = createOrUpdateScriptProperty;
|
|
39
|
+
exports.createOrUpdateStringLiteralProperty = createOrUpdateStringLiteralProperty;
|
|
40
|
+
exports.isEscapedPropertyAssignment = isEscapedPropertyAssignment;
|
|
41
|
+
exports.writeArrayPropertyAsReference = writeArrayPropertyAsReference;
|
|
42
|
+
exports.writePropertyAsReference = writePropertyAsReference;
|
|
43
|
+
exports.writeCustomProperty = writeCustomProperty;
|
|
44
|
+
exports.mergeDataIntoObjectLiteral = mergeDataIntoObjectLiteral;
|
|
45
|
+
exports.setPropertyAssignmentValue = setPropertyAssignmentValue;
|
|
46
|
+
exports.transformFunctionArguments = transformFunctionArguments;
|
|
47
|
+
exports.removeNode = removeNode;
|
|
48
|
+
const sdk_project_1 = require("@servicenow/sdk-project");
|
|
49
|
+
const path_1 = require("path");
|
|
50
|
+
const CallExpression_1 = require("./CallExpression");
|
|
51
|
+
const lodash_1 = require("lodash");
|
|
52
|
+
const ts = __importStar(require("ts-morph"));
|
|
53
|
+
const z = __importStar(require("zod"));
|
|
54
|
+
const path = __importStar(require("path"));
|
|
55
|
+
const ObjectLiteral_1 = require("./ObjectLiteral");
|
|
56
|
+
const GUID_1 = require("../../GUID");
|
|
57
|
+
function stringify(val) {
|
|
58
|
+
return JSON.stringify(val);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Formats a source file name with the .now.ts extension.
|
|
62
|
+
*/
|
|
63
|
+
function formatSourceFileName(name) {
|
|
64
|
+
return (0, path_1.format)({
|
|
65
|
+
name,
|
|
66
|
+
ext: sdk_project_1.NOW_FILE_EXTENSION,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function getSysUpdateName(document, table) {
|
|
70
|
+
if (document.xml) {
|
|
71
|
+
return path.basename(document.xml, path.extname(document.xml));
|
|
72
|
+
}
|
|
73
|
+
return `${table}_${document.guid}`;
|
|
74
|
+
}
|
|
75
|
+
function getOrCreateEntitySourceFile(context, sysUpdateName) {
|
|
76
|
+
const fullPath = (0, path_1.resolve)(context.app.rootDir, context.app.config.generatedDir, formatSourceFileName(sysUpdateName));
|
|
77
|
+
const sourceFile = context.compiler.getSourceFile(fullPath);
|
|
78
|
+
if (sourceFile) {
|
|
79
|
+
return sourceFile;
|
|
80
|
+
}
|
|
81
|
+
context.logger.info(`Generating new source file: ${fullPath}`);
|
|
82
|
+
return context.compiler.createSourceFile(fullPath);
|
|
83
|
+
}
|
|
84
|
+
function addDefaultImportIfAbsent(sourceFile, moduleSpecifier, module) {
|
|
85
|
+
const importDeclaration = sourceFile.getImportDeclaration((d) => d.getModuleSpecifierValue() === moduleSpecifier);
|
|
86
|
+
if (!importDeclaration) {
|
|
87
|
+
sourceFile.addImportDeclaration({
|
|
88
|
+
moduleSpecifier,
|
|
89
|
+
defaultImport: module,
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const defaultImport = importDeclaration.getDefaultImport()?.getText();
|
|
94
|
+
if (defaultImport && defaultImport === module) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
importDeclaration.setDefaultImport(module);
|
|
98
|
+
}
|
|
99
|
+
function addNamedImportIfAbsent(context, sourceFile, moduleSpecifier, module) {
|
|
100
|
+
let importDeclaration = sourceFile.getImportDeclaration((d) => d.getModuleSpecifierValue() === moduleSpecifier && !d.getNamespaceImport() // If it's a namespace import we cannot add named imports, so we have to create a new one
|
|
101
|
+
);
|
|
102
|
+
const importName = typeof module === 'string' ? module : module.name;
|
|
103
|
+
if (!importDeclaration) {
|
|
104
|
+
importDeclaration = sourceFile.addImportDeclaration({
|
|
105
|
+
moduleSpecifier,
|
|
106
|
+
namedImports: [importName],
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const namedImports = importDeclaration.getNamedImports().find((n) => n.getName() === importName);
|
|
110
|
+
if (namedImports) {
|
|
111
|
+
return namedImports;
|
|
112
|
+
}
|
|
113
|
+
context.logger.info(`Adding named import '${importName}' from module '${moduleSpecifier}' to source file: ${path.normalize(sourceFile.getFilePath())}`);
|
|
114
|
+
return importDeclaration.addNamedImport(importName);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Generate an exported variable assignment initialized by a function call with
|
|
118
|
+
* the provided arguments.
|
|
119
|
+
*/
|
|
120
|
+
function generateCallExpressionDefaultExport(context, sourceFile, moduleSpecifier, fn, ...args) {
|
|
121
|
+
addNamedImportIfAbsent(context, sourceFile, moduleSpecifier, fn);
|
|
122
|
+
const exportAssignment = sourceFile.addExportAssignment({
|
|
123
|
+
isExportEquals: false,
|
|
124
|
+
expression: `${fn.name}()`,
|
|
125
|
+
});
|
|
126
|
+
const callExpression = exportAssignment.getExpressionIfKindOrThrow(ts.SyntaxKind.CallExpression);
|
|
127
|
+
transformFunctionArguments(callExpression, fn, ...args);
|
|
128
|
+
return exportAssignment;
|
|
129
|
+
}
|
|
130
|
+
function generateCallExpressionExport(context, sourceFile, moduleSpecifier, exportName, fn, ...args) {
|
|
131
|
+
addNamedImportIfAbsent(context, sourceFile, moduleSpecifier, fn);
|
|
132
|
+
const variableDeclaration = sourceFile
|
|
133
|
+
.addVariableStatement({
|
|
134
|
+
isExported: true,
|
|
135
|
+
declarationKind: ts.VariableDeclarationKind.Const,
|
|
136
|
+
declarations: [
|
|
137
|
+
{
|
|
138
|
+
name: exportName,
|
|
139
|
+
initializer: `${fn.name}()`, // Generate empty function call since we will add arguments later
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
})
|
|
143
|
+
.getDeclarations()[0];
|
|
144
|
+
// Transform function call to add arguments
|
|
145
|
+
const callExpression = variableDeclaration.getInitializerIfKindOrThrow(ts.SyntaxKind.CallExpression);
|
|
146
|
+
transformFunctionArguments(callExpression, fn, ...args);
|
|
147
|
+
return variableDeclaration;
|
|
148
|
+
}
|
|
149
|
+
function generateCallExpression(context, sourceFile, moduleSpecifier, fn, ...args) {
|
|
150
|
+
addNamedImportIfAbsent(context, sourceFile, moduleSpecifier, fn);
|
|
151
|
+
sourceFile.addStatements((writer) => writer.newLine());
|
|
152
|
+
const [statement] = sourceFile.addStatements(`${fn.name}()`);
|
|
153
|
+
const expression = statement.getChildAtIndexIfKindOrThrow(0, ts.SyntaxKind.CallExpression);
|
|
154
|
+
transformFunctionArguments(expression, fn, ...args);
|
|
155
|
+
return expression;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Generate an exported variable assignment initialized by a function call with the
|
|
159
|
+
* provided arguments. The exported variable name will be automatically determined
|
|
160
|
+
* based on the function's name and the document's ID.
|
|
161
|
+
*/
|
|
162
|
+
function generateCallExpressionExportForDocument(context, info, fn, ...args) {
|
|
163
|
+
const { sourceFile, moduleSpecifier } = info;
|
|
164
|
+
return generateCallExpressionDefaultExport(context, sourceFile, moduleSpecifier, fn, ...args);
|
|
165
|
+
}
|
|
166
|
+
function getOrCreatePropertyAssignment(obj, name, initializer = 'undefined') {
|
|
167
|
+
return (obj.getProperty(name)?.asKind(ts.SyntaxKind.PropertyAssignment) ??
|
|
168
|
+
obj.addPropertyAssignment({ name, initializer }));
|
|
169
|
+
}
|
|
170
|
+
function createOrUpdateScriptProperty(obj, name, value) {
|
|
171
|
+
if (!value) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
const property = obj.getProperty(name)?.asKind(ts.SyntaxKind.PropertyAssignment);
|
|
175
|
+
if (property) {
|
|
176
|
+
property.remove();
|
|
177
|
+
}
|
|
178
|
+
value = value.replaceAll('`', '\\`').replaceAll('${', '\\${').trim();
|
|
179
|
+
return createOrUpdateStringLiteralProperty(obj, name, value, '`');
|
|
180
|
+
}
|
|
181
|
+
function createOrUpdateStringLiteralProperty(obj, name, value, valueQuoteStyle = "'") {
|
|
182
|
+
if (value === undefined) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
let property = obj.getProperty(name)?.asKind(ts.SyntaxKind.PropertyAssignment);
|
|
186
|
+
if (!property) {
|
|
187
|
+
property = obj.addPropertyAssignment({ name, initializer: `${valueQuoteStyle}${value}${valueQuoteStyle}` });
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
const valueNode = property.getChildAtIndexIfKind(2, ts.SyntaxKind.StringLiteral);
|
|
191
|
+
if (valueNode) {
|
|
192
|
+
valueNode.setLiteralValue(value || 'undefined');
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const valueNode = property.getChildAtIndexIfKind(2, ts.SyntaxKind.NoSubstitutionTemplateLiteral);
|
|
196
|
+
if (valueNode) {
|
|
197
|
+
valueNode.setLiteralValue(value || 'undefined');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return property;
|
|
202
|
+
}
|
|
203
|
+
function isEscapedPropertyAssignment(args, name) {
|
|
204
|
+
const prop = args.getProperty(name);
|
|
205
|
+
if (!prop) {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
const asExpression = prop.getChildAtIndexIfKind(2, ts.SyntaxKind.AsExpression);
|
|
209
|
+
if (asExpression && asExpression.getFullText().indexOf('any') !== -1) {
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
function isResolvablePropertyAssignment(args, propertyName) {
|
|
215
|
+
const prop = args.getProperty(propertyName);
|
|
216
|
+
if (!prop) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
const identifierExp = prop.getChildAtIndexIfKind(2, ts.SyntaxKind.Identifier);
|
|
220
|
+
if (!identifierExp) {
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
// Variable definition may be from other file
|
|
224
|
+
identifierExp.getSourceFile().fixMissingImports();
|
|
225
|
+
const definitions = identifierExp.getDefinitionNodes();
|
|
226
|
+
if (definitions && definitions.length > 0) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
/** utility function to get the $id value in a object literal node */
|
|
232
|
+
const getNodeId = (node) => {
|
|
233
|
+
const prop = node.getPropertyOrThrow('$id').asKindOrThrow(ts.SyntaxKind.PropertyAssignment);
|
|
234
|
+
if (prop.getInitializerIfKind(ts.SyntaxKind.ElementAccessExpression)) {
|
|
235
|
+
const expression = prop.getInitializerIfKind(ts.SyntaxKind.ElementAccessExpression)?.getArgumentExpression();
|
|
236
|
+
return (expression?.asKind(ts.SyntaxKind.StringLiteral)?.getLiteralValue() ??
|
|
237
|
+
expression?.asKind(ts.SyntaxKind.NumericLiteral)?.getLiteralValue().toString());
|
|
238
|
+
}
|
|
239
|
+
else if (prop.getInitializerIfKind(ts.SyntaxKind.StringLiteral)) {
|
|
240
|
+
return prop.getInitializerIfKind(ts.SyntaxKind.StringLiteral)?.getLiteralValue();
|
|
241
|
+
}
|
|
242
|
+
return `${prop.getInitializerIfKind(ts.SyntaxKind.NumericLiteral)?.getLiteralValue()}`;
|
|
243
|
+
};
|
|
244
|
+
exports.getNodeId = getNodeId;
|
|
245
|
+
/** utility iterator for iterating array structures in rest api*/
|
|
246
|
+
class ArrayIterator {
|
|
247
|
+
prop;
|
|
248
|
+
arrayExpression;
|
|
249
|
+
elements;
|
|
250
|
+
idx;
|
|
251
|
+
constructor(prop) {
|
|
252
|
+
this.prop = prop;
|
|
253
|
+
this.arrayExpression = this.prop.getInitializerIfKindOrThrow(ts.SyntaxKind.ArrayLiteralExpression);
|
|
254
|
+
this.elements = this.arrayExpression.getElements();
|
|
255
|
+
this.idx = 0;
|
|
256
|
+
}
|
|
257
|
+
hasNext() {
|
|
258
|
+
return this.idx < this.elements.length;
|
|
259
|
+
}
|
|
260
|
+
next() {
|
|
261
|
+
return this.elements[this.idx++];
|
|
262
|
+
}
|
|
263
|
+
getExpression() {
|
|
264
|
+
return this.arrayExpression;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
exports.ArrayIterator = ArrayIterator;
|
|
268
|
+
function writeArrayPropertyAsReference(arg, name, def, value) {
|
|
269
|
+
if (!value || !(0, lodash_1.isArray)(value)) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const propertyAssignment = getOrCreatePropertyAssignment(arg, name, def);
|
|
273
|
+
const newValues = value.map((val) => {
|
|
274
|
+
propertyAssignment.setInitializer((writer) => {
|
|
275
|
+
writer.write(val);
|
|
276
|
+
});
|
|
277
|
+
return isResolvablePropertyAssignment(arg, name) ? val : `'${val}' as any`;
|
|
278
|
+
});
|
|
279
|
+
propertyAssignment.setInitializer((writer) => {
|
|
280
|
+
writer.write(`[${newValues}]`);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
exports.recordSchema = z.object({
|
|
284
|
+
$id: z.union([z.string(), z.number()]),
|
|
285
|
+
data: z.record(z.any()),
|
|
286
|
+
table: z.string(),
|
|
287
|
+
});
|
|
288
|
+
function writePropertyAsReference(arg, name, def, value) {
|
|
289
|
+
if (!value || (0, lodash_1.isArray)(value)) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
// This value is already a reference that we shouldn't attempt to resolve
|
|
293
|
+
if (exports.recordSchema.safeParse(value).success) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
const propertyAssignment = getOrCreatePropertyAssignment(arg, name, def);
|
|
297
|
+
if ((0, lodash_1.isEmpty)(value)) {
|
|
298
|
+
propertyAssignment.setInitializer((writer) => {
|
|
299
|
+
writer.write(stringify(value));
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
if ((0, lodash_1.isPlainObject)(value)) {
|
|
303
|
+
const nestedArgs = propertyAssignment.getInitializerIfKindOrThrow(ts.SyntaxKind.ObjectLiteralExpression);
|
|
304
|
+
for (const property in value) {
|
|
305
|
+
if ((0, lodash_1.isArray)(value[property])) {
|
|
306
|
+
writeArrayPropertyAsReference(nestedArgs, property, '[]', value[property]);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
writePropertyAsReference(nestedArgs, property, '{}', value[property]);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
const escapedPreTransform = isEscapedPropertyAssignment(arg, name);
|
|
315
|
+
if ((0, GUID_1.isGUID)(value)) {
|
|
316
|
+
propertyAssignment.setInitializer((writer) => {
|
|
317
|
+
writer.write(stringify(value));
|
|
318
|
+
});
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
propertyAssignment.setInitializer((writer) => {
|
|
322
|
+
writer.write(value);
|
|
323
|
+
});
|
|
324
|
+
if (isResolvablePropertyAssignment(arg, name)) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
value = `${stringify(value)} as any`;
|
|
328
|
+
if (!escapedPreTransform) {
|
|
329
|
+
// Generate comment
|
|
330
|
+
value = `${value} /*Generated*/`; // comment like this '//comment' breaks the code in some occasion
|
|
331
|
+
}
|
|
332
|
+
propertyAssignment.setInitializer((writer) => {
|
|
333
|
+
writer.write(value);
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
function writeCustomProperty(arg, name, def, value) {
|
|
337
|
+
if (!value) {
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
const propertyAssignment = getOrCreatePropertyAssignment(arg, name, def);
|
|
341
|
+
propertyAssignment.setInitializer((writer) => {
|
|
342
|
+
writer.write(value);
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
function mergeDataIntoObjectLiteral(node, data) {
|
|
346
|
+
for (const [key, value] of Object.entries(data)) {
|
|
347
|
+
const existingAssignment = (0, ObjectLiteral_1.getPropertyAssignment)(node, key);
|
|
348
|
+
const array = (0, lodash_1.isArray)(value);
|
|
349
|
+
if (existingAssignment) {
|
|
350
|
+
if (value === '') {
|
|
351
|
+
removeNode(existingAssignment);
|
|
352
|
+
}
|
|
353
|
+
else if (array && value.length === 0) {
|
|
354
|
+
removeNode(existingAssignment);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if ((0, lodash_1.isObject)(value) && !Object.values(value).some((value) => value !== undefined)) {
|
|
358
|
+
// Don't write an empty object literal
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
if (value !== '' && value !== undefined && !(array && value.length === 0)) {
|
|
362
|
+
const propertyAssignment = getOrCreatePropertyAssignment(node, key, array ? '[]' : '{}');
|
|
363
|
+
setPropertyAssignmentValue(propertyAssignment, value);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
function setPropertyAssignmentValue(property, value) {
|
|
368
|
+
if (typeof value === 'object') {
|
|
369
|
+
if (ts.Structure.isPropertyAssignment(value)) {
|
|
370
|
+
property.setInitializer(value.initializer);
|
|
371
|
+
}
|
|
372
|
+
else if (ts.Structure.isImportSpecifier(value)) {
|
|
373
|
+
property.setInitializer(value.name);
|
|
374
|
+
}
|
|
375
|
+
else if ((0, lodash_1.isArray)(value)) {
|
|
376
|
+
property.setInitializer(stringify(value));
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
mergeDataIntoObjectLiteral(property.getInitializerIfKindOrThrow(ts.SyntaxKind.ObjectLiteralExpression), value);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
property.setInitializer(stringify(value));
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
function transformFunctionArguments(node, fn, ...args) {
|
|
387
|
+
if ((0, CallExpression_1.getCallExpressionName)(node) !== fn.name) {
|
|
388
|
+
return false;
|
|
389
|
+
}
|
|
390
|
+
for (let i = 0; i < args.length; i++) {
|
|
391
|
+
const argValue = args[i];
|
|
392
|
+
const argNode = node.getArguments()[i] ?? node.insertArgument(i, '{}');
|
|
393
|
+
if (argValue && typeof argValue === 'object') {
|
|
394
|
+
mergeDataIntoObjectLiteral(argNode.asKindOrThrow(ts.SyntaxKind.ObjectLiteralExpression), argValue);
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
argNode.replaceWithText(stringify(argValue));
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return true;
|
|
401
|
+
}
|
|
402
|
+
function removeNode(node) {
|
|
403
|
+
if ('remove' in node) {
|
|
404
|
+
return node.remove();
|
|
405
|
+
}
|
|
406
|
+
else if (ts.Node.isCallExpression(node)) {
|
|
407
|
+
const parent = node.getParent();
|
|
408
|
+
if (ts.Node.isExpressionStatement(parent) || ts.Node.isVariableDeclaration(parent)) {
|
|
409
|
+
return removeNode(parent);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
else if (ts.Node.isStatement(node)) {
|
|
413
|
+
removeNode(node);
|
|
414
|
+
}
|
|
415
|
+
// TODO: Nodes that aren't complete statements can't be arbitrarily removed because it
|
|
416
|
+
// will almost always result in broken code. Replacing with 'undefined' works pretty
|
|
417
|
+
// much anywhere, but isn't very elegant. We should revisit this and perhaps make the
|
|
418
|
+
// behavior configurable.
|
|
419
|
+
node.replaceWithText('undefined');
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=CodeTransformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeTransformation.js","sourceRoot":"","sources":["../../../src/plugins/util/CodeTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,8BAEC;AASD,oDAKC;AAED,4CAKC;AAED,kEASC;AAED,4DAeC;AAED,wDA4BC;AAMD,kFAiBC;AAED,oEA2BC;AAED,wDAgBC;AAOD,0FAWC;AAED,sEASC;AAED,oEAYC;AAED,kFA2BC;AAED,kEAYC;AA+DD,sEAuBC;AAQD,4DAyDC;AAED,kDASC;AAED,gEAsBC;AAED,gEAoBC;AAED,gEAqBC;AAED,gCAiBC;AAnfD,yDAA2E;AAC3E,+BAAsC;AAEtC,qDAAwD;AACxD,mCAAkE;AAClE,6CAA8B;AAC9B,uCAAwB;AACxB,2CAA4B;AAE5B,mDAAuD;AACvD,qCAAmC;AAEnC,SAAgB,SAAS,CAAC,GAAY;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AAMD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC7C,OAAO,IAAA,aAAM,EAAC;QACV,IAAI;QACJ,GAAG,EAAE,gCAAkB;KAC1B,CAAC,CAAA;AACN,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAqC,EAAE,KAAa;IACjF,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAA;AACtC,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAgB,EAAE,aAAqB;IAC/E,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAA;IACnH,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC3D,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,UAAU,CAAA;IACrB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAA;IAC9D,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AACtD,CAAC;AAED,SAAgB,wBAAwB,CAAC,UAAyB,EAAE,eAAuB,EAAE,MAAc;IACvG,MAAM,iBAAiB,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE,KAAK,eAAe,CAAC,CAAA;IACjH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,UAAU,CAAC,oBAAoB,CAAC;YAC5B,eAAe;YACf,aAAa,EAAE,MAAM;SACxB,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAA;IACrE,IAAI,aAAa,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QAC5C,OAAM;IACV,CAAC;IACD,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,sBAAsB,CAClC,OAAgB,EAChB,UAAyB,EACzB,eAAuB,EACvB,MAAiC;IAEjC,IAAI,iBAAiB,GAAG,UAAU,CAAC,oBAAoB,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE,KAAK,eAAe,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,yFAAyF;KAC9K,CAAA;IAED,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA;IACpE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,iBAAiB,GAAG,UAAU,CAAC,oBAAoB,CAAC;YAChD,eAAe;YACf,YAAY,EAAE,CAAC,UAAU,CAAC;SAC7B,CAAC,CAAA;IACN,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,CAAA;IAChG,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,YAAY,CAAA;IACvB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,IAAI,CACf,wBAAwB,UAAU,kBAAkB,eAAe,qBAAqB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CACrI,CAAA;IAED,OAAO,iBAAiB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,SAAgB,mCAAmC,CAC/C,OAAgB,EAChB,UAAyB,EACzB,eAAuB,EACvB,EAA2B,EAC3B,GAAG,IAAwB;IAE3B,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;IAChE,MAAM,gBAAgB,GAAG,UAAU,CAAC,mBAAmB,CAAC;QACpD,cAAc,EAAE,KAAK;QACrB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI;KAC7B,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IAChG,0BAA0B,CAAC,cAAc,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IAEvD,OAAO,gBAAgB,CAAA;AAC3B,CAAC;AAED,SAAgB,4BAA4B,CACxC,OAAgB,EAChB,UAAyB,EACzB,eAAuB,EACvB,UAAkB,EAClB,EAA2B,EAC3B,GAAG,IAAwB;IAE3B,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;IAChE,MAAM,mBAAmB,GAAG,UAAU;SACjC,oBAAoB,CAAC;QAClB,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK;QACjD,YAAY,EAAE;YACV;gBACI,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,iEAAiE;aACjG;SACJ;KACJ,CAAC;SACD,eAAe,EAAE,CAAC,CAAC,CAAE,CAAA;IAE1B,2CAA2C;IAC3C,MAAM,cAAc,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IACpG,0BAA0B,CAAC,cAAc,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IAEvD,OAAO,mBAAmB,CAAA;AAC9B,CAAC;AAED,SAAgB,sBAAsB,CAClC,OAAgB,EAChB,UAAyB,EACzB,eAAuB,EACvB,EAA2B,EAC3B,GAAG,IAAwB;IAE3B,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;IAChE,UAAU,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IACtD,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAA;IAE5D,MAAM,UAAU,GAAG,SAAU,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IAE3F,0BAA0B,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IAEnD,OAAO,UAAU,CAAA;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAgB,uCAAuC,CACnD,OAAgB,EAChB,IAGC,EACD,EAA2B,EAC3B,GAAG,IAAwB;IAE3B,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;IAC5C,OAAO,mCAAmC,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;AACjG,CAAC;AAED,SAAgB,6BAA6B,CACzC,GAA+B,EAC/B,IAAY,EACZ,cAAsB,WAAW;IAEjC,OAAO,CACH,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC/D,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CACnD,CAAA;AACL,CAAC;AAED,SAAgB,4BAA4B,CAAC,GAA+B,EAAE,IAAY,EAAE,KAAa;IACrG,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAM;IACV,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAChF,IAAI,QAAQ,EAAE,CAAC;QACX,QAAQ,CAAC,MAAM,EAAE,CAAA;IACrB,CAAC;IACD,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IAEpE,OAAO,mCAAmC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AACrE,CAAC;AAED,SAAgB,mCAAmC,CAC/C,GAA+B,EAC/B,IAAY,EACZ,KAAyB,EACzB,kBAAmC,GAAG;IAEtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAM;IACV,CAAC;IAED,IAAI,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAE9E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,QAAQ,GAAG,GAAG,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,eAAe,GAAG,KAAK,GAAG,eAAe,EAAE,EAAE,CAAC,CAAA;IAC/G,CAAC;SAAM,CAAC;QACJ,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;QAChF,IAAI,SAAS,EAAE,CAAC;YACZ,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,WAAW,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAA;YAChG,IAAI,SAAS,EAAE,CAAC;gBACZ,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,WAAW,CAAC,CAAA;YACnD,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,SAAgB,2BAA2B,CAAC,IAAgC,EAAE,IAAY;IACtF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IAC9E,IAAI,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAgC,EAAE,YAAoB;IAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,6CAA6C;IAC7C,aAAa,CAAC,aAAa,EAAE,CAAC,iBAAiB,EAAE,CAAA;IAEjD,MAAM,WAAW,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAA;IACtD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAA;IACf,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,qEAAqE;AAC9D,MAAM,SAAS,GAAG,CAAC,IAAgC,EAAE,EAAE;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAC3F,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,qBAAqB,EAAE,CAAA;QAC5G,OAAO,CACH,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE;YAClE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,CACjF,CAAA;IACL,CAAC;SAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,CAAA;IACpF,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,EAAE,CAAA;AAC1F,CAAC,CAAA;AAZY,QAAA,SAAS,aAYrB;AAED,iEAAiE;AACjE,MAAa,aAAa;IAKF;IAJpB,eAAe,CAA2B;IAC1C,QAAQ,CAAmC;IAC3C,GAAG,CAAQ;IAEX,YAAoB,IAA2B;QAA3B,SAAI,GAAJ,IAAI,CAAuB;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAE,CAAA;QACnG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAA;QAClD,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;IAChB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;IAC1C,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAE,CAAA;IACrC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,eAAe,CAAA;IAC/B,CAAC;CACJ;AAtBD,sCAsBC;AAED,SAAgB,6BAA6B,CACzC,GAA+B,EAC/B,IAAY,EACZ,GAAW,EACX,KAAe;IAEf,IAAI,CAAC,KAAK,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAM;IACV,CAAC;IAED,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAExE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,kBAAkB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,OAAO,8BAA8B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,kBAAkB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACN,CAAC;AAEY,QAAA,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAA;AAEF,SAAgB,wBAAwB,CAAC,GAA+B,EAAE,IAAY,EAAE,GAAW,EAAE,KAAc;IAC/G,IAAI,CAAC,KAAK,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAM;IACV,CAAC;IAED,yEAAyE;IACzE,IAAI,oBAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACxC,OAAM;IACV,CAAC;IAED,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAExE,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QACjB,kBAAkB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,2BAA2B,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAA;QACxG,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC3B,6BAA6B,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACJ,wBAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;YACzE,CAAC;QACL,CAAC;QAED,OAAM;IACV,CAAC;IAED,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAElE,IAAI,IAAA,aAAM,EAAC,KAAe,CAAC,EAAE,CAAC;QAC1B,kBAAkB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,kBAAkB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,KAAK,CAAC,KAAe,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,IAAI,8BAA8B,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAM;IACV,CAAC;IAED,KAAK,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAA;IACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,mBAAmB;QACnB,KAAK,GAAG,GAAG,KAAK,gBAAgB,CAAA,CAAC,iEAAiE;IACtG,CAAC;IAED,kBAAkB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,KAAK,CAAC,KAAe,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAA+B,EAAE,IAAY,EAAE,GAAW,EAAE,KAAa;IACzG,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAM;IACV,CAAC;IAED,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IACxE,kBAAkB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAgB,0BAA0B,CAAC,IAAgC,EAAE,IAAY;IACrF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAG,IAAA,qCAAqB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3D,MAAM,KAAK,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,kBAAkB,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACf,UAAU,CAAC,kBAAkB,CAAC,CAAA;YAClC,CAAC;iBAAM,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,UAAU,CAAC,kBAAkB,CAAC,CAAA;YAClC,CAAC;QACL,CAAC;QAED,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;YAChF,sCAAsC;YACtC,SAAQ;QACZ,CAAC;QAED,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACxF,0BAA0B,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAgB,0BAA0B,CACtC,QAA+B,EAC/B,KAAqF;IAErF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC9C,CAAC;aAAM,IAAI,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,CAAC;aAAM,CAAC;YACJ,0BAA0B,CACtB,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAC3E,KAAK,CACR,CAAA;QACL,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;AACL,CAAC;AAED,SAAgB,0BAA0B,CACtC,IAAuB,EACvB,EAA2B,EAC3B,GAAG,IAAwB;IAE3B,IAAI,IAAA,sCAAqB,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAEtE,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3C,0BAA0B,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,QAAQ,CAAC,CAAA;QACtG,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChD,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAA;AACf,CAAC;AAED,SAAgB,UAAU,CAAC,IAAmB;IAC1C,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC;SAAM,IAAI,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,IAAI,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC;IACL,CAAC;SAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,sFAAsF;IACtF,oFAAoF;IACpF,qFAAqF;IACrF,yBAAyB;IACzB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC"}
|