@lcap/nasl 1.0.0-alpha.8 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +414 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/operators.d.ts +13 -0
  5. package/out/automate/engine/operators.js +63 -0
  6. package/out/automate/engine/operators.js.map +1 -0
  7. package/out/automate/engine/uniqueName.d.ts +6 -0
  8. package/out/automate/engine/uniqueName.js +39 -0
  9. package/out/automate/engine/uniqueName.js.map +1 -0
  10. package/out/automate/engine/utils.d.ts +24 -0
  11. package/out/automate/engine/utils.js +363 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +20 -0
  14. package/out/common/BaseNode.js +219 -81
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +18 -1
  17. package/out/concepts/App__.js +84 -44
  18. package/out/concepts/App__.js.map +1 -1
  19. package/out/concepts/Argument__.d.ts +5 -1
  20. package/out/concepts/Argument__.js +21 -3
  21. package/out/concepts/Argument__.js.map +1 -1
  22. package/out/concepts/Assignee__.d.ts +190 -0
  23. package/out/concepts/Assignee__.js +264 -0
  24. package/out/concepts/Assignee__.js.map +1 -0
  25. package/out/concepts/Assignment__.js +5 -0
  26. package/out/concepts/Assignment__.js.map +1 -1
  27. package/out/concepts/BinaryExpression__.js +8 -7
  28. package/out/concepts/BinaryExpression__.js.map +1 -1
  29. package/out/concepts/BindAttribute__.d.ts +19 -0
  30. package/out/concepts/BindAttribute__.js +55 -10
  31. package/out/concepts/BindAttribute__.js.map +1 -1
  32. package/out/concepts/BindDirective__.js +23 -3
  33. package/out/concepts/BindDirective__.js.map +1 -1
  34. package/out/concepts/BindEvent__.d.ts +2 -2
  35. package/out/concepts/BindEvent__.js +67 -34
  36. package/out/concepts/BindEvent__.js.map +1 -1
  37. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  38. package/out/concepts/BooleanLiteral__.js +10 -0
  39. package/out/concepts/BooleanLiteral__.js.map +1 -1
  40. package/out/concepts/CallFunction__.js +57 -23
  41. package/out/concepts/CallFunction__.js.map +1 -1
  42. package/out/concepts/CallInterface__.d.ts +5 -0
  43. package/out/concepts/CallInterface__.js +238 -31
  44. package/out/concepts/CallInterface__.js.map +1 -1
  45. package/out/concepts/CallLogic__.d.ts +4 -4
  46. package/out/concepts/CallLogic__.js +107 -50
  47. package/out/concepts/CallLogic__.js.map +1 -1
  48. package/out/concepts/CallQueryComponent__.d.ts +7 -1
  49. package/out/concepts/CallQueryComponent__.js +45 -26
  50. package/out/concepts/CallQueryComponent__.js.map +1 -1
  51. package/out/concepts/Comment__.js +6 -2
  52. package/out/concepts/Comment__.js.map +1 -1
  53. package/out/concepts/CompletionProperty__.d.ts +3 -1
  54. package/out/concepts/CompletionProperty__.js +2 -0
  55. package/out/concepts/CompletionProperty__.js.map +1 -1
  56. package/out/concepts/ConfigGroup__.js +3 -3
  57. package/out/concepts/ConfigGroup__.js.map +1 -1
  58. package/out/concepts/ConfigProperty__.js +3 -3
  59. package/out/concepts/ConfigProperty__.js.map +1 -1
  60. package/out/concepts/Configuration__.js +3 -3
  61. package/out/concepts/Configuration__.js.map +1 -1
  62. package/out/concepts/Constant__.d.ts +1 -0
  63. package/out/concepts/Constant__.js +14 -0
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +98 -19
  67. package/out/concepts/Destination__.js.map +1 -1
  68. package/out/concepts/End__.js +9 -1
  69. package/out/concepts/End__.js.map +1 -1
  70. package/out/concepts/EntityProperty__.d.ts +11 -0
  71. package/out/concepts/EntityProperty__.js +73 -5
  72. package/out/concepts/EntityProperty__.js.map +1 -1
  73. package/out/concepts/Entity__.d.ts +4 -4
  74. package/out/concepts/Entity__.js +30 -20
  75. package/out/concepts/Entity__.js.map +1 -1
  76. package/out/concepts/Enum__.d.ts +4 -0
  77. package/out/concepts/Enum__.js +18 -10
  78. package/out/concepts/Enum__.js.map +1 -1
  79. package/out/concepts/Event__.js +3 -3
  80. package/out/concepts/Event__.js.map +1 -1
  81. package/out/concepts/ForEachStatement__.d.ts +1 -1
  82. package/out/concepts/ForEachStatement__.js +11 -15
  83. package/out/concepts/ForEachStatement__.js.map +1 -1
  84. package/out/concepts/Function__.js +13 -13
  85. package/out/concepts/Function__.js.map +1 -1
  86. package/out/concepts/Identifier__.d.ts +3 -0
  87. package/out/concepts/Identifier__.js +76 -29
  88. package/out/concepts/Identifier__.js.map +1 -1
  89. package/out/concepts/IfStatement__.js +4 -4
  90. package/out/concepts/IfStatement__.js.map +1 -1
  91. package/out/concepts/InterfaceParam__.d.ts +6 -4
  92. package/out/concepts/InterfaceParam__.js +52 -19
  93. package/out/concepts/InterfaceParam__.js.map +1 -1
  94. package/out/concepts/Interface__.d.ts +42 -30
  95. package/out/concepts/Interface__.js +133 -17
  96. package/out/concepts/Interface__.js.map +1 -1
  97. package/out/concepts/JSBlock__.d.ts +1 -0
  98. package/out/concepts/JSBlock__.js +3 -0
  99. package/out/concepts/JSBlock__.js.map +1 -1
  100. package/out/concepts/LogicItem__.d.ts +2 -1
  101. package/out/concepts/LogicItem__.js +14 -0
  102. package/out/concepts/LogicItem__.js.map +1 -1
  103. package/out/concepts/Logic__.d.ts +20 -1
  104. package/out/concepts/Logic__.js +194 -37
  105. package/out/concepts/Logic__.js.map +1 -1
  106. package/out/concepts/MemberExpression__.d.ts +2 -0
  107. package/out/concepts/MemberExpression__.js +49 -13
  108. package/out/concepts/MemberExpression__.js.map +1 -1
  109. package/out/concepts/Module__.d.ts +126 -120
  110. package/out/concepts/Module__.js +36 -26
  111. package/out/concepts/Module__.js.map +1 -1
  112. package/out/concepts/Namespace__.d.ts +5 -1
  113. package/out/concepts/Namespace__.js +48 -37
  114. package/out/concepts/Namespace__.js.map +1 -1
  115. package/out/concepts/NullLiteral__.d.ts +3 -0
  116. package/out/concepts/NullLiteral__.js +11 -1
  117. package/out/concepts/NullLiteral__.js.map +1 -1
  118. package/out/concepts/NumericLiteral__.d.ts +1 -1
  119. package/out/concepts/NumericLiteral__.js +17 -6
  120. package/out/concepts/NumericLiteral__.js.map +1 -1
  121. package/out/concepts/Param__.d.ts +7 -3
  122. package/out/concepts/Param__.js +57 -28
  123. package/out/concepts/Param__.js.map +1 -1
  124. package/out/concepts/ProcessComponent__.js +6 -6
  125. package/out/concepts/ProcessComponent__.js.map +1 -1
  126. package/out/concepts/ProcessElement__.d.ts +0 -4
  127. package/out/concepts/ProcessElement__.js +117 -54
  128. package/out/concepts/ProcessElement__.js.map +1 -1
  129. package/out/concepts/ProcessOutcome__.js +1 -1
  130. package/out/concepts/ProcessOutcome__.js.map +1 -1
  131. package/out/concepts/Process__.d.ts +7 -1
  132. package/out/concepts/Process__.js +81 -85
  133. package/out/concepts/Process__.js.map +1 -1
  134. package/out/concepts/QueryAggregateExpression__.js +1 -1
  135. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  136. package/out/concepts/QueryFromExpression__.js +2 -2
  137. package/out/concepts/QueryFromExpression__.js.map +1 -1
  138. package/out/concepts/QueryJoinExpression__.js +5 -5
  139. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  140. package/out/concepts/QueryLimitExpression__.js +2 -2
  141. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  142. package/out/concepts/QuerySelectExpression__.js +3 -3
  143. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  144. package/out/concepts/Return__.d.ts +4 -1
  145. package/out/concepts/Return__.js +67 -21
  146. package/out/concepts/Return__.js.map +1 -1
  147. package/out/concepts/Role__.d.ts +4 -0
  148. package/out/concepts/Role__.js +13 -4
  149. package/out/concepts/Role__.js.map +1 -1
  150. package/out/concepts/SqlQueryComponent__.js +2 -2
  151. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  152. package/out/concepts/StringLiteral__.d.ts +1 -1
  153. package/out/concepts/StringLiteral__.js +21 -31
  154. package/out/concepts/StringLiteral__.js.map +1 -1
  155. package/out/concepts/StructureProperty__.d.ts +5 -4
  156. package/out/concepts/StructureProperty__.js +55 -26
  157. package/out/concepts/StructureProperty__.js.map +1 -1
  158. package/out/concepts/Structure__.d.ts +44 -30
  159. package/out/concepts/Structure__.js +44 -12
  160. package/out/concepts/Structure__.js.map +1 -1
  161. package/out/concepts/SwitchCase__.js +4 -4
  162. package/out/concepts/SwitchCase__.js.map +1 -1
  163. package/out/concepts/SwitchStatement__.js +2 -2
  164. package/out/concepts/SwitchStatement__.js.map +1 -1
  165. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  166. package/out/concepts/TypeAnnotation__.js +74 -20
  167. package/out/concepts/TypeAnnotation__.js.map +1 -1
  168. package/out/concepts/UnaryExpression__.js +10 -8
  169. package/out/concepts/UnaryExpression__.js.map +1 -1
  170. package/out/concepts/Unparsed__.js +1 -1
  171. package/out/concepts/Unparsed__.js.map +1 -1
  172. package/out/concepts/ValidationRule__.d.ts +1 -0
  173. package/out/concepts/ValidationRule__.js +48 -13
  174. package/out/concepts/ValidationRule__.js.map +1 -1
  175. package/out/concepts/Variable__.d.ts +10 -1
  176. package/out/concepts/Variable__.js +70 -18
  177. package/out/concepts/Variable__.js.map +1 -1
  178. package/out/concepts/ViewComponent__.js +15 -15
  179. package/out/concepts/ViewComponent__.js.map +1 -1
  180. package/out/concepts/ViewElement__.d.ts +17 -11
  181. package/out/concepts/ViewElement__.js +302 -204
  182. package/out/concepts/ViewElement__.js.map +1 -1
  183. package/out/concepts/View__.d.ts +12 -11
  184. package/out/concepts/View__.js +109 -98
  185. package/out/concepts/View__.js.map +1 -1
  186. package/out/concepts/WhileStatement__.js +3 -3
  187. package/out/concepts/WhileStatement__.js.map +1 -1
  188. package/out/concepts/basics/stdlib/index.js +4 -1
  189. package/out/concepts/basics/stdlib/index.js.map +1 -1
  190. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  191. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  192. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  193. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  194. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  195. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  196. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  197. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  198. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  199. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  200. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  201. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  202. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  203. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  204. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  205. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  206. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  207. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  208. package/out/concepts/basics/types/coreTypeList.js +11 -10
  209. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  210. package/out/concepts/index__.d.ts +1 -0
  211. package/out/concepts/index__.js +1 -0
  212. package/out/concepts/index__.js.map +1 -1
  213. package/out/config.d.ts +1 -2
  214. package/out/config.js +1 -2
  215. package/out/config.js.map +1 -1
  216. package/out/enums/KEYWORDS.d.ts +3 -0
  217. package/out/enums/KEYWORDS.js +1206 -0
  218. package/out/enums/KEYWORDS.js.map +1 -0
  219. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  220. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  221. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  222. package/out/eventBus.d.ts +3 -0
  223. package/out/eventBus.js +7 -0
  224. package/out/eventBus.js.map +1 -0
  225. package/out/generator/genBundleFiles.d.ts +7 -2
  226. package/out/generator/genBundleFiles.js +168 -27
  227. package/out/generator/genBundleFiles.js.map +1 -1
  228. package/out/generator/genMetaData.d.ts +20 -20
  229. package/out/generator/genMetaData.js +50 -15
  230. package/out/generator/genMetaData.js.map +1 -1
  231. package/out/index.d.ts +2 -0
  232. package/out/index.js +2 -0
  233. package/out/index.js.map +1 -1
  234. package/out/manager/diagnostic.d.ts +1 -1
  235. package/out/server/createUiTs.d.ts +1 -0
  236. package/out/server/createUiTs.js +49 -5
  237. package/out/server/createUiTs.js.map +1 -1
  238. package/out/server/entity2LogicNamespace.js +38 -23
  239. package/out/server/entity2LogicNamespace.js.map +1 -1
  240. package/out/server/getExtensionModules.js +2 -0
  241. package/out/server/getExtensionModules.js.map +1 -1
  242. package/out/server/getFunctions.d.ts +1 -0
  243. package/out/server/getFunctions.js +7 -1
  244. package/out/server/getFunctions.js.map +1 -1
  245. package/out/server/getLogics.js +63 -18
  246. package/out/server/getLogics.js.map +1 -1
  247. package/out/server/getMemberIdentifier.d.ts +16 -1
  248. package/out/server/getMemberIdentifier.js +279 -36
  249. package/out/server/getMemberIdentifier.js.map +1 -1
  250. package/out/server/getProcesses.d.ts +6 -1
  251. package/out/server/getProcesses.js +243 -1
  252. package/out/server/getProcesses.js.map +1 -1
  253. package/out/server/getScope.d.ts +12 -0
  254. package/out/server/getScope.js +57 -0
  255. package/out/server/getScope.js.map +1 -0
  256. package/out/server/index.js +4 -0
  257. package/out/server/index.js.map +1 -1
  258. package/out/server/naslServer.d.ts +30 -53
  259. package/out/server/naslServer.js +721 -381
  260. package/out/server/naslServer.js.map +1 -1
  261. package/out/server/process2LogicNamespace.d.ts +10 -0
  262. package/out/server/process2LogicNamespace.js +29 -1
  263. package/out/server/process2LogicNamespace.js.map +1 -1
  264. package/out/server/translator.d.ts +22 -3
  265. package/out/server/translator.js +367 -123
  266. package/out/server/translator.js.map +1 -1
  267. package/out/service/creator/add.configs.d.ts +1 -0
  268. package/out/service/creator/add.configs.js +68 -0
  269. package/out/service/creator/add.configs.js.map +1 -0
  270. package/out/service/creator/errHandles.d.ts +18 -0
  271. package/out/service/creator/errHandles.js +60 -0
  272. package/out/service/creator/errHandles.js.map +1 -0
  273. package/out/service/creator/index.d.ts +1 -0
  274. package/out/service/creator/index.js +72 -0
  275. package/out/service/creator/index.js.map +1 -0
  276. package/out/service/storage/api.d.ts +18 -0
  277. package/out/service/storage/api.js +17 -0
  278. package/out/service/storage/api.js.map +1 -0
  279. package/out/service/storage/init.js +213 -37
  280. package/out/service/storage/init.js.map +1 -1
  281. package/out/service/storage/service.d.ts +2 -0
  282. package/out/service/storage/service.js +10 -0
  283. package/out/service/storage/service.js.map +1 -0
  284. package/out/service/storage/storagePoint.d.ts +1 -14
  285. package/out/service/storage/storagePoint.js +16 -16
  286. package/out/service/storage/storagePoint.js.map +1 -1
  287. package/out/templator/genCreateBlock.js +6 -6
  288. package/out/templator/genCreateBlock.js.map +1 -1
  289. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  290. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  291. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  292. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  293. package/out/templator/genEditTableBlock.js +5 -5
  294. package/out/templator/genEditTableBlock.js.map +1 -1
  295. package/out/templator/genEnumSelectBlock.js +2 -2
  296. package/out/templator/genEnumSelectBlock.js.map +1 -1
  297. package/out/templator/genGetBlock.js +5 -3
  298. package/out/templator/genGetBlock.js.map +1 -1
  299. package/out/templator/genGridViewBlock.d.ts +3 -1
  300. package/out/templator/genGridViewBlock.js +61 -6
  301. package/out/templator/genGridViewBlock.js.map +1 -1
  302. package/out/templator/genQueryComponent.d.ts +2 -0
  303. package/out/templator/genQueryComponent.js +27 -14
  304. package/out/templator/genQueryComponent.js.map +1 -1
  305. package/out/templator/genTableBlock.d.ts +1 -1
  306. package/out/templator/genTableBlock.js +4 -5
  307. package/out/templator/genTableBlock.js.map +1 -1
  308. package/out/templator/genUpdateBlock.js +9 -10
  309. package/out/templator/genUpdateBlock.js.map +1 -1
  310. package/out/templator/utils.d.ts +13 -4
  311. package/out/templator/utils.js +8 -4
  312. package/out/templator/utils.js.map +1 -1
  313. package/out/test/fixtures/env.js +0 -1
  314. package/out/test/fixtures/env.js.map +1 -1
  315. package/out/test/integration/connect-file copy.d.ts +1 -0
  316. package/out/test/integration/connect-file copy.js +50 -0
  317. package/out/test/integration/connect-file copy.js.map +1 -0
  318. package/out/test/integration/node-nasl-server.d.ts +1 -0
  319. package/out/test/integration/node-nasl-server.js +41 -0
  320. package/out/test/integration/node-nasl-server.js.map +1 -0
  321. package/out/test/units/page/Element.spec.js +3 -3
  322. package/out/test/units/page/Element.spec.js.map +1 -1
  323. package/out/test/units/temp/temp.spec.js +1 -1
  324. package/out/test/units/temp/temp.spec.js.map +1 -1
  325. package/out/utils/index.d.ts +6 -0
  326. package/out/utils/index.js +25 -1
  327. package/out/utils/index.js.map +1 -1
  328. package/out/utils/string.d.ts +1 -1
  329. package/out/utils/string.js +38 -9
  330. package/out/utils/string.js.map +1 -1
  331. package/package.json +2 -1
  332. package/src/automate/engine/index.js +97 -118
  333. package/src/automate/engine/operators.js +63 -0
  334. package/src/automate/engine/uniqueName.js +36 -0
  335. package/src/automate/engine/utils.js +49 -19
  336. package/src/common/BaseNode.ts +223 -87
  337. package/src/concepts/App__.ts +86 -46
  338. package/src/concepts/Argument__.ts +23 -3
  339. package/src/concepts/Assignee__.ts +437 -0
  340. package/src/concepts/Assignment__.ts +4 -1
  341. package/src/concepts/BinaryExpression__.ts +9 -7
  342. package/src/concepts/BindAttribute__.ts +69 -9
  343. package/src/concepts/BindDirective__.ts +22 -3
  344. package/src/concepts/BindEvent__.ts +67 -23
  345. package/src/concepts/BooleanLiteral__.ts +8 -0
  346. package/src/concepts/CallFunction__.ts +58 -25
  347. package/src/concepts/CallInterface__.ts +236 -26
  348. package/src/concepts/CallLogic__.ts +111 -52
  349. package/src/concepts/CallQueryComponent__.ts +36 -21
  350. package/src/concepts/Comment__.ts +6 -2
  351. package/src/concepts/CompletionProperty__.ts +5 -1
  352. package/src/concepts/ConfigGroup__.ts +3 -3
  353. package/src/concepts/ConfigProperty__.ts +3 -3
  354. package/src/concepts/Configuration__.ts +3 -3
  355. package/src/concepts/Constant__.ts +12 -0
  356. package/src/concepts/Destination__.ts +106 -18
  357. package/src/concepts/End__.ts +8 -1
  358. package/src/concepts/EntityProperty__.ts +69 -5
  359. package/src/concepts/Entity__.ts +33 -28
  360. package/src/concepts/Enum__.ts +16 -11
  361. package/src/concepts/Event__.ts +3 -3
  362. package/src/concepts/ForEachStatement__.ts +16 -21
  363. package/src/concepts/Function__.ts +13 -13
  364. package/src/concepts/Identifier__.ts +82 -32
  365. package/src/concepts/IfStatement__.ts +4 -4
  366. package/src/concepts/InterfaceParam__.ts +49 -27
  367. package/src/concepts/Interface__.ts +130 -16
  368. package/src/concepts/JSBlock__.ts +4 -0
  369. package/src/concepts/LogicItem__.ts +16 -1
  370. package/src/concepts/Logic__.ts +201 -39
  371. package/src/concepts/MemberExpression__.ts +58 -15
  372. package/src/concepts/Module__.ts +35 -24
  373. package/src/concepts/Namespace__.ts +49 -37
  374. package/src/concepts/NullLiteral__.ts +8 -1
  375. package/src/concepts/NumericLiteral__.ts +17 -6
  376. package/src/concepts/Param__.ts +54 -28
  377. package/src/concepts/ProcessComponent__.ts +6 -6
  378. package/src/concepts/ProcessElement__.ts +143 -44
  379. package/src/concepts/ProcessOutcome__.ts +1 -1
  380. package/src/concepts/Process__.ts +85 -98
  381. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  382. package/src/concepts/QueryFromExpression__.ts +2 -2
  383. package/src/concepts/QueryJoinExpression__.ts +5 -5
  384. package/src/concepts/QueryLimitExpression__.ts +2 -2
  385. package/src/concepts/QuerySelectExpression__.ts +3 -3
  386. package/src/concepts/Return__.ts +60 -29
  387. package/src/concepts/Role__.ts +11 -4
  388. package/src/concepts/SqlQueryComponent__.ts +2 -2
  389. package/src/concepts/StringLiteral__.ts +20 -31
  390. package/src/concepts/StructureProperty__.ts +50 -33
  391. package/src/concepts/Structure__.ts +32 -10
  392. package/src/concepts/SwitchCase__.ts +4 -4
  393. package/src/concepts/SwitchStatement__.ts +2 -2
  394. package/src/concepts/TypeAnnotation__.ts +59 -16
  395. package/src/concepts/UnaryExpression__.ts +10 -8
  396. package/src/concepts/Unparsed__.ts +1 -1
  397. package/src/concepts/ValidationRule__.ts +44 -14
  398. package/src/concepts/Variable__.ts +67 -25
  399. package/src/concepts/ViewComponent__.ts +15 -15
  400. package/src/concepts/ViewElement__.ts +380 -264
  401. package/src/concepts/View__.ts +139 -94
  402. package/src/concepts/WhileStatement__.ts +4 -4
  403. package/src/concepts/basics/stdlib/index.ts +4 -2
  404. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  405. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  406. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  407. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  408. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  409. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  410. package/src/concepts/basics/types/coreTypeList.ts +11 -10
  411. package/src/concepts/index__.ts +1 -0
  412. package/src/config.ts +1 -2
  413. package/src/enums/KEYWORDS.ts +1204 -0
  414. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  415. package/src/eventBus.ts +5 -0
  416. package/src/generator/genBundleFiles.ts +182 -30
  417. package/src/generator/genMetaData.ts +72 -21
  418. package/src/index.ts +2 -0
  419. package/src/manager/diagnostic.ts +1 -1
  420. package/src/server/createUiTs.ts +50 -8
  421. package/src/server/entity2LogicNamespace.ts +41 -25
  422. package/src/server/getExtensionModules.ts +2 -0
  423. package/src/server/getFunctions.ts +6 -0
  424. package/src/server/getLogics.ts +66 -19
  425. package/src/server/getMemberIdentifier.ts +275 -46
  426. package/src/server/getProcesses.ts +248 -4
  427. package/src/server/getScope.ts +62 -0
  428. package/src/server/index.ts +12 -1
  429. package/src/server/naslServer.ts +715 -398
  430. package/src/server/process2LogicNamespace.ts +30 -2
  431. package/src/server/translator.ts +423 -128
  432. package/src/service/config/index.js +1 -1
  433. package/src/service/creator/errHandles.js +5 -2
  434. package/src/service/creator/index.js +0 -6
  435. package/src/service/storage/api.js +14 -0
  436. package/src/service/storage/init.ts +217 -47
  437. package/src/service/storage/service.ts +6 -0
  438. package/src/service/storage/storagePoint.ts +16 -16
  439. package/src/templator/genCreateBlock.ts +6 -6
  440. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  441. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  442. package/src/templator/genEditTableBlock.ts +5 -5
  443. package/src/templator/genEnumSelectBlock.ts +2 -2
  444. package/src/templator/genGetBlock.ts +6 -8
  445. package/src/templator/genGridViewBlock.ts +59 -9
  446. package/src/templator/genQueryComponent.ts +39 -28
  447. package/src/templator/genTableBlock.ts +5 -9
  448. package/src/templator/genUpdateBlock.ts +9 -11
  449. package/src/templator/utils.ts +9 -6
  450. package/src/test/fixtures/env.ts +0 -2
  451. package/src/test/units/page/Element.spec.ts +3 -3
  452. package/src/test/units/temp/temp.spec.ts +1 -1
  453. package/src/utils/index.ts +24 -0
  454. package/src/utils/string.ts +39 -9
  455. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  456. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  457. package/out/data/Module.d.ts +0 -34
  458. package/out/data/Module.js +0 -53
  459. package/out/data/Module.js.map +0 -1
  460. package/src/automate/engine/index.d.ts +0 -3
@@ -83,6 +83,10 @@ export class JSBlock extends LogicItem {
83
83
  await jsBlock_number();`;
84
84
  }
85
85
 
86
+ toEmbeddedTS(state?: TranslatorState): string {
87
+ return '';
88
+ }
89
+
86
90
  //================================================================================
87
91
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
88
92
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -1,6 +1,7 @@
1
1
  import { TranslatorState } from '../translator';
2
2
  import CallFunction from './CallFunction__';
3
3
  import { ElementToVueOptions } from './ViewElement__';
4
+ import CallQueryComponent from './CallQueryComponent__';
4
5
 
5
6
  //================================================================================
6
7
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -29,7 +30,7 @@ export class LogicItem extends BaseNode {
29
30
  * 产品概念
30
31
  */
31
32
  @property()
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';
33
+ 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' | 'Assignee' = 'LogicItem';
33
34
 
34
35
  /**
35
36
  * 逻辑项标题
@@ -224,6 +225,20 @@ export class LogicItem extends BaseNode {
224
225
  return this.toJS(state);
225
226
  }
226
227
 
228
+ delete() {
229
+ let actionMsg = '删除逻辑项';
230
+ if(this.name) actionMsg += `“${this.name}”`;
231
+ this.app?.emit('collect:start', {
232
+ actionMsg,
233
+ });
234
+ super.delete();
235
+ this.traverseChildren((el) => {
236
+ if(el?.concept === 'CallQueryComponent')
237
+ (el as CallQueryComponent).removeStructure();
238
+ });
239
+ this.app?.emit('collect:end');
240
+ }
241
+
227
242
  //================================================================================
228
243
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
229
244
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -1,8 +1,7 @@
1
1
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState, embeddedTSEmitter } from '../translator';
2
2
  import Namespace from './Namespace__';
3
3
  import CallQueryComponent from './CallQueryComponent__';
4
- import pluralize = require('pluralize');
5
- import { kebabCase } from 'lodash';
4
+ import ForEachStatement from './ForEachStatement__';
6
5
  //================================================================================
7
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
8
7
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -233,7 +232,7 @@ export class Logic extends BaseNode {
233
232
  return (this.typeParams || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
234
233
  }
235
234
  getTypeParamUniqueName(name = 'typeParam1') {
236
- return utils.unique(name, this.getTypeParamExistingNames());
235
+ return utils.unique(name, this.getTypeParamExistingNames(), undefined, false);
237
236
  }
238
237
 
239
238
  /**
@@ -272,7 +271,7 @@ export class Logic extends BaseNode {
272
271
  name: options,
273
272
  }, this, 'typeParams');
274
273
  } else if (options instanceof TypeParam) {
275
- options.delete(); // 同一实例不支持多处存在
274
+ options.ensureDelete(); // 同一实例不支持多处存在
276
275
  typeParam = options;
277
276
  Object.assign(typeParam, relationOptions);
278
277
  } else {
@@ -360,7 +359,7 @@ export class Logic extends BaseNode {
360
359
 
361
360
  addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
362
361
  const node = this._addTypeParam(options as any);
363
- const index = this.typeParams.length;
362
+ const index = this.typeParams.indexOf(node);
364
363
  node.create({
365
364
  index,
366
365
  parentNode: this,
@@ -371,7 +370,7 @@ export class Logic extends BaseNode {
371
370
 
372
371
 
373
372
  getParamUniqueName(name = 'param1') {
374
- return utils.unique(name, this.getVarExistingNames());
373
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
375
374
  }
376
375
 
377
376
  /**
@@ -410,7 +409,7 @@ export class Logic extends BaseNode {
410
409
  name: options,
411
410
  }, this, 'params');
412
411
  } else if (options instanceof Param) {
413
- options.delete(); // 同一实例不支持多处存在
412
+ options.ensureDelete(); // 同一实例不支持多处存在
414
413
  param = options;
415
414
  Object.assign(param, relationOptions);
416
415
  } else {
@@ -498,7 +497,7 @@ export class Logic extends BaseNode {
498
497
 
499
498
  addParam(options?: string | Partial<Param> | Param) {
500
499
  const node = this._addParam(options as any);
501
- const index = this.params.length;
500
+ const index = this.params.indexOf(node);
502
501
  node.create({
503
502
  index,
504
503
  parentNode: this,
@@ -508,8 +507,8 @@ export class Logic extends BaseNode {
508
507
  }
509
508
 
510
509
 
511
- getReturnUniqueName(name = 'result1') {
512
- return utils.unique(name, this.getVarExistingNames());
510
+ getReturnUniqueName(name = 'result') {
511
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
513
512
  }
514
513
 
515
514
  /**
@@ -548,7 +547,7 @@ export class Logic extends BaseNode {
548
547
  name: options,
549
548
  }, this, 'returns');
550
549
  } else if (options instanceof Return) {
551
- options.delete(); // 同一实例不支持多处存在
550
+ options.ensureDelete(); // 同一实例不支持多处存在
552
551
  ret = options;
553
552
  Object.assign(ret, relationOptions);
554
553
  } else {
@@ -636,7 +635,7 @@ export class Logic extends BaseNode {
636
635
 
637
636
  addReturn(options?: string | Partial<Return> | Return) {
638
637
  const node = this._addReturn(options as any);
639
- const index = this.returns.length;
638
+ const index = this.returns.indexOf(node);
640
639
  node.create({
641
640
  index,
642
641
  parentNode: this,
@@ -647,7 +646,7 @@ export class Logic extends BaseNode {
647
646
 
648
647
 
649
648
  getVariableUniqueName(name = 'variable1') {
650
- return utils.unique(name, this.getVarExistingNames());
649
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
651
650
  }
652
651
 
653
652
  /**
@@ -686,7 +685,7 @@ export class Logic extends BaseNode {
686
685
  name: options,
687
686
  }, this, 'variables');
688
687
  } else if (options instanceof Variable) {
689
- options.delete(); // 同一实例不支持多处存在
688
+ options.ensureDelete(); // 同一实例不支持多处存在
690
689
  variable = options;
691
690
  Object.assign(variable, relationOptions);
692
691
  } else {
@@ -774,7 +773,7 @@ export class Logic extends BaseNode {
774
773
 
775
774
  addVariable(options?: string | Partial<Variable> | Variable) {
776
775
  const node = this._addVariable(options as any);
777
- const index = this.variables.length;
776
+ const index = this.variables.indexOf(node);
778
777
  node.create({
779
778
  index,
780
779
  parentNode: this,
@@ -807,7 +806,7 @@ export class Logic extends BaseNode {
807
806
  const relationOptions = { parentNode: this, parentKey: 'body' };
808
807
  let logicItem: LogicItem;
809
808
  if (options instanceof LogicItem) {
810
- options.delete(); // 同一实例不支持多处存在
809
+ options.ensureDelete(); // 同一实例不支持多处存在
811
810
  logicItem = options;
812
811
  Object.assign(logicItem, relationOptions);
813
812
  } else {
@@ -881,7 +880,7 @@ export class Logic extends BaseNode {
881
880
 
882
881
  addItemInBody(options?: Partial<LogicItem> | LogicItem) {
883
882
  const node = this._addItemInBody(options as any);
884
- const index = this.body.length;
883
+ const index = this.body.indexOf(node);
885
884
  node.create({
886
885
  index,
887
886
  parentNode: this,
@@ -911,7 +910,7 @@ export class Logic extends BaseNode {
911
910
  const relationOptions = { parentNode: this, parentKey: 'playground' };
912
911
  let logicItem: LogicItem;
913
912
  if (options instanceof LogicItem) {
914
- options.delete(); // 同一实例不支持多处存在
913
+ options.ensureDelete(); // 同一实例不支持多处存在
915
914
  logicItem = options;
916
915
  Object.assign(logicItem, relationOptions);
917
916
  } else {
@@ -985,7 +984,7 @@ export class Logic extends BaseNode {
985
984
 
986
985
  addItemInPlayground(options?: Partial<LogicItem> | LogicItem) {
987
986
  const node = this._addItemInPlayground(options as any);
988
- const index = this.playground.length;
987
+ const index = this.playground.indexOf(node);
989
988
  node.create({
990
989
  index,
991
990
  parentNode: this,
@@ -1298,7 +1297,35 @@ export class Logic extends BaseNode {
1298
1297
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1299
1298
  // 自动生成的代码已结束。下面可以手动编写。
1300
1299
  //================================================================================
1300
+ // 用于calllogic树中定位是那个logic,回显
1301
+ get calleewholeKey() {
1302
+ return this.getNamespace() + '.' + this.name;
1303
+ }
1304
+ // 设置定时任务
1305
+ setCronAndTriggerType(cron: string, triggerType: string) {
1306
+ const object = {
1307
+ cron,
1308
+ triggerType,
1309
+ };
1310
+ this.update({
1311
+ ...object,
1312
+ });
1313
+ }
1301
1314
 
1315
+ /**
1316
+ * 创建的时候 打开事务 通过开关设置数据库事务
1317
+ */
1318
+ openTransactional(flag: boolean) {
1319
+ if (flag) {
1320
+ const transactional = new Transactional({
1321
+ enabled: flag,
1322
+ });
1323
+ transactional._delete();
1324
+ const relationOptions = { parentNode: this, parentKey: 'transactional' };
1325
+ Object.assign(transactional, relationOptions);
1326
+ this.transactional = transactional;
1327
+ }
1328
+ }
1302
1329
  findLogicItemByConcept(concept: string) {
1303
1330
  let result: any;
1304
1331
 
@@ -1319,7 +1346,36 @@ export class Logic extends BaseNode {
1319
1346
 
1320
1347
  getVarExistingNames(excludedList: Array<Param | Return | Variable> = []) {
1321
1348
  const excludedSet = new Set(excludedList);
1322
- return [...this.params, ...this.returns, ...this.variables].filter((item) => !excludedSet.has(item)).map((item) => item.name);
1349
+ const varList: any[] = [];
1350
+ if (Array.isArray(this.params)) {
1351
+ varList.push(...this.params);
1352
+ }
1353
+ if (Array.isArray(this.returns)) {
1354
+ varList.push(...this.returns);
1355
+ }
1356
+ if (Array.isArray(this.variables)) {
1357
+ varList.push(...this.variables);
1358
+ }
1359
+ if (this.view) {
1360
+ if (Array.isArray(this.view.params)) {
1361
+ varList.push(...this.view.params);
1362
+ }
1363
+ if (Array.isArray(this.view.variables)) {
1364
+ varList.push(...this.view.variables);
1365
+ }
1366
+ }
1367
+
1368
+ this.traverseChildren((el) => {
1369
+ if (el?.concept === 'ForEachStatement') {
1370
+ if ((el as ForEachStatement)?.item) {
1371
+ varList.push((el as ForEachStatement)?.item);
1372
+ }
1373
+ if ((el as ForEachStatement)?.index) {
1374
+ varList.push((el as ForEachStatement)?.index);
1375
+ }
1376
+ }
1377
+ });
1378
+ return varList.filter((item) => !excludedSet.has(item)).map((item) => item?.name);
1323
1379
  }
1324
1380
 
1325
1381
  toJS(state?: TranslatorState): string {
@@ -1364,15 +1420,23 @@ export class Logic extends BaseNode {
1364
1420
  });
1365
1421
  }
1366
1422
 
1367
- if (Array.isArray(this.returns) && this.returns.length) {
1368
- code += `return ${this.returns[0].name};\n`;
1369
- }
1370
-
1371
1423
  code += indent(state.tabSize) + '}\n';
1372
1424
 
1373
1425
  return code;
1374
1426
  }
1375
1427
 
1428
+ toProcessService() {
1429
+ return {
1430
+ config: {
1431
+ serviceType: 'micro',
1432
+ },
1433
+ url: {
1434
+ method: 'POST',
1435
+ path: this.getPath(),
1436
+ },
1437
+ };
1438
+ }
1439
+
1376
1440
  toService() {
1377
1441
  const parentNode = this.parentNode;
1378
1442
  const { concept, name: entityName } = parentNode || {};
@@ -1380,14 +1444,19 @@ export class Logic extends BaseNode {
1380
1444
  let serviceType = 'micro';
1381
1445
  let method = 'POST';
1382
1446
  let path = `/api/${logicName}`;
1383
- if (concept === 'Namespace') {
1447
+ if (concept === 'Module') {
1448
+ path = `/api/${entityName.replace('-', '_')}/${logicName}`;
1449
+ } else if (concept === 'Namespace') {
1384
1450
  serviceType = 'entity';
1385
- const pluralized = pluralize(entityName);
1386
- path = `/api/${pluralized.toLowerCase()}`;
1451
+ const entityPath = entityName.replace(/[A-Z]/g, (char, index) => {
1452
+ const lowerChar = char.toLowerCase();
1453
+ return index === 0 ? lowerChar : `-${lowerChar}`;
1454
+ });
1455
+ path = `/api/${entityPath}`;
1387
1456
  switch (this.name) {
1388
1457
  case 'get':
1389
1458
  method = 'GET';
1390
- path = `/api/${pluralized.toLowerCase()}/{id}`;
1459
+ path = `/api/${entityPath}`;
1391
1460
  break;
1392
1461
  case 'create':
1393
1462
  method = 'POST';
@@ -1397,23 +1466,23 @@ export class Logic extends BaseNode {
1397
1466
  break;
1398
1467
  case 'delete':
1399
1468
  method = 'DELETE';
1400
- path = `/api/${pluralized.toLowerCase()}/{id}`;
1469
+ path = `/api/${entityPath}`;
1401
1470
  break;
1402
1471
  case 'batchCreate':
1403
1472
  method = 'POST';
1404
- path = `/api/${pluralized.toLowerCase()}/batch`;
1473
+ path = `/api/${entityPath}/batch`;
1405
1474
  break;
1406
1475
  case 'batchUpdate':
1407
1476
  method = 'PUT';
1408
- path = `/api/${pluralized.toLowerCase()}/batch`;
1477
+ path = `/api/${entityPath}/batch`;
1409
1478
  break;
1410
1479
  case 'batchDelete':
1411
1480
  method = 'DELETE';
1412
- path = `/api/${pluralized.toLowerCase()}/batch`;
1481
+ path = `/api/${entityPath}/batch`;
1413
1482
  break;
1414
1483
  case 'import':
1415
1484
  method = 'POST';
1416
- path = `/api/${pluralized.toLowerCase()}/import`;
1485
+ path = `/api/${entityPath}/import`;
1417
1486
  break;
1418
1487
  default:
1419
1488
  break;
@@ -1431,6 +1500,50 @@ export class Logic extends BaseNode {
1431
1500
  };
1432
1501
  }
1433
1502
 
1503
+ @withSourceMap()
1504
+ toEmbeddedTSInProcess(state?: TranslatorState, prependCode?: string, noName?: boolean): string {
1505
+ let code = '';
1506
+ code += `${noName ? '' : `${this.name}:`} function(`;
1507
+ this.params.forEach((param, index) => {
1508
+ code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
1509
+ if (index !== this.params.length - 1)
1510
+ code += ', ';
1511
+ });
1512
+ code += `) {\n`;
1513
+ code += prependCode || '';
1514
+ code += '\n';
1515
+ this.variables.forEach((variable) => {
1516
+ code += indent(state.tabSize + 1) + 'let ';
1517
+ code += variable.toEmbeddedTS(shiftState(state, code, { inline: true }));
1518
+ code += ';\n';
1519
+ });
1520
+
1521
+ this.returns.forEach((ret) => {
1522
+ code += indent(state.tabSize + 1) + 'let ';
1523
+ code += ret.toEmbeddedTS(shiftState(state, code, { inline: true }));
1524
+ code += ';\n';
1525
+ });
1526
+
1527
+ if (!this.body.length && this.returns.length) {
1528
+ code += indent(state.tabSize + 1) + `return ${this.returns[0].name};\n`;
1529
+ } else {
1530
+ this.body.forEach((item) => {
1531
+ code += item.toEmbeddedTS && item.toEmbeddedTS(shiftState(state, code, { tabSize: state.tabSize + 1 }));
1532
+ code += '\n';
1533
+ });
1534
+ }
1535
+
1536
+ // 在body渲染完成之后把其余的节点放到下面
1537
+ this.playground.forEach((item) => {
1538
+ code += item.toEmbeddedTS(shiftState(state, code, { tabSize: state.tabSize + 1 }));
1539
+ code += '\n';
1540
+ });
1541
+
1542
+ code += indent(state.tabSize) + '}';
1543
+ code += '\n';
1544
+ return code;
1545
+ }
1546
+
1434
1547
  toEmbeddedTSNoExport(state?: TranslatorState): string {
1435
1548
  return this.toEmbeddedTS(state, 'noExport');
1436
1549
  }
@@ -1442,16 +1555,21 @@ export class Logic extends BaseNode {
1442
1555
  if (!prefix) {
1443
1556
  code += `export function ${this.name}(`;
1444
1557
  } else if (prefix === 'noExport') {
1445
- code += ` function ${this.name}(`;
1558
+ code += `function ${this.name}(`;
1446
1559
  } else if (prefix === 'inObject') {
1447
- code += ` ${this.name}(`;
1560
+ code += `${this.name}(`;
1448
1561
  }
1449
1562
  this.params.forEach((param, index) => {
1450
1563
  code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
1451
1564
  if (index !== this.params.length - 1)
1452
1565
  code += ', ';
1453
1566
  });
1454
- code += `) {\n`;
1567
+ code += ')';
1568
+ if (this.returns.length) {
1569
+ code += ': ';
1570
+ code += this.returns[0].typeAnnotation.toEmbeddedTS(shiftState(state, code, { inline: true }));
1571
+ }
1572
+ code += '{\n';
1455
1573
 
1456
1574
  this.variables.forEach((variable) => {
1457
1575
  code += indent(state.tabSize + 1) + 'let ';
@@ -1494,7 +1612,28 @@ export class Logic extends BaseNode {
1494
1612
  if (this.parentNode instanceof Namespace || this.parentNode instanceof App || this.parentNode instanceof Module) {
1495
1613
  parentNodeNamespace = this.parentNode.getNamespace();
1496
1614
  }
1497
- parentNodeNamespace = parentNodeNamespace.includes('.logics') ? parentNodeNamespace : `${parentNodeNamespace}.logics`;
1615
+
1616
+ parentNodeNamespace
1617
+ = ['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration'].includes(parentNodeNamespace) || parentNodeNamespace.includes('.logics') ? parentNodeNamespace : `${parentNodeNamespace}.logics`;
1618
+ if (this.parentNode instanceof View) {
1619
+ return (parentNodeNamespace = '');
1620
+ }
1621
+ return parentNodeNamespace;
1622
+ } else
1623
+ throw new Error('无法获取命名空间,请设置 parentNode!');
1624
+ }
1625
+
1626
+ getTsNamespace(): string {
1627
+ if (this.parentNode) {
1628
+ let parentNodeNamespace = '';
1629
+ if (this.parentNode instanceof Namespace || this.parentNode instanceof App) {
1630
+ parentNodeNamespace = this.parentNode.getNamespace();
1631
+ } else if (this.parentNode instanceof Module) {
1632
+ parentNodeNamespace = this.parentNode.getTsNamespace();
1633
+ }
1634
+
1635
+ parentNodeNamespace
1636
+ = ['nasl.ui', 'nasl.utils', 'nasl.util', 'nasl.browser', 'nasl.auth', 'nasl.configuration'].includes(parentNodeNamespace) || parentNodeNamespace.includes('.logics') ? parentNodeNamespace : `${parentNodeNamespace}.logics`;
1498
1637
  if (this.parentNode instanceof View) {
1499
1638
  return (parentNodeNamespace = '');
1500
1639
  }
@@ -1513,10 +1652,15 @@ export class Logic extends BaseNode {
1513
1652
  }
1514
1653
 
1515
1654
  toEmbeddedTSFile() {
1516
- let code = `namespace ${this.getNamespace()} {\n`;
1655
+ let code = `namespace ${this.getTsNamespace()} {\n`;
1517
1656
 
1518
1657
  const state = createCompilerState(code, { tabSize: 1 });
1519
- code += this.toEmbeddedTS(state);
1658
+ try {
1659
+ code += this.toEmbeddedTS(state);
1660
+ } catch (err) {
1661
+ console.log(err, '有问题翻译失败');
1662
+ code += '';
1663
+ }
1520
1664
  code += '}\n';
1521
1665
  return {
1522
1666
  code,
@@ -1568,6 +1712,24 @@ export class Logic extends BaseNode {
1568
1712
  }));
1569
1713
  }
1570
1714
  fake: boolean;
1715
+
1716
+ getPath: () => string;
1717
+
1718
+ delete() {
1719
+ let actionMsg = '删除逻辑项';
1720
+ if (this.name)
1721
+ actionMsg += `“${this.name}”`;
1722
+ this.app?.emit('collect:start', {
1723
+ actionMsg,
1724
+ });
1725
+ super.delete();
1726
+ this.traverseChildren((el) => {
1727
+ if (el?.concept === 'CallQueryComponent')
1728
+ (el as CallQueryComponent).removeStructure();
1729
+ });
1730
+ this.app?.emit('collect:end');
1731
+ }
1732
+
1571
1733
  //================================================================================
1572
1734
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1573
1735
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -1,6 +1,11 @@
1
1
  import { TranslatorState, shiftState, withSourceMap, indent } from '../translator';
2
+ import { TypeAnnotation } from '..';
2
3
  import { ElementToVueOptions } from './ViewElement__';
3
- import BinaryExpression from './BinaryExpression__';
4
+ import Identifier from './Identifier__';
5
+ import BindAttribute from './BindAttribute__';
6
+ import Assignment from './Assignment__';
7
+
8
+ const Identifier_RE = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
4
9
 
5
10
  //================================================================================
6
11
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -139,25 +144,60 @@ export class MemberExpression extends LogicItem {
139
144
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
140
145
  // 自动生成的代码已结束。下面可以手动编写。
141
146
  //================================================================================
142
-
147
+ // 选中的数据类型,这个用作暂存
148
+ typeAnnotation: TypeAnnotation = undefined;
143
149
  toVue(options?: ElementToVueOptions) {
144
- const object: string = this.object.toVue(options);
145
- const property = this.property.toVue(options);
150
+ // 如果是枚举取值
151
+ if (this.object?.concept === 'Identifier' && (this.object as Identifier)?.isEnum() && this.property?.concept === 'Identifier') {
152
+ return `"${this.property?.name}"`;
153
+ }
154
+ const object = String(this.object?.toVue(options)); // undefined 也让正常展示
155
+ const property = String(this.property?.toVue(options));
156
+
157
+ const bindAttr: BindAttribute = this.getAncestor('BindAttribute') as BindAttribute;
158
+ if (bindAttr && (bindAttr.sync || bindAttr.model))
159
+ return Identifier_RE.test(property) ? `${object}.${property}` : `${object}['${property}']`;
160
+
146
161
  const lastPart = object.split(' && ').pop();
147
- return options?.finalCode === false ? `${object}.${property}` : `${object} && ${lastPart}.${property}`;
162
+ if (Identifier_RE.test(property))
163
+ return options?.finalCode === false ? `${object}.${property}` : `${object} && ${lastPart}.${property}`;
164
+ else
165
+ return options?.finalCode === false ? `${object}['${property}']` : `${object} && ${lastPart}['${property}']`;
148
166
  }
149
167
 
150
168
  toUI(): string {
151
- const object: string = this.object.toUI();
152
- const property = this.property.toUI();
153
- return `${object}.${property}`;
169
+ // 如果是枚举取值
170
+ if (this.object?.concept === 'Identifier' && (this.object as Identifier)?.isEnum() && this.property?.concept === 'Identifier') {
171
+ return `${this.object?.name}.${this.property?.name}`;
172
+ }
173
+ const object: string = this.object?.toUI();
174
+ const property = this.property?.toUI();
175
+
176
+ return Identifier_RE.test(property) ? `${object}.${property}` : `${object}['${property}']`;
154
177
  }
155
178
 
156
179
  toJS(): string {
157
- const object: string = this.object.toJS();
158
- const property = this.property.toJS();
180
+ // 如果是枚举取值
181
+ if (this.object?.concept === 'Identifier' && (this.object as Identifier)?.isEnum() && this.property?.concept === 'Identifier') {
182
+ return `"${this.property?.name}"`;
183
+ }
184
+ const object: string = this.object?.toJS();
185
+ const property = this.property?.toJS();
186
+ // 在赋值语句的左侧,不能有 &&
187
+ const assignment: Assignment = this.getAncestor('Assignment') as Assignment;
188
+ if (assignment) {
189
+ const left = assignment.left;
190
+ let node: any = this;
191
+ while (node && node.concept === 'MemberExpression' && left !== node) {
192
+ node = node.parentNode;
193
+ }
194
+ // 在赋值语句的左侧
195
+ if (node) {
196
+ return Identifier_RE.test(property) ? `${object}.${property}` : `${object}['${property}']`;
197
+ }
198
+ }
159
199
  const lastPart = object.split(' && ').pop();
160
- return `${object} && ${lastPart}.${property}`;
200
+ return Identifier_RE.test(property) ? `${object} && ${lastPart}.${property}` : `${object} && ${lastPart}['${property}']`;
161
201
  }
162
202
 
163
203
  setValue(newValue: string) {
@@ -190,7 +230,6 @@ export class MemberExpression extends LogicItem {
190
230
  };
191
231
  this.update({
192
232
  ...object,
193
- field: 'name',
194
233
  });
195
234
  }
196
235
  // 方便快速取值,遍历获取value
@@ -224,9 +263,13 @@ export class MemberExpression extends LogicItem {
224
263
 
225
264
  // 就说明这是一个枚举取值操作,直接啊app.enums.color.red 要转成字符串
226
265
  code += leftCode + rightCode;
227
- // if (leftCode.startsWith('app.enums.') && !(this.parentNode instanceof BinaryExpression)) {
228
- // code += '.toList()';
229
- // }
266
+ // 解决枚举可能全是数字的问题
267
+ // app.enums.color || extensions.tool.enums.color
268
+ if (leftCode.startsWith('app.enums.') || (leftCode.startsWith('extensions') && leftCode.includes('.enums.'))) {
269
+ const lastIndex = leftCode.lastIndexOf('.');
270
+ const newCode = `${code.substring(0, lastIndex)}['${code.substring(lastIndex + 1, code.length)}']`;
271
+ code = newCode;
272
+ }
230
273
  return code;
231
274
  }
232
275