@lcap/nasl 2.18.0-beta.3 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/out/bak/translator.js +1 -1
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/concepts/LogicItem__.js.map +1 -1
  4. package/out/concepts/Logic__.js +4 -4
  5. package/out/concepts/Logic__.js.map +1 -1
  6. package/out/concepts/MatchExpression__.d.ts +97 -0
  7. package/out/concepts/MatchExpression__.js +281 -0
  8. package/out/concepts/MatchExpression__.js.map +1 -0
  9. package/out/concepts/Match__.js +1 -1
  10. package/out/concepts/Match__.js.map +1 -1
  11. package/out/concepts/MemberExpression__.js.map +1 -1
  12. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  13. package/out/concepts/Param__.js +2 -2
  14. package/out/concepts/Param__.js.map +1 -1
  15. package/out/concepts/Return__.js +1 -1
  16. package/out/concepts/Return__.js.map +1 -1
  17. package/out/concepts/StringInterpolation__.d.ts +16 -16
  18. package/out/concepts/StringInterpolation__.js +12 -12
  19. package/out/concepts/StringInterpolation__.js.map +1 -1
  20. package/out/concepts/ValidationRule__.js.map +1 -1
  21. package/out/concepts/Variable__.js +1 -1
  22. package/out/concepts/Variable__.js.map +1 -1
  23. package/out/concepts/View__.js +2 -2
  24. package/out/concepts/View__.js.map +1 -1
  25. package/out/server/naslServer.d.ts +2 -1
  26. package/out/server/naslServer.js +84 -38
  27. package/out/server/naslServer.js.map +1 -1
  28. package/out/templator/genQueryComponent.d.ts +2 -2
  29. package/out/templator/genQueryComponent.js +4 -1
  30. package/out/templator/genQueryComponent.js.map +1 -1
  31. package/out/templator/sql-parser/index.d.ts +1 -0
  32. package/out/templator/sql-parser/index.js +228 -0
  33. package/out/templator/sql-parser/index.js.map +1 -0
  34. package/out/templator/sql-parser/parser.js +26664 -0
  35. package/out/templator/sql-parser/parser.js.map +1 -0
  36. package/package.json +3 -4
  37. package/src/automate/engine/dist/index.dev.js +517 -0
  38. package/src/bak/translator.js +1 -1
  39. package/src/common/dist/BaseNode.js +1101 -0
  40. package/src/concepts/CallInterface__.ts +9 -9
  41. package/src/concepts/Destination__.ts +9 -9
  42. package/src/concepts/ExternalDestination__.ts +5 -5
  43. package/src/concepts/LogicItem__.ts +4 -0
  44. package/src/concepts/Logic__.ts +42 -5
  45. package/src/concepts/Match__.ts +21 -1
  46. package/src/concepts/MemberExpression__.ts +11 -0
  47. package/src/concepts/OqlQueryComponent__.ts +7 -0
  48. package/src/concepts/Param__.ts +3 -2
  49. package/src/concepts/Return__.ts +5 -1
  50. package/src/concepts/StringInterpolation__.ts +26 -26
  51. package/src/concepts/UnaryExpression__.ts +4 -4
  52. package/src/concepts/ValidationRule__.ts +1 -1
  53. package/src/concepts/Variable__.ts +1 -1
  54. package/src/concepts/ViewElement__.ts +1 -1
  55. package/src/concepts/View__.ts +2 -2
  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 +473 -0
  60. package/src/concepts/dist/CallInterface__.js +533 -0
  61. package/src/concepts/dist/CallLogic__.js +864 -0
  62. package/src/concepts/dist/ForEachStatement__.js +426 -0
  63. package/src/concepts/dist/MatchCase__.js +587 -0
  64. package/src/concepts/dist/MemberExpression__.js +348 -0
  65. package/src/concepts/dist/Param__.js +537 -0
  66. package/src/concepts/dist/Return__.js +493 -0
  67. package/src/generator/dist/genBundleFiles.js +414 -0
  68. package/src/server/dist/formatTsUtils.js +683 -0
  69. package/src/server/dist/naslServer.js +3396 -0
  70. package/src/server/naslServer.ts +84 -39
  71. package/src/service/storage/dist/init.js +541 -0
  72. package/src/templator/genQueryComponent.ts +8 -3
  73. package/ts-worker/dist/webpack.config.dev.js +104 -0
  74. package/ts-worker/lib/cancellationToken.js +67 -0
  75. package/ts-worker/lib/dist/tsserver.dev.js +22953 -0
  76. package/ts-worker/lib/harness.js +1 -1
  77. package/ts-worker/sources/lib/dist/tsserver.dev.js +22912 -0
  78. package/ts-worker/src/start.js +1 -1
  79. package/ts-worker/webpack.config.js +3 -1
  80. package/dist/bundle.js +0 -3962
  81. package/dist/bundle.js.LICENSE.txt +0 -16
  82. package/out/generator/release.d.ts +0 -1
  83. package/out/generator/release.js +0 -51
  84. package/out/generator/release.js.map +0 -1
@@ -0,0 +1,426 @@
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
+ exports.__esModule = true;
33
+ exports.ForEachStatement = void 0;
34
+ var translator_1 = require("../translator");
35
+ var decorators_1 = require("../decorators");
36
+ var utils = require("../utils");
37
+ var classMap_1 = require("../common/classMap");
38
+ var LogicItem__1 = require("./LogicItem__");
39
+ /**
40
+ * ForEach 循环分支
41
+ */
42
+ var ForEachStatement = /** @class */ (function (_super) {
43
+ __extends(ForEachStatement, _super);
44
+ /**
45
+ * @param source 需要合并的部分参数
46
+ */
47
+ function ForEachStatement(source) {
48
+ var _this = this;
49
+ source = Object.assign({}, ForEachStatement_1.getDefaultOptions(), source);
50
+ _this = _super.call(this, source) || this;
51
+ /**
52
+ * 产品概念
53
+ */
54
+ _this.concept = 'ForEachStatement';
55
+ /**
56
+ * 循环列表
57
+ */
58
+ _this.each = undefined;
59
+ /**
60
+ * 循环项参数
61
+ */
62
+ _this.item = undefined;
63
+ /**
64
+ * 循环项索引
65
+ */
66
+ _this.index = undefined;
67
+ /**
68
+ * 循环开始值
69
+ */
70
+ _this.start = undefined;
71
+ /**
72
+ * 循环结束值
73
+ */
74
+ _this.end = undefined;
75
+ /**
76
+ * 循环体
77
+ */
78
+ _this.body = [];
79
+ _super.prototype.subConstructor.call(_this, source);
80
+ return _this;
81
+ }
82
+ ForEachStatement_1 = ForEachStatement;
83
+ ForEachStatement.from = function (source, parentNode, parentKey) {
84
+ return _super.from.call(this, source, parentNode, parentKey);
85
+ };
86
+ /**
87
+ * 设置循环列表
88
+ */
89
+ ForEachStatement.prototype.setEach = function (each) {
90
+ each._delete();
91
+ var relationOptions = { parentNode: this, parentKey: 'each' };
92
+ Object.assign(each, relationOptions);
93
+ var object = {
94
+ each: each
95
+ };
96
+ this.update(__assign({}, object));
97
+ };
98
+ /**
99
+ * 设置循环项参数
100
+ */
101
+ ForEachStatement.prototype.setItem = function (item) {
102
+ item._delete();
103
+ var relationOptions = { parentNode: this, parentKey: 'item' };
104
+ Object.assign(item, relationOptions);
105
+ var object = {
106
+ item: item
107
+ };
108
+ this.update(__assign({}, object));
109
+ };
110
+ /**
111
+ * 设置循环项索引
112
+ */
113
+ ForEachStatement.prototype.setIndex = function (index) {
114
+ index._delete();
115
+ var relationOptions = { parentNode: this, parentKey: 'index' };
116
+ Object.assign(index, relationOptions);
117
+ var object = {
118
+ index: index
119
+ };
120
+ this.update(__assign({}, object));
121
+ };
122
+ /**
123
+ * 设置循环开始值
124
+ */
125
+ ForEachStatement.prototype.setStart = function (start) {
126
+ start._delete();
127
+ var relationOptions = { parentNode: this, parentKey: 'start' };
128
+ Object.assign(start, relationOptions);
129
+ var object = {
130
+ start: start
131
+ };
132
+ this.update(__assign({}, object));
133
+ };
134
+ /**
135
+ * 设置循环结束值
136
+ */
137
+ ForEachStatement.prototype.setEnd = function (end) {
138
+ end._delete();
139
+ var relationOptions = { parentNode: this, parentKey: 'end' };
140
+ Object.assign(end, relationOptions);
141
+ var object = {
142
+ end: end
143
+ };
144
+ this.update(__assign({}, object));
145
+ };
146
+ ForEachStatement.prototype._insertItemAt = function (options, index) {
147
+ var logicItemOptions = {};
148
+ var relationOptions = { parentNode: this, parentKey: 'body' };
149
+ var logicItem;
150
+ if (options instanceof LogicItem__1["default"]) {
151
+ options.ensureDelete(); // 同一实例不支持多处存在
152
+ logicItem = options;
153
+ Object.assign(logicItem, relationOptions);
154
+ }
155
+ else {
156
+ logicItem = LogicItem__1["default"].from(__assign(__assign({}, logicItemOptions), options), this, 'body');
157
+ }
158
+ this.body.splice(index, 0, logicItem);
159
+ return logicItem;
160
+ };
161
+ ForEachStatement.prototype.insertItemAt = function (options, index) {
162
+ var node = this._insertItemAt(options, index);
163
+ node.create({
164
+ index: index,
165
+ parentNode: this,
166
+ parentKey: 'body'
167
+ });
168
+ return node;
169
+ };
170
+ ForEachStatement.prototype._addItem = function (options) {
171
+ var index = this.body.length;
172
+ return this._insertItemAt(options, index);
173
+ };
174
+ ForEachStatement.prototype.addItem = function (options) {
175
+ var node = this._addItem(options);
176
+ var index = this.body.indexOf(node);
177
+ node.create({
178
+ index: index,
179
+ parentNode: this,
180
+ parentKey: 'body'
181
+ });
182
+ return node;
183
+ };
184
+ ForEachStatement.prototype.removeEach = function (options) {
185
+ var each;
186
+ if (typeof options === 'string') {
187
+ each = this.each;
188
+ if (!each) {
189
+ throw new Error('找不到逻辑项 ' + options);
190
+ }
191
+ }
192
+ else {
193
+ each = options;
194
+ }
195
+ return each["delete"]();
196
+ };
197
+ ForEachStatement.prototype.removeStart = function (options) {
198
+ var start;
199
+ if (typeof options === 'string') {
200
+ start = this.start;
201
+ if (!start) {
202
+ throw new Error('找不到逻辑项 ' + options);
203
+ }
204
+ }
205
+ else {
206
+ start = options;
207
+ }
208
+ return start["delete"]();
209
+ };
210
+ ForEachStatement.prototype.removeEnd = function (options) {
211
+ var end;
212
+ if (typeof options === 'string') {
213
+ end = this.end;
214
+ if (!end) {
215
+ throw new Error('找不到逻辑项 ' + options);
216
+ }
217
+ }
218
+ else {
219
+ end = options;
220
+ }
221
+ return end["delete"]();
222
+ };
223
+ ForEachStatement.prototype.removeItemInBody = function (options) {
224
+ var logicItem = options;
225
+ return logicItem["delete"]();
226
+ };
227
+ ForEachStatement.prototype.__removeLogicItem = function (logicItem) {
228
+ var parentKey = logicItem.parentKey;
229
+ var params = {
230
+ parentNode: this,
231
+ parentKey: parentKey,
232
+ index: -1,
233
+ object: null,
234
+ oldObject: logicItem
235
+ };
236
+ if (parentKey) {
237
+ params.parentKey = parentKey;
238
+ if (Array.isArray(this[parentKey])) {
239
+ var index = this[parentKey].indexOf(logicItem);
240
+ ~index && this[parentKey].splice(index, 1);
241
+ params.index = index;
242
+ }
243
+ else if (this[parentKey] === logicItem) {
244
+ params.index = 0;
245
+ this[parentKey] = undefined;
246
+ }
247
+ }
248
+ return params;
249
+ };
250
+ ForEachStatement.prototype.removeItem = function (options) {
251
+ var item;
252
+ if (typeof options === 'string') {
253
+ item = this.item;
254
+ if (!item) {
255
+ throw new Error('找不到输入参数 ' + options);
256
+ }
257
+ }
258
+ else {
259
+ item = options;
260
+ }
261
+ return item["delete"]();
262
+ };
263
+ ForEachStatement.prototype.removeIndex = function (options) {
264
+ var index;
265
+ if (typeof options === 'string') {
266
+ index = this.index;
267
+ if (!index) {
268
+ throw new Error('找不到输入参数 ' + options);
269
+ }
270
+ }
271
+ else {
272
+ index = options;
273
+ }
274
+ return index["delete"]();
275
+ };
276
+ ForEachStatement.prototype.__removeParam = function (param) {
277
+ var parentKey = param.parentKey;
278
+ var params = {
279
+ parentNode: this,
280
+ parentKey: parentKey,
281
+ index: -1,
282
+ object: null,
283
+ oldObject: param
284
+ };
285
+ if (parentKey) {
286
+ params.parentKey = parentKey;
287
+ if (Array.isArray(this[parentKey])) {
288
+ var index = this[parentKey].indexOf(param);
289
+ ~index && this[parentKey].splice(index, 1);
290
+ params.index = index;
291
+ }
292
+ else if (this[parentKey] === param) {
293
+ params.index = 0;
294
+ this[parentKey] = undefined;
295
+ }
296
+ }
297
+ return params;
298
+ };
299
+ //================================================================================
300
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
301
+ // 自动生成的代码已结束。下面可以手动编写。
302
+ //================================================================================
303
+ ForEachStatement.prototype.checkItemIndexName = function () {
304
+ var itemNames = [];
305
+ var idxNames = [];
306
+ var n = this.parentNode;
307
+ while (n && n.concept !== 'Logic') {
308
+ if (n instanceof ForEachStatement_1) {
309
+ itemNames.push(n.item.name);
310
+ idxNames.push(n.index.name);
311
+ }
312
+ n = n.parentNode;
313
+ }
314
+ var uniqueItemName = utils.unique('item', itemNames);
315
+ var uniqueIdxName = utils.unique('index', idxNames);
316
+ if (this.item.name !== uniqueItemName) {
317
+ this.item.setName(uniqueItemName);
318
+ }
319
+ if (this.index.name !== uniqueIdxName) {
320
+ this.index.setName(uniqueIdxName);
321
+ }
322
+ };
323
+ ForEachStatement.getDefaultOptions = function () {
324
+ return {
325
+ label: 'ForEach 循环分支',
326
+ item: {
327
+ concept: 'Param',
328
+ name: 'item',
329
+ typeAnnotation: null,
330
+ editable: true
331
+ },
332
+ index: {
333
+ concept: 'Param',
334
+ name: 'index',
335
+ typeAnnotation: null,
336
+ editable: true
337
+ },
338
+ start: {
339
+ concept: 'NumericLiteral',
340
+ value: '0'
341
+ }
342
+ };
343
+ };
344
+ ForEachStatement.prototype.toJS = function (state) {
345
+ var code = '';
346
+ var list = this.each ? this.each.toJS(translator_1.shiftState(state, code, {
347
+ tabSize: 0
348
+ })) : '';
349
+ code += "if(Array.isArray(" + list + ")) {\n";
350
+ code += "for (let " + this.index.name + " = " + (this.start && this.start.toJS() ? this.start.toJS() : '') + "; ";
351
+ code += this.index.name + " < (" + (this.end && this.end.toJS() ? this.end.toJS() : '') + "); " + this.index.name + "++) {\n";
352
+ code += "let " + this.item.name + " = (" + list + ")[" + this.index.name + "];\n";
353
+ if (Array.isArray(this.body)) {
354
+ this.body.forEach(function (logicItem) {
355
+ code
356
+ += logicItem.toJS(translator_1.shiftState(state, code, {
357
+ tabSize: 0
358
+ })) + '\n';
359
+ });
360
+ }
361
+ code += '}\n';
362
+ code += '}\n';
363
+ return code;
364
+ };
365
+ ForEachStatement.prototype.toEmbeddedTS = function (state) {
366
+ var code = '';
367
+ code += this.each ? this.each.toEmbeddedTS(translator_1.shiftState(state, code, {
368
+ tabSize: 0
369
+ })) : '__IDENTIFIER__';
370
+ code += '.__slice(';
371
+ code += this.start ? this.start.toEmbeddedTS(translator_1.shiftState(state, code)) : '__IDENTIFIER__';
372
+ code += ', ';
373
+ code += this.end ? this.end.toEmbeddedTS(translator_1.shiftState(state, code)) : '__IDENTIFIER__';
374
+ code += ').__forEach((';
375
+ code += this.item ? this.item.toEmbeddedTS(translator_1.shiftState(state, code), true) : '__IDENTIFIER__';
376
+ code += ', ';
377
+ code += this.index ? this.index.toEmbeddedTS(translator_1.shiftState(state, code), true) : '__IDENTIFIER__';
378
+ code += ') => {\n';
379
+ if (Array.isArray(this.body)) {
380
+ this.body.forEach(function (logicItem) {
381
+ code
382
+ += logicItem.toEmbeddedTS(translator_1.shiftState(state, code, {
383
+ tabSize: ((state === null || state === void 0 ? void 0 : state.tabSize) || 0) + 1
384
+ })) + ';\n';
385
+ });
386
+ }
387
+ code += translator_1.indent(((state === null || state === void 0 ? void 0 : state.tabSize) || 0)) + '})\n';
388
+ return code;
389
+ };
390
+ var ForEachStatement_1;
391
+ __decorate([
392
+ decorators_1.property()
393
+ ], ForEachStatement.prototype, "concept");
394
+ __decorate([
395
+ decorators_1.property('LogicItem')
396
+ ], ForEachStatement.prototype, "each");
397
+ __decorate([
398
+ decorators_1.property('Param')
399
+ ], ForEachStatement.prototype, "item");
400
+ __decorate([
401
+ decorators_1.property('Param')
402
+ ], ForEachStatement.prototype, "index");
403
+ __decorate([
404
+ decorators_1.property('LogicItem')
405
+ ], ForEachStatement.prototype, "start");
406
+ __decorate([
407
+ decorators_1.property('LogicItem')
408
+ ], ForEachStatement.prototype, "end");
409
+ __decorate([
410
+ decorators_1.property('LogicItem')
411
+ ], ForEachStatement.prototype, "body");
412
+ __decorate([
413
+ translator_1.withSourceMap()
414
+ ], ForEachStatement.prototype, "toEmbeddedTS");
415
+ ForEachStatement = ForEachStatement_1 = __decorate([
416
+ decorators_1.concept('ForEach 循环分支')
417
+ ], ForEachStatement);
418
+ return ForEachStatement;
419
+ }(LogicItem__1["default"]));
420
+ exports.ForEachStatement = ForEachStatement;
421
+ classMap_1["default"].ForEachStatement = ForEachStatement;
422
+ exports["default"] = ForEachStatement;
423
+ //================================================================================
424
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
425
+ // 自动生成的代码已结束。下面可以手动编写。
426
+ //================================================================================