@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
@@ -95,6 +95,8 @@ export class Identifier extends LogicItem {
95
95
  enumName = `${this.namespace}.${this.name}`;
96
96
  }
97
97
  name = enumName;
98
+ } else if (this.namespace.endsWith('logics')) {
99
+ name = `'${this.namespace}.${name}'`;
98
100
  }
99
101
  }
100
102
  return name;
@@ -134,6 +136,8 @@ export class Identifier extends LogicItem {
134
136
  enumName = `${this.namespace}.${this.name}`;
135
137
  }
136
138
  name = enumName;
139
+ } else if (this.namespace.endsWith('logics')) {
140
+ name = `'${this.namespace}.${name}'`;
137
141
  }
138
142
  }
139
143
  return name;
@@ -189,13 +193,10 @@ export class Identifier extends LogicItem {
189
193
  return this.name;
190
194
  }
191
195
  }
192
- // 因为右侧枚举要赋值就赋值toList方法一下
193
- if (this.namespace && this.namespace.endsWith('enums')) {
194
- // 绑定类型
195
- if (this.parentNode instanceof BindAttribute) {
196
- // this.parentNode.name === 'data-source'
197
- return (this.namespace + '.' || '') + this.name + '.toList';
198
- }
196
+
197
+ // 全局变量在不是页面的地方放置,就会报错
198
+ if (this.namespace?.startsWith('app.frontendVariables') && !this.view) {
199
+ return '__FRONTENDVARIABLES__';
199
200
  }
200
201
 
201
202
  // 如果是nasl.util.Enum 的子集里的 Identifier > MemberExpression > Argument > callfunction
@@ -271,6 +272,16 @@ export class Identifier extends LogicItem {
271
272
  });
272
273
  }
273
274
 
275
+ setNameAndNamespace(name: string, namespace: string) {
276
+ const object = {
277
+ name,
278
+ namespace,
279
+ };
280
+ this.update({
281
+ ...object,
282
+ });
283
+ }
284
+
274
285
  //================================================================================
275
286
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
276
287
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -29,7 +29,7 @@ export class LogicItem extends BaseNode {
29
29
  * 产品概念
30
30
  */
31
31
  @property()
32
- concept: 'LogicItem' | 'Start' | 'End' | 'IfStatement' | 'SwitchStatement' | 'SwitchCase' | 'ForEachStatement' | 'WhileStatement' | 'Assignment' | 'BatchAssignment' | 'Comment' | 'CallLogic' | 'CallFunction' | 'CallInterface' | 'Destination' | 'ExternalDestination' | 'ValidationRule' | 'Argument' | 'Anchor' | 'JSBlock' | 'Identifier' | 'NullLiteral' | 'BooleanLiteral' | 'StringLiteral' | 'StringInterpolation' | 'NumericLiteral' | 'BinaryExpression' | 'MatchCase' | 'Match' | 'UnaryExpression' | 'MemberExpression' | 'Unparsed' | 'CallQueryComponent' | 'QueryFromExpression' | 'QueryJoinExpression' | 'QueryFieldExpression' | 'QueryAggregateExpression' | 'QueryOrderByExpression' | 'QueryGroupByExpression' | 'QuerySelectExpression' | 'QueryLimitExpression' | 'SqlQueryComponent' | 'OqlQueryComponent' | 'ProcessOutcome' | 'Assignee' = 'LogicItem';
32
+ concept: 'LogicItem' | 'Start' | 'End' | 'IfStatement' | 'SwitchStatement' | 'SwitchCase' | 'ForEachStatement' | 'WhileStatement' | 'Assignment' | 'BatchAssignment' | 'Comment' | 'CallLogic' | 'CallFunction' | 'CallInterface' | 'Destination' | 'ExternalDestination' | 'ValidationRule' | 'Argument' | 'Anchor' | 'JSBlock' | 'Identifier' | 'NullLiteral' | 'BooleanLiteral' | 'StringLiteral' | 'StringInterpolation' | 'NumericLiteral' | 'BinaryExpression' | 'MatchCase' | 'Match' | 'UnaryExpression' | 'MemberExpression' | 'Unparsed' | 'New' | 'NewComposite' | 'NewList' | 'NewMap' | 'CallQueryComponent' | 'QueryFromExpression' | 'QueryJoinExpression' | 'QueryFieldExpression' | 'QueryAggregateExpression' | 'QueryOrderByExpression' | 'QueryGroupByExpression' | 'QuerySelectExpression' | 'QueryLimitExpression' | 'SqlQueryComponent' | 'OqlQueryComponent' | 'ProcessOutcome' | 'Assignee' | 'ProcessOutcomes' = 'LogicItem';
33
33
 
34
34
  /**
35
35
  * 逻辑项标题
@@ -796,7 +796,7 @@ export class Logic extends BaseNode {
796
796
 
797
797
 
798
798
 
799
-
799
+
800
800
 
801
801
  /**
802
802
  * 插入逻辑项
@@ -830,7 +830,7 @@ export class Logic extends BaseNode {
830
830
  return logicItem;
831
831
  }
832
832
 
833
-
833
+
834
834
 
835
835
  /**
836
836
  * 插入逻辑项
@@ -854,7 +854,7 @@ export class Logic extends BaseNode {
854
854
  return node;
855
855
  }
856
856
 
857
-
857
+
858
858
 
859
859
  /**
860
860
  * 添加逻辑项
@@ -875,7 +875,7 @@ export class Logic extends BaseNode {
875
875
  return this._insertItemInBodyAt(options as any, index);
876
876
  }
877
877
 
878
-
878
+
879
879
 
880
880
  /**
881
881
  * 添加逻辑项
@@ -900,7 +900,7 @@ export class Logic extends BaseNode {
900
900
  return node;
901
901
  }
902
902
 
903
-
903
+
904
904
 
905
905
  /**
906
906
  * 插入逻辑项
@@ -934,7 +934,7 @@ export class Logic extends BaseNode {
934
934
  return logicItem;
935
935
  }
936
936
 
937
-
937
+
938
938
 
939
939
  /**
940
940
  * 插入逻辑项
@@ -958,7 +958,7 @@ export class Logic extends BaseNode {
958
958
  return node;
959
959
  }
960
960
 
961
-
961
+
962
962
 
963
963
  /**
964
964
  * 添加逻辑项
@@ -979,7 +979,7 @@ export class Logic extends BaseNode {
979
979
  return this._insertItemInPlaygroundAt(options as any, index);
980
980
  }
981
981
 
982
-
982
+
983
983
 
984
984
  /**
985
985
  * 添加逻辑项
@@ -1005,7 +1005,7 @@ export class Logic extends BaseNode {
1005
1005
  }
1006
1006
 
1007
1007
 
1008
-
1008
+
1009
1009
 
1010
1010
  /**
1011
1011
  * 删除事务
@@ -1268,7 +1268,7 @@ export class Logic extends BaseNode {
1268
1268
  return logicItem.delete();
1269
1269
  }
1270
1270
 
1271
-
1271
+
1272
1272
 
1273
1273
  /**
1274
1274
  * 删除逻辑项
@@ -1640,13 +1640,11 @@ export class Logic extends BaseNode {
1640
1640
  this.traverseChildren((el) => {
1641
1641
  if (el && (el instanceof BatchAssignment || (el instanceof Assignment && el.left?.name))) {
1642
1642
  const jsCode = el.toJS();
1643
- const advanceVar = this.variables?.find((variable) =>
1644
- !variable.typeAnnotation && jsCode.includes(`${variable.name} = `));
1643
+ const advanceVar = this.variables?.find((variable) => !variable.typeAnnotation && jsCode.includes(`${variable.name} = `));
1645
1644
  if (advanceVar && !advanceMap.get(advanceVar)) {
1646
1645
  advanceMap.set(advanceVar, el);
1647
1646
  }
1648
- const advanceRn = this.returns?.find((ret) =>
1649
- !ret.typeAnnotation && jsCode.includes(`${ret.name} = `));
1647
+ const advanceRn = this.returns?.find((ret) => !ret.typeAnnotation && jsCode.includes(`${ret.name} = `));
1650
1648
  if (advanceRn && !advanceMap.get(advanceRn)) {
1651
1649
  advanceMap.set(advanceRn, el);
1652
1650
  }
@@ -1663,12 +1661,14 @@ export class Logic extends BaseNode {
1663
1661
  Promise.all(needGetSourceMapOqlList).then(() => {
1664
1662
  // 触发一下更新重新生成代码
1665
1663
  (this.app as any)?.naslServer?.embeddedTSEmitter.emit('change', {
1666
- value: [{
1667
- originEvent: {
1668
- action: 'update',
1669
- target: this,
1664
+ value: [
1665
+ {
1666
+ originEvent: {
1667
+ action: 'update',
1668
+ target: this,
1669
+ },
1670
1670
  },
1671
- }],
1671
+ ],
1672
1672
  });
1673
1673
  });
1674
1674
  }
@@ -1680,11 +1680,13 @@ export class Logic extends BaseNode {
1680
1680
  code += '{\n';
1681
1681
 
1682
1682
  // 用于虚拟节点的查找引用
1683
- this.virtualParams && Array.isArray(this.virtualParams) && this.virtualParams.forEach((param) => {
1684
- code += indent((state?.tabSize || 0) + 1);
1685
- code += param.toEmbeddedNameTS(shiftState(state, code, { inline: true }));
1686
- code += '\n';
1687
- });
1683
+ this.virtualParams
1684
+ && Array.isArray(this.virtualParams)
1685
+ && this.virtualParams.forEach((param) => {
1686
+ code += indent((state?.tabSize || 0) + 1);
1687
+ code += param.toEmbeddedNameTS(shiftState(state, code, { inline: true }));
1688
+ code += '\n';
1689
+ });
1688
1690
 
1689
1691
  this.variables.forEach((variable) => {
1690
1692
  if (!advanceMap.get(variable)) {
@@ -1708,12 +1710,12 @@ export class Logic extends BaseNode {
1708
1710
  code += node.toEmbeddedTS(shiftState(state, code, { inline: true }));
1709
1711
  if (assignment instanceof BatchAssignment) {
1710
1712
  assignment.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1711
- const leftCode = leftIndex.length === 1 ? assignment.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true })) : assignment.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1713
+ const leftCode
1714
+ = leftIndex.length === 1 ? assignment.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true })) : assignment.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1712
1715
  if (leftCode === node.name) {
1713
1716
  const rightNode: any = rightIndex.length === 1 ? assignment.rights[rightIndex[0]]?.expression : assignment.rights[rightIndex[0]]?.members[rightIndex[1]];
1714
1717
  // 当右边有明确类型时,直接使用其类型。旧版本数据查询不能直接使用其 typeAnnotation
1715
- if (rightNode?.typeAnnotation
1716
- && !(rightNode instanceof CallQueryComponent && rightNode.ideVersion !== '2.11')) {
1718
+ if (rightNode?.typeAnnotation && !(rightNode instanceof CallQueryComponent && rightNode.ideVersion !== '2.11')) {
1717
1719
  code += ': ';
1718
1720
  code += rightNode.typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true })) || 'null';
1719
1721
  } else {
@@ -1723,11 +1725,14 @@ export class Logic extends BaseNode {
1723
1725
  }
1724
1726
  }
1725
1727
  });
1728
+ } else if (['NewList', 'NewMap'].includes(assignment.right.concept) && !(assignment.right as any).typeAnnotation) {
1729
+ const rightNode: any = assignment.right;
1730
+ code += ' = ';
1731
+ code += rightNode.getInitCode(shiftState(state, code, { inline: true }));
1726
1732
  } else {
1727
1733
  const rightNode: any = assignment.right;
1728
1734
  // 当右边有明确类型时,直接使用其类型。旧版本数据查询不能直接使用其 typeAnnotation
1729
- if (rightNode?.typeAnnotation
1730
- && !(rightNode instanceof CallQueryComponent && rightNode.ideVersion !== '2.11')) {
1735
+ if (rightNode?.typeAnnotation && !(rightNode instanceof CallQueryComponent && rightNode.ideVersion !== '2.11')) {
1731
1736
  code += ': ';
1732
1737
  code += rightNode.typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true })) || 'null';
1733
1738
  } else {
@@ -1737,7 +1742,7 @@ export class Logic extends BaseNode {
1737
1742
  if (rightNode && rightNode instanceof Identifier && rightNode.namespace && rightNode.namespace.endsWith('enums')) {
1738
1743
  rightCode += 'new ';
1739
1744
  }
1740
- rightCode += (rightNode && rightNode.toEmbeddedTS) ? rightNode.toEmbeddedTS(shiftState(state, code, { inline: true })) : '__RIGHT__';
1745
+ rightCode += rightNode && rightNode.toEmbeddedTS ? rightNode.toEmbeddedTS(shiftState(state, code, { inline: true })) : '__RIGHT__';
1741
1746
  code += this.getRightCode(rightCode, assignment, rightNode);
1742
1747
  }
1743
1748
  }
@@ -1881,7 +1886,10 @@ export class Logic extends BaseNode {
1881
1886
  arr.push(parentName);
1882
1887
  }
1883
1888
  let namespace = arr.join('.');
1884
- if (!['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.process', 'nasl.logging', 'nasl.io'].includes(namespace) && !namespace.includes('.logics')) {
1889
+ if (
1890
+ !['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.process', 'nasl.logging', 'nasl.io'].includes(namespace)
1891
+ && !namespace.includes('.logics')
1892
+ ) {
1885
1893
  namespace = `${namespace}.logics`;
1886
1894
  }
1887
1895
  return namespace;
@@ -1898,7 +1906,10 @@ export class Logic extends BaseNode {
1898
1906
  arr.push(parentName);
1899
1907
  }
1900
1908
  let namespace = arr.join('.');
1901
- if (!['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.process', 'nasl.logging', 'nasl.io'].includes(namespace) && !namespace.includes('.logics')) {
1909
+ if (
1910
+ !['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.process', 'nasl.logging', 'nasl.io'].includes(namespace)
1911
+ && !namespace.includes('.logics')
1912
+ ) {
1902
1913
  namespace = `${namespace}.logics`;
1903
1914
  }
1904
1915
  return namespace;
@@ -2038,6 +2049,11 @@ export class Logic extends BaseNode {
2038
2049
  // 虚拟输入参数列表
2039
2050
  virtualParams: Array<Param> = [];
2040
2051
 
2052
+ get getLogicBelongTo() {
2053
+ const [, belongTo] = this.calleewholeKey.split('.');
2054
+ return belongTo;
2055
+ }
2056
+
2041
2057
  //================================================================================
2042
2058
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
2043
2059
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -466,11 +466,7 @@ export class Match extends LogicItem {
466
466
 
467
467
  let code = '';
468
468
  code += `${this.getViewMatchExpressionBuilder()} (${argsList.join(', ')}) {\n`;
469
- if (this.expression && Array.isArray(this.cases)) {
470
- this.cases.forEach((item, index) => {
471
- code += item?.toJS?.(this.expression, index, this.cases.length);
472
- });
473
- }
469
+ code += `return ${this.toJS()}`;
474
470
  code += `;\n`;
475
471
  code += '}';
476
472
  return code;
@@ -522,13 +518,20 @@ export class Match extends LogicItem {
522
518
  }
523
519
 
524
520
  toJS(state?: TranslatorState): string {
525
- let code = 'await (async () => {\n';
521
+ let code = '';
522
+ // 祖先逻辑
523
+ const ancestorLogic = this.getAncestor('Logic');
524
+ if (ancestorLogic) {
525
+ code += 'await (async () => {\n';
526
+ } else {
527
+ code += '(() => {\n';
528
+ }
526
529
  if (this.expression && Array.isArray(this.cases)) {
527
530
  this.cases.forEach((item, index) => {
528
531
  code += item?.toJS?.(this.expression, index, this.cases.length);
529
532
  });
530
533
  }
531
- code += `})()`;
534
+ code += '})()';
532
535
  return code;
533
536
  }
534
537
 
@@ -579,7 +582,8 @@ export class Match extends LogicItem {
579
582
  && this.parentNode.concept !== 'SelectMembers'
580
583
  && this.parentNode.concept !== 'BinaryExpression'
581
584
  && this.parentNode.concept !== 'StringInterpolation'
582
- && this.parentNode.concept !== 'MemberExpression') {
585
+ && this.parentNode.concept !== 'MemberExpression'
586
+ && !['NewMap', 'NewList'].includes(this.parentNode.concept)) {
583
587
  code += ';\n';
584
588
  }
585
589
  return code;