@lcap/nasl 2.14.0 → 2.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/out/automate/engine/index.js +2 -2
  2. package/out/automate/engine/index.js.map +1 -1
  3. package/out/automate/engine/viewCache.js +5 -5
  4. package/out/automate/engine/viewCache.js.map +1 -1
  5. package/out/common/BaseNode.js +3 -1
  6. package/out/common/BaseNode.js.map +1 -1
  7. package/out/concepts/AnonymousFunction__.d.ts +170 -0
  8. package/out/concepts/AnonymousFunction__.js +439 -0
  9. package/out/concepts/AnonymousFunction__.js.map +1 -0
  10. package/out/concepts/App__.js +7 -1
  11. package/out/concepts/App__.js.map +1 -1
  12. package/out/concepts/Assignee__.js +1 -1
  13. package/out/concepts/Assignee__.js.map +1 -1
  14. package/out/concepts/AssignmentLine__.d.ts +40 -0
  15. package/out/concepts/AssignmentLine__.js +109 -0
  16. package/out/concepts/AssignmentLine__.js.map +1 -0
  17. package/out/concepts/BatchAssignment__.d.ts +248 -0
  18. package/out/concepts/BatchAssignment__.js +742 -0
  19. package/out/concepts/BatchAssignment__.js.map +1 -0
  20. package/out/concepts/BindAttribute__.js +2 -0
  21. package/out/concepts/BindAttribute__.js.map +1 -1
  22. package/out/concepts/BindEvent__.js +9 -4
  23. package/out/concepts/BindEvent__.js.map +1 -1
  24. package/out/concepts/BindStyle__.d.ts +126 -0
  25. package/out/concepts/BindStyle__.js +233 -0
  26. package/out/concepts/BindStyle__.js.map +1 -0
  27. package/out/concepts/CallLogic__.js +3 -4
  28. package/out/concepts/CallLogic__.js.map +1 -1
  29. package/out/concepts/CallQueryComponent__.d.ts +1 -1
  30. package/out/concepts/ConstructArgument__.d.ts +40 -0
  31. package/out/concepts/ConstructArgument__.js +108 -0
  32. package/out/concepts/ConstructArgument__.js.map +1 -0
  33. package/out/concepts/Construct__.d.ts +189 -0
  34. package/out/concepts/Construct__.js +340 -0
  35. package/out/concepts/Construct__.js.map +1 -0
  36. package/out/concepts/EnumItem__.js +1 -1
  37. package/out/concepts/EnumItem__.js.map +1 -1
  38. package/out/concepts/Interface__.d.ts +1 -0
  39. package/out/concepts/Interface__.js +58 -0
  40. package/out/concepts/Interface__.js.map +1 -1
  41. package/out/concepts/Logic__.js +3 -3
  42. package/out/concepts/Logic__.js.map +1 -1
  43. package/out/concepts/MatchCase__.d.ts +256 -0
  44. package/out/concepts/MatchCase__.js +584 -0
  45. package/out/concepts/MatchCase__.js.map +1 -0
  46. package/out/concepts/Match__.d.ts +117 -0
  47. package/out/concepts/Match__.js +434 -0
  48. package/out/concepts/Match__.js.map +1 -0
  49. package/out/concepts/OqlQueryComponent__.d.ts +73 -0
  50. package/out/concepts/OqlQueryComponent__.js +395 -0
  51. package/out/concepts/OqlQueryComponent__.js.map +1 -0
  52. package/out/concepts/ProcessElement__.d.ts +2 -2
  53. package/out/concepts/ProcessElement__.js +30 -21
  54. package/out/concepts/ProcessElement__.js.map +1 -1
  55. package/out/concepts/Process__.d.ts +81 -0
  56. package/out/concepts/Process__.js +98 -2
  57. package/out/concepts/Process__.js.map +1 -1
  58. package/out/concepts/SelectMembers__.d.ts +141 -0
  59. package/out/concepts/SelectMembers__.js +290 -0
  60. package/out/concepts/SelectMembers__.js.map +1 -0
  61. package/out/concepts/SqlQueryComponent__.d.ts +4 -0
  62. package/out/concepts/SqlQueryComponent__.js +144 -2
  63. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  64. package/out/concepts/Variable__.js +0 -1
  65. package/out/concepts/Variable__.js.map +1 -1
  66. package/out/concepts/ViewElement__.js +10 -1
  67. package/out/concepts/ViewElement__.js.map +1 -1
  68. package/out/concepts/View__.js +4 -1
  69. package/out/concepts/View__.js.map +1 -1
  70. package/out/concepts/basics/stdlib/index.js +2 -1
  71. package/out/concepts/basics/stdlib/index.js.map +1 -1
  72. package/out/concepts/basics/stdlib/nasl.auth.js +26 -0
  73. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  74. package/out/concepts/basics/stdlib/nasl.process.js +98 -0
  75. package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
  76. package/out/concepts/basics/stdlib/nasl.ui.js +54 -0
  77. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  78. package/out/concepts/basics/stdlib/nasl.util.js +2 -2
  79. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  80. package/out/concepts/basics/stdlib/nasl.validation.js +4 -0
  81. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  82. package/out/enums/KEYWORDS.js +1 -0
  83. package/out/enums/KEYWORDS.js.map +1 -1
  84. package/out/generator/genBundleFiles.d.ts +1 -0
  85. package/out/generator/genBundleFiles.js +2 -0
  86. package/out/generator/genBundleFiles.js.map +1 -1
  87. package/out/server/extendBaseNode.js +32 -4
  88. package/out/server/extendBaseNode.js.map +1 -1
  89. package/out/server/getLogics.js +42 -14
  90. package/out/server/getLogics.js.map +1 -1
  91. package/out/server/getProcesses.d.ts +2 -2
  92. package/out/server/getProcesses.js +47 -21
  93. package/out/server/getProcesses.js.map +1 -1
  94. package/out/server/naslServer.js +46 -19
  95. package/out/server/naslServer.js.map +1 -1
  96. package/out/server/naslStdlibMap.js +1 -0
  97. package/out/server/naslStdlibMap.js.map +1 -1
  98. package/out/server/process2LogicNamespace.js +25 -21
  99. package/out/server/process2LogicNamespace.js.map +1 -1
  100. package/out/server/translator.js +35 -8
  101. package/out/server/translator.js.map +1 -1
  102. package/out/service/logic/api.d.ts +9 -0
  103. package/out/service/logic/api.js +11 -0
  104. package/out/service/logic/api.js.map +1 -0
  105. package/out/service/logic/index.d.ts +2 -0
  106. package/out/service/logic/index.js +10 -0
  107. package/out/service/logic/index.js.map +1 -0
  108. package/out/service/storage/init.js +18 -6
  109. package/out/service/storage/init.js.map +1 -1
  110. package/out/templator/genCreateBlock.js +1 -1
  111. package/out/templator/genCreateBlock.js.map +1 -1
  112. package/out/templator/genCurdEditMultipleKeyBlock.js +4 -5
  113. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  114. package/out/templator/genCurdMultipleKeyBlock.js +4 -4
  115. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  116. package/out/templator/genEditTableBlock.js +5 -3
  117. package/out/templator/genEditTableBlock.js.map +1 -1
  118. package/out/templator/genGetBlock.js +3 -2
  119. package/out/templator/genGetBlock.js.map +1 -1
  120. package/out/templator/genTableBlock.js +4 -2
  121. package/out/templator/genTableBlock.js.map +1 -1
  122. package/out/templator/genUpdateBlock.js +1 -1
  123. package/out/templator/genUpdateBlock.js.map +1 -1
  124. package/out/templator/sql-parser/index.d.ts +1 -0
  125. package/out/templator/sql-parser/index.js +228 -0
  126. package/out/templator/sql-parser/index.js.map +1 -0
  127. package/out/templator/sql-parser/parser.js +26664 -0
  128. package/out/templator/sql-parser/parser.js.map +1 -0
  129. package/package.json +1 -1
  130. package/src/automate/engine/index.js +1 -1
  131. package/src/automate/engine/viewCache.js +23 -23
  132. package/src/automate/template/myProcess.js +12295 -0
  133. package/src/common/BaseNode.ts +5 -1
  134. package/src/concepts/App__.ts +8 -1
  135. package/src/concepts/Assignee__.ts +1 -1
  136. package/src/concepts/BindAttribute__.ts +3 -1
  137. package/src/concepts/BindEvent__.ts +8 -4
  138. package/src/concepts/CallLogic__.ts +3 -4
  139. package/src/concepts/EnumItem__.ts +1 -1
  140. package/src/concepts/Interface__.ts +66 -7
  141. package/src/concepts/Logic__.ts +3 -3
  142. package/src/concepts/ProcessElement__.ts +34 -24
  143. package/src/concepts/Process__.ts +98 -2
  144. package/src/concepts/SqlQueryComponent__.ts +143 -2
  145. package/src/concepts/Variable__.ts +0 -1
  146. package/src/concepts/ViewElement__.ts +12 -20
  147. package/src/concepts/View__.ts +4 -1
  148. package/src/concepts/basics/stdlib/index.ts +2 -1
  149. package/src/concepts/basics/stdlib/nasl.auth.ts +25 -0
  150. package/src/concepts/basics/stdlib/nasl.io.ts +48 -0
  151. package/src/concepts/basics/stdlib/nasl.process.ts +98 -0
  152. package/src/concepts/basics/stdlib/nasl.ui.ts +54 -0
  153. package/src/concepts/basics/stdlib/nasl.util.ts +2 -2
  154. package/src/concepts/basics/stdlib/nasl.validation.ts +4 -0
  155. package/src/enums/KEYWORDS.ts +1 -0
  156. package/src/generator/genBundleFiles.ts +3 -0
  157. package/src/server/extendBaseNode.ts +31 -4
  158. package/src/server/getLogics.ts +43 -14
  159. package/src/server/getProcesses.ts +47 -21
  160. package/src/server/naslServer.ts +44 -21
  161. package/src/server/naslStdlibMap.ts +1 -0
  162. package/src/server/process2LogicNamespace.ts +27 -21
  163. package/src/server/translator.ts +35 -8
  164. package/src/service/storage/init.ts +18 -6
  165. package/src/templator/genCreateBlock.ts +1 -1
  166. package/src/templator/genCurdEditMultipleKeyBlock.ts +4 -7
  167. package/src/templator/genCurdMultipleKeyBlock.ts +4 -4
  168. package/src/templator/genEditTableBlock.ts +5 -3
  169. package/src/templator/genGetBlock.ts +3 -2
  170. package/src/templator/genTableBlock.ts +4 -2
  171. package/src/templator/genUpdateBlock.ts +1 -1
  172. package/src/automate/template/process.js +0 -11810
@@ -0,0 +1,584 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ var MatchCase_1;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MatchCase = void 0;
37
+ const translator_1 = require("../translator");
38
+ const MemberExpression__1 = __importDefault(require("./MemberExpression__"));
39
+ const BooleanLiteral__1 = __importDefault(require("./BooleanLiteral__"));
40
+ const decorators_1 = require("../decorators");
41
+ const utils = __importStar(require("../utils"));
42
+ const classMap_1 = __importDefault(require("../common/classMap"));
43
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
44
+ const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
45
+ /**
46
+ * 匹配分支情况
47
+ */
48
+ let MatchCase = MatchCase_1 = class MatchCase extends LogicItem__1.default {
49
+ /**
50
+ * 产品概念
51
+ */
52
+ concept = 'MatchCase';
53
+ /**
54
+ * 条件表达式
55
+ */
56
+ patterns = [];
57
+ /**
58
+ * then
59
+ */
60
+ body = [];
61
+ /**
62
+ * 是否可枚举
63
+ */
64
+ isMatchedTypeEnumable = false;
65
+ /**
66
+ * @param source 需要合并的部分参数
67
+ */
68
+ constructor(source) {
69
+ source = Object.assign({}, MatchCase_1.getDefaultOptions(), source);
70
+ super(source);
71
+ super.subConstructor(source);
72
+ }
73
+ static from(source, parentNode, parentKey) {
74
+ return super.from(source, parentNode, parentKey);
75
+ }
76
+ /**
77
+ * 设置条件表达式
78
+ */
79
+ setPatterns(patterns) {
80
+ const object = {
81
+ patterns,
82
+ };
83
+ this.update({
84
+ ...object,
85
+ });
86
+ }
87
+ /**
88
+ * 设置是否可枚举
89
+ */
90
+ setIsMatchedTypeEnumable(isMatchedTypeEnumable) {
91
+ const object = {
92
+ isMatchedTypeEnumable,
93
+ };
94
+ this.update({
95
+ ...object,
96
+ });
97
+ }
98
+ getLogicItemExistingNames(excludedList = []) {
99
+ const excludedSet = new Set(excludedList);
100
+ return (this.patterns || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
101
+ }
102
+ getLogicItemUniqueName(name = 'logicItem1') {
103
+ return utils.unique(name, this.getLogicItemExistingNames(), undefined, false);
104
+ }
105
+ _insertLogicItemInPatternsAt(options, index) {
106
+ const logicItemOptions = {};
107
+ const relationOptions = { parentNode: this, parentKey: 'patterns' };
108
+ let logicItem;
109
+ if (!options) {
110
+ logicItem = LogicItem__1.default.from({
111
+ ...logicItemOptions,
112
+ name: this.getLogicItemUniqueName(),
113
+ }, this, 'patterns');
114
+ }
115
+ else if (typeof options === 'string') {
116
+ logicItem = LogicItem__1.default.from({
117
+ ...logicItemOptions,
118
+ name: options,
119
+ }, this, 'patterns');
120
+ }
121
+ else if (options instanceof LogicItem__1.default) {
122
+ options.ensureDelete(); // 同一实例不支持多处存在
123
+ logicItem = options;
124
+ Object.assign(logicItem, relationOptions);
125
+ }
126
+ else {
127
+ logicItem = LogicItem__1.default.from({
128
+ ...logicItemOptions,
129
+ ...options,
130
+ }, this, 'patterns');
131
+ }
132
+ this.patterns.splice(index, 0, logicItem);
133
+ return logicItem;
134
+ }
135
+ insertLogicItemInPatternsAt(options, index) {
136
+ const node = this._insertLogicItemInPatternsAt(options, index);
137
+ node.create({
138
+ index,
139
+ parentNode: this,
140
+ parentKey: 'patterns',
141
+ });
142
+ return node;
143
+ }
144
+ _addLogicItemInPatterns(options) {
145
+ const index = this.patterns.length;
146
+ return this._insertLogicItemInPatternsAt(options, index);
147
+ }
148
+ addLogicItemInPatterns(options) {
149
+ const node = this._addLogicItemInPatterns(options);
150
+ const index = this.patterns.indexOf(node);
151
+ node.create({
152
+ index,
153
+ parentNode: this,
154
+ parentKey: 'patterns',
155
+ });
156
+ return node;
157
+ }
158
+ _insertItemInBodyAt(options, index) {
159
+ const logicItemOptions = {};
160
+ const relationOptions = { parentNode: this, parentKey: 'body' };
161
+ let logicItem;
162
+ if (options instanceof LogicItem__1.default) {
163
+ options.ensureDelete(); // 同一实例不支持多处存在
164
+ logicItem = options;
165
+ Object.assign(logicItem, relationOptions);
166
+ }
167
+ else {
168
+ logicItem = LogicItem__1.default.from({
169
+ ...logicItemOptions,
170
+ ...options,
171
+ }, this, 'body');
172
+ }
173
+ this.body.splice(index, 0, logicItem);
174
+ return logicItem;
175
+ }
176
+ insertItemInBodyAt(options, index) {
177
+ const node = this._insertItemInBodyAt(options, index);
178
+ node.create({
179
+ index,
180
+ parentNode: this,
181
+ parentKey: 'body',
182
+ });
183
+ return node;
184
+ }
185
+ _addItemInBody(options) {
186
+ const index = this.body.length;
187
+ return this._insertItemInBodyAt(options, index);
188
+ }
189
+ addItemInBody(options) {
190
+ const node = this._addItemInBody(options);
191
+ const index = this.body.indexOf(node);
192
+ node.create({
193
+ index,
194
+ parentNode: this,
195
+ parentKey: 'body',
196
+ });
197
+ return node;
198
+ }
199
+ getTypeAnnotationExistingNames(excludedList = []) {
200
+ const excludedSet = new Set(excludedList);
201
+ return (this.patterns || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
202
+ }
203
+ getTypeAnnotationUniqueName(name = 'typeAnnotation1') {
204
+ return utils.unique(name, this.getTypeAnnotationExistingNames(), undefined, false);
205
+ }
206
+ _insertTypeAnnotationAt(options, index) {
207
+ const typeAnnotationOptions = {};
208
+ const relationOptions = { parentNode: this, parentKey: 'patterns' };
209
+ let typeAnnotation;
210
+ if (!options) {
211
+ typeAnnotation = TypeAnnotation__1.default.from({
212
+ ...typeAnnotationOptions,
213
+ name: this.getTypeAnnotationUniqueName(),
214
+ }, this, 'patterns');
215
+ }
216
+ else if (typeof options === 'string') {
217
+ typeAnnotation = TypeAnnotation__1.default.from({
218
+ ...typeAnnotationOptions,
219
+ name: options,
220
+ }, this, 'patterns');
221
+ }
222
+ else if (options instanceof TypeAnnotation__1.default) {
223
+ options.ensureDelete(); // 同一实例不支持多处存在
224
+ typeAnnotation = options;
225
+ Object.assign(typeAnnotation, relationOptions);
226
+ }
227
+ else {
228
+ typeAnnotation = TypeAnnotation__1.default.from({
229
+ ...typeAnnotationOptions,
230
+ ...options,
231
+ }, this, 'patterns');
232
+ }
233
+ this.patterns.splice(index, 0, typeAnnotation);
234
+ return typeAnnotation;
235
+ }
236
+ insertTypeAnnotationAt(options, index) {
237
+ const node = this._insertTypeAnnotationAt(options, index);
238
+ node.create({
239
+ index,
240
+ parentNode: this,
241
+ parentKey: 'patterns',
242
+ });
243
+ return node;
244
+ }
245
+ _addTypeAnnotation(options) {
246
+ const index = this.patterns.length;
247
+ return this._insertTypeAnnotationAt(options, index);
248
+ }
249
+ addTypeAnnotation(options) {
250
+ const node = this._addTypeAnnotation(options);
251
+ const index = this.patterns.indexOf(node);
252
+ node.create({
253
+ index,
254
+ parentNode: this,
255
+ parentKey: 'patterns',
256
+ });
257
+ return node;
258
+ }
259
+ removeLogicItemInPatterns(options) {
260
+ let logicItem;
261
+ if (typeof options === 'string') {
262
+ logicItem = this.patterns.find((item) => item.name === options);
263
+ if (!logicItem) {
264
+ throw new Error('找不到逻辑项 ' + options);
265
+ }
266
+ }
267
+ else {
268
+ logicItem = options;
269
+ }
270
+ return logicItem.delete();
271
+ }
272
+ removeItemInBody(options) {
273
+ const logicItem = options;
274
+ return logicItem.delete();
275
+ }
276
+ __removeLogicItem(logicItem) {
277
+ const parentKey = logicItem.parentKey;
278
+ const params = {
279
+ parentNode: this,
280
+ parentKey,
281
+ index: -1,
282
+ object: null,
283
+ oldObject: logicItem,
284
+ };
285
+ if (parentKey) {
286
+ params.parentKey = parentKey;
287
+ if (Array.isArray(this[parentKey])) {
288
+ const index = this[parentKey].indexOf(logicItem);
289
+ ~index && this[parentKey].splice(index, 1);
290
+ params.index = index;
291
+ }
292
+ else if (this[parentKey] === logicItem) {
293
+ params.index = 0;
294
+ this[parentKey] = undefined;
295
+ }
296
+ }
297
+ return params;
298
+ }
299
+ removeTypeAnnotation(options) {
300
+ let typeAnnotation;
301
+ if (typeof options === 'string') {
302
+ typeAnnotation = this.patterns.find((item) => item.name === options);
303
+ if (!typeAnnotation) {
304
+ throw new Error('找不到类型标注 ' + options);
305
+ }
306
+ }
307
+ else {
308
+ typeAnnotation = options;
309
+ }
310
+ return typeAnnotation.delete();
311
+ }
312
+ __removeTypeAnnotation(typeAnnotation) {
313
+ const parentKey = typeAnnotation.parentKey;
314
+ const params = {
315
+ parentNode: this,
316
+ parentKey,
317
+ index: -1,
318
+ object: null,
319
+ oldObject: typeAnnotation,
320
+ };
321
+ if (parentKey) {
322
+ params.parentKey = parentKey;
323
+ if (Array.isArray(this[parentKey])) {
324
+ const index = this[parentKey].indexOf(typeAnnotation);
325
+ ~index && this[parentKey].splice(index, 1);
326
+ params.index = index;
327
+ }
328
+ else if (this[parentKey] === typeAnnotation) {
329
+ params.index = 0;
330
+ this[parentKey] = undefined;
331
+ }
332
+ }
333
+ return params;
334
+ }
335
+ //================================================================================
336
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
337
+ // 自动生成的代码已结束。下面可以手动编写。
338
+ //================================================================================
339
+ // 是否处于禁用状态
340
+ get isDisabled() {
341
+ const matchExpression = this.parentNode;
342
+ const cases = matchExpression?.cases;
343
+ if (Array.isArray(cases) && cases.length > 1) {
344
+ const index = cases.indexOf(this);
345
+ // 是最后一项
346
+ if (index === cases.length - 1) {
347
+ const enumerableItems = matchExpression?.enumerableItems;
348
+ if (Array.isArray(enumerableItems)) {
349
+ const map = {};
350
+ cases.forEach((caseItem) => {
351
+ const { patterns } = caseItem || {};
352
+ if (Array.isArray(patterns)) {
353
+ patterns.forEach((pattern) => {
354
+ if (pattern instanceof TypeAnnotation__1.default) {
355
+ const patternTypeKey = pattern.typeKey;
356
+ map[patternTypeKey] = true;
357
+ }
358
+ else if (pattern instanceof MemberExpression__1.default || pattern instanceof BooleanLiteral__1.default) {
359
+ const patternValue = pattern.getValue();
360
+ map[patternValue] = true;
361
+ }
362
+ });
363
+ }
364
+ });
365
+ const enumerableKeys = Object.keys(map);
366
+ if (enumerableKeys.length === enumerableItems.length) {
367
+ return true;
368
+ }
369
+ }
370
+ }
371
+ }
372
+ return false;
373
+ }
374
+ // 槽位类型是否错误
375
+ get isSlotTypeError() {
376
+ const match = this.parentNode;
377
+ const expression = match?.expression;
378
+ const isMatchedTypeEnumable = match?.isEnumerable;
379
+ if (expression && isMatchedTypeEnumable !== this.isMatchedTypeEnumable) {
380
+ return true;
381
+ }
382
+ return false;
383
+ }
384
+ isTypeMatching() {
385
+ return this.parentNode.isTypeMatching();
386
+ }
387
+ toVue(options) {
388
+ if (options?.finalCode === false) {
389
+ let code = '';
390
+ if (Array.isArray(this.patterns)) {
391
+ this.patterns.forEach((pattern, index) => {
392
+ code += pattern?.toVue?.();
393
+ if (index !== this.patterns.length - 1) {
394
+ code += ' 或 ';
395
+ }
396
+ });
397
+ }
398
+ if (Array.isArray(this.body)) {
399
+ code += ` => `;
400
+ this.body.forEach((logicItem, bodyIndex) => {
401
+ if (bodyIndex === this.body.length - 1 && logicItem.concept !== 'Assignment') {
402
+ code += ' ' + logicItem?.toVue?.() + ' ';
403
+ }
404
+ });
405
+ code += `; `;
406
+ }
407
+ return code;
408
+ }
409
+ }
410
+ toUI(state) {
411
+ let code = '';
412
+ if (Array.isArray(this.patterns)) {
413
+ this.patterns.forEach((pattern, index) => {
414
+ code += pattern.toUI?.();
415
+ if (index !== this.patterns.length - 1) {
416
+ code += ' 或 ';
417
+ }
418
+ });
419
+ }
420
+ if (Array.isArray(this.body)) {
421
+ code += ` => `;
422
+ this.body.forEach((logicItem, bodyIndex) => {
423
+ if (bodyIndex === this.body.length - 1 && logicItem.concept !== 'Assignment') {
424
+ code += ' ' + logicItem.toUI?.() + ' ';
425
+ }
426
+ });
427
+ code += `; `;
428
+ }
429
+ return code;
430
+ }
431
+ toJS(expression, index, length) {
432
+ let code = '';
433
+ if (Array.isArray(this.patterns)) {
434
+ const patternStrArr = this.patterns.map((pattern) => {
435
+ let patternStr = '';
436
+ if (pattern instanceof TypeAnnotation__1.default) {
437
+ patternStr += `this.$isInstanceOf(${expression.toJS?.()}, ${pattern.toJS?.()})`;
438
+ }
439
+ else {
440
+ patternStr += `this.$global.isEqual(${expression.toJS?.()}, ${pattern.toJS?.()})`;
441
+ }
442
+ return patternStr;
443
+ });
444
+ const patternStr = patternStrArr.join(' || ');
445
+ if (length > 1) {
446
+ if (index === 0) {
447
+ code = `if (${patternStr}) {\n`;
448
+ }
449
+ else if (index !== length - 1) {
450
+ code = `else if (${patternStr}) {\n`;
451
+ }
452
+ else {
453
+ code += 'else {\n';
454
+ }
455
+ }
456
+ if (Array.isArray(this.body)) {
457
+ this.body.forEach((logicItem, bodyIndex) => {
458
+ if (bodyIndex === this.body.length - 1 && logicItem.concept !== 'Assignment') {
459
+ code += `return `;
460
+ }
461
+ code += logicItem.toJS() + '\n';
462
+ });
463
+ }
464
+ if (length > 1) {
465
+ code += '}\n';
466
+ }
467
+ }
468
+ return code;
469
+ }
470
+ toEmbeddedTS(state, index, parentCode) {
471
+ let code = '\n';
472
+ const parentNode = this.parentNode;
473
+ const length = parentNode.cases.length;
474
+ if (length > 1) {
475
+ if (index !== length - 1) {
476
+ code += (0, translator_1.indent)((state?.tabSize || 0));
477
+ code += 'if (';
478
+ if (Array.isArray(this.patterns)) {
479
+ this.patterns.forEach((pattern, index) => {
480
+ // nasl.code.isUnionType<typeof ccc, List<Integer> | List<Boolean>>
481
+ if (pattern instanceof TypeAnnotation__1.default) {
482
+ if (index === 0) {
483
+ code += `nasl.core.isUnionType<typeof `;
484
+ code += `${parentCode},`;
485
+ code += pattern.toEmbeddedTS((0, translator_1.shiftState)(state, code));
486
+ }
487
+ else {
488
+ code += '|';
489
+ code += pattern.toEmbeddedTS((0, translator_1.shiftState)(state, code));
490
+ }
491
+ if (index === this.patterns.length - 1) {
492
+ code += '>';
493
+ code += `(${parentCode})`;
494
+ }
495
+ }
496
+ else {
497
+ if (index !== 0) {
498
+ code += ' || ';
499
+ }
500
+ code += parentCode;
501
+ code += ' === ';
502
+ code += pattern.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
503
+ tabSize: (state?.tabSize || 0),
504
+ }));
505
+ }
506
+ });
507
+ }
508
+ code += ') {\n';
509
+ if (Array.isArray(this.body)) {
510
+ this.body.forEach((logicItem, bodyIndex) => {
511
+ if (bodyIndex === this.body.length - 1 && logicItem.concept !== 'Assignment') {
512
+ code += (0, translator_1.indent)((state?.tabSize || 0));
513
+ code += `return `;
514
+ }
515
+ code
516
+ += logicItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
517
+ tabSize: (state?.tabSize || 0),
518
+ })) + '\n';
519
+ });
520
+ }
521
+ code += (0, translator_1.indent)((state?.tabSize || 0)) + '}\n';
522
+ }
523
+ else {
524
+ code += (0, translator_1.indent)((state?.tabSize || 0));
525
+ code += 'else {\n';
526
+ if (Array.isArray(this.body)) {
527
+ this.body.forEach((logicItem, bodyIndex) => {
528
+ if (bodyIndex === this.body.length - 1 && logicItem.concept !== 'Assignment') {
529
+ code += (0, translator_1.indent)((state?.tabSize || 0));
530
+ code += `return `;
531
+ }
532
+ code
533
+ += logicItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
534
+ tabSize: (state?.tabSize || 0),
535
+ })) + '\n';
536
+ });
537
+ }
538
+ code += (0, translator_1.indent)((state?.tabSize || 0)) + '}\n';
539
+ }
540
+ }
541
+ else {
542
+ if (Array.isArray(this.body)) {
543
+ this.body.forEach((logicItem, bodyIndex) => {
544
+ if (bodyIndex === this.body.length - 1 && logicItem.concept !== 'Assignment') {
545
+ code += (0, translator_1.indent)((state?.tabSize || 0));
546
+ code += `return `;
547
+ }
548
+ code
549
+ += logicItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, {
550
+ tabSize: (state?.tabSize || 0),
551
+ })) + '\n';
552
+ });
553
+ }
554
+ code += '\n';
555
+ }
556
+ return code;
557
+ }
558
+ };
559
+ __decorate([
560
+ (0, decorators_1.property)()
561
+ ], MatchCase.prototype, "concept", void 0);
562
+ __decorate([
563
+ (0, decorators_1.property)('LogicItem | TypeAnnotation')
564
+ ], MatchCase.prototype, "patterns", void 0);
565
+ __decorate([
566
+ (0, decorators_1.property)('LogicItem')
567
+ ], MatchCase.prototype, "body", void 0);
568
+ __decorate([
569
+ (0, decorators_1.property)()
570
+ ], MatchCase.prototype, "isMatchedTypeEnumable", void 0);
571
+ __decorate([
572
+ (0, translator_1.withSourceMap)()
573
+ ], MatchCase.prototype, "toEmbeddedTS", null);
574
+ MatchCase = MatchCase_1 = __decorate([
575
+ (0, decorators_1.concept)('匹配分支情况')
576
+ ], MatchCase);
577
+ exports.MatchCase = MatchCase;
578
+ classMap_1.default.MatchCase = MatchCase;
579
+ exports.default = MatchCase;
580
+ //================================================================================
581
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
582
+ // 自动生成的代码已结束。下面可以手动编写。
583
+ //================================================================================
584
+ //# sourceMappingURL=MatchCase__.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatchCase__.js","sourceRoot":"","sources":["../../src/concepts/MatchCase__.ts"],"names":[],"mappings":"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"}