@lcap/nasl 1.0.0-alpha.9 → 1.0.0

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 (441) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +513 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/utils.d.ts +24 -0
  5. package/out/automate/engine/utils.js +363 -0
  6. package/out/automate/engine/utils.js.map +1 -0
  7. package/out/common/BaseNode.d.ts +20 -0
  8. package/out/common/BaseNode.js +219 -81
  9. package/out/common/BaseNode.js.map +1 -1
  10. package/out/concepts/App__.d.ts +18 -1
  11. package/out/concepts/App__.js +75 -35
  12. package/out/concepts/App__.js.map +1 -1
  13. package/out/concepts/Argument__.d.ts +5 -1
  14. package/out/concepts/Argument__.js +21 -3
  15. package/out/concepts/Argument__.js.map +1 -1
  16. package/out/concepts/Assignee__.d.ts +190 -0
  17. package/out/concepts/Assignee__.js +264 -0
  18. package/out/concepts/Assignee__.js.map +1 -0
  19. package/out/concepts/Assignment__.js +5 -0
  20. package/out/concepts/Assignment__.js.map +1 -1
  21. package/out/concepts/BinaryExpression__.js +8 -7
  22. package/out/concepts/BinaryExpression__.js.map +1 -1
  23. package/out/concepts/BindAttribute__.d.ts +19 -0
  24. package/out/concepts/BindAttribute__.js +54 -9
  25. package/out/concepts/BindAttribute__.js.map +1 -1
  26. package/out/concepts/BindDirective__.js +22 -2
  27. package/out/concepts/BindDirective__.js.map +1 -1
  28. package/out/concepts/BindEvent__.d.ts +2 -2
  29. package/out/concepts/BindEvent__.js +67 -34
  30. package/out/concepts/BindEvent__.js.map +1 -1
  31. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  32. package/out/concepts/BooleanLiteral__.js +10 -0
  33. package/out/concepts/BooleanLiteral__.js.map +1 -1
  34. package/out/concepts/CallFunction__.js +41 -23
  35. package/out/concepts/CallFunction__.js.map +1 -1
  36. package/out/concepts/CallInterface__.d.ts +5 -0
  37. package/out/concepts/CallInterface__.js +238 -31
  38. package/out/concepts/CallInterface__.js.map +1 -1
  39. package/out/concepts/CallLogic__.d.ts +4 -4
  40. package/out/concepts/CallLogic__.js +110 -53
  41. package/out/concepts/CallLogic__.js.map +1 -1
  42. package/out/concepts/CallQueryComponent__.d.ts +7 -1
  43. package/out/concepts/CallQueryComponent__.js +44 -25
  44. package/out/concepts/CallQueryComponent__.js.map +1 -1
  45. package/out/concepts/Comment__.js +6 -2
  46. package/out/concepts/Comment__.js.map +1 -1
  47. package/out/concepts/CompletionProperty__.d.ts +3 -1
  48. package/out/concepts/CompletionProperty__.js +2 -0
  49. package/out/concepts/CompletionProperty__.js.map +1 -1
  50. package/out/concepts/ConfigGroup__.js +2 -2
  51. package/out/concepts/ConfigGroup__.js.map +1 -1
  52. package/out/concepts/ConfigProperty__.js +2 -2
  53. package/out/concepts/ConfigProperty__.js.map +1 -1
  54. package/out/concepts/Configuration__.js +2 -2
  55. package/out/concepts/Configuration__.js.map +1 -1
  56. package/out/concepts/Constant__.d.ts +1 -0
  57. package/out/concepts/Constant__.js +14 -0
  58. package/out/concepts/Constant__.js.map +1 -1
  59. package/out/concepts/Destination__.d.ts +12 -0
  60. package/out/concepts/Destination__.js +94 -18
  61. package/out/concepts/Destination__.js.map +1 -1
  62. package/out/concepts/End__.js +9 -1
  63. package/out/concepts/End__.js.map +1 -1
  64. package/out/concepts/EntityProperty__.d.ts +11 -0
  65. package/out/concepts/EntityProperty__.js +73 -5
  66. package/out/concepts/EntityProperty__.js.map +1 -1
  67. package/out/concepts/Entity__.d.ts +4 -1
  68. package/out/concepts/Entity__.js +37 -15
  69. package/out/concepts/Entity__.js.map +1 -1
  70. package/out/concepts/Enum__.d.ts +4 -0
  71. package/out/concepts/Enum__.js +18 -10
  72. package/out/concepts/Enum__.js.map +1 -1
  73. package/out/concepts/Event__.js +2 -2
  74. package/out/concepts/Event__.js.map +1 -1
  75. package/out/concepts/ForEachStatement__.js +9 -13
  76. package/out/concepts/ForEachStatement__.js.map +1 -1
  77. package/out/concepts/Function__.js +9 -9
  78. package/out/concepts/Function__.js.map +1 -1
  79. package/out/concepts/Identifier__.d.ts +3 -0
  80. package/out/concepts/Identifier__.js +76 -29
  81. package/out/concepts/Identifier__.js.map +1 -1
  82. package/out/concepts/IfStatement__.js +4 -4
  83. package/out/concepts/IfStatement__.js.map +1 -1
  84. package/out/concepts/InterfaceParam__.d.ts +6 -4
  85. package/out/concepts/InterfaceParam__.js +52 -19
  86. package/out/concepts/InterfaceParam__.js.map +1 -1
  87. package/out/concepts/Interface__.d.ts +42 -30
  88. package/out/concepts/Interface__.js +131 -15
  89. package/out/concepts/Interface__.js.map +1 -1
  90. package/out/concepts/JSBlock__.d.ts +1 -0
  91. package/out/concepts/JSBlock__.js +3 -0
  92. package/out/concepts/JSBlock__.js.map +1 -1
  93. package/out/concepts/LogicItem__.d.ts +2 -1
  94. package/out/concepts/LogicItem__.js +14 -0
  95. package/out/concepts/LogicItem__.js.map +1 -1
  96. package/out/concepts/Logic__.d.ts +16 -1
  97. package/out/concepts/Logic__.js +176 -33
  98. package/out/concepts/Logic__.js.map +1 -1
  99. package/out/concepts/MemberExpression__.d.ts +2 -0
  100. package/out/concepts/MemberExpression__.js +49 -12
  101. package/out/concepts/MemberExpression__.js.map +1 -1
  102. package/out/concepts/Module__.d.ts +126 -120
  103. package/out/concepts/Module__.js +28 -18
  104. package/out/concepts/Module__.js.map +1 -1
  105. package/out/concepts/Namespace__.d.ts +5 -1
  106. package/out/concepts/Namespace__.js +36 -25
  107. package/out/concepts/Namespace__.js.map +1 -1
  108. package/out/concepts/NullLiteral__.d.ts +3 -0
  109. package/out/concepts/NullLiteral__.js +11 -1
  110. package/out/concepts/NullLiteral__.js.map +1 -1
  111. package/out/concepts/NumericLiteral__.d.ts +1 -1
  112. package/out/concepts/NumericLiteral__.js +17 -6
  113. package/out/concepts/NumericLiteral__.js.map +1 -1
  114. package/out/concepts/Param__.d.ts +7 -3
  115. package/out/concepts/Param__.js +57 -28
  116. package/out/concepts/Param__.js.map +1 -1
  117. package/out/concepts/ProcessComponent__.js +4 -4
  118. package/out/concepts/ProcessComponent__.js.map +1 -1
  119. package/out/concepts/ProcessElement__.d.ts +0 -4
  120. package/out/concepts/ProcessElement__.js +112 -49
  121. package/out/concepts/ProcessElement__.js.map +1 -1
  122. package/out/concepts/ProcessOutcome__.js +1 -1
  123. package/out/concepts/ProcessOutcome__.js.map +1 -1
  124. package/out/concepts/Process__.d.ts +7 -1
  125. package/out/concepts/Process__.js +77 -81
  126. package/out/concepts/Process__.js.map +1 -1
  127. package/out/concepts/QueryAggregateExpression__.js +1 -1
  128. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  129. package/out/concepts/QueryFromExpression__.js +2 -2
  130. package/out/concepts/QueryFromExpression__.js.map +1 -1
  131. package/out/concepts/QueryJoinExpression__.js +4 -4
  132. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  133. package/out/concepts/QueryLimitExpression__.js +3 -3
  134. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  135. package/out/concepts/QuerySelectExpression__.js +2 -2
  136. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  137. package/out/concepts/Return__.d.ts +4 -1
  138. package/out/concepts/Return__.js +67 -21
  139. package/out/concepts/Return__.js.map +1 -1
  140. package/out/concepts/Role__.d.ts +4 -0
  141. package/out/concepts/Role__.js +13 -4
  142. package/out/concepts/Role__.js.map +1 -1
  143. package/out/concepts/SqlQueryComponent__.js +2 -2
  144. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  145. package/out/concepts/StringLiteral__.d.ts +1 -1
  146. package/out/concepts/StringLiteral__.js +21 -31
  147. package/out/concepts/StringLiteral__.js.map +1 -1
  148. package/out/concepts/StructureProperty__.d.ts +5 -4
  149. package/out/concepts/StructureProperty__.js +55 -26
  150. package/out/concepts/StructureProperty__.js.map +1 -1
  151. package/out/concepts/Structure__.d.ts +44 -30
  152. package/out/concepts/Structure__.js +42 -10
  153. package/out/concepts/Structure__.js.map +1 -1
  154. package/out/concepts/SwitchCase__.js +4 -4
  155. package/out/concepts/SwitchCase__.js.map +1 -1
  156. package/out/concepts/SwitchStatement__.js +2 -2
  157. package/out/concepts/SwitchStatement__.js.map +1 -1
  158. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  159. package/out/concepts/TypeAnnotation__.js +74 -20
  160. package/out/concepts/TypeAnnotation__.js.map +1 -1
  161. package/out/concepts/UnaryExpression__.js +10 -8
  162. package/out/concepts/UnaryExpression__.js.map +1 -1
  163. package/out/concepts/Unparsed__.js +1 -1
  164. package/out/concepts/Unparsed__.js.map +1 -1
  165. package/out/concepts/ValidationRule__.d.ts +1 -0
  166. package/out/concepts/ValidationRule__.js +48 -13
  167. package/out/concepts/ValidationRule__.js.map +1 -1
  168. package/out/concepts/Variable__.d.ts +10 -1
  169. package/out/concepts/Variable__.js +70 -18
  170. package/out/concepts/Variable__.js.map +1 -1
  171. package/out/concepts/ViewComponent__.js +10 -10
  172. package/out/concepts/ViewComponent__.js.map +1 -1
  173. package/out/concepts/ViewElement__.d.ts +17 -11
  174. package/out/concepts/ViewElement__.js +299 -201
  175. package/out/concepts/ViewElement__.js.map +1 -1
  176. package/out/concepts/View__.d.ts +12 -13
  177. package/out/concepts/View__.js +106 -103
  178. package/out/concepts/View__.js.map +1 -1
  179. package/out/concepts/WhileStatement__.js +3 -3
  180. package/out/concepts/WhileStatement__.js.map +1 -1
  181. package/out/concepts/basics/stdlib/index.js +4 -1
  182. package/out/concepts/basics/stdlib/index.js.map +1 -1
  183. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  184. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  185. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  186. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  187. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  188. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  189. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  190. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  191. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  192. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  193. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  194. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  195. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  196. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  197. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  198. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  199. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  200. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  201. package/out/concepts/basics/types/coreTypeList.js +11 -10
  202. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  203. package/out/concepts/index__.d.ts +1 -0
  204. package/out/concepts/index__.js +1 -0
  205. package/out/concepts/index__.js.map +1 -1
  206. package/out/config.d.ts +1 -2
  207. package/out/config.js +1 -2
  208. package/out/config.js.map +1 -1
  209. package/out/enums/KEYWORDS.d.ts +3 -0
  210. package/out/enums/KEYWORDS.js +1208 -0
  211. package/out/enums/KEYWORDS.js.map +1 -0
  212. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  213. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  214. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  215. package/out/eventBus.d.ts +3 -0
  216. package/out/eventBus.js +7 -0
  217. package/out/eventBus.js.map +1 -0
  218. package/out/generator/genBundleFiles.d.ts +7 -2
  219. package/out/generator/genBundleFiles.js +168 -27
  220. package/out/generator/genBundleFiles.js.map +1 -1
  221. package/out/generator/genMetaData.d.ts +20 -20
  222. package/out/generator/genMetaData.js +50 -15
  223. package/out/generator/genMetaData.js.map +1 -1
  224. package/out/index.d.ts +2 -0
  225. package/out/index.js +2 -0
  226. package/out/index.js.map +1 -1
  227. package/out/manager/diagnostic.d.ts +1 -1
  228. package/out/server/createUiTs.d.ts +1 -0
  229. package/out/server/createUiTs.js +49 -5
  230. package/out/server/createUiTs.js.map +1 -1
  231. package/out/server/entity2LogicNamespace.js +38 -23
  232. package/out/server/entity2LogicNamespace.js.map +1 -1
  233. package/out/server/getExtensionModules.js +2 -0
  234. package/out/server/getExtensionModules.js.map +1 -1
  235. package/out/server/getFunctions.d.ts +1 -0
  236. package/out/server/getFunctions.js +7 -1
  237. package/out/server/getFunctions.js.map +1 -1
  238. package/out/server/getLogics.js +63 -18
  239. package/out/server/getLogics.js.map +1 -1
  240. package/out/server/getMemberIdentifier.d.ts +16 -1
  241. package/out/server/getMemberIdentifier.js +279 -36
  242. package/out/server/getMemberIdentifier.js.map +1 -1
  243. package/out/server/getProcesses.d.ts +6 -1
  244. package/out/server/getProcesses.js +243 -1
  245. package/out/server/getProcesses.js.map +1 -1
  246. package/out/server/getScope.d.ts +11 -0
  247. package/out/server/getScope.js +45 -0
  248. package/out/server/getScope.js.map +1 -0
  249. package/out/server/index.js +4 -0
  250. package/out/server/index.js.map +1 -1
  251. package/out/server/naslServer.d.ts +30 -53
  252. package/out/server/naslServer.js +682 -363
  253. package/out/server/naslServer.js.map +1 -1
  254. package/out/server/process2LogicNamespace.d.ts +10 -0
  255. package/out/server/process2LogicNamespace.js +29 -1
  256. package/out/server/process2LogicNamespace.js.map +1 -1
  257. package/out/server/translator.d.ts +22 -3
  258. package/out/server/translator.js +367 -123
  259. package/out/server/translator.js.map +1 -1
  260. package/out/service/creator/add.configs.d.ts +1 -0
  261. package/out/service/creator/add.configs.js +68 -0
  262. package/out/service/creator/add.configs.js.map +1 -0
  263. package/out/service/creator/errHandles.d.ts +18 -0
  264. package/out/service/creator/errHandles.js +60 -0
  265. package/out/service/creator/errHandles.js.map +1 -0
  266. package/out/service/creator/index.d.ts +1 -0
  267. package/out/service/creator/index.js +72 -0
  268. package/out/service/creator/index.js.map +1 -0
  269. package/out/service/storage/api.d.ts +18 -0
  270. package/out/service/storage/api.js +17 -0
  271. package/out/service/storage/api.js.map +1 -0
  272. package/out/service/storage/init.js +200 -37
  273. package/out/service/storage/init.js.map +1 -1
  274. package/out/service/storage/service.d.ts +2 -0
  275. package/out/service/storage/service.js +10 -0
  276. package/out/service/storage/service.js.map +1 -0
  277. package/out/service/storage/storagePoint.d.ts +1 -14
  278. package/out/service/storage/storagePoint.js +16 -16
  279. package/out/service/storage/storagePoint.js.map +1 -1
  280. package/out/templator/genCreateBlock.js +6 -6
  281. package/out/templator/genCreateBlock.js.map +1 -1
  282. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  283. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  284. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  285. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  286. package/out/templator/genEditTableBlock.js +5 -5
  287. package/out/templator/genEditTableBlock.js.map +1 -1
  288. package/out/templator/genEnumSelectBlock.js +2 -2
  289. package/out/templator/genEnumSelectBlock.js.map +1 -1
  290. package/out/templator/genGetBlock.js +5 -3
  291. package/out/templator/genGetBlock.js.map +1 -1
  292. package/out/templator/genGridViewBlock.d.ts +3 -1
  293. package/out/templator/genGridViewBlock.js +61 -6
  294. package/out/templator/genGridViewBlock.js.map +1 -1
  295. package/out/templator/genQueryComponent.d.ts +2 -0
  296. package/out/templator/genQueryComponent.js +27 -14
  297. package/out/templator/genQueryComponent.js.map +1 -1
  298. package/out/templator/genTableBlock.d.ts +1 -1
  299. package/out/templator/genTableBlock.js +4 -5
  300. package/out/templator/genTableBlock.js.map +1 -1
  301. package/out/templator/genUpdateBlock.js +9 -10
  302. package/out/templator/genUpdateBlock.js.map +1 -1
  303. package/out/templator/utils.d.ts +13 -4
  304. package/out/templator/utils.js +8 -4
  305. package/out/templator/utils.js.map +1 -1
  306. package/out/test/fixtures/env.js +0 -1
  307. package/out/test/fixtures/env.js.map +1 -1
  308. package/out/test/units/page/Element.spec.js +3 -3
  309. package/out/test/units/page/Element.spec.js.map +1 -1
  310. package/out/test/units/temp/temp.spec.js +1 -1
  311. package/out/test/units/temp/temp.spec.js.map +1 -1
  312. package/out/utils/index.d.ts +6 -0
  313. package/out/utils/index.js +20 -1
  314. package/out/utils/index.js.map +1 -1
  315. package/package.json +2 -1
  316. package/src/automate/engine/index.js +116 -39
  317. package/src/automate/engine/utils.js +49 -19
  318. package/src/common/BaseNode.ts +215 -71
  319. package/src/concepts/App__.ts +77 -37
  320. package/src/concepts/Argument__.ts +23 -3
  321. package/src/concepts/Assignee__.ts +437 -0
  322. package/src/concepts/Assignment__.ts +4 -1
  323. package/src/concepts/BinaryExpression__.ts +9 -7
  324. package/src/concepts/BindAttribute__.ts +68 -8
  325. package/src/concepts/BindDirective__.ts +21 -2
  326. package/src/concepts/BindEvent__.ts +67 -23
  327. package/src/concepts/BooleanLiteral__.ts +8 -0
  328. package/src/concepts/CallFunction__.ts +38 -21
  329. package/src/concepts/CallInterface__.ts +236 -26
  330. package/src/concepts/CallLogic__.ts +114 -86
  331. package/src/concepts/CallQueryComponent__.ts +23 -15
  332. package/src/concepts/Comment__.ts +6 -2
  333. package/src/concepts/CompletionProperty__.ts +5 -1
  334. package/src/concepts/ConfigGroup__.ts +2 -2
  335. package/src/concepts/ConfigProperty__.ts +2 -2
  336. package/src/concepts/Configuration__.ts +2 -2
  337. package/src/concepts/Constant__.ts +12 -0
  338. package/src/concepts/Destination__.ts +101 -17
  339. package/src/concepts/End__.ts +8 -1
  340. package/src/concepts/EntityProperty__.ts +58 -5
  341. package/src/concepts/Entity__.ts +40 -23
  342. package/src/concepts/Enum__.ts +16 -11
  343. package/src/concepts/Event__.ts +2 -2
  344. package/src/concepts/ForEachStatement__.ts +14 -19
  345. package/src/concepts/Function__.ts +9 -9
  346. package/src/concepts/Identifier__.ts +83 -32
  347. package/src/concepts/IfStatement__.ts +4 -4
  348. package/src/concepts/InterfaceParam__.ts +52 -16
  349. package/src/concepts/Interface__.ts +128 -14
  350. package/src/concepts/JSBlock__.ts +4 -0
  351. package/src/concepts/LogicItem__.ts +16 -1
  352. package/src/concepts/Logic__.ts +173 -35
  353. package/src/concepts/MemberExpression__.ts +58 -14
  354. package/src/concepts/Module__.ts +27 -16
  355. package/src/concepts/Namespace__.ts +37 -25
  356. package/src/concepts/NullLiteral__.ts +8 -1
  357. package/src/concepts/NumericLiteral__.ts +17 -6
  358. package/src/concepts/Param__.ts +56 -15
  359. package/src/concepts/ProcessComponent__.ts +4 -4
  360. package/src/concepts/ProcessElement__.ts +138 -39
  361. package/src/concepts/ProcessOutcome__.ts +1 -1
  362. package/src/concepts/Process__.ts +81 -94
  363. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  364. package/src/concepts/QueryFromExpression__.ts +2 -2
  365. package/src/concepts/QueryJoinExpression__.ts +4 -4
  366. package/src/concepts/QueryLimitExpression__.ts +3 -12
  367. package/src/concepts/QuerySelectExpression__.ts +2 -2
  368. package/src/concepts/Return__.ts +62 -15
  369. package/src/concepts/Role__.ts +5 -4
  370. package/src/concepts/SqlQueryComponent__.ts +2 -2
  371. package/src/concepts/StringLiteral__.ts +20 -31
  372. package/src/concepts/StructureProperty__.ts +50 -18
  373. package/src/concepts/Structure__.ts +30 -8
  374. package/src/concepts/SwitchCase__.ts +4 -4
  375. package/src/concepts/SwitchStatement__.ts +2 -2
  376. package/src/concepts/TypeAnnotation__.ts +58 -15
  377. package/src/concepts/UnaryExpression__.ts +10 -8
  378. package/src/concepts/Unparsed__.ts +1 -1
  379. package/src/concepts/ValidationRule__.ts +44 -14
  380. package/src/concepts/Variable__.ts +63 -14
  381. package/src/concepts/ViewComponent__.ts +10 -10
  382. package/src/concepts/ViewElement__.ts +285 -162
  383. package/src/concepts/View__.ts +116 -70
  384. package/src/concepts/WhileStatement__.ts +4 -4
  385. package/src/concepts/basics/stdlib/index.ts +4 -2
  386. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  387. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  388. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  389. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  390. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  391. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  392. package/src/concepts/basics/types/coreTypeList.ts +11 -11
  393. package/src/concepts/index__.ts +1 -0
  394. package/src/config.ts +1 -2
  395. package/src/enums/KEYWORDS.ts +1206 -0
  396. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  397. package/src/eventBus.ts +5 -0
  398. package/src/generator/genBundleFiles.ts +182 -30
  399. package/src/generator/genMetaData.ts +72 -21
  400. package/src/index.ts +2 -0
  401. package/src/manager/diagnostic.ts +1 -1
  402. package/src/server/createUiTs.ts +45 -7
  403. package/src/server/entity2LogicNamespace.ts +41 -25
  404. package/src/server/getExtensionModules.ts +2 -0
  405. package/src/server/getFunctions.ts +6 -0
  406. package/src/server/getLogics.ts +66 -19
  407. package/src/server/getMemberIdentifier.ts +233 -63
  408. package/src/server/getProcesses.ts +248 -4
  409. package/src/server/getScope.ts +50 -0
  410. package/src/server/index.ts +12 -1
  411. package/src/server/naslServer.ts +685 -387
  412. package/src/server/process2LogicNamespace.ts +30 -2
  413. package/src/server/translator.ts +423 -128
  414. package/src/service/config/index.js +1 -1
  415. package/src/service/creator/errHandles.js +5 -2
  416. package/src/service/creator/index.js +0 -6
  417. package/src/service/storage/api.js +14 -0
  418. package/src/service/storage/init.ts +198 -45
  419. package/src/service/storage/service.ts +6 -0
  420. package/src/service/storage/storagePoint.ts +16 -16
  421. package/src/templator/genCreateBlock.ts +6 -6
  422. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  423. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  424. package/src/templator/genEditTableBlock.ts +5 -5
  425. package/src/templator/genEnumSelectBlock.ts +2 -2
  426. package/src/templator/genGetBlock.ts +6 -8
  427. package/src/templator/genGridViewBlock.ts +59 -9
  428. package/src/templator/genQueryComponent.ts +39 -28
  429. package/src/templator/genTableBlock.ts +5 -9
  430. package/src/templator/genUpdateBlock.ts +9 -11
  431. package/src/templator/utils.ts +9 -6
  432. package/src/test/fixtures/env.ts +0 -2
  433. package/src/test/units/page/Element.spec.ts +3 -3
  434. package/src/test/units/temp/temp.spec.ts +1 -1
  435. package/src/utils/index.ts +19 -0
  436. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  437. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  438. package/out/data/Module.d.ts +0 -34
  439. package/out/data/Module.js +0 -53
  440. package/out/data/Module.js.map +0 -1
  441. package/src/automate/engine/index.d.ts +0 -3
@@ -170,7 +170,7 @@ export class Function extends BaseNode {
170
170
  name: options,
171
171
  }, this, 'typeParams');
172
172
  } else if (options instanceof TypeParam) {
173
- options.delete(); // 同一实例不支持多处存在
173
+ options.ensureDelete(); // 同一实例不支持多处存在
174
174
  typeParam = options;
175
175
  Object.assign(typeParam, relationOptions);
176
176
  } else {
@@ -258,7 +258,7 @@ export class Function extends BaseNode {
258
258
 
259
259
  addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
260
260
  const node = this._addTypeParam(options as any);
261
- const index = this.typeParams.length;
261
+ const index = this.typeParams.indexOf(node);
262
262
  node.create({
263
263
  index,
264
264
  parentNode: this,
@@ -308,7 +308,7 @@ export class Function extends BaseNode {
308
308
  name: options,
309
309
  }, this, 'params');
310
310
  } else if (options instanceof Param) {
311
- options.delete(); // 同一实例不支持多处存在
311
+ options.ensureDelete(); // 同一实例不支持多处存在
312
312
  param = options;
313
313
  Object.assign(param, relationOptions);
314
314
  } else {
@@ -396,7 +396,7 @@ export class Function extends BaseNode {
396
396
 
397
397
  addParam(options?: string | Partial<Param> | Param) {
398
398
  const node = this._addParam(options as any);
399
- const index = this.params.length;
399
+ const index = this.params.indexOf(node);
400
400
  node.create({
401
401
  index,
402
402
  parentNode: this,
@@ -406,7 +406,7 @@ export class Function extends BaseNode {
406
406
  }
407
407
 
408
408
 
409
- getReturnUniqueName(name = 'result1') {
409
+ getReturnUniqueName(name = 'result') {
410
410
  return utils.unique(name, this.getVarExistingNames());
411
411
  }
412
412
 
@@ -446,7 +446,7 @@ export class Function extends BaseNode {
446
446
  name: options,
447
447
  }, this, 'returns');
448
448
  } else if (options instanceof Return) {
449
- options.delete(); // 同一实例不支持多处存在
449
+ options.ensureDelete(); // 同一实例不支持多处存在
450
450
  ret = options;
451
451
  Object.assign(ret, relationOptions);
452
452
  } else {
@@ -534,7 +534,7 @@ export class Function extends BaseNode {
534
534
 
535
535
  addReturn(options?: string | Partial<Return> | Return) {
536
536
  const node = this._addReturn(options as any);
537
- const index = this.returns.length;
537
+ const index = this.returns.indexOf(node);
538
538
  node.create({
539
539
  index,
540
540
  parentNode: this,
@@ -584,7 +584,7 @@ export class Function extends BaseNode {
584
584
  name: options,
585
585
  }, this, 'variables');
586
586
  } else if (options instanceof Variable) {
587
- options.delete(); // 同一实例不支持多处存在
587
+ options.ensureDelete(); // 同一实例不支持多处存在
588
588
  variable = options;
589
589
  Object.assign(variable, relationOptions);
590
590
  } else {
@@ -672,7 +672,7 @@ export class Function extends BaseNode {
672
672
 
673
673
  addVariable(options?: string | Partial<Variable> | Variable) {
674
674
  const node = this._addVariable(options as any);
675
- const index = this.variables.length;
675
+ const index = this.variables.indexOf(node);
676
676
  node.create({
677
677
  index,
678
678
  parentNode: this,
@@ -1,5 +1,5 @@
1
1
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
2
- import { BindAttribute, CallFunction, CallLogic, Argument, MemberExpression } from '..';
2
+ import { BindAttribute, CallFunction, CallLogic, Argument, MemberExpression, TypeAnnotation } from '..';
3
3
  import { ElementToVueOptions } from './ViewElement__';
4
4
 
5
5
  //================================================================================
@@ -64,46 +64,91 @@ export class Identifier extends LogicItem {
64
64
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
65
65
  // 自动生成的代码已结束。下面可以手动编写。
66
66
  //================================================================================
67
+
68
+ // 选中的数据类型,这个用作暂存
69
+ typeAnnotation: TypeAnnotation = undefined;
70
+
67
71
  globalDataMap: {
68
- [name: string]: boolean
72
+ [name: string]: boolean;
69
73
  } = {
70
74
  $route: true,
71
75
  $global: true,
72
76
  $refs: true,
73
77
  };
74
78
 
79
+ isEnum() {
80
+ const namespace = this.namespace;
81
+ if (namespace) {
82
+ const namespaceArr = namespace.split('.');
83
+ const start = namespaceArr.shift();
84
+ if (start === 'app' || start === 'extensions') {
85
+ const mod = start === 'app' ? 0 : 1;
86
+ const keywordViews = namespaceArr.filter((namespaceItem, index) => index % 2 === mod);
87
+ const last = keywordViews.pop();
88
+ return last === 'enums';
89
+ }
90
+ }
91
+ return false;
92
+ }
93
+
75
94
  toVue(options?: ElementToVueOptions): string {
76
- return this.name;
95
+ let name = this.name;
96
+ const namespace = this.namespace;
97
+ if (namespace) {
98
+ if ((this.namespace.endsWith('nasl.browser') || this.namespace.endsWith('nasl.auth') || this.namespace.endsWith('nasl.configuration'))) {
99
+ name = `$global.${this.name}`;
100
+ } else if (this.isEnum()) {
101
+ name = `$utils.EnumList("${this.name}")`;
102
+ }
103
+ }
104
+ return name;
77
105
  }
78
106
 
79
107
  toUI(): string {
80
- return this.name;
108
+ let name = this.name;
109
+ const namespace = this.namespace;
110
+ if (namespace) {
111
+ if (namespace.startsWith('nasl.')) {
112
+ name = `${namespace}.${this.name}`;
113
+ } else if (this.isEnum()) {
114
+ name = `$utils.EnumList("${this.name}")`;
115
+ }
116
+ }
117
+ return name;
81
118
  }
82
119
 
83
120
  toJS(): string {
84
121
  const dataMap: {
85
- [name: string]: boolean
122
+ [name: string]: boolean;
86
123
  } = {};
87
- if (this.view) {
88
- const { params, variables } = this.view;
89
- if (Array.isArray(params)) {
90
- params.forEach((param) => {
91
- dataMap[param.name] = true;
92
- });
93
- }
94
- if (Array.isArray(variables)) {
95
- variables.forEach((variable) => {
96
- dataMap[variable.name] = true;
97
- });
98
- }
99
- }
124
+
125
+ this.view?.params?.forEach((param) => {
126
+ dataMap[param.name] = true;
127
+ });
128
+ this.view?.variables?.forEach((variable) => {
129
+ dataMap[variable.name] = true;
130
+ });
100
131
  const parentNode = this.parentNode;
101
- const grandParentNode = parentNode?.parentNode;
102
- let isMemberExpression = false;
103
- if (parentNode?.concept === 'MemberExpression' && (grandParentNode?.concept === 'MemberExpression' || this.parentKey === 'property')) {
104
- isMemberExpression = true;
132
+ let isMemberExpressionProperty = false;
133
+ if (parentNode?.concept === 'MemberExpression' && this.parentKey === 'property') {
134
+ isMemberExpressionProperty = true;
135
+ }
136
+ let name = this.name;
137
+ const namespace = this.namespace;
138
+ if (namespace) {
139
+ if (namespace.endsWith('nasl.browser') || namespace.endsWith('nasl.auth') || namespace.endsWith('nasl.configuration')) {
140
+ name = `$global.${this.name}`;
141
+ } else if (this.isEnum()) {
142
+ name = `$utils.EnumList("${this.name}")`;
143
+ }
105
144
  }
106
- return (dataMap[this.name] || this.globalDataMap[this.name]) && !isMemberExpression ? `this.${this.name}` : this.name;
145
+ return (dataMap[name]
146
+ || this.globalDataMap[name]
147
+ || namespace?.endsWith('nasl.browser')
148
+ || namespace?.endsWith('nasl.auth')
149
+ || namespace?.endsWith('nasl.configuration')
150
+ || this.isEnum())
151
+ && !isMemberExpressionProperty ? `this.${name}` : name;
107
152
  }
108
153
 
109
154
  @withSourceMap()
@@ -114,7 +159,7 @@ export class Identifier extends LogicItem {
114
159
  const viewLogics = view.logics;
115
160
  const findLogic = viewLogics.find((item) => item.name === this.name);
116
161
  if (findLogic) {
117
- return 'logics.' + this.name;
162
+ return this.name;
118
163
  }
119
164
  }
120
165
  // 因为右侧枚举要赋值就赋值toList方法一下
@@ -122,21 +167,27 @@ export class Identifier extends LogicItem {
122
167
  // 绑定类型
123
168
  if (this.parentNode instanceof BindAttribute) {
124
169
  // this.parentNode.name === 'data-source'
125
- return ((this.namespace + '.') || '') + this.name + '.toList';
170
+ return (this.namespace + '.' || '') + this.name + '.toList';
126
171
  }
127
172
  }
128
173
 
129
174
  // 如果是nasl.util.Enum 的子集里的 Identifier > MemberExpression > Argument > callfunction
130
175
  // nasl.util.Enum 的 右侧是转成字符串的
131
176
  // 如果是identifier 而且枚举
132
- if (this.parentNode?.parentNode?.parentNode instanceof CallFunction) {
133
- const calleeNamespace = this.parentNode.parentNode.parentNode.calleeNamespace;
134
- const calleeName = this.parentNode.parentNode.parentNode.calleeName;
135
- if (calleeNamespace + '.' + calleeName === 'nasl.util.Enum') {
136
- const str = (this.namespace ? this.namespace + '.' : '') + this.name;
137
- return str.includes('.enums.') ? str : str + '.toString()';
138
- }
177
+ // if (this.parentNode?.parentNode?.parentNode instanceof CallFunction) {
178
+ // const calleeNamespace = this.parentNode.parentNode.parentNode.calleeNamespace;
179
+ // const calleeName = this.parentNode.parentNode.parentNode.calleeName;
180
+ // if (calleeNamespace + '.' + calleeName === 'nasl.util.Enum') {
181
+ // const str = (this.namespace ? this.namespace + '.' : '') + this.name;
182
+ // return str.includes('.enums.') ? str : str + '.toString()';
183
+ // }
184
+ // }
185
+
186
+ // having 下选择的变量不生成 namespace 前缀
187
+ if (this.namespace === 'inner' && this.getAncestor('CallQueryComponent')) {
188
+ return `__${this.name}` || '__IDENTIFIER__';
139
189
  }
190
+
140
191
  return this.namespace ? this.namespace + '.' + this.name : this.name || '__IDENTIFIER__';
141
192
  }
142
193
 
@@ -96,7 +96,7 @@ export class IfStatement extends LogicItem {
96
96
  const relationOptions = { parentNode: this, parentKey: 'consequent' };
97
97
  let logicItem: LogicItem;
98
98
  if (options instanceof LogicItem) {
99
- options.delete(); // 同一实例不支持多处存在
99
+ options.ensureDelete(); // 同一实例不支持多处存在
100
100
  logicItem = options;
101
101
  Object.assign(logicItem, relationOptions);
102
102
  } else {
@@ -170,7 +170,7 @@ export class IfStatement extends LogicItem {
170
170
 
171
171
  addItemInConsequent(options?: Partial<LogicItem> | LogicItem) {
172
172
  const node = this._addItemInConsequent(options as any);
173
- const index = this.consequent.length;
173
+ const index = this.consequent.indexOf(node);
174
174
  node.create({
175
175
  index,
176
176
  parentNode: this,
@@ -200,7 +200,7 @@ export class IfStatement extends LogicItem {
200
200
  const relationOptions = { parentNode: this, parentKey: 'alternate' };
201
201
  let logicItem: LogicItem;
202
202
  if (options instanceof LogicItem) {
203
- options.delete(); // 同一实例不支持多处存在
203
+ options.ensureDelete(); // 同一实例不支持多处存在
204
204
  logicItem = options;
205
205
  Object.assign(logicItem, relationOptions);
206
206
  } else {
@@ -274,7 +274,7 @@ export class IfStatement extends LogicItem {
274
274
 
275
275
  addItemInAlternate(options?: Partial<LogicItem> | LogicItem) {
276
276
  const node = this._addItemInAlternate(options as any);
277
- const index = this.alternate.length;
277
+ const index = this.alternate.indexOf(node);
278
278
  node.create({
279
279
  index,
280
280
  parentNode: this,
@@ -2,8 +2,7 @@ import { dataTypesMap } from './basics/types';
2
2
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
3
3
  import Entity from './Entity__';
4
4
  import Structure from './Structure__';
5
- import { getNodeByNodeCallee } from '@nasl/automate/engine/utils';
6
-
5
+ import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
7
6
 
8
7
  //================================================================================
9
8
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -54,7 +53,7 @@ export class InterfaceParam extends BaseNode {
54
53
  * in
55
54
  */
56
55
  @property()
57
- in: 'query' | 'body' | 'header' | 'cookie' = undefined;
56
+ in: 'query' | 'path' | 'body' | 'header' | 'cookie' = undefined;
58
57
 
59
58
  /**
60
59
  * 是否必填
@@ -139,7 +138,7 @@ export class InterfaceParam extends BaseNode {
139
138
  /**
140
139
  * 设置in
141
140
  */
142
- setIn(inWhich: 'query' | 'body' | 'header' | 'cookie') {
141
+ setIn(inWhich: 'query' | 'path' | 'body' | 'header' | 'cookie') {
143
142
  const object = {
144
143
  in: inWhich,
145
144
  };
@@ -245,7 +244,7 @@ export class InterfaceParam extends BaseNode {
245
244
  // eslint-disable-next-line prefer-rest-params
246
245
  throw new Error('找不到类型:' + arguments[0]);
247
246
  } else {
248
- typeAnnotation._delete();
247
+ typeAnnotation._delete?.();
249
248
  const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
250
249
  Object.assign(typeAnnotation, relationOptions);
251
250
  }
@@ -265,26 +264,63 @@ export class InterfaceParam extends BaseNode {
265
264
  }
266
265
 
267
266
  @withSourceMap()
268
- toEmbeddedTS(state?: TranslatorState): string {
269
- let code = this.name;
267
+ toEmbeddedTS(state?: TranslatorState, isOptionalParameter?: boolean): string {
268
+ let code = this.tsName;
269
+ if (isOptionalParameter) {
270
+ code += '?';
271
+ }
270
272
  if (this.typeAnnotation) {
271
273
  code += ': ';
272
274
  code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
273
275
  }
276
+ // toTS暂时不需要默认值
277
+ // if (this.defaultValue) {
278
+ // code += ` = ${this.defaultValue}`;
279
+ // }
274
280
  return code;
275
281
  }
276
282
 
283
+ get hasChildren() {
284
+ const { typeKind, typeNamespace } = this.typeAnnotation;
285
+ if (typeKind === 'reference' || typeKind === 'generic') {
286
+ if (typeNamespace.endsWith('.enums'))
287
+ return null;
288
+ return [{}];
289
+ }
290
+ return null;
291
+ }
292
+ get isTreeLeaf() {
293
+ return !this.hasChildren;
294
+ }
277
295
  getSelectRef() {
278
- const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
279
- let completionChildren;
280
- if (typeKind === 'reference') {
281
- const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
282
- const properties = node.properties || [];
283
- completionChildren = properties;
284
- } else {
285
- completionChildren = undefined;
296
+ try {
297
+ const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
298
+ let completionChildren;
299
+ if (typeKind === 'reference') {
300
+ if (typeNamespace === 'nasl.ui') {
301
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
302
+ const properties = node.properties || [];
303
+ completionChildren = properties;
304
+ } else if (typeNamespace.endsWith('.enums')) {
305
+ completionChildren = undefined;
306
+ } else {
307
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
308
+ const properties = node.properties || [];
309
+ completionChildren = properties;
310
+ }
311
+ } else if (typeKind === 'generic') {
312
+ if (typeNamespace === 'nasl.collection') {
313
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
314
+ const properties = node.properties || [];
315
+ completionChildren = properties;
316
+ }
317
+ } else {
318
+ completionChildren = undefined;
319
+ }
320
+ return completionChildren;
321
+ } catch (err) {
322
+ console.log(err);
286
323
  }
287
- return completionChildren;
288
324
  }
289
325
  //================================================================================
290
326
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -171,7 +171,7 @@ export class Interface extends BaseNode {
171
171
  name: options,
172
172
  }, this, 'params');
173
173
  } else if (options instanceof InterfaceParam) {
174
- options.delete(); // 同一实例不支持多处存在
174
+ options.ensureDelete(); // 同一实例不支持多处存在
175
175
  interfaceParam = options;
176
176
  Object.assign(interfaceParam, relationOptions);
177
177
  } else {
@@ -259,7 +259,7 @@ export class Interface extends BaseNode {
259
259
 
260
260
  addInterfaceParam(options?: string | Partial<InterfaceParam> | InterfaceParam) {
261
261
  const node = this._addInterfaceParam(options as any);
262
- const index = this.params.length;
262
+ const index = this.params.indexOf(node);
263
263
  node.create({
264
264
  index,
265
265
  parentNode: this,
@@ -269,7 +269,7 @@ export class Interface extends BaseNode {
269
269
  }
270
270
 
271
271
 
272
- getReturnUniqueName(name = 'result1') {
272
+ getReturnUniqueName(name = 'result') {
273
273
  return utils.unique(name, this.getVarExistingNames());
274
274
  }
275
275
 
@@ -309,7 +309,7 @@ export class Interface extends BaseNode {
309
309
  name: options,
310
310
  }, this, 'returns');
311
311
  } else if (options instanceof Return) {
312
- options.delete(); // 同一实例不支持多处存在
312
+ options.ensureDelete(); // 同一实例不支持多处存在
313
313
  ret = options;
314
314
  Object.assign(ret, relationOptions);
315
315
  } else {
@@ -397,7 +397,7 @@ export class Interface extends BaseNode {
397
397
 
398
398
  addReturn(options?: string | Partial<Return> | Return) {
399
399
  const node = this._addReturn(options as any);
400
- const index = this.returns.length;
400
+ const index = this.returns.indexOf(node);
401
401
  node.create({
402
402
  index,
403
403
  parentNode: this,
@@ -519,6 +519,18 @@ export class Interface extends BaseNode {
519
519
  return !!this.module;
520
520
  }
521
521
 
522
+ toService() {
523
+ return {
524
+ config: {
525
+ serviceType: 'external',
526
+ },
527
+ url: {
528
+ method: this.method,
529
+ path: this.path,
530
+ },
531
+ };
532
+ }
533
+
522
534
  /**
523
535
  * 设置接口描述
524
536
  */
@@ -551,10 +563,14 @@ export class Interface extends BaseNode {
551
563
  }
552
564
 
553
565
  toEmbeddedTSFile() {
554
- let code = `namespace ${this.getNamespace()} {\n`;
566
+ let code = `namespace ${this.getTsNamespace()} {\n`;
555
567
 
556
568
  const state = createCompilerState(code, { tabSize: 1 });
557
- code += this.toEmbeddedTS(state);
569
+ try {
570
+ code += this.toEmbeddedTS(state);
571
+ } catch (err) {
572
+ code += '';
573
+ }
558
574
  code += '}\n';
559
575
 
560
576
  return {
@@ -565,9 +581,12 @@ export class Interface extends BaseNode {
565
581
  }
566
582
 
567
583
  get calleeKey(): string {
568
- return `${this.getNamespace()}.${this.name} `;
584
+ return `${this.getTsNamespace()}.${this.name} `;
569
585
  }
570
586
 
587
+ get calleewholeKey() {
588
+ return this.getNamespace() + '.' + this.name;
589
+ }
571
590
  /**
572
591
  * 生成宿主语言的文件路径
573
592
  * @param name 一般不用传,用于 rename
@@ -577,15 +596,95 @@ export class Interface extends BaseNode {
577
596
  return `/embedded/${this.app.name}${_path}/interfaces/${name}.ts`;
578
597
  }
579
598
 
599
+ get tsName(): string {
600
+ const excludeds = [
601
+ 'abstract',
602
+ 'arguments',
603
+ 'await',
604
+ 'boolean',
605
+ 'break',
606
+ 'byte',
607
+ 'case',
608
+ 'catch',
609
+ 'char',
610
+ 'class',
611
+ 'const',
612
+ 'continue',
613
+ 'debugger',
614
+ 'default',
615
+ 'delete',
616
+ 'do',
617
+ 'double',
618
+ 'else',
619
+ 'enum',
620
+ 'eval',
621
+ 'export',
622
+ 'extends',
623
+ 'false',
624
+ 'final',
625
+ 'finally',
626
+ 'float',
627
+ 'for',
628
+ 'function',
629
+ 'goto',
630
+ 'if',
631
+ 'implements',
632
+ 'import',
633
+ 'in',
634
+ 'instanceof',
635
+ 'int',
636
+ 'interface',
637
+ 'let',
638
+ 'long',
639
+ 'native',
640
+ 'new',
641
+ 'null',
642
+ 'package',
643
+ 'private',
644
+ 'protected',
645
+ 'public',
646
+ 'return',
647
+ 'short',
648
+ 'static',
649
+ 'super',
650
+ 'switch',
651
+ 'synchronized',
652
+ 'this',
653
+ 'throw',
654
+ 'throws',
655
+ 'transient',
656
+ 'true',
657
+ 'try',
658
+ 'typeof',
659
+ 'var',
660
+ 'void',
661
+ 'volatile',
662
+ 'while',
663
+ 'with',
664
+ 'yield,as',
665
+ 'any',
666
+ 'number',
667
+ 'string',
668
+ 'get',
669
+ 'type',
670
+ 'typeof',
671
+ 'instanceof',
672
+ 'require',
673
+ ];
674
+ if (excludeds.includes(this.name)) {
675
+ return '_' + this.name;
676
+ }
677
+ return this.name;
678
+ }
580
679
  @withSourceMap()
581
680
  toEmbeddedTS(state?: TranslatorState): string {
582
681
  let code = '';
583
- code += `export function ${this.name}(`;
682
+ code += `export function ${this.tsName}(`;
584
683
  this.params.forEach((param, index) => {
585
684
  if (index === 0) {
586
685
  code += '{';
587
686
  }
588
- code += param.name;
687
+ code += param.tsName;
589
688
  if (index !== this.params.length - 1) {
590
689
  code += ', ';
591
690
  } else {
@@ -596,7 +695,7 @@ export class Interface extends BaseNode {
596
695
  if (index === 0) {
597
696
  code += '{';
598
697
  }
599
- code += param.toEmbeddedTS(shiftState(state, code));
698
+ code += param.toEmbeddedTS(shiftState(state, code), !(param as InterfaceParam).required);
600
699
  if (index !== this.params.length - 1) {
601
700
  code += ', ';
602
701
  } else {
@@ -610,12 +709,16 @@ export class Interface extends BaseNode {
610
709
  });
611
710
  code += '{\n';
612
711
 
613
- code += this.module ? '' : 'let logic =' + (this.parentNode as Namespace).getNamespace() + '.logics.' + this.originLogicName + '\n';
614
- code += `return new ${this.returns[0].typeAnnotation.toEmbeddedTS(shiftState(state, code))}();`;
712
+ code += this.module ? '' : 'let logic =' + (this.parentNode as Namespace).getTsNamespace() + '.logics.' + this.originLogicName + '\n';
713
+ code += 'let ';
714
+ code += this.returns[0].toEmbeddedTS(shiftState(state, code, { inline: true }));
715
+ code += ';\n';
716
+ code += `return `;
717
+ code += this.returns[0].tsName || '__return;';
615
718
  code += '\n }';
616
719
  } else {
617
720
  code += 'void {';
618
- code += this.module ? '' : 'let logic =' + (this.parentNode as Namespace).getNamespace() + '.logics.' + this.originLogicName + '\n';
721
+ code += this.module ? '' : 'let logic =' + (this.parentNode as Namespace).getTsNamespace() + '.logics.' + this.originLogicName + '\n';
619
722
  code += '};';
620
723
  }
621
724
  code += '\n';
@@ -628,6 +731,17 @@ export class Interface extends BaseNode {
628
731
  else
629
732
  throw new Error('无法获取命名空间,请设置 parentNode!');
630
733
  }
734
+ getTsNamespace() {
735
+ if (this.parentNode.concept === 'App') {
736
+ return `${(this.parentNode as Namespace).getNamespace()}.interfaces`;
737
+ } else {
738
+ if (this.parentNode && (this.parentNode as Namespace).getTsNamespace) {
739
+ return `${(this.parentNode as Namespace).getTsNamespace()}.interfaces`;
740
+ } else {
741
+ throw new Error('无法获取命名空间,请设置 parentNode!');
742
+ }
743
+ }
744
+ }
631
745
 
632
746
  getVarExistingNames(excludedList: Array<InterfaceParam | Return> = []) {
633
747
  const excludedSet = new Set(excludedList);
@@ -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
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓