@lcap/nasl 2.18.0-beta.5 → 2.18.0-beta.7

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 (88) hide show
  1. package/out/common/BaseNode.js +1 -0
  2. package/out/common/BaseNode.js.map +1 -1
  3. package/out/concepts/BatchAssignment__.js +63 -46
  4. package/out/concepts/BatchAssignment__.js.map +1 -1
  5. package/out/concepts/CallLogic__.d.ts +2 -1
  6. package/out/concepts/CallLogic__.js +26 -11
  7. package/out/concepts/CallLogic__.js.map +1 -1
  8. package/out/concepts/Destination__.d.ts +2 -1
  9. package/out/concepts/Destination__.js +90 -22
  10. package/out/concepts/Destination__.js.map +1 -1
  11. package/out/concepts/Logic__.js +6 -7
  12. package/out/concepts/Logic__.js.map +1 -1
  13. package/out/concepts/MatchExpression__.d.ts +97 -0
  14. package/out/concepts/MatchExpression__.js +281 -0
  15. package/out/concepts/MatchExpression__.js.map +1 -0
  16. package/out/concepts/ViewElement__.js +1 -1
  17. package/out/concepts/ViewElement__.js.map +1 -1
  18. package/out/concepts/View__.js +4 -0
  19. package/out/concepts/View__.js.map +1 -1
  20. package/out/generator/genBundleFiles.js +32 -182
  21. package/out/generator/genBundleFiles.js.map +1 -1
  22. package/out/generator/genMetaData.d.ts +1 -10
  23. package/out/generator/genMetaData.js +189 -50
  24. package/out/generator/genMetaData.js.map +1 -1
  25. package/out/generator/genReleaseBody.js +11 -2
  26. package/out/generator/genReleaseBody.js.map +1 -1
  27. package/out/server/extendBaseNode.js +4 -18
  28. package/out/server/extendBaseNode.js.map +1 -1
  29. package/out/server/formatTsUtils.d.ts +1 -2
  30. package/out/server/formatTsUtils.js +30 -47
  31. package/out/server/formatTsUtils.js.map +1 -1
  32. package/out/server/getProcesses.js +1 -1
  33. package/out/server/getProcesses.js.map +1 -1
  34. package/out/server/naslServer.js +8 -7
  35. package/out/server/naslServer.js.map +1 -1
  36. package/out/server/translator.js +19 -4
  37. package/out/server/translator.js.map +1 -1
  38. package/out/templator/sql-parser/index.d.ts +1 -0
  39. package/out/templator/sql-parser/index.js +228 -0
  40. package/out/templator/sql-parser/index.js.map +1 -0
  41. package/out/templator/sql-parser/parser.js +26664 -0
  42. package/out/templator/sql-parser/parser.js.map +1 -0
  43. package/package.json +2 -2
  44. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  45. package/sandbox/stdlib/nasl.util.ts +1 -1
  46. package/src/automate/engine/dist/index.dev.js +517 -0
  47. package/src/common/BaseNode.ts +1 -0
  48. package/src/common/dist/BaseNode.js +1101 -0
  49. package/src/concepts/BatchAssignment__.ts +66 -50
  50. package/src/concepts/CallLogic__.ts +26 -11
  51. package/src/concepts/Destination__.ts +92 -22
  52. package/src/concepts/Logic__.ts +6 -7
  53. package/src/concepts/ViewElement__.ts +8 -29
  54. package/src/concepts/View__.ts +4 -0
  55. package/src/concepts/basics/stdlib/dist/nasl.util.js +1503 -0
  56. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
  57. package/src/concepts/dist/Anchor__.js +179 -0
  58. package/src/concepts/dist/Assignment__.js +301 -0
  59. package/src/concepts/dist/CallFunction__.js +513 -0
  60. package/src/concepts/dist/CallInterface__.js +533 -0
  61. package/src/concepts/dist/CallLogic__.js +892 -0
  62. package/src/concepts/dist/ForEachStatement__.js +426 -0
  63. package/src/concepts/dist/MatchCase__.js +587 -0
  64. package/src/concepts/dist/Match__.js +631 -0
  65. package/src/concepts/dist/MemberExpression__.js +348 -0
  66. package/src/concepts/dist/Param__.js +538 -0
  67. package/src/concepts/dist/Return__.js +494 -0
  68. package/src/concepts/dist/Variable__.js +537 -0
  69. package/src/concepts/dist/ViewElement__.js +1680 -0
  70. package/src/generator/dist/genBundleFiles.js +261 -0
  71. package/src/generator/dist/genMetaData.js +249 -0
  72. package/src/generator/genBundleFiles.ts +34 -219
  73. package/src/generator/genMetaData.ts +182 -77
  74. package/src/generator/genReleaseBody.ts +10 -3
  75. package/src/server/dist/formatTsUtils.js +683 -0
  76. package/src/server/dist/naslServer.js +3474 -0
  77. package/src/server/extendBaseNode.ts +4 -19
  78. package/src/server/formatTsUtils.ts +30 -46
  79. package/src/server/getProcesses.ts +1 -1
  80. package/src/server/naslServer.ts +8 -7
  81. package/src/server/translator.ts +18 -4
  82. package/src/service/storage/dist/init.js +572 -0
  83. package/ts-worker/dist/webpack.config.dev.js +108 -0
  84. package/dist/bundle.js +0 -3962
  85. package/dist/bundle.js.LICENSE.txt +0 -16
  86. package/out/generator/release.d.ts +0 -1
  87. package/out/generator/release.js +0 -51
  88. package/out/generator/release.js.map +0 -1
@@ -0,0 +1,537 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
27
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29
+ 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;
30
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31
+ };
32
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
33
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34
+ return new (P || (P = Promise))(function (resolve, reject) {
35
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
36
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
37
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
38
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
39
+ });
40
+ };
41
+ var __generator = (this && this.__generator) || function (thisArg, body) {
42
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
43
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
44
+ function verb(n) { return function (v) { return step([n, v]); }; }
45
+ function step(op) {
46
+ if (f) throw new TypeError("Generator is already executing.");
47
+ while (_) try {
48
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
49
+ if (y = 0, t) op = [op[0] & 2, t.value];
50
+ switch (op[0]) {
51
+ case 0: case 1: t = op; break;
52
+ case 4: _.label++; return { value: op[1], done: false };
53
+ case 5: _.label++; y = op[1]; op = [0]; continue;
54
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
55
+ default:
56
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
57
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
58
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
59
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
60
+ if (t[2]) _.ops.pop();
61
+ _.trys.pop(); continue;
62
+ }
63
+ op = body.call(thisArg, _);
64
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
65
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
66
+ }
67
+ };
68
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
69
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
70
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
71
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
72
+ r[k] = a[j];
73
+ return r;
74
+ };
75
+ exports.__esModule = true;
76
+ exports.Variable = void 0;
77
+ var types_1 = require("./basics/types");
78
+ var translator_1 = require("../translator");
79
+ var StructureProperty__1 = require("./StructureProperty__");
80
+ var utils_1 = require("../automate/engine/utils");
81
+ function tryJSONParse(str) {
82
+ var result;
83
+ try {
84
+ result = JSON.parse(str);
85
+ }
86
+ catch (e) { }
87
+ return result;
88
+ }
89
+ var decorators_1 = require("../decorators");
90
+ var BaseNode_1 = require("../common/BaseNode");
91
+ var classMap_1 = require("../common/classMap");
92
+ /**
93
+ * 变量
94
+ */
95
+ var Variable = /** @class */ (function (_super) {
96
+ __extends(Variable, _super);
97
+ /**
98
+ * @param source 需要合并的部分参数
99
+ */
100
+ function Variable(source) {
101
+ var _this = this;
102
+ source = Object.assign({}, Variable_1.getDefaultOptions(), source);
103
+ _this = _super.call(this, source) || this;
104
+ /**
105
+ * 产品概念
106
+ */
107
+ _this.concept = 'Variable';
108
+ /**
109
+ * 变量名称
110
+ */
111
+ _this.name = undefined;
112
+ /**
113
+ * 变量描述
114
+ */
115
+ _this.description = undefined;
116
+ /**
117
+ * 类型
118
+ */
119
+ _this.typeAnnotation = undefined;
120
+ /**
121
+ * 默认值
122
+ */
123
+ _this.defaultValue = undefined;
124
+ //================================================================================
125
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
126
+ // 自动生成的代码已结束。下面可以手动编写。
127
+ //================================================================================
128
+ /**
129
+ * 自动补全的属性列表
130
+ */
131
+ _this.completionChildren = undefined;
132
+ _super.prototype.subConstructor.call(_this, source);
133
+ return _this;
134
+ }
135
+ Variable_1 = Variable;
136
+ Object.defineProperty(Variable.prototype, "logic", {
137
+ /**
138
+ * 祖先 Logic
139
+ */
140
+ get: function () {
141
+ return this.getAncestor('Logic');
142
+ },
143
+ enumerable: false,
144
+ configurable: true
145
+ });
146
+ Object.defineProperty(Variable.prototype, "module", {
147
+ /**
148
+ * 祖先 Module
149
+ */
150
+ get: function () {
151
+ return this.getAncestor('Module');
152
+ },
153
+ enumerable: false,
154
+ configurable: true
155
+ });
156
+ Object.defineProperty(Variable.prototype, "app", {
157
+ /**
158
+ * 祖先 App
159
+ */
160
+ get: function () {
161
+ return this.getAncestor('App');
162
+ },
163
+ enumerable: false,
164
+ configurable: true
165
+ });
166
+ Object.defineProperty(Variable.prototype, "view", {
167
+ /**
168
+ * 祖先 View
169
+ */
170
+ get: function () {
171
+ return this.getAncestor('View');
172
+ },
173
+ enumerable: false,
174
+ configurable: true
175
+ });
176
+ Object.defineProperty(Variable.prototype, "processElement", {
177
+ /**
178
+ * 祖先 ProcessElement
179
+ */
180
+ get: function () {
181
+ return this.getAncestor('ProcessElement');
182
+ },
183
+ enumerable: false,
184
+ configurable: true
185
+ });
186
+ Object.defineProperty(Variable.prototype, "process", {
187
+ /**
188
+ * 祖先 Process
189
+ */
190
+ get: function () {
191
+ return this.getAncestor('Process');
192
+ },
193
+ enumerable: false,
194
+ configurable: true
195
+ });
196
+ Variable.from = function (source, parentNode, parentKey) {
197
+ return _super.from.call(this, source, parentNode, parentKey);
198
+ };
199
+ /**
200
+ * 从父级删除该节点
201
+ * @internal
202
+ */
203
+ Variable.prototype._delete = function () {
204
+ var _a, _b;
205
+ var params = null;
206
+ if (this.parentNode) {
207
+ params = (_b = (_a = this.parentNode) === null || _a === void 0 ? void 0 : _a.__removeVariable) === null || _b === void 0 ? void 0 : _b.call(_a, this);
208
+ }
209
+ return params;
210
+ };
211
+ /**
212
+ * 设置变量名称
213
+ */
214
+ Variable.prototype.setName = function (name) {
215
+ var object = {
216
+ name: name
217
+ };
218
+ this.update(__assign(__assign({}, object), { field: 'name' }));
219
+ };
220
+ /**
221
+ * 设置变量描述
222
+ */
223
+ Variable.prototype.setDescription = function (description) {
224
+ var object = {
225
+ description: description
226
+ };
227
+ this.update(__assign({}, object));
228
+ };
229
+ /**
230
+ * 设置默认值
231
+ */
232
+ Variable.prototype.setDefaultValue = function (defaultValue) {
233
+ var object = {
234
+ defaultValue: defaultValue
235
+ };
236
+ this.update(__assign({}, object));
237
+ };
238
+ Variable.prototype.removeTypeAnnotation = function (options) {
239
+ var typeAnnotation;
240
+ if (typeof options === 'string') {
241
+ typeAnnotation = this.typeAnnotation;
242
+ if (!typeAnnotation) {
243
+ throw new Error('找不到类型标注 ' + options);
244
+ }
245
+ }
246
+ else {
247
+ typeAnnotation = options;
248
+ }
249
+ return typeAnnotation["delete"]();
250
+ };
251
+ Variable.prototype.__removeTypeAnnotation = function (typeAnnotation) {
252
+ var parentKey = typeAnnotation.parentKey;
253
+ var params = {
254
+ parentNode: this,
255
+ parentKey: parentKey,
256
+ index: -1,
257
+ object: null,
258
+ oldObject: typeAnnotation
259
+ };
260
+ if (parentKey) {
261
+ params.parentKey = parentKey;
262
+ if (Array.isArray(this[parentKey])) {
263
+ var index = this[parentKey].indexOf(typeAnnotation);
264
+ ~index && this[parentKey].splice(index, 1);
265
+ params.index = index;
266
+ }
267
+ else if (this[parentKey] === typeAnnotation) {
268
+ params.index = 0;
269
+ this[parentKey] = undefined;
270
+ }
271
+ }
272
+ return params;
273
+ };
274
+ Variable.prototype.toVue = function (options) {
275
+ return this.name;
276
+ };
277
+ Variable.prototype.toUI = function () {
278
+ return this.name;
279
+ };
280
+ Variable.prototype.toJS = function (state) {
281
+ var _a;
282
+ var context = this.view ? 'this' : 'Vue.prototype';
283
+ var typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
284
+ var needGenInitFromSchema = typeAnnotation && (!['primitive', 'union'].includes(typeAnnotation.typeKind)
285
+ || typeAnnotation.typeName === 'DateTime');
286
+ var code = this.name + " =";
287
+ if (needGenInitFromSchema) {
288
+ code += context + ".$genInitFromSchema('" + (typeAnnotation === null || typeAnnotation === void 0 ? void 0 : typeAnnotation.sortedTypeKey) + "',";
289
+ }
290
+ var defaultValue = this.defaultValue;
291
+ var defaultValueType = Object.prototype.toString.call(defaultValue);
292
+ var _b = typeAnnotation || {}, typeKind = _b.typeKind, typeNamespace = _b.typeNamespace, typeName = _b.typeName;
293
+ // 设置成null,才能同步给后端清除该值,但是null对checkbox组件是一种特殊状态
294
+ var parsedValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
295
+ if (defaultValueType === '[object String]'
296
+ && (!(typeKind === 'primitive' && typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName))
297
+ && !(this.isEnum())
298
+ && !['union'].includes(typeKind))) {
299
+ // 一些特殊情况,特殊处理成undefined
300
+ // 1.defaultValue在nasl节点上错误得赋值给了空制符串
301
+ if ([''].includes(defaultValue)) {
302
+ parsedValue = undefined;
303
+ }
304
+ else {
305
+ parsedValue = (_a = tryJSONParse(defaultValue)) !== null && _a !== void 0 ? _a : defaultValue;
306
+ }
307
+ }
308
+ code += JSON.stringify(parsedValue);
309
+ if (needGenInitFromSchema) {
310
+ code += ")";
311
+ }
312
+ return code;
313
+ };
314
+ Variable.prototype.toEmbeddedTS = function (state) {
315
+ var _a;
316
+ var code = this.name;
317
+ if (this.typeAnnotation) {
318
+ code += ': ';
319
+ code += this.typeAnnotation.toEmbeddedTS(translator_1.shiftState(state, code));
320
+ // toTS暂时只需要翻译引用数据类型的,因为值都是字符串
321
+ // 就不在这里赋值了,这里单纯就为了快速查找
322
+ // 并且屏蔽了一些异常的错误
323
+ if (((_a = this.typeAnnotation) === null || _a === void 0 ? void 0 : _a.typeKind) !== 'primitive' && this.defaultValue) {
324
+ if (this.isEnum()) {
325
+ code += "= " + this.typeAnnotation.typeKey + "['" + this.defaultValue + "']";
326
+ }
327
+ }
328
+ }
329
+ return code;
330
+ };
331
+ Variable.prototype.isEnum = function () {
332
+ var _a, _b;
333
+ return (_b = (_a = this.typeAnnotation) === null || _a === void 0 ? void 0 : _a.typeNamespace) === null || _b === void 0 ? void 0 : _b.endsWith('.enums');
334
+ };
335
+ Variable.prototype.getNamespace = function () {
336
+ var _a;
337
+ if (this.parentNode && this.parentNode.getNamespace) {
338
+ var parentNamespace = this.parentNode.getNamespace();
339
+ var parentName = this.parentNode.name;
340
+ var arr = [parentNamespace];
341
+ if (this.parentNode.concept !== 'App' && parentName) {
342
+ arr.push(parentName);
343
+ }
344
+ if (['App', 'Module', 'Namespace'].includes((_a = this.parentNode) === null || _a === void 0 ? void 0 : _a.concept) && this.parentKey === 'frontendVariables') {
345
+ return arr.join('.') + ".frontendVariables";
346
+ }
347
+ else {
348
+ return arr.join('.') + ".variables";
349
+ }
350
+ }
351
+ else
352
+ throw new Error('无法获取命名空间,请设置 parentNode!');
353
+ };
354
+ /**
355
+ * 生成宿主语言的文件路径
356
+ * @param name 一般不用传,用于 rename
357
+ */
358
+ Variable.prototype.getEmbeddedFilePath = function (name) {
359
+ if (name === void 0) { name = this.name; }
360
+ return "/embedded/" + this.app.name + "/frontendVariables/" + name + ".ts";
361
+ };
362
+ Variable.prototype.toEmbeddedTSFile = function () {
363
+ var code = "namespace " + this.getNamespace() + " {\n";
364
+ code += translator_1.indent(1) + "export let ";
365
+ var state = translator_1.createCompilerState(code, { tabSize: 1 });
366
+ try {
367
+ code += this.toEmbeddedTS(state) + "\n";
368
+ }
369
+ catch (err) {
370
+ code += '\n';
371
+ }
372
+ code += '}\n';
373
+ return {
374
+ code: code,
375
+ filePath: this.getEmbeddedFilePath(),
376
+ sourceMap: state.sourceMap
377
+ };
378
+ };
379
+ Variable.prototype.toEmbeddedTSInProcess = function (state) {
380
+ var code = this.name;
381
+ if (this.typeAnnotation) {
382
+ code += ': undefined as ';
383
+ code += this.typeAnnotation.toEmbeddedTS(translator_1.shiftState(state, code));
384
+ }
385
+ // if (this.defaultValue) {
386
+ // code += `: ${this.defaultValue}`;
387
+ // }
388
+ return code;
389
+ };
390
+ Variable.prototype.setDataType = function (typeAnnotation) {
391
+ var _a;
392
+ return __awaiter(this, void 0, void 0, function () {
393
+ var relationOptions, object;
394
+ return __generator(this, function (_b) {
395
+ if (typeAnnotation) {
396
+ if (typeof typeAnnotation === 'string') {
397
+ typeAnnotation = types_1.dataTypesMap[typeAnnotation];
398
+ if (!typeAnnotation)
399
+ throw new Error('找不到类型:' + typeAnnotation);
400
+ }
401
+ else {
402
+ (_a = typeAnnotation._delete) === null || _a === void 0 ? void 0 : _a.call(typeAnnotation);
403
+ relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
404
+ Object.assign(typeAnnotation, relationOptions);
405
+ }
406
+ // 处理下拉属性
407
+ try {
408
+ this.completionChildren = this.getSelectRef(typeAnnotation);
409
+ }
410
+ catch (err) {
411
+ this.completionChildren = [];
412
+ console.log(err);
413
+ }
414
+ }
415
+ object = {
416
+ typeAnnotation: typeAnnotation || null
417
+ };
418
+ // 切换类型的时候如果有默认值就清除掉
419
+ if (this.defaultValue) {
420
+ object.defaultValue = '';
421
+ }
422
+ return [2 /*return*/, this.update(__assign({}, object))];
423
+ });
424
+ });
425
+ };
426
+ Variable.getDefaultOptions = function () {
427
+ return {};
428
+ };
429
+ Object.defineProperty(Variable.prototype, "readonly", {
430
+ /**
431
+ * 是否可编辑
432
+ * */
433
+ get: function () {
434
+ return !!this.module;
435
+ },
436
+ enumerable: false,
437
+ configurable: true
438
+ });
439
+ Object.defineProperty(Variable.prototype, "hasChildren", {
440
+ get: function () {
441
+ if (!this.typeAnnotation)
442
+ return null;
443
+ var _a = this.typeAnnotation, typeKind = _a.typeKind, typeName = _a.typeName, typeNamespace = _a.typeNamespace;
444
+ if (typeKind === 'reference' || typeKind === 'generic') {
445
+ if (typeNamespace.endsWith('.enums') || (typeNamespace.endsWith('.collection') && typeName === 'Map'))
446
+ return null;
447
+ return [{}];
448
+ }
449
+ return null;
450
+ },
451
+ enumerable: false,
452
+ configurable: true
453
+ });
454
+ Object.defineProperty(Variable.prototype, "isTreeLeaf", {
455
+ get: function () {
456
+ return !this.hasChildren;
457
+ },
458
+ enumerable: false,
459
+ configurable: true
460
+ });
461
+ Variable.prototype.getSelectRef = function (newTypeAnnotation) {
462
+ var _a, _b, _c, _d, _e;
463
+ try {
464
+ var _f = newTypeAnnotation || this.typeAnnotation, typeName = _f.typeName, typeKind = _f.typeKind, typeNamespace = _f.typeNamespace;
465
+ var completionChildren = void 0;
466
+ if (typeKind === 'reference') {
467
+ if (typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.process' || typeNamespace === 'nasl.auth') {
468
+ var node = utils_1.getNaslNodeByNodeCallee(typeNamespace, typeName);
469
+ var properties = ((_a = node) === null || _a === void 0 ? void 0 : _a.properties) || [];
470
+ completionChildren = properties;
471
+ }
472
+ else if (typeNamespace.endsWith('.enums')) {
473
+ completionChildren = [];
474
+ }
475
+ else {
476
+ var node = utils_1.getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
477
+ var properties = (node === null || node === void 0 ? void 0 : node.properties) || [];
478
+ completionChildren = properties;
479
+ }
480
+ }
481
+ else if (typeKind === 'generic') {
482
+ var node = utils_1.getNaslNodeByNodeCallee(typeNamespace, typeName);
483
+ var properties = (((_b = node) === null || _b === void 0 ? void 0 : _b.properties) && __spreadArrays((_c = node) === null || _c === void 0 ? void 0 : _c.properties)) || [];
484
+ for (var i = 0; i < properties.length; i++) {
485
+ var item = properties[i];
486
+ if (((_d = item === null || item === void 0 ? void 0 : item.typeAnnotation) === null || _d === void 0 ? void 0 : _d.typeKind) === 'typeParam') {
487
+ var newItem = StructureProperty__1["default"].from(item.toJSON());
488
+ newItem.typeAnnotation = (_e = this === null || this === void 0 ? void 0 : this.typeAnnotation) === null || _e === void 0 ? void 0 : _e.typeArguments[0];
489
+ newItem.parentNode = this;
490
+ properties[i] = newItem;
491
+ }
492
+ }
493
+ completionChildren = properties;
494
+ }
495
+ else {
496
+ completionChildren = [];
497
+ }
498
+ return completionChildren;
499
+ }
500
+ catch (err) {
501
+ console.log(err);
502
+ }
503
+ };
504
+ var Variable_1;
505
+ __decorate([
506
+ decorators_1.property()
507
+ ], Variable.prototype, "concept");
508
+ __decorate([
509
+ decorators_1.property()
510
+ ], Variable.prototype, "name");
511
+ __decorate([
512
+ decorators_1.property()
513
+ ], Variable.prototype, "description");
514
+ __decorate([
515
+ decorators_1.property('TypeAnnotation')
516
+ ], Variable.prototype, "typeAnnotation");
517
+ __decorate([
518
+ decorators_1.property()
519
+ ], Variable.prototype, "defaultValue");
520
+ __decorate([
521
+ translator_1.withSourceMap()
522
+ ], Variable.prototype, "toEmbeddedTS");
523
+ __decorate([
524
+ translator_1.withSourceMap()
525
+ ], Variable.prototype, "toEmbeddedTSInProcess");
526
+ Variable = Variable_1 = __decorate([
527
+ decorators_1.concept('变量')
528
+ ], Variable);
529
+ return Variable;
530
+ }(BaseNode_1["default"]));
531
+ exports.Variable = Variable;
532
+ classMap_1["default"].Variable = Variable;
533
+ exports["default"] = Variable;
534
+ //================================================================================
535
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
536
+ // 自动生成的代码已结束。下面可以手动编写。
537
+ //================================================================================