@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,440 @@
1
+ import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
+ import { ElementToVueOptions } from './ViewElement__';
3
+ //================================================================================
4
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
5
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
6
+ //================================================================================
7
+ import { EventPayload, Params } from '../common/EventEmitter';
8
+ import { concept, excludedInJSON, property } from '../decorators';
9
+
10
+ import * as utils from '../utils';
11
+ import { v4 as uuidv4 } from 'uuid';
12
+ import BaseNode from '../common/BaseNode';
13
+ import classMap from '../common/classMap';
14
+ import TypeAnnotation from './TypeAnnotation__';
15
+ import LogicItem from './LogicItem__';
16
+
17
+ /**
18
+ * list构造器
19
+ */
20
+ @concept('list构造器')
21
+ export class NewList extends LogicItem {
22
+ /**
23
+ * 产品概念
24
+ */
25
+ @property()
26
+ concept: 'NewList' = 'NewList';
27
+
28
+ /**
29
+ * 类型
30
+ */
31
+ @property('TypeAnnotation')
32
+ typeAnnotation: TypeAnnotation = undefined;
33
+
34
+ /**
35
+ * 成员表达式
36
+ */
37
+ @property('LogicItem')
38
+ items: Array<LogicItem> = [];
39
+
40
+
41
+
42
+ /**
43
+ * @param source 需要合并的部分参数
44
+ */
45
+ constructor(source?: Partial<NewList>) {
46
+ source = Object.assign({}, NewList.getDefaultOptions(), source);
47
+ super(source);
48
+ super.subConstructor(source);
49
+ }
50
+
51
+ static from(source: any, parentNode?: any, parentKey?: string): NewList {
52
+ return super.from(source, parentNode, parentKey) as NewList;
53
+ }
54
+
55
+
56
+ /**
57
+ * 设置类型
58
+ */
59
+ setTypeAnnotation(typeAnnotation: TypeAnnotation) {
60
+ typeAnnotation._delete();
61
+ const relationOptions = { parentNode: this, parentKey: 'typeAnnotation' };
62
+ Object.assign(typeAnnotation, relationOptions);
63
+ const object = {
64
+ typeAnnotation,
65
+ };
66
+ this.update({
67
+ ...object,
68
+ });
69
+ }
70
+
71
+ /**
72
+ * 设置成员表达式
73
+ */
74
+ setItems(items: Array<LogicItem>) {
75
+ const object = {
76
+ items,
77
+ };
78
+ this.update({
79
+ ...object,
80
+ });
81
+ }
82
+
83
+ getItemExistingNames(excludedList: Array<LogicItem> = []) {
84
+ const excludedSet = new Set(excludedList);
85
+ return ((this.items as LogicItem[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
86
+ }
87
+ getItemUniqueName(name = 'logicItem1') {
88
+ return utils.unique(name, this.getItemExistingNames(), undefined, false);
89
+ }
90
+
91
+ /**
92
+ * 插入逻辑项
93
+ * @internal
94
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
95
+ */
96
+ _insertItemAt(name: string, index: number): LogicItem;
97
+
98
+ /**
99
+ * 插入逻辑项
100
+ * @internal
101
+ * @param logicItemOptions 逻辑项参数
102
+ */
103
+ _insertItemAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
104
+
105
+ /**
106
+ * 插入逻辑项
107
+ * @internal
108
+ * @param logicItem 已有的逻辑项实例
109
+ */
110
+ _insertItemAt(logicItem: LogicItem, index: number): LogicItem;
111
+
112
+ _insertItemAt(options: string | Partial<LogicItem> | LogicItem, index: number) {
113
+ const logicItemOptions: any = {};
114
+ const relationOptions = { parentNode: this, parentKey: 'items' };
115
+ let logicItem: LogicItem;
116
+ if (!options) {
117
+ logicItem = LogicItem.from({
118
+ ...logicItemOptions,
119
+ name: this.getItemUniqueName(),
120
+ }, this, 'items');
121
+ } else if (typeof options === 'string') {
122
+ logicItem = LogicItem.from({
123
+ ...logicItemOptions,
124
+ name: options,
125
+ }, this, 'items');
126
+ } else if (options instanceof LogicItem) {
127
+ options.ensureDelete(); // 同一实例不支持多处存在
128
+ logicItem = options;
129
+ Object.assign(logicItem, relationOptions);
130
+ } else {
131
+ logicItem = LogicItem.from({
132
+ ...logicItemOptions,
133
+ ...options,
134
+ }, this, 'items');
135
+ }
136
+ this.items.splice(index, 0, logicItem);
137
+ return logicItem;
138
+ }
139
+
140
+ /**
141
+ * 插入逻辑项
142
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
143
+ */
144
+ insertItemAt(name: string, index: number): LogicItem;
145
+
146
+ /**
147
+ * 插入逻辑项
148
+ * @param logicItemOptions 逻辑项参数
149
+ */
150
+ insertItemAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
151
+
152
+ /**
153
+ * 插入逻辑项
154
+ * @param logicItem 已有的逻辑项实例
155
+ */
156
+ insertItemAt(logicItem: LogicItem, index: number): LogicItem;
157
+
158
+ insertItemAt(options: string | Partial<LogicItem> | LogicItem, index: number) {
159
+ const node = this._insertItemAt(options as any, index);
160
+ node.create({
161
+ index,
162
+ parentNode: this,
163
+ parentKey: 'items',
164
+ });
165
+ return node;
166
+ }
167
+
168
+ /**
169
+ * 添加逻辑项
170
+ * @internal
171
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
172
+ */
173
+ _addItem(name?: string): LogicItem;
174
+
175
+ /**
176
+ * 添加逻辑项
177
+ * @internal
178
+ * @param logicItemOptions 逻辑项参数
179
+ */
180
+ _addItem(logicItemOptions: Partial<LogicItem>): LogicItem;
181
+
182
+ /**
183
+ * 添加逻辑项
184
+ * @internal
185
+ * @param logicItem 已有的逻辑项实例
186
+ */
187
+ _addItem(logicItem: LogicItem): LogicItem;
188
+
189
+ _addItem(options?: string | Partial<LogicItem> | LogicItem) {
190
+ const index = this.items.length;
191
+ return this._insertItemAt(options as any, index);
192
+ }
193
+
194
+ /**
195
+ * 添加逻辑项
196
+ * @internal
197
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
198
+ */
199
+ addItem(name?: string): LogicItem;
200
+
201
+ /**
202
+ * 添加逻辑项
203
+ * @param logicItemOptions 逻辑项参数
204
+ */
205
+ addItem(logicItemOptions: Partial<LogicItem>): LogicItem;
206
+
207
+ /**
208
+ * 添加逻辑项
209
+ * @param logicItem 已有的逻辑项实例
210
+ */
211
+ addItem(logicItem: LogicItem): LogicItem;
212
+
213
+ addItem(options?: string | Partial<LogicItem> | LogicItem) {
214
+ const node = this._addItem(options as any);
215
+ const index = this.items.indexOf(node);
216
+ node.create({
217
+ index,
218
+ parentNode: this,
219
+ parentKey: 'items',
220
+ });
221
+ return node;
222
+ }
223
+
224
+
225
+
226
+
227
+ /**
228
+ * 删除类型标注
229
+ * @param name 类型标注名称
230
+ */
231
+ removeTypeAnnotation(name: string): void;
232
+
233
+ /**
234
+ * 删除类型标注
235
+ * @param typeAnnotation 已有的类型标注实例
236
+ */
237
+ removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
238
+
239
+ removeTypeAnnotation(options: string | TypeAnnotation) {
240
+ let typeAnnotation: TypeAnnotation;
241
+ if (typeof options === 'string') {
242
+ typeAnnotation = this.typeAnnotation;
243
+ if (!typeAnnotation) {
244
+ throw new Error('找不到类型标注 ' + options);
245
+ }
246
+ } else {
247
+ typeAnnotation = options;
248
+ }
249
+ return typeAnnotation.delete();
250
+ }
251
+
252
+ __removeTypeAnnotation(typeAnnotation: TypeAnnotation) {
253
+ const parentKey = typeAnnotation.parentKey;
254
+ const params: Params = {
255
+ parentNode: this,
256
+ parentKey,
257
+ index: -1,
258
+ object: null,
259
+ oldObject: typeAnnotation,
260
+ };
261
+ if (parentKey) {
262
+ params.parentKey = parentKey;
263
+ if (Array.isArray((this as any)[parentKey])) {
264
+ const index = (this as any)[parentKey].indexOf(typeAnnotation);
265
+ ~index && (this as any)[parentKey].splice(index, 1);
266
+ params.index = index;
267
+ } else if ((this as any)[parentKey] === typeAnnotation) {
268
+ params.index = 0;
269
+ (this as any)[parentKey] = undefined;
270
+ }
271
+ }
272
+ return params;
273
+ }
274
+
275
+
276
+
277
+ /**
278
+ * 删除逻辑项
279
+ * @param name 逻辑项名称
280
+ */
281
+ removeItem(name: string): void;
282
+
283
+ /**
284
+ * 删除逻辑项
285
+ * @param logicItem 已有的逻辑项实例
286
+ */
287
+ removeItem(logicItem: LogicItem): void;
288
+
289
+ removeItem(options: string | LogicItem) {
290
+ let logicItem: LogicItem;
291
+ if (typeof options === 'string') {
292
+ logicItem = (this.items as LogicItem[]).find((item) => item.name === options);
293
+ if (!logicItem) {
294
+ throw new Error('找不到逻辑项 ' + options);
295
+ }
296
+ } else {
297
+ logicItem = options;
298
+ }
299
+ return logicItem.delete();
300
+ }
301
+
302
+ __removeLogicItem(logicItem: LogicItem) {
303
+ const parentKey = logicItem.parentKey;
304
+ const params: Params = {
305
+ parentNode: this,
306
+ parentKey,
307
+ index: -1,
308
+ object: null,
309
+ oldObject: logicItem,
310
+ };
311
+ if (parentKey) {
312
+ params.parentKey = parentKey;
313
+ if (Array.isArray((this as any)[parentKey])) {
314
+ const index = (this as any)[parentKey].indexOf(logicItem);
315
+ ~index && (this as any)[parentKey].splice(index, 1);
316
+ params.index = index;
317
+ } else if ((this as any)[parentKey] === logicItem) {
318
+ params.index = 0;
319
+ (this as any)[parentKey] = undefined;
320
+ }
321
+ }
322
+ return params;
323
+ }
324
+
325
+ //================================================================================
326
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
327
+ // 自动生成的代码已结束。下面可以手动编写。
328
+ //================================================================================
329
+ toUI(state?: TranslatorState): string {
330
+ let code = '';
331
+ code += '[';
332
+ this.items.forEach((item, index) => {
333
+ code += item.toUI(shiftState(state, code, { inline: true }));
334
+ if (index + 1 < this.items.length)
335
+ code += ', ';
336
+ });
337
+ code += ']';
338
+ return code;
339
+ }
340
+
341
+ toJS(state?: TranslatorState): string {
342
+ let code = '';
343
+ code += 'await (async () => {\n';
344
+ code += 'const arr = [\n';
345
+ this.items.forEach((item, index) => {
346
+ code += item.toJS(shiftState(state, code, { inline: true }));
347
+ if (index + 1 < this.items.length)
348
+ code += ', ';
349
+ });
350
+ code += '\n];\n';
351
+ code += `return arr;\n`;
352
+ code += '})()';
353
+ return code;
354
+ }
355
+
356
+ @withSourceMap()
357
+ toEmbeddedTS(state?: TranslatorState): string {
358
+ let code = '';
359
+ if (this.typeAnnotation) {
360
+ code += '(() => { \n';
361
+ // ts报错检查
362
+ code += 'function __newComposite() {\n';
363
+ const typeCode = `nasl.util.New<${this.typeAnnotation.sortedTypeKey}>()`;
364
+ this.items.forEach((item, index) => {
365
+ code += `nasl.util.Add(${typeCode}, `;
366
+ code += item.toEmbeddedTS(shiftState(state, code, { inline: true }));
367
+ code += ');';
368
+ code += '\n';
369
+ });
370
+ code += `return ${typeCode};\n`;
371
+ code += '};\n';
372
+
373
+ code += 'return __newComposite();\n';
374
+ code += '})()';
375
+ } else {
376
+ code += '(() => { \n';
377
+ const arr: any = [];
378
+ this.items.forEach((item, index) => {
379
+ arr.push(item.toEmbeddedTS(shiftState(state, code, { inline: true })));
380
+ code += arr[index];
381
+ code += '; ';
382
+ });
383
+ code += '\n';
384
+ // ts报错检查
385
+ code += 'function __newComposite() {\n';
386
+ if (this.items.length === 0) {
387
+ code += 'return nasl.util.NewList();\n';
388
+ } else {
389
+ code += 'let arr = [';
390
+ this.items.forEach((item, index) => {
391
+ code += ['__IDENTIFIER__', '__IDENTIFIER__()'].includes(arr[index]) ? null : arr[index];
392
+ if (index + 1 < this.items.length)
393
+ code += ', ';
394
+ });
395
+ code += ']\n';
396
+ code += 'return nasl.util.NewList(...arr);\n';
397
+ }
398
+ code += '};\n';
399
+
400
+ code += 'return __newComposite();\n';
401
+ code += '})()';
402
+ }
403
+ return code;
404
+ }
405
+
406
+ getInitCode(state?: TranslatorState): string {
407
+ let code = '';
408
+ code += '(() => { \n';
409
+ code += 'function __newComposite() {\n';
410
+ if (this.items.length === 0) {
411
+ code += 'return nasl.util.NewList();\n';
412
+ } else {
413
+ code += 'let arr = [';
414
+ this.items.forEach((item, index) => {
415
+ const ts = item.toEmbeddedTS(shiftState(state, code, { inline: true }));
416
+ code += ts === '__IDENTIFIER__' ? null : ts;
417
+ if (index + 1 < this.items.length)
418
+ code += ', ';
419
+ });
420
+ code += ']\n';
421
+ code += 'return nasl.util.NewList(...arr);\n';
422
+ }
423
+ code += '};\n';
424
+
425
+ code += 'return __newComposite();\n';
426
+ code += '})()';
427
+ return code;
428
+ }
429
+ //================================================================================
430
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
431
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
432
+ //================================================================================
433
+ }
434
+
435
+ classMap.NewList = NewList;
436
+ export default NewList;
437
+ //================================================================================
438
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
439
+ // 自动生成的代码已结束。下面可以手动编写。
440
+ //================================================================================