@lcap/nasl 4.4.0-beta.9 → 4.4.0-rc.2
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/out/generator/genBundleFiles.d.ts.map +1 -1
- package/out/generator/genBundleFiles.js +32 -3
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/qiankun.d.ts +1 -1
- package/out/generator/qiankun.d.ts.map +1 -1
- package/out/generator/qiankun.js +4 -0
- package/out/generator/qiankun.js.map +1 -1
- package/out/generator/release-body/body.d.ts +0 -1
- package/out/generator/release-body/body.d.ts.map +1 -1
- package/out/generator/release-body/body.js +1 -390
- package/out/generator/release-body/body.js.map +1 -1
- package/out/generator/release-body/data.d.ts.map +1 -1
- package/out/generator/release-body/data.js +1 -10
- package/out/generator/release-body/data.js.map +1 -1
- package/out/generator/release-body/share-content.js.map +1 -1
- package/out/generator/release-body/types.d.ts +1 -0
- package/out/generator/release-body/types.d.ts.map +1 -1
- package/out/generator/templates/chunk.js +1 -1
- package/out/generator/templates/runtime.js +2 -2
- package/out/natural/exports/nasl2Files.d.ts.map +1 -0
- package/out/natural/{getContext → exports}/nasl2Files.js +4 -4
- package/out/natural/exports/nasl2Files.js.map +1 -0
- package/out/natural/{transform2BatchActions.d.ts → exports/transform2BatchActions.d.ts} +1 -1
- package/out/natural/exports/transform2BatchActions.d.ts.map +1 -0
- package/out/natural/{transform2BatchActions.js → exports/transform2BatchActions.js} +68 -19
- package/out/natural/exports/transform2BatchActions.js.map +1 -0
- package/out/natural/index.d.ts +12 -12
- package/out/natural/index.d.ts.map +1 -1
- package/out/natural/index.js +12 -14
- package/out/natural/index.js.map +1 -1
- package/out/natural/{genNaturalTS.d.ts → old/getContext/genNaturalTS.d.ts} +12 -12
- package/out/natural/old/getContext/genNaturalTS.d.ts.map +1 -0
- package/out/natural/{genNaturalTS.js → old/getContext/genNaturalTS.js} +65 -65
- package/out/natural/old/getContext/genNaturalTS.js.map +1 -0
- package/out/natural/old/getContext/genTextualNASL.d.ts.map +1 -0
- package/out/natural/old/getContext/genTextualNASL.js.map +1 -0
- package/out/natural/{getContext → old/getContext}/getUILib.d.ts +1 -1
- package/out/natural/old/getContext/getUILib.d.ts.map +1 -0
- package/out/natural/{getContext → old/getContext}/getUILib.js +14 -14
- package/out/natural/old/getContext/getUILib.js.map +1 -0
- package/out/natural/{getContext → old/getContext}/index.d.ts +3 -3
- package/out/natural/old/getContext/index.d.ts.map +1 -0
- package/out/natural/{getContext → old/getContext}/index.js +4 -4
- package/out/natural/old/getContext/index.js.map +1 -0
- package/out/natural/old/getContext/naslStdlibMap.d.ts.map +1 -0
- package/out/natural/{getContext → old/getContext}/naslStdlibMap.js +10 -10
- package/out/natural/old/getContext/naslStdlibMap.js.map +1 -0
- package/out/natural/{transformTS2UI.d.ts → old/parser/transformTS2UI.d.ts} +2 -2
- package/out/natural/old/parser/transformTS2UI.d.ts.map +1 -0
- package/out/natural/{transformTS2UI.js → old/parser/transformTS2UI.js} +12 -13
- package/out/natural/old/parser/transformTS2UI.js.map +1 -0
- package/out/natural/{transformTSCode.d.ts → old/parser/transformTSCode.d.ts} +1 -1
- package/out/natural/old/parser/transformTSCode.d.ts.map +1 -0
- package/out/natural/{transformTSCode.js → old/parser/transformTSCode.js} +6 -6
- package/out/natural/old/parser/transformTSCode.js.map +1 -0
- package/out/natural/{tools.d.ts → old/tools.d.ts} +0 -4
- package/out/natural/old/tools.d.ts.map +1 -0
- package/out/natural/{tools.js → old/tools.js} +7 -25
- package/out/natural/old/tools.js.map +1 -0
- package/out/natural/{parseNaturalTS.d.ts → parser/parseNaturalTS.d.ts} +1 -1
- package/out/natural/parser/parseNaturalTS.d.ts.map +1 -0
- package/out/natural/{parseNaturalTS.js → parser/parseNaturalTS.js} +14 -10
- package/out/natural/parser/parseNaturalTS.js.map +1 -0
- package/out/natural/{parseNaturalTSXView.d.ts → parser/parseNaturalTSXView.d.ts} +1 -2
- package/out/natural/parser/parseNaturalTSXView.d.ts.map +1 -0
- package/out/natural/{parseNaturalTSXView.js → parser/parseNaturalTSXView.js} +51 -58
- package/out/natural/parser/parseNaturalTSXView.js.map +1 -0
- package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.d.ts +7 -0
- package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.d.ts.map +1 -0
- package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.js +38 -0
- package/out/natural/transforms/checker/checkDataQueryCalleeNameOrder.js.map +1 -0
- package/out/natural/transforms/checker/checkDefaultValue.d.ts +13 -0
- package/out/natural/transforms/checker/checkDefaultValue.d.ts.map +1 -0
- package/out/natural/transforms/checker/checkDefaultValue.js +33 -0
- package/out/natural/transforms/checker/checkDefaultValue.js.map +1 -0
- package/out/natural/transforms/checker/checkViewElement.d.ts +29 -0
- package/out/natural/transforms/checker/checkViewElement.d.ts.map +1 -0
- package/out/natural/transforms/checker/checkViewElement.js +422 -0
- package/out/natural/transforms/checker/checkViewElement.js.map +1 -0
- package/out/natural/transforms/checker/index.d.ts +17 -0
- package/out/natural/transforms/checker/index.d.ts.map +1 -0
- package/out/natural/transforms/checker/index.js +26 -0
- package/out/natural/transforms/checker/index.js.map +1 -0
- package/out/natural/transforms/transform2Entity.d.ts +8 -1
- package/out/natural/transforms/transform2Entity.d.ts.map +1 -1
- package/out/natural/transforms/transform2Entity.js +88 -18
- package/out/natural/transforms/transform2Entity.js.map +1 -1
- package/out/natural/transforms/transform2Enum.d.ts +1 -1
- package/out/natural/transforms/transform2Enum.d.ts.map +1 -1
- package/out/natural/transforms/transform2Enum.js +5 -1
- package/out/natural/transforms/transform2Enum.js.map +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts.map +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.js +3 -3
- package/out/natural/transforms/transform2GlobalLogicDeclaration.js.map +1 -1
- package/out/natural/transforms/transform2Logic.d.ts +1 -1
- package/out/natural/transforms/transform2Logic.d.ts.map +1 -1
- package/out/natural/transforms/transform2Logic.js +4 -4
- package/out/natural/transforms/transform2Logic.js.map +1 -1
- package/out/natural/transforms/transform2LogicItem.d.ts +6 -3
- package/out/natural/transforms/transform2LogicItem.d.ts.map +1 -1
- package/out/natural/transforms/transform2LogicItem.js +99 -110
- package/out/natural/transforms/transform2LogicItem.js.map +1 -1
- package/out/natural/transforms/transform2MetadataType.d.ts +1 -1
- package/out/natural/transforms/transform2MetadataType.d.ts.map +1 -1
- package/out/natural/transforms/transform2MetadataType.js +1 -1
- package/out/natural/transforms/transform2MetadataType.js.map +1 -1
- package/out/natural/transforms/transform2Param.d.ts +4 -0
- package/out/natural/transforms/transform2Param.d.ts.map +1 -0
- package/out/natural/transforms/transform2Param.js +114 -0
- package/out/natural/transforms/transform2Param.js.map +1 -0
- package/out/natural/transforms/transform2Structure.d.ts +1 -1
- package/out/natural/transforms/transform2Structure.d.ts.map +1 -1
- package/out/natural/transforms/transform2Structure.js +13 -2
- package/out/natural/transforms/transform2Structure.js.map +1 -1
- package/out/natural/transforms/transform2TypeAnnotation.d.ts +1 -1
- package/out/natural/transforms/transform2TypeAnnotation.d.ts.map +1 -1
- package/out/natural/transforms/transform2TypeAnnotation.js +2 -2
- package/out/natural/transforms/transform2TypeAnnotation.js.map +1 -1
- package/out/natural/transforms/transform2ValidationRule.d.ts +1 -1
- package/out/natural/transforms/transform2ValidationRule.d.ts.map +1 -1
- package/out/natural/transforms/transform2ValidationRule.js +1 -1
- package/out/natural/transforms/transform2ValidationRule.js.map +1 -1
- package/out/natural/transforms/transform2Variable.d.ts +2 -1
- package/out/natural/transforms/transform2Variable.d.ts.map +1 -1
- package/out/natural/transforms/transform2Variable.js +22 -2
- package/out/natural/transforms/transform2Variable.js.map +1 -1
- package/out/natural/transforms/transformThemeAndStyle.d.ts +1 -1
- package/out/natural/transforms/transformThemeAndStyle.d.ts.map +1 -1
- package/out/natural/transforms/transformThemeAndStyle.js +1 -1
- package/out/natural/transforms/transformThemeAndStyle.js.map +1 -1
- package/out/natural/transforms/utils/fetchFromComments.d.ts +3 -0
- package/out/natural/transforms/utils/fetchFromComments.d.ts.map +1 -0
- package/out/natural/transforms/utils/fetchFromComments.js +10 -0
- package/out/natural/transforms/utils/fetchFromComments.js.map +1 -0
- package/out/natural/transforms/utils/misc.d.ts +16 -0
- package/out/natural/transforms/utils/misc.d.ts.map +1 -0
- package/out/natural/transforms/utils/misc.js +240 -0
- package/out/natural/transforms/utils/misc.js.map +1 -0
- package/out/natural/transforms/utils/parseDecorator.d.ts +46 -0
- package/out/natural/transforms/utils/parseDecorator.d.ts.map +1 -0
- package/out/natural/transforms/utils/parseDecorator.js +180 -0
- package/out/natural/transforms/utils/parseDecorator.js.map +1 -0
- package/out/natural/utils/index.d.ts +59 -0
- package/out/natural/utils/index.d.ts.map +1 -0
- package/out/natural/utils/index.js +168 -0
- package/out/natural/utils/index.js.map +1 -0
- package/out/server/extendBaseNode.js +14 -0
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/findReference.js +1 -1
- package/out/server/findReference.js.map +1 -1
- package/out/server/naslServer.d.ts.map +1 -1
- package/out/server/naslServer.js +33 -17
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js.map +1 -1
- package/out/service/autofix/rules/rule-convert-incompatible-assignment-to-union.js.map +1 -1
- package/out/service/storage/init.d.ts.map +1 -1
- package/out/service/storage/init.js +9 -2
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/block2nasl/transformBlock2Nasl.js +2 -2
- package/out/templator/block2nasl/transformBlock2Nasl.js.map +1 -1
- package/out/utils/can-i-use.d.ts.map +1 -1
- package/out/utils/can-i-use.js +1 -0
- package/out/utils/can-i-use.js.map +1 -1
- package/package.json +9 -9
- package/sandbox/stdlib/nasl.core.ts +2 -0
- package/sandbox/stdlib/nasl.io.ts +1 -1
- package/sandbox/stdlib/nasl.oql.ts +2 -0
- package/out/natural/genNaturalTS.d.ts.map +0 -1
- package/out/natural/genNaturalTS.js.map +0 -1
- package/out/natural/genTextualNASL.d.ts.map +0 -1
- package/out/natural/genTextualNASL.js.map +0 -1
- package/out/natural/getContext/getUILib.d.ts.map +0 -1
- package/out/natural/getContext/getUILib.js.map +0 -1
- package/out/natural/getContext/index.d.ts.map +0 -1
- package/out/natural/getContext/index.js.map +0 -1
- package/out/natural/getContext/nasl2Files.d.ts.map +0 -1
- package/out/natural/getContext/nasl2Files.js.map +0 -1
- package/out/natural/getContext/naslStdlibMap.d.ts.map +0 -1
- package/out/natural/getContext/naslStdlibMap.js.map +0 -1
- package/out/natural/parseNaturalTS.d.ts.map +0 -1
- package/out/natural/parseNaturalTS.js.map +0 -1
- package/out/natural/parseNaturalTSXView.d.ts.map +0 -1
- package/out/natural/parseNaturalTSXView.js.map +0 -1
- package/out/natural/tools.d.ts.map +0 -1
- package/out/natural/tools.js.map +0 -1
- package/out/natural/transform2BatchActions.d.ts.map +0 -1
- package/out/natural/transform2BatchActions.js.map +0 -1
- package/out/natural/transformTS2UI.d.ts.map +0 -1
- package/out/natural/transformTS2UI.js.map +0 -1
- package/out/natural/transformTSCode.d.ts.map +0 -1
- package/out/natural/transformTSCode.js.map +0 -1
- package/out/natural/transforms/checkViewElement.d.ts +0 -12
- package/out/natural/transforms/checkViewElement.d.ts.map +0 -1
- package/out/natural/transforms/checkViewElement.js +0 -143
- package/out/natural/transforms/checkViewElement.js.map +0 -1
- package/out/natural/transforms/utils.d.ts +0 -137
- package/out/natural/transforms/utils.d.ts.map +0 -1
- package/out/natural/transforms/utils.js +0 -714
- package/out/natural/transforms/utils.js.map +0 -1
- /package/out/natural/{getContext → exports}/nasl2Files.d.ts +0 -0
- /package/out/natural/{genTextualNASL.d.ts → old/getContext/genTextualNASL.d.ts} +0 -0
- /package/out/natural/{genTextualNASL.js → old/getContext/genTextualNASL.js} +0 -0
- /package/out/natural/{getContext → old/getContext}/naslStdlibMap.d.ts +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleListSort = exports.upgradeListSort = exports.replaceCallFunctionMap = exports.callFunctionMap = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
exports.callFunctionMap = [
|
|
6
|
+
'Convert',
|
|
7
|
+
'FormatNumber',
|
|
8
|
+
'FormatDateTime',
|
|
9
|
+
'FormatDate',
|
|
10
|
+
'FromString',
|
|
11
|
+
'ToString',
|
|
12
|
+
'Length',
|
|
13
|
+
'IndexOf',
|
|
14
|
+
'Join',
|
|
15
|
+
'LastIndexOf',
|
|
16
|
+
'Replace',
|
|
17
|
+
'Split',
|
|
18
|
+
'SubString',
|
|
19
|
+
'ToLower',
|
|
20
|
+
'ToUpper',
|
|
21
|
+
'Trim',
|
|
22
|
+
'CurrDate',
|
|
23
|
+
'CurrDateTime',
|
|
24
|
+
'CurrTime',
|
|
25
|
+
'DateDiff',
|
|
26
|
+
'AlterDateTime',
|
|
27
|
+
'GetDateCount',
|
|
28
|
+
'GetSpecificDaysOfWeek',
|
|
29
|
+
'ListAdd',
|
|
30
|
+
'ListAddAll',
|
|
31
|
+
'ListContains',
|
|
32
|
+
'ListInsert',
|
|
33
|
+
'ListDistinct',
|
|
34
|
+
'ListDistinctBy',
|
|
35
|
+
'ListFilter',
|
|
36
|
+
'ListFind',
|
|
37
|
+
'ListFindIndex',
|
|
38
|
+
'ListFlatten',
|
|
39
|
+
'ListGroupBy',
|
|
40
|
+
'ListHead',
|
|
41
|
+
'ListLast',
|
|
42
|
+
'ListMax',
|
|
43
|
+
'ListMin',
|
|
44
|
+
'ListReverse',
|
|
45
|
+
'ListSlice',
|
|
46
|
+
'ListSort',
|
|
47
|
+
'ListSum',
|
|
48
|
+
'ListToMap',
|
|
49
|
+
'ListTransform',
|
|
50
|
+
'ListGet',
|
|
51
|
+
'ListRemove',
|
|
52
|
+
'ListRemoveAt',
|
|
53
|
+
'ListSet',
|
|
54
|
+
'ListRange',
|
|
55
|
+
'ListRepeat',
|
|
56
|
+
'MapContains',
|
|
57
|
+
'MapGet',
|
|
58
|
+
'MapPut',
|
|
59
|
+
'MapKeys',
|
|
60
|
+
'MapRemove',
|
|
61
|
+
'MapValues',
|
|
62
|
+
'EnumToList',
|
|
63
|
+
'EnumItemToText',
|
|
64
|
+
'Round',
|
|
65
|
+
'Clear',
|
|
66
|
+
'Clone',
|
|
67
|
+
'HasValue',
|
|
68
|
+
'RandomInt',
|
|
69
|
+
'NewList',
|
|
70
|
+
'NewMap',
|
|
71
|
+
'NewEntity',
|
|
72
|
+
'NewStructure',
|
|
73
|
+
'NewAnonymousStructure',
|
|
74
|
+
'jsonSerialize',
|
|
75
|
+
'jsonDeserialize',
|
|
76
|
+
"Add",
|
|
77
|
+
"AddAll",
|
|
78
|
+
"Contains",
|
|
79
|
+
"Insert",
|
|
80
|
+
"Get",
|
|
81
|
+
"Remove",
|
|
82
|
+
"RemoveAt",
|
|
83
|
+
"Set",
|
|
84
|
+
"Ceil",
|
|
85
|
+
"Floor",
|
|
86
|
+
"Trunc",
|
|
87
|
+
"TruncDivide",
|
|
88
|
+
"Abs",
|
|
89
|
+
"Pow",
|
|
90
|
+
"Sqrt",
|
|
91
|
+
"Cbrt",
|
|
92
|
+
"Log",
|
|
93
|
+
"PadStart",
|
|
94
|
+
"PadEnd",
|
|
95
|
+
"TrimStart",
|
|
96
|
+
"TrimEnd",
|
|
97
|
+
];
|
|
98
|
+
exports.replaceCallFunctionMap = {
|
|
99
|
+
"ListAdd": "Add",
|
|
100
|
+
"ListAddAll": "AddAll",
|
|
101
|
+
"ListContains": "Contains",
|
|
102
|
+
"ListInsert": "Insert",
|
|
103
|
+
"ListGet": "Get",
|
|
104
|
+
"ListRemove": "Remove",
|
|
105
|
+
"ListRemoveAt": "RemoveAt",
|
|
106
|
+
"ListSet": "Set",
|
|
107
|
+
"COUNTD": "COUNT",
|
|
108
|
+
};
|
|
109
|
+
function upgradeListSort(node) {
|
|
110
|
+
const asc = node?.arguments?.[2]?.expression;
|
|
111
|
+
const by = node?.arguments?.[1]?.expression;
|
|
112
|
+
const newArgument = [
|
|
113
|
+
{
|
|
114
|
+
...node.arguments[0]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
concept: 'Argument',
|
|
118
|
+
keyword: 'fn1',
|
|
119
|
+
expression: {
|
|
120
|
+
concept: 'AnonymousFunction',
|
|
121
|
+
body: {
|
|
122
|
+
concept: 'NewComposite',
|
|
123
|
+
typeAnnotation: {
|
|
124
|
+
concept: 'TypeAnnotation',
|
|
125
|
+
typeKind: 'anonymousStructure',
|
|
126
|
+
properties: [
|
|
127
|
+
{
|
|
128
|
+
concept: 'StructureProperty',
|
|
129
|
+
name: 'asc',
|
|
130
|
+
typeAnnotation: {
|
|
131
|
+
concept: 'TypeAnnotation',
|
|
132
|
+
typeKind: 'primitive',
|
|
133
|
+
typeNamespace: 'nasl.core',
|
|
134
|
+
typeName: 'Boolean'
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
concept: 'StructureProperty',
|
|
139
|
+
name: 'by',
|
|
140
|
+
typeAnnotation: null
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
properties: [
|
|
145
|
+
{
|
|
146
|
+
concept: 'Identifier',
|
|
147
|
+
name: 'asc',
|
|
148
|
+
folded: false,
|
|
149
|
+
typeAnnotation: null
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
concept: 'Identifier',
|
|
153
|
+
name: 'by',
|
|
154
|
+
folded: false,
|
|
155
|
+
typeAnnotation: null
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
rights: [
|
|
159
|
+
{
|
|
160
|
+
concept: 'SelectMembers',
|
|
161
|
+
hideMembers: false,
|
|
162
|
+
expression: asc,
|
|
163
|
+
members: []
|
|
164
|
+
}
|
|
165
|
+
],
|
|
166
|
+
assignmentLines: [
|
|
167
|
+
{
|
|
168
|
+
concept: 'AssignmentLine',
|
|
169
|
+
leftIndex: [0, 0],
|
|
170
|
+
rightIndex: [0]
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
params: by?.params
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
];
|
|
178
|
+
if (by?.body) {
|
|
179
|
+
newArgument[1].expression.body.rights.push({
|
|
180
|
+
concept: 'SelectMembers',
|
|
181
|
+
hideMembers: false,
|
|
182
|
+
expression: by.body,
|
|
183
|
+
members: []
|
|
184
|
+
});
|
|
185
|
+
newArgument[1].expression.body.assignmentLines.push({
|
|
186
|
+
concept: 'AssignmentLine',
|
|
187
|
+
leftIndex: [0, 1],
|
|
188
|
+
rightIndex: [1]
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
node.arguments = newArgument;
|
|
192
|
+
return node;
|
|
193
|
+
}
|
|
194
|
+
exports.upgradeListSort = upgradeListSort;
|
|
195
|
+
function handleListSort(node, parseState) {
|
|
196
|
+
const args = node?.arguments;
|
|
197
|
+
let hasErrorArg = false;
|
|
198
|
+
if (args?.[args?.length - 1]?.expression?.concept === 'BooleanLiteral') {
|
|
199
|
+
if (utils_1.DEBUG)
|
|
200
|
+
return (0, utils_1.throwError)(parseState, '调用 ListSort 函数需要使用最新的写法');
|
|
201
|
+
// 老的 ListSort 结构'nasl.util.ListSort(variable1, (item) => item, true)',要升级成新的
|
|
202
|
+
return upgradeListSort(node);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
args?.forEach((arg, index) => {
|
|
206
|
+
// 新的 ListSort: nasl.util.ListSort(list, (item) => ({ asc: true, by: item.name}))
|
|
207
|
+
if (index !== 0) {
|
|
208
|
+
const argExpression = arg?.expression;
|
|
209
|
+
if (argExpression?.concept === 'AnonymousFunction' && argExpression?.body?.concept === 'NewComposite') {
|
|
210
|
+
// 做下特殊处理
|
|
211
|
+
if (argExpression?.body?.rights[1] && argExpression?.body?.rights[1]?.members[0]) {
|
|
212
|
+
argExpression.body.rights[1].expression = argExpression?.body?.rights[1]?.members[0];
|
|
213
|
+
argExpression.body.rights[1].members = [];
|
|
214
|
+
argExpression.body.assignmentLines[1].rightIndex = [1];
|
|
215
|
+
}
|
|
216
|
+
if (!argExpression?.params?.length) {
|
|
217
|
+
argExpression.params = [
|
|
218
|
+
{
|
|
219
|
+
concept: 'Param',
|
|
220
|
+
name: 'item',
|
|
221
|
+
typeAnnotation: null
|
|
222
|
+
}
|
|
223
|
+
];
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else if (argExpression?.concept === 'SubLogic') {
|
|
227
|
+
hasErrorArg = false;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
hasErrorArg = true;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
if (hasErrorArg)
|
|
235
|
+
return null;
|
|
236
|
+
return node;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.handleListSort = handleListSort;
|
|
240
|
+
//# sourceMappingURL=misc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/misc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { babelTypes, naslTypes, type ParseNaturalTSState } from '../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* 从装饰器对象表达式中提取指定的属性
|
|
4
|
+
*/
|
|
5
|
+
export declare function pickDecoratorObject(objectExpression: babelTypes.ObjectExpression, keys: Set<string>, mappings: Record<string, string>, parseState: ParseNaturalTSState): Record<string, any>;
|
|
6
|
+
/**
|
|
7
|
+
* 装饰器处理器配置接口
|
|
8
|
+
*/
|
|
9
|
+
export interface DecoratorHandler<K extends string = never> {
|
|
10
|
+
name: string;
|
|
11
|
+
allowedKeys?: Set<K>;
|
|
12
|
+
mappings?: {
|
|
13
|
+
[Key in K]?: string;
|
|
14
|
+
};
|
|
15
|
+
customHandler?: (decorator: babelTypes.Decorator, target: naslTypes.BaseNode, parseState: ParseNaturalTSState) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Entity 装饰器处理器配置
|
|
19
|
+
*/
|
|
20
|
+
export declare const ENTITY_DECORATOR: DecoratorHandler<'title' | 'uuid' | 'tableName' | 'origin'>;
|
|
21
|
+
/**
|
|
22
|
+
* EntityProperty 装饰器处理器配置
|
|
23
|
+
*/
|
|
24
|
+
export declare const ENTITY_PROPERTY_DECORATOR: DecoratorHandler<'title' | 'description' | 'uuid' | 'columnName' | 'required' | 'primaryKey' | 'generationRule' | 'sequence'>;
|
|
25
|
+
/**
|
|
26
|
+
* EntityRelation 装饰器处理器配置(特殊处理)
|
|
27
|
+
*/
|
|
28
|
+
export declare const ENTITY_RELATION_DECORATOR: DecoratorHandler;
|
|
29
|
+
/**
|
|
30
|
+
* Enum 装饰器处理器配置
|
|
31
|
+
*/
|
|
32
|
+
export declare const ENUM_DECORATOR: DecoratorHandler<'title' | 'description'>;
|
|
33
|
+
/**
|
|
34
|
+
* Structure 装饰器处理器配置
|
|
35
|
+
*/
|
|
36
|
+
export declare const STRUCTURE_DECORATOR: DecoratorHandler<'title'>;
|
|
37
|
+
/**
|
|
38
|
+
* StructureProperty 装饰器处理器配置
|
|
39
|
+
*/
|
|
40
|
+
export declare const STRUCTURE_PROPERTY_DECORATOR: DecoratorHandler<'title' | 'description' | 'jsonName'>;
|
|
41
|
+
/**
|
|
42
|
+
* 统一的装饰器处理函数
|
|
43
|
+
* 根据配置的处理器列表处理所有装饰器
|
|
44
|
+
*/
|
|
45
|
+
export declare function processDecoratorsByConfig(decorators: babelTypes.Decorator[] | undefined, handlers: DecoratorHandler<string>[], target: naslTypes.BaseNode, parseState: ParseNaturalTSState): void;
|
|
46
|
+
//# sourceMappingURL=parseDecorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseDecorator.d.ts","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/parseDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAY,SAAS,EAAc,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGpG;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,mBAAmB,uBA8BtK;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK;IACtD,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAErB,QAAQ,CAAC,EAAE;SAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;IAEnC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC1H;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAMxF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBAAgB,CAAC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,UAAU,CAgBnK,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBA0BvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAMpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,CAMzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,GAAG,aAAa,GAAG,UAAU,CAM/F,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,UAAU,CAAC,SAAS,EAAE,GAAG,SAAS,EAC9C,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,EACpC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAC1B,UAAU,EAAE,mBAAmB,GAChC,IAAI,CAiCN"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processDecoratorsByConfig = exports.STRUCTURE_PROPERTY_DECORATOR = exports.STRUCTURE_DECORATOR = exports.ENUM_DECORATOR = exports.ENTITY_RELATION_DECORATOR = exports.ENTITY_PROPERTY_DECORATOR = exports.ENTITY_DECORATOR = exports.pickDecoratorObject = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const transform2Entity_1 = require("../transform2Entity");
|
|
6
|
+
/**
|
|
7
|
+
* 从装饰器对象表达式中提取指定的属性
|
|
8
|
+
*/
|
|
9
|
+
function pickDecoratorObject(objectExpression, keys, mappings, parseState) {
|
|
10
|
+
mappings = mappings || {};
|
|
11
|
+
const result = {};
|
|
12
|
+
objectExpression.properties.forEach((item) => {
|
|
13
|
+
if (item.type === 'ObjectProperty' && item.key.type === 'Identifier' && keys.has(item.key.name)) {
|
|
14
|
+
let value;
|
|
15
|
+
if (item.value.type === 'NullLiteral') {
|
|
16
|
+
value = null;
|
|
17
|
+
}
|
|
18
|
+
else if (item.value.type === 'BooleanLiteral') {
|
|
19
|
+
value = item.value.value;
|
|
20
|
+
}
|
|
21
|
+
else if (item.value.type === 'StringLiteral') {
|
|
22
|
+
value = item.value.value;
|
|
23
|
+
}
|
|
24
|
+
else if (item.value.type === 'NumericLiteral') {
|
|
25
|
+
value = item.value.value;
|
|
26
|
+
}
|
|
27
|
+
else if (item.key.name === 'databaseTypeAnnotation') {
|
|
28
|
+
if (item.value.type === 'Identifier' || item.value.type === 'CallExpression') {
|
|
29
|
+
value = (0, transform2Entity_1.transform2DatabaseTypeAnnotation)(item.value, parseState);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return (0, utils_1.throwError)(parseState, '不支持的 databaseTypeAnnotation 类型:' + (0, utils_1.generate)(item).code);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return (0, utils_1.throwError)(parseState, '不支持的装饰器对象属性值:' + (0, utils_1.generate)(item).code);
|
|
37
|
+
}
|
|
38
|
+
const propStr = mappings[item.key.name] || item.key.name;
|
|
39
|
+
result[propStr] = value;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return (0, utils_1.throwError)(parseState, '不支持的装饰器对象属性:' + (0, utils_1.generate)(item).code);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
exports.pickDecoratorObject = pickDecoratorObject;
|
|
48
|
+
/**
|
|
49
|
+
* Entity 装饰器处理器配置
|
|
50
|
+
*/
|
|
51
|
+
exports.ENTITY_DECORATOR = {
|
|
52
|
+
name: 'Entity',
|
|
53
|
+
allowedKeys: new Set(['title', 'uuid', 'tableName', 'origin']),
|
|
54
|
+
mappings: {
|
|
55
|
+
title: 'description',
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* EntityProperty 装饰器处理器配置
|
|
60
|
+
*/
|
|
61
|
+
exports.ENTITY_PROPERTY_DECORATOR = {
|
|
62
|
+
name: 'EntityProperty',
|
|
63
|
+
allowedKeys: new Set([
|
|
64
|
+
'title',
|
|
65
|
+
'description',
|
|
66
|
+
'uuid',
|
|
67
|
+
'columnName',
|
|
68
|
+
'required',
|
|
69
|
+
'primaryKey',
|
|
70
|
+
// 'databaseTypeAnnotation',
|
|
71
|
+
'generationRule',
|
|
72
|
+
'sequence',
|
|
73
|
+
]),
|
|
74
|
+
mappings: {
|
|
75
|
+
title: 'label',
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* EntityRelation 装饰器处理器配置(特殊处理)
|
|
80
|
+
*/
|
|
81
|
+
exports.ENTITY_RELATION_DECORATOR = {
|
|
82
|
+
name: 'EntityRelation',
|
|
83
|
+
customHandler: (decorator, property, parseState) => {
|
|
84
|
+
const decoratorExpression = decorator.expression;
|
|
85
|
+
if (decoratorExpression.type === 'CallExpression') {
|
|
86
|
+
const decoratorsNode = decoratorExpression.typeParameters;
|
|
87
|
+
if (decoratorsNode.params && decoratorsNode.params[0].type === 'TSIndexedAccessType') {
|
|
88
|
+
const releationNode = decoratorsNode.params[0];
|
|
89
|
+
const relationProperty = (0, utils_1.generate)(releationNode.indexType).code || '';
|
|
90
|
+
const objectTypeName = releationNode.objectType.typeName;
|
|
91
|
+
const relationEntity = (0, utils_1.generate)(objectTypeName.right).code || '';
|
|
92
|
+
const relationNamespace = (0, utils_1.generate)(objectTypeName.left).code || '';
|
|
93
|
+
property.relationNamespace = relationNamespace;
|
|
94
|
+
property.relationEntity = relationEntity;
|
|
95
|
+
property.relationProperty = relationProperty.replace(/[']/g, '');
|
|
96
|
+
}
|
|
97
|
+
const arg = decoratorExpression.arguments[0];
|
|
98
|
+
if (arg && arg.type === 'StringLiteral') {
|
|
99
|
+
property.deleteRule = arg.value.toLowerCase();
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
property.deleteRule = 'protect';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
(0, utils_1.throwError)(parseState, 'EntityRelation 不支持这种装饰器写法', decorator);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Enum 装饰器处理器配置
|
|
112
|
+
*/
|
|
113
|
+
exports.ENUM_DECORATOR = {
|
|
114
|
+
name: 'Enum',
|
|
115
|
+
allowedKeys: new Set(['title', 'description']),
|
|
116
|
+
mappings: {
|
|
117
|
+
title: 'description',
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Structure 装饰器处理器配置
|
|
122
|
+
*/
|
|
123
|
+
exports.STRUCTURE_DECORATOR = {
|
|
124
|
+
name: 'Structure',
|
|
125
|
+
allowedKeys: new Set(['title']),
|
|
126
|
+
mappings: {
|
|
127
|
+
title: 'description',
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* StructureProperty 装饰器处理器配置
|
|
132
|
+
*/
|
|
133
|
+
exports.STRUCTURE_PROPERTY_DECORATOR = {
|
|
134
|
+
name: 'StructureProperty',
|
|
135
|
+
allowedKeys: new Set(['title', 'description', 'jsonName']),
|
|
136
|
+
mappings: {
|
|
137
|
+
title: 'label',
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* 统一的装饰器处理函数
|
|
142
|
+
* 根据配置的处理器列表处理所有装饰器
|
|
143
|
+
*/
|
|
144
|
+
function processDecoratorsByConfig(decorators, handlers, target, parseState) {
|
|
145
|
+
if (!decorators || decorators.length === 0)
|
|
146
|
+
return;
|
|
147
|
+
decorators.forEach((decorator) => {
|
|
148
|
+
handlers.forEach((handler) => {
|
|
149
|
+
const decoratorExpression = decorator.expression;
|
|
150
|
+
// 检查是否匹配当前处理器
|
|
151
|
+
if (decoratorExpression.type === 'CallExpression' &&
|
|
152
|
+
decoratorExpression.callee.type === 'Identifier' &&
|
|
153
|
+
decoratorExpression.callee.name === handler.name) {
|
|
154
|
+
// 优先使用自定义处理器
|
|
155
|
+
if (handler.customHandler) {
|
|
156
|
+
handler.customHandler(decorator, target, parseState);
|
|
157
|
+
}
|
|
158
|
+
else if (handler.allowedKeys) { // 使用通用属性提取逻辑
|
|
159
|
+
const decoratorArgs = decoratorExpression.arguments[0];
|
|
160
|
+
if (decoratorArgs) {
|
|
161
|
+
if (decoratorArgs.type === 'ObjectExpression') {
|
|
162
|
+
const decoratorProps = pickDecoratorObject(decoratorArgs, handler.allowedKeys, handler.mappings, parseState);
|
|
163
|
+
Object.keys(decoratorProps).forEach(key => {
|
|
164
|
+
if (decoratorProps[key] !== undefined) {
|
|
165
|
+
target[key] = decoratorProps[key];
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
(0, utils_1.throwError)(parseState, '不支持的装饰器参数形式,应该使用对象表达式', decoratorArgs);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// ignore other decorators
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
exports.processDecoratorsByConfig = processDecoratorsByConfig;
|
|
180
|
+
//# sourceMappingURL=parseDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseDecorator.js","sourceRoot":"","sources":["../../../../src/natural/transforms/utils/parseDecorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as babel from '@babel/core';
|
|
2
|
+
import * as babelTypes from '@babel/types';
|
|
3
|
+
import generate from '@babel/generator';
|
|
4
|
+
import * as naslTypes from '../../concepts';
|
|
5
|
+
export { babelTypes, naslTypes, generate };
|
|
6
|
+
export { genHash, uuidv4, firstLowerCase, firstUpperCase, splitPath } from '../../utils';
|
|
7
|
+
export declare function DEBUG(): boolean;
|
|
8
|
+
export declare const parseNaturalTSErrorMap: Record<number, Array<string>>;
|
|
9
|
+
export declare class ParseNaturalTSError extends Error {
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
export type componentsMap = Map<string, {
|
|
13
|
+
component: any;
|
|
14
|
+
propsMap: Map<string, any>;
|
|
15
|
+
eventsMap: Map<string, any>;
|
|
16
|
+
slotsMap: Map<string, any>;
|
|
17
|
+
}>;
|
|
18
|
+
export interface ParseNaturalTSState {
|
|
19
|
+
$$beacon: true;
|
|
20
|
+
parsingId?: number;
|
|
21
|
+
nodeNamespace?: string;
|
|
22
|
+
nodeName?: string;
|
|
23
|
+
moduleName?: string;
|
|
24
|
+
appendExtName?: boolean;
|
|
25
|
+
source?: string;
|
|
26
|
+
componentsMap?: componentsMap;
|
|
27
|
+
strictForTraining?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface ParseLogicState extends ParseNaturalTSState {
|
|
30
|
+
isInFrontend?: boolean;
|
|
31
|
+
logicType?: 'global_logic' | 'view_logic' | 'event_logic';
|
|
32
|
+
logicKind?: 'declare' | 'export';
|
|
33
|
+
}
|
|
34
|
+
export interface ParseViewState extends ParseLogicState {
|
|
35
|
+
nameMap: Map<string, boolean>;
|
|
36
|
+
parentTag?: string;
|
|
37
|
+
isRootLevel?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 抛出错误
|
|
41
|
+
* @param message 错误信息
|
|
42
|
+
* @param babelNode babel节点,用于便捷生成代码片段信息
|
|
43
|
+
* @param babelNode2 babel节点,用于便捷生成代码片段信息
|
|
44
|
+
*/
|
|
45
|
+
export declare function throwError(state: ParseNaturalTSState, message: string, babelNode?: babelTypes.Node | string, babelNode2?: babelTypes.Node | string): undefined;
|
|
46
|
+
/**
|
|
47
|
+
* 抛出警告,在 DEBUG 模式下不抛出这类错误
|
|
48
|
+
* @param message 错误信息
|
|
49
|
+
* @param babelNode babel节点,用于便捷生成代码片段信息
|
|
50
|
+
* @param babelNode2 babel节点,用于便捷生成代码片段信息
|
|
51
|
+
*/
|
|
52
|
+
export declare function throwWarning(message: string, babelNode?: babelTypes.Node | string, babelNode2?: babelTypes.Node | string): void;
|
|
53
|
+
export declare function tryParseTS(tsCode: string): import("@babel/parser").ParseResult<babel.types.File>;
|
|
54
|
+
export declare function fetchFromComments(comments?: Array<babelTypes.Comment | babelTypes.CommentBlock>): string;
|
|
55
|
+
export declare const genAIUID: (node: any, sessionId: string, num?: number) => {
|
|
56
|
+
node: any;
|
|
57
|
+
number: number;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/natural/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAI5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAG3C,OAAO,EACL,OAAO,EACP,MAAM,EACN,cAAc,EACd,cAAc,EACd,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,wBAAgB,KAAK,YAEpB;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM,CAAC;AAExE,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAGD,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B,MAAM,EACN;IACE,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;IAC1D,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAwC9J;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,MAAM,QAYxH;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,yDAWxC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,UAG/F;AAID,eAAO,MAAM,QAAQ,SAAU,GAAG,aAAa,MAAM,QAAQ,MAAM;;;CAoBlE,CAAC"}
|