@lcap/nasl 2.18.0-beta.7 → 2.20.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 (336) hide show
  1. package/out/automate/engine/index.js +3 -3
  2. package/out/automate/engine/index.js.map +1 -1
  3. package/out/bak/translator.js +85 -37
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/common/BaseNode.d.ts +6 -10
  6. package/out/common/BaseNode.js +7 -53
  7. package/out/common/BaseNode.js.map +1 -1
  8. package/out/concepts/AnonymousFunction__.js.map +1 -1
  9. package/out/concepts/App__.d.ts +0 -10
  10. package/out/concepts/App__.js +0 -74
  11. package/out/concepts/App__.js.map +1 -1
  12. package/out/concepts/Assignee__.js.map +1 -1
  13. package/out/concepts/AssignmentLine__.d.ts +5 -5
  14. package/out/concepts/AssignmentLine__.js +6 -6
  15. package/out/concepts/AssignmentLine__.js.map +1 -1
  16. package/out/concepts/Assignment__.js +2 -1
  17. package/out/concepts/Assignment__.js.map +1 -1
  18. package/out/concepts/BatchAssignment__.d.ts +60 -60
  19. package/out/concepts/BatchAssignment__.js +41 -68
  20. package/out/concepts/BatchAssignment__.js.map +1 -1
  21. package/out/concepts/BindAttribute__.d.ts +0 -19
  22. package/out/concepts/BindAttribute__.js +2 -39
  23. package/out/concepts/BindAttribute__.js.map +1 -1
  24. package/out/concepts/BindEvent__.js.map +1 -1
  25. package/out/concepts/BindStyle__.d.ts +2 -2
  26. package/out/concepts/BindStyle__.js +3 -3
  27. package/out/concepts/BindStyle__.js.map +1 -1
  28. package/out/concepts/BooleanLiteral__.js +8 -0
  29. package/out/concepts/BooleanLiteral__.js.map +1 -1
  30. package/out/concepts/CallFunction__.js +25 -58
  31. package/out/concepts/CallFunction__.js.map +1 -1
  32. package/out/concepts/CallInterface__.d.ts +0 -7
  33. package/out/concepts/CallInterface__.js +7 -53
  34. package/out/concepts/CallInterface__.js.map +1 -1
  35. package/out/concepts/CallLogic__.d.ts +1 -2
  36. package/out/concepts/CallLogic__.js +25 -89
  37. package/out/concepts/CallLogic__.js.map +1 -1
  38. package/out/concepts/CallQueryComponent__.js +1 -13
  39. package/out/concepts/CallQueryComponent__.js.map +1 -1
  40. package/out/concepts/CompletionProperty__.js +0 -3
  41. package/out/concepts/CompletionProperty__.js.map +1 -1
  42. package/out/concepts/ConfigGroup__.js.map +1 -1
  43. package/out/concepts/ConfigProperty__.js.map +1 -1
  44. package/out/concepts/Configuration__.js.map +1 -1
  45. package/out/concepts/DataSource__.d.ts +0 -6
  46. package/out/concepts/DataSource__.js +0 -41
  47. package/out/concepts/DataSource__.js.map +1 -1
  48. package/out/concepts/Destination__.d.ts +2 -11
  49. package/out/concepts/Destination__.js +48 -148
  50. package/out/concepts/Destination__.js.map +1 -1
  51. package/out/concepts/EntityProperty__.d.ts +8 -21
  52. package/out/concepts/EntityProperty__.js +23 -109
  53. package/out/concepts/EntityProperty__.js.map +1 -1
  54. package/out/concepts/Entity__.d.ts +0 -32
  55. package/out/concepts/Entity__.js +2 -117
  56. package/out/concepts/Entity__.js.map +1 -1
  57. package/out/concepts/Enum__.js +4 -0
  58. package/out/concepts/Enum__.js.map +1 -1
  59. package/out/concepts/Event__.js.map +1 -1
  60. package/out/concepts/ForEachStatement__.d.ts +4 -0
  61. package/out/concepts/ForEachStatement__.js +8 -4
  62. package/out/concepts/ForEachStatement__.js.map +1 -1
  63. package/out/concepts/Function__.js.map +1 -1
  64. package/out/concepts/Identifier__.js +4 -16
  65. package/out/concepts/Identifier__.js.map +1 -1
  66. package/out/concepts/IfStatement__.d.ts +0 -8
  67. package/out/concepts/IfStatement__.js +0 -22
  68. package/out/concepts/IfStatement__.js.map +1 -1
  69. package/out/concepts/InterfaceParam__.js.map +1 -1
  70. package/out/concepts/Interface__.js.map +1 -1
  71. package/out/concepts/LogicItem__.d.ts +1 -1
  72. package/out/concepts/LogicItem__.js.map +1 -1
  73. package/out/concepts/Logic__.d.ts +1 -6
  74. package/out/concepts/Logic__.js +50 -150
  75. package/out/concepts/Logic__.js.map +1 -1
  76. package/out/concepts/MatchCase__.d.ts +1 -1
  77. package/out/concepts/MatchCase__.js +8 -15
  78. package/out/concepts/MatchCase__.js.map +1 -1
  79. package/out/concepts/Match__.d.ts +19 -21
  80. package/out/concepts/Match__.js +25 -112
  81. package/out/concepts/Match__.js.map +1 -1
  82. package/out/concepts/MemberExpression__.d.ts +1 -4
  83. package/out/concepts/MemberExpression__.js +15 -30
  84. package/out/concepts/MemberExpression__.js.map +1 -1
  85. package/out/concepts/Module__.js.map +1 -1
  86. package/out/concepts/Namespace__.js.map +1 -1
  87. package/out/concepts/NumericLiteral__.js +1 -1
  88. package/out/concepts/NumericLiteral__.js.map +1 -1
  89. package/out/concepts/OqlQueryComponent__.d.ts +3 -7
  90. package/out/concepts/OqlQueryComponent__.js +95 -56
  91. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  92. package/out/concepts/Param__.d.ts +1 -1
  93. package/out/concepts/Param__.js +4 -40
  94. package/out/concepts/Param__.js.map +1 -1
  95. package/out/concepts/ProcessComponent__.js.map +1 -1
  96. package/out/concepts/ProcessElement__.js.map +1 -1
  97. package/out/concepts/Process__.js.map +1 -1
  98. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  99. package/out/concepts/QueryOrderByExpression__.d.ts +3 -3
  100. package/out/concepts/QueryOrderByExpression__.js +3 -3
  101. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  102. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  103. package/out/concepts/Return__.js +2 -38
  104. package/out/concepts/Return__.js.map +1 -1
  105. package/out/concepts/SelectMembers__.d.ts +1 -1
  106. package/out/concepts/SelectMembers__.js +2 -2
  107. package/out/concepts/SelectMembers__.js.map +1 -1
  108. package/out/concepts/SqlQueryComponent__.d.ts +4 -2
  109. package/out/concepts/SqlQueryComponent__.js +88 -9
  110. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  111. package/out/concepts/StringLiteral__.js +7 -0
  112. package/out/concepts/StringLiteral__.js.map +1 -1
  113. package/out/concepts/StructureProperty__.js.map +1 -1
  114. package/out/concepts/Structure__.js.map +1 -1
  115. package/out/concepts/TypeAnnotation__.d.ts +0 -1
  116. package/out/concepts/TypeAnnotation__.js +12 -25
  117. package/out/concepts/TypeAnnotation__.js.map +1 -1
  118. package/out/concepts/TypeParam__.d.ts +0 -1
  119. package/out/concepts/TypeParam__.js +0 -2
  120. package/out/concepts/TypeParam__.js.map +1 -1
  121. package/out/concepts/UnaryExpression__.js +9 -6
  122. package/out/concepts/UnaryExpression__.js.map +1 -1
  123. package/out/concepts/ValidationRule__.js +23 -88
  124. package/out/concepts/ValidationRule__.js.map +1 -1
  125. package/out/concepts/Variable__.js +2 -38
  126. package/out/concepts/Variable__.js.map +1 -1
  127. package/out/concepts/ViewComponent__.js.map +1 -1
  128. package/out/concepts/ViewElement__.d.ts +29 -30
  129. package/out/concepts/ViewElement__.js +52 -118
  130. package/out/concepts/ViewElement__.js.map +1 -1
  131. package/out/concepts/View__.d.ts +3 -4
  132. package/out/concepts/View__.js +83 -97
  133. package/out/concepts/View__.js.map +1 -1
  134. package/out/concepts/WhileStatement__.js +1 -1
  135. package/out/concepts/WhileStatement__.js.map +1 -1
  136. package/out/concepts/basics/stdlib/nasl.browser.js +0 -50
  137. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  138. package/out/concepts/basics/stdlib/nasl.ui.js +4 -36
  139. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  140. package/out/concepts/basics/stdlib/nasl.util.js +43 -63
  141. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  142. package/out/concepts/index__.d.ts +0 -2
  143. package/out/concepts/index__.js +0 -2
  144. package/out/concepts/index__.js.map +1 -1
  145. package/out/generator/genBundleFiles.d.ts +2 -5
  146. package/out/generator/genBundleFiles.js +155 -108
  147. package/out/generator/genBundleFiles.js.map +1 -1
  148. package/out/generator/genMetaData.d.ts +10 -1
  149. package/out/generator/genMetaData.js +50 -189
  150. package/out/generator/genMetaData.js.map +1 -1
  151. package/out/generator/index.d.ts +0 -1
  152. package/out/generator/index.js +0 -1
  153. package/out/generator/index.js.map +1 -1
  154. package/out/index.d.ts +2 -3
  155. package/out/index.js +1 -5
  156. package/out/index.js.map +1 -1
  157. package/out/server/entity2LogicNamespace.js +11 -11
  158. package/out/server/entity2LogicNamespace.js.map +1 -1
  159. package/out/server/extendBaseNode.js +18 -4
  160. package/out/server/extendBaseNode.js.map +1 -1
  161. package/out/server/formatTsUtils.d.ts +2 -1
  162. package/out/server/formatTsUtils.js +64 -40
  163. package/out/server/formatTsUtils.js.map +1 -1
  164. package/out/server/getLogics.js +6 -13
  165. package/out/server/getLogics.js.map +1 -1
  166. package/out/server/getMemberIdentifier.js +7 -7
  167. package/out/server/getMemberIdentifier.js.map +1 -1
  168. package/out/server/getProcesses.d.ts +1 -1
  169. package/out/server/getProcesses.js +1 -1
  170. package/out/server/getProcesses.js.map +1 -1
  171. package/out/server/index.d.ts +1 -0
  172. package/out/server/index.js +27 -2
  173. package/out/server/index.js.map +1 -1
  174. package/out/server/naslServer.d.ts +7 -47
  175. package/out/server/naslServer.js +399 -604
  176. package/out/server/naslServer.js.map +1 -1
  177. package/out/server/naslStdlibMap.js +28 -30
  178. package/out/server/naslStdlibMap.js.map +1 -1
  179. package/out/server/translator.js +11 -59
  180. package/out/server/translator.js.map +1 -1
  181. package/out/service/storage/init.js +3 -33
  182. package/out/service/storage/init.js.map +1 -1
  183. package/out/templator/genCreateBlock.js +4 -6
  184. package/out/templator/genCreateBlock.js.map +1 -1
  185. package/out/templator/genCurdEditMultipleKeyBlock.js +4 -7
  186. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  187. package/out/templator/genCurdMultipleKeyBlock.js +5 -7
  188. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  189. package/out/templator/genEnumSelectBlock.js +2 -5
  190. package/out/templator/genEnumSelectBlock.js.map +1 -1
  191. package/out/templator/genGridViewBlock.js +2 -2
  192. package/out/templator/genGridViewBlock.js.map +1 -1
  193. package/out/templator/genListViewBlock.js +2 -2
  194. package/out/templator/genListViewBlock.js.map +1 -1
  195. package/out/templator/genQueryComponent.d.ts +2 -2
  196. package/out/templator/genQueryComponent.js +1 -4
  197. package/out/templator/genQueryComponent.js.map +1 -1
  198. package/out/templator/genTableBlock.js +2 -2
  199. package/out/templator/genTableBlock.js.map +1 -1
  200. package/out/templator/genUpdateBlock.js +3 -4
  201. package/out/templator/genUpdateBlock.js.map +1 -1
  202. package/out/templator/utils.js +1 -1
  203. package/out/templator/utils.js.map +1 -1
  204. package/out/test/integration/node-nasl-server.js +38 -10
  205. package/out/test/integration/node-nasl-server.js.map +1 -1
  206. package/out/translator/index.d.ts +0 -1
  207. package/out/translator/index.js +1 -1
  208. package/out/translator/index.js.map +1 -1
  209. package/out/utils/index.d.ts +0 -1
  210. package/out/utils/index.js +1 -38
  211. package/out/utils/index.js.map +1 -1
  212. package/out/utils/string.d.ts +2 -15
  213. package/out/utils/string.js +3 -18
  214. package/out/utils/string.js.map +1 -1
  215. package/package.json +2 -2
  216. package/sandbox/stdlib/nasl.auth.ts +1 -1
  217. package/sandbox/stdlib/nasl.core.ts +1 -0
  218. package/sandbox/stdlib/nasl.logging.ts +4 -4
  219. package/sandbox/stdlib/nasl.util.ts +8 -4
  220. package/src/automate/engine/index.js +4 -4
  221. package/src/automate/engine/uniqueName.js +3 -3
  222. package/src/automate/template/myProcess.js +1 -1
  223. package/src/automate/upgrader/2.20.js +41 -0
  224. package/src/bak/translator.js +4 -1
  225. package/src/concepts/AnonymousFunction__.ts +48 -2
  226. package/src/concepts/App__.ts +288 -615
  227. package/src/concepts/BatchAssignment__.ts +45 -1
  228. package/src/concepts/BindAttribute__.ts +18 -25
  229. package/src/concepts/BindDirective__.ts +7 -0
  230. package/src/concepts/BindEvent__.ts +7 -0
  231. package/src/concepts/BindStyle__.ts +7 -0
  232. package/src/concepts/CallFunction__.ts +34 -45
  233. package/src/concepts/CallInterface__.ts +2 -1
  234. package/src/concepts/CallLogic__.ts +61 -44
  235. package/src/concepts/CallQueryComponent__.ts +4 -1
  236. package/src/concepts/Constant__.ts +7 -0
  237. package/src/concepts/DataSource__.ts +57 -5
  238. package/src/concepts/Destination__.ts +8 -21
  239. package/src/concepts/Frontend__.ts +937 -0
  240. package/src/concepts/Identifier__.ts +18 -16
  241. package/src/concepts/LogicItem__.ts +8 -1
  242. package/src/concepts/Logic__.ts +128 -142
  243. package/src/concepts/Match__.ts +13 -29
  244. package/src/concepts/NewComposite__.ts +1357 -0
  245. package/src/concepts/NewList__.ts +440 -0
  246. package/src/concepts/NewMap__.ts +666 -0
  247. package/src/concepts/New__.ts +73 -0
  248. package/src/concepts/Param__.ts +245 -199
  249. package/src/concepts/ProcessElement__.ts +43 -36
  250. package/src/concepts/ProcessOutcomes__.ts +90 -0
  251. package/src/concepts/Process__.ts +1 -23
  252. package/src/concepts/Return__.ts +11 -1
  253. package/src/concepts/SelectMembers__.ts +3 -3
  254. package/src/concepts/Transactional__.ts +7 -0
  255. package/src/concepts/TypeAnnotation__.ts +54 -49
  256. package/src/concepts/ValidationRule__.ts +19 -1
  257. package/src/concepts/Variable__.ts +12 -6
  258. package/src/concepts/ViewElement__.ts +51 -7
  259. package/src/concepts/View__.ts +21 -25
  260. package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
  261. package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
  262. package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
  263. package/src/concepts/basics/stdlib/nasl.util.ts +153 -19
  264. package/src/concepts/index__.ts +7 -0
  265. package/src/enums/KEYWORDS.ts +9 -0
  266. package/src/generator/genBundleFiles.ts +43 -29
  267. package/src/generator/genMetaData.ts +5 -10
  268. package/src/generator/genReleaseBody.ts +77 -41
  269. package/src/generator/index.ts +1 -0
  270. package/src/generator/permission.ts +261 -0
  271. package/src/index.ts +1 -1
  272. package/src/server/entity2LogicNamespace.ts +90 -10
  273. package/src/server/extendBaseNode.ts +29 -3
  274. package/src/server/formatTsUtils.ts +6 -0
  275. package/src/server/getLogics.ts +13 -1
  276. package/src/server/getMemberIdentifier.ts +5 -5
  277. package/src/server/naslServer.ts +235 -58
  278. package/src/server/process2LogicNamespace.ts +8 -0
  279. package/src/server/translator.ts +33 -1
  280. package/src/service/creator/add.configs.js +4 -0
  281. package/src/service/datasource/api.js +11 -0
  282. package/src/service/datasource/index.js +6 -0
  283. package/src/service/storage/init.ts +12 -0
  284. package/src/service/video/VideoTranscribe.js +1 -0
  285. package/src/templator/genEditTableBlock.ts +8 -16
  286. package/src/templator/genGetBlock.ts +18 -19
  287. package/src/templator/genGridViewBlock.ts +18 -18
  288. package/src/templator/genListViewBlock.ts +8 -11
  289. package/src/templator/genTableBlock.ts +6 -10
  290. package/ts-worker/lib/tsserver.js +8 -1
  291. package/out/automate/engine/2.14-components.d.ts +0 -1115
  292. package/out/automate/engine/2.14-components.js +0 -1087
  293. package/out/automate/engine/2.14-components.js.map +0 -1
  294. package/out/concepts/ExternalDestination__.d.ts +0 -73
  295. package/out/concepts/ExternalDestination__.js +0 -264
  296. package/out/concepts/ExternalDestination__.js.map +0 -1
  297. package/out/concepts/MatchExpression__.d.ts +0 -97
  298. package/out/concepts/MatchExpression__.js +0 -281
  299. package/out/concepts/MatchExpression__.js.map +0 -1
  300. package/out/concepts/StringInterpolation__.d.ts +0 -113
  301. package/out/concepts/StringInterpolation__.js +0 -227
  302. package/out/concepts/StringInterpolation__.js.map +0 -1
  303. package/out/generator/genReleaseBody.d.ts +0 -41
  304. package/out/generator/genReleaseBody.js +0 -349
  305. package/out/generator/genReleaseBody.js.map +0 -1
  306. package/out/service/defaultErrorMessage.json +0 -97
  307. package/out/service/logic/api.d.ts +0 -9
  308. package/out/service/logic/api.js +0 -11
  309. package/out/service/logic/api.js.map +0 -1
  310. package/out/service/logic/index.d.ts +0 -2
  311. package/out/service/logic/index.js +0 -10
  312. package/out/service/logic/index.js.map +0 -1
  313. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  314. package/src/automate/engine/dist/index.dev.js +0 -517
  315. package/src/common/dist/BaseNode.js +0 -1101
  316. package/src/concepts/basics/stdlib/dist/nasl.util.js +0 -1503
  317. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +0 -24
  318. package/src/concepts/dist/Anchor__.js +0 -179
  319. package/src/concepts/dist/Assignment__.js +0 -301
  320. package/src/concepts/dist/CallFunction__.js +0 -513
  321. package/src/concepts/dist/CallInterface__.js +0 -533
  322. package/src/concepts/dist/CallLogic__.js +0 -892
  323. package/src/concepts/dist/ForEachStatement__.js +0 -426
  324. package/src/concepts/dist/MatchCase__.js +0 -587
  325. package/src/concepts/dist/Match__.js +0 -631
  326. package/src/concepts/dist/MemberExpression__.js +0 -348
  327. package/src/concepts/dist/Param__.js +0 -538
  328. package/src/concepts/dist/Return__.js +0 -494
  329. package/src/concepts/dist/Variable__.js +0 -537
  330. package/src/concepts/dist/ViewElement__.js +0 -1680
  331. package/src/generator/dist/genBundleFiles.js +0 -261
  332. package/src/generator/dist/genMetaData.js +0 -249
  333. package/src/server/dist/formatTsUtils.js +0 -683
  334. package/src/server/dist/naslServer.js +0 -3474
  335. package/src/service/storage/dist/init.js +0 -572
  336. package/ts-worker/dist/webpack.config.dev.js +0 -108
@@ -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
  //================================================================================
@@ -34,6 +34,7 @@ import Logic from './Logic__';
34
34
  import View from './View__';
35
35
  import Module from './Module__';
36
36
  import App from './App__';
37
+ import Frontend from './Frontend__';
37
38
  import ProcessElement from './ProcessElement__';
38
39
  import Process from './Process__';
39
40
 
@@ -102,6 +103,12 @@ export class Param extends BaseNode {
102
103
  get view() {
103
104
  return this.getAncestor('View') as View;
104
105
  }
106
+ /**
107
+ * 祖先 Frontend
108
+ */
109
+ get frontend() {
110
+ return this.getAncestor('Frontend') as Frontend;
111
+ }
105
112
  /**
106
113
  * 祖先 ProcessElement
107
114
  */
@@ -245,217 +252,256 @@ export class Param extends BaseNode {
245
252
  // 自动生成的代码已结束。下面可以手动编写。
246
253
  //================================================================================
247
254
 
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;
255
+ @excludedInJSON()
256
+ @property()
257
+ defaultExpression: LogicItem | Function | AnonymousFunction = undefined;
258
+ @excludedInJSON()
259
+ @property()
260
+ options: Array<{ text?: string; value: string }> = undefined;
261
+ @excludedInJSON()
262
+ @property()
263
+ useComponent: {
264
+ type: 's-member-identifier-select' | 's-enum-select' | 's-schema-select' | 's-datatype-select' | 's-config-select' | 's-options-select';
265
+ attrs?: any;
266
+ } = undefined;
267
+
268
+ /**
269
+ * 自动补全的属性列表
270
+ */
271
+ completionChildren: Array<EntityProperty | StructureProperty> = undefined;
272
+
273
+ toJS(state?: TranslatorState): string {
274
+ if (this.view) {
275
+ const typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
276
+ const needGenInitFromSchema = typeAnnotation && (
277
+ !['primitive', 'union'].includes(typeAnnotation.typeKind)
278
+ || typeAnnotation.typeName === 'DateTime'
279
+ );
280
+ let code = `${this.name} = `;
281
+ if (needGenInitFromSchema) {
282
+ code += `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}',`;
283
+ }
284
+ const defaultValue = this.defaultValue;
285
+ const defaultValueType = Object.prototype.toString.call(defaultValue);
286
+ const { typeKind, typeNamespace, typeName } = typeAnnotation || {};
287
+ // 设置成null,才能同步给后端清除该值,但是null对checkbox组件是一种特殊状态
288
+ let parsedValue = defaultValue ?? undefined;
289
+ if (
290
+ defaultValueType === '[object String]'
291
+ && (
292
+ !(typeKind === 'primitive' && typeNamespace === 'nasl.core' && ['String', 'Text', 'Email'].includes(typeName))
293
+ && !(this.isEnum())
294
+ && !['union'].includes(typeKind)
295
+ )
296
+ ) {
297
+ // 一些特殊情况,特殊处理成undefined
298
+ // 1.defaultValue在nasl节点上错误得赋值给了空制符串
299
+ if ([''].includes(defaultValue)) {
300
+ parsedValue = undefined;
301
301
  } else {
302
- return '';
302
+ parsedValue = tryJSONParse(defaultValue) ?? defaultValue;
303
303
  }
304
+ }
305
+ code += `${this.name} || (this.$route.query.hasOwnProperty('${this.name}') ? this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', this.$route.query.${this.name}) : ${JSON.stringify(this.defaultValue)})`;
306
+
307
+ if (needGenInitFromSchema) {
308
+ code += `)`;
309
+ }
310
+ return code;
311
+ } else {
312
+ return '';
304
313
  }
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]);
314
+ }
315
+
316
+ isEnum() {
317
+ return this.typeAnnotation?.typeNamespace?.endsWith('.enums');
318
+ }
319
+
320
+ @withSourceMap()
321
+ toEmbeddedTS(state?: TranslatorState, dontType?: boolean): string {
322
+ let code = this.name;
323
+ // 回调函数类的参数
324
+ if (this?.typeAnnotation?.typeKind === 'function') {
325
+ code += ':{(';
326
+ const paramTypes = this.typeAnnotation?.typeArguments || [];
327
+ paramTypes.forEach((type, index) => {
328
+ code += `type${index + 1}:` + type.toEmbeddedTS(shiftState(state, code));
329
+ if (index !== paramTypes.length - 1) {
330
+ code += ',';
352
331
  } else {
353
- typeAnnotation._delete?.();
354
- const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
355
- Object.assign(typeAnnotation, relationOptions);
332
+ code += ')';
356
333
  }
357
- const object: any = {
358
- typeAnnotation,
359
- };
334
+ });
335
+ code += ':';
336
+ const returnTypes = (this.typeAnnotation?.returnType || []);
337
+ returnTypes.forEach((type) => {
338
+ code += type.toEmbeddedTS(shiftState(state, code));
339
+ });
340
+ code += '}';
341
+ return code;
342
+ }
360
343
 
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);
344
+ if (this.defaultExpression instanceof Function || this.defaultExpression instanceof AnonymousFunction) {
345
+ code += this.required ? ': ' : '?: ';
346
+ code += this.defaultExpression.toEmbeddedTSDefinition(shiftState(state, code));
347
+ } else if (!dontType && this.typeAnnotation) {
348
+ code += ': ';
349
+ code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
350
+ // toTS暂时只需要翻译引用数据类型的,因为值都是字符串
351
+ // 就不在这里赋值了,这里单纯就为了快速查找
352
+ // 并且屏蔽了一些异常的错误
353
+ if (this.typeAnnotation?.typeKind !== 'primitive' && this.defaultValue) {
354
+ if (this.isEnum()) {
355
+ code += `= ${this.typeAnnotation.typeKey}['${this.defaultValue}']`;
370
356
  }
371
- // 处理下拉属性
372
- return this.update({
373
- ...object,
374
- });
357
+ }
375
358
  }
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
- };
359
+ return code;
360
+ }
361
+
362
+ @withSourceMap()
363
+ toEmbeddedNameTS(state?: TranslatorState): string {
364
+ return `${this.name}`;
365
+ }
366
+ /**
367
+ * 设置数据类型
368
+ * @param typeAnnotation 类型标注对象
369
+ */
370
+ async setDataType(typeAnnotation: TypeAnnotation): Promise<void>;
371
+ /**
372
+ * 设置数据类型
373
+ * @param typeAnnotation 类型唯一标识
374
+ */
375
+ async setDataType(typeKey: string): Promise<void>;
376
+ async setDataType(typeAnnotation: TypeAnnotation | string) {
377
+ if (typeof typeAnnotation === 'string') {
378
+ typeAnnotation = dataTypesMap[typeAnnotation];
379
+ if (!typeAnnotation)
380
+ // eslint-disable-next-line prefer-rest-params
381
+ throw new Error('找不到类型:' + arguments[0]);
382
+ } else {
383
+ typeAnnotation._delete?.();
384
+ const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
385
+ Object.assign(typeAnnotation, relationOptions);
388
386
  }
387
+ const object: any = {
388
+ typeAnnotation,
389
+ };
389
390
 
390
- _readonly: boolean = false;
391
- /**
392
- * 是否可编辑
393
- * */
394
- get readonly() {
395
- return !!this.module || this._readonly;
391
+ // 切换类型的时候如果有默认值就清除掉
392
+ if (this.defaultValue) {
393
+ object.defaultValue = '';
396
394
  }
397
-
398
- set readonly(val) {
399
- this._readonly = val;
395
+ try {
396
+ this.completionChildren = this.getSelectRef(typeAnnotation);
397
+ } catch (err) {
398
+ this.completionChildren = [];
399
+ console.log(err);
400
400
  }
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
- }
401
+ // 处理下拉属性
402
+ return this.update({
403
+ ...object,
404
+ });
405
+ }
406
+
407
+ public static getDefaultOptions() {
408
+ return {
409
+ required: true,
410
+ defaultValue: '',
411
+ typeAnnotation: {
412
+ concept: 'TypeAnnotation',
413
+ typeKind: 'primitive',
414
+ typeNamespace: 'nasl.core',
415
+ typeName: 'String',
416
+ },
417
+ };
418
+ }
419
+
420
+ _readonly: boolean = false;
421
+ /**
422
+ * 是否可编辑
423
+ * */
424
+ get readonly() {
425
+ return !!this.module || this._readonly;
426
+ }
427
+
428
+ set readonly(val) {
429
+ this._readonly = val;
430
+ }
431
+ get hasChildren() {
432
+ const { typeKind, typeNamespace } = this.typeAnnotation;
433
+ if (typeKind === 'reference' || typeKind === 'generic') {
434
+ if (typeNamespace.endsWith('.enums'))
408
435
  return null;
436
+ return [{}];
409
437
  }
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);
438
+ return null;
439
+ }
440
+ get isTreeLeaf() {
441
+ return !this.hasChildren;
442
+ }
443
+ getSelectRef(newTypeAnnotation: TypeAnnotation) {
444
+ try {
445
+ const { typeName, typeKind, typeNamespace } = newTypeAnnotation || this.typeAnnotation;
446
+ let completionChildren;
447
+ if (typeKind === 'reference') {
448
+ if (typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.process' || typeNamespace === 'nasl.auth') {
449
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
450
+ const properties = (node as Structure)?.properties || [];
451
+ completionChildren = properties;
452
+ } else if (typeNamespace.endsWith('.enums')) {
453
+ completionChildren = [];
454
+ } else {
455
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
456
+ const properties = node?.properties || [];
457
+ completionChildren = properties;
458
+ }
459
+ } else if (typeKind === 'generic') {
460
+ // if (typeNamespace === 'nasl.collection' || typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.interface') {
461
+ // }
462
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
463
+ const properties = ((node as Structure)?.properties && [...(node as Structure)?.properties]) || [];
464
+ for (let i = 0; i < properties.length; i++) {
465
+ const item = properties[i];
466
+ if (item?.typeAnnotation?.typeKind === 'typeParam') {
467
+ const newItem = StructureProperty.from(item.toJSON());
468
+ newItem.typeAnnotation = this?.typeAnnotation?.typeArguments[0];
469
+ newItem.parentNode = this;
470
+ properties[i] = newItem;
471
+ }
450
472
  }
473
+ completionChildren = properties;
474
+ } else {
475
+ completionChildren = [];
476
+ }
477
+ return completionChildren;
478
+ } catch (err) {
479
+ console.log(err);
451
480
  }
452
-
453
- setnNewTypeAnnotation(oldTypeAnnotation: TypeAnnotation) {
454
- const json = oldTypeAnnotation.toJSON();
455
- const typeAnnotation = TypeAnnotation.from(json);
456
- this.typeAnnotation = typeAnnotation;
481
+ }
482
+
483
+ setnNewTypeAnnotation(oldTypeAnnotation: TypeAnnotation) {
484
+ const json = oldTypeAnnotation.toJSON();
485
+ const typeAnnotation = TypeAnnotation.from(json);
486
+ this.typeAnnotation = typeAnnotation;
487
+ }
488
+ get isFunction() {
489
+ return this.typeAnnotation.typeKind === 'function';
490
+ }
491
+
492
+ get getFunctionSign() {
493
+ if (this.isFunction) {
494
+ const paramTypes = this.typeAnnotation.typeArguments || [];
495
+ const returnTypes = this.typeAnnotation.returnType || [];
496
+ const paramTypeNames = paramTypes.map((item) => item.sign);
497
+ const returnTypeNames = returnTypes.map((item) => item.sign);
498
+ return `(${paramTypeNames.toString()}) → ${returnTypeNames.toString()}`;
499
+ } else {
500
+ return '';
457
501
  }
458
- //================================================================================
502
+ }
503
+
504
+ //================================================================================
459
505
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
460
506
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
461
507
  //================================================================================