@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
@@ -12,12 +12,13 @@ exports.translateDiagnosticMessage = exports.transformType = void 0;
12
12
  const Messager_1 = __importDefault(require("../common/Messager"));
13
13
  const concepts_1 = require("../concepts");
14
14
  const translator_1 = require("../translator");
15
- const storage_1 = __importDefault(require("../service/storage"));
16
15
  const translator_2 = require("./translator");
17
16
  Object.defineProperty(exports, "transformType", { enumerable: true, get: function () { return translator_2.transformType; } });
18
17
  Object.defineProperty(exports, "translateDiagnosticMessage", { enumerable: true, get: function () { return translator_2.translateDiagnosticMessage; } });
19
18
  const common_1 = require("../common");
20
19
  const diagnostic_1 = __importDefault(require("../manager/diagnostic"));
20
+ const createUiTs_1 = __importDefault(require("./createUiTs"));
21
+ const coreTypeList_1 = require("../concepts/basics/types/coreTypeList");
21
22
  const EmbeddedTSFileLineMap = {
22
23
  Entity: 3,
23
24
  };
@@ -43,9 +44,21 @@ const naslServer = {
43
44
  * 先用挂在点上面,简单的方法实现,后期再考虑解耦
44
45
  */
45
46
  file2NodeMap: new Map(),
47
+ elementsLogic: {},
46
48
  start() {
47
49
  return this.messager.requestCommand('start');
48
50
  },
51
+ async createUiTs(allComponent) {
52
+ const { code, elementsLogic } = await (0, createUiTs_1.default)(allComponent);
53
+ // 放入生產的uits文件
54
+ await naslServer.addFile({
55
+ file: 'nasl.ui.definition.ts',
56
+ fileContent: code,
57
+ });
58
+ naslServer.elementsLogic = elementsLogic;
59
+ // 全部文件加载完毕开始初始化
60
+ await naslServer.getDiagnosticRecordsAndPushAll();
61
+ },
49
62
  contentToFile(module, results) {
50
63
  module.structures.forEach((structure) => {
51
64
  const result = structure.toEmbeddedTSFile();
@@ -76,17 +89,15 @@ const naslServer = {
76
89
  this.file2NodeMap.set(result.filePath, _enum);
77
90
  });
78
91
  module.logics.forEach((logic) => {
92
+ if (!(logic instanceof concepts_1.Logic))
93
+ return;
79
94
  const result = logic.toEmbeddedTSFile();
80
95
  results.push(result);
81
96
  logic.sourceMap = result.sourceMap;
82
97
  this.file2NodeMap.set(result.filePath, logic);
83
98
  });
84
- module.views.forEach((view) => {
85
- const result = view.toEmbeddedTSFile();
86
- results.push(result);
87
- view.sourceMap = result.sourceMap;
88
- this.file2NodeMap.set(result.filePath, view);
89
- });
99
+ // view的生成
100
+ naslServer.view2TSFile(module.views, results);
90
101
  module.processes.forEach((process) => {
91
102
  const result = process.toEmbeddedTSFile();
92
103
  results.push(result);
@@ -103,6 +114,18 @@ const naslServer = {
103
114
  });
104
115
  }
105
116
  },
117
+ view2TSFile(viewsChildren, results) {
118
+ // 子页面
119
+ viewsChildren.forEach((view) => {
120
+ const result = view.toEmbeddedTSFile();
121
+ results.push(result);
122
+ view.sourceMap = result.sourceMap;
123
+ this.file2NodeMap.set(result.filePath, view);
124
+ if (view.children.length) {
125
+ naslServer.view2TSFile(view.children, results);
126
+ }
127
+ });
128
+ },
106
129
  async openApp(app) {
107
130
  const results = [];
108
131
  try {
@@ -144,7 +167,13 @@ const naslServer = {
144
167
  fileContent: result.code,
145
168
  }));
146
169
  await this.writeFiles(files);
147
- this._debugInFileStorage((module.parentNode), files);
170
+ this._debugInFileStorage(module.parentNode, files);
171
+ },
172
+ /**
173
+ * 初始化之前添加文件
174
+ */
175
+ addFile(file) {
176
+ return this.messager.requestCommand('addFile', file);
148
177
  },
149
178
  /**
150
179
  * 只新增文件
@@ -169,11 +198,15 @@ const naslServer = {
169
198
  updateFiles(args) {
170
199
  return this.messager.requestCommand('updateFiles', args);
171
200
  },
172
- _debugInFileStorage(app, openFiles) {
173
- return Promise.all(openFiles.map(async (file) => {
174
- const res = await storage_1.default.post('/api/App/debugEmbedded?id=' + app.id, file);
175
- return res.data;
176
- }));
201
+ _debugInFileStorage(node, openFiles) {
202
+ // let app = node;
203
+ // if (node.concept !== 'App') {
204
+ // app = (node as any).rootNode || (node as any).app;
205
+ // }
206
+ // return Promise.all(openFiles.map(async (file) => {
207
+ // const res = await axios.post('/api/App/debugEmbedded?id=' + app.id, file);
208
+ // return res.data;
209
+ // }));
177
210
  },
178
211
  open() {
179
212
  return this.messager.requestCommand('open');
@@ -187,24 +220,88 @@ const naslServer = {
187
220
  async references(args) {
188
221
  return (await this.messager.requestCommand('references', args))?.response;
189
222
  },
190
- getSelectCompletion(node) {
223
+ getValueSelectCompletion(node, value) {
191
224
  const { currentSource, fileNode } = naslServer.getCurrentSource(node);
192
225
  // console.log(currentSource, fileNode);
193
226
  if (currentSource && fileNode) {
194
- return naslServer._getSelectCompletion({
227
+ return naslServer._getValueSelectCompletion({
195
228
  file: fileNode.getEmbeddedFilePath(),
196
229
  range: {
197
230
  line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
198
231
  offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
199
232
  },
233
+ value,
200
234
  });
201
235
  }
202
236
  else {
203
237
  console.log('没找到节点', node, currentSource, fileNode);
204
238
  }
205
239
  },
206
- _getSelectCompletion(args) {
207
- return this.messager.requestCommand('getSelectCompletion', args);
240
+ _getValueSelectCompletion(args) {
241
+ return this.messager.requestCommand('getValueSelectCompletion', args);
242
+ },
243
+ // 联合类型切割取出类型
244
+ getDisplayString2Type(displayString) {
245
+ // 取出匹配的内容
246
+ const reg = /\<([^()]+)\>/g;
247
+ const types = reg.exec(displayString);
248
+ // 取出提示的类型,组成是数组
249
+ const typeList = types[1].split(' | ').map((item) => {
250
+ if (item.includes(' ')) {
251
+ const strs = item.split(' ');
252
+ const type = strs[strs.length - 1];
253
+ return type;
254
+ }
255
+ else if (item.includes('.')) {
256
+ const strs = item.split('.');
257
+ const type = strs[strs.length - 1];
258
+ return type;
259
+ }
260
+ else {
261
+ return item;
262
+ }
263
+ });
264
+ return typeList;
265
+ },
266
+ async getTypeQuickinfo(node) {
267
+ console.log(node);
268
+ if (node instanceof concepts_1.Identifier) {
269
+ const callFunction = node.parentNode.parentNode;
270
+ /**
271
+ * currentSource callFunction 的节点,要去到当前节点的位置
272
+ * nasl.util.Convert(xxx),所以取到的位置要 + `nasl.util.C` 的长度
273
+ * fileNode
274
+ */
275
+ const { currentSource, fileNode } = naslServer.getCurrentSource(callFunction);
276
+ const quickInfo = await naslServer._getTypeQuickinfo({
277
+ file: fileNode.getEmbeddedFilePath(),
278
+ line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
279
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character) + `nasl.util.C`.length,
280
+ });
281
+ if (quickInfo.responseRequired) {
282
+ const displayString = quickInfo?.response?.displayString || '';
283
+ const typeList = naslServer.getDisplayString2Type(displayString);
284
+ let res = [];
285
+ typeList.forEach((type) => {
286
+ const typeAnnotation = coreTypeList_1.primitiveTypeList.find((typeAnnotation) => typeAnnotation.typeName === type);
287
+ if (typeAnnotation) {
288
+ res.push(typeAnnotation);
289
+ }
290
+ else if (type === 'unknown') {
291
+ return null;
292
+ }
293
+ });
294
+ if (!res.length) {
295
+ res = coreTypeList_1.primitiveTypeList;
296
+ }
297
+ // 调整结构
298
+ const dataTypeList = [{ title: '基础类型', children: res }];
299
+ return dataTypeList;
300
+ }
301
+ }
302
+ },
303
+ _getTypeQuickinfo(args) {
304
+ return this.messager.requestCommand('quickInfo', args);
208
305
  },
209
306
  getSelectNextCompletion(node) {
210
307
  const { currentSource, fileNode } = naslServer.getCurrentSource(node);
@@ -254,10 +351,14 @@ const naslServer = {
254
351
  if (node instanceof concepts_1.Entity) {
255
352
  record.suggestionDiagnostics = [];
256
353
  }
257
- else if (node instanceof concepts_1.View) {
354
+ if (node instanceof concepts_1.View) {
258
355
  // event在view中不展示建议使用,提示关闭掉
259
356
  record.suggestionDiagnostics = record.suggestionDiagnostics.filter((item) => !item.text.includes(`'event'`));
260
357
  }
358
+ if (node instanceof concepts_1.Logic) {
359
+ // logic在for循环中,不展示any提示
360
+ record.suggestionDiagnostics = record.suggestionDiagnostics.filter((item) => !item.text.includes(`implicitly has an 'any' type, but a better type may be inferred from usage.`));
361
+ }
261
362
  record.suggestionDiagnostics = record.suggestionDiagnostics
262
363
  .map((diag) => this._resolveDiagnostic(diag, node.sourceMap))
263
364
  .filter((diag) => !!diag);
@@ -295,7 +396,7 @@ const naslServer = {
295
396
  _diagnosticSpecialTreatment(minRange, tsErrorDetail) {
296
397
  // 因为缺少参数时候有可能有特殊情况,因为原本少的多了就会找到 callLogic上,
297
398
  // 但是只少一个的时候就会找到准确的Argument上 需要特殊处理, ui层就可以统一处理
298
- if (minRange.node instanceof concepts_1.Argument && /Expected (.+?) arguments, but got (.+?)./.exec(tsErrorDetail.text)) {
399
+ if (minRange.node instanceof concepts_1.Argument && /Expected (.+?) arguments, but got (.+?)./.exec(tsErrorDetail.originalDiagnostic.text)) {
299
400
  minRange.node = minRange.node.parentNode;
300
401
  }
301
402
  minRange.node.tsErrorDetail = tsErrorDetail;
@@ -446,6 +547,30 @@ const naslServer = {
446
547
  });
447
548
  refsList = [...viewRefs.refs];
448
549
  }
550
+ /**
551
+ * elements 需要查的是__elements.后面的那个内容,过滤两个为了生成内容的节点
552
+ */
553
+ if (node instanceof concepts_1.ViewElement) {
554
+ const code = currentSource.code;
555
+ const prefix = '__elements.';
556
+ const prefixIndex = code.indexOf(prefix) !== -1 ? code.indexOf(prefix) : 0;
557
+ const methodsNameIndex = prefixIndex + prefix.length;
558
+ const methods = await naslServer.references({
559
+ file: fileNode.getEmbeddedFilePath(),
560
+ line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
561
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character + methodsNameIndex),
562
+ });
563
+ const methodRefs = methods.refs.filter((item) => {
564
+ if (item.lineText.includes('__elements.') && item.lineText.includes('new nasl.ui.')) {
565
+ return false;
566
+ }
567
+ if (item.lineText.includes(': <nasl.ui.')) {
568
+ return false;
569
+ }
570
+ return true;
571
+ });
572
+ refsList = [...methodRefs];
573
+ }
449
574
  return refsList;
450
575
  },
451
576
  /**
@@ -476,6 +601,10 @@ const naslServer = {
476
601
  if (minRange.node instanceof concepts_1.CallLogic && node instanceof concepts_1.Logic) {
477
602
  minRange.setTypeMethods = 'setCalleeName';
478
603
  }
604
+ if (minRange.node instanceof concepts_1.CallLogic && node instanceof concepts_1.ViewElement) {
605
+ minRange.setTypeMethods = 'setCalleeName';
606
+ minRange.newValue = 'elements.' + newValue + '.logics';
607
+ }
479
608
  // 如果节点是实体修改引发calllogic修改
480
609
  if (minRange.node instanceof concepts_1.CallLogic && (node instanceof concepts_1.Entity || node instanceof concepts_1.View)) {
481
610
  // 匹配到的内容,当前这一行的内容;
@@ -541,6 +670,11 @@ const naslServer = {
541
670
  minRange.newValue = newTextValue;
542
671
  }
543
672
  }
673
+ // 如果修改逻辑,改到了Identifier表达式,只能说明是在属性里有使用了
674
+ if (minRange.node instanceof concepts_1.Identifier && node instanceof concepts_1.Logic) {
675
+ minRange.newValue = newValue;
676
+ minRange.setTypeMethods = 'setName';
677
+ }
544
678
  // 如果节点是MemberExpression表达式
545
679
  if (minRange.node instanceof concepts_1.MemberExpression) {
546
680
  // 匹配到的内容,当前这一行的内容;
@@ -645,6 +779,19 @@ const naslServer = {
645
779
  minRange.newValue = newTsNameSpace;
646
780
  }
647
781
  }
782
+ if (minRange.node instanceof concepts_1.Interface && node instanceof concepts_1.Logic) {
783
+ minRange.setTypeMethods = 'setOriginLogicName';
784
+ }
785
+ // 如果是role改名,就需要查到变更后的数组
786
+ if ((minRange.node instanceof concepts_1.View || minRange.node instanceof concepts_1.ViewElement) && node instanceof concepts_1.Role) {
787
+ // oldName旧的节点存的值
788
+ // newValue用户输入值
789
+ // node.bindRoles 存的
790
+ minRange.setTypeMethods = 'setBindRoles';
791
+ const str = minRange.node.bindRoles.toString().replace(oldName, newValue);
792
+ const newBindRoles = str.split(',');
793
+ minRange.newValue = newBindRoles;
794
+ }
648
795
  // 枚举修改枚举名,比较特殊
649
796
  if (minRange.node instanceof concepts_1.EnumItem && node instanceof concepts_1.Enum) {
650
797
  // 什么都不做,用来跳过修改
@@ -659,6 +806,10 @@ const naslServer = {
659
806
  if (minRange.node instanceof concepts_1.View && node instanceof concepts_1.View && minRange.node !== node) {
660
807
  return null;
661
808
  }
809
+ // 逻辑改名,触发了在定义里面的,element定义,的值,直接掠过
810
+ if (minRange.node instanceof concepts_1.View && node instanceof concepts_1.Logic) {
811
+ return null;
812
+ }
662
813
  }
663
814
  else {
664
815
  console.log('没找到节点需要排查');
@@ -851,7 +1002,7 @@ const naslServer = {
851
1002
  }
852
1003
  },
853
1004
  // 获取element方法的可选值
854
- getElementsMethod(node, getFieldKey) {
1005
+ getFieldKeySelectCompletion(node, fieldKey) {
855
1006
  const { currentSource, fileNode } = naslServer.getCurrentSource(node);
856
1007
  console.log(currentSource);
857
1008
  if (currentSource && fileNode) {
@@ -861,7 +1012,7 @@ const naslServer = {
861
1012
  line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
862
1013
  offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
863
1014
  },
864
- getFieldKey,
1015
+ getFieldKey: fieldKey,
865
1016
  });
866
1017
  }
867
1018
  else {
@@ -917,6 +1068,8 @@ concepts_1.BaseNode.prototype.findUsage = function findUsage() {
917
1068
  }
918
1069
  };
919
1070
  concepts_1.BaseNode.prototype.changeName = async function changeName(newValue, updateAll = false) {
1071
+ console.log(newValue);
1072
+ console.log(this);
920
1073
  try {
921
1074
  /**
922
1075
  * 查找这个节点是不是有依赖
@@ -1004,10 +1157,11 @@ concepts_1.BaseNode.prototype.prepareDelete = async function prepareDelete() {
1004
1157
  else {
1005
1158
  // 如果有依赖就有一个查找引用提示
1006
1159
  confirmParms.tipFlag = true;
1160
+ const node = this;
1007
1161
  callback = () => {
1008
1162
  // removeParam
1009
1163
  // 跟rename 还不太一样,部分修改依赖修改好的值,然后在下面的修改需要把自己传递进去
1010
- if (this instanceof concepts_1.Param) {
1164
+ if (node instanceof concepts_1.Param) {
1011
1165
  const App = this.rootNode;
1012
1166
  const logicNode = this.parentNode;
1013
1167
  // 收集修改
@@ -1028,6 +1182,26 @@ concepts_1.BaseNode.prototype.prepareDelete = async function prepareDelete() {
1028
1182
  App.emit('collect:end');
1029
1183
  return;
1030
1184
  }
1185
+ // 删除logic节点,如果有对应的interface要一起删除
1186
+ if (node instanceof concepts_1.Logic) {
1187
+ const App = this.rootNode;
1188
+ // 收集修改
1189
+ App.emit('collect:start');
1190
+ this.delete();
1191
+ refsList.forEach((record) => {
1192
+ const fileNode = naslServer.file2NodeMap.get(record.file);
1193
+ if (!fileNode)
1194
+ return null;
1195
+ const minRange = naslServer._findMinRange(record, fileNode.sourceMap);
1196
+ if (minRange) {
1197
+ if (minRange.node instanceof concepts_1.Interface) {
1198
+ minRange.node.delete();
1199
+ }
1200
+ }
1201
+ });
1202
+ // 结束修改 ,批量操作
1203
+ App.emit('collect:end');
1204
+ }
1031
1205
  // 其余的都直接调用删除
1032
1206
  this.delete();
1033
1207
  };
@@ -1161,8 +1335,8 @@ async function receiveHandleChange($event) {
1161
1335
  const targetNode = $event.target;
1162
1336
  // 当前操作的文件节点
1163
1337
  const { fileNode } = naslServer.getCurrentSource(targetNode);
1164
- // 如果是导入模块就,就引入对应模块,先不处理module,下面的内容会自动创建
1165
- if (fileNode instanceof concepts_1.Module) {
1338
+ // 如果是导入模块就,就引入对应模块,先不处理module和Configuration,下面的内容会自动创建
1339
+ if (fileNode instanceof concepts_1.Module || fileNode instanceof concepts_1.Configuration) {
1166
1340
  return;
1167
1341
  }
1168
1342
  const result = fileNode.toEmbeddedTSFile();
@@ -1196,7 +1370,7 @@ translator_1.embeddedTSEmitter.on('change', ($event) => {
1196
1370
  // 收集到一个行为集合
1197
1371
  const eventValue = $event.value;
1198
1372
  eventValue.forEach((item) => {
1199
- receiveHandleChange(item);
1373
+ receiveHandleChange(item.originEvent);
1200
1374
  });
1201
1375
  });
1202
1376
  naslServer.messager.options.context = naslServer;
@@ -1 +1 @@
1
- {"version":3,"file":"naslServer.js","sourceRoot":"","sources":["../../src/server/naslServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naslServer.js","sourceRoot":"","sources":["../../src/server/naslServer.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,16 @@
1
- import { Namespace, Process } from '..';
1
+ import { Namespace, Logic, Process } from '..';
2
2
  export declare function process2LogicNamespace(process: Process): Namespace;
3
+ interface processTreeFragment {
4
+ level: 'processTreeFragment';
5
+ name: string;
6
+ id: string;
7
+ logics: Array<Logic>;
8
+ elements: Array<{
9
+ level: 'processTreeElementFragment';
10
+ name: string;
11
+ id: string;
12
+ logics: Array<Logic>;
13
+ }>;
14
+ }
15
+ export declare function processToTreeFragment(process: Process): processTreeFragment;
16
+ export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.process2LogicNamespace = void 0;
3
+ exports.processToTreeFragment = exports.process2LogicNamespace = void 0;
4
4
  const __1 = require("..");
5
5
  const getProcesses_1 = require("./getProcesses");
6
6
  function process2LogicNamespace(process) {
@@ -12,11 +12,12 @@ function process2LogicNamespace(process) {
12
12
  name: e.name,
13
13
  logics: [l],
14
14
  });
15
+ const path = `app.processes.${process.name}.elements.${e.name}.logic`;
15
16
  l.getNamespace = function () {
16
- return this.parentNode.getNamespace();
17
+ return path;
17
18
  };
18
19
  children.push(ns);
19
- ns.path = `app.processes.${process.name}.elements.${e.name}.logic`;
20
+ ns.path = `app.processes.${process.name}.elements.${e.name}`;
20
21
  }
21
22
  });
22
23
  const launchLogic = (0, getProcesses_1.genLaunchProcess)(process);
@@ -29,4 +30,30 @@ function process2LogicNamespace(process) {
29
30
  return ns;
30
31
  }
31
32
  exports.process2LogicNamespace = process2LogicNamespace;
33
+ function processToTreeFragment(process) {
34
+ const fragment = {
35
+ level: 'processTreeFragment',
36
+ name: process.name,
37
+ id: process.id,
38
+ logics: [],
39
+ elements: [],
40
+ };
41
+ process.elements.forEach((e) => {
42
+ if (e.type === 'UserTask') {
43
+ const l = (0, getProcesses_1.genUserTaskLogic)(e);
44
+ l.parentKey = 'readonly';
45
+ fragment.elements.push({
46
+ level: 'processTreeElementFragment',
47
+ id: e.id,
48
+ name: e.name,
49
+ logics: [l],
50
+ });
51
+ }
52
+ });
53
+ const launchLogic = (0, getProcesses_1.genLaunchProcess)(process);
54
+ fragment.logics.push(launchLogic);
55
+ launchLogic.parentKey = 'readonly';
56
+ return fragment;
57
+ }
58
+ exports.processToTreeFragment = processToTreeFragment;
32
59
  //# sourceMappingURL=process2LogicNamespace.js.map