@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
@@ -9,10 +9,11 @@ import { EventPayload, Params } from '../common/EventEmitter';
9
9
  import { concept, excludedInJSON, property } from '../decorators';
10
10
 
11
11
  import * as utils from '../utils';
12
+ import { v4 as uuidv4 } from 'uuid';
12
13
  import BaseNode from '../common/BaseNode';
13
14
  import classMap from '../common/classMap';
14
15
  import LogicItem from './LogicItem__';
15
- import Identifier from './Identifier__';
16
+ import Param from './Param__';
16
17
 
17
18
  /**
18
19
  * For 循环分支
@@ -32,25 +33,25 @@ export class ForEachStatement extends LogicItem {
32
33
  each: LogicItem = undefined;
33
34
 
34
35
  /**
35
- * 循环列表
36
+ * 循环项参数
36
37
  */
37
- @property('Identifier')
38
- item: Identifier = undefined;
38
+ @property('Param')
39
+ item: Param = undefined;
39
40
 
40
41
  /**
41
- * 循环列表
42
+ * 循环项索引
42
43
  */
43
- @property('Identifier')
44
- index: Identifier = undefined;
44
+ @property('Param')
45
+ index: Param = undefined;
45
46
 
46
47
  /**
47
- * 循环列表
48
+ * 循环开始值
48
49
  */
49
50
  @property('LogicItem')
50
51
  start: LogicItem = undefined;
51
52
 
52
53
  /**
53
- * 循环列表
54
+ * 循环结束值
54
55
  */
55
56
  @property('LogicItem')
56
57
  end: LogicItem = undefined;
@@ -93,9 +94,9 @@ export class ForEachStatement extends LogicItem {
93
94
  }
94
95
 
95
96
  /**
96
- * 设置循环列表
97
+ * 设置循环项参数
97
98
  */
98
- setItem(item: Identifier) {
99
+ setItem(item: Param) {
99
100
  item._delete();
100
101
  const relationOptions = { parentNode: this, parentKey: 'item' };
101
102
  Object.assign(item, relationOptions);
@@ -108,9 +109,9 @@ export class ForEachStatement extends LogicItem {
108
109
  }
109
110
 
110
111
  /**
111
- * 设置循环列表
112
+ * 设置循环项索引
112
113
  */
113
- setIndex(index: Identifier) {
114
+ setIndex(index: Param) {
114
115
  index._delete();
115
116
  const relationOptions = { parentNode: this, parentKey: 'index' };
116
117
  Object.assign(index, relationOptions);
@@ -123,7 +124,7 @@ export class ForEachStatement extends LogicItem {
123
124
  }
124
125
 
125
126
  /**
126
- * 设置循环列表
127
+ * 设置循环开始值
127
128
  */
128
129
  setStart(start: LogicItem) {
129
130
  start._delete();
@@ -138,7 +139,7 @@ export class ForEachStatement extends LogicItem {
138
139
  }
139
140
 
140
141
  /**
141
- * 设置循环列表
142
+ * 设置循环结束值
142
143
  */
143
144
  setEnd(end: LogicItem) {
144
145
  end._delete();
@@ -288,60 +289,6 @@ export class ForEachStatement extends LogicItem {
288
289
 
289
290
 
290
291
 
291
- /**
292
- * 删除标识符
293
- * @param name 标识符名称
294
- */
295
- removeItem(name: string): void;
296
-
297
- /**
298
- * 删除标识符
299
- * @param item 已有的标识符实例
300
- */
301
- removeItem(item: Identifier): void;
302
-
303
- removeItem(options: string | Identifier) {
304
- let item: Identifier;
305
- if (typeof options === 'string') {
306
- item = this.item;
307
- if (!item) {
308
- throw new Error('找不到标识符 ' + options);
309
- }
310
- } else {
311
- item = options;
312
- }
313
- return item.delete();
314
- }
315
-
316
-
317
-
318
- /**
319
- * 删除标识符
320
- * @param name 标识符名称
321
- */
322
- removeIndex(name: string): void;
323
-
324
- /**
325
- * 删除标识符
326
- * @param index 已有的标识符实例
327
- */
328
- removeIndex(index: Identifier): void;
329
-
330
- removeIndex(options: string | Identifier) {
331
- let index: Identifier;
332
- if (typeof options === 'string') {
333
- index = this.index;
334
- if (!index) {
335
- throw new Error('找不到标识符 ' + options);
336
- }
337
- } else {
338
- index = options;
339
- }
340
- return index.delete();
341
- }
342
-
343
-
344
-
345
292
  /**
346
293
  * 删除逻辑项
347
294
  * @param name 逻辑项名称
@@ -430,11 +377,110 @@ export class ForEachStatement extends LogicItem {
430
377
  return params;
431
378
  }
432
379
 
380
+
381
+
382
+ /**
383
+ * 删除输入参数
384
+ * @param name 输入参数名称
385
+ */
386
+ removeItem(name: string): void;
387
+
388
+ /**
389
+ * 删除输入参数
390
+ * @param item 已有的输入参数实例
391
+ */
392
+ removeItem(item: Param): void;
393
+
394
+ removeItem(options: string | Param) {
395
+ let item: Param;
396
+ if (typeof options === 'string') {
397
+ item = this.item;
398
+ if (!item) {
399
+ throw new Error('找不到输入参数 ' + options);
400
+ }
401
+ } else {
402
+ item = options;
403
+ }
404
+ return item.delete();
405
+ }
406
+
407
+
408
+
409
+ /**
410
+ * 删除输入参数
411
+ * @param name 输入参数名称
412
+ */
413
+ removeIndex(name: string): void;
414
+
415
+ /**
416
+ * 删除输入参数
417
+ * @param index 已有的输入参数实例
418
+ */
419
+ removeIndex(index: Param): void;
420
+
421
+ removeIndex(options: string | Param) {
422
+ let index: Param;
423
+ if (typeof options === 'string') {
424
+ index = this.index;
425
+ if (!index) {
426
+ throw new Error('找不到输入参数 ' + options);
427
+ }
428
+ } else {
429
+ index = options;
430
+ }
431
+ return index.delete();
432
+ }
433
+
434
+ __removeParam(param: Param) {
435
+ const parentKey = param.parentKey;
436
+ const params: Params = {
437
+ parentNode: this,
438
+ parentKey,
439
+ index: -1,
440
+ object: null,
441
+ oldObject: param,
442
+ };
443
+ if (parentKey) {
444
+ params.parentKey = parentKey;
445
+ if (Array.isArray((this as any)[parentKey])) {
446
+ const index = (this as any)[parentKey].indexOf(param);
447
+ ~index && (this as any)[parentKey].splice(index, 1);
448
+ params.index = index;
449
+ } else if ((this as any)[parentKey] === param) {
450
+ params.index = 0;
451
+ (this as any)[parentKey] = undefined;
452
+ }
453
+ }
454
+ return params;
455
+ }
456
+
433
457
  //================================================================================
434
458
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
435
459
  // 自动生成的代码已结束。下面可以手动编写。
436
460
  //================================================================================
437
461
 
462
+ public checkItemIndexName() {
463
+ const itemNames = [];
464
+ const idxNames = [];
465
+ let n = this.parentNode;
466
+ while(n && n.concept !== 'Logic') {
467
+ if(n instanceof ForEachStatement){
468
+ itemNames.push(n.item.name);
469
+ idxNames.push(n.index.name);
470
+ }
471
+ n = n.parentNode;
472
+ }
473
+ const uniqueItemName = utils.unique('item', itemNames);
474
+ const uniqueIdxName = utils.unique('index', idxNames);
475
+ if(this.item.name !== uniqueItemName) {
476
+ this.item.setName(uniqueItemName);
477
+ }
478
+ if(this.index.name !== uniqueIdxName) {
479
+ this.index.setName(uniqueIdxName);
480
+ }
481
+ }
482
+
483
+
438
484
  public static getDefaultOptions() {
439
485
  return {
440
486
  label: 'ForEach 循环分支',
@@ -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 TypeParam from './TypeParam__';
@@ -127,7 +128,7 @@ export class Function extends BaseNode {
127
128
 
128
129
  getTypeParamExistingNames(excludedList: Array<TypeParam> = []) {
129
130
  const excludedSet = new Set(excludedList);
130
- return this.typeParams.filter((item) => !excludedSet.has(item)).map((item) => item.name);
131
+ return (this.typeParams || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
131
132
  }
132
133
  getTypeParamUniqueName(name = 'typeParam1') {
133
134
  return utils.unique(name, this.getTypeParamExistingNames());
@@ -1,4 +1,7 @@
1
1
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
2
+ import { BindAttribute } from '..';
3
+ import { ElementToVueOptions } from './ViewElement__';
4
+
2
5
  //================================================================================
3
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
4
7
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -7,6 +10,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
7
10
  import { concept, excludedInJSON, property } from '../decorators';
8
11
 
9
12
  import * as utils from '../utils';
13
+ import { v4 as uuidv4 } from 'uuid';
10
14
  import BaseNode from '../common/BaseNode';
11
15
  import classMap from '../common/classMap';
12
16
  import LogicItem from './LogicItem__';
@@ -68,7 +72,7 @@ export class Identifier extends LogicItem {
68
72
  $refs: true,
69
73
  };
70
74
 
71
- toVue(): string {
75
+ toVue(options?: ElementToVueOptions): string {
72
76
  return this.name;
73
77
  }
74
78
 
@@ -104,6 +108,19 @@ export class Identifier extends LogicItem {
104
108
 
105
109
  @withSourceMap()
106
110
  toEmbeddedTS(state?: TranslatorState): string {
111
+ // 只有data-source可以是函数 ,也可能是属性
112
+ if (this.parentNode instanceof BindAttribute && this.parentNode.name === 'data-source') {
113
+ const view = this.view;
114
+ const viewLogics = view.logics;
115
+ const findLogic = viewLogics.find((item) => item.name === this.name);
116
+ if (findLogic) {
117
+ return 'logics.' + this.name;
118
+ }
119
+ }
120
+ // 因为右侧枚举要赋值就赋值toList方法一下
121
+ if (this.namespace && this.namespace.endsWith('enums')) {
122
+ return ((this.namespace + '.') || '') + this.name + '.toList()';
123
+ }
107
124
  // 如果是identifier 而且枚举
108
125
  return this.namespace ? this.namespace + '.' + this.name : this.name || '__IDENTIFIER__';
109
126
  }
@@ -8,6 +8,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
8
8
  import { concept, excludedInJSON, property } from '../decorators';
9
9
 
10
10
  import * as utils from '../utils';
11
+ import { v4 as uuidv4 } from 'uuid';
11
12
  import BaseNode from '../common/BaseNode';
12
13
  import classMap from '../common/classMap';
13
14
  import LogicItem from './LogicItem__';
@@ -11,6 +11,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
11
11
  import { concept, excludedInJSON, property } from '../decorators';
12
12
 
13
13
  import * as utils from '../utils';
14
+ import { v4 as uuidv4 } from 'uuid';
14
15
  import BaseNode from '../common/BaseNode';
15
16
  import classMap from '../common/classMap';
16
17
  import TypeAnnotation from './TypeAnnotation__';
@@ -258,7 +259,7 @@ export class InterfaceParam extends BaseNode {
258
259
  * 是否可编辑
259
260
  * */
260
261
  get nodeReadonly() {
261
- return this.parentNode.parentNode.concept !== 'app';
262
+ return !!this.module;
262
263
  }
263
264
 
264
265
  @withSourceMap()
@@ -8,6 +8,7 @@ import { EventPayload, Params } from '../common/EventEmitter';
8
8
  import { concept, excludedInJSON, property } from '../decorators';
9
9
 
10
10
  import * as utils from '../utils';
11
+ import { v4 as uuidv4 } from 'uuid';
11
12
  import BaseNode from '../common/BaseNode';
12
13
  import classMap from '../common/classMap';
13
14
  import InterfaceParam from './InterfaceParam__';
@@ -514,10 +515,22 @@ export class Interface extends BaseNode {
514
515
  /**
515
516
  * 是否可编辑
516
517
  * */
517
- get nodeReadonly() {
518
+ get readonly() {
518
519
  return !!this.module;
519
520
  }
520
521
 
522
+ /**
523
+ * 设置逻辑名称
524
+ */
525
+ setOriginLogicName(originLogicName: string) {
526
+ const object = {
527
+ originLogicName,
528
+ };
529
+ this.update({
530
+ ...object,
531
+ });
532
+ }
533
+
521
534
  toEmbeddedTSFile() {
522
535
  let code = `namespace ${this.getNamespace()} {\n`;
523
536
 
@@ -547,7 +560,8 @@ export class Interface extends BaseNode {
547
560
 
548
561
  @withSourceMap()
549
562
  toEmbeddedTS(state?: TranslatorState): string {
550
- let code = `export function ${this.name}(`;
563
+ let code = '';
564
+ code += `export function ${this.name}(`;
551
565
  this.params.forEach((param, index) => {
552
566
  if (index === 0) {
553
567
  code += '{';
@@ -576,10 +590,13 @@ export class Interface extends BaseNode {
576
590
  code += ret.typeAnnotation.toEmbeddedTS(shiftState(state, code));
577
591
  });
578
592
  code += '{\n';
593
+ code += 'let logic =' + (this.parentNode as Namespace).getNamespace() + '.logics.' + this.originLogicName + '\n';
579
594
  code += `return new ${this.returns[0].typeAnnotation.toEmbeddedTS(shiftState(state, code))}();`;
580
595
  code += '\n }';
581
596
  } else {
582
- code += 'void {};';
597
+ code += 'void {';
598
+ code += 'let logic =' + (this.parentNode as Namespace).getNamespace() + '.logics.' + this.originLogicName + '\n';
599
+ code += '};';
583
600
  }
584
601
  code += '\n';
585
602
  return code;
@@ -587,8 +604,7 @@ export class Interface extends BaseNode {
587
604
 
588
605
  getNamespace() {
589
606
  if (this.parentNode && (this.parentNode as Namespace).getNamespace)
590
- return this.module ? `${(this.parentNode as Module).getNamespaceAndKey()}.interfaces` : `${(this.parentNode as Namespace).getNamespace()}.interfaces`;
591
- // return `${(this.parentNode as Namespace).getNamespace()}.interfaces`;
607
+ return `${(this.parentNode as Namespace).getNamespace()}.interfaces`;
592
608
  else
593
609
  throw new Error('无法获取命名空间,请设置 parentNode!');
594
610
  }
@@ -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__';
@@ -1,5 +1,6 @@
1
1
  import { TranslatorState } from '../translator';
2
2
  import CallFunction from './CallFunction__';
3
+ import { ElementToVueOptions } from './ViewElement__';
3
4
 
4
5
  //================================================================================
5
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -9,6 +10,7 @@ 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';
14
16
  import Logic from './Logic__';
@@ -27,44 +29,7 @@ export class LogicItem extends BaseNode {
27
29
  * 产品概念
28
30
  */
29
31
  @property()
30
- concept:
31
- | 'LogicItem'
32
- | 'Start'
33
- | 'End'
34
- | 'IfStatement'
35
- | 'SwitchStatement'
36
- | 'SwitchCase'
37
- | 'ForEachStatement'
38
- | 'WhileStatement'
39
- | 'Assignment'
40
- | 'Comment'
41
- | 'CallLogic'
42
- | 'CallFunction'
43
- | 'CallInterface'
44
- | 'Destination'
45
- | 'ValidationRule'
46
- | 'Argument'
47
- | 'JSBlock'
48
- | 'Identifier'
49
- | 'NullLiteral'
50
- | 'BooleanLiteral'
51
- | 'StringLiteral'
52
- | 'NumericLiteral'
53
- | 'BinaryExpression'
54
- | 'UnaryExpression'
55
- | 'MemberExpression'
56
- | 'Unparsed'
57
- | 'CallQueryComponent'
58
- | 'QueryFromExpression'
59
- | 'QueryJoinExpression'
60
- | 'QueryFieldExpression'
61
- | 'QueryAggregateExpression'
62
- | 'QueryOrderByExpression'
63
- | 'QueryGroupByExpression'
64
- | 'QuerySelectExpression'
65
- | 'QueryLimitExpression'
66
- | 'SqlQueryComponent'
67
- | 'ProcessOutcome' = 'LogicItem';
32
+ concept: 'LogicItem' | 'Start' | 'End' | 'IfStatement' | 'SwitchStatement' | 'SwitchCase' | 'ForEachStatement' | 'WhileStatement' | 'Assignment' | 'Comment' | 'CallLogic' | 'CallFunction' | 'CallInterface' | 'Destination' | 'ValidationRule' | 'Argument' | 'JSBlock' | 'Identifier' | 'NullLiteral' | 'BooleanLiteral' | 'StringLiteral' | 'NumericLiteral' | 'BinaryExpression' | 'UnaryExpression' | 'MemberExpression' | 'Unparsed' | 'CallQueryComponent' | 'QueryFromExpression' | 'QueryJoinExpression' | 'QueryFieldExpression' | 'QueryAggregateExpression' | 'QueryOrderByExpression' | 'QueryGroupByExpression' | 'QuerySelectExpression' | 'QueryLimitExpression' | 'SqlQueryComponent' | 'ProcessOutcome' = 'LogicItem';
68
33
 
69
34
  /**
70
35
  * 逻辑项标题
@@ -193,6 +158,10 @@ export class LogicItem extends BaseNode {
193
158
  });
194
159
  }
195
160
 
161
+
162
+
163
+
164
+
196
165
  //================================================================================
197
166
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
198
167
  // 自动生成的代码已结束。下面可以手动编写。
@@ -220,7 +189,7 @@ export class LogicItem extends BaseNode {
220
189
  return '[编译方法未实现]';
221
190
  }
222
191
 
223
- toVue(state?: TranslatorState): string {
192
+ toVue(options?: ElementToVueOptions) {
224
193
  return '[编译方法未实现]';
225
194
  }
226
195
 
@@ -261,7 +230,7 @@ export class LogicItem extends BaseNode {
261
230
  //================================================================================
262
231
  }
263
232
 
264
- classMap.LogicItem = LogicItem;
233
+ classMap['LogicItem'] = LogicItem;
265
234
  export default LogicItem;
266
235
  //================================================================================
267
236
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑