@lcap/nasl 1.0.0-alpha.2 → 1.0.0-alpha.3

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 (391) hide show
  1. package/README.md +3 -3
  2. package/docs/assets/search.js +1 -1
  3. package/docs/classes/Entity.html +2832 -204
  4. package/docs/classes/View.html +4567 -365
  5. package/out/common/BaseNode.js +23 -16
  6. package/out/common/BaseNode.js.map +1 -1
  7. package/out/concepts/App__.d.ts +22 -0
  8. package/out/concepts/App__.js +77 -15
  9. package/out/concepts/App__.js.map +1 -1
  10. package/out/concepts/Argument__.d.ts +2 -1
  11. package/out/concepts/Argument__.js +2 -2
  12. package/out/concepts/Argument__.js.map +1 -1
  13. package/out/concepts/Assignment__.d.ts +2 -1
  14. package/out/concepts/Assignment__.js +3 -8
  15. package/out/concepts/Assignment__.js.map +1 -1
  16. package/out/concepts/Attribute__.js.map +1 -1
  17. package/out/concepts/BinaryExpression__.d.ts +2 -1
  18. package/out/concepts/BinaryExpression__.js +5 -5
  19. package/out/concepts/BinaryExpression__.js.map +1 -1
  20. package/out/concepts/BindAttribute__.d.ts +2 -1
  21. package/out/concepts/BindAttribute__.js +9 -4
  22. package/out/concepts/BindAttribute__.js.map +1 -1
  23. package/out/concepts/BindDirective__.d.ts +2 -1
  24. package/out/concepts/BindDirective__.js +2 -2
  25. package/out/concepts/BindDirective__.js.map +1 -1
  26. package/out/concepts/BindEvent__.d.ts +2 -1
  27. package/out/concepts/BindEvent__.js +4 -3
  28. package/out/concepts/BindEvent__.js.map +1 -1
  29. package/out/concepts/BooleanLiteral__.d.ts +2 -1
  30. package/out/concepts/BooleanLiteral__.js +1 -1
  31. package/out/concepts/BooleanLiteral__.js.map +1 -1
  32. package/out/concepts/CallFunction__.d.ts +57 -1
  33. package/out/concepts/CallFunction__.js +119 -11
  34. package/out/concepts/CallFunction__.js.map +1 -1
  35. package/out/concepts/CallInterface__.d.ts +2 -1
  36. package/out/concepts/CallInterface__.js +2 -2
  37. package/out/concepts/CallInterface__.js.map +1 -1
  38. package/out/concepts/CallLogic__.d.ts +57 -1
  39. package/out/concepts/CallLogic__.js +117 -10
  40. package/out/concepts/CallLogic__.js.map +1 -1
  41. package/out/concepts/CallQueryComponent__.js +1 -1
  42. package/out/concepts/CallQueryComponent__.js.map +1 -1
  43. package/out/concepts/Comment__.js.map +1 -1
  44. package/out/concepts/CompletionProperty__.js.map +1 -1
  45. package/out/concepts/ConfigGroup__.d.ts +120 -0
  46. package/out/concepts/ConfigGroup__.js +214 -0
  47. package/out/concepts/ConfigGroup__.js.map +1 -0
  48. package/out/concepts/ConfigPropertyValue__.d.ts +43 -0
  49. package/out/concepts/ConfigPropertyValue__.js +103 -0
  50. package/out/concepts/ConfigPropertyValue__.js.map +1 -0
  51. package/out/concepts/ConfigProperty__.d.ts +128 -0
  52. package/out/concepts/ConfigProperty__.js +236 -0
  53. package/out/concepts/ConfigProperty__.js.map +1 -0
  54. package/out/concepts/Configuration__.d.ts +120 -0
  55. package/out/concepts/Configuration__.js +210 -0
  56. package/out/concepts/Configuration__.js.map +1 -0
  57. package/out/concepts/Constant__.d.ts +2 -1
  58. package/out/concepts/Constant__.js +1 -1
  59. package/out/concepts/Constant__.js.map +1 -1
  60. package/out/concepts/DataElement__.js.map +1 -1
  61. package/out/concepts/Destination__.d.ts +2 -1
  62. package/out/concepts/Destination__.js +4 -3
  63. package/out/concepts/Destination__.js.map +1 -1
  64. package/out/concepts/End__.js.map +1 -1
  65. package/out/concepts/EntityIndex__.d.ts +8 -0
  66. package/out/concepts/EntityIndex__.js +18 -0
  67. package/out/concepts/EntityIndex__.js.map +1 -1
  68. package/out/concepts/EntityProperty__.d.ts +5 -5
  69. package/out/concepts/EntityProperty__.js +10 -9
  70. package/out/concepts/EntityProperty__.js.map +1 -1
  71. package/out/concepts/Entity__.d.ts +30 -26
  72. package/out/concepts/Entity__.js +44 -36
  73. package/out/concepts/Entity__.js.map +1 -1
  74. package/out/concepts/EnumItem__.js.map +1 -1
  75. package/out/concepts/Enum__.d.ts +8 -8
  76. package/out/concepts/Enum__.js +10 -4
  77. package/out/concepts/Enum__.js.map +1 -1
  78. package/out/concepts/Event__.js +1 -1
  79. package/out/concepts/Event__.js.map +1 -1
  80. package/out/concepts/ForEachStatement__.d.ts +35 -33
  81. package/out/concepts/ForEachStatement__.js +103 -36
  82. package/out/concepts/ForEachStatement__.js.map +1 -1
  83. package/out/concepts/Function__.js +1 -1
  84. package/out/concepts/Function__.js.map +1 -1
  85. package/out/concepts/Identifier__.d.ts +2 -1
  86. package/out/concepts/Identifier__.js +15 -1
  87. package/out/concepts/Identifier__.js.map +1 -1
  88. package/out/concepts/IfStatement__.js.map +1 -1
  89. package/out/concepts/InterfaceParam__.js +1 -1
  90. package/out/concepts/InterfaceParam__.js.map +1 -1
  91. package/out/concepts/Interface__.d.ts +5 -1
  92. package/out/concepts/Interface__.js +19 -5
  93. package/out/concepts/Interface__.js.map +1 -1
  94. package/out/concepts/JSBlock__.js.map +1 -1
  95. package/out/concepts/LogicItem__.d.ts +2 -1
  96. package/out/concepts/LogicItem__.js +2 -2
  97. package/out/concepts/LogicItem__.js.map +1 -1
  98. package/out/concepts/Logic__.js +9 -7
  99. package/out/concepts/Logic__.js.map +1 -1
  100. package/out/concepts/MemberExpression__.d.ts +2 -5
  101. package/out/concepts/MemberExpression__.js +12 -18
  102. package/out/concepts/MemberExpression__.js.map +1 -1
  103. package/out/concepts/Module__.d.ts +121 -126
  104. package/out/concepts/Module__.js +10 -17
  105. package/out/concepts/Module__.js.map +1 -1
  106. package/out/concepts/Namespace__.js +12 -12
  107. package/out/concepts/Namespace__.js.map +1 -1
  108. package/out/concepts/NullLiteral__.d.ts +2 -1
  109. package/out/concepts/NullLiteral__.js +1 -1
  110. package/out/concepts/NullLiteral__.js.map +1 -1
  111. package/out/concepts/NumericLiteral__.d.ts +2 -1
  112. package/out/concepts/NumericLiteral__.js +1 -1
  113. package/out/concepts/NumericLiteral__.js.map +1 -1
  114. package/out/concepts/Param__.d.ts +1 -1
  115. package/out/concepts/Param__.js +2 -2
  116. package/out/concepts/Param__.js.map +1 -1
  117. package/out/concepts/Point__.js.map +1 -1
  118. package/out/concepts/ProcessComponent__.js +2 -2
  119. package/out/concepts/ProcessComponent__.js.map +1 -1
  120. package/out/concepts/ProcessElement__.d.ts +82 -81
  121. package/out/concepts/ProcessElement__.js +19 -6
  122. package/out/concepts/ProcessElement__.js.map +1 -1
  123. package/out/concepts/ProcessOutcome__.js.map +1 -1
  124. package/out/concepts/Process__.d.ts +1 -0
  125. package/out/concepts/Process__.js +10 -4
  126. package/out/concepts/Process__.js.map +1 -1
  127. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  128. package/out/concepts/QueryFieldExpression__.js +1 -1
  129. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  130. package/out/concepts/QueryFromExpression__.js.map +1 -1
  131. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  132. package/out/concepts/QueryJoinExpression__.js +1 -1
  133. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  134. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  135. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  136. package/out/concepts/QuerySelectExpression__.js +1 -1
  137. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  138. package/out/concepts/Rect__.js.map +1 -1
  139. package/out/concepts/Return__.d.ts +1 -1
  140. package/out/concepts/Return__.js +2 -2
  141. package/out/concepts/Return__.js.map +1 -1
  142. package/out/concepts/Role__.d.ts +5 -0
  143. package/out/concepts/Role__.js +19 -2
  144. package/out/concepts/Role__.js.map +1 -1
  145. package/out/concepts/Slot__.js.map +1 -1
  146. package/out/concepts/SqlQueryComponent__.d.ts +2 -0
  147. package/out/concepts/SqlQueryComponent__.js +16 -0
  148. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  149. package/out/concepts/Start__.js.map +1 -1
  150. package/out/concepts/StringLiteral__.d.ts +2 -1
  151. package/out/concepts/StringLiteral__.js +1 -1
  152. package/out/concepts/StringLiteral__.js.map +1 -1
  153. package/out/concepts/StructureProperty__.d.ts +1 -1
  154. package/out/concepts/StructureProperty__.js +1 -1
  155. package/out/concepts/StructureProperty__.js.map +1 -1
  156. package/out/concepts/Structure__.d.ts +1 -1
  157. package/out/concepts/Structure__.js +4 -4
  158. package/out/concepts/Structure__.js.map +1 -1
  159. package/out/concepts/SwitchCase__.js.map +1 -1
  160. package/out/concepts/SwitchStatement__.js.map +1 -1
  161. package/out/concepts/Theme__.js.map +1 -1
  162. package/out/concepts/Transactional__.js.map +1 -1
  163. package/out/concepts/TypeAnnotation__.js +3 -0
  164. package/out/concepts/TypeAnnotation__.js.map +1 -1
  165. package/out/concepts/TypeParam__.js.map +1 -1
  166. package/out/concepts/UnaryExpression__.d.ts +2 -1
  167. package/out/concepts/UnaryExpression__.js +3 -3
  168. package/out/concepts/UnaryExpression__.js.map +1 -1
  169. package/out/concepts/Unparsed__.d.ts +2 -1
  170. package/out/concepts/Unparsed__.js +1 -1
  171. package/out/concepts/Unparsed__.js.map +1 -1
  172. package/out/concepts/UseComponent__.js.map +1 -1
  173. package/out/concepts/ValidationRule__.d.ts +2 -1
  174. package/out/concepts/ValidationRule__.js +2 -2
  175. package/out/concepts/ValidationRule__.js.map +1 -1
  176. package/out/concepts/Variable__.d.ts +6 -5
  177. package/out/concepts/Variable__.js +3 -3
  178. package/out/concepts/Variable__.js.map +1 -1
  179. package/out/concepts/ViewComponent__.js +5 -5
  180. package/out/concepts/ViewComponent__.js.map +1 -1
  181. package/out/concepts/ViewElement__.d.ts +5 -4
  182. package/out/concepts/ViewElement__.js +109 -65
  183. package/out/concepts/ViewElement__.js.map +1 -1
  184. package/out/concepts/View__.d.ts +97 -90
  185. package/out/concepts/View__.js +153 -118
  186. package/out/concepts/View__.js.map +1 -1
  187. package/out/concepts/WhileStatement__.js.map +1 -1
  188. package/out/concepts/basics/stdlib/index.js +2 -2
  189. package/out/concepts/basics/stdlib/index.js.map +1 -1
  190. package/out/concepts/basics/stdlib/nasl.ui.js +3 -137
  191. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  192. package/out/concepts/basics/stdlib/nasl.util.js +21 -5
  193. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  194. package/out/concepts/basics/stdlib/nasl.validation.d.ts +3 -0
  195. package/out/concepts/basics/stdlib/nasl.validation.js +527 -0
  196. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -0
  197. package/out/concepts/index__.d.ts +4 -0
  198. package/out/concepts/index__.js +4 -0
  199. package/out/concepts/index__.js.map +1 -1
  200. package/out/data/Module.d.ts +34 -0
  201. package/out/data/Module.js +53 -0
  202. package/out/data/Module.js.map +1 -0
  203. package/out/generator/compileComponent.d.ts +1 -1
  204. package/out/generator/genBundleFiles.d.ts +0 -1
  205. package/out/generator/genBundleFiles.js +1 -1
  206. package/out/generator/genBundleFiles.js.map +1 -1
  207. package/out/generator/genMetaData.d.ts +35 -0
  208. package/out/generator/genMetaData.js +78 -0
  209. package/out/generator/genMetaData.js.map +1 -0
  210. package/out/generator/index.d.ts +1 -0
  211. package/out/generator/index.js +1 -0
  212. package/out/generator/index.js.map +1 -1
  213. package/out/index.d.ts +2 -2
  214. package/out/index.js +3 -1
  215. package/out/index.js.map +1 -1
  216. package/out/server/createUiTs.d.ts +7 -0
  217. package/out/server/createUiTs.js +157 -0
  218. package/out/server/createUiTs.js.map +1 -0
  219. package/out/server/entity2LogicNamespace.d.ts +9 -1
  220. package/out/server/entity2LogicNamespace.js +11 -1
  221. package/out/server/entity2LogicNamespace.js.map +1 -1
  222. package/out/server/getExtensionModules.d.ts +3 -0
  223. package/out/server/getExtensionModules.js +18 -0
  224. package/out/server/getExtensionModules.js.map +1 -0
  225. package/out/server/getLogics.js +18 -15
  226. package/out/server/getLogics.js.map +1 -1
  227. package/out/server/getMemberIdentifier.d.ts +3 -2
  228. package/out/server/getMemberIdentifier.js +47 -15
  229. package/out/server/getMemberIdentifier.js.map +1 -1
  230. package/out/server/getProcesses.d.ts +4 -1
  231. package/out/server/getProcesses.js +16 -7
  232. package/out/server/getProcesses.js.map +1 -1
  233. package/out/server/getValidates.js +1 -1
  234. package/out/server/getValidates.js.map +1 -1
  235. package/out/server/index.js +1 -0
  236. package/out/server/index.js.map +1 -1
  237. package/out/server/naslServer.d.ts +23 -5
  238. package/out/server/naslServer.js +199 -25
  239. package/out/server/naslServer.js.map +1 -1
  240. package/out/server/process2LogicNamespace.d.ts +15 -1
  241. package/out/server/process2LogicNamespace.js +30 -3
  242. package/out/server/process2LogicNamespace.js.map +1 -1
  243. package/out/server/translator.js +28 -0
  244. package/out/server/translator.js.map +1 -1
  245. package/out/service/storage/init.d.ts +5 -0
  246. package/out/service/storage/init.js +60 -52
  247. package/out/service/storage/init.js.map +1 -1
  248. package/out/templator/genCallComponentLogic.js +2 -2
  249. package/out/templator/genCallComponentLogic.js.map +1 -1
  250. package/out/templator/genCreateBlock.js +6 -8
  251. package/out/templator/genCreateBlock.js.map +1 -1
  252. package/out/templator/genCurdEditMultipleKeyBlock.js +3 -3
  253. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  254. package/out/templator/genCurdMultipleKeyBlock.js +4 -4
  255. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  256. package/out/templator/genEditTableBlock.js +3 -3
  257. package/out/templator/genEditTableBlock.js.map +1 -1
  258. package/out/templator/genGetBlock.js +1 -1
  259. package/out/templator/genGetBlock.js.map +1 -1
  260. package/out/templator/genListViewBlock.js +2 -2
  261. package/out/templator/genListViewBlock.js.map +1 -1
  262. package/out/templator/genSelectBlock.js +1 -1
  263. package/out/templator/genSelectBlock.js.map +1 -1
  264. package/out/templator/genUpdateBlock.js +8 -12
  265. package/out/templator/genUpdateBlock.js.map +1 -1
  266. package/out/templator/utils.d.ts +20 -20
  267. package/out/templator/utils.js +22 -22
  268. package/out/templator/utils.js.map +1 -1
  269. package/package.json +2 -1
  270. package/src/automate/engine/index.js +37 -3
  271. package/src/automate/engine/utils.js +68 -64
  272. package/src/common/BaseNode.ts +24 -17
  273. package/src/concepts/App__.ts +93 -17
  274. package/src/concepts/Argument__.ts +4 -2
  275. package/src/concepts/Assignment__.ts +5 -7
  276. package/src/concepts/Attribute__.ts +1 -0
  277. package/src/concepts/BinaryExpression__.ts +7 -5
  278. package/src/concepts/BindAttribute__.ts +9 -4
  279. package/src/concepts/BindDirective__.ts +4 -2
  280. package/src/concepts/BindEvent__.ts +6 -4
  281. package/src/concepts/BooleanLiteral__.ts +3 -1
  282. package/src/concepts/CallFunction__.ts +195 -11
  283. package/src/concepts/CallInterface__.ts +4 -2
  284. package/src/concepts/CallLogic__.ts +211 -12
  285. package/src/concepts/CallQueryComponent__.ts +2 -1
  286. package/src/concepts/Comment__.ts +1 -0
  287. package/src/concepts/CompletionProperty__.ts +1 -0
  288. package/src/concepts/ConfigGroup__.ts +290 -0
  289. package/src/concepts/ConfigPropertyValue__.ts +112 -0
  290. package/src/concepts/ConfigProperty__.ts +306 -0
  291. package/src/concepts/Configuration__.ts +286 -0
  292. package/src/concepts/Constant__.ts +3 -1
  293. package/src/concepts/DataElement__.ts +1 -0
  294. package/src/concepts/Destination__.ts +7 -5
  295. package/src/concepts/End__.ts +1 -0
  296. package/src/concepts/EntityIndex__.ts +19 -0
  297. package/src/concepts/EntityProperty__.ts +9 -8
  298. package/src/concepts/Entity__.ts +66 -59
  299. package/src/concepts/EnumItem__.ts +1 -0
  300. package/src/concepts/Enum__.ts +32 -12
  301. package/src/concepts/Event__.ts +2 -1
  302. package/src/concepts/ForEachStatement__.ts +115 -69
  303. package/src/concepts/Function__.ts +2 -1
  304. package/src/concepts/Identifier__.ts +18 -1
  305. package/src/concepts/IfStatement__.ts +1 -0
  306. package/src/concepts/InterfaceParam__.ts +2 -1
  307. package/src/concepts/Interface__.ts +21 -5
  308. package/src/concepts/JSBlock__.ts +1 -0
  309. package/src/concepts/LogicItem__.ts +9 -40
  310. package/src/concepts/Logic__.ts +48 -9
  311. package/src/concepts/MemberExpression__.ts +14 -17
  312. package/src/concepts/Module__.ts +158 -139
  313. package/src/concepts/Namespace__.ts +13 -12
  314. package/src/concepts/NullLiteral__.ts +3 -1
  315. package/src/concepts/NumericLiteral__.ts +3 -1
  316. package/src/concepts/Param__.ts +3 -2
  317. package/src/concepts/Point__.ts +1 -0
  318. package/src/concepts/ProcessComponent__.ts +3 -2
  319. package/src/concepts/ProcessElement__.ts +102 -107
  320. package/src/concepts/ProcessOutcome__.ts +1 -0
  321. package/src/concepts/Process__.ts +12 -4
  322. package/src/concepts/QueryAggregateExpression__.ts +1 -0
  323. package/src/concepts/QueryFieldExpression__.ts +2 -1
  324. package/src/concepts/QueryFromExpression__.ts +1 -0
  325. package/src/concepts/QueryGroupByExpression__.ts +1 -0
  326. package/src/concepts/QueryJoinExpression__.ts +2 -1
  327. package/src/concepts/QueryLimitExpression__.ts +1 -0
  328. package/src/concepts/QueryOrderByExpression__.ts +1 -0
  329. package/src/concepts/QuerySelectExpression__.ts +2 -1
  330. package/src/concepts/Rect__.ts +1 -0
  331. package/src/concepts/Return__.ts +3 -2
  332. package/src/concepts/Role__.ts +19 -2
  333. package/src/concepts/Slot__.ts +1 -0
  334. package/src/concepts/SqlQueryComponent__.ts +11 -1
  335. package/src/concepts/Start__.ts +1 -0
  336. package/src/concepts/StringLiteral__.ts +3 -1
  337. package/src/concepts/StructureProperty__.ts +2 -1
  338. package/src/concepts/Structure__.ts +5 -4
  339. package/src/concepts/SwitchCase__.ts +1 -0
  340. package/src/concepts/SwitchStatement__.ts +1 -0
  341. package/src/concepts/Theme__.ts +1 -0
  342. package/src/concepts/Transactional__.ts +1 -0
  343. package/src/concepts/TypeAnnotation__.ts +4 -0
  344. package/src/concepts/TypeParam__.ts +1 -0
  345. package/src/concepts/UnaryExpression__.ts +6 -3
  346. package/src/concepts/Unparsed__.ts +3 -1
  347. package/src/concepts/UseComponent__.ts +1 -0
  348. package/src/concepts/ValidationRule__.ts +5 -2
  349. package/src/concepts/Variable__.ts +12 -6
  350. package/src/concepts/ViewComponent__.ts +6 -5
  351. package/src/concepts/ViewElement__.ts +109 -80
  352. package/src/concepts/View__.ts +245 -206
  353. package/src/concepts/WhileStatement__.ts +1 -0
  354. package/src/concepts/basics/stdlib/index.ts +2 -2
  355. package/src/concepts/basics/stdlib/nasl.ui.ts +3 -137
  356. package/src/concepts/basics/stdlib/nasl.util.ts +21 -5
  357. package/src/concepts/basics/stdlib/{nasl.validate.ts → nasl.validation.ts} +28 -28
  358. package/src/concepts/index__.ts +4 -0
  359. package/src/generator/compileComponent.ts +1 -1
  360. package/src/generator/genBundleFiles.ts +1 -2
  361. package/src/generator/genMetaData.ts +111 -0
  362. package/src/generator/index.ts +1 -0
  363. package/src/index.ts +2 -2
  364. package/src/server/createUiTs.ts +153 -0
  365. package/src/server/entity2LogicNamespace.ts +17 -1
  366. package/src/server/getExtensionModules.ts +13 -0
  367. package/src/server/getLogics.ts +19 -18
  368. package/src/server/getMemberIdentifier.ts +60 -19
  369. package/src/server/getProcesses.ts +15 -8
  370. package/src/server/getValidates.ts +1 -1
  371. package/src/server/index.ts +2 -1
  372. package/src/server/naslServer.ts +204 -24
  373. package/src/server/process2LogicNamespace.ts +44 -3
  374. package/src/server/translator.ts +121 -97
  375. package/src/service/config/api.js +32 -0
  376. package/src/service/config/index.js +6 -0
  377. package/src/service/creator/index.js +2 -2
  378. package/src/service/logic/checktypeSocket.js +49 -0
  379. package/src/service/modules/api.js +20 -0
  380. package/src/service/modules/index.js +6 -0
  381. package/src/service/storage/init.ts +62 -54
  382. package/src/templator/genCallComponentLogic.ts +2 -2
  383. package/src/templator/genCreateBlock.ts +19 -25
  384. package/src/templator/genCurdEditMultipleKeyBlock.ts +3 -3
  385. package/src/templator/genCurdMultipleKeyBlock.ts +4 -4
  386. package/src/templator/genEditTableBlock.ts +3 -3
  387. package/src/templator/genGetBlock.ts +1 -1
  388. package/src/templator/genListViewBlock.ts +2 -2
  389. package/src/templator/genSelectBlock.ts +1 -1
  390. package/src/templator/genUpdateBlock.ts +19 -25
  391. package/src/templator/utils.ts +25 -153
@@ -1,6 +1,7 @@
1
1
  import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
2
  import Logic from './Logic__';
3
3
  import Param from './Param__';
4
+ import { ElementToVueOptions } from './ViewElement__';
4
5
  //================================================================================
5
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
6
7
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -9,8 +10,10 @@ import { EventPayload, Params } from '../common/EventEmitter';
9
10
  import { concept, excludedInJSON, property } from '../decorators';
10
11
 
11
12
  import * as utils from '../utils';
13
+ import { v4 as uuidv4 } from 'uuid';
12
14
  import BaseNode from '../common/BaseNode';
13
15
  import classMap from '../common/classMap';
16
+ import TypeAnnotation from './TypeAnnotation__';
14
17
  import Argument from './Argument__';
15
18
  import LogicItem from './LogicItem__';
16
19
 
@@ -49,12 +52,20 @@ export class CallLogic extends LogicItem {
49
52
  @property()
50
53
  shortcut: boolean = undefined;
51
54
 
55
+ /**
56
+ * 类型参数
57
+ */
58
+ @property('TypeAnnotation')
59
+ typeArguments?: Array<TypeAnnotation> = null;
60
+
52
61
  /**
53
62
  * 实际参数
54
63
  */
55
64
  @property('Argument')
56
65
  arguments: Array<Argument> = [];
57
66
 
67
+
68
+
58
69
  /**
59
70
  * @param source 需要合并的部分参数
60
71
  */
@@ -68,6 +79,120 @@ export class CallLogic extends LogicItem {
68
79
  return super.from(source, parentNode, parentKey) as CallLogic;
69
80
  }
70
81
 
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+ /**
90
+ * 插入类型标注
91
+ * @internal
92
+ * @param typeAnnotationOptions 类型标注参数
93
+ */
94
+ _insertTypeAnnotationAt(typeAnnotationOptions: Partial<TypeAnnotation>, index: number): TypeAnnotation;
95
+
96
+ /**
97
+ * 插入类型标注
98
+ * @internal
99
+ * @param typeAnnotation 已有的类型标注实例
100
+ */
101
+ _insertTypeAnnotationAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation;
102
+
103
+ _insertTypeAnnotationAt(options: Partial<TypeAnnotation> | TypeAnnotation, index: number) {
104
+ const typeAnnotationOptions: any = {};
105
+ const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
106
+ let typeAnnotation: TypeAnnotation;
107
+ if (options instanceof TypeAnnotation) {
108
+ options.delete(); // 同一实例不支持多处存在
109
+ typeAnnotation = options;
110
+ Object.assign(typeAnnotation, relationOptions);
111
+ } else {
112
+ typeAnnotation = TypeAnnotation.from({
113
+ ...typeAnnotationOptions,
114
+ ...options,
115
+ }, this, 'typeArguments');
116
+ }
117
+ this.typeArguments.splice(index, 0, typeAnnotation);
118
+ return typeAnnotation;
119
+ }
120
+
121
+
122
+
123
+ /**
124
+ * 插入类型标注
125
+ * @param typeAnnotationOptions 类型标注参数
126
+ */
127
+ insertTypeAnnotationAt(typeAnnotationOptions: Partial<TypeAnnotation>, index: number): TypeAnnotation;
128
+
129
+ /**
130
+ * 插入类型标注
131
+ * @param typeAnnotation 已有的类型标注实例
132
+ */
133
+ insertTypeAnnotationAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation;
134
+
135
+ insertTypeAnnotationAt(options: Partial<TypeAnnotation> | TypeAnnotation, index: number) {
136
+ const node = this._insertTypeAnnotationAt(options as any, index);
137
+ node.create({
138
+ index,
139
+ parentNode: this,
140
+ parentKey: 'typeArguments',
141
+ });
142
+ return node;
143
+ }
144
+
145
+
146
+
147
+ /**
148
+ * 添加类型标注
149
+ * @internal
150
+ * @param typeAnnotationOptions 类型标注参数
151
+ */
152
+ _addTypeAnnotation(typeAnnotationOptions: Partial<TypeAnnotation>): TypeAnnotation;
153
+
154
+ /**
155
+ * 添加类型标注
156
+ * @internal
157
+ * @param typeAnnotation 已有的类型标注实例
158
+ */
159
+ _addTypeAnnotation(typeAnnotation: TypeAnnotation): TypeAnnotation;
160
+
161
+ _addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
162
+ const index = this.typeArguments.length;
163
+ return this._insertTypeAnnotationAt(options as any, index);
164
+ }
165
+
166
+
167
+
168
+ /**
169
+ * 添加类型标注
170
+ * @param typeAnnotationOptions 类型标注参数
171
+ */
172
+ addTypeAnnotation(typeAnnotationOptions: Partial<TypeAnnotation>): TypeAnnotation;
173
+
174
+ /**
175
+ * 添加类型标注
176
+ * @param typeAnnotation 已有的类型标注实例
177
+ */
178
+ addTypeAnnotation(typeAnnotation: TypeAnnotation): TypeAnnotation;
179
+
180
+ addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
181
+ const node = this._addTypeAnnotation(options as any);
182
+ const index = this.typeArguments.length;
183
+ node.create({
184
+ index,
185
+ parentNode: this,
186
+ parentKey: 'typeArguments',
187
+ });
188
+ return node;
189
+ }
190
+
191
+
192
+
193
+
194
+
195
+
71
196
  /**
72
197
  * 插入实际参数
73
198
  * @internal
@@ -100,6 +225,8 @@ export class CallLogic extends LogicItem {
100
225
  return argument;
101
226
  }
102
227
 
228
+
229
+
103
230
  /**
104
231
  * 插入实际参数
105
232
  * @param argumentOptions 实际参数参数
@@ -122,6 +249,8 @@ export class CallLogic extends LogicItem {
122
249
  return node;
123
250
  }
124
251
 
252
+
253
+
125
254
  /**
126
255
  * 添加实际参数
127
256
  * @internal
@@ -141,6 +270,8 @@ export class CallLogic extends LogicItem {
141
270
  return this._insertArgumentAt(options as any, index);
142
271
  }
143
272
 
273
+
274
+
144
275
  /**
145
276
  * 添加实际参数
146
277
  * @param argumentOptions 实际参数参数
@@ -164,6 +295,45 @@ export class CallLogic extends LogicItem {
164
295
  return node;
165
296
  }
166
297
 
298
+
299
+
300
+
301
+ /**
302
+ * 删除类型标注
303
+ * @param typeAnnotation 已有的类型标注实例
304
+ */
305
+ removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
306
+
307
+ removeTypeAnnotation(options: TypeAnnotation) {
308
+ let typeAnnotation: TypeAnnotation = options;
309
+ return typeAnnotation.delete();
310
+ }
311
+
312
+ __removeTypeAnnotation(typeAnnotation: TypeAnnotation) {
313
+ const parentKey = typeAnnotation.parentKey;
314
+ const params: Params = {
315
+ parentNode: this,
316
+ parentKey,
317
+ index: -1,
318
+ object: null,
319
+ oldObject: typeAnnotation,
320
+ };
321
+ if (parentKey) {
322
+ params.parentKey = parentKey;
323
+ if (Array.isArray((this as any)[parentKey])) {
324
+ const index = (this as any)[parentKey].indexOf(typeAnnotation);
325
+ ~index && (this as any)[parentKey].splice(index, 1);
326
+ params.index = index;
327
+ } else if ((this as any)[parentKey] === typeAnnotation) {
328
+ params.index = 0;
329
+ (this as any)[parentKey] = undefined;
330
+ }
331
+ }
332
+ return params;
333
+ }
334
+
335
+
336
+
167
337
  /**
168
338
  * 删除实际参数
169
339
  * @param argument 已有的实际参数实例
@@ -171,7 +341,7 @@ export class CallLogic extends LogicItem {
171
341
  removeArgument(argument: Argument): void;
172
342
 
173
343
  removeArgument(options: Argument) {
174
- const argument: Argument = options;
344
+ let argument: Argument = options;
175
345
  return argument.delete();
176
346
  }
177
347
 
@@ -214,15 +384,16 @@ export class CallLogic extends LogicItem {
214
384
  }
215
385
  get calleeKey(): string {
216
386
  const tsCalleeNamespace = this.tsCalleeNamespace;
387
+ const calleeName = this.calleeName;
217
388
  if (!tsCalleeNamespace) {
218
- return `logics.${this.calleeName}`;
389
+ return calleeName ? `logics.${calleeName}` : '__IDENTIFIER__';
219
390
  }
220
391
  // elements单独处理相对路径,和后缀的问题
221
392
  if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
222
393
  const methodName = tsCalleeNamespace.substring(0, tsCalleeNamespace.length - '.logics'.length);
223
- return '__' + methodName + `.${this.calleeName}`;
394
+ return '__' + methodName + `.${calleeName}`;
224
395
  }
225
- return `${tsCalleeNamespace}.${this.calleeName}`;
396
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
226
397
  }
227
398
 
228
399
  /**
@@ -265,6 +436,12 @@ export class CallLogic extends LogicItem {
265
436
  keyword: param.name,
266
437
  });
267
438
  });
439
+ if (logic.typeParams) {
440
+ this.typeArguments = [];
441
+ logic.typeParams.forEach(() => {
442
+ this._addTypeAnnotation({});
443
+ });
444
+ }
268
445
  }
269
446
 
270
447
  setCallee(logic: Logic) {
@@ -278,10 +455,20 @@ export class CallLogic extends LogicItem {
278
455
  Object.assign(argument, relationOptions);
279
456
  return argument;
280
457
  });
458
+ let typeArguments = null;
459
+ if (logic.typeParams) {
460
+ typeArguments = logic.typeParams.map(() => {
461
+ const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
462
+ const typeArgu = new TypeAnnotation();
463
+ Object.assign(typeArgu, relationOptions);
464
+ return typeArgu;
465
+ });
466
+ }
281
467
  this.update({
282
468
  calleeNamespace,
283
469
  calleeName,
284
470
  arguments: params,
471
+ typeArguments,
285
472
  });
286
473
  }
287
474
 
@@ -330,11 +517,11 @@ export class CallLogic extends LogicItem {
330
517
  });
331
518
  }
332
519
 
333
- toVue(): string {
520
+ toVue(options?: ElementToVueOptions): string {
334
521
  let code = this.calleeName;
335
522
  code += '(';
336
523
  this.arguments.forEach((arg, index) => {
337
- code += arg.toVue();
524
+ code += arg.toVue(options);
338
525
  if (index !== this.arguments.length - 1)
339
526
  code += ', ';
340
527
  });
@@ -357,7 +544,11 @@ export class CallLogic extends LogicItem {
357
544
 
358
545
  toJS(state?: TranslatorState): string {
359
546
  let code = 'await ';
547
+ // 页面逻辑
360
548
  let isViewLogic = true;
549
+ // 组件逻辑
550
+ let isComponentLogic = false;
551
+ let componentName = '';
361
552
  const calleeNamespace = this.calleeNamespace;
362
553
  // calleeNamespace不存在,一定是页面逻辑
363
554
  if (calleeNamespace) {
@@ -368,6 +559,9 @@ export class CallLogic extends LogicItem {
368
559
  if (!keywordViews) {
369
560
  isViewLogic = false;
370
561
  }
562
+ } else if (start === 'elements' && namespaceArr.length === 2 && namespaceArr[1] === 'logics') {
563
+ isComponentLogic = true;
564
+ componentName = namespaceArr[0];
371
565
  }
372
566
  }
373
567
  // 全局逻辑
@@ -383,10 +577,13 @@ export class CallLogic extends LogicItem {
383
577
  const namespaceArr = calleeNamespace.split('.');
384
578
  // 去掉app
385
579
  namespaceArr.shift();
386
- const keywordEntities = namespaceArr.map((namespaceItem, index) => ({
387
- key: namespaceItem,
388
- index,
389
- })).filter((namespaceItem, index) => index % 2 === 0).find((namespaceItem) => namespaceItem.key === 'entities');
580
+ const keywordEntities = namespaceArr
581
+ .map((namespaceItem, index) => ({
582
+ key: namespaceItem,
583
+ index,
584
+ }))
585
+ .filter((namespaceItem, index) => index % 2 === 0)
586
+ .find((namespaceItem) => namespaceItem.key === 'entities');
390
587
  const entityName = namespaceArr[keywordEntities?.index + 1];
391
588
 
392
589
  if (entityName) {
@@ -429,7 +626,9 @@ export class CallLogic extends LogicItem {
429
626
  }
430
627
  code += '\n})';
431
628
  } else {
432
- if (calleeNamespace === 'nasl.ui.logics' || calleeNamespace === 'nasl.util.logics') {
629
+ if (isComponentLogic) {
630
+ code += `this.$refs.${componentName}.${this.calleeName}`;
631
+ } else if (calleeNamespace === 'nasl.ui' || calleeNamespace === 'nasl.util') {
433
632
  switch (this.calleeName) {
434
633
  case 'showMessage':
435
634
  code += `this.$toast.show`;
@@ -478,7 +677,7 @@ export class CallLogic extends LogicItem {
478
677
  //================================================================================
479
678
  }
480
679
 
481
- classMap.CallLogic = CallLogic;
680
+ classMap['CallLogic'] = CallLogic;
482
681
  export default CallLogic;
483
682
  //================================================================================
484
683
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
@@ -12,6 +12,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
12
12
  import { concept, excludedInJSON, property } from '../decorators';
13
13
 
14
14
  import * as utils from '../utils';
15
+ import { v4 as uuidv4 } from 'uuid';
15
16
  import BaseNode from '../common/BaseNode';
16
17
  import classMap from '../common/classMap';
17
18
  import TypeAnnotation from './TypeAnnotation__';
@@ -198,7 +199,7 @@ export class CallQueryComponent extends LogicItem {
198
199
 
199
200
  getQueryGroupByExpressionExistingNames(excludedList: Array<QueryGroupByExpression> = []) {
200
201
  const excludedSet = new Set(excludedList);
201
- return this.groupBy.filter((item) => !excludedSet.has(item)).map((item) => item.name);
202
+ return (this.groupBy || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
202
203
  }
203
204
  getQueryGroupByExpressionUniqueName(name = 'queryGroupByExpression1') {
204
205
  return utils.unique(name, this.getQueryGroupByExpressionExistingNames());
@@ -7,6 +7,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
7
7
  import { concept, excludedInJSON, property } from '../decorators';
8
8
 
9
9
  import * as utils from '../utils';
10
+ import { v4 as uuidv4 } from 'uuid';
10
11
  import BaseNode from '../common/BaseNode';
11
12
  import classMap from '../common/classMap';
12
13
  import LogicItem from './LogicItem__';
@@ -7,6 +7,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
7
7
  import { concept, excludedInJSON, property } from '../decorators';
8
8
 
9
9
  import * as utils from '../utils';
10
+ import { v4 as uuidv4 } from 'uuid';
10
11
  import BaseNode from '../common/BaseNode';
11
12
  import classMap from '../common/classMap';
12
13
  import TypeAnnotation from './TypeAnnotation__';
@@ -0,0 +1,290 @@
1
+ //================================================================================
2
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
3
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
4
+ //================================================================================
5
+ import { EventPayload, Params } from '../common/EventEmitter';
6
+ import { concept, excludedInJSON, property } from '../decorators';
7
+
8
+ import * as utils from '../utils';
9
+ import { v4 as uuidv4 } from 'uuid';
10
+ import BaseNode from '../common/BaseNode';
11
+ import classMap from '../common/classMap';
12
+ import ConfigProperty from './ConfigProperty__';
13
+ import App from './App__';
14
+
15
+ /**
16
+ * 配置组
17
+ */
18
+ @concept
19
+ export class ConfigGroup extends BaseNode {
20
+ /**
21
+ * 产品概念
22
+ */
23
+ @property()
24
+ concept: 'ConfigGroup' = 'ConfigGroup';
25
+
26
+ /**
27
+ * 配置组名称
28
+ */
29
+ @property()
30
+ name: string = undefined;
31
+
32
+ /**
33
+ * 配置属性列表
34
+ */
35
+ @property('ConfigProperty')
36
+ properties: Array<ConfigProperty> = [];
37
+
38
+ /**
39
+ * 祖先 App
40
+ */
41
+ get app() {
42
+ return this.getAncestor('App') as App;
43
+ }
44
+
45
+ /**
46
+ * @param source 需要合并的部分参数
47
+ */
48
+ constructor(source?: Partial<ConfigGroup>) {
49
+ source = Object.assign({}, ConfigGroup.getDefaultOptions(), source);
50
+ super(source);
51
+ super.subConstructor(source);
52
+ }
53
+
54
+ static from(source: any, parentNode?: any, parentKey?: string): ConfigGroup {
55
+ return super.from(source, parentNode, parentKey) as ConfigGroup;
56
+ }
57
+
58
+ /**
59
+ * 从父级删除该节点
60
+ * @internal
61
+ */
62
+ _delete() {
63
+ let params: Params = null;
64
+ if (this.parentNode) {
65
+ params = (this.parentNode as any)?.__removeConfigGroup?.(this);
66
+ }
67
+ return params;
68
+ }
69
+ /**
70
+ * 设置配置组名称
71
+ */
72
+ setName(name: string) {
73
+ const object = {
74
+ name,
75
+ };
76
+ this.update({
77
+ ...object,
78
+ field: 'name',
79
+ });
80
+ }
81
+
82
+ getConfigPropertyExistingNames(excludedList: Array<ConfigProperty> = []) {
83
+ const excludedSet = new Set(excludedList);
84
+ return (this.properties || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
85
+ }
86
+ getConfigPropertyUniqueName(name = 'configProperty1') {
87
+ return utils.unique(name, this.getConfigPropertyExistingNames());
88
+ }
89
+
90
+ /**
91
+ * 插入配置属性
92
+ * @internal
93
+ * @param name 配置属性名称,如果不填会自动生成一个唯一名称
94
+ */
95
+ _insertConfigPropertyAt(name: string, index: number): ConfigProperty;
96
+
97
+ /**
98
+ * 插入配置属性
99
+ * @internal
100
+ * @param configPropertyOptions 配置属性参数
101
+ */
102
+ _insertConfigPropertyAt(configPropertyOptions: Partial<ConfigProperty>, index: number): ConfigProperty;
103
+
104
+ /**
105
+ * 插入配置属性
106
+ * @internal
107
+ * @param configProperty 已有的配置属性实例
108
+ */
109
+ _insertConfigPropertyAt(configProperty: ConfigProperty, index: number): ConfigProperty;
110
+
111
+ _insertConfigPropertyAt(options: string | Partial<ConfigProperty> | ConfigProperty, index: number) {
112
+ const configPropertyOptions: any = {};
113
+ const relationOptions = { parentNode: this, parentKey: 'properties' };
114
+ let configProperty: ConfigProperty;
115
+ if (!options) {
116
+ configProperty = ConfigProperty.from({
117
+ ...configPropertyOptions,
118
+ name: this.getConfigPropertyUniqueName(),
119
+ }, this, 'properties');
120
+ } else if (typeof options === 'string') {
121
+ configProperty = ConfigProperty.from({
122
+ ...configPropertyOptions,
123
+ name: options,
124
+ }, this, 'properties');
125
+ } else if (options instanceof ConfigProperty) {
126
+ options.delete(); // 同一实例不支持多处存在
127
+ configProperty = options;
128
+ Object.assign(configProperty, relationOptions);
129
+ } else {
130
+ configProperty = ConfigProperty.from({
131
+ ...configPropertyOptions,
132
+ ...options,
133
+ }, this, 'properties');
134
+ }
135
+ this.properties.splice(index, 0, configProperty);
136
+ return configProperty;
137
+ }
138
+
139
+ /**
140
+ * 插入配置属性
141
+ * @param name 配置属性名称,如果不填会自动生成一个唯一名称
142
+ */
143
+ insertConfigPropertyAt(name: string, index: number): ConfigProperty;
144
+
145
+ /**
146
+ * 插入配置属性
147
+ * @param configPropertyOptions 配置属性参数
148
+ */
149
+ insertConfigPropertyAt(configPropertyOptions: Partial<ConfigProperty>, index: number): ConfigProperty;
150
+
151
+ /**
152
+ * 插入配置属性
153
+ * @param configProperty 已有的配置属性实例
154
+ */
155
+ insertConfigPropertyAt(configProperty: ConfigProperty, index: number): ConfigProperty;
156
+
157
+ insertConfigPropertyAt(options: string | Partial<ConfigProperty> | ConfigProperty, index: number) {
158
+ const node = this._insertConfigPropertyAt(options as any, index);
159
+ node.create({
160
+ index,
161
+ parentNode: this,
162
+ parentKey: 'properties',
163
+ });
164
+ return node;
165
+ }
166
+
167
+ /**
168
+ * 添加配置属性
169
+ * @internal
170
+ * @param name 配置属性名称,如果不填会自动生成一个唯一名称
171
+ */
172
+ _addConfigProperty(name?: string): ConfigProperty;
173
+
174
+ /**
175
+ * 添加配置属性
176
+ * @internal
177
+ * @param configPropertyOptions 配置属性参数
178
+ */
179
+ _addConfigProperty(configPropertyOptions: Partial<ConfigProperty>): ConfigProperty;
180
+
181
+ /**
182
+ * 添加配置属性
183
+ * @internal
184
+ * @param configProperty 已有的配置属性实例
185
+ */
186
+ _addConfigProperty(configProperty: ConfigProperty): ConfigProperty;
187
+
188
+ _addConfigProperty(options?: string | Partial<ConfigProperty> | ConfigProperty) {
189
+ const index = this.properties.length;
190
+ return this._insertConfigPropertyAt(options as any, index);
191
+ }
192
+
193
+ /**
194
+ * 添加配置属性
195
+ * @internal
196
+ * @param name 配置属性名称,如果不填会自动生成一个唯一名称
197
+ */
198
+ addConfigProperty(name?: string): ConfigProperty;
199
+
200
+ /**
201
+ * 添加配置属性
202
+ * @param configPropertyOptions 配置属性参数
203
+ */
204
+ addConfigProperty(configPropertyOptions: Partial<ConfigProperty>): ConfigProperty;
205
+
206
+ /**
207
+ * 添加配置属性
208
+ * @param configProperty 已有的配置属性实例
209
+ */
210
+ addConfigProperty(configProperty: ConfigProperty): ConfigProperty;
211
+
212
+ addConfigProperty(options?: string | Partial<ConfigProperty> | ConfigProperty) {
213
+ const node = this._addConfigProperty(options as any);
214
+ const index = this.properties.length;
215
+ node.create({
216
+ index,
217
+ parentNode: this,
218
+ parentKey: 'properties',
219
+ });
220
+ return node;
221
+ }
222
+
223
+
224
+
225
+
226
+ /**
227
+ * 删除配置属性
228
+ * @param name 配置属性名称
229
+ */
230
+ removeConfigProperty(name: string): void;
231
+
232
+ /**
233
+ * 删除配置属性
234
+ * @param configProperty 已有的配置属性实例
235
+ */
236
+ removeConfigProperty(configProperty: ConfigProperty): void;
237
+
238
+ removeConfigProperty(options: string | ConfigProperty) {
239
+ let configProperty: ConfigProperty;
240
+ if (typeof options === 'string') {
241
+ configProperty = this.properties.find((item) => item.name === options);
242
+ if (!configProperty) {
243
+ throw new Error('找不到配置属性 ' + options);
244
+ }
245
+ } else {
246
+ configProperty = options;
247
+ }
248
+ return configProperty.delete();
249
+ }
250
+
251
+ __removeConfigProperty(configProperty: ConfigProperty) {
252
+ const parentKey = configProperty.parentKey;
253
+ const params: Params = {
254
+ parentNode: this,
255
+ parentKey,
256
+ index: -1,
257
+ object: null,
258
+ oldObject: configProperty,
259
+ };
260
+ if (parentKey) {
261
+ params.parentKey = parentKey;
262
+ if (Array.isArray((this as any)[parentKey])) {
263
+ const index = (this as any)[parentKey].indexOf(configProperty);
264
+ ~index && (this as any)[parentKey].splice(index, 1);
265
+ params.index = index;
266
+ } else if ((this as any)[parentKey] === configProperty) {
267
+ params.index = 0;
268
+ (this as any)[parentKey] = undefined;
269
+ }
270
+ }
271
+ return params;
272
+ }
273
+
274
+ //================================================================================
275
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
276
+ // 自动生成的代码已结束。下面可以手动编写。
277
+ //================================================================================
278
+
279
+ //================================================================================
280
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
281
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
282
+ //================================================================================
283
+ }
284
+
285
+ classMap['ConfigGroup'] = ConfigGroup;
286
+ export default ConfigGroup;
287
+ //================================================================================
288
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
289
+ // 自动生成的代码已结束。下面可以手动编写。
290
+ //================================================================================