@lcap/nasl 2.18.0-beta.4 → 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 (46) hide show
  1. package/out/concepts/MatchExpression__.d.ts +97 -0
  2. package/out/concepts/MatchExpression__.js +281 -0
  3. package/out/concepts/MatchExpression__.js.map +1 -0
  4. package/out/concepts/Param__.js +1 -1
  5. package/out/concepts/Param__.js.map +1 -1
  6. package/out/concepts/Return__.js +1 -1
  7. package/out/concepts/Return__.js.map +1 -1
  8. package/out/concepts/Variable__.js +1 -1
  9. package/out/concepts/Variable__.js.map +1 -1
  10. package/out/server/naslServer.js +27 -31
  11. package/out/server/naslServer.js.map +1 -1
  12. package/out/templator/sql-parser/index.d.ts +1 -0
  13. package/out/templator/sql-parser/index.js +228 -0
  14. package/out/templator/sql-parser/index.js.map +1 -0
  15. package/out/templator/sql-parser/parser.js +26664 -0
  16. package/out/templator/sql-parser/parser.js.map +1 -0
  17. package/package.json +2 -2
  18. package/src/automate/engine/dist/index.dev.js +517 -0
  19. package/src/common/dist/BaseNode.js +1101 -0
  20. package/src/concepts/Param__.ts +1 -1
  21. package/src/concepts/Return__.ts +1 -1
  22. package/src/concepts/Variable__.ts +1 -1
  23. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
  24. package/src/concepts/dist/Anchor__.js +179 -0
  25. package/src/concepts/dist/Assignment__.js +301 -0
  26. package/src/concepts/dist/CallFunction__.js +473 -0
  27. package/src/concepts/dist/CallInterface__.js +533 -0
  28. package/src/concepts/dist/CallLogic__.js +864 -0
  29. package/src/concepts/dist/ForEachStatement__.js +426 -0
  30. package/src/concepts/dist/MatchCase__.js +587 -0
  31. package/src/concepts/dist/MemberExpression__.js +348 -0
  32. package/src/concepts/dist/Param__.js +537 -0
  33. package/src/concepts/dist/Return__.js +493 -0
  34. package/src/generator/dist/genBundleFiles.js +414 -0
  35. package/src/server/dist/formatTsUtils.js +683 -0
  36. package/src/server/dist/naslServer.js +3396 -0
  37. package/src/server/naslServer.ts +28 -31
  38. package/src/service/storage/dist/init.js +541 -0
  39. package/ts-worker/dist/webpack.config.dev.js +104 -0
  40. package/ts-worker/lib/dist/tsserver.dev.js +22953 -0
  41. package/ts-worker/sources/lib/dist/tsserver.dev.js +22912 -0
  42. package/dist/bundle.js +0 -3962
  43. package/dist/bundle.js.LICENSE.txt +0 -16
  44. package/out/generator/release.d.ts +0 -1
  45. package/out/generator/release.js +0 -51
  46. package/out/generator/release.js.map +0 -1
@@ -0,0 +1,473 @@
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.CallFunction = void 0;
34
+ var translator_1 = require("../translator");
35
+ var Function__1 = require("./Function__");
36
+ var Identifier__1 = require("./Identifier__");
37
+ var getFunctions_1 = require("../server/getFunctions");
38
+ var AnonymousFunction__1 = require("./AnonymousFunction__");
39
+ var decorators_1 = require("../decorators");
40
+ var BaseNode_1 = require("../common/BaseNode");
41
+ var classMap_1 = require("../common/classMap");
42
+ var TypeAnnotation__1 = require("./TypeAnnotation__");
43
+ var Argument__1 = require("./Argument__");
44
+ var LogicItem__1 = require("./LogicItem__");
45
+ /**
46
+ * 调用函数
47
+ */
48
+ var CallFunction = /** @class */ (function (_super) {
49
+ __extends(CallFunction, _super);
50
+ /**
51
+ * @param source 需要合并的部分参数
52
+ */
53
+ function CallFunction(source) {
54
+ var _this = this;
55
+ source = Object.assign({}, CallFunction_1.getDefaultOptions(), source);
56
+ _this = _super.call(this, source) || this;
57
+ /**
58
+ * 产品概念
59
+ */
60
+ _this.concept = 'CallFunction';
61
+ /**
62
+ * 调用函数标题
63
+ */
64
+ _this.label = '内置函数';
65
+ /**
66
+ * calleeNamespace
67
+ */
68
+ _this.calleeNamespace = undefined;
69
+ /**
70
+ * calleeName
71
+ */
72
+ _this.calleeName = undefined;
73
+ /**
74
+ * shortcut
75
+ */
76
+ _this.shortcut = undefined;
77
+ /**
78
+ * 类型参数
79
+ */
80
+ _this.typeArguments = null;
81
+ /**
82
+ * 实际参数
83
+ */
84
+ _this.arguments = [];
85
+ _super.prototype.subConstructor.call(_this, source);
86
+ return _this;
87
+ }
88
+ CallFunction_1 = CallFunction;
89
+ CallFunction.from = function (source, parentNode, parentKey) {
90
+ return _super.from.call(this, source, parentNode, parentKey);
91
+ };
92
+ CallFunction.prototype._insertTypeAnnotationAt = function (options, index) {
93
+ var typeAnnotationOptions = {};
94
+ var relationOptions = { parentNode: this, parentKey: 'typeArguments' };
95
+ var typeAnnotation;
96
+ if (options instanceof TypeAnnotation__1["default"]) {
97
+ options.ensureDelete(); // 同一实例不支持多处存在
98
+ typeAnnotation = options;
99
+ Object.assign(typeAnnotation, relationOptions);
100
+ }
101
+ else {
102
+ typeAnnotation = TypeAnnotation__1["default"].from(__assign(__assign({}, typeAnnotationOptions), options), this, 'typeArguments');
103
+ }
104
+ this.typeArguments.splice(index, 0, typeAnnotation);
105
+ return typeAnnotation;
106
+ };
107
+ CallFunction.prototype.insertTypeAnnotationAt = function (options, index) {
108
+ var node = this._insertTypeAnnotationAt(options, index);
109
+ node.create({
110
+ index: index,
111
+ parentNode: this,
112
+ parentKey: 'typeArguments'
113
+ });
114
+ return node;
115
+ };
116
+ CallFunction.prototype._addTypeAnnotation = function (options) {
117
+ var index = this.typeArguments.length;
118
+ return this._insertTypeAnnotationAt(options, index);
119
+ };
120
+ CallFunction.prototype.addTypeAnnotation = function (options) {
121
+ var node = this._addTypeAnnotation(options);
122
+ var index = this.typeArguments.indexOf(node);
123
+ node.create({
124
+ index: index,
125
+ parentNode: this,
126
+ parentKey: 'typeArguments'
127
+ });
128
+ return node;
129
+ };
130
+ CallFunction.prototype._insertArgumentAt = function (options, index) {
131
+ var argumentOptions = {};
132
+ var relationOptions = { parentNode: this, parentKey: 'arguments' };
133
+ var argument;
134
+ if (options instanceof Argument__1["default"]) {
135
+ options.ensureDelete(); // 同一实例不支持多处存在
136
+ argument = options;
137
+ Object.assign(argument, relationOptions);
138
+ }
139
+ else {
140
+ argument = Argument__1["default"].from(__assign(__assign({}, argumentOptions), options), this, 'arguments');
141
+ }
142
+ this.arguments.splice(index, 0, argument);
143
+ return argument;
144
+ };
145
+ CallFunction.prototype.insertArgumentAt = function (options, index) {
146
+ var node = this._insertArgumentAt(options, index);
147
+ node.create({
148
+ index: index,
149
+ parentNode: this,
150
+ parentKey: 'arguments'
151
+ });
152
+ return node;
153
+ };
154
+ CallFunction.prototype._addArgument = function (options) {
155
+ var index = this.arguments.length;
156
+ return this._insertArgumentAt(options, index);
157
+ };
158
+ CallFunction.prototype.addArgument = function (options) {
159
+ var node = this._addArgument(options);
160
+ var index = this.arguments.indexOf(node);
161
+ node.create({
162
+ index: index,
163
+ parentNode: this,
164
+ parentKey: 'arguments'
165
+ });
166
+ return node;
167
+ };
168
+ CallFunction.prototype.removeTypeAnnotation = function (options) {
169
+ var typeAnnotation = options;
170
+ return typeAnnotation["delete"]();
171
+ };
172
+ CallFunction.prototype.__removeTypeAnnotation = function (typeAnnotation) {
173
+ var parentKey = typeAnnotation.parentKey;
174
+ var params = {
175
+ parentNode: this,
176
+ parentKey: parentKey,
177
+ index: -1,
178
+ object: null,
179
+ oldObject: typeAnnotation
180
+ };
181
+ if (parentKey) {
182
+ params.parentKey = parentKey;
183
+ if (Array.isArray(this[parentKey])) {
184
+ var index = this[parentKey].indexOf(typeAnnotation);
185
+ ~index && this[parentKey].splice(index, 1);
186
+ params.index = index;
187
+ }
188
+ else if (this[parentKey] === typeAnnotation) {
189
+ params.index = 0;
190
+ this[parentKey] = undefined;
191
+ }
192
+ }
193
+ return params;
194
+ };
195
+ CallFunction.prototype.removeArgument = function (options) {
196
+ var argument = options;
197
+ return argument["delete"]();
198
+ };
199
+ CallFunction.prototype.__removeLogicItem = function (logicItem) {
200
+ var parentKey = logicItem.parentKey;
201
+ var params = {
202
+ parentNode: this,
203
+ parentKey: parentKey,
204
+ index: -1,
205
+ object: null,
206
+ oldObject: logicItem
207
+ };
208
+ if (parentKey) {
209
+ params.parentKey = parentKey;
210
+ if (Array.isArray(this[parentKey])) {
211
+ var index = this[parentKey].indexOf(logicItem);
212
+ ~index && this[parentKey].splice(index, 1);
213
+ params.index = index;
214
+ }
215
+ else if (this[parentKey] === logicItem) {
216
+ params.index = 0;
217
+ this[parentKey] = undefined;
218
+ }
219
+ }
220
+ return params;
221
+ };
222
+ //================================================================================
223
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
224
+ // 自动生成的代码已结束。下面可以手动编写。
225
+ //================================================================================
226
+ CallFunction.prototype.toVue = function (options) {
227
+ var _this = this;
228
+ var _a, _b, _c;
229
+ if ((options === null || options === void 0 ? void 0 : options.finalCode) === false) {
230
+ return this.toUI();
231
+ }
232
+ else {
233
+ var code_1 = "$utils['" + this.calleeName + "']";
234
+ code_1 += '(';
235
+ (_a = this.arguments) === null || _a === void 0 ? void 0 : _a.forEach(function (arg, index) {
236
+ var _a;
237
+ code_1 += arg === null || arg === void 0 ? void 0 : arg.toVue(options);
238
+ if (index !== ((_a = _this.arguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
239
+ code_1 += ', ';
240
+ });
241
+ if (this.typeArguments && this.typeArguments.length) {
242
+ if ((_b = this.arguments) === null || _b === void 0 ? void 0 : _b.length)
243
+ code_1 += ', ';
244
+ (_c = this.typeArguments) === null || _c === void 0 ? void 0 : _c.forEach(function (arg, index) {
245
+ var _a;
246
+ code_1 += arg === null || arg === void 0 ? void 0 : arg.toJS().replace(/"/g, "'");
247
+ if (index !== ((_a = _this.typeArguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
248
+ code_1 += ', ';
249
+ });
250
+ }
251
+ code_1 += ')';
252
+ return code_1;
253
+ }
254
+ };
255
+ CallFunction.prototype.toUI = function () {
256
+ var _this = this;
257
+ var _a, _b, _c;
258
+ var code = this.calleeName;
259
+ code += '(';
260
+ (_a = this.arguments) === null || _a === void 0 ? void 0 : _a.forEach(function (arg, index) {
261
+ var _a;
262
+ code += arg === null || arg === void 0 ? void 0 : arg.toUI();
263
+ if (index !== ((_a = _this.arguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
264
+ code += ', ';
265
+ });
266
+ if (this.typeArguments && this.typeArguments.length) {
267
+ if ((_b = this.arguments) === null || _b === void 0 ? void 0 : _b.length)
268
+ code += ', ';
269
+ (_c = this.typeArguments) === null || _c === void 0 ? void 0 : _c.forEach(function (arg, index) {
270
+ var _a;
271
+ code += arg === null || arg === void 0 ? void 0 : arg.typeName;
272
+ if (index !== ((_a = _this.typeArguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
273
+ code += ', ';
274
+ });
275
+ }
276
+ code += ')';
277
+ return code;
278
+ };
279
+ CallFunction.prototype.toJS = function (state) {
280
+ var _this = this;
281
+ var _a, _b, _c;
282
+ var code = "this.$utils['" + this.calleeName + "']";
283
+ code += '(';
284
+ (_a = this.arguments) === null || _a === void 0 ? void 0 : _a.forEach(function (arg, index) {
285
+ var _a;
286
+ code += arg === null || arg === void 0 ? void 0 : arg.toJS(translator_1.shiftState(state, code));
287
+ if (index !== ((_a = _this.arguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
288
+ code += ', ';
289
+ });
290
+ if (this.typeArguments && this.typeArguments.length) {
291
+ if ((_b = this.arguments) === null || _b === void 0 ? void 0 : _b.length)
292
+ code += ', ';
293
+ (_c = this.typeArguments) === null || _c === void 0 ? void 0 : _c.forEach(function (arg, index) {
294
+ var _a;
295
+ code += arg === null || arg === void 0 ? void 0 : arg.toJS(translator_1.shiftState(state, code));
296
+ if (index !== ((_a = _this.typeArguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
297
+ code += ', ';
298
+ });
299
+ }
300
+ code += ')';
301
+ var typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
302
+ var needGenInitFromSchema = typeAnnotation && !['primitive', 'union'].includes(typeAnnotation.typeKind);
303
+ if (needGenInitFromSchema) {
304
+ code = "this.$genInitFromSchema('" + (typeAnnotation === null || typeAnnotation === void 0 ? void 0 : typeAnnotation.sortedTypeKey) + "', " + code + ")";
305
+ }
306
+ return code;
307
+ };
308
+ CallFunction.prototype.toBrief = function () {
309
+ return this.arguments.map(function (a) { return a.toBrief(); }).join('<br />');
310
+ };
311
+ Object.defineProperty(CallFunction.prototype, "calleeKey", {
312
+ get: function () {
313
+ return this.calleeName ? "" + (this.calleeNamespace ? this.calleeNamespace + '.' : '') + this.calleeName : '__IDENTIFIER__';
314
+ },
315
+ enumerable: false,
316
+ configurable: true
317
+ });
318
+ CallFunction.prototype._setCallee = function (func) {
319
+ var _this = this;
320
+ var _a;
321
+ this.calleeNamespace = func === null || func === void 0 ? void 0 : func.getNamespace();
322
+ this.calleeName = func === null || func === void 0 ? void 0 : func.name;
323
+ this.arguments = [];
324
+ (_a = func === null || func === void 0 ? void 0 : func.params) === null || _a === void 0 ? void 0 : _a.forEach(function (param) {
325
+ _this._addArgument(undefined);
326
+ });
327
+ };
328
+ CallFunction.prototype.setCallee = function (func) {
329
+ var _this = this;
330
+ var calleeNamespace = func.getNamespace();
331
+ var calleeName = func.name;
332
+ var params = func.params.map(function (param) {
333
+ var relationOptions = { parentNode: _this, parentKey: 'arguments' };
334
+ var argument = Argument__1["default"].from({
335
+ keyword: param.name
336
+ }, _this);
337
+ if (param.defaultExpression instanceof Identifier__1["default"]) {
338
+ argument.expression = BaseNode_1["default"].from(param.defaultExpression, argument, 'expression');
339
+ }
340
+ if (param.defaultExpression instanceof Function__1["default"]) {
341
+ param.defaultExpression.returnExpression = null;
342
+ argument.expression = BaseNode_1["default"].from(param.defaultExpression, argument, 'expression');
343
+ }
344
+ Object.assign(argument, relationOptions);
345
+ return argument;
346
+ });
347
+ var typeArguments = null;
348
+ if (func.typeParams) {
349
+ typeArguments = func.typeParams.map(function () {
350
+ var relationOptions = { parentNode: _this, parentKey: 'typeArguments' };
351
+ var typeArgu = new TypeAnnotation__1["default"]();
352
+ Object.assign(typeArgu, relationOptions);
353
+ return typeArgu;
354
+ });
355
+ }
356
+ this.update({
357
+ calleeNamespace: calleeNamespace,
358
+ calleeName: calleeName,
359
+ arguments: params,
360
+ typeArguments: typeArguments,
361
+ folded: false
362
+ });
363
+ this.detectArgs();
364
+ };
365
+ CallFunction.prototype.detectArgs = function (obj) {
366
+ var _a;
367
+ var func = getFunctions_1.getBuildInFunction(this.calleeName);
368
+ var shouldJudge = !!func && [
369
+ 'ListDistinctBy',
370
+ 'MapDistinctBy',
371
+ 'ListGroupBy',
372
+ 'ListToMap',
373
+ 'MapFilter',
374
+ ].includes(this.calleeName);
375
+ if (shouldJudge && Array.isArray(this.arguments)) {
376
+ var depParamIdx_1 = func.params.findIndex(function (param) { return ['list', 'map'].includes(param.name); });
377
+ if (depParamIdx_1 !== -1) {
378
+ var depArgExpression_1 = (_a = this.arguments) === null || _a === void 0 ? void 0 : _a[depParamIdx_1].expression;
379
+ this.arguments.forEach(function (arg, index) {
380
+ if (depParamIdx_1 !== index && !depArgExpression_1) {
381
+ arg.illegalTip = "\u8BF7\u5148\u6DFB\u52A0" + func.params[depParamIdx_1].name;
382
+ }
383
+ else {
384
+ if (arg.illegalTip) {
385
+ delete arg.illegalTip;
386
+ }
387
+ }
388
+ });
389
+ }
390
+ }
391
+ };
392
+ CallFunction.prototype.toEmbeddedTS = function (state) {
393
+ var _this = this;
394
+ var code = '';
395
+ var calleeKey = this.calleeKey;
396
+ if (calleeKey === 'nasl.util.Convert') {
397
+ // nasl.util.Convert(variable1)<nasl.core.String>();
398
+ // 单独处理
399
+ code = calleeKey;
400
+ code += '(';
401
+ this.arguments.forEach(function (arg, index) {
402
+ code += arg.toEmbeddedTS(translator_1.shiftState(state, code, { tabSize: 0 }));
403
+ if (index !== _this.arguments.length - 1)
404
+ code += ', ';
405
+ });
406
+ code += ')';
407
+ // 如果有内容
408
+ var typeAnnotation = this.typeArguments[0];
409
+ code += "<";
410
+ code += typeAnnotation.toEmbeddedTS(translator_1.shiftState(state, code, { tabSize: 0 })) + ">()";
411
+ }
412
+ else {
413
+ code = this.calleeKey;
414
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
415
+ // 如果有内容
416
+ var typeAnnotation = this.typeArguments[0];
417
+ code += "<";
418
+ code += typeAnnotation.toEmbeddedTS(translator_1.shiftState(state, code, { tabSize: 0 })) + ">";
419
+ }
420
+ code += '(';
421
+ Array.isArray(this.arguments) && this.arguments.forEach(function (arg, index) {
422
+ code += arg.toEmbeddedTS(translator_1.shiftState(state, code, { tabSize: 0 }));
423
+ if (index !== _this.arguments.length - 1)
424
+ code += ', ';
425
+ });
426
+ code += ')';
427
+ }
428
+ return code;
429
+ };
430
+ CallFunction.prototype.checkParamNameOfAnonymousFunction = function () {
431
+ var fns = this.arguments.map(function (arg) { return arg.expression; })
432
+ .filter(function (exp) { return exp instanceof AnonymousFunction__1["default"]; });
433
+ fns.forEach(function (fn) {
434
+ fn.checkParamName();
435
+ });
436
+ };
437
+ var CallFunction_1;
438
+ __decorate([
439
+ decorators_1.property()
440
+ ], CallFunction.prototype, "concept");
441
+ __decorate([
442
+ decorators_1.property()
443
+ ], CallFunction.prototype, "label");
444
+ __decorate([
445
+ decorators_1.property()
446
+ ], CallFunction.prototype, "calleeNamespace");
447
+ __decorate([
448
+ decorators_1.property()
449
+ ], CallFunction.prototype, "calleeName");
450
+ __decorate([
451
+ decorators_1.property()
452
+ ], CallFunction.prototype, "shortcut");
453
+ __decorate([
454
+ decorators_1.property('TypeAnnotation')
455
+ ], CallFunction.prototype, "typeArguments");
456
+ __decorate([
457
+ decorators_1.property('Argument')
458
+ ], CallFunction.prototype, "arguments");
459
+ __decorate([
460
+ translator_1.withSourceMap()
461
+ ], CallFunction.prototype, "toEmbeddedTS");
462
+ CallFunction = CallFunction_1 = __decorate([
463
+ decorators_1.concept('调用函数')
464
+ ], CallFunction);
465
+ return CallFunction;
466
+ }(LogicItem__1["default"]));
467
+ exports.CallFunction = CallFunction;
468
+ classMap_1["default"].CallFunction = CallFunction;
469
+ exports["default"] = CallFunction;
470
+ //================================================================================
471
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
472
+ // 自动生成的代码已结束。下面可以手动编写。
473
+ //================================================================================