@lcap/nasl 1.0.0-alpha.9 → 1.0.2

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 (481) 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 +379 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +21 -1
  14. package/out/common/BaseNode.js +232 -84
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +19 -1
  17. package/out/concepts/App__.js +88 -45
  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 +201 -0
  23. package/out/concepts/Assignee__.js +298 -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 +58 -25
  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 +38 -3
  49. package/out/concepts/CallQueryComponent__.js +329 -75
  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 +16 -2
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +115 -22
  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/EntityIndex__.js +4 -2
  71. package/out/concepts/EntityIndex__.js.map +1 -1
  72. package/out/concepts/EntityProperty__.d.ts +11 -0
  73. package/out/concepts/EntityProperty__.js +71 -5
  74. package/out/concepts/EntityProperty__.js.map +1 -1
  75. package/out/concepts/Entity__.d.ts +5 -4
  76. package/out/concepts/Entity__.js +35 -19
  77. package/out/concepts/Entity__.js.map +1 -1
  78. package/out/concepts/Enum__.d.ts +5 -0
  79. package/out/concepts/Enum__.js +24 -12
  80. package/out/concepts/Enum__.js.map +1 -1
  81. package/out/concepts/Event__.js +3 -3
  82. package/out/concepts/Event__.js.map +1 -1
  83. package/out/concepts/ForEachStatement__.d.ts +1 -1
  84. package/out/concepts/ForEachStatement__.js +11 -15
  85. package/out/concepts/ForEachStatement__.js.map +1 -1
  86. package/out/concepts/Function__.js +13 -13
  87. package/out/concepts/Function__.js.map +1 -1
  88. package/out/concepts/Identifier__.d.ts +3 -0
  89. package/out/concepts/Identifier__.js +77 -30
  90. package/out/concepts/Identifier__.js.map +1 -1
  91. package/out/concepts/IfStatement__.js +4 -4
  92. package/out/concepts/IfStatement__.js.map +1 -1
  93. package/out/concepts/InterfaceParam__.d.ts +6 -4
  94. package/out/concepts/InterfaceParam__.js +57 -19
  95. package/out/concepts/InterfaceParam__.js.map +1 -1
  96. package/out/concepts/Interface__.d.ts +42 -30
  97. package/out/concepts/Interface__.js +133 -17
  98. package/out/concepts/Interface__.js.map +1 -1
  99. package/out/concepts/JSBlock__.d.ts +1 -0
  100. package/out/concepts/JSBlock__.js +3 -0
  101. package/out/concepts/JSBlock__.js.map +1 -1
  102. package/out/concepts/LogicItem__.d.ts +2 -1
  103. package/out/concepts/LogicItem__.js +14 -0
  104. package/out/concepts/LogicItem__.js.map +1 -1
  105. package/out/concepts/Logic__.d.ts +20 -1
  106. package/out/concepts/Logic__.js +194 -37
  107. package/out/concepts/Logic__.js.map +1 -1
  108. package/out/concepts/MemberExpression__.d.ts +2 -0
  109. package/out/concepts/MemberExpression__.js +49 -13
  110. package/out/concepts/MemberExpression__.js.map +1 -1
  111. package/out/concepts/Module__.d.ts +126 -120
  112. package/out/concepts/Module__.js +36 -26
  113. package/out/concepts/Module__.js.map +1 -1
  114. package/out/concepts/Namespace__.d.ts +5 -1
  115. package/out/concepts/Namespace__.js +48 -37
  116. package/out/concepts/Namespace__.js.map +1 -1
  117. package/out/concepts/NullLiteral__.d.ts +3 -0
  118. package/out/concepts/NullLiteral__.js +11 -1
  119. package/out/concepts/NullLiteral__.js.map +1 -1
  120. package/out/concepts/NumericLiteral__.d.ts +1 -1
  121. package/out/concepts/NumericLiteral__.js +17 -6
  122. package/out/concepts/NumericLiteral__.js.map +1 -1
  123. package/out/concepts/Param__.d.ts +7 -3
  124. package/out/concepts/Param__.js +64 -28
  125. package/out/concepts/Param__.js.map +1 -1
  126. package/out/concepts/ProcessComponent__.js +6 -6
  127. package/out/concepts/ProcessComponent__.js.map +1 -1
  128. package/out/concepts/ProcessElement__.d.ts +0 -4
  129. package/out/concepts/ProcessElement__.js +123 -54
  130. package/out/concepts/ProcessElement__.js.map +1 -1
  131. package/out/concepts/ProcessOutcome__.js +1 -1
  132. package/out/concepts/ProcessOutcome__.js.map +1 -1
  133. package/out/concepts/Process__.d.ts +7 -1
  134. package/out/concepts/Process__.js +81 -85
  135. package/out/concepts/Process__.js.map +1 -1
  136. package/out/concepts/QueryAggregateExpression__.js +1 -1
  137. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  138. package/out/concepts/QueryFieldExpression__.d.ts +1 -0
  139. package/out/concepts/QueryFieldExpression__.js +3 -0
  140. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  141. package/out/concepts/QueryFromExpression__.js +2 -2
  142. package/out/concepts/QueryFromExpression__.js.map +1 -1
  143. package/out/concepts/QueryGroupByExpression__.d.ts +3 -0
  144. package/out/concepts/QueryGroupByExpression__.js +20 -0
  145. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  146. package/out/concepts/QueryJoinExpression__.js +5 -5
  147. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  148. package/out/concepts/QueryLimitExpression__.js +2 -2
  149. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  150. package/out/concepts/QuerySelectExpression__.js +3 -3
  151. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  152. package/out/concepts/Return__.d.ts +4 -1
  153. package/out/concepts/Return__.js +74 -23
  154. package/out/concepts/Return__.js.map +1 -1
  155. package/out/concepts/Role__.d.ts +4 -0
  156. package/out/concepts/Role__.js +13 -4
  157. package/out/concepts/Role__.js.map +1 -1
  158. package/out/concepts/SqlQueryComponent__.js +2 -2
  159. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  160. package/out/concepts/StringLiteral__.d.ts +1 -1
  161. package/out/concepts/StringLiteral__.js +22 -39
  162. package/out/concepts/StringLiteral__.js.map +1 -1
  163. package/out/concepts/StructureProperty__.d.ts +5 -4
  164. package/out/concepts/StructureProperty__.js +55 -26
  165. package/out/concepts/StructureProperty__.js.map +1 -1
  166. package/out/concepts/Structure__.d.ts +44 -30
  167. package/out/concepts/Structure__.js +44 -12
  168. package/out/concepts/Structure__.js.map +1 -1
  169. package/out/concepts/SwitchCase__.js +4 -4
  170. package/out/concepts/SwitchCase__.js.map +1 -1
  171. package/out/concepts/SwitchStatement__.js +2 -2
  172. package/out/concepts/SwitchStatement__.js.map +1 -1
  173. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  174. package/out/concepts/TypeAnnotation__.js +82 -20
  175. package/out/concepts/TypeAnnotation__.js.map +1 -1
  176. package/out/concepts/UnaryExpression__.js +10 -8
  177. package/out/concepts/UnaryExpression__.js.map +1 -1
  178. package/out/concepts/Unparsed__.js +1 -1
  179. package/out/concepts/Unparsed__.js.map +1 -1
  180. package/out/concepts/ValidationRule__.d.ts +1 -0
  181. package/out/concepts/ValidationRule__.js +48 -13
  182. package/out/concepts/ValidationRule__.js.map +1 -1
  183. package/out/concepts/Variable__.d.ts +10 -1
  184. package/out/concepts/Variable__.js +77 -20
  185. package/out/concepts/Variable__.js.map +1 -1
  186. package/out/concepts/ViewComponent__.js +15 -15
  187. package/out/concepts/ViewComponent__.js.map +1 -1
  188. package/out/concepts/ViewElement__.d.ts +17 -11
  189. package/out/concepts/ViewElement__.js +302 -204
  190. package/out/concepts/ViewElement__.js.map +1 -1
  191. package/out/concepts/View__.d.ts +13 -12
  192. package/out/concepts/View__.js +124 -102
  193. package/out/concepts/View__.js.map +1 -1
  194. package/out/concepts/WhileStatement__.js +3 -3
  195. package/out/concepts/WhileStatement__.js.map +1 -1
  196. package/out/concepts/basics/stdlib/index.js +4 -1
  197. package/out/concepts/basics/stdlib/index.js.map +1 -1
  198. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  199. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  200. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  201. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  202. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  203. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  204. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  205. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  206. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  207. package/out/concepts/basics/stdlib/nasl.interface.d.ts +2 -0
  208. package/out/concepts/basics/stdlib/nasl.interface.js +4 -4
  209. package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
  210. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  211. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  212. package/out/concepts/basics/stdlib/nasl.util.js +138 -18
  213. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  214. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  215. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  216. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +1 -1
  217. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
  218. package/out/concepts/basics/types/coreTypeList.js +11 -10
  219. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  220. package/out/concepts/basics/types/index.d.ts +1 -0
  221. package/out/concepts/basics/types/index.js +3 -1
  222. package/out/concepts/basics/types/index.js.map +1 -1
  223. package/out/concepts/index__.d.ts +1 -0
  224. package/out/concepts/index__.js +1 -0
  225. package/out/concepts/index__.js.map +1 -1
  226. package/out/config.d.ts +1 -2
  227. package/out/config.js +1 -2
  228. package/out/config.js.map +1 -1
  229. package/out/enums/KEYWORDS.d.ts +3 -0
  230. package/out/enums/KEYWORDS.js +1199 -0
  231. package/out/enums/KEYWORDS.js.map +1 -0
  232. package/out/{terms → enums}/LEVEL_NAME_MAP.d.ts +0 -0
  233. package/out/{terms → enums}/LEVEL_NAME_MAP.js +0 -0
  234. package/out/{terms → enums}/LEVEL_NAME_MAP.js.map +1 -1
  235. package/out/eventBus.d.ts +3 -0
  236. package/out/eventBus.js +7 -0
  237. package/out/eventBus.js.map +1 -0
  238. package/out/generator/genBundleFiles.d.ts +7 -2
  239. package/out/generator/genBundleFiles.js +168 -27
  240. package/out/generator/genBundleFiles.js.map +1 -1
  241. package/out/generator/genMetaData.d.ts +20 -20
  242. package/out/generator/genMetaData.js +50 -15
  243. package/out/generator/genMetaData.js.map +1 -1
  244. package/out/index.d.ts +2 -0
  245. package/out/index.js +2 -0
  246. package/out/index.js.map +1 -1
  247. package/out/manager/diagnostic.d.ts +2 -2
  248. package/out/server/createUiTs.d.ts +1 -0
  249. package/out/server/createUiTs.js +49 -5
  250. package/out/server/createUiTs.js.map +1 -1
  251. package/out/server/entity2LogicNamespace.js +38 -23
  252. package/out/server/entity2LogicNamespace.js.map +1 -1
  253. package/out/server/extendBaseNode.d.ts +1 -0
  254. package/out/server/extendBaseNode.js +323 -0
  255. package/out/server/extendBaseNode.js.map +1 -0
  256. package/out/server/getExtensionModules.js +2 -0
  257. package/out/server/getExtensionModules.js.map +1 -1
  258. package/out/server/getFunctions.d.ts +1 -0
  259. package/out/server/getFunctions.js +7 -1
  260. package/out/server/getFunctions.js.map +1 -1
  261. package/out/server/getLogics.js +84 -18
  262. package/out/server/getLogics.js.map +1 -1
  263. package/out/server/getMemberIdentifier.d.ts +16 -1
  264. package/out/server/getMemberIdentifier.js +326 -38
  265. package/out/server/getMemberIdentifier.js.map +1 -1
  266. package/out/server/getProcesses.d.ts +8 -1
  267. package/out/server/getProcesses.js +383 -1
  268. package/out/server/getProcesses.js.map +1 -1
  269. package/out/server/getScope.d.ts +13 -0
  270. package/out/server/getScope.js +61 -0
  271. package/out/server/getScope.js.map +1 -0
  272. package/out/server/index.d.ts +1 -0
  273. package/out/server/index.js +5 -0
  274. package/out/server/index.js.map +1 -1
  275. package/out/server/naslServer.d.ts +36 -57
  276. package/out/server/naslServer.js +689 -615
  277. package/out/server/naslServer.js.map +1 -1
  278. package/out/server/process2LogicNamespace.d.ts +10 -0
  279. package/out/server/process2LogicNamespace.js +29 -1
  280. package/out/server/process2LogicNamespace.js.map +1 -1
  281. package/out/server/translator.d.ts +22 -3
  282. package/out/server/translator.js +369 -123
  283. package/out/server/translator.js.map +1 -1
  284. package/out/service/creator/add.configs.d.ts +1 -0
  285. package/out/service/creator/add.configs.js +68 -0
  286. package/out/service/creator/add.configs.js.map +1 -0
  287. package/out/service/creator/errHandles.d.ts +18 -0
  288. package/out/service/creator/errHandles.js +60 -0
  289. package/out/service/creator/errHandles.js.map +1 -0
  290. package/out/service/creator/index.d.ts +1 -0
  291. package/out/service/creator/index.js +72 -0
  292. package/out/service/creator/index.js.map +1 -0
  293. package/out/service/storage/api.d.ts +18 -0
  294. package/out/service/storage/api.js +17 -0
  295. package/out/service/storage/api.js.map +1 -0
  296. package/out/service/storage/init.js +221 -37
  297. package/out/service/storage/init.js.map +1 -1
  298. package/out/service/storage/service.d.ts +2 -0
  299. package/out/service/storage/service.js +10 -0
  300. package/out/service/storage/service.js.map +1 -0
  301. package/out/service/storage/storagePoint.d.ts +1 -14
  302. package/out/service/storage/storagePoint.js +16 -16
  303. package/out/service/storage/storagePoint.js.map +1 -1
  304. package/out/templator/genCreateBlock.js +6 -6
  305. package/out/templator/genCreateBlock.js.map +1 -1
  306. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  307. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  308. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  309. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  310. package/out/templator/genEditTableBlock.js +5 -5
  311. package/out/templator/genEditTableBlock.js.map +1 -1
  312. package/out/templator/genEnumSelectBlock.js +2 -2
  313. package/out/templator/genEnumSelectBlock.js.map +1 -1
  314. package/out/templator/genGetBlock.js +6 -4
  315. package/out/templator/genGetBlock.js.map +1 -1
  316. package/out/templator/genGridViewBlock.d.ts +3 -1
  317. package/out/templator/genGridViewBlock.js +61 -6
  318. package/out/templator/genGridViewBlock.js.map +1 -1
  319. package/out/templator/genQueryComponent.d.ts +2 -0
  320. package/out/templator/genQueryComponent.js +34 -18
  321. package/out/templator/genQueryComponent.js.map +1 -1
  322. package/out/templator/genSelectBlock.js +5 -15
  323. package/out/templator/genSelectBlock.js.map +1 -1
  324. package/out/templator/genTableBlock.d.ts +1 -1
  325. package/out/templator/genTableBlock.js +4 -5
  326. package/out/templator/genTableBlock.js.map +1 -1
  327. package/out/templator/genUpdateBlock.js +10 -11
  328. package/out/templator/genUpdateBlock.js.map +1 -1
  329. package/out/templator/utils.d.ts +16 -5
  330. package/out/templator/utils.js +10 -5
  331. package/out/templator/utils.js.map +1 -1
  332. package/out/test/fixtures/env.js +0 -1
  333. package/out/test/fixtures/env.js.map +1 -1
  334. package/out/test/units/page/Element.spec.js +3 -3
  335. package/out/test/units/page/Element.spec.js.map +1 -1
  336. package/out/test/units/temp/temp.spec.js +1 -1
  337. package/out/test/units/temp/temp.spec.js.map +1 -1
  338. package/out/utils/index.d.ts +6 -0
  339. package/out/utils/index.js +25 -1
  340. package/out/utils/index.js.map +1 -1
  341. package/out/utils/string.d.ts +1 -1
  342. package/out/utils/string.js +38 -9
  343. package/out/utils/string.js.map +1 -1
  344. package/package.json +2 -2
  345. package/src/automate/engine/index.js +95 -119
  346. package/src/automate/engine/operators.js +63 -0
  347. package/src/automate/engine/uniqueName.js +36 -0
  348. package/src/automate/engine/utils.js +63 -19
  349. package/src/common/BaseNode.ts +229 -74
  350. package/src/concepts/App__.ts +92 -85
  351. package/src/concepts/Argument__.ts +23 -3
  352. package/src/concepts/Assignee__.ts +467 -0
  353. package/src/concepts/Assignment__.ts +4 -1
  354. package/src/concepts/BinaryExpression__.ts +9 -7
  355. package/src/concepts/BindAttribute__.ts +69 -9
  356. package/src/concepts/BindDirective__.ts +22 -3
  357. package/src/concepts/BindEvent__.ts +67 -23
  358. package/src/concepts/BooleanLiteral__.ts +8 -0
  359. package/src/concepts/CallFunction__.ts +55 -23
  360. package/src/concepts/CallInterface__.ts +236 -26
  361. package/src/concepts/CallLogic__.ts +111 -52
  362. package/src/concepts/CallQueryComponent__.ts +315 -67
  363. package/src/concepts/Comment__.ts +6 -2
  364. package/src/concepts/CompletionProperty__.ts +5 -1
  365. package/src/concepts/ConfigGroup__.ts +3 -3
  366. package/src/concepts/ConfigProperty__.ts +3 -3
  367. package/src/concepts/Configuration__.ts +3 -3
  368. package/src/concepts/Constant__.ts +14 -2
  369. package/src/concepts/Destination__.ts +123 -37
  370. package/src/concepts/End__.ts +8 -1
  371. package/src/concepts/EntityIndex__.ts +4 -2
  372. package/src/concepts/EntityProperty__.ts +56 -5
  373. package/src/concepts/Entity__.ts +38 -21
  374. package/src/concepts/Enum__.ts +23 -26
  375. package/src/concepts/Event__.ts +3 -3
  376. package/src/concepts/ForEachStatement__.ts +16 -21
  377. package/src/concepts/Function__.ts +13 -13
  378. package/src/concepts/Identifier__.ts +84 -42
  379. package/src/concepts/IfStatement__.ts +4 -4
  380. package/src/concepts/InterfaceParam__.ts +57 -16
  381. package/src/concepts/Interface__.ts +130 -16
  382. package/src/concepts/JSBlock__.ts +4 -0
  383. package/src/concepts/LogicItem__.ts +16 -1
  384. package/src/concepts/Logic__.ts +192 -39
  385. package/src/concepts/MemberExpression__.ts +58 -15
  386. package/src/concepts/Module__.ts +35 -24
  387. package/src/concepts/Namespace__.ts +49 -37
  388. package/src/concepts/NullLiteral__.ts +8 -1
  389. package/src/concepts/NumericLiteral__.ts +17 -6
  390. package/src/concepts/Param__.ts +64 -16
  391. package/src/concepts/ProcessComponent__.ts +6 -6
  392. package/src/concepts/ProcessElement__.ts +149 -44
  393. package/src/concepts/ProcessOutcome__.ts +1 -1
  394. package/src/concepts/Process__.ts +85 -98
  395. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  396. package/src/concepts/QueryFieldExpression__.ts +4 -0
  397. package/src/concepts/QueryFromExpression__.ts +2 -2
  398. package/src/concepts/QueryGroupByExpression__.ts +23 -0
  399. package/src/concepts/QueryJoinExpression__.ts +5 -5
  400. package/src/concepts/QueryLimitExpression__.ts +2 -2
  401. package/src/concepts/QuerySelectExpression__.ts +3 -3
  402. package/src/concepts/Return__.ts +69 -17
  403. package/src/concepts/Role__.ts +5 -4
  404. package/src/concepts/SqlQueryComponent__.ts +2 -2
  405. package/src/concepts/StringLiteral__.ts +21 -39
  406. package/src/concepts/StructureProperty__.ts +50 -18
  407. package/src/concepts/Structure__.ts +32 -10
  408. package/src/concepts/SwitchCase__.ts +4 -4
  409. package/src/concepts/SwitchStatement__.ts +2 -2
  410. package/src/concepts/TypeAnnotation__.ts +66 -15
  411. package/src/concepts/UnaryExpression__.ts +10 -8
  412. package/src/concepts/Unparsed__.ts +1 -1
  413. package/src/concepts/ValidationRule__.ts +44 -14
  414. package/src/concepts/Variable__.ts +70 -16
  415. package/src/concepts/ViewComponent__.ts +15 -15
  416. package/src/concepts/ViewElement__.ts +289 -166
  417. package/src/concepts/View__.ts +135 -69
  418. package/src/concepts/WhileStatement__.ts +4 -4
  419. package/src/concepts/basics/stdlib/index.ts +4 -2
  420. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  421. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  422. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  423. package/src/concepts/basics/stdlib/nasl.interface.ts +1 -1
  424. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  425. package/src/concepts/basics/stdlib/nasl.util.ts +140 -18
  426. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  427. package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +1 -1
  428. package/src/concepts/basics/types/coreTypeList.ts +11 -11
  429. package/src/concepts/basics/types/index.ts +1 -0
  430. package/src/concepts/index__.ts +1 -0
  431. package/src/config.ts +1 -2
  432. package/src/enums/KEYWORDS.ts +1197 -0
  433. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  434. package/src/eventBus.ts +5 -0
  435. package/src/generator/genBundleFiles.ts +182 -30
  436. package/src/generator/genMetaData.ts +72 -21
  437. package/src/index.ts +2 -0
  438. package/src/manager/diagnostic.ts +2 -2
  439. package/src/server/createUiTs.ts +45 -7
  440. package/src/server/entity2LogicNamespace.ts +41 -25
  441. package/src/server/extendBaseNode.ts +318 -0
  442. package/src/server/getExtensionModules.ts +2 -0
  443. package/src/server/getFunctions.ts +6 -0
  444. package/src/server/getLogics.ts +87 -19
  445. package/src/server/getMemberIdentifier.ts +282 -65
  446. package/src/server/getProcesses.ts +397 -4
  447. package/src/server/getScope.ts +67 -0
  448. package/src/server/index.ts +13 -1
  449. package/src/server/naslServer.ts +694 -632
  450. package/src/server/process2LogicNamespace.ts +30 -2
  451. package/src/server/translator.ts +425 -128
  452. package/src/service/config/index.js +1 -1
  453. package/src/service/creator/errHandles.js +5 -2
  454. package/src/service/creator/index.js +0 -6
  455. package/src/service/storage/api.js +14 -0
  456. package/src/service/storage/init.ts +218 -45
  457. package/src/service/storage/service.ts +6 -0
  458. package/src/service/storage/storagePoint.ts +16 -16
  459. package/src/templator/genCreateBlock.ts +6 -6
  460. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  461. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  462. package/src/templator/genEditTableBlock.ts +5 -5
  463. package/src/templator/genEnumSelectBlock.ts +2 -2
  464. package/src/templator/genGetBlock.ts +7 -9
  465. package/src/templator/genGridViewBlock.ts +59 -9
  466. package/src/templator/genQueryComponent.ts +46 -32
  467. package/src/templator/genSelectBlock.ts +5 -15
  468. package/src/templator/genTableBlock.ts +5 -9
  469. package/src/templator/genUpdateBlock.ts +10 -12
  470. package/src/templator/utils.ts +12 -6
  471. package/src/test/fixtures/env.ts +0 -2
  472. package/src/test/units/page/Element.spec.ts +3 -3
  473. package/src/test/units/temp/temp.spec.ts +1 -1
  474. package/src/utils/index.ts +24 -0
  475. package/src/utils/string.ts +39 -9
  476. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  477. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  478. package/out/data/Module.d.ts +0 -34
  479. package/out/data/Module.js +0 -53
  480. package/out/data/Module.js.map +0 -1
  481. package/src/automate/engine/index.d.ts +0 -3
@@ -58,63 +58,45 @@ export class StringLiteral extends LogicItem {
58
58
  //================================================================================
59
59
  toVue(options?: ElementToVueOptions): string {
60
60
  let code = '';
61
- if (this.value) {
62
- if (!this.value.includes("'"))
63
- code += `'${this.value}'`;
64
- else if (!this.value.includes('"'))
65
- code += `"${this.value}"`;
66
- else if (!this.value.includes('`'))
67
- code += `\`${this.value}\``;
68
- else
69
- code += `'${this.value.replace(/'/g, "\\'")}'`;
61
+ if (typeof this.value === 'string') {
62
+ code = `'${this.value}'`;
63
+ if (options?.finalCode !== false) {
64
+ code = `'${this.value.replace(/['"`\\]/g, (m) => {
65
+ const escape = '\\\\';
66
+ if (m === '\\') {
67
+ return `${escape}${escape}`;
68
+ } else {
69
+ return `${escape}${m}`;
70
+ }
71
+ })}'`;
72
+ }
70
73
  }
71
74
  return code;
72
75
  }
73
76
 
74
77
  toUI(): string {
75
78
  let code = '';
76
- if (this.value) {
77
- if (!this.value.includes("'"))
78
- code += `'${this.value}'`;
79
- else if (!this.value.includes('"'))
80
- code += `"${this.value}"`;
81
- else if (!this.value.includes('`'))
82
- code += `\`${this.value}\``;
83
- else
84
- code += `'${this.value.replace(/'/g, "\\'")}'`;
79
+ if (typeof this.value === 'string') {
80
+ code = `'${this.value}'`;
85
81
  }
86
82
  return code;
87
83
  }
88
84
 
89
85
  toJS(): string {
90
- let code = '';
91
- if (this.value) {
92
- if (!this.value.includes("'"))
93
- code += `'${this.value}'`;
94
- else if (!this.value.includes('"'))
95
- code += `"${this.value}"`;
96
- else if (!this.value.includes('`'))
97
- code += `\`${this.value}\``;
98
- else
99
- code += `'${this.value.replace(/'/g, "\\'")}'`;
86
+ let code = ``;
87
+ if (typeof this.value === 'string') {
88
+ code += `'${this.value.replace(/['"`\\]/g, (m) => `\\${m}`)}'`;
100
89
  }
101
90
  return code;
102
91
  }
103
92
 
104
93
  @withSourceMap()
105
- toEmbeddedTS(state?: TranslatorState): string {
94
+ toEmbeddedTS(state?: TranslatorState, isRequired?: boolean): string {
106
95
  let code = '';
107
- if (this.value) {
108
- if (!this.value.includes("'"))
109
- code += `'${this.value}'`;
110
- else if (!this.value.includes('"'))
111
- code += `"${this.value}"`;
112
- else if (!this.value.includes('`'))
113
- code += `\`${this.value}\``;
114
- else
115
- code += `'${this.value.replace(/'/g, "\\'")}'`;
96
+ if (typeof this.value === 'string') {
97
+ code += `'StringLiteral'`;
116
98
  } else {
117
- code += '__IDENTIFIER__';
99
+ code += isRequired ? '__IDENTIFIER__' : `''`;
118
100
  }
119
101
  return code;
120
102
  }
@@ -2,7 +2,7 @@ import { dataTypesMap } from './basics/types';
2
2
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
3
3
  import EntityProperty from './EntityProperty__';
4
4
  import Entity from './Entity__';
5
- import { getNodeByNodeCallee } from '@nasl/automate/engine/utils';
5
+ import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
6
6
 
7
7
  //================================================================================
8
8
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -227,10 +227,55 @@ export class StructureProperty extends BaseNode {
227
227
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
228
228
  // 自动生成的代码已结束。下面可以手动编写。
229
229
  //================================================================================
230
+
231
+ get hasChildren() {
232
+ const { typeKind, typeNamespace } = this.typeAnnotation;
233
+ if (typeKind === 'reference' || typeKind === 'generic') {
234
+ if (typeNamespace.endsWith('.enums'))
235
+ return null;
236
+ return [{}];
237
+ }
238
+ return null;
239
+ }
240
+ get isTreeLeaf() {
241
+ return !this.hasChildren;
242
+ }
230
243
  /**
231
- * 自动补全的字段列表
244
+ * 是否展开
232
245
  */
233
- completionChildren: Array<EntityProperty | StructureProperty> = undefined;
246
+ @property()
247
+ isLeaf: boolean = true;
248
+
249
+ getSelectRef() {
250
+ try {
251
+ const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
252
+ let completionChildren;
253
+ if (typeKind === 'reference') {
254
+ if (typeNamespace === 'nasl.ui') {
255
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
256
+ const properties = node.properties || [];
257
+ completionChildren = properties;
258
+ } else if (typeNamespace.endsWith('.enums')) {
259
+ completionChildren = undefined;
260
+ } else {
261
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
262
+ const properties = node.properties || [];
263
+ completionChildren = properties;
264
+ }
265
+ } else if (typeKind === 'generic') {
266
+ // if (typeNamespace === 'nasl.collection' || typeNamespace === 'nasl.ui' || typeNamespace === 'nasl.interface') {
267
+ // }
268
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
269
+ const properties = node.properties || [];
270
+ completionChildren = properties;
271
+ } else {
272
+ completionChildren = undefined;
273
+ }
274
+ return completionChildren;
275
+ } catch (err) {
276
+ console.log(err);
277
+ }
278
+ }
234
279
 
235
280
  @withSourceMap()
236
281
  toEmbeddedTS(state?: TranslatorState): string {
@@ -262,7 +307,7 @@ export class StructureProperty extends BaseNode {
262
307
  // eslint-disable-next-line prefer-rest-params
263
308
  throw new Error('找不到类型:' + arguments[0]);
264
309
  } else {
265
- typeAnnotation._delete();
310
+ typeAnnotation._delete?.();
266
311
  const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
267
312
  Object.assign(typeAnnotation, relationOptions);
268
313
  }
@@ -291,20 +336,7 @@ export class StructureProperty extends BaseNode {
291
336
  * 是否可编辑
292
337
  * */
293
338
  get readonly() {
294
- return !!this.module;
295
- }
296
-
297
- getSelectRef() {
298
- const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
299
- let completionChildren;
300
- if (typeKind === 'reference') {
301
- const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
302
- const properties = node.properties || [];
303
- completionChildren = properties;
304
- } else {
305
- completionChildren = undefined;
306
- }
307
- return completionChildren;
339
+ return !!this.module || (this.parentNode as Structure).origin === 'CallQueryComponent';
308
340
  }
309
341
 
310
342
  //================================================================================
@@ -39,6 +39,12 @@ export class Structure extends BaseNode {
39
39
  @property()
40
40
  description: string = undefined;
41
41
 
42
+ /**
43
+ * 数据结构来源
44
+ */
45
+ @property()
46
+ origin: 'CallQueryComponent' = undefined;
47
+
42
48
  /**
43
49
  * 编译器信息
44
50
  */
@@ -124,7 +130,7 @@ export class Structure extends BaseNode {
124
130
  return (this.typeParams || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
125
131
  }
126
132
  getTypeParamUniqueName(name = 'typeParam1') {
127
- return utils.unique(name, this.getTypeParamExistingNames());
133
+ return utils.unique(name, this.getTypeParamExistingNames(), undefined, false);
128
134
  }
129
135
 
130
136
  /**
@@ -163,7 +169,7 @@ export class Structure extends BaseNode {
163
169
  name: options,
164
170
  }, this, 'typeParams');
165
171
  } else if (options instanceof TypeParam) {
166
- options.delete(); // 同一实例不支持多处存在
172
+ options.ensureDelete(); // 同一实例不支持多处存在
167
173
  typeParam = options;
168
174
  Object.assign(typeParam, relationOptions);
169
175
  } else {
@@ -251,7 +257,7 @@ export class Structure extends BaseNode {
251
257
 
252
258
  addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
253
259
  const node = this._addTypeParam(options as any);
254
- const index = this.typeParams.length;
260
+ const index = this.typeParams.indexOf(node);
255
261
  node.create({
256
262
  index,
257
263
  parentNode: this,
@@ -266,7 +272,7 @@ export class Structure extends BaseNode {
266
272
  return (this.properties || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
267
273
  }
268
274
  getPropertyUniqueName(name = 'property1') {
269
- return utils.unique(name, this.getPropertyExistingNames());
275
+ return utils.unique(name, this.getPropertyExistingNames(), undefined, false);
270
276
  }
271
277
 
272
278
  /**
@@ -305,7 +311,7 @@ export class Structure extends BaseNode {
305
311
  name: options,
306
312
  }, this, 'properties');
307
313
  } else if (options instanceof StructureProperty) {
308
- options.delete(); // 同一实例不支持多处存在
314
+ options.ensureDelete(); // 同一实例不支持多处存在
309
315
  property = options;
310
316
  Object.assign(property, relationOptions);
311
317
  } else {
@@ -393,7 +399,7 @@ export class Structure extends BaseNode {
393
399
 
394
400
  addProperty(options?: string | Partial<StructureProperty> | StructureProperty) {
395
401
  const node = this._addProperty(options as any);
396
- const index = this.properties.length;
402
+ const index = this.properties.indexOf(node);
397
403
  node.create({
398
404
  index,
399
405
  parentNode: this,
@@ -512,7 +518,7 @@ export class Structure extends BaseNode {
512
518
  * 是否可编辑
513
519
  * */
514
520
  get readonly() {
515
- return !!this.module;
521
+ return !!this.module || this.origin === 'CallQueryComponent';
516
522
  }
517
523
  /* 删除空数据模块 */
518
524
  deleteLogincAndModule() {
@@ -526,7 +532,7 @@ export class Structure extends BaseNode {
526
532
  toEmbeddedTS(state?: TranslatorState): string {
527
533
  let code = `export class ${this.tsName} {\n`;
528
534
  code += indent(state.tabSize + 1);
529
- code += `__name: '${this.getNamespace()}.${this.tsName}';\n`;
535
+ code += `__name: '${this.getTsNamespace()}.${this.tsName}';\n`;
530
536
  this.properties.forEach((property) => {
531
537
  code += indent(state.tabSize + 1);
532
538
  code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
@@ -544,6 +550,18 @@ export class Structure extends BaseNode {
544
550
  throw new Error('无法获取命名空间,请设置 parentNode!');
545
551
  }
546
552
 
553
+ getTsNamespace() {
554
+ if (this.parentNode.concept === 'App') {
555
+ return `${(this.parentNode as Namespace).getNamespace()}.structures`;
556
+ } else {
557
+ if (this.parentNode && (this.parentNode as Namespace).getTsNamespace) {
558
+ return `${(this.parentNode as Namespace).getTsNamespace()}.structures`;
559
+ } else {
560
+ throw new Error('无法获取命名空间,请设置 parentNode!');
561
+ }
562
+ }
563
+ }
564
+
547
565
  /**
548
566
  * 生成宿主语言的文件路径
549
567
  * @param name 一般不用传,用于 rename
@@ -554,10 +572,14 @@ export class Structure extends BaseNode {
554
572
  }
555
573
 
556
574
  toEmbeddedTSFile() {
557
- let code = `namespace ${this.getNamespace()} {\n`;
575
+ let code = `namespace ${this.getTsNamespace()} {\n`;
558
576
 
559
577
  const state = createCompilerState(code, { tabSize: 1 });
560
- code += this.toEmbeddedTS(state);
578
+ try {
579
+ code += this.toEmbeddedTS(state);
580
+ } catch (err) {
581
+ code += '';
582
+ }
561
583
  code += '}\n';
562
584
 
563
585
  return {
@@ -89,7 +89,7 @@ export class SwitchCase extends LogicItem {
89
89
  const relationOptions = { parentNode: this, parentKey: 'consequent' };
90
90
  let logicItem: LogicItem;
91
91
  if (options instanceof LogicItem) {
92
- options.delete(); // 同一实例不支持多处存在
92
+ options.ensureDelete(); // 同一实例不支持多处存在
93
93
  logicItem = options;
94
94
  Object.assign(logicItem, relationOptions);
95
95
  } else {
@@ -163,7 +163,7 @@ export class SwitchCase extends LogicItem {
163
163
 
164
164
  addItem(options?: Partial<LogicItem> | LogicItem) {
165
165
  const node = this._addItem(options as any);
166
- const index = this.consequent.length;
166
+ const index = this.consequent.indexOf(node);
167
167
  node.create({
168
168
  index,
169
169
  parentNode: this,
@@ -249,7 +249,7 @@ export class SwitchCase extends LogicItem {
249
249
  tabSize: 0,
250
250
  })) : '';
251
251
 
252
- code += ')) {\n';
252
+ code += ') {\n';
253
253
 
254
254
  if (Array.isArray(this.consequent)) {
255
255
  this.consequent.forEach((logicItem) => {
@@ -277,7 +277,7 @@ export class SwitchCase extends LogicItem {
277
277
 
278
278
  @withSourceMap()
279
279
  toEmbeddedTS(state?: TranslatorState, isLast?: boolean): string {
280
- let code = '';
280
+ let code = '\n';
281
281
  if (!isLast) {
282
282
  code += 'if (nasl.core.ensureBoolean(';
283
283
  code += this.test ? this.test.toEmbeddedTS(shiftState(state, code, {
@@ -72,7 +72,7 @@ export class SwitchStatement extends LogicItem {
72
72
  const relationOptions = { parentNode: this, parentKey: 'cases' };
73
73
  let switchCase: SwitchCase;
74
74
  if (options instanceof SwitchCase) {
75
- options.delete(); // 同一实例不支持多处存在
75
+ options.ensureDelete(); // 同一实例不支持多处存在
76
76
  switchCase = options;
77
77
  Object.assign(switchCase, relationOptions);
78
78
  } else {
@@ -146,7 +146,7 @@ export class SwitchStatement extends LogicItem {
146
146
 
147
147
  addSwitchCase(options?: Partial<SwitchCase> | SwitchCase) {
148
148
  const node = this._addSwitchCase(options as any);
149
- const index = this.cases.length - 1;
149
+ const index = this.cases.indexOf(node);
150
150
  node.create({
151
151
  index,
152
152
  parentNode: this,
@@ -14,6 +14,20 @@ export enum PRIMITIVE_TYPE {
14
14
  Email = 'Email'
15
15
  }
16
16
 
17
+ export const PRIMITIVE_TITLE: Record<string, string> = {
18
+ Boolean: '布尔值',
19
+ Integer: '整数',
20
+ Long: '长整数',
21
+ Double: '小数',
22
+ String: '字符串',
23
+ Text: '长文本',
24
+ Binary: '二进制流',
25
+ Date: '日期',
26
+ Time: '时间',
27
+ DateTime: '日期时间',
28
+ Email: '电子邮箱',
29
+ };
30
+
17
31
  //================================================================================
18
32
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
19
33
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -62,13 +76,6 @@ export class TypeAnnotation extends BaseNode {
62
76
  @property('TypeAnnotation')
63
77
  typeArguments?: Array<TypeAnnotation> = null;
64
78
 
65
- /**
66
- * 显示文本
67
- */
68
- @excludedInJSON()
69
- @property()
70
- text?: string = undefined;
71
-
72
79
  /**
73
80
  * 是否是推断出来的
74
81
  */
@@ -116,7 +123,7 @@ export class TypeAnnotation extends BaseNode {
116
123
  const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
117
124
  let typeAnnotation: TypeAnnotation;
118
125
  if (options instanceof TypeAnnotation) {
119
- options.delete(); // 同一实例不支持多处存在
126
+ options.ensureDelete(); // 同一实例不支持多处存在
120
127
  typeAnnotation = options;
121
128
  Object.assign(typeAnnotation, relationOptions);
122
129
  } else {
@@ -190,7 +197,7 @@ export class TypeAnnotation extends BaseNode {
190
197
 
191
198
  addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
192
199
  const node = this._addTypeAnnotation(options as any);
193
- const index = this.typeArguments.length;
200
+ const index = this.typeArguments.indexOf(node);
194
201
  node.create({
195
202
  index,
196
203
  parentNode: this,
@@ -252,13 +259,26 @@ export class TypeAnnotation extends BaseNode {
252
259
  }
253
260
 
254
261
  /**
255
- * 临时展示 type 标题
262
+ * 用于展示的 type 标题
256
263
  */
257
264
  get typeTitle(): string {
258
- if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
265
+ if (this.typeKind === 'primitive') {
266
+ return `${this.typeName} ${PRIMITIVE_TITLE[this.typeName]}`;
267
+ } else if (this.typeKind === 'reference') {
259
268
  return `${this.typeName}`;
260
269
  } else if (this.typeKind === 'generic') {
261
- return `${this.typeName}<${(this.typeArguments || []).map((arg) => arg.typeTitle)}>`;
270
+ let str = `${this.typeName}`;
271
+ const loop = (typeArguments: Array<TypeAnnotation>) => {
272
+ str += '<' + (typeArguments[0].typeName || 'T');
273
+ if (typeArguments[0].typeKind === 'generic') {
274
+ if (this.typeArguments && this.typeArguments.length) {
275
+ loop(typeArguments[0].typeArguments);
276
+ }
277
+ }
278
+ str += '>';
279
+ };
280
+ loop(this.typeArguments);
281
+ return str;
262
282
  } else {
263
283
  return this.typeName;
264
284
  }
@@ -319,19 +339,50 @@ export class TypeAnnotation extends BaseNode {
319
339
  return '';
320
340
  }
321
341
 
342
+ toJS(state?: TranslatorState): string {
343
+ return JSON.stringify(this);
344
+ }
345
+
322
346
  @withSourceMap()
323
347
  toEmbeddedTS(state?: TranslatorState): string {
324
348
  if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
325
- if (this.typeKind === 'reference' && this.typeNamespace.endsWith('enums')) {
349
+ if (this.typeKind === 'reference' && this.typeNamespace && this.typeNamespace.endsWith('enums')) {
326
350
  return `${this.tsCalleeNamespace}.${this.typeName}`;
327
351
  }
328
352
  return `${this.tsCalleeNamespace}.${this.typeName}`;
329
353
  } else if (this.typeKind === 'generic') {
330
354
  let code = `${this.tsCalleeNamespace}.${this.typeName}<`;
331
- return code += `${(this.typeArguments || []).map((arg) => arg.toEmbeddedTS(shiftState(state, code, { inline: true })))}>`;
355
+ return (code += `${(this.typeArguments || []).map((arg) => arg.toEmbeddedTS(shiftState(state, code, { inline: true })))}>`);
332
356
  } else {
333
- return this.typeName;
357
+ if (this.tsCalleeNamespace && this.typeName) {
358
+ return `${this.tsCalleeNamespace}.${this.typeName}`;
359
+ } else if (this.typeName) {
360
+ return this.typeName;
361
+ } else {
362
+ return '__IDENTIFIER__';
363
+ }
364
+ }
365
+ }
366
+
367
+ getDefaultValue(value: string) {
368
+ let code = '';
369
+ if (this.typeKind === 'primitive') {
370
+ if (this.typeName === 'String') {
371
+ code = ` "${value}" `;
372
+ } else {
373
+ if (['Long', 'Text'].includes(this.typeName)) {
374
+ code = ` new ${this.typeNamespace}.${this.typeName}("${value}")`;
375
+ } else if (['Boolean'].includes(this.typeName)) {
376
+ code = value;
377
+ } else {
378
+ code = ` new ${this.typeNamespace}.${this.typeName}(${value})`;
379
+ }
380
+ }
381
+ } else {
382
+ code = ` ${this.typeNamespace}.${this.typeName}['${value}']`;
334
383
  }
384
+
385
+ return code;
335
386
  }
336
387
 
337
388
  /**
@@ -127,25 +127,25 @@ export class UnaryExpression extends LogicItem {
127
127
 
128
128
  toVue(options?: ElementToVueOptions) {
129
129
  if (this.operator === 'isNull') {
130
- return this.argument.toVue(options);
130
+ return this.argument?.toVue(options);
131
131
  } else {
132
- return '!' + this.argument.toVue(options);
132
+ return '!(' + this.argument?.toVue(options) + ')';
133
133
  }
134
134
  }
135
135
 
136
136
  toUI(state?: TranslatorState): string {
137
137
  if (this.operator === 'isNull') {
138
- return this.argument.toUI(state);
138
+ return this.argument?.toUI(state);
139
139
  } else {
140
- return '!' + this.argument.toUI(state);
140
+ return '!(' + this.argument?.toUI(state) + ')';
141
141
  }
142
142
  }
143
143
 
144
144
  toJS(state?: TranslatorState): string {
145
145
  if (this.operator === 'isNull') {
146
- return this.argument.toJS(state);
146
+ return this.argument?.toJS(state);
147
147
  } else {
148
- return '!' + this.argument.toJS(state);
148
+ return '!(' + this.argument?.toJS(state) + ')';
149
149
  }
150
150
  }
151
151
 
@@ -162,9 +162,11 @@ export class UnaryExpression extends LogicItem {
162
162
 
163
163
  let code = '';
164
164
  if (this.argument) {
165
- code += `${this.operator}${this.argument}`;
165
+ code += `${this.operator}(`;
166
+ code += `${this.argument.toEmbeddedTS(shiftState(state, code))}`;
167
+ code += `)`;
166
168
  } else {
167
- code += `${this.operator}__IDENTIFIER__`;
169
+ code += `${this.operator}(__IDENTIFIER__)`;
168
170
  }
169
171
  return code;
170
172
  }
@@ -81,7 +81,7 @@ export class Unparsed extends LogicItem {
81
81
 
82
82
  @withSourceMap()
83
83
  toEmbeddedTS(): string {
84
- return this.code ? ` ${this.code} ` : '__IDENTIFIER__';
84
+ return 'nasl.core.universalVariable';
85
85
  }
86
86
 
87
87
  //================================================================================
@@ -1,7 +1,7 @@
1
1
  import { TranslatorState, shiftState, withSourceMap, indent } from '../translator';
2
2
  import Function from './Function__';
3
3
  import { ElementToVueOptions } from './ViewElement__';
4
-
4
+ import { getValidationInFunction } from '../server/getFunctions';
5
5
  //================================================================================
6
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
7
7
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -92,7 +92,7 @@ export class ValidationRule extends LogicItem {
92
92
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
93
93
  let argument: Argument;
94
94
  if (options instanceof Argument) {
95
- options.delete(); // 同一实例不支持多处存在
95
+ options.ensureDelete(); // 同一实例不支持多处存在
96
96
  argument = options;
97
97
  Object.assign(argument, relationOptions);
98
98
  } else {
@@ -166,7 +166,7 @@ export class ValidationRule extends LogicItem {
166
166
 
167
167
  addArgument(options?: Partial<Argument> | Argument) {
168
168
  const node = this._addArgument(options as any);
169
- const index = this.arguments.length;
169
+ const index = this.arguments.indexOf(node);
170
170
  node.create({
171
171
  index,
172
172
  parentNode: this,
@@ -220,9 +220,9 @@ export class ValidationRule extends LogicItem {
220
220
  let code = this.calleeName;
221
221
  if (this.arguments.length) {
222
222
  code += '(';
223
- this.arguments.forEach((arg, index) => {
224
- code += arg.toVue(options);
225
- if (index !== this.arguments.length - 1)
223
+ this.arguments?.forEach((arg, index) => {
224
+ code += arg?.toVue(options);
225
+ if (index !== this.arguments?.length - 1)
226
226
  code += ', ';
227
227
  });
228
228
  code += ')';
@@ -232,11 +232,11 @@ export class ValidationRule extends LogicItem {
232
232
 
233
233
  toUI(state?: TranslatorState): string {
234
234
  let code = this.calleeName;
235
- if (this.arguments.length) {
235
+ if (this.arguments?.length) {
236
236
  code += '(';
237
- this.arguments.forEach((arg, index) => {
238
- code += arg.toUI(shiftState(state, code));
239
- if (index !== this.arguments.length - 1)
237
+ this.arguments?.forEach((arg, index) => {
238
+ code += arg?.toUI(shiftState(state, code));
239
+ if (index !== this.arguments?.length - 1)
240
240
  code += ', ';
241
241
  });
242
242
  code += ')';
@@ -246,11 +246,11 @@ export class ValidationRule extends LogicItem {
246
246
 
247
247
  toJS(state?: TranslatorState): string {
248
248
  let code = this.calleeName;
249
- if (this.arguments.length) {
249
+ if (this.arguments?.length) {
250
250
  code += '(';
251
- this.arguments.forEach((arg, index) => {
252
- code += arg.toJS(shiftState(state, code));
253
- if (index !== this.arguments.length - 1)
251
+ this.arguments?.forEach((arg, index) => {
252
+ code += arg?.toJS(shiftState(state, code));
253
+ if (index !== this.arguments?.length - 1)
254
254
  code += ', ';
255
255
  });
256
256
  code += ')';
@@ -258,6 +258,36 @@ export class ValidationRule extends LogicItem {
258
258
  return code;
259
259
  }
260
260
 
261
+ @withSourceMap()
262
+ toEmbeddedTS(state?: TranslatorState): string {
263
+ let code = '';
264
+ if (this.calleeName) {
265
+ if (this.arguments.length) {
266
+ const validationInFunction = getValidationInFunction(this.calleeName);
267
+ code += this.calleeKey;
268
+ code += '(';
269
+ this.arguments.forEach((arg, index) => {
270
+ // 如果找到函数而且有参数,就用参数的必填非必填
271
+ if (validationInFunction && validationInFunction.params[index]) {
272
+ code += arg.toEmbeddedTS(shiftState(state, code), validationInFunction.params[index].required, false);
273
+ } else {
274
+ // 如果没有就默认不必填
275
+ code += arg.toEmbeddedTS(shiftState(state, code), false, false);
276
+ }
277
+ if (index !== this.arguments.length - 1)
278
+ code += ', ';
279
+ });
280
+ code += ')';
281
+ } else {
282
+ // 没有入参数的不需要校验
283
+ return 'null';
284
+ }
285
+ } else {
286
+ code += '__IDENTIFIER__';
287
+ }
288
+ return code;
289
+ }
290
+
261
291
  get calleeKey(): string {
262
292
  return `${this.calleeNamespace}.${this.calleeName}`;
263
293
  }