@lcap/nasl 2.18.0-beta.7 → 2.19.0-beta.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 (265) hide show
  1. package/out/automate/template/myProcess.js +1 -1
  2. package/out/automate/template/myProcess.js.map +1 -1
  3. package/out/bak/translator.js +2 -1
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/common/Command.d.ts +1 -0
  6. package/out/common/Command.js +5 -1
  7. package/out/common/Command.js.map +1 -1
  8. package/out/concepts/AnonymousFunction__.d.ts +1 -0
  9. package/out/concepts/AnonymousFunction__.js +40 -2
  10. package/out/concepts/AnonymousFunction__.js.map +1 -1
  11. package/out/concepts/App__.d.ts +10 -0
  12. package/out/concepts/App__.js +132 -0
  13. package/out/concepts/App__.js.map +1 -1
  14. package/out/concepts/Assignee__.js +4 -3
  15. package/out/concepts/Assignee__.js.map +1 -1
  16. package/out/concepts/BatchAssignment__.d.ts +2 -0
  17. package/out/concepts/BatchAssignment__.js +45 -1
  18. package/out/concepts/BatchAssignment__.js.map +1 -1
  19. package/out/concepts/BindAttribute__.js +8 -1
  20. package/out/concepts/BindAttribute__.js.map +1 -1
  21. package/out/concepts/CallFunction__.js +51 -18
  22. package/out/concepts/CallFunction__.js.map +1 -1
  23. package/out/concepts/CallInterface__.js +6 -4
  24. package/out/concepts/CallInterface__.js.map +1 -1
  25. package/out/concepts/CallLogic__.js +87 -15
  26. package/out/concepts/CallLogic__.js.map +1 -1
  27. package/out/concepts/CallQueryComponent__.js +4 -1
  28. package/out/concepts/CallQueryComponent__.js.map +1 -1
  29. package/out/concepts/DataSource__.d.ts +2 -0
  30. package/out/concepts/DataSource__.js +55 -1
  31. package/out/concepts/DataSource__.js.map +1 -1
  32. package/out/concepts/ForEachStatement__.js +2 -0
  33. package/out/concepts/ForEachStatement__.js.map +1 -1
  34. package/out/concepts/Identifier__.d.ts +1 -0
  35. package/out/concepts/Identifier__.js +18 -7
  36. package/out/concepts/Identifier__.js.map +1 -1
  37. package/out/concepts/LogicItem__.d.ts +1 -1
  38. package/out/concepts/LogicItem__.js.map +1 -1
  39. package/out/concepts/Logic__.d.ts +1 -0
  40. package/out/concepts/Logic__.js +27 -14
  41. package/out/concepts/Logic__.js.map +1 -1
  42. package/out/concepts/Match__.js +13 -8
  43. package/out/concepts/Match__.js.map +1 -1
  44. package/out/concepts/NewComposite__.d.ts +345 -0
  45. package/out/concepts/NewComposite__.js +1067 -0
  46. package/out/concepts/NewComposite__.js.map +1 -0
  47. package/out/concepts/NewList__.d.ts +130 -0
  48. package/out/concepts/NewList__.js +353 -0
  49. package/out/concepts/NewList__.js.map +1 -0
  50. package/out/concepts/NewMap__.d.ts +221 -0
  51. package/out/concepts/NewMap__.js +492 -0
  52. package/out/concepts/NewMap__.js.map +1 -0
  53. package/out/concepts/New__.d.ts +19 -0
  54. package/out/concepts/New__.js +66 -0
  55. package/out/concepts/New__.js.map +1 -0
  56. package/out/concepts/Param__.d.ts +2 -0
  57. package/out/concepts/Param__.js +40 -3
  58. package/out/concepts/Param__.js.map +1 -1
  59. package/out/concepts/ProcessElement__.js +31 -10
  60. package/out/concepts/ProcessElement__.js.map +1 -1
  61. package/out/concepts/ProcessOutcome__.js +1 -1
  62. package/out/concepts/ProcessOutcome__.js.map +1 -1
  63. package/out/concepts/ProcessOutcomes__.d.ts +30 -0
  64. package/out/concepts/{ConstructArgument__.js → ProcessOutcomes__.js} +27 -48
  65. package/out/concepts/ProcessOutcomes__.js.map +1 -0
  66. package/out/concepts/Return__.js +2 -1
  67. package/out/concepts/Return__.js.map +1 -1
  68. package/out/concepts/SelectMembers__.js +3 -3
  69. package/out/concepts/SelectMembers__.js.map +1 -1
  70. package/out/concepts/StringInterpolation__.js +12 -2
  71. package/out/concepts/StringInterpolation__.js.map +1 -1
  72. package/out/concepts/TypeAnnotation__.d.ts +4 -0
  73. package/out/concepts/TypeAnnotation__.js +66 -12
  74. package/out/concepts/TypeAnnotation__.js.map +1 -1
  75. package/out/concepts/ValidationRule__.js +1 -1
  76. package/out/concepts/ValidationRule__.js.map +1 -1
  77. package/out/concepts/Variable__.js +2 -1
  78. package/out/concepts/Variable__.js.map +1 -1
  79. package/out/concepts/ViewElement__.js +12 -0
  80. package/out/concepts/ViewElement__.js.map +1 -1
  81. package/out/concepts/View__.d.ts +1 -0
  82. package/out/concepts/View__.js +9 -0
  83. package/out/concepts/View__.js.map +1 -1
  84. package/out/concepts/basics/stdlib/nasl.auth.js +1 -1
  85. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  86. package/out/concepts/basics/stdlib/nasl.logging.js +5 -0
  87. package/out/concepts/basics/stdlib/nasl.logging.js.map +1 -1
  88. package/out/concepts/basics/stdlib/nasl.ui.js +2 -0
  89. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  90. package/out/concepts/basics/stdlib/nasl.util.js +151 -19
  91. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  92. package/out/concepts/index__.d.ts +5 -0
  93. package/out/concepts/index__.js +5 -0
  94. package/out/concepts/index__.js.map +1 -1
  95. package/out/enums/KEYWORDS.js +1 -0
  96. package/out/enums/KEYWORDS.js.map +1 -1
  97. package/out/generator/genMetaData.js +1 -6
  98. package/out/generator/genMetaData.js.map +1 -1
  99. package/out/generator/genReleaseBody.d.ts +2 -0
  100. package/out/generator/genReleaseBody.js +18 -1
  101. package/out/generator/genReleaseBody.js.map +1 -1
  102. package/out/generator/index.d.ts +1 -0
  103. package/out/generator/index.js +1 -0
  104. package/out/generator/index.js.map +1 -1
  105. package/out/generator/permission.d.ts +9 -0
  106. package/out/generator/permission.js +235 -0
  107. package/out/generator/permission.js.map +1 -0
  108. package/out/index.d.ts +1 -1
  109. package/out/index.js +2 -1
  110. package/out/index.js.map +1 -1
  111. package/out/server/entity2LogicNamespace.js +69 -9
  112. package/out/server/entity2LogicNamespace.js.map +1 -1
  113. package/out/server/extendBaseNode.js +7 -3
  114. package/out/server/extendBaseNode.js.map +1 -1
  115. package/out/server/formatTsUtils.js +6 -0
  116. package/out/server/formatTsUtils.js.map +1 -1
  117. package/out/server/getLogics.d.ts +2 -1
  118. package/out/server/getLogics.js +11 -0
  119. package/out/server/getLogics.js.map +1 -1
  120. package/out/server/getMemberIdentifier.js +1 -1
  121. package/out/server/getMemberIdentifier.js.map +1 -1
  122. package/out/server/naslServer.d.ts +1 -1
  123. package/out/server/naslServer.js +161 -22
  124. package/out/server/naslServer.js.map +1 -1
  125. package/out/server/process2LogicNamespace.js +8 -0
  126. package/out/server/process2LogicNamespace.js.map +1 -1
  127. package/out/server/translator.js +53 -8
  128. package/out/server/translator.js.map +1 -1
  129. package/out/service/creator/add.configs.js +4 -0
  130. package/out/service/creator/add.configs.js.map +1 -1
  131. package/out/service/datasource/api.d.ts +12 -0
  132. package/out/service/datasource/api.js +14 -0
  133. package/out/service/datasource/api.js.map +1 -0
  134. package/out/service/datasource/index.d.ts +2 -0
  135. package/out/service/datasource/index.js +10 -0
  136. package/out/service/datasource/index.js.map +1 -0
  137. package/out/service/storage/init.js +8 -1
  138. package/out/service/storage/init.js.map +1 -1
  139. package/out/templator/genEditTableBlock.js +4 -5
  140. package/out/templator/genEditTableBlock.js.map +1 -1
  141. package/out/templator/genGetBlock.js +4 -3
  142. package/out/templator/genGetBlock.js.map +1 -1
  143. package/out/templator/genGridViewBlock.js +16 -14
  144. package/out/templator/genGridViewBlock.js.map +1 -1
  145. package/out/templator/genListViewBlock.js +5 -5
  146. package/out/templator/genListViewBlock.js.map +1 -1
  147. package/out/templator/genTableBlock.js +6 -10
  148. package/out/templator/genTableBlock.js.map +1 -1
  149. package/package.json +1 -1
  150. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  151. package/sandbox/stdlib/nasl.auth.ts +1 -1
  152. package/sandbox/stdlib/nasl.core.ts +4 -0
  153. package/sandbox/stdlib/nasl.logging.ts +4 -4
  154. package/sandbox/stdlib/nasl.util.ts +13 -4
  155. package/src/automate/template/myProcess.js +1 -1
  156. package/src/bak/translator.js +4 -1
  157. package/src/common/Command.ts +4 -0
  158. package/src/concepts/AnonymousFunction__.ts +48 -2
  159. package/src/concepts/App__.ts +140 -41
  160. package/src/concepts/Assignee__.ts +4 -3
  161. package/src/concepts/BatchAssignment__.ts +45 -1
  162. package/src/concepts/BindAttribute__.ts +9 -2
  163. package/src/concepts/CallFunction__.ts +65 -31
  164. package/src/concepts/CallInterface__.ts +6 -22
  165. package/src/concepts/CallLogic__.ts +62 -13
  166. package/src/concepts/CallQueryComponent__.ts +4 -1
  167. package/src/concepts/DataSource__.ts +56 -1
  168. package/src/concepts/ForEachStatement__.ts +2 -0
  169. package/src/concepts/Identifier__.ts +18 -7
  170. package/src/concepts/LogicItem__.ts +1 -1
  171. package/src/concepts/Logic__.ts +48 -32
  172. package/src/concepts/Match__.ts +12 -8
  173. package/src/concepts/NewComposite__.ts +1356 -0
  174. package/src/concepts/NewList__.ts +444 -0
  175. package/src/concepts/NewMap__.ts +678 -0
  176. package/src/concepts/New__.ts +73 -0
  177. package/src/concepts/Param__.ts +238 -199
  178. package/src/concepts/ProcessElement__.ts +32 -10
  179. package/src/concepts/ProcessOutcome__.ts +1 -1
  180. package/src/concepts/ProcessOutcomes__.ts +90 -0
  181. package/src/concepts/Return__.ts +4 -1
  182. package/src/concepts/SelectMembers__.ts +3 -3
  183. package/src/concepts/StringInterpolation__.ts +21 -11
  184. package/src/concepts/TypeAnnotation__.ts +71 -50
  185. package/src/concepts/ValidationRule__.ts +19 -1
  186. package/src/concepts/Variable__.ts +4 -1
  187. package/src/concepts/ViewElement__.ts +38 -1
  188. package/src/concepts/View__.ts +12 -2
  189. package/src/concepts/basics/stdlib/dist/nasl.util.js +133 -34
  190. package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
  191. package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
  192. package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
  193. package/src/concepts/basics/stdlib/nasl.util.ts +153 -19
  194. package/src/concepts/dist/BindAttribute__.js +760 -0
  195. package/src/concepts/dist/BindEvent__.js +732 -0
  196. package/src/concepts/dist/CallFunction__.js +21 -7
  197. package/src/concepts/dist/CallLogic__.js +50 -10
  198. package/src/concepts/dist/Identifier__.js +311 -0
  199. package/src/concepts/dist/StringInterpolation__.js +231 -0
  200. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  201. package/src/concepts/dist/ViewElement__.js +12 -0
  202. package/src/concepts/dist/View__.js +1601 -0
  203. package/src/concepts/index__.ts +5 -0
  204. package/src/enums/KEYWORDS.ts +1 -0
  205. package/src/generator/dist/genMetaData.js +1 -5
  206. package/src/generator/dist/permission.js +392 -0
  207. package/src/generator/genMetaData.ts +1 -6
  208. package/src/generator/genReleaseBody.ts +21 -3
  209. package/src/generator/index.ts +1 -0
  210. package/src/generator/permission.ts +271 -0
  211. package/src/index.ts +1 -1
  212. package/src/server/dist/naslServer.js +385 -269
  213. package/src/server/entity2LogicNamespace.ts +70 -10
  214. package/src/server/extendBaseNode.ts +7 -3
  215. package/src/server/formatTsUtils.ts +6 -0
  216. package/src/server/getLogics.ts +13 -1
  217. package/src/server/getMemberIdentifier.ts +1 -1
  218. package/src/server/naslServer.ts +162 -29
  219. package/src/server/process2LogicNamespace.ts +8 -0
  220. package/src/server/translator.ts +52 -9
  221. package/src/service/creator/add.configs.js +4 -0
  222. package/src/service/dataSource/api.js +11 -0
  223. package/src/service/dataSource/index.js +6 -0
  224. package/src/service/storage/dist/init.js +8 -1
  225. package/src/service/storage/init.ts +9 -2
  226. package/src/service/video/VideoTranscribe.js +1 -0
  227. package/src/templator/dist/genEditTableBlock.js +204 -0
  228. package/src/templator/dist/genGridViewBlock.js +265 -0
  229. package/src/templator/dist/genListViewBlock.js +84 -0
  230. package/src/templator/dist/genTableBlock.js +209 -0
  231. package/src/templator/dist/utils.js +527 -0
  232. package/src/templator/genEditTableBlock.ts +8 -16
  233. package/src/templator/genGetBlock.ts +18 -19
  234. package/src/templator/genGridViewBlock.ts +18 -18
  235. package/src/templator/genListViewBlock.ts +8 -11
  236. package/src/templator/genTableBlock.ts +6 -10
  237. package/ts-worker/dist/webpack.config.dev.js +1 -3
  238. package/ts-worker/lib/tsserver.js +8 -1
  239. package/out/automate/engine/2.14-components.d.ts +0 -1115
  240. package/out/automate/engine/2.14-components.js +0 -1087
  241. package/out/automate/engine/2.14-components.js.map +0 -1
  242. package/out/concepts/ConstructArgument__.d.ts +0 -40
  243. package/out/concepts/ConstructArgument__.js.map +0 -1
  244. package/out/concepts/Construct__.d.ts +0 -189
  245. package/out/concepts/Construct__.js +0 -340
  246. package/out/concepts/Construct__.js.map +0 -1
  247. package/out/concepts/MatchExpression__.d.ts +0 -97
  248. package/out/concepts/MatchExpression__.js +0 -281
  249. package/out/concepts/MatchExpression__.js.map +0 -1
  250. package/out/templator/sql-parser/index.d.ts +0 -1
  251. package/out/templator/sql-parser/index.js +0 -228
  252. package/out/templator/sql-parser/index.js.map +0 -1
  253. package/out/templator/sql-parser/parser.js +0 -26664
  254. package/out/templator/sql-parser/parser.js.map +0 -1
  255. package/src/concepts/dist/Anchor__.js +0 -179
  256. package/src/concepts/dist/Assignment__.js +0 -301
  257. package/src/concepts/dist/CallInterface__.js +0 -533
  258. package/src/concepts/dist/ForEachStatement__.js +0 -426
  259. package/src/concepts/dist/MatchCase__.js +0 -587
  260. package/src/concepts/dist/Match__.js +0 -631
  261. package/src/concepts/dist/MemberExpression__.js +0 -348
  262. package/src/concepts/dist/Param__.js +0 -538
  263. package/src/concepts/dist/Return__.js +0 -494
  264. package/src/concepts/dist/Variable__.js +0 -537
  265. package/src/server/dist/formatTsUtils.js +0 -683
@@ -232,12 +232,20 @@ var CallFunction = /** @class */ (function (_super) {
232
232
  else {
233
233
  var code_1 = "$utils['" + this.calleeName + "']";
234
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
- });
235
+ if (Array.isArray(this.arguments) && this.arguments.length) {
236
+ var needToString_1 = ['Concat'].includes(this.calleeName);
237
+ (_a = this.arguments) === null || _a === void 0 ? void 0 : _a.forEach(function (arg, index) {
238
+ var _a;
239
+ var argStr = arg === null || arg === void 0 ? void 0 : arg.toVue(options);
240
+ if (needToString_1) {
241
+ var argTypeAnnotation = arg.typeAnnotation || arg.__TypeAnnotation;
242
+ argStr = "$utils['ToString'](" + argStr + ", '" + (argTypeAnnotation === null || argTypeAnnotation === void 0 ? void 0 : argTypeAnnotation.sortedTypeKey) + "')";
243
+ }
244
+ code_1 += argStr;
245
+ if (index !== ((_a = _this.arguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
246
+ code_1 += ', ';
247
+ });
248
+ }
241
249
  if (this.typeArguments && this.typeArguments.length) {
242
250
  if ((_b = this.arguments) === null || _b === void 0 ? void 0 : _b.length)
243
251
  code_1 += ', ';
@@ -282,9 +290,15 @@ var CallFunction = /** @class */ (function (_super) {
282
290
  var code = "this.$utils['" + this.calleeName + "']";
283
291
  code += '(';
284
292
  if (Array.isArray(this.arguments) && this.arguments.length) {
293
+ var needToString_2 = ['Concat'].includes(this.calleeName);
285
294
  this.arguments.forEach(function (arg, index) {
286
295
  var _a;
287
- code += arg === null || arg === void 0 ? void 0 : arg.toJS(translator_1.shiftState(state, code));
296
+ var argStr = arg === null || arg === void 0 ? void 0 : arg.toJS(translator_1.shiftState(state, code));
297
+ if (needToString_2) {
298
+ var argTypeAnnotation_1 = arg.typeAnnotation || arg.__TypeAnnotation;
299
+ argStr = "this.$utils['ToString'](" + argStr + ", '" + (argTypeAnnotation_1 === null || argTypeAnnotation_1 === void 0 ? void 0 : argTypeAnnotation_1.sortedTypeKey) + "')";
300
+ }
301
+ code += argStr;
288
302
  if (index !== ((_a = _this.arguments) === null || _a === void 0 ? void 0 : _a.length) - 1)
289
303
  code += ', ';
290
304
  });
@@ -35,7 +35,10 @@ var translator_1 = require("../translator");
35
35
  var View__1 = require("./View__");
36
36
  var utils_1 = require("../automate/engine/utils");
37
37
  var utils_2 = require("../utils");
38
+ var JSON5 = require("json5");
39
+ var Identifier__1 = require("./Identifier__");
38
40
  var decorators_1 = require("../decorators");
41
+ var BaseNode_1 = require("../common/BaseNode");
39
42
  var classMap_1 = require("../common/classMap");
40
43
  var TypeAnnotation__1 = require("./TypeAnnotation__");
41
44
  var Argument__1 = require("./Argument__");
@@ -298,9 +301,13 @@ var CallLogic = /** @class */ (function (_super) {
298
301
  this.calleeName = logic.name;
299
302
  this.arguments = [];
300
303
  logic.params.forEach(function (param) {
301
- _this._addArgument({
304
+ var argument = _this._addArgument({
302
305
  keyword: param.name
303
306
  });
307
+ if (param.defaultExpression) {
308
+ var exp = BaseNode_1["default"].from(__assign({}, param.defaultExpression.toJSON()));
309
+ argument.setExpression(exp);
310
+ }
304
311
  });
305
312
  if (logic.typeParams) {
306
313
  this.typeArguments = [];
@@ -320,7 +327,7 @@ var CallLogic = /** @class */ (function (_super) {
320
327
  var relationOptions = { parentNode: _this, parentKey: 'arguments' };
321
328
  var argument = Argument__1["default"].from({
322
329
  keyword: param.name,
323
- expression: param.defaultExpression
330
+ expression: param.isFunction ? new Identifier__1["default"]() : param.defaultExpression
324
331
  }, _this);
325
332
  Object.assign(argument, relationOptions);
326
333
  return argument;
@@ -482,7 +489,6 @@ var CallLogic = /** @class */ (function (_super) {
482
489
  var completeArguments = this.completeArguments;
483
490
  // 全局逻辑
484
491
  if (!isViewLogic) {
485
- var namespaceArr = calleeNamespace === null || calleeNamespace === void 0 ? void 0 : calleeNamespace.split('.');
486
492
  var logic = utils_1.getNodeByNodeCallee(this.app, this.calleewholeKey, function (key, tempPoint) {
487
493
  // 处理 NASL 中未定义的假的节点
488
494
  if (key === tempPoint.name) {
@@ -538,12 +544,31 @@ var CallLogic = /** @class */ (function (_super) {
538
544
  code += "},\n";
539
545
  break;
540
546
  }
547
+ case 'update':
548
+ case 'createOrUpdate':
549
+ case 'batchUpdate': {
550
+ code += "body: {\n";
551
+ var argsStr = logicArgs
552
+ .filter(function (arg) { return arg.expression; })
553
+ .map(function (arg) {
554
+ var name = arg.keyword === 'body' ?
555
+ (_this.calleeName === 'batchUpdate' ? 'entities' : 'entity') :
556
+ arg.keyword;
557
+ return name + ": " + arg.expression.toJS(translator_1.shiftState(state, code));
558
+ })
559
+ .join(',\n');
560
+ code += argsStr;
561
+ code += "},\n";
562
+ logicArgs = [];
563
+ breakBody = true;
564
+ break;
565
+ }
541
566
  case 'updateBy': {
542
567
  code += "body: {";
543
568
  var argsStr = logicArgs
544
569
  .filter(function (arg) { return arg.expression; })
545
570
  .map(function (arg) {
546
- var name = arg.expression.returnExpression ? arg.expression.name : 'entity';
571
+ var name = arg.keyword === 'body' ? 'entity' : arg.keyword;
547
572
  // filter回调函数
548
573
  if (arg.expression.returnExpression) {
549
574
  var argsStr_1 = JSON.stringify(handleMember(arg.expression.returnExpression));
@@ -594,6 +619,9 @@ var CallLogic = /** @class */ (function (_super) {
594
619
  .map(function (obj) { var _a; return "\n" + (obj === null || obj === void 0 ? void 0 : obj.keyword) + ": " + ((_a = obj === null || obj === void 0 ? void 0 : obj.arg) === null || _a === void 0 ? void 0 : _a.toJS(translator_1.shiftState(state, code))); })
595
620
  .join(', ');
596
621
  code += argsStr;
622
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
623
+ code += ",\n__typeArguments: " + JSON5.stringify(this.typeArguments);
624
+ }
597
625
  }
598
626
  code += '\n}';
599
627
  }
@@ -609,7 +637,7 @@ var CallLogic = /** @class */ (function (_super) {
609
637
  code += "this.$toast.show";
610
638
  break;
611
639
  case 'consoleLog':
612
- code += "this.$utils.ConsoleLog";
640
+ code += "console.log";
613
641
  break;
614
642
  case 'jsonSerialize':
615
643
  code += "JSON.stringify";
@@ -637,13 +665,17 @@ var CallLogic = /** @class */ (function (_super) {
637
665
  }
638
666
  else {
639
667
  code += '(';
668
+ var needToString = ['showMessage', 'consoleLog'].includes(this.calleeName);
669
+ if (needToString) {
670
+ code += "this.$utils['ToString'](";
671
+ }
640
672
  if (Array.isArray(completeArguments) && completeArguments.length) {
641
673
  completeArguments.forEach(function (arg, index) {
642
674
  code += arg === null || arg === void 0 ? void 0 : arg.toJS(translator_1.shiftState(state, code));
643
675
  if (index !== (completeArguments === null || completeArguments === void 0 ? void 0 : completeArguments.length) - 1)
644
676
  code += ', ';
645
677
  });
646
- if (calleeNamespace === 'nasl.util' && this.calleeName === 'consoleLog') {
678
+ if (needToString) {
647
679
  var arg = this.arguments[0];
648
680
  var argTypeAnnotation = arg.typeAnnotation || arg.__TypeAnnotation;
649
681
  if (argTypeAnnotation) {
@@ -651,6 +683,9 @@ var CallLogic = /** @class */ (function (_super) {
651
683
  }
652
684
  }
653
685
  }
686
+ if (needToString) {
687
+ code += ")";
688
+ }
654
689
  code += ')';
655
690
  }
656
691
  }
@@ -723,12 +758,14 @@ var CallLogic = /** @class */ (function (_super) {
723
758
  code += "<";
724
759
  code += typeAnnotation.toEmbeddedTS(translator_1.shiftState(state, code, { tabSize: 0 })) + ">";
725
760
  }
761
+ // 参数必填
762
+ var paramRequired = ['showMessage', 'consoleLog'].includes(this.calleeName);
726
763
  var tsCalleeNamespace = this.tsCalleeNamespace;
727
764
  if ((tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) || tsCalleeNamespace.startsWith('nasl.')) {
728
765
  code += '(';
729
766
  this.arguments.forEach(function (arg, index) {
730
767
  // 页面逻辑先都非必填
731
- code += arg.toEmbeddedTS(translator_1.shiftState(state, code), false);
768
+ code += arg.toEmbeddedTS(translator_1.shiftState(state, code), paramRequired);
732
769
  if (index !== _this.arguments.length - 1)
733
770
  code += ', ';
734
771
  });
@@ -741,7 +778,8 @@ var CallLogic = /** @class */ (function (_super) {
741
778
  && this.parentNode.concept !== 'SelectMembers'
742
779
  && this.parentNode.concept !== 'BinaryExpression'
743
780
  && this.parentNode.concept !== 'StringInterpolation'
744
- && this.parentNode.concept !== 'MemberExpression') {
781
+ && this.parentNode.concept !== 'MemberExpression'
782
+ && !['NewMap', 'NewList'].includes(this.parentNode.concept)) {
745
783
  code += ';';
746
784
  }
747
785
  }
@@ -764,7 +802,8 @@ var CallLogic = /** @class */ (function (_super) {
764
802
  && this.parentNode.concept !== 'SelectMembers'
765
803
  && this.parentNode.concept !== 'BinaryExpression'
766
804
  && this.parentNode.concept !== 'StringInterpolation'
767
- && this.parentNode.concept !== 'MemberExpression') {
805
+ && this.parentNode.concept !== 'MemberExpression'
806
+ && !['NewMap', 'NewList'].includes(this.parentNode.concept)) {
768
807
  code += ';';
769
808
  }
770
809
  }
@@ -778,7 +817,8 @@ var CallLogic = /** @class */ (function (_super) {
778
817
  && this.parentNode.concept !== 'SelectMembers'
779
818
  && this.parentNode.concept !== 'BinaryExpression'
780
819
  && this.parentNode.concept !== 'StringInterpolation'
781
- && this.parentNode.concept !== 'MemberExpression') {
820
+ && this.parentNode.concept !== 'MemberExpression'
821
+ && !['NewMap', 'NewList'].includes(this.parentNode.concept)) {
782
822
  code += ';';
783
823
  }
784
824
  }
@@ -0,0 +1,311 @@
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.Identifier = void 0;
34
+ var translator_1 = require("../translator");
35
+ var __1 = require("..");
36
+ var utils_1 = require("../utils");
37
+ var decorators_1 = require("../decorators");
38
+ var classMap_1 = require("../common/classMap");
39
+ var LogicItem__1 = require("./LogicItem__");
40
+ /**
41
+ * 标识符
42
+ */
43
+ var Identifier = /** @class */ (function (_super) {
44
+ __extends(Identifier, _super);
45
+ /**
46
+ * @param source 需要合并的部分参数
47
+ */
48
+ function Identifier(source) {
49
+ var _this = this;
50
+ source = Object.assign({}, Identifier_1.getDefaultOptions(), source);
51
+ _this = _super.call(this, source) || this;
52
+ /**
53
+ * 产品概念
54
+ */
55
+ _this.concept = 'Identifier';
56
+ /**
57
+ * namespace
58
+ */
59
+ _this.namespace = undefined;
60
+ /**
61
+ * 标识符名称
62
+ */
63
+ _this.name = undefined;
64
+ //================================================================================
65
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
66
+ // 自动生成的代码已结束。下面可以手动编写。
67
+ //================================================================================
68
+ // 选中的数据类型,这个用作暂存
69
+ _this.typeAnnotation = undefined;
70
+ _this.globalDataMap = {
71
+ $route: true,
72
+ $global: true,
73
+ $refs: true
74
+ };
75
+ _super.prototype.subConstructor.call(_this, source);
76
+ return _this;
77
+ }
78
+ Identifier_1 = Identifier;
79
+ Identifier.from = function (source, parentNode, parentKey) {
80
+ return _super.from.call(this, source, parentNode, parentKey);
81
+ };
82
+ Identifier.prototype.isEnum = function () {
83
+ return utils_1.findConceptKeyWordByNamespace(this.namespace) === 'enums';
84
+ };
85
+ Identifier.prototype.toVue = function (options) {
86
+ var name = this.name;
87
+ var namespace = this.namespace;
88
+ if (namespace) {
89
+ if ((this.namespace.endsWith('nasl.browser') || this.namespace.endsWith('nasl.auth') || this.namespace.endsWith('nasl.configuration') || this.namespace.endsWith('nasl.process'))) {
90
+ name = "$global." + this.name;
91
+ }
92
+ else if (this.namespace.endsWith('frontendVariables')) {
93
+ name = "$global.frontendVariables." + this.name;
94
+ }
95
+ else if (this.isEnum()) {
96
+ var enumName = this.name;
97
+ if (this.namespace.startsWith('extensions.')) {
98
+ enumName = this.namespace + "." + this.name;
99
+ }
100
+ name = enumName;
101
+ }
102
+ else if (this.namespace.endsWith('logics')) {
103
+ name = "'" + this.namespace + "." + name + "'";
104
+ }
105
+ }
106
+ return name;
107
+ };
108
+ Identifier.prototype.toUI = function () {
109
+ var name = this.name;
110
+ var namespace = this.namespace;
111
+ if (namespace) {
112
+ if (namespace.startsWith('nasl.')) {
113
+ name = namespace + "." + this.name;
114
+ }
115
+ else if (namespace.endsWith('frontendVariables')) {
116
+ name = "nasl.frontendVariables." + this.name;
117
+ }
118
+ else if (this.isEnum()) {
119
+ var enumName = this.name;
120
+ if (this.namespace.startsWith('extensions.')) {
121
+ enumName = this.namespace + "." + this.name;
122
+ }
123
+ name = enumName;
124
+ }
125
+ }
126
+ return name;
127
+ };
128
+ Object.defineProperty(Identifier.prototype, "jsName", {
129
+ // 在页面 表达式/逻辑 中的名字
130
+ get: function () {
131
+ var name = this.name;
132
+ var namespace = this.namespace;
133
+ if (namespace) {
134
+ if (namespace.endsWith('nasl.browser') || namespace.endsWith('nasl.auth') || namespace.endsWith('nasl.configuration') || this.namespace.endsWith('nasl.process')) {
135
+ name = "$global." + this.name;
136
+ }
137
+ else if (namespace.endsWith('frontendVariables')) {
138
+ name = "$global.frontendVariables." + this.name;
139
+ }
140
+ else if (this.isEnum()) {
141
+ var enumName = this.name;
142
+ if (this.namespace.startsWith('extensions.')) {
143
+ enumName = this.namespace + "." + this.name;
144
+ }
145
+ name = enumName;
146
+ }
147
+ else if (this.namespace.endsWith('logics')) {
148
+ name = "'" + this.namespace + "." + name + "'";
149
+ }
150
+ }
151
+ return name;
152
+ },
153
+ enumerable: false,
154
+ configurable: true
155
+ });
156
+ Identifier.prototype.toJS = function () {
157
+ var name = this.jsName;
158
+ return this.isViewOrGlobalDataVariable() ? "this." + name : name;
159
+ };
160
+ // 页面/全局 级别的变量
161
+ Identifier.prototype.isViewOrGlobalDataVariable = function () {
162
+ var _a, _b, _c, _d, _e, _f;
163
+ var dataMap = {};
164
+ (_b = (_a = this.view) === null || _a === void 0 ? void 0 : _a.params) === null || _b === void 0 ? void 0 : _b.forEach(function (param) {
165
+ dataMap[param.name] = true;
166
+ });
167
+ (_d = (_c = this.view) === null || _c === void 0 ? void 0 : _c.variables) === null || _d === void 0 ? void 0 : _d.forEach(function (variable) {
168
+ dataMap[variable.name] = true;
169
+ });
170
+ // 目前前端逻辑也会被当成可选变量(以datasource为典型)
171
+ (_f = (_e = this.view) === null || _e === void 0 ? void 0 : _e.logics) === null || _f === void 0 ? void 0 : _f.forEach(function (logics) {
172
+ dataMap[logics.name] = true;
173
+ });
174
+ var parentNode = this.parentNode;
175
+ var isMemberExpressionProperty = false;
176
+ if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.concept) === 'MemberExpression' && this.parentKey === 'property') {
177
+ isMemberExpressionProperty = true;
178
+ }
179
+ var name = this.jsName;
180
+ var namespace = this.namespace;
181
+ if (name === 'UserStatusEnum') {
182
+ console.log(this);
183
+ }
184
+ return (dataMap[name]
185
+ || this.globalDataMap[name]
186
+ || (namespace === null || namespace === void 0 ? void 0 : namespace.endsWith('nasl.browser'))
187
+ || (namespace === null || namespace === void 0 ? void 0 : namespace.endsWith('nasl.auth'))
188
+ || (namespace === null || namespace === void 0 ? void 0 : namespace.endsWith('nasl.configuration'))
189
+ || (namespace === null || namespace === void 0 ? void 0 : namespace.endsWith('nasl.process'))
190
+ || (namespace === null || namespace === void 0 ? void 0 : namespace.endsWith('frontendVariables'))
191
+ || this.isEnum()) && !isMemberExpressionProperty;
192
+ };
193
+ Identifier.prototype.toBrief = function () {
194
+ return this.name || '-';
195
+ };
196
+ Identifier.prototype.toEmbeddedTS = function (state) {
197
+ var _this = this;
198
+ var _a;
199
+ // 只有data-source可以是函数 ,也可能是属性
200
+ if (this.parentNode instanceof __1.BindAttribute && this.parentNode.name === 'data-source') {
201
+ var view = this.view;
202
+ var viewLogics = view.logics;
203
+ var findLogic = viewLogics.find(function (item) { return item.name === _this.name; });
204
+ if (findLogic) {
205
+ return this.name;
206
+ }
207
+ }
208
+ // 全局变量在不是页面的地方放置,就会报错
209
+ if (((_a = this.namespace) === null || _a === void 0 ? void 0 : _a.startsWith('app.frontendVariables')) && !this.view) {
210
+ return '__FRONTENDVARIABLES__';
211
+ }
212
+ // 如果是nasl.util.Enum 的子集里的 Identifier > MemberExpression > Argument > callfunction
213
+ // nasl.util.Enum 的 右侧是转成字符串的
214
+ // 如果是identifier 而且枚举
215
+ // if (this.parentNode?.parentNode?.parentNode instanceof CallFunction) {
216
+ // const calleeNamespace = this.parentNode.parentNode.parentNode.calleeNamespace;
217
+ // const calleeName = this.parentNode.parentNode.parentNode.calleeName;
218
+ // if (calleeNamespace + '.' + calleeName === 'nasl.util.Enum') {
219
+ // const str = (this.namespace ? this.namespace + '.' : '') + this.name;
220
+ // return str.includes('.enums.') ? str : str + '.toString()';
221
+ // }
222
+ // }
223
+ // having 下选择的变量不生成 namespace 前缀
224
+ if (this.namespace === 'inner' && this.getAncestor('CallQueryComponent')) {
225
+ return "__" + this.name || '__IDENTIFIER__';
226
+ }
227
+ return this.namespace ? this.namespace + '.' + this.name : this.name || '__IDENTIFIER__';
228
+ };
229
+ // 方便快速取值
230
+ Identifier.prototype.getValue = function () {
231
+ // 实体逻辑 deleteBy/updateBy 的 filter 参数的回调函数的参数:_
232
+ // 处理 _ 的显示问题
233
+ if (this.name === '_') {
234
+ var parentNode = this.parentNode;
235
+ if (parentNode) {
236
+ var p = parentNode;
237
+ while (p && p.concept !== 'CallLogic') {
238
+ p = p.parentNode;
239
+ }
240
+ if (p && (p.calleeName === 'deleteBy' || p.calleeName === 'updateBy')) {
241
+ var ns = p.calleeNamespace.split('.');
242
+ return ns[ns.length - 2] || this.name;
243
+ }
244
+ else {
245
+ return 'item';
246
+ }
247
+ }
248
+ }
249
+ return this.name;
250
+ };
251
+ Object.defineProperty(Identifier.prototype, "completeName", {
252
+ get: function () {
253
+ var arr = [this.name];
254
+ if (this.namespace) {
255
+ arr.unshift(this.namespace);
256
+ }
257
+ return arr.join('.');
258
+ },
259
+ enumerable: false,
260
+ configurable: true
261
+ });
262
+ /**
263
+ * 设置函数名称
264
+ */
265
+ Identifier.prototype.setNamespace = function (namespace) {
266
+ var object = {
267
+ namespace: namespace
268
+ };
269
+ this.update(__assign({}, object));
270
+ };
271
+ /**
272
+ * 设置函数名称
273
+ */
274
+ Identifier.prototype.setName = function (name) {
275
+ var object = {
276
+ name: name
277
+ };
278
+ this.update(__assign({}, object));
279
+ };
280
+ Identifier.prototype.setNameAndNamespace = function (name, namespace) {
281
+ var object = {
282
+ name: name,
283
+ namespace: namespace
284
+ };
285
+ this.update(__assign({}, object));
286
+ };
287
+ var Identifier_1;
288
+ __decorate([
289
+ decorators_1.property()
290
+ ], Identifier.prototype, "concept");
291
+ __decorate([
292
+ decorators_1.property()
293
+ ], Identifier.prototype, "namespace");
294
+ __decorate([
295
+ decorators_1.property()
296
+ ], Identifier.prototype, "name");
297
+ __decorate([
298
+ translator_1.withSourceMap()
299
+ ], Identifier.prototype, "toEmbeddedTS");
300
+ Identifier = Identifier_1 = __decorate([
301
+ decorators_1.concept('标识符')
302
+ ], Identifier);
303
+ return Identifier;
304
+ }(LogicItem__1["default"]));
305
+ exports.Identifier = Identifier;
306
+ classMap_1["default"].Identifier = Identifier;
307
+ exports["default"] = Identifier;
308
+ //================================================================================
309
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
310
+ // 自动生成的代码已结束。下面可以手动编写。
311
+ //================================================================================