@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
@@ -0,0 +1,73 @@
1
+ import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
+ //================================================================================
3
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
4
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
5
+ //================================================================================
6
+ import { EventPayload, Params } from '../common/EventEmitter';
7
+ import { concept, excludedInJSON, property } from '../decorators';
8
+
9
+ import * as utils from '../utils';
10
+ import { v4 as uuidv4 } from 'uuid';
11
+ import BaseNode from '../common/BaseNode';
12
+ import classMap from '../common/classMap';
13
+ import LogicItem from './LogicItem__';
14
+
15
+ /**
16
+ * 构造器
17
+ */
18
+ @concept('构造器')
19
+ export class New extends LogicItem {
20
+ /**
21
+ * 产品概念
22
+ */
23
+ @property()
24
+ concept: 'New' = 'New';
25
+
26
+
27
+
28
+ /**
29
+ * @param source 需要合并的部分参数
30
+ */
31
+ constructor(source?: Partial<New>) {
32
+ source = Object.assign({}, New.getDefaultOptions(), source);
33
+ super(source);
34
+ super.subConstructor(source);
35
+ }
36
+
37
+ static from(source: any, parentNode?: any, parentKey?: string): New {
38
+ return super.from(source, parentNode, parentKey) as New;
39
+ }
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ //================================================================================
49
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
50
+ // 自动生成的代码已结束。下面可以手动编写。
51
+ //================================================================================
52
+ toJS(state?: TranslatorState): string {
53
+ const code = '';
54
+ return code;
55
+ }
56
+
57
+ @withSourceMap()
58
+ toEmbeddedTS(state?: TranslatorState): string {
59
+ const code = '__IDENTIFIER__';
60
+ return code;
61
+ }
62
+ //================================================================================
63
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
64
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
65
+ //================================================================================
66
+ }
67
+
68
+ classMap.New = New;
69
+ export default New;
70
+ //================================================================================
71
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
72
+ // 自动生成的代码已结束。下面可以手动编写。
73
+ //================================================================================
@@ -9,13 +9,13 @@ import Function from './Function__';
9
9
  import AnonymousFunction from './AnonymousFunction__';
10
10
 
11
11
  function tryJSONParse(str: string) {
12
- let result;
12
+ let result;
13
13
 
14
- try {
15
- result = JSON.parse(str);
16
- } catch (e) { }
14
+ try {
15
+ result = JSON.parse(str);
16
+ } catch (e) { }
17
17
 
18
- return result;
18
+ return result;
19
19
  }
20
20
 
21
21
  //================================================================================
@@ -245,217 +245,256 @@ export class Param extends BaseNode {
245
245
  // 自动生成的代码已结束。下面可以手动编写。
246
246
  //================================================================================
247
247
 
248
- @excludedInJSON()
249
- @property()
250
- defaultExpression: LogicItem | Function | AnonymousFunction = undefined;
251
- @excludedInJSON()
252
- @property()
253
- options: Array<{ text?: string; value: string }> = undefined;
254
- @excludedInJSON()
255
- @property()
256
- useComponent: {
257
- type: 's-member-identifier-select' | 's-enum-select' | 's-schema-select' | 's-datatype-select' | 's-config-select' | 's-options-select';
258
- attrs?: any;
259
- } = undefined;
260
-
261
- /**
262
- * 自动补全的属性列表
263
- */
264
- completionChildren: Array<EntityProperty | StructureProperty> = undefined;
265
-
266
- toJS(state?: TranslatorState): string {
267
- if (this.view) {
268
- const typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
269
- const needGenInitFromSchema = typeAnnotation && !['primitive', 'union'].includes(typeAnnotation.typeKind);
270
- let code = `${this.name} = `;
271
- if (needGenInitFromSchema) {
272
- code += `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}',`;
273
- }
274
- const defaultValue = this.defaultValue;
275
- const defaultValueType = Object.prototype.toString.call(defaultValue);
276
- const { typeKind, typeNamespace, typeName } = typeAnnotation || {};
277
- // 设置成null,才能同步给后端清除该值,但是null对checkbox组件是一种特殊状态
278
- let parsedValue = defaultValue ?? undefined;
279
- if (
280
- defaultValueType === '[object String]'
281
- && (
282
- !(typeKind === 'primitive' && typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName))
283
- && !(this.isEnum())
284
- && !['union'].includes(typeKind)
285
- )
286
- ) {
287
- // 一些特殊情况,特殊处理成undefined
288
- // 1.defaultValue在nasl节点上错误得赋值给了空制符串
289
- if ([''].includes(defaultValue)) {
290
- parsedValue = undefined;
291
- } else {
292
- parsedValue = tryJSONParse(defaultValue) ?? defaultValue;
293
- }
294
- }
295
- code += `${this.name} || (this.$route.query.hasOwnProperty('${this.name}') ? this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', this.$route.query.${this.name}) : ${JSON.stringify(this.defaultValue)})`;
296
-
297
- if (needGenInitFromSchema) {
298
- code += `)`;
299
- }
300
- return code;
248
+ @excludedInJSON()
249
+ @property()
250
+ defaultExpression: LogicItem | Function | AnonymousFunction = undefined;
251
+ @excludedInJSON()
252
+ @property()
253
+ options: Array<{ text?: string; value: string }> = undefined;
254
+ @excludedInJSON()
255
+ @property()
256
+ useComponent: {
257
+ type: 's-member-identifier-select' | 's-enum-select' | 's-schema-select' | 's-datatype-select' | 's-config-select' | 's-options-select';
258
+ attrs?: any;
259
+ } = undefined;
260
+
261
+ /**
262
+ * 自动补全的属性列表
263
+ */
264
+ completionChildren: Array<EntityProperty | StructureProperty> = undefined;
265
+
266
+ toJS(state?: TranslatorState): string {
267
+ if (this.view) {
268
+ const typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
269
+ const needGenInitFromSchema = typeAnnotation && (
270
+ !['primitive', 'union'].includes(typeAnnotation.typeKind)
271
+ || typeAnnotation.typeName === 'DateTime'
272
+ );
273
+ let code = `${this.name} = `;
274
+ if (needGenInitFromSchema) {
275
+ code += `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}',`;
276
+ }
277
+ const defaultValue = this.defaultValue;
278
+ const defaultValueType = Object.prototype.toString.call(defaultValue);
279
+ const { typeKind, typeNamespace, typeName } = typeAnnotation || {};
280
+ // 设置成null,才能同步给后端清除该值,但是null对checkbox组件是一种特殊状态
281
+ let parsedValue = defaultValue ?? undefined;
282
+ if (
283
+ defaultValueType === '[object String]'
284
+ && (
285
+ !(typeKind === 'primitive' && typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName))
286
+ && !(this.isEnum())
287
+ && !['union'].includes(typeKind)
288
+ )
289
+ ) {
290
+ // 一些特殊情况,特殊处理成undefined
291
+ // 1.defaultValue在nasl节点上错误得赋值给了空制符串
292
+ if ([''].includes(defaultValue)) {
293
+ parsedValue = undefined;
301
294
  } else {
302
- return '';
295
+ parsedValue = tryJSONParse(defaultValue) ?? defaultValue;
303
296
  }
297
+ }
298
+ code += `${this.name} || (this.$route.query.hasOwnProperty('${this.name}') ? this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', this.$route.query.${this.name}) : ${JSON.stringify(this.defaultValue)})`;
299
+
300
+ if (needGenInitFromSchema) {
301
+ code += `)`;
302
+ }
303
+ return code;
304
+ } else {
305
+ return '';
304
306
  }
305
-
306
- isEnum() {
307
- return this.typeAnnotation?.typeNamespace?.endsWith('.enums');
308
- }
309
-
310
- @withSourceMap()
311
- toEmbeddedTS(state?: TranslatorState, dontType?: boolean): string {
312
- let code = this.name;
313
- // 回调函数类的参数
314
- if (this.defaultExpression instanceof Function) {
315
- code += ': ';
316
- code += this.defaultExpression.toEmbeddedTSDefinition(shiftState(state, code));
317
- } else if (!dontType && this.typeAnnotation) {
318
- code += ': ';
319
- code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
320
- // toTS暂时只需要翻译引用数据类型的,因为值都是字符串
321
- // 就不在这里赋值了,这里单纯就为了快速查找
322
- // 并且屏蔽了一些异常的错误
323
- if (this.typeAnnotation?.typeKind !== 'primitive' && this.defaultValue) {
324
- if (this.isEnum()) {
325
- code += `= ${this.typeAnnotation.typeKey}['${this.defaultValue}']`;
326
- }
327
- }
328
- }
329
- return code;
330
- }
331
-
332
- @withSourceMap()
333
- toEmbeddedNameTS(state?: TranslatorState): string {
334
- return `${this.name}`;
335
- }
336
- /**
337
- * 设置数据类型
338
- * @param typeAnnotation 类型标注对象
339
- */
340
- async setDataType(typeAnnotation: TypeAnnotation): Promise<void>;
341
- /**
342
- * 设置数据类型
343
- * @param typeAnnotation 类型唯一标识
344
- */
345
- async setDataType(typeKey: string): Promise<void>;
346
- async setDataType(typeAnnotation: TypeAnnotation | string) {
347
- if (typeof typeAnnotation === 'string') {
348
- typeAnnotation = dataTypesMap[typeAnnotation];
349
- if (!typeAnnotation)
350
- // eslint-disable-next-line prefer-rest-params
351
- throw new Error('找不到类型:' + arguments[0]);
307
+ }
308
+
309
+ isEnum() {
310
+ return this.typeAnnotation?.typeNamespace?.endsWith('.enums');
311
+ }
312
+
313
+ @withSourceMap()
314
+ toEmbeddedTS(state?: TranslatorState, dontType?: boolean): string {
315
+ let code = this.name;
316
+ // 回调函数类的参数
317
+ if (this?.typeAnnotation?.typeKind === 'function') {
318
+ code += ':{(';
319
+ const paramTypes = this.typeAnnotation?.typeArguments || [];
320
+ paramTypes.forEach((type, index) => {
321
+ code += `type${index + 1}:` + type.toEmbeddedTS(shiftState(state, code));
322
+ if (index !== paramTypes.length - 1) {
323
+ code += ',';
352
324
  } else {
353
- typeAnnotation._delete?.();
354
- const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
355
- Object.assign(typeAnnotation, relationOptions);
325
+ code += ')';
356
326
  }
357
- const object: any = {
358
- typeAnnotation,
359
- };
327
+ });
328
+ code += ':';
329
+ const returnTypes = (this.typeAnnotation?.returnType || []);
330
+ returnTypes.forEach((type) => {
331
+ code += type.toEmbeddedTS(shiftState(state, code));
332
+ });
333
+ code += '}';
334
+ return code;
335
+ }
360
336
 
361
- // 切换类型的时候如果有默认值就清除掉
362
- if (this.defaultValue) {
363
- object.defaultValue = '';
364
- }
365
- try {
366
- this.completionChildren = this.getSelectRef(typeAnnotation);
367
- } catch (err) {
368
- this.completionChildren = [];
369
- console.log(err);
337
+ if (this.defaultExpression instanceof Function || this.defaultExpression instanceof AnonymousFunction) {
338
+ code += this.required ? ': ' : '?: ';
339
+ code += this.defaultExpression.toEmbeddedTSDefinition(shiftState(state, code));
340
+ } else if (!dontType && this.typeAnnotation) {
341
+ code += ': ';
342
+ code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
343
+ // toTS暂时只需要翻译引用数据类型的,因为值都是字符串
344
+ // 就不在这里赋值了,这里单纯就为了快速查找
345
+ // 并且屏蔽了一些异常的错误
346
+ if (this.typeAnnotation?.typeKind !== 'primitive' && this.defaultValue) {
347
+ if (this.isEnum()) {
348
+ code += `= ${this.typeAnnotation.typeKey}['${this.defaultValue}']`;
370
349
  }
371
- // 处理下拉属性
372
- return this.update({
373
- ...object,
374
- });
350
+ }
375
351
  }
376
-
377
- public static getDefaultOptions() {
378
- return {
379
- required: true,
380
- defaultValue: '',
381
- typeAnnotation: {
382
- concept: 'TypeAnnotation',
383
- typeKind: 'primitive',
384
- typeNamespace: 'nasl.core',
385
- typeName: 'String',
386
- },
387
- };
352
+ return code;
353
+ }
354
+
355
+ @withSourceMap()
356
+ toEmbeddedNameTS(state?: TranslatorState): string {
357
+ return `${this.name}`;
358
+ }
359
+ /**
360
+ * 设置数据类型
361
+ * @param typeAnnotation 类型标注对象
362
+ */
363
+ async setDataType(typeAnnotation: TypeAnnotation): Promise<void>;
364
+ /**
365
+ * 设置数据类型
366
+ * @param typeAnnotation 类型唯一标识
367
+ */
368
+ async setDataType(typeKey: string): Promise<void>;
369
+ async setDataType(typeAnnotation: TypeAnnotation | string) {
370
+ if (typeof typeAnnotation === 'string') {
371
+ typeAnnotation = dataTypesMap[typeAnnotation];
372
+ if (!typeAnnotation)
373
+ // eslint-disable-next-line prefer-rest-params
374
+ throw new Error('找不到类型:' + arguments[0]);
375
+ } else {
376
+ typeAnnotation._delete?.();
377
+ const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
378
+ Object.assign(typeAnnotation, relationOptions);
388
379
  }
380
+ const object: any = {
381
+ typeAnnotation,
382
+ };
389
383
 
390
- _readonly: boolean = false;
391
- /**
392
- * 是否可编辑
393
- * */
394
- get readonly() {
395
- return !!this.module || this._readonly;
384
+ // 切换类型的时候如果有默认值就清除掉
385
+ if (this.defaultValue) {
386
+ object.defaultValue = '';
396
387
  }
397
-
398
- set readonly(val) {
399
- this._readonly = val;
388
+ try {
389
+ this.completionChildren = this.getSelectRef(typeAnnotation);
390
+ } catch (err) {
391
+ this.completionChildren = [];
392
+ console.log(err);
400
393
  }
401
- get hasChildren() {
402
- const { typeKind, typeNamespace } = this.typeAnnotation;
403
- if (typeKind === 'reference' || typeKind === 'generic') {
404
- if (typeNamespace.endsWith('.enums'))
405
- return null;
406
- return [{}];
407
- }
394
+ // 处理下拉属性
395
+ return this.update({
396
+ ...object,
397
+ });
398
+ }
399
+
400
+ public static getDefaultOptions() {
401
+ return {
402
+ required: true,
403
+ defaultValue: '',
404
+ typeAnnotation: {
405
+ concept: 'TypeAnnotation',
406
+ typeKind: 'primitive',
407
+ typeNamespace: 'nasl.core',
408
+ typeName: 'String',
409
+ },
410
+ };
411
+ }
412
+
413
+ _readonly: boolean = false;
414
+ /**
415
+ * 是否可编辑
416
+ * */
417
+ get readonly() {
418
+ return !!this.module || this._readonly;
419
+ }
420
+
421
+ set readonly(val) {
422
+ this._readonly = val;
423
+ }
424
+ get hasChildren() {
425
+ const { typeKind, typeNamespace } = this.typeAnnotation;
426
+ if (typeKind === 'reference' || typeKind === 'generic') {
427
+ if (typeNamespace.endsWith('.enums'))
408
428
  return null;
429
+ return [{}];
409
430
  }
410
- get isTreeLeaf() {
411
- return !this.hasChildren;
412
- }
413
- getSelectRef(newTypeAnnotation: TypeAnnotation) {
414
- try {
415
- const { typeName, typeKind, typeNamespace } = newTypeAnnotation || this.typeAnnotation;
416
- let completionChildren;
417
- if (typeKind === 'reference') {
418
- if (typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.process' || typeNamespace === 'nasl.auth') {
419
- const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
420
- const properties = (node as Structure)?.properties || [];
421
- completionChildren = properties;
422
- } else if (typeNamespace.endsWith('.enums')) {
423
- completionChildren = [];
424
- } else {
425
- const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
426
- const properties = node?.properties || [];
427
- completionChildren = properties;
428
- }
429
- } else if (typeKind === 'generic') {
430
- // if (typeNamespace === 'nasl.collection' || typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.interface') {
431
- // }
432
- const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
433
- const properties = ((node as Structure)?.properties && [...(node as Structure)?.properties]) || [];
434
- for (let i = 0; i < properties.length; i++) {
435
- const item = properties[i];
436
- if (item?.typeAnnotation?.typeKind === 'typeParam') {
437
- const newItem = StructureProperty.from(item.toJSON());
438
- newItem.typeAnnotation = this?.typeAnnotation?.typeArguments[0];
439
- newItem.parentNode = this;
440
- properties[i] = newItem;
441
- }
442
- }
443
- completionChildren = properties;
444
- } else {
445
- completionChildren = [];
446
- }
447
- return completionChildren;
448
- } catch (err) {
449
- console.log(err);
431
+ return null;
432
+ }
433
+ get isTreeLeaf() {
434
+ return !this.hasChildren;
435
+ }
436
+ getSelectRef(newTypeAnnotation: TypeAnnotation) {
437
+ try {
438
+ const { typeName, typeKind, typeNamespace } = newTypeAnnotation || this.typeAnnotation;
439
+ let completionChildren;
440
+ if (typeKind === 'reference') {
441
+ if (typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.process' || typeNamespace === 'nasl.auth') {
442
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
443
+ const properties = (node as Structure)?.properties || [];
444
+ completionChildren = properties;
445
+ } else if (typeNamespace.endsWith('.enums')) {
446
+ completionChildren = [];
447
+ } else {
448
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
449
+ const properties = node?.properties || [];
450
+ completionChildren = properties;
451
+ }
452
+ } else if (typeKind === 'generic') {
453
+ // if (typeNamespace === 'nasl.collection' || typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.interface') {
454
+ // }
455
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
456
+ const properties = ((node as Structure)?.properties && [...(node as Structure)?.properties]) || [];
457
+ for (let i = 0; i < properties.length; i++) {
458
+ const item = properties[i];
459
+ if (item?.typeAnnotation?.typeKind === 'typeParam') {
460
+ const newItem = StructureProperty.from(item.toJSON());
461
+ newItem.typeAnnotation = this?.typeAnnotation?.typeArguments[0];
462
+ newItem.parentNode = this;
463
+ properties[i] = newItem;
464
+ }
450
465
  }
466
+ completionChildren = properties;
467
+ } else {
468
+ completionChildren = [];
469
+ }
470
+ return completionChildren;
471
+ } catch (err) {
472
+ console.log(err);
451
473
  }
452
-
453
- setnNewTypeAnnotation(oldTypeAnnotation: TypeAnnotation) {
454
- const json = oldTypeAnnotation.toJSON();
455
- const typeAnnotation = TypeAnnotation.from(json);
456
- this.typeAnnotation = typeAnnotation;
474
+ }
475
+
476
+ setnNewTypeAnnotation(oldTypeAnnotation: TypeAnnotation) {
477
+ const json = oldTypeAnnotation.toJSON();
478
+ const typeAnnotation = TypeAnnotation.from(json);
479
+ this.typeAnnotation = typeAnnotation;
480
+ }
481
+ get isFunction() {
482
+ return this.typeAnnotation.typeKind === 'function';
483
+ }
484
+
485
+ get getFunctionSign() {
486
+ if (this.isFunction) {
487
+ const paramTypes = this.typeAnnotation.typeArguments || [];
488
+ const returnTypes = this.typeAnnotation.returnType || [];
489
+ const paramTypeNames = paramTypes.map((item) => item.sign);
490
+ const returnTypeNames = returnTypes.map((item) => item.sign);
491
+ return `(${paramTypeNames.toString()}) → ${returnTypeNames.toString()}`;
492
+ } else {
493
+ return '';
457
494
  }
458
- //================================================================================
495
+ }
496
+
497
+ //================================================================================
459
498
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
460
499
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
461
500
  //================================================================================
@@ -1596,24 +1596,29 @@ export class ProcessElement extends BaseNode {
1596
1596
  const tab4 = indent((state?.tabSize || 0) + 3);
1597
1597
  const tab5 = indent((state?.tabSize || 0) + 4);
1598
1598
  const tab6 = indent((state?.tabSize || 0) + 5);
1599
+ const constantsArr: any = [];
1600
+ const returnsArr: any = [];
1599
1601
  let code = `${this.name}: {\n`;
1600
1602
  this.variables.forEach((property) => {
1601
1603
  code += `${tab1}`;
1602
1604
  code += `${property.toEmbeddedTSInProcess(shiftState(state, code, { inline: true }))},\n`;
1603
1605
  });
1604
- this.returns.forEach((property) => {
1606
+ this.returns.forEach((property, index) => {
1605
1607
  code += `${tab1}`;
1606
- code += `${property.toEmbeddedTSInProcess(shiftState(state, code, { inline: true }))},\n`;
1608
+ returnsArr.push(property.toEmbeddedTSInProcess(shiftState(state, code, { inline: true })));
1609
+ code += `${returnsArr[index]},\n`;
1607
1610
  });
1608
- this.constants.forEach((property) => {
1611
+ this.constants.forEach((property, index) => {
1609
1612
  code += `${tab1}`;
1610
- code += `${property.toEmbeddedTSInProcess(shiftState(state, code, { inline: true }))},\n`;
1613
+ constantsArr.push(property.toEmbeddedTSInProcess(shiftState(state, code, { inline: true })));
1614
+ code += `${constantsArr[index]},\n`;
1611
1615
  });
1612
1616
  const afterLinks = getFlowAfterElements(this);
1613
1617
  const beforeLinks = getFlowBeforeElements(this);
1614
1618
  if (this.isUserTask
1615
1619
  || this.type === 'ExclusiveGateway'
1616
- || this.type === 'AutoTask') {
1620
+ || this.type === 'AutoTask'
1621
+ || this.type === 'InclusiveGateway') {
1617
1622
  const prevTasks = getPreviousTask(this);
1618
1623
  let prevCode = `${tab4}const ${this.process.name} = {\n`;
1619
1624
  const processName = this.process.name;
@@ -1633,10 +1638,27 @@ export class ProcessElement extends BaseNode {
1633
1638
 
1634
1639
  if (this.isUserTask) {
1635
1640
  //任务完成时可以拿到输出参数,prevCodeClose包含输出参数
1636
- let prevCodeClose = prevCode + `\n${tab5}${this.name}: { \n${this.constants.map((c) => `${tab6}${c.toEmbeddedTSInProcess(shiftState(state, code, { inline: true }))},`).join('\n')}`;
1637
- prevCodeClose += ` \n${this.returns.map((c) => `${tab6}${c.toEmbeddedTSInProcess(shiftState(state, code, { inline: true }))},`).join('\n')} \n${tab5}}\n`;
1641
+ let prevCodeClose = prevCode + `\n${tab5}${this.name}: { \n`;
1642
+ this.constants.forEach((c, index) => {
1643
+ prevCodeClose += tab6;
1644
+ prevCodeClose += constantsArr[index];
1645
+ prevCodeClose += ',';
1646
+ });
1647
+ this.returns.forEach((c, index) => {
1648
+ prevCodeClose += `\n${tab6}`;
1649
+ prevCodeClose += returnsArr[index];
1650
+ prevCodeClose += ',';
1651
+ });
1652
+ prevCodeClose += ` \n${tab5}}\n`;
1638
1653
  prevCodeClose += `${tab4}}\n`;
1639
- prevCode += `\n${tab5}${this.name}: { \n${this.constants.map((c) => `${tab6}${c.toEmbeddedTSInProcess(shiftState(state, code, { inline: true }))},`).join('\n')} \n${tab5}}\n`;
1654
+
1655
+ prevCode += `\n${tab5}${this.name}: { \n`;
1656
+ this.constants.forEach((c, index) => {
1657
+ prevCode += `${tab6}`;
1658
+ prevCode += constantsArr[index];
1659
+ prevCode += ',';
1660
+ });
1661
+ prevCode += ` \n${tab5}}\n`;
1640
1662
  prevCode += `${tab4}}\n`;
1641
1663
  if (Array.isArray(this.bindEvents)) {
1642
1664
  this.bindEvents.forEach((bindEvent) => {
@@ -1672,7 +1694,7 @@ export class ProcessElement extends BaseNode {
1672
1694
  code += `${tab1}},\n`;
1673
1695
  }
1674
1696
 
1675
- if (this.type === 'ExclusiveGateway' || this.type === 'AutoTask') {
1697
+ if (['ExclusiveGateway', 'AutoTask', 'InclusiveGateway'].includes(this.type)) {
1676
1698
  prevCode += `\n${tab5}${this.name}: elements.${this.name},\n`;
1677
1699
  prevCode += `${tab3}}\n`;
1678
1700
  code += `${tab1}logic: `;
@@ -1684,7 +1706,7 @@ export class ProcessElement extends BaseNode {
1684
1706
  code += `${tab1}nasl.process.oneOutcomeFlow(${afterLinks.map((l) => `'${l.name}'`).join(',')})\n`;
1685
1707
  code += '},\n';
1686
1708
  }
1687
- if (this.type === 'ExclusiveGateway' || this.type === 'ParallelGateway') {
1709
+ if (['ExclusiveGateway', 'ParallelGateway', 'InclusiveGateway'].includes(this.type)) {
1688
1710
  code += '_constraints: function() {\n';
1689
1711
  code += `${tab1}nasl.process.atLeastOneOutcomeFlow(${afterLinks.map((l) => `'${l.name}'`).join(',')})\n`;
1690
1712
  code += `${tab1}nasl.process.atLeastOneOutcomeFlow(${beforeLinks.map((l) => `'${l.name}'`).join(',')})\n`;
@@ -28,7 +28,7 @@ export class ProcessOutcome extends LogicItem {
28
28
  * 判断结果标题
29
29
  */
30
30
  @property()
31
- label: string = '判断结果';
31
+ label: string = '流向';
32
32
 
33
33
  /**
34
34
  * 关联连接器