@lcap/nasl 1.0.0-alpha.8 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +414 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/operators.d.ts +13 -0
  5. package/out/automate/engine/operators.js +63 -0
  6. package/out/automate/engine/operators.js.map +1 -0
  7. package/out/automate/engine/uniqueName.d.ts +6 -0
  8. package/out/automate/engine/uniqueName.js +39 -0
  9. package/out/automate/engine/uniqueName.js.map +1 -0
  10. package/out/automate/engine/utils.d.ts +24 -0
  11. package/out/automate/engine/utils.js +363 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +20 -0
  14. package/out/common/BaseNode.js +219 -81
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +18 -1
  17. package/out/concepts/App__.js +84 -44
  18. package/out/concepts/App__.js.map +1 -1
  19. package/out/concepts/Argument__.d.ts +5 -1
  20. package/out/concepts/Argument__.js +21 -3
  21. package/out/concepts/Argument__.js.map +1 -1
  22. package/out/concepts/Assignee__.d.ts +190 -0
  23. package/out/concepts/Assignee__.js +264 -0
  24. package/out/concepts/Assignee__.js.map +1 -0
  25. package/out/concepts/Assignment__.js +5 -0
  26. package/out/concepts/Assignment__.js.map +1 -1
  27. package/out/concepts/BinaryExpression__.js +8 -7
  28. package/out/concepts/BinaryExpression__.js.map +1 -1
  29. package/out/concepts/BindAttribute__.d.ts +19 -0
  30. package/out/concepts/BindAttribute__.js +55 -10
  31. package/out/concepts/BindAttribute__.js.map +1 -1
  32. package/out/concepts/BindDirective__.js +23 -3
  33. package/out/concepts/BindDirective__.js.map +1 -1
  34. package/out/concepts/BindEvent__.d.ts +2 -2
  35. package/out/concepts/BindEvent__.js +67 -34
  36. package/out/concepts/BindEvent__.js.map +1 -1
  37. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  38. package/out/concepts/BooleanLiteral__.js +10 -0
  39. package/out/concepts/BooleanLiteral__.js.map +1 -1
  40. package/out/concepts/CallFunction__.js +57 -23
  41. package/out/concepts/CallFunction__.js.map +1 -1
  42. package/out/concepts/CallInterface__.d.ts +5 -0
  43. package/out/concepts/CallInterface__.js +238 -31
  44. package/out/concepts/CallInterface__.js.map +1 -1
  45. package/out/concepts/CallLogic__.d.ts +4 -4
  46. package/out/concepts/CallLogic__.js +107 -50
  47. package/out/concepts/CallLogic__.js.map +1 -1
  48. package/out/concepts/CallQueryComponent__.d.ts +7 -1
  49. package/out/concepts/CallQueryComponent__.js +45 -26
  50. package/out/concepts/CallQueryComponent__.js.map +1 -1
  51. package/out/concepts/Comment__.js +6 -2
  52. package/out/concepts/Comment__.js.map +1 -1
  53. package/out/concepts/CompletionProperty__.d.ts +3 -1
  54. package/out/concepts/CompletionProperty__.js +2 -0
  55. package/out/concepts/CompletionProperty__.js.map +1 -1
  56. package/out/concepts/ConfigGroup__.js +3 -3
  57. package/out/concepts/ConfigGroup__.js.map +1 -1
  58. package/out/concepts/ConfigProperty__.js +3 -3
  59. package/out/concepts/ConfigProperty__.js.map +1 -1
  60. package/out/concepts/Configuration__.js +3 -3
  61. package/out/concepts/Configuration__.js.map +1 -1
  62. package/out/concepts/Constant__.d.ts +1 -0
  63. package/out/concepts/Constant__.js +14 -0
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +98 -19
  67. package/out/concepts/Destination__.js.map +1 -1
  68. package/out/concepts/End__.js +9 -1
  69. package/out/concepts/End__.js.map +1 -1
  70. package/out/concepts/EntityProperty__.d.ts +11 -0
  71. package/out/concepts/EntityProperty__.js +73 -5
  72. package/out/concepts/EntityProperty__.js.map +1 -1
  73. package/out/concepts/Entity__.d.ts +4 -4
  74. package/out/concepts/Entity__.js +30 -20
  75. package/out/concepts/Entity__.js.map +1 -1
  76. package/out/concepts/Enum__.d.ts +4 -0
  77. package/out/concepts/Enum__.js +18 -10
  78. package/out/concepts/Enum__.js.map +1 -1
  79. package/out/concepts/Event__.js +3 -3
  80. package/out/concepts/Event__.js.map +1 -1
  81. package/out/concepts/ForEachStatement__.d.ts +1 -1
  82. package/out/concepts/ForEachStatement__.js +11 -15
  83. package/out/concepts/ForEachStatement__.js.map +1 -1
  84. package/out/concepts/Function__.js +13 -13
  85. package/out/concepts/Function__.js.map +1 -1
  86. package/out/concepts/Identifier__.d.ts +3 -0
  87. package/out/concepts/Identifier__.js +76 -29
  88. package/out/concepts/Identifier__.js.map +1 -1
  89. package/out/concepts/IfStatement__.js +4 -4
  90. package/out/concepts/IfStatement__.js.map +1 -1
  91. package/out/concepts/InterfaceParam__.d.ts +6 -4
  92. package/out/concepts/InterfaceParam__.js +52 -19
  93. package/out/concepts/InterfaceParam__.js.map +1 -1
  94. package/out/concepts/Interface__.d.ts +42 -30
  95. package/out/concepts/Interface__.js +133 -17
  96. package/out/concepts/Interface__.js.map +1 -1
  97. package/out/concepts/JSBlock__.d.ts +1 -0
  98. package/out/concepts/JSBlock__.js +3 -0
  99. package/out/concepts/JSBlock__.js.map +1 -1
  100. package/out/concepts/LogicItem__.d.ts +2 -1
  101. package/out/concepts/LogicItem__.js +14 -0
  102. package/out/concepts/LogicItem__.js.map +1 -1
  103. package/out/concepts/Logic__.d.ts +20 -1
  104. package/out/concepts/Logic__.js +194 -37
  105. package/out/concepts/Logic__.js.map +1 -1
  106. package/out/concepts/MemberExpression__.d.ts +2 -0
  107. package/out/concepts/MemberExpression__.js +49 -13
  108. package/out/concepts/MemberExpression__.js.map +1 -1
  109. package/out/concepts/Module__.d.ts +126 -120
  110. package/out/concepts/Module__.js +36 -26
  111. package/out/concepts/Module__.js.map +1 -1
  112. package/out/concepts/Namespace__.d.ts +5 -1
  113. package/out/concepts/Namespace__.js +48 -37
  114. package/out/concepts/Namespace__.js.map +1 -1
  115. package/out/concepts/NullLiteral__.d.ts +3 -0
  116. package/out/concepts/NullLiteral__.js +11 -1
  117. package/out/concepts/NullLiteral__.js.map +1 -1
  118. package/out/concepts/NumericLiteral__.d.ts +1 -1
  119. package/out/concepts/NumericLiteral__.js +17 -6
  120. package/out/concepts/NumericLiteral__.js.map +1 -1
  121. package/out/concepts/Param__.d.ts +7 -3
  122. package/out/concepts/Param__.js +57 -28
  123. package/out/concepts/Param__.js.map +1 -1
  124. package/out/concepts/ProcessComponent__.js +6 -6
  125. package/out/concepts/ProcessComponent__.js.map +1 -1
  126. package/out/concepts/ProcessElement__.d.ts +0 -4
  127. package/out/concepts/ProcessElement__.js +117 -54
  128. package/out/concepts/ProcessElement__.js.map +1 -1
  129. package/out/concepts/ProcessOutcome__.js +1 -1
  130. package/out/concepts/ProcessOutcome__.js.map +1 -1
  131. package/out/concepts/Process__.d.ts +7 -1
  132. package/out/concepts/Process__.js +81 -85
  133. package/out/concepts/Process__.js.map +1 -1
  134. package/out/concepts/QueryAggregateExpression__.js +1 -1
  135. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  136. package/out/concepts/QueryFromExpression__.js +2 -2
  137. package/out/concepts/QueryFromExpression__.js.map +1 -1
  138. package/out/concepts/QueryJoinExpression__.js +5 -5
  139. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  140. package/out/concepts/QueryLimitExpression__.js +2 -2
  141. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  142. package/out/concepts/QuerySelectExpression__.js +3 -3
  143. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  144. package/out/concepts/Return__.d.ts +4 -1
  145. package/out/concepts/Return__.js +67 -21
  146. package/out/concepts/Return__.js.map +1 -1
  147. package/out/concepts/Role__.d.ts +4 -0
  148. package/out/concepts/Role__.js +13 -4
  149. package/out/concepts/Role__.js.map +1 -1
  150. package/out/concepts/SqlQueryComponent__.js +2 -2
  151. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  152. package/out/concepts/StringLiteral__.d.ts +1 -1
  153. package/out/concepts/StringLiteral__.js +21 -31
  154. package/out/concepts/StringLiteral__.js.map +1 -1
  155. package/out/concepts/StructureProperty__.d.ts +5 -4
  156. package/out/concepts/StructureProperty__.js +55 -26
  157. package/out/concepts/StructureProperty__.js.map +1 -1
  158. package/out/concepts/Structure__.d.ts +44 -30
  159. package/out/concepts/Structure__.js +44 -12
  160. package/out/concepts/Structure__.js.map +1 -1
  161. package/out/concepts/SwitchCase__.js +4 -4
  162. package/out/concepts/SwitchCase__.js.map +1 -1
  163. package/out/concepts/SwitchStatement__.js +2 -2
  164. package/out/concepts/SwitchStatement__.js.map +1 -1
  165. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  166. package/out/concepts/TypeAnnotation__.js +74 -20
  167. package/out/concepts/TypeAnnotation__.js.map +1 -1
  168. package/out/concepts/UnaryExpression__.js +10 -8
  169. package/out/concepts/UnaryExpression__.js.map +1 -1
  170. package/out/concepts/Unparsed__.js +1 -1
  171. package/out/concepts/Unparsed__.js.map +1 -1
  172. package/out/concepts/ValidationRule__.d.ts +1 -0
  173. package/out/concepts/ValidationRule__.js +48 -13
  174. package/out/concepts/ValidationRule__.js.map +1 -1
  175. package/out/concepts/Variable__.d.ts +10 -1
  176. package/out/concepts/Variable__.js +70 -18
  177. package/out/concepts/Variable__.js.map +1 -1
  178. package/out/concepts/ViewComponent__.js +15 -15
  179. package/out/concepts/ViewComponent__.js.map +1 -1
  180. package/out/concepts/ViewElement__.d.ts +17 -11
  181. package/out/concepts/ViewElement__.js +302 -204
  182. package/out/concepts/ViewElement__.js.map +1 -1
  183. package/out/concepts/View__.d.ts +12 -11
  184. package/out/concepts/View__.js +109 -98
  185. package/out/concepts/View__.js.map +1 -1
  186. package/out/concepts/WhileStatement__.js +3 -3
  187. package/out/concepts/WhileStatement__.js.map +1 -1
  188. package/out/concepts/basics/stdlib/index.js +4 -1
  189. package/out/concepts/basics/stdlib/index.js.map +1 -1
  190. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  191. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  192. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  193. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  194. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  195. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  196. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  197. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  198. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  199. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  200. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  201. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  202. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  203. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  204. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  205. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  206. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  207. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  208. package/out/concepts/basics/types/coreTypeList.js +11 -10
  209. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  210. package/out/concepts/index__.d.ts +1 -0
  211. package/out/concepts/index__.js +1 -0
  212. package/out/concepts/index__.js.map +1 -1
  213. package/out/config.d.ts +1 -2
  214. package/out/config.js +1 -2
  215. package/out/config.js.map +1 -1
  216. package/out/enums/KEYWORDS.d.ts +3 -0
  217. package/out/enums/KEYWORDS.js +1206 -0
  218. package/out/enums/KEYWORDS.js.map +1 -0
  219. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  220. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  221. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  222. package/out/eventBus.d.ts +3 -0
  223. package/out/eventBus.js +7 -0
  224. package/out/eventBus.js.map +1 -0
  225. package/out/generator/genBundleFiles.d.ts +7 -2
  226. package/out/generator/genBundleFiles.js +168 -27
  227. package/out/generator/genBundleFiles.js.map +1 -1
  228. package/out/generator/genMetaData.d.ts +20 -20
  229. package/out/generator/genMetaData.js +50 -15
  230. package/out/generator/genMetaData.js.map +1 -1
  231. package/out/index.d.ts +2 -0
  232. package/out/index.js +2 -0
  233. package/out/index.js.map +1 -1
  234. package/out/manager/diagnostic.d.ts +1 -1
  235. package/out/server/createUiTs.d.ts +1 -0
  236. package/out/server/createUiTs.js +49 -5
  237. package/out/server/createUiTs.js.map +1 -1
  238. package/out/server/entity2LogicNamespace.js +38 -23
  239. package/out/server/entity2LogicNamespace.js.map +1 -1
  240. package/out/server/getExtensionModules.js +2 -0
  241. package/out/server/getExtensionModules.js.map +1 -1
  242. package/out/server/getFunctions.d.ts +1 -0
  243. package/out/server/getFunctions.js +7 -1
  244. package/out/server/getFunctions.js.map +1 -1
  245. package/out/server/getLogics.js +63 -18
  246. package/out/server/getLogics.js.map +1 -1
  247. package/out/server/getMemberIdentifier.d.ts +16 -1
  248. package/out/server/getMemberIdentifier.js +279 -36
  249. package/out/server/getMemberIdentifier.js.map +1 -1
  250. package/out/server/getProcesses.d.ts +6 -1
  251. package/out/server/getProcesses.js +243 -1
  252. package/out/server/getProcesses.js.map +1 -1
  253. package/out/server/getScope.d.ts +12 -0
  254. package/out/server/getScope.js +57 -0
  255. package/out/server/getScope.js.map +1 -0
  256. package/out/server/index.js +4 -0
  257. package/out/server/index.js.map +1 -1
  258. package/out/server/naslServer.d.ts +30 -53
  259. package/out/server/naslServer.js +721 -381
  260. package/out/server/naslServer.js.map +1 -1
  261. package/out/server/process2LogicNamespace.d.ts +10 -0
  262. package/out/server/process2LogicNamespace.js +29 -1
  263. package/out/server/process2LogicNamespace.js.map +1 -1
  264. package/out/server/translator.d.ts +22 -3
  265. package/out/server/translator.js +367 -123
  266. package/out/server/translator.js.map +1 -1
  267. package/out/service/creator/add.configs.d.ts +1 -0
  268. package/out/service/creator/add.configs.js +68 -0
  269. package/out/service/creator/add.configs.js.map +1 -0
  270. package/out/service/creator/errHandles.d.ts +18 -0
  271. package/out/service/creator/errHandles.js +60 -0
  272. package/out/service/creator/errHandles.js.map +1 -0
  273. package/out/service/creator/index.d.ts +1 -0
  274. package/out/service/creator/index.js +72 -0
  275. package/out/service/creator/index.js.map +1 -0
  276. package/out/service/storage/api.d.ts +18 -0
  277. package/out/service/storage/api.js +17 -0
  278. package/out/service/storage/api.js.map +1 -0
  279. package/out/service/storage/init.js +213 -37
  280. package/out/service/storage/init.js.map +1 -1
  281. package/out/service/storage/service.d.ts +2 -0
  282. package/out/service/storage/service.js +10 -0
  283. package/out/service/storage/service.js.map +1 -0
  284. package/out/service/storage/storagePoint.d.ts +1 -14
  285. package/out/service/storage/storagePoint.js +16 -16
  286. package/out/service/storage/storagePoint.js.map +1 -1
  287. package/out/templator/genCreateBlock.js +6 -6
  288. package/out/templator/genCreateBlock.js.map +1 -1
  289. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  290. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  291. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  292. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  293. package/out/templator/genEditTableBlock.js +5 -5
  294. package/out/templator/genEditTableBlock.js.map +1 -1
  295. package/out/templator/genEnumSelectBlock.js +2 -2
  296. package/out/templator/genEnumSelectBlock.js.map +1 -1
  297. package/out/templator/genGetBlock.js +5 -3
  298. package/out/templator/genGetBlock.js.map +1 -1
  299. package/out/templator/genGridViewBlock.d.ts +3 -1
  300. package/out/templator/genGridViewBlock.js +61 -6
  301. package/out/templator/genGridViewBlock.js.map +1 -1
  302. package/out/templator/genQueryComponent.d.ts +2 -0
  303. package/out/templator/genQueryComponent.js +27 -14
  304. package/out/templator/genQueryComponent.js.map +1 -1
  305. package/out/templator/genTableBlock.d.ts +1 -1
  306. package/out/templator/genTableBlock.js +4 -5
  307. package/out/templator/genTableBlock.js.map +1 -1
  308. package/out/templator/genUpdateBlock.js +9 -10
  309. package/out/templator/genUpdateBlock.js.map +1 -1
  310. package/out/templator/utils.d.ts +13 -4
  311. package/out/templator/utils.js +8 -4
  312. package/out/templator/utils.js.map +1 -1
  313. package/out/test/fixtures/env.js +0 -1
  314. package/out/test/fixtures/env.js.map +1 -1
  315. package/out/test/integration/connect-file copy.d.ts +1 -0
  316. package/out/test/integration/connect-file copy.js +50 -0
  317. package/out/test/integration/connect-file copy.js.map +1 -0
  318. package/out/test/integration/node-nasl-server.d.ts +1 -0
  319. package/out/test/integration/node-nasl-server.js +41 -0
  320. package/out/test/integration/node-nasl-server.js.map +1 -0
  321. package/out/test/units/page/Element.spec.js +3 -3
  322. package/out/test/units/page/Element.spec.js.map +1 -1
  323. package/out/test/units/temp/temp.spec.js +1 -1
  324. package/out/test/units/temp/temp.spec.js.map +1 -1
  325. package/out/utils/index.d.ts +6 -0
  326. package/out/utils/index.js +25 -1
  327. package/out/utils/index.js.map +1 -1
  328. package/out/utils/string.d.ts +1 -1
  329. package/out/utils/string.js +38 -9
  330. package/out/utils/string.js.map +1 -1
  331. package/package.json +2 -1
  332. package/src/automate/engine/index.js +97 -118
  333. package/src/automate/engine/operators.js +63 -0
  334. package/src/automate/engine/uniqueName.js +36 -0
  335. package/src/automate/engine/utils.js +49 -19
  336. package/src/common/BaseNode.ts +223 -87
  337. package/src/concepts/App__.ts +86 -46
  338. package/src/concepts/Argument__.ts +23 -3
  339. package/src/concepts/Assignee__.ts +437 -0
  340. package/src/concepts/Assignment__.ts +4 -1
  341. package/src/concepts/BinaryExpression__.ts +9 -7
  342. package/src/concepts/BindAttribute__.ts +69 -9
  343. package/src/concepts/BindDirective__.ts +22 -3
  344. package/src/concepts/BindEvent__.ts +67 -23
  345. package/src/concepts/BooleanLiteral__.ts +8 -0
  346. package/src/concepts/CallFunction__.ts +58 -25
  347. package/src/concepts/CallInterface__.ts +236 -26
  348. package/src/concepts/CallLogic__.ts +111 -52
  349. package/src/concepts/CallQueryComponent__.ts +36 -21
  350. package/src/concepts/Comment__.ts +6 -2
  351. package/src/concepts/CompletionProperty__.ts +5 -1
  352. package/src/concepts/ConfigGroup__.ts +3 -3
  353. package/src/concepts/ConfigProperty__.ts +3 -3
  354. package/src/concepts/Configuration__.ts +3 -3
  355. package/src/concepts/Constant__.ts +12 -0
  356. package/src/concepts/Destination__.ts +106 -18
  357. package/src/concepts/End__.ts +8 -1
  358. package/src/concepts/EntityProperty__.ts +69 -5
  359. package/src/concepts/Entity__.ts +33 -28
  360. package/src/concepts/Enum__.ts +16 -11
  361. package/src/concepts/Event__.ts +3 -3
  362. package/src/concepts/ForEachStatement__.ts +16 -21
  363. package/src/concepts/Function__.ts +13 -13
  364. package/src/concepts/Identifier__.ts +82 -32
  365. package/src/concepts/IfStatement__.ts +4 -4
  366. package/src/concepts/InterfaceParam__.ts +49 -27
  367. package/src/concepts/Interface__.ts +130 -16
  368. package/src/concepts/JSBlock__.ts +4 -0
  369. package/src/concepts/LogicItem__.ts +16 -1
  370. package/src/concepts/Logic__.ts +201 -39
  371. package/src/concepts/MemberExpression__.ts +58 -15
  372. package/src/concepts/Module__.ts +35 -24
  373. package/src/concepts/Namespace__.ts +49 -37
  374. package/src/concepts/NullLiteral__.ts +8 -1
  375. package/src/concepts/NumericLiteral__.ts +17 -6
  376. package/src/concepts/Param__.ts +54 -28
  377. package/src/concepts/ProcessComponent__.ts +6 -6
  378. package/src/concepts/ProcessElement__.ts +143 -44
  379. package/src/concepts/ProcessOutcome__.ts +1 -1
  380. package/src/concepts/Process__.ts +85 -98
  381. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  382. package/src/concepts/QueryFromExpression__.ts +2 -2
  383. package/src/concepts/QueryJoinExpression__.ts +5 -5
  384. package/src/concepts/QueryLimitExpression__.ts +2 -2
  385. package/src/concepts/QuerySelectExpression__.ts +3 -3
  386. package/src/concepts/Return__.ts +60 -29
  387. package/src/concepts/Role__.ts +11 -4
  388. package/src/concepts/SqlQueryComponent__.ts +2 -2
  389. package/src/concepts/StringLiteral__.ts +20 -31
  390. package/src/concepts/StructureProperty__.ts +50 -33
  391. package/src/concepts/Structure__.ts +32 -10
  392. package/src/concepts/SwitchCase__.ts +4 -4
  393. package/src/concepts/SwitchStatement__.ts +2 -2
  394. package/src/concepts/TypeAnnotation__.ts +59 -16
  395. package/src/concepts/UnaryExpression__.ts +10 -8
  396. package/src/concepts/Unparsed__.ts +1 -1
  397. package/src/concepts/ValidationRule__.ts +44 -14
  398. package/src/concepts/Variable__.ts +67 -25
  399. package/src/concepts/ViewComponent__.ts +15 -15
  400. package/src/concepts/ViewElement__.ts +380 -264
  401. package/src/concepts/View__.ts +139 -94
  402. package/src/concepts/WhileStatement__.ts +4 -4
  403. package/src/concepts/basics/stdlib/index.ts +4 -2
  404. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  405. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  406. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  407. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  408. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  409. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  410. package/src/concepts/basics/types/coreTypeList.ts +11 -10
  411. package/src/concepts/index__.ts +1 -0
  412. package/src/config.ts +1 -2
  413. package/src/enums/KEYWORDS.ts +1204 -0
  414. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  415. package/src/eventBus.ts +5 -0
  416. package/src/generator/genBundleFiles.ts +182 -30
  417. package/src/generator/genMetaData.ts +72 -21
  418. package/src/index.ts +2 -0
  419. package/src/manager/diagnostic.ts +1 -1
  420. package/src/server/createUiTs.ts +50 -8
  421. package/src/server/entity2LogicNamespace.ts +41 -25
  422. package/src/server/getExtensionModules.ts +2 -0
  423. package/src/server/getFunctions.ts +6 -0
  424. package/src/server/getLogics.ts +66 -19
  425. package/src/server/getMemberIdentifier.ts +275 -46
  426. package/src/server/getProcesses.ts +248 -4
  427. package/src/server/getScope.ts +62 -0
  428. package/src/server/index.ts +12 -1
  429. package/src/server/naslServer.ts +715 -398
  430. package/src/server/process2LogicNamespace.ts +30 -2
  431. package/src/server/translator.ts +423 -128
  432. package/src/service/config/index.js +1 -1
  433. package/src/service/creator/errHandles.js +5 -2
  434. package/src/service/creator/index.js +0 -6
  435. package/src/service/storage/api.js +14 -0
  436. package/src/service/storage/init.ts +217 -47
  437. package/src/service/storage/service.ts +6 -0
  438. package/src/service/storage/storagePoint.ts +16 -16
  439. package/src/templator/genCreateBlock.ts +6 -6
  440. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  441. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  442. package/src/templator/genEditTableBlock.ts +5 -5
  443. package/src/templator/genEnumSelectBlock.ts +2 -2
  444. package/src/templator/genGetBlock.ts +6 -8
  445. package/src/templator/genGridViewBlock.ts +59 -9
  446. package/src/templator/genQueryComponent.ts +39 -28
  447. package/src/templator/genTableBlock.ts +5 -9
  448. package/src/templator/genUpdateBlock.ts +9 -11
  449. package/src/templator/utils.ts +9 -6
  450. package/src/test/fixtures/env.ts +0 -2
  451. package/src/test/units/page/Element.spec.ts +3 -3
  452. package/src/test/units/temp/temp.spec.ts +1 -1
  453. package/src/utils/index.ts +24 -0
  454. package/src/utils/string.ts +39 -9
  455. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  456. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  457. package/out/data/Module.d.ts +0 -34
  458. package/out/data/Module.js +0 -53
  459. package/out/data/Module.js.map +0 -1
  460. package/src/automate/engine/index.d.ts +0 -3
@@ -165,7 +165,7 @@ export class BindEvent extends BaseNode {
165
165
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
166
166
  let argument: Argument;
167
167
  if (options instanceof Argument) {
168
- options.delete(); // 同一实例不支持多处存在
168
+ options.ensureDelete(); // 同一实例不支持多处存在
169
169
  argument = options;
170
170
  Object.assign(argument, relationOptions);
171
171
  } else {
@@ -239,7 +239,7 @@ export class BindEvent extends BaseNode {
239
239
 
240
240
  addArgument(options?: Partial<Argument> | Argument) {
241
241
  const node = this._addArgument(options as any);
242
- const index = this.arguments.length;
242
+ const index = this.arguments.indexOf(node);
243
243
  node.create({
244
244
  index,
245
245
  parentNode: this,
@@ -289,7 +289,10 @@ export class BindEvent extends BaseNode {
289
289
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
290
290
  // 自动生成的代码已结束。下面可以手动编写。
291
291
  //================================================================================
292
-
292
+ // 用于logic回填
293
+ get calleewholeKey(): string {
294
+ return this.calleeNamespace + '.' + this.calleeName;
295
+ }
293
296
  get tsCalleeNamespace() {
294
297
  if (this.calleeNamespace) {
295
298
  let tsCalleeNamespace = this.calleeNamespace;
@@ -303,7 +306,7 @@ export class BindEvent extends BaseNode {
303
306
  get calleeKey(): string {
304
307
  const tsCalleeNamespace = this.tsCalleeNamespace;
305
308
  if (!tsCalleeNamespace) {
306
- return `logics.${this.calleeName}`;
309
+ return `${this.calleeName}`;
307
310
  }
308
311
  // elements单独处理相对路径,和后缀的问题
309
312
  if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
@@ -326,17 +329,24 @@ export class BindEvent extends BaseNode {
326
329
  return `${randerNameSpace}.${this.calleeName}`;
327
330
  }
328
331
  // 绑定事件转驼峰
329
- toHump = (name: string) => name ? name.replace(/\-(\w)/g, (all, letter) => letter.toUpperCase()) : '';
332
+ toHump = (name: string) => (name ? name.replace(/\-(\w)/g, (all, letter) => letter.toUpperCase()) : '');
330
333
 
331
334
  @withSourceMap()
332
- toEmbeddedTS(state?: TranslatorState): string {
333
- let code = `${this.toHump(this.name) || '__IDENTIFIER__'}: (event) => [\n`;
334
- code += indent(state.tabSize + 1);
335
- code += `() => {${this.calleeKey}()}`;
336
- code += '\n';
337
- code += indent(state.tabSize);
338
- code += '],\n';
339
- return code;
335
+ toEmbeddedTS(state?: TranslatorState, isPageCycle?: Boolean): string {
336
+ // 如果有绑定的事件名
337
+ if (this.calleeName) {
338
+ if (isPageCycle) {
339
+ return `${this.calleeKey}();`;
340
+ }
341
+ let code = `${this.toHump(this.name) || '__IDENTIFIER__'}: (event) => [\n`;
342
+ code += indent(state.tabSize + 1);
343
+ code += `() => {${this.calleeKey}()}`;
344
+ code += '\n';
345
+ code += indent(state.tabSize);
346
+ code += '],\n';
347
+ return code;
348
+ }
349
+ return '';
340
350
  }
341
351
 
342
352
  // @withSourceMap()
@@ -369,19 +379,53 @@ export class BindEvent extends BaseNode {
369
379
  * 转换成 Vue 的模板格式
370
380
  */
371
381
  toVue(options?: ElementToVueOptions) {
372
- const calleeName = this.calleeName;
382
+ const calleeNamespace = this.calleeNamespace;
383
+ let isComponentLogic = false;
384
+ let componentName = '';
385
+ if (calleeNamespace) {
386
+ const namespaceArr = calleeNamespace.split('.');
387
+ const start = namespaceArr.shift();
388
+ if (start === 'elements' && namespaceArr.length === 2 && namespaceArr[1] === 'logics') {
389
+ isComponentLogic = true;
390
+ componentName = namespaceArr[0];
391
+ }
392
+ }
393
+ let callee = '';
394
+ if (isComponentLogic)
395
+ callee = `$refs.${componentName}.${this.calleeName}`;
396
+ else if (calleeNamespace?.startsWith('nasl.'))
397
+ callee = `$global.${this.calleeName}`;
398
+ else
399
+ callee = this.calleeName;
373
400
  let code = '';
374
- if (calleeName) {
375
- code += `@${this.name}="${calleeName}`;
376
- if (Array.isArray(this.arguments)) {
377
- code += '(';
378
- this.arguments.forEach((arg, index) => {
379
- code += arg.toJS();
380
- if (index !== this.arguments.length - 1)
381
- code += ', ';
401
+ if (callee) {
402
+ code += `@${this.name}="${callee}`;
403
+ const argsList: string[] = [];
404
+ const argsMap: any = {};
405
+ if (Array.isArray(this.arguments) && this.arguments.length) {
406
+ this.arguments.forEach((arg) => {
407
+ const argStr = arg.toJS();
408
+ argsList.push(argStr);
409
+ argsMap[argStr] = true;
382
410
  });
383
- code += ')';
384
411
  }
412
+ const additionalArgs: string[] = ['$event'];
413
+ if (Array.isArray(options?.scopeList) && options?.scopeList.length) {
414
+ additionalArgs.push(...options.scopeList);
415
+ }
416
+ additionalArgs.forEach((arg) => {
417
+ if (!argsMap[arg]) {
418
+ argsList.push(arg);
419
+ argsMap[arg] = true;
420
+ }
421
+ });
422
+ code += '(';
423
+ argsList.forEach((arg, index) => {
424
+ code += arg;
425
+ if (index !== argsList.length - 1)
426
+ code += ', ';
427
+ });
428
+ code += ')';
385
429
  code += `"`;
386
430
  }
387
431
  return code;
@@ -68,6 +68,14 @@ export class BooleanLiteral extends LogicItem {
68
68
  return this.value;
69
69
  }
70
70
 
71
+ @withSourceMap()
72
+ toEmbeddedTS(state?: TranslatorState) {
73
+ return this.value;
74
+ }
75
+ getValue() {
76
+ return this.value;
77
+ }
78
+
71
79
  //================================================================================
72
80
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
73
81
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -1,6 +1,7 @@
1
1
  import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
2
  import Function from './Function__';
3
3
  import { ElementToVueOptions } from './ViewElement__';
4
+ import Identifier from './Identifier__';
4
5
  //================================================================================
5
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
6
7
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -31,7 +32,7 @@ export class CallFunction extends LogicItem {
31
32
  * 调用函数标题
32
33
  */
33
34
  @property()
34
- label: string = '调用逻辑';
35
+ label: string = '内置函数';
35
36
 
36
37
  /**
37
38
  * calleeNamespace
@@ -104,7 +105,7 @@ export class CallFunction extends LogicItem {
104
105
  const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
105
106
  let typeAnnotation: TypeAnnotation;
106
107
  if (options instanceof TypeAnnotation) {
107
- options.delete(); // 同一实例不支持多处存在
108
+ options.ensureDelete(); // 同一实例不支持多处存在
108
109
  typeAnnotation = options;
109
110
  Object.assign(typeAnnotation, relationOptions);
110
111
  } else {
@@ -178,7 +179,7 @@ export class CallFunction extends LogicItem {
178
179
 
179
180
  addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
180
181
  const node = this._addTypeAnnotation(options as any);
181
- const index = this.typeArguments.length;
182
+ const index = this.typeArguments.indexOf(node);
182
183
  node.create({
183
184
  index,
184
185
  parentNode: this,
@@ -211,7 +212,7 @@ export class CallFunction extends LogicItem {
211
212
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
212
213
  let argument: Argument;
213
214
  if (options instanceof Argument) {
214
- options.delete(); // 同一实例不支持多处存在
215
+ options.ensureDelete(); // 同一实例不支持多处存在
215
216
  argument = options;
216
217
  Object.assign(argument, relationOptions);
217
218
  } else {
@@ -285,7 +286,7 @@ export class CallFunction extends LogicItem {
285
286
 
286
287
  addArgument(options?: Partial<Argument> | Argument) {
287
288
  const node = this._addArgument(options as any);
288
- const index = this.arguments.length;
289
+ const index = this.arguments.indexOf(node);
289
290
  node.create({
290
291
  index,
291
292
  parentNode: this,
@@ -374,23 +375,39 @@ export class CallFunction extends LogicItem {
374
375
  toVue(options?: ElementToVueOptions): string {
375
376
  let code = `$utils['${this.calleeName}']`;
376
377
  code += '(';
377
- this.arguments.forEach((arg, index) => {
378
- code += arg.toVue(options);
379
- if (index !== this.arguments.length - 1)
378
+ this.arguments?.forEach((arg, index) => {
379
+ code += arg?.toVue(options);
380
+ if (index !== this.arguments?.length - 1)
380
381
  code += ', ';
381
382
  });
383
+ if (this.typeArguments && this.typeArguments.length) {
384
+ code += ', ';
385
+ this.typeArguments?.forEach((arg, index) => {
386
+ code += arg?.toJS();
387
+ if (index !== this.arguments?.length - 1)
388
+ code += ', ';
389
+ });
390
+ }
382
391
  code += ')';
383
392
  return code;
384
393
  }
385
394
 
386
395
  toUI(): string {
387
- let code = `$utils['${this.calleeName}']`;
396
+ let code = this.calleeName;
388
397
  code += '(';
389
- this.arguments.forEach((arg, index) => {
390
- code += arg.toUI();
391
- if (index !== this.arguments.length - 1)
398
+ this.arguments?.forEach((arg, index) => {
399
+ code += arg?.toUI();
400
+ if (index !== this.arguments?.length - 1)
392
401
  code += ', ';
393
402
  });
403
+ if (this.typeArguments && this.typeArguments.length) {
404
+ code += ', ';
405
+ this.typeArguments?.forEach((arg, index) => {
406
+ code += arg?.typeName;
407
+ if (index !== this.arguments?.length - 1)
408
+ code += ', ';
409
+ });
410
+ }
394
411
  code += ')';
395
412
  return code;
396
413
  }
@@ -398,11 +415,19 @@ export class CallFunction extends LogicItem {
398
415
  toJS(state?: TranslatorState): string {
399
416
  let code = `this.$utils['${this.calleeName}']`;
400
417
  code += '(';
401
- this.arguments.forEach((arg, index) => {
402
- code += arg.toJS(shiftState(state, code));
403
- if (index !== this.arguments.length - 1)
418
+ this.arguments?.forEach((arg, index) => {
419
+ code += arg?.toJS(shiftState(state, code));
420
+ if (index !== this.arguments?.length - 1)
404
421
  code += ', ';
405
422
  });
423
+ if (this.typeArguments && this.typeArguments.length) {
424
+ code += ', ';
425
+ this.typeArguments?.forEach((arg, index) => {
426
+ code += arg?.toJS(shiftState(state, code));
427
+ if (index !== this.arguments?.length - 1)
428
+ code += ', ';
429
+ });
430
+ }
406
431
  code += ')';
407
432
  return code;
408
433
  }
@@ -412,10 +437,10 @@ export class CallFunction extends LogicItem {
412
437
  }
413
438
 
414
439
  _setCallee(func: Function) {
415
- this.calleeNamespace = func.getNamespace();
416
- this.calleeName = func.name;
440
+ this.calleeNamespace = func?.getNamespace();
441
+ this.calleeName = func?.name;
417
442
  this.arguments = [];
418
- func.params.forEach((param) => {
443
+ func?.params?.forEach((param) => {
419
444
  this._addArgument(undefined);
420
445
  });
421
446
  }
@@ -428,23 +453,26 @@ export class CallFunction extends LogicItem {
428
453
  const argument = Argument.from({
429
454
  keyword: param.name,
430
455
  }, this);
456
+ if (param.defaultExpression instanceof Identifier) {
457
+ argument.expression = BaseNode.from(param.defaultExpression, argument, 'expression') as Identifier;
458
+ }
431
459
  Object.assign(argument, relationOptions);
432
460
  return argument;
433
461
  });
434
462
  let typeArguments = null;
435
- if(func.typeParams) {
463
+ if (func.typeParams) {
436
464
  typeArguments = func.typeParams.map(() => {
437
465
  const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
438
466
  const typeArgu = new TypeAnnotation();
439
467
  Object.assign(typeArgu, relationOptions);
440
468
  return typeArgu;
441
- })
469
+ });
442
470
  }
443
471
  this.update({
444
472
  calleeNamespace,
445
473
  calleeName,
446
474
  arguments: params,
447
- typeArguments
475
+ typeArguments,
448
476
  });
449
477
  }
450
478
 
@@ -466,14 +494,19 @@ export class CallFunction extends LogicItem {
466
494
  code += ')';
467
495
  // 如果有内容
468
496
  const typeAnnotation = this.typeArguments[0];
469
- if (typeAnnotation.typeNamespace && typeAnnotation.typeName) {
470
- code += `<${typeAnnotation.typeNamespace}.${typeAnnotation.typeName}>()`;
471
- }
497
+ code += `<`;
498
+ code += `${typeAnnotation.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }))}>()`;
472
499
  code += '\n';
473
500
  } else {
474
501
  code = this.calleeKey;
502
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
503
+ // 如果有内容
504
+ const typeAnnotation = this.typeArguments[0];
505
+ code += `<`;
506
+ code += `${typeAnnotation.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }))}>`;
507
+ }
475
508
  code += '(';
476
- this.arguments.forEach((arg, index) => {
509
+ Array.isArray(this.arguments) && this.arguments.forEach((arg, index) => {
477
510
  code += arg.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
478
511
  if (index !== this.arguments.length - 1)
479
512
  code += ', ';
@@ -1,6 +1,8 @@
1
1
  import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
2
  import Interface from './Interface__';
3
+ import NullLiteral from './NullLiteral__';
3
4
  import { ElementToVueOptions } from './ViewElement__';
5
+ import { getConceptConstructor } from '../decorators';
4
6
  //================================================================================
5
7
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
6
8
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -97,7 +99,7 @@ export class CallInterface extends LogicItem {
97
99
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
98
100
  let argument: Argument;
99
101
  if (options instanceof Argument) {
100
- options.delete(); // 同一实例不支持多处存在
102
+ options.ensureDelete(); // 同一实例不支持多处存在
101
103
  argument = options;
102
104
  Object.assign(argument, relationOptions);
103
105
  } else {
@@ -171,7 +173,7 @@ export class CallInterface extends LogicItem {
171
173
 
172
174
  addArgument(options?: Partial<Argument> | Argument) {
173
175
  const node = this._addArgument(options as any);
174
- const index = this.arguments.length;
176
+ const index = this.arguments.indexOf(node);
175
177
  node.create({
176
178
  index,
177
179
  parentNode: this,
@@ -221,12 +223,23 @@ export class CallInterface extends LogicItem {
221
223
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
222
224
  // 自动生成的代码已结束。下面可以手动编写。
223
225
  //================================================================================
226
+
227
+ get tsCalleeNamespace() {
228
+ if (this.calleeNamespace) {
229
+ let tsCalleeNamespace = this.calleeNamespace;
230
+ tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
231
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
232
+ return tsCalleeNamespace;
233
+ }
234
+ return '';
235
+ }
236
+
224
237
  toVue(options?: ElementToVueOptions): string {
225
238
  let code = this.calleeName;
226
239
  code += '(';
227
- this.arguments.forEach((arg, index) => {
228
- code += arg.toVue(options);
229
- if (index !== this.arguments.length - 1)
240
+ this.arguments?.forEach((arg, index) => {
241
+ code += arg?.toVue(options);
242
+ if (index !== this.arguments?.length - 1)
230
243
  code += ', ';
231
244
  });
232
245
  code += ')';
@@ -236,9 +249,9 @@ export class CallInterface extends LogicItem {
236
249
  toUI(state?: TranslatorState): string {
237
250
  let code = this.calleeName;
238
251
  code += '(';
239
- this.arguments.forEach((arg, index) => {
240
- code += arg.toUI();
241
- if (index !== this.arguments.length - 1)
252
+ this.arguments?.forEach((arg, index) => {
253
+ code += arg?.toUI();
254
+ if (index !== this.arguments?.length - 1)
242
255
  code += ', ';
243
256
  });
244
257
  code += ')';
@@ -246,32 +259,208 @@ export class CallInterface extends LogicItem {
246
259
  }
247
260
 
248
261
  toJS(state?: TranslatorState): string {
249
- let code = this.calleeName;
250
- code += '(';
251
- this.arguments.forEach((arg, index) => {
252
- code += arg.toJS(shiftState(state, code));
253
- if (index !== this.arguments.length - 1)
254
- code += ', ';
255
- });
256
- code += ')';
262
+ const _arr = this.calleewholeKey.split('.');
263
+ const _name = _arr[1];
264
+ const _interfaceName = _arr[3];
265
+ const _module = this.app.interfaceDependencies.find((item) => item.name === _name);
266
+ const _interface = _module.interfaces.find((item) => item.name === _interfaceName);
267
+ if (!_interface) {
268
+ throw new Error(`${_name}下的${_interfaceName}接口未找到`);
269
+ }
270
+ let isSimpleBody = false; // 兼容body只有基本类型的
271
+ const _params = _interface.params;
272
+ const _queries = _params.filter((item) => item.in === 'query').map((item) => item.name);
273
+ const _headers = _params.filter((item) => item.in === 'header').map((item) => item.name);
274
+ const _body = _params
275
+ .filter((item) => item.in === 'body')
276
+ .map((item) => {
277
+ if (item.typeAnnotation.typeKind === 'primitive') {
278
+ isSimpleBody = true;
279
+ }
280
+ return item.name;
281
+ });
282
+ const _paths = _params.filter((item) => item.in === 'path').map((item) => item.name);
283
+
284
+ let code = `await this.$services['_custom']['${this.calleeNamespace}.${this.calleeName}']`;
285
+ code += `({
286
+ config: {
287
+ download: false,
288
+ },
289
+ query: {`;
290
+ this.arguments?.filter((arg) => _queries.includes(arg?.keyword))
291
+ .forEach((arg, index) => {
292
+ code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
293
+ if (index !== this.arguments?.length - 1)
294
+ code += ', ';
295
+ });
296
+ code += `},
297
+ path: {`;
298
+ this.arguments?.filter((arg) => _paths.includes(arg?.keyword))
299
+ .forEach((arg, index) => {
300
+ code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
301
+ if (index !== this.arguments?.length - 1)
302
+ code += ', ';
303
+ });
304
+ code += `},
305
+ headers: {`;
306
+ this.arguments?.filter((arg) => _headers.includes(arg?.keyword))
307
+ .forEach((arg, index) => {
308
+ code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
309
+ if (index !== this.arguments?.length - 1)
310
+ code += ', ';
311
+ });
312
+ code += `},\n`;
313
+ if (isSimpleBody) {
314
+ code += `body: `;
315
+ this.arguments?.forEach((arg, index) => {
316
+ code += ` ${arg?.toJS(shiftState(state, code))}`;
317
+ });
318
+ } else {
319
+ code += `body: {`;
320
+ this.arguments?.filter((arg) => _body.includes(arg?.keyword))
321
+ .forEach((arg, index) => {
322
+ code += ` ...${arg?.toJS(shiftState(state, code))}`;
323
+ if (index !== this.arguments?.length - 1)
324
+ code += ', ';
325
+ });
326
+ code += '}';
327
+ }
328
+
329
+ code += '\n})';
257
330
  return code;
258
331
  }
259
332
 
260
333
  @withSourceMap()
261
334
  toEmbeddedTS(state?: TranslatorState): string {
262
- let code = this.calleeKey;
263
- code += '({';
264
- this.arguments.forEach((arg, index) => {
265
- code += `${arg.keyword}:` + arg.toEmbeddedTS(shiftState(state, code));
266
- if (index !== this.arguments.length - 1)
267
- code += ', ';
268
- });
269
- code += '});\n';
335
+ let code = this.tsCalleeKey;
336
+ const _keys = this.calleeDefaultKey.split('.');
337
+ const _module = this.app.interfaceDependencies.find((item) => item.name === _keys[1]);
338
+ let params: string[] = [];
339
+ const _interface = _module?.interfaces?.find((item) => item.name === _keys[3]);
340
+ if (_interface) {
341
+ params = _interface.params.filter((item) => item.required).map((item) => item.name) || [];
342
+ // const _bodyParams = _interface.params.find((item) => item.name === 'Body');
343
+ // if (_bodyParams) {
344
+ // const _typeKey = _bodyParams.typeAnnotation.typeKey;
345
+ // const _list = _typeKey.split('.');
346
+ // const _structure = _module.structures.find((item) => item.name === _list[3]);
347
+ // const isBodyRequired = _structure.properties.some((item) => item.required === true);
348
+ // if (isBodyRequired) {
349
+ // params.push('Body');
350
+ // }
351
+ // }
352
+ }
353
+ code += '(';
354
+ if (this.arguments?.length) {
355
+ code += '{';
356
+ this.arguments?.forEach((arg, index) => {
357
+ code += arg?.toEmbeddedTS(shiftState(state, code), params.includes(arg?.keyword), true);
358
+ if (index !== this.arguments?.length - 1)
359
+ code += ', ';
360
+ });
361
+ code += '}';
362
+ }
270
363
 
364
+ code += ');\n';
271
365
  return code;
272
366
  }
273
367
 
274
368
  get calleeKey(): string {
369
+ const tsCalleeNamespace = this.tsCalleeNamespace;
370
+ const calleeName = this.calleeName;
371
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
372
+ }
373
+ // 用于logic回填
374
+ get calleewholeKey(): string {
375
+ return this.calleeNamespace + '.' + this.calleeName;
376
+ }
377
+ get tsCalleeName(): string {
378
+ const excludeds = [
379
+ 'abstract',
380
+ 'arguments',
381
+ 'await',
382
+ 'boolean',
383
+ 'break',
384
+ 'byte',
385
+ 'case',
386
+ 'catch',
387
+ 'char',
388
+ 'class',
389
+ 'const',
390
+ 'continue',
391
+ 'debugger',
392
+ 'default',
393
+ 'delete',
394
+ 'do',
395
+ 'double',
396
+ 'else',
397
+ 'enum',
398
+ 'eval',
399
+ 'export',
400
+ 'extends',
401
+ 'false',
402
+ 'final',
403
+ 'finally',
404
+ 'float',
405
+ 'for',
406
+ 'function',
407
+ 'goto',
408
+ 'if',
409
+ 'implements',
410
+ 'import',
411
+ 'in',
412
+ 'instanceof',
413
+ 'int',
414
+ 'interface',
415
+ 'let',
416
+ 'long',
417
+ 'native',
418
+ 'new',
419
+ 'null',
420
+ 'package',
421
+ 'private',
422
+ 'protected',
423
+ 'public',
424
+ 'return',
425
+ 'short',
426
+ 'static',
427
+ 'super',
428
+ 'switch',
429
+ 'synchronized',
430
+ 'this',
431
+ 'throw',
432
+ 'throws',
433
+ 'transient',
434
+ 'true',
435
+ 'try',
436
+ 'typeof',
437
+ 'var',
438
+ 'void',
439
+ 'volatile',
440
+ 'while',
441
+ 'with',
442
+ 'yield,as',
443
+ 'any',
444
+ 'number',
445
+ 'string',
446
+ 'get',
447
+ 'type',
448
+ 'typeof',
449
+ 'instanceof',
450
+ 'require',
451
+ ];
452
+ if (excludeds.includes(this.calleeName)) {
453
+ return '_' + this.calleeName;
454
+ }
455
+ return this.calleeName;
456
+ }
457
+
458
+ get tsCalleeKey(): string {
459
+ const tsCalleeNamespace = this.tsCalleeNamespace;
460
+ const calleeName = this.tsCalleeName;
461
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
462
+ }
463
+ get calleeDefaultKey(): string {
275
464
  return `${this.calleeNamespace}.${this.calleeName}`;
276
465
  }
277
466
  _setCallee(_interface: Interface) {
@@ -288,9 +477,30 @@ export class CallInterface extends LogicItem {
288
477
  const calleeName = _interface.name;
289
478
  const params = _interface.params.map((param) => {
290
479
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
291
- const argument = Argument.from({
480
+ let expression;
481
+ if (param.defaultValue && param.typeAnnotation.typeKind === 'primitive') {
482
+ const conceptMap: { [name: string]: string } = {
483
+ String: 'StringLiteral',
484
+ Boolean: 'BooleanLiteral',
485
+ Integer: 'NumericLiteral',
486
+ Double: 'NumericLiteral',
487
+ Long: 'NumericLiteral',
488
+ };
489
+ const typeName = param.typeAnnotation.typeName;
490
+ const concept: string = conceptMap[typeName] || 'StringLiteral';
491
+ const Ctor = getConceptConstructor(concept);
492
+ expression = new Ctor({
493
+ concept,
494
+ value: param.defaultValue,
495
+ typeAnnotation: param.typeAnnotation,
496
+ });
497
+ } else if (!param.required) {
498
+ expression = new NullLiteral();
499
+ }
500
+ const argument = new Argument({
292
501
  keyword: param.name,
293
- }, this);
502
+ expression,
503
+ });
294
504
  Object.assign(argument, relationOptions);
295
505
  return argument;
296
506
  });