@lcap/nasl 3.2.0-beta.3 → 3.3.0-alpha

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 (842) hide show
  1. package/out/automate/engine/utils.js +4 -0
  2. package/out/automate/engine/utils.js.map +1 -1
  3. package/out/automate/upgrader/2.20.js +1 -1
  4. package/out/automate/upgrader/2.20.js.map +1 -1
  5. package/out/bak/translator.js +11 -15
  6. package/out/bak/translator.js.map +1 -1
  7. package/out/breakpoint/generator/AfterStartNode.js +3 -1
  8. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  9. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  10. package/out/breakpoint/generator/BreakpointNode.d.ts +1 -0
  11. package/out/breakpoint/generator/BreakpointNode.js +48 -15
  12. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  13. package/out/breakpoint/generator/CallbackNode.d.ts +4 -0
  14. package/out/breakpoint/generator/CallbackNode.js +22 -0
  15. package/out/breakpoint/generator/CallbackNode.js.map +1 -0
  16. package/out/breakpoint/generator/FragmentNode.d.ts +4 -0
  17. package/out/breakpoint/generator/FragmentNode.js +18 -0
  18. package/out/breakpoint/generator/FragmentNode.js.map +1 -0
  19. package/out/breakpoint/generator/index.js +25 -4
  20. package/out/breakpoint/generator/index.js.map +1 -1
  21. package/out/breakpoint/shared/constants.d.ts +3 -0
  22. package/out/breakpoint/shared/constants.js +6 -1
  23. package/out/breakpoint/shared/constants.js.map +1 -1
  24. package/out/breakpoint/shared/operations.js.map +1 -1
  25. package/out/breakpoint/shared/socket.d.ts +1 -1
  26. package/out/breakpoint/shared/socket.js +36 -7
  27. package/out/breakpoint/shared/socket.js.map +1 -1
  28. package/out/breakpoint/shared/utils.d.ts +2 -0
  29. package/out/breakpoint/shared/utils.js +15 -2
  30. package/out/breakpoint/shared/utils.js.map +1 -1
  31. package/out/breakpoint/store/core.d.ts +48 -2
  32. package/out/breakpoint/store/core.js +58 -32
  33. package/out/breakpoint/store/core.js.map +1 -1
  34. package/out/breakpoint/store/dock.js +1 -1
  35. package/out/breakpoint/store/dock.js.map +1 -1
  36. package/out/common/BaseNode.d.ts +2 -2
  37. package/out/common/BaseNode.js +110 -53
  38. package/out/common/BaseNode.js.map +1 -1
  39. package/out/common/Command.d.ts +13 -2
  40. package/out/common/Command.js +37 -9
  41. package/out/common/Command.js.map +1 -1
  42. package/out/common/EventEmitter.js.map +1 -1
  43. package/out/common/Messager.d.ts +3 -3
  44. package/out/common/Messager.js +6 -7
  45. package/out/common/Messager.js.map +1 -1
  46. package/out/common/asyncFuncMap.js.map +1 -1
  47. package/out/concepts/Abort__.js +6 -5
  48. package/out/concepts/Abort__.js.map +1 -1
  49. package/out/concepts/Anchor__.d.ts +4 -3
  50. package/out/concepts/Anchor__.js +24 -7
  51. package/out/concepts/Anchor__.js.map +1 -1
  52. package/out/concepts/AnonymousFunction__.d.ts +22 -21
  53. package/out/concepts/AnonymousFunction__.js +48 -22
  54. package/out/concepts/AnonymousFunction__.js.map +1 -1
  55. package/out/concepts/App__.d.ts +421 -247
  56. package/out/concepts/App__.js +288 -54
  57. package/out/concepts/App__.js.map +1 -1
  58. package/out/concepts/Argument__.d.ts +4 -3
  59. package/out/concepts/Argument__.js +42 -11
  60. package/out/concepts/Argument__.js.map +1 -1
  61. package/out/concepts/Assignee__.d.ts +45 -45
  62. package/out/concepts/Assignee__.js +15 -15
  63. package/out/concepts/Assignee__.js.map +1 -1
  64. package/out/concepts/AssignmentLine__.js +6 -5
  65. package/out/concepts/AssignmentLine__.js.map +1 -1
  66. package/out/concepts/Assignment__.d.ts +7 -6
  67. package/out/concepts/Assignment__.js +41 -23
  68. package/out/concepts/Assignment__.js.map +1 -1
  69. package/out/concepts/Attribute__.d.ts +3 -3
  70. package/out/concepts/Attribute__.js +8 -7
  71. package/out/concepts/Attribute__.js.map +1 -1
  72. package/out/concepts/AuthInterface__.js +4 -3
  73. package/out/concepts/AuthInterface__.js.map +1 -1
  74. package/out/concepts/AuthLogicForCallInterface__.d.ts +15 -15
  75. package/out/concepts/AuthLogicForCallInterface__.js +46 -27
  76. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  77. package/out/concepts/AuthLogic__.js +27 -13
  78. package/out/concepts/AuthLogic__.js.map +1 -1
  79. package/out/concepts/BackendVariable__.d.ts +5 -5
  80. package/out/concepts/BackendVariable__.js +23 -26
  81. package/out/concepts/BackendVariable__.js.map +1 -1
  82. package/out/concepts/Backend__.d.ts +18 -18
  83. package/out/concepts/Backend__.js +13 -13
  84. package/out/concepts/Backend__.js.map +1 -1
  85. package/out/concepts/BatchAssignment__.d.ts +34 -33
  86. package/out/concepts/BatchAssignment__.js +83 -43
  87. package/out/concepts/BatchAssignment__.js.map +1 -1
  88. package/out/concepts/BinaryExpression__.d.ts +7 -6
  89. package/out/concepts/BinaryExpression__.js +60 -24
  90. package/out/concepts/BinaryExpression__.js.map +1 -1
  91. package/out/concepts/BindAttribute__.d.ts +37 -37
  92. package/out/concepts/BindAttribute__.js +102 -58
  93. package/out/concepts/BindAttribute__.js.map +1 -1
  94. package/out/concepts/BindDirective__.d.ts +13 -13
  95. package/out/concepts/BindDirective__.js +23 -21
  96. package/out/concepts/BindDirective__.js.map +1 -1
  97. package/out/concepts/BindEvent__.d.ts +28 -28
  98. package/out/concepts/BindEvent__.js +150 -57
  99. package/out/concepts/BindEvent__.js.map +1 -1
  100. package/out/concepts/BindStyle__.d.ts +14 -15
  101. package/out/concepts/BindStyle__.js +16 -16
  102. package/out/concepts/BindStyle__.js.map +1 -1
  103. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  104. package/out/concepts/BooleanLiteral__.js +12 -5
  105. package/out/concepts/BooleanLiteral__.js.map +1 -1
  106. package/out/concepts/CallAuthInterface__.d.ts +15 -15
  107. package/out/concepts/CallAuthInterface__.js +23 -22
  108. package/out/concepts/CallAuthInterface__.js.map +1 -1
  109. package/out/concepts/CallConnector__.d.ts +11 -9
  110. package/out/concepts/CallConnector__.js +79 -36
  111. package/out/concepts/CallConnector__.js.map +1 -1
  112. package/out/concepts/CallFunction__.d.ts +17 -16
  113. package/out/concepts/CallFunction__.js +95 -63
  114. package/out/concepts/CallFunction__.js.map +1 -1
  115. package/out/concepts/CallInterface__.d.ts +9 -8
  116. package/out/concepts/CallInterface__.js +109 -80
  117. package/out/concepts/CallInterface__.js.map +1 -1
  118. package/out/concepts/CallLogic__.d.ts +24 -20
  119. package/out/concepts/CallLogic__.js +209 -162
  120. package/out/concepts/CallLogic__.js.map +1 -1
  121. package/out/concepts/CallQueryComponent__.d.ts +51 -51
  122. package/out/concepts/CallQueryComponent__.js +66 -63
  123. package/out/concepts/CallQueryComponent__.js.map +1 -1
  124. package/out/concepts/Comment__.d.ts +1 -0
  125. package/out/concepts/Comment__.js +13 -6
  126. package/out/concepts/Comment__.js.map +1 -1
  127. package/out/concepts/CompletionProperty__.d.ts +3 -3
  128. package/out/concepts/CompletionProperty__.js +16 -8
  129. package/out/concepts/CompletionProperty__.js.map +1 -1
  130. package/out/concepts/ConfigGroup__.d.ts +15 -15
  131. package/out/concepts/ConfigGroup__.js +9 -9
  132. package/out/concepts/ConfigGroup__.js.map +1 -1
  133. package/out/concepts/ConfigPropertyValue__.js +4 -3
  134. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  135. package/out/concepts/ConfigProperty__.d.ts +15 -15
  136. package/out/concepts/ConfigProperty__.js +10 -10
  137. package/out/concepts/ConfigProperty__.js.map +1 -1
  138. package/out/concepts/Configuration__.d.ts +15 -15
  139. package/out/concepts/Configuration__.js +9 -9
  140. package/out/concepts/Configuration__.js.map +1 -1
  141. package/out/concepts/Connection__.d.ts +166 -0
  142. package/out/concepts/Connection__.js +332 -0
  143. package/out/concepts/Connection__.js.map +1 -0
  144. package/out/concepts/ConnectorTrigger__.js +4 -3
  145. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  146. package/out/concepts/Connector__.d.ts +66 -66
  147. package/out/concepts/Connector__.js +16 -15
  148. package/out/concepts/Connector__.js.map +1 -1
  149. package/out/concepts/Constant__.d.ts +3 -3
  150. package/out/concepts/Constant__.js +8 -7
  151. package/out/concepts/Constant__.js.map +1 -1
  152. package/out/concepts/DataElement__.d.ts +3 -3
  153. package/out/concepts/DataElement__.js +6 -5
  154. package/out/concepts/DataElement__.js.map +1 -1
  155. package/out/concepts/DataSource__.d.ts +15 -15
  156. package/out/concepts/DataSource__.js +55 -39
  157. package/out/concepts/DataSource__.js.map +1 -1
  158. package/out/concepts/DatabaseTypeAnnotation__.js +4 -3
  159. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  160. package/out/concepts/Destination__.d.ts +12 -11
  161. package/out/concepts/Destination__.js +93 -36
  162. package/out/concepts/Destination__.js.map +1 -1
  163. package/out/concepts/End__.js +15 -13
  164. package/out/concepts/End__.js.map +1 -1
  165. package/out/concepts/EntityIndex__.d.ts +1 -1
  166. package/out/concepts/EntityIndex__.js +6 -5
  167. package/out/concepts/EntityIndex__.js.map +1 -1
  168. package/out/concepts/EntityProperty__.d.ts +8 -7
  169. package/out/concepts/EntityProperty__.js +39 -24
  170. package/out/concepts/EntityProperty__.js.map +1 -1
  171. package/out/concepts/Entity__.d.ts +31 -30
  172. package/out/concepts/Entity__.js +40 -16
  173. package/out/concepts/Entity__.js.map +1 -1
  174. package/out/concepts/EnumItem__.d.ts +1 -0
  175. package/out/concepts/EnumItem__.js +12 -5
  176. package/out/concepts/EnumItem__.js.map +1 -1
  177. package/out/concepts/Enum__.d.ts +9 -8
  178. package/out/concepts/Enum__.js +24 -11
  179. package/out/concepts/Enum__.js.map +1 -1
  180. package/out/concepts/Event__.d.ts +15 -15
  181. package/out/concepts/Event__.js +6 -5
  182. package/out/concepts/Event__.js.map +1 -1
  183. package/out/concepts/ExternalDestination__.d.ts +6 -6
  184. package/out/concepts/ExternalDestination__.js +12 -11
  185. package/out/concepts/ExternalDestination__.js.map +1 -1
  186. package/out/concepts/ForEachStatement__.d.ts +25 -24
  187. package/out/concepts/ForEachStatement__.js +101 -36
  188. package/out/concepts/ForEachStatement__.js.map +1 -1
  189. package/out/concepts/FrontendLibrary__.d.ts +30 -30
  190. package/out/concepts/FrontendLibrary__.js +12 -13
  191. package/out/concepts/FrontendLibrary__.js.map +1 -1
  192. package/out/concepts/FrontendVariable__.js +4 -3
  193. package/out/concepts/FrontendVariable__.js.map +1 -1
  194. package/out/concepts/Frontend__.d.ts +64 -65
  195. package/out/concepts/Frontend__.js +23 -27
  196. package/out/concepts/Frontend__.js.map +1 -1
  197. package/out/concepts/Function__.d.ts +64 -63
  198. package/out/concepts/Function__.js +49 -21
  199. package/out/concepts/Function__.js.map +1 -1
  200. package/out/concepts/Identifier__.js +37 -31
  201. package/out/concepts/Identifier__.js.map +1 -1
  202. package/out/concepts/IfStatement__.d.ts +20 -19
  203. package/out/concepts/IfStatement__.js +64 -34
  204. package/out/concepts/IfStatement__.js.map +1 -1
  205. package/out/concepts/Integration__.d.ts +3 -3
  206. package/out/concepts/Integration__.js +8 -7
  207. package/out/concepts/Integration__.js.map +1 -1
  208. package/out/concepts/InterfaceParam__.d.ts +3 -3
  209. package/out/concepts/InterfaceParam__.js +7 -6
  210. package/out/concepts/InterfaceParam__.js.map +1 -1
  211. package/out/concepts/Interface__.d.ts +33 -33
  212. package/out/concepts/Interface__.js +19 -20
  213. package/out/concepts/Interface__.js.map +1 -1
  214. package/out/concepts/JSBlock__.d.ts +1 -0
  215. package/out/concepts/JSBlock__.js +12 -5
  216. package/out/concepts/JSBlock__.js.map +1 -1
  217. package/out/concepts/JavaLogic__.js +10 -9
  218. package/out/concepts/JavaLogic__.js.map +1 -1
  219. package/out/concepts/LogicItem__.d.ts +6 -0
  220. package/out/concepts/LogicItem__.js +14 -5
  221. package/out/concepts/LogicItem__.js.map +1 -1
  222. package/out/concepts/Logic__.d.ts +80 -79
  223. package/out/concepts/Logic__.js +204 -58
  224. package/out/concepts/Logic__.js.map +1 -1
  225. package/out/concepts/MatchCase__.d.ts +39 -38
  226. package/out/concepts/MatchCase__.js +122 -37
  227. package/out/concepts/MatchCase__.js.map +1 -1
  228. package/out/concepts/Match__.d.ts +13 -11
  229. package/out/concepts/Match__.js +128 -60
  230. package/out/concepts/Match__.js.map +1 -1
  231. package/out/concepts/MemberExpression__.d.ts +7 -6
  232. package/out/concepts/MemberExpression__.js +52 -22
  233. package/out/concepts/MemberExpression__.js.map +1 -1
  234. package/out/concepts/MicroApp__.js +4 -3
  235. package/out/concepts/MicroApp__.js.map +1 -1
  236. package/out/concepts/Module__.d.ts +242 -154
  237. package/out/concepts/Module__.js +139 -33
  238. package/out/concepts/Module__.js.map +1 -1
  239. package/out/concepts/MsgTriggerEvent__.d.ts +15 -15
  240. package/out/concepts/MsgTriggerEvent__.js +6 -5
  241. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  242. package/out/concepts/MsgTriggerLauncher__.d.ts +23 -15
  243. package/out/concepts/MsgTriggerLauncher__.js +24 -5
  244. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  245. package/out/concepts/Namespace__.d.ts +180 -180
  246. package/out/concepts/Namespace__.js +33 -34
  247. package/out/concepts/Namespace__.js.map +1 -1
  248. package/out/concepts/NewComposite__.d.ts +49 -48
  249. package/out/concepts/NewComposite__.js +164 -49
  250. package/out/concepts/NewComposite__.js.map +1 -1
  251. package/out/concepts/NewList__.d.ts +19 -18
  252. package/out/concepts/NewList__.js +29 -12
  253. package/out/concepts/NewList__.js.map +1 -1
  254. package/out/concepts/NewMap__.d.ts +34 -33
  255. package/out/concepts/NewMap__.js +81 -72
  256. package/out/concepts/NewMap__.js.map +1 -1
  257. package/out/concepts/New__.js +6 -5
  258. package/out/concepts/New__.js.map +1 -1
  259. package/out/concepts/NullLiteral__.js +6 -5
  260. package/out/concepts/NullLiteral__.js.map +1 -1
  261. package/out/concepts/NumericLiteral__.d.ts +4 -3
  262. package/out/concepts/NumericLiteral__.js +15 -8
  263. package/out/concepts/NumericLiteral__.js.map +1 -1
  264. package/out/concepts/OqlQueryComponent__.d.ts +4 -3
  265. package/out/concepts/OqlQueryComponent__.js +25 -16
  266. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  267. package/out/concepts/OverriddenLogic__.d.ts +79 -79
  268. package/out/concepts/OverriddenLogic__.js +79 -58
  269. package/out/concepts/OverriddenLogic__.js.map +1 -1
  270. package/out/concepts/Param__.d.ts +6 -5
  271. package/out/concepts/Param__.js +66 -29
  272. package/out/concepts/Param__.js.map +1 -1
  273. package/out/concepts/Point__.js +4 -3
  274. package/out/concepts/Point__.js.map +1 -1
  275. package/out/concepts/ProcessComponent__.d.ts +30 -30
  276. package/out/concepts/ProcessComponent__.js +8 -7
  277. package/out/concepts/ProcessComponent__.js.map +1 -1
  278. package/out/concepts/ProcessElement__.d.ts +96 -96
  279. package/out/concepts/ProcessElement__.js +34 -34
  280. package/out/concepts/ProcessElement__.js.map +1 -1
  281. package/out/concepts/ProcessOutcome__.js +6 -5
  282. package/out/concepts/ProcessOutcome__.js.map +1 -1
  283. package/out/concepts/ProcessOutcomes__.js +6 -5
  284. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  285. package/out/concepts/Process__.d.ts +75 -75
  286. package/out/concepts/Process__.js +33 -30
  287. package/out/concepts/Process__.js.map +1 -1
  288. package/out/concepts/QueryAggregateExpression__.d.ts +3 -3
  289. package/out/concepts/QueryAggregateExpression__.js +8 -7
  290. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  291. package/out/concepts/QueryFieldExpression__.js +7 -6
  292. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  293. package/out/concepts/QueryFromExpression__.d.ts +8 -8
  294. package/out/concepts/QueryFromExpression__.js +8 -7
  295. package/out/concepts/QueryFromExpression__.js.map +1 -1
  296. package/out/concepts/QueryGroupByExpression__.d.ts +3 -3
  297. package/out/concepts/QueryGroupByExpression__.js +9 -10
  298. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  299. package/out/concepts/QueryJoinExpression__.d.ts +23 -23
  300. package/out/concepts/QueryJoinExpression__.js +11 -10
  301. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  302. package/out/concepts/QueryLimitExpression__.d.ts +6 -6
  303. package/out/concepts/QueryLimitExpression__.js +9 -8
  304. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  305. package/out/concepts/QueryOrderByExpression__.d.ts +6 -6
  306. package/out/concepts/QueryOrderByExpression__.js +9 -8
  307. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  308. package/out/concepts/QuerySelectExpression__.d.ts +30 -30
  309. package/out/concepts/QuerySelectExpression__.js +9 -8
  310. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  311. package/out/concepts/Rect__.js +4 -3
  312. package/out/concepts/Rect__.js.map +1 -1
  313. package/out/concepts/Return__.d.ts +4 -3
  314. package/out/concepts/Return__.js +37 -18
  315. package/out/concepts/Return__.js.map +1 -1
  316. package/out/concepts/Role__.js +9 -9
  317. package/out/concepts/Role__.js.map +1 -1
  318. package/out/concepts/SelectMembers__.d.ts +18 -18
  319. package/out/concepts/SelectMembers__.js +10 -9
  320. package/out/concepts/SelectMembers__.js.map +1 -1
  321. package/out/concepts/Slot__.d.ts +3 -3
  322. package/out/concepts/Slot__.js +6 -5
  323. package/out/concepts/Slot__.js.map +1 -1
  324. package/out/concepts/SqlQueryComponent__.d.ts +4 -3
  325. package/out/concepts/SqlQueryComponent__.js +21 -12
  326. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  327. package/out/concepts/Start__.js +6 -5
  328. package/out/concepts/Start__.js.map +1 -1
  329. package/out/concepts/StringInterpolation__.d.ts +16 -15
  330. package/out/concepts/StringInterpolation__.js +37 -14
  331. package/out/concepts/StringInterpolation__.js.map +1 -1
  332. package/out/concepts/StringLiteral__.d.ts +1 -0
  333. package/out/concepts/StringLiteral__.js +13 -8
  334. package/out/concepts/StringLiteral__.js.map +1 -1
  335. package/out/concepts/StructureProperty__.d.ts +4 -3
  336. package/out/concepts/StructureProperty__.js +22 -9
  337. package/out/concepts/StructureProperty__.js.map +1 -1
  338. package/out/concepts/Structure__.d.ts +31 -30
  339. package/out/concepts/Structure__.js +27 -15
  340. package/out/concepts/Structure__.js.map +1 -1
  341. package/out/concepts/SwitchCase__.d.ts +12 -11
  342. package/out/concepts/SwitchCase__.js +69 -31
  343. package/out/concepts/SwitchCase__.js.map +1 -1
  344. package/out/concepts/SwitchStatement__.d.ts +9 -8
  345. package/out/concepts/SwitchStatement__.js +27 -7
  346. package/out/concepts/SwitchStatement__.js.map +1 -1
  347. package/out/concepts/Theme__.js +4 -3
  348. package/out/concepts/Theme__.js.map +1 -1
  349. package/out/concepts/Transactional__.js +4 -3
  350. package/out/concepts/Transactional__.js.map +1 -1
  351. package/out/concepts/TriggerEvent__.d.ts +15 -15
  352. package/out/concepts/TriggerEvent__.js +6 -5
  353. package/out/concepts/TriggerEvent__.js.map +1 -1
  354. package/out/concepts/TriggerLauncher__.d.ts +15 -10
  355. package/out/concepts/TriggerLauncher__.js +54 -32
  356. package/out/concepts/TriggerLauncher__.js.map +1 -1
  357. package/out/concepts/TypeAnnotation__.d.ts +28 -27
  358. package/out/concepts/TypeAnnotation__.js +144 -124
  359. package/out/concepts/TypeAnnotation__.js.map +1 -1
  360. package/out/concepts/TypeParam__.d.ts +1 -0
  361. package/out/concepts/TypeParam__.js +12 -5
  362. package/out/concepts/TypeParam__.js.map +1 -1
  363. package/out/concepts/UnaryExpression__.d.ts +4 -3
  364. package/out/concepts/UnaryExpression__.js +31 -20
  365. package/out/concepts/UnaryExpression__.js.map +1 -1
  366. package/out/concepts/Unparsed__.d.ts +1 -0
  367. package/out/concepts/Unparsed__.js +12 -5
  368. package/out/concepts/Unparsed__.js.map +1 -1
  369. package/out/concepts/UseComponent__.js +4 -3
  370. package/out/concepts/UseComponent__.js.map +1 -1
  371. package/out/concepts/ValidationRule__.d.ts +14 -14
  372. package/out/concepts/ValidationRule__.js +19 -17
  373. package/out/concepts/ValidationRule__.js.map +1 -1
  374. package/out/concepts/Variable__.d.ts +4 -3
  375. package/out/concepts/Variable__.js +39 -23
  376. package/out/concepts/Variable__.js.map +1 -1
  377. package/out/concepts/ViewBlock__.js +4 -3
  378. package/out/concepts/ViewBlock__.js.map +1 -1
  379. package/out/concepts/ViewComponent__.d.ts +90 -90
  380. package/out/concepts/ViewComponent__.js +16 -15
  381. package/out/concepts/ViewComponent__.js.map +1 -1
  382. package/out/concepts/ViewElement__.d.ts +92 -86
  383. package/out/concepts/ViewElement__.js +258 -200
  384. package/out/concepts/ViewElement__.js.map +1 -1
  385. package/out/concepts/View__.d.ts +92 -92
  386. package/out/concepts/View__.js +173 -63
  387. package/out/concepts/View__.js.map +1 -1
  388. package/out/concepts/WhileStatement__.d.ts +12 -11
  389. package/out/concepts/WhileStatement__.js +46 -23
  390. package/out/concepts/WhileStatement__.js.map +1 -1
  391. package/out/concepts/basics/stdlib/index.js +17 -1
  392. package/out/concepts/basics/stdlib/index.js.map +1 -1
  393. package/out/concepts/basics/stdlib/nasl.browser.js +36 -0
  394. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  395. package/out/concepts/basics/stdlib/nasl.event.d.ts +3 -0
  396. package/out/concepts/basics/stdlib/nasl.event.js +23 -0
  397. package/out/concepts/basics/stdlib/nasl.event.js.map +1 -0
  398. package/out/concepts/basics/stdlib/nasl.ui.js +45 -0
  399. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  400. package/out/concepts/basics/stdlib/nasl.util.js +6 -22
  401. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  402. package/out/concepts/index__.d.ts +2 -1
  403. package/out/concepts/index__.js +2 -1
  404. package/out/concepts/index__.js.map +1 -1
  405. package/out/concepts/types__.d.ts +2 -1
  406. package/out/decorators/index.d.ts +1 -1
  407. package/out/decorators/index.js +20 -7
  408. package/out/decorators/index.js.map +1 -1
  409. package/out/decorators/promise.d.ts +7 -0
  410. package/out/decorators/promise.js +28 -0
  411. package/out/decorators/promise.js.map +1 -0
  412. package/out/enums/KEYWORDS.js.map +1 -1
  413. package/out/enums/LEVEL_NAME_MAP.js.map +1 -1
  414. package/out/generator/compileComponent.js.map +1 -1
  415. package/out/generator/genBundleFiles.d.ts +4 -1
  416. package/out/generator/genBundleFiles.js +15 -11
  417. package/out/generator/genBundleFiles.js.map +1 -1
  418. package/out/generator/genHash.js.map +1 -1
  419. package/out/generator/genMetaData.js +12 -8
  420. package/out/generator/genMetaData.js.map +1 -1
  421. package/out/generator/genReleaseBody.js +33 -35
  422. package/out/generator/genReleaseBody.js.map +1 -1
  423. package/out/generator/microApp.js +2 -1
  424. package/out/generator/microApp.js.map +1 -1
  425. package/out/generator/permission.js +31 -30
  426. package/out/generator/permission.js.map +1 -1
  427. package/out/generator/styleReplacer.js +4 -7
  428. package/out/generator/styleReplacer.js.map +1 -1
  429. package/out/index.d.ts +0 -2
  430. package/out/index.js +0 -3
  431. package/out/index.js.map +1 -1
  432. package/out/manager/diagnostic.d.ts +1 -1
  433. package/out/manager/diagnostic.js.map +1 -1
  434. package/out/manager/stepRecorder.js +13 -9
  435. package/out/manager/stepRecorder.js.map +1 -1
  436. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  437. package/out/natural/RequirementAnalyzer.js +196 -0
  438. package/out/natural/RequirementAnalyzer.js.map +1 -0
  439. package/out/natural/RequirementExecutor.d.ts +51 -0
  440. package/out/natural/RequirementExecutor.js +692 -0
  441. package/out/natural/RequirementExecutor.js.map +1 -0
  442. package/out/natural/componentData.d.ts +31 -0
  443. package/out/natural/componentData.js +85 -0
  444. package/out/natural/componentData.js.map +1 -0
  445. package/out/natural/genNaturalTS.d.ts +3 -0
  446. package/out/natural/genNaturalTS.js +76 -0
  447. package/out/natural/genNaturalTS.js.map +1 -0
  448. package/out/natural/index.d.ts +4 -0
  449. package/out/natural/index.js +21 -0
  450. package/out/natural/index.js.map +1 -0
  451. package/out/natural/knowledgeMap.d.ts +4 -0
  452. package/out/natural/knowledgeMap.js +40 -0
  453. package/out/natural/knowledgeMap.js.map +1 -0
  454. package/out/natural/naslStdlibMap.d.ts +2 -0
  455. package/out/natural/naslStdlibMap.js +26 -0
  456. package/out/natural/naslStdlibMap.js.map +1 -0
  457. package/out/natural/transformTSCode.d.ts +7 -0
  458. package/out/natural/transformTSCode.js +760 -0
  459. package/out/natural/transformTSCode.js.map +1 -0
  460. package/out/sentry/index.d.ts +2 -1
  461. package/out/sentry/index.js.map +1 -1
  462. package/out/server/createUiTs.js +28 -16
  463. package/out/server/createUiTs.js.map +1 -1
  464. package/out/server/entity2LogicNamespace.js +24 -22
  465. package/out/server/entity2LogicNamespace.js.map +1 -1
  466. package/out/server/event.d.ts +12 -0
  467. package/out/server/event.js +52 -28
  468. package/out/server/event.js.map +1 -1
  469. package/out/server/extendBaseNode.js +55 -70
  470. package/out/server/extendBaseNode.js.map +1 -1
  471. package/out/server/formatTsUtils.js +46 -50
  472. package/out/server/formatTsUtils.js.map +1 -1
  473. package/out/server/getConnector.d.ts +3 -3
  474. package/out/server/getConnector.js +7 -8
  475. package/out/server/getConnector.js.map +1 -1
  476. package/out/server/getExtensionModules.js +2 -2
  477. package/out/server/getExtensionModules.js.map +1 -1
  478. package/out/server/getFunctions.js.map +1 -1
  479. package/out/server/getInterfaces.js.map +1 -1
  480. package/out/server/getLogging.js.map +1 -1
  481. package/out/server/getLogics.d.ts +1 -1
  482. package/out/server/getLogics.js +55 -8
  483. package/out/server/getLogics.js.map +1 -1
  484. package/out/server/getMemberIdentifier.js +13 -10
  485. package/out/server/getMemberIdentifier.js.map +1 -1
  486. package/out/server/getProcessComponents.js.map +1 -1
  487. package/out/server/getProcesses.js +21 -29
  488. package/out/server/getProcesses.js.map +1 -1
  489. package/out/server/getScope.js.map +1 -1
  490. package/out/server/getValidates.js.map +1 -1
  491. package/out/server/index.js +0 -1
  492. package/out/server/index.js.map +1 -1
  493. package/out/server/naslServer.d.ts +99 -94
  494. package/out/server/naslServer.js +490 -469
  495. package/out/server/naslServer.js.map +1 -1
  496. package/out/server/naslStdlibMap.js +6 -2
  497. package/out/server/naslStdlibMap.js.map +1 -1
  498. package/out/server/process2LogicNamespace.js.map +1 -1
  499. package/out/server/translator.d.ts +1 -1
  500. package/out/server/translator.js +52 -47
  501. package/out/server/translator.js.map +1 -1
  502. package/out/service/storage/init.d.ts +15 -1
  503. package/out/service/storage/init.js +65 -56
  504. package/out/service/storage/init.js.map +1 -1
  505. package/out/templator/genCallComponentLogic.js +1 -2
  506. package/out/templator/genCallComponentLogic.js.map +1 -1
  507. package/out/templator/genCreateBlock.js +14 -9
  508. package/out/templator/genCreateBlock.js.map +1 -1
  509. package/out/templator/genCurdEditMultipleKeyBlock.js +23 -14
  510. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  511. package/out/templator/genCurdMultipleKeyBlock.js +26 -30
  512. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  513. package/out/templator/genEditTableBlock.d.ts +1 -1
  514. package/out/templator/genEditTableBlock.js +14 -19
  515. package/out/templator/genEditTableBlock.js.map +1 -1
  516. package/out/templator/genEnumSelectBlock.js +1 -1
  517. package/out/templator/genEnumSelectBlock.js.map +1 -1
  518. package/out/templator/genGetBlock.js +2 -2
  519. package/out/templator/genGetBlock.js.map +1 -1
  520. package/out/templator/genGridViewBlock.d.ts +2 -2
  521. package/out/templator/genGridViewBlock.js +18 -28
  522. package/out/templator/genGridViewBlock.js.map +1 -1
  523. package/out/templator/genListViewBlock.d.ts +2 -2
  524. package/out/templator/genListViewBlock.js +9 -16
  525. package/out/templator/genListViewBlock.js.map +1 -1
  526. package/out/templator/genQueryComponent.js +22 -15
  527. package/out/templator/genQueryComponent.js.map +1 -1
  528. package/out/templator/genSelectBlock.d.ts +2 -2
  529. package/out/templator/genSelectBlock.js +21 -48
  530. package/out/templator/genSelectBlock.js.map +1 -1
  531. package/out/templator/genTableBlock.d.ts +1 -1
  532. package/out/templator/genTableBlock.js +11 -17
  533. package/out/templator/genTableBlock.js.map +1 -1
  534. package/out/templator/genUpdateBlock.js +13 -8
  535. package/out/templator/genUpdateBlock.js.map +1 -1
  536. package/out/templator/index.d.ts +4 -2
  537. package/out/templator/index.js +2 -2
  538. package/out/templator/index.js.map +1 -1
  539. package/out/templator/utils.d.ts +9 -2
  540. package/out/templator/utils.js +22 -22
  541. package/out/templator/utils.js.map +1 -1
  542. package/out/translator/index.js +27 -28
  543. package/out/translator/index.js.map +1 -1
  544. package/out/utils/index.d.ts +2 -1
  545. package/out/utils/index.js +8 -14
  546. package/out/utils/index.js.map +1 -1
  547. package/out/utils/logger.js.map +1 -1
  548. package/out/utils/sortTsString.js +3 -1
  549. package/out/utils/sortTsString.js.map +1 -1
  550. package/out/utils/string.js +8 -11
  551. package/out/utils/string.js.map +1 -1
  552. package/out/utils/time-slicing.d.ts +41 -0
  553. package/out/utils/time-slicing.js +81 -0
  554. package/out/utils/time-slicing.js.map +1 -0
  555. package/out/utils/traverse.js +4 -6
  556. package/out/utils/traverse.js.map +1 -1
  557. package/package.json +22 -20
  558. package/sandbox/stdlib/nasl.auth.ts +49 -46
  559. package/sandbox/stdlib/nasl.browser.ts +1 -0
  560. package/sandbox/stdlib/nasl.event.ts +4 -0
  561. package/sandbox/stdlib/nasl.http.ts +29 -31
  562. package/sandbox/stdlib/nasl.ui.definition.ts +13 -1
  563. package/sandbox/stdlib/nasl.ui.ts +11 -0
  564. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  565. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  566. package/sandbox-natural/stdlib/nasl.ui.ts +56 -0
  567. package/sandbox-natural/stdlib/nasl.util.ts +26 -0
  568. package/sandbox-natural/tsconfig.json +12 -0
  569. package/src/automate/engine/utils.js +3 -0
  570. package/src/automate/upgrader/2.20.js +1 -1
  571. package/src/bak/translator.js +92 -99
  572. package/src/breakpoint/generator/AfterStartNode.ts +19 -17
  573. package/src/breakpoint/generator/BeforeEndNode.ts +17 -17
  574. package/src/breakpoint/generator/BreakpointNode.ts +243 -195
  575. package/src/breakpoint/generator/CallbackNode.ts +20 -0
  576. package/src/breakpoint/generator/FragmentNode.ts +14 -0
  577. package/src/breakpoint/generator/index.ts +107 -80
  578. package/src/breakpoint/shared/constants.ts +59 -53
  579. package/src/breakpoint/shared/operations.ts +6 -6
  580. package/src/breakpoint/shared/socket.ts +277 -223
  581. package/src/breakpoint/shared/utils.ts +166 -146
  582. package/src/breakpoint/store/core.ts +326 -297
  583. package/src/breakpoint/store/dock.ts +103 -103
  584. package/src/breakpoint/types/index.d.ts +11 -11
  585. package/src/common/BaseNode.ts +1103 -1020
  586. package/src/common/Command.ts +46 -16
  587. package/src/common/ComponentAPI.ts +72 -72
  588. package/src/common/EventEmitter.ts +80 -76
  589. package/src/common/Messager.ts +223 -224
  590. package/src/common/asyncFuncMap.ts +12 -12
  591. package/src/concepts/Abort__.ts +53 -60
  592. package/src/concepts/Anchor__.ts +158 -149
  593. package/src/concepts/AnonymousFunction__.ts +584 -551
  594. package/src/concepts/App__.ts +4278 -3669
  595. package/src/concepts/Argument__.ts +234 -210
  596. package/src/concepts/Assignee__.ts +680 -656
  597. package/src/concepts/AssignmentLine__.ts +80 -84
  598. package/src/concepts/Assignment__.ts +276 -264
  599. package/src/concepts/Attribute__.ts +183 -184
  600. package/src/concepts/AuthInterface__.ts +61 -63
  601. package/src/concepts/AuthLogicForCallInterface__.ts +540 -511
  602. package/src/concepts/AuthLogic__.ts +210 -194
  603. package/src/concepts/BackendVariable__.ts +414 -415
  604. package/src/concepts/Backend__.ts +317 -303
  605. package/src/concepts/BatchAssignment__.ts +987 -939
  606. package/src/concepts/BinaryExpression__.ts +370 -341
  607. package/src/concepts/BindAttribute__.ts +1056 -1011
  608. package/src/concepts/BindDirective__.ts +540 -542
  609. package/src/concepts/BindEvent__.ts +992 -866
  610. package/src/concepts/BindStyle__.ts +442 -451
  611. package/src/concepts/BooleanLiteral__.ts +89 -90
  612. package/src/concepts/CallAuthInterface__.ts +458 -433
  613. package/src/concepts/CallConnector__.ts +209 -164
  614. package/src/concepts/CallFunction__.ts +600 -600
  615. package/src/concepts/CallInterface__.ts +752 -725
  616. package/src/concepts/CallLogic__.ts +1328 -1236
  617. package/src/concepts/CallQueryComponent__.ts +1580 -1501
  618. package/src/concepts/Comment__.ts +69 -68
  619. package/src/concepts/CompletionProperty__.ts +250 -250
  620. package/src/concepts/ConfigGroup__.ts +312 -296
  621. package/src/concepts/ConfigPropertyValue__.ts +81 -82
  622. package/src/concepts/ConfigProperty__.ts +374 -357
  623. package/src/concepts/Configuration__.ts +288 -276
  624. package/src/concepts/Connection__.ts +426 -0
  625. package/src/concepts/ConnectorTrigger__.ts +146 -142
  626. package/src/concepts/Connector__.ts +1090 -1048
  627. package/src/concepts/Constant__.ts +226 -219
  628. package/src/concepts/DataElement__.ts +108 -115
  629. package/src/concepts/DataSource__.ts +508 -472
  630. package/src/concepts/DatabaseTypeAnnotation__.ts +53 -59
  631. package/src/concepts/Destination__.ts +808 -746
  632. package/src/concepts/End__.ts +85 -89
  633. package/src/concepts/EntityIndex__.ts +206 -202
  634. package/src/concepts/EntityProperty__.ts +825 -791
  635. package/src/concepts/Entity__.ts +921 -864
  636. package/src/concepts/EnumItem__.ts +133 -125
  637. package/src/concepts/Enum__.ts +347 -337
  638. package/src/concepts/Event__.ts +305 -292
  639. package/src/concepts/ExternalDestination__.ts +269 -280
  640. package/src/concepts/ForEachStatement__.ts +583 -531
  641. package/src/concepts/FrontendLibrary__.ts +507 -485
  642. package/src/concepts/FrontendVariable__.ts +44 -49
  643. package/src/concepts/Frontend__.ts +1239 -1187
  644. package/src/concepts/Function__.ts +1110 -1045
  645. package/src/concepts/Identifier__.ts +276 -272
  646. package/src/concepts/IfStatement__.ts +467 -436
  647. package/src/concepts/Integration__.ts +136 -137
  648. package/src/concepts/InterfaceParam__.ts +239 -238
  649. package/src/concepts/Interface__.ts +969 -948
  650. package/src/concepts/JSBlock__.ts +83 -83
  651. package/src/concepts/JavaLogic__.ts +101 -106
  652. package/src/concepts/LogicItem__.ts +307 -237
  653. package/src/concepts/Logic__.ts +2301 -2088
  654. package/src/concepts/MatchCase__.ts +886 -779
  655. package/src/concepts/Match__.ts +728 -659
  656. package/src/concepts/MemberExpression__.ts +330 -311
  657. package/src/concepts/MicroApp__.ts +91 -97
  658. package/src/concepts/Module__.ts +2590 -2275
  659. package/src/concepts/MsgTriggerEvent__.ts +297 -281
  660. package/src/concepts/MsgTriggerLauncher__.ts +286 -256
  661. package/src/concepts/Namespace__.ts +2579 -2466
  662. package/src/concepts/NewComposite__.ts +1487 -1350
  663. package/src/concepts/NewList__.ts +464 -450
  664. package/src/concepts/NewMap__.ts +691 -674
  665. package/src/concepts/New__.ts +42 -49
  666. package/src/concepts/NullLiteral__.ts +66 -72
  667. package/src/concepts/NumericLiteral__.ts +169 -169
  668. package/src/concepts/OqlQueryComponent__.ts +282 -279
  669. package/src/concepts/OverriddenLogic__.ts +2142 -2097
  670. package/src/concepts/Param__.ts +500 -442
  671. package/src/concepts/Point__.ts +53 -59
  672. package/src/concepts/ProcessComponent__.ts +497 -475
  673. package/src/concepts/ProcessElement__.ts +1852 -1780
  674. package/src/concepts/ProcessOutcome__.ts +59 -64
  675. package/src/concepts/ProcessOutcomes__.ts +59 -64
  676. package/src/concepts/Process__.ts +1491 -1428
  677. package/src/concepts/QueryAggregateExpression__.ts +135 -142
  678. package/src/concepts/QueryFieldExpression__.ts +138 -142
  679. package/src/concepts/QueryFromExpression__.ts +246 -254
  680. package/src/concepts/QueryGroupByExpression__.ts +130 -136
  681. package/src/concepts/QueryJoinExpression__.ts +441 -438
  682. package/src/concepts/QueryLimitExpression__.ts +159 -166
  683. package/src/concepts/QueryOrderByExpression__.ts +173 -180
  684. package/src/concepts/QuerySelectExpression__.ts +464 -439
  685. package/src/concepts/Rect__.ts +73 -79
  686. package/src/concepts/Return__.ts +366 -345
  687. package/src/concepts/Role__.ts +146 -147
  688. package/src/concepts/SelectMembers__.ts +358 -350
  689. package/src/concepts/Slot__.ts +152 -153
  690. package/src/concepts/SqlQueryComponent__.ts +230 -228
  691. package/src/concepts/Start__.ts +45 -52
  692. package/src/concepts/StringInterpolation__.ts +323 -296
  693. package/src/concepts/StringLiteral__.ts +113 -115
  694. package/src/concepts/StructureProperty__.ts +306 -295
  695. package/src/concepts/Structure__.ts +615 -578
  696. package/src/concepts/SwitchCase__.ts +326 -290
  697. package/src/concepts/SwitchStatement__.ts +236 -229
  698. package/src/concepts/Theme__.ts +64 -68
  699. package/src/concepts/Transactional__.ts +159 -153
  700. package/src/concepts/TriggerEvent__.ts +285 -274
  701. package/src/concepts/TriggerLauncher__.ts +232 -196
  702. package/src/concepts/TypeAnnotation__.ts +1049 -1011
  703. package/src/concepts/TypeParam__.ts +48 -50
  704. package/src/concepts/UnaryExpression__.ts +163 -153
  705. package/src/concepts/Unparsed__.ts +81 -82
  706. package/src/concepts/UseComponent__.ts +53 -59
  707. package/src/concepts/ValidationRule__.ts +524 -544
  708. package/src/concepts/Variable__.ts +419 -397
  709. package/src/concepts/ViewBlock__.ts +58 -64
  710. package/src/concepts/ViewComponent__.ts +1323 -1261
  711. package/src/concepts/ViewElement__.ts +2537 -2351
  712. package/src/concepts/View__.ts +2461 -2245
  713. package/src/concepts/WhileStatement__.ts +293 -272
  714. package/src/concepts/basics/stdlib/index.ts +17 -1
  715. package/src/concepts/basics/stdlib/nasl.browser.ts +36 -0
  716. package/src/concepts/basics/stdlib/nasl.event.ts +18 -0
  717. package/src/concepts/basics/stdlib/nasl.ui.ts +45 -0
  718. package/src/concepts/basics/stdlib/nasl.util.ts +6 -22
  719. package/src/concepts/index__.ts +2 -1
  720. package/src/concepts/types__.ts +123 -121
  721. package/src/decorators/index.ts +75 -77
  722. package/src/decorators/promise.ts +28 -0
  723. package/src/enums/KEYWORDS.ts +1228 -1228
  724. package/src/enums/LEVEL_NAME_MAP.ts +24 -24
  725. package/src/generator/compileComponent.ts +10 -10
  726. package/src/generator/genBundleFiles.ts +300 -291
  727. package/src/generator/genHash.ts +2 -2
  728. package/src/generator/genMetaData.ts +280 -261
  729. package/src/generator/genReleaseBody.ts +312 -291
  730. package/src/generator/icestark.ts +1 -1
  731. package/src/generator/microApp.ts +17 -20
  732. package/src/generator/permission.ts +241 -232
  733. package/src/generator/qiankun.ts +1 -1
  734. package/src/generator/styleReplacer.ts +28 -31
  735. package/src/index.ts +0 -3
  736. package/src/manager/diagnostic.ts +84 -82
  737. package/src/manager/stepRecorder.ts +106 -94
  738. package/src/natural/RequirementAnalyzer.ts +208 -0
  739. package/src/natural/RequirementExecutor.ts +685 -0
  740. package/src/natural/componentData.ts +81 -0
  741. package/src/natural/genNaturalTS.ts +77 -0
  742. package/src/natural/index.ts +4 -0
  743. package/src/natural/knowledgeMap.ts +39 -0
  744. package/src/natural/naslStdlibMap.ts +24 -0
  745. package/src/natural/transformTSCode.ts +692 -0
  746. package/src/sentry/index.ts +109 -104
  747. package/src/server/createUiTs.ts +190 -184
  748. package/src/server/entity2LogicNamespace.ts +379 -359
  749. package/src/server/event.js +145 -121
  750. package/src/server/extendBaseNode.ts +461 -456
  751. package/src/server/formatTsUtils.ts +712 -713
  752. package/src/server/getConnector.ts +33 -33
  753. package/src/server/getExtensionModules.ts +23 -22
  754. package/src/server/getFunctions.ts +6 -6
  755. package/src/server/getInterfaces.ts +38 -37
  756. package/src/server/getLogging.ts +1 -1
  757. package/src/server/getLogics.ts +391 -312
  758. package/src/server/getMemberIdentifier.ts +286 -281
  759. package/src/server/getProcessComponents.ts +2 -2
  760. package/src/server/getProcesses.ts +548 -534
  761. package/src/server/getScope.ts +51 -51
  762. package/src/server/getValidates.ts +3 -3
  763. package/src/server/index.ts +29 -30
  764. package/src/server/naslServer.ts +4303 -4222
  765. package/src/server/naslStdlibMap.ts +43 -39
  766. package/src/server/process2LogicNamespace.ts +97 -97
  767. package/src/server/translator.ts +740 -746
  768. package/src/service/storage/init.ts +761 -728
  769. package/src/templator/genCallComponentLogic.ts +14 -15
  770. package/src/templator/genCreateBlock.ts +257 -229
  771. package/src/templator/genCurdEditMultipleKeyBlock.ts +333 -317
  772. package/src/templator/genCurdMultipleKeyBlock.ts +503 -475
  773. package/src/templator/genEditTableBlock.ts +194 -187
  774. package/src/templator/genEnumSelectBlock.ts +13 -7
  775. package/src/templator/genGetBlock.ts +57 -55
  776. package/src/templator/genGridViewBlock.ts +195 -211
  777. package/src/templator/genListViewBlock.ts +62 -72
  778. package/src/templator/genQueryComponent.ts +337 -287
  779. package/src/templator/genSelectBlock.ts +283 -297
  780. package/src/templator/genTableBlock.ts +160 -166
  781. package/src/templator/genUpdateBlock.ts +269 -255
  782. package/src/templator/index.ts +4 -4
  783. package/src/templator/utils.ts +491 -463
  784. package/src/translator/index.ts +84 -84
  785. package/src/translator/lsp.ts +22 -22
  786. package/src/translator/tsp.ts +6 -6
  787. package/src/utils/index.ts +115 -117
  788. package/src/utils/logger.ts +3 -4
  789. package/src/utils/sortTsString.ts +34 -32
  790. package/src/utils/string.ts +47 -48
  791. package/src/utils/time-slicing.ts +109 -0
  792. package/src/utils/traverse.ts +114 -126
  793. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +71 -0
  794. package/test/concepts/call-interface/__snapshots__/toJS.spec.ts.snap +140 -0
  795. package/test/concepts/call-interface/constant.ts +5 -0
  796. package/test/concepts/call-interface/fixtures/only-interface.json +158 -0
  797. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +455 -0
  798. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +187 -0
  799. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +225 -0
  800. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +213 -0
  801. package/test/concepts/call-interface/fixtures/with-headers.json +192 -0
  802. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +213 -0
  803. package/test/concepts/call-interface/fixtures/with-query.json +192 -0
  804. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +14 -0
  805. package/test/concepts/call-interface/toJS.spec.ts +14 -0
  806. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +74 -0
  807. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +141 -0
  808. package/test/concepts/call-logic/constant.ts +5 -0
  809. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +223 -0
  810. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +359 -0
  811. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +209 -0
  812. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +311 -0
  813. package/test/concepts/call-logic/fixtures/only-call-logic.json +10 -0
  814. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +128 -0
  815. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +126 -0
  816. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +244 -0
  817. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +14 -0
  818. package/test/concepts/call-logic/toJS.spec.ts +14 -0
  819. package/test/concepts/match/__snapshots__/toEmbeddedTS.spec.ts.snap +66 -0
  820. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +40 -0
  821. package/test/concepts/match/constant.ts +5 -0
  822. package/test/concepts/match/fixtures/isExpression.json +259 -0
  823. package/test/concepts/match/fixtures/lastBodyIf.json +268 -0
  824. package/test/concepts/match/fixtures/noExpression.json +176 -0
  825. package/test/concepts/match/toEmbeddedTS.spec.ts +14 -0
  826. package/test/concepts/match/toJS.spec.ts +14 -0
  827. package/test/concepts/utils.ts +76 -3
  828. package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  829. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +16 -0
  830. package/test/concepts/validation-rule/constant.ts +5 -0
  831. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +10 -17
  832. package/test/concepts/validation-rule/toJS.spec.ts +14 -0
  833. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +68 -0
  834. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +44 -0
  835. package/test/concepts/view-element/constant.ts +5 -0
  836. package/test/concepts/view-element/fixtures/default-not-found.json +322 -0
  837. package/test/concepts/view-element/toEmbeddedTS.spec.ts +14 -0
  838. package/test/concepts/view-element/toVue.spec.ts +14 -0
  839. package/test/setup.ts +7 -0
  840. package/ts-worker/src/index.js +0 -2
  841. package/tsconfig.json +21 -21
  842. package/bin/naslc +0 -3
@@ -1,17 +1,17 @@
1
+ import { v4 as uuidv4 } from 'uuid';
1
2
  import Namespace from './Namespace__';
2
3
  import { TranslatorState, shiftState, withSourceMap, indent } from '../translator';
3
4
  import { ElementToVueOptions } from './ViewElement__';
4
5
  import asyncFuncMap from '../common/asyncFuncMap';
5
6
 
6
- //================================================================================
7
+ //= ===============================================================================
7
8
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
8
9
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
9
- //================================================================================
10
+ //= ===============================================================================
10
11
  import { EventPayload, Params } from '../common/EventEmitter';
11
12
  import { concept, excludedInJSON, property } from '../decorators';
12
13
 
13
14
  import * as utils from '../utils';
14
- import { v4 as uuidv4 } from 'uuid';
15
15
  import BaseNode from '../common/BaseNode';
16
16
  import classMap from '../common/classMap';
17
17
  import TypeParam from './TypeParam__';
@@ -27,1078 +27,1143 @@ import App from './App__';
27
27
  */
28
28
  @concept('函数')
29
29
  export class Function extends BaseNode {
30
- /**
31
- * 产品概念
32
- */
33
- @property()
34
- concept: 'Function' = 'Function';
35
-
36
- /**
37
- * 函数名称
38
- */
39
- @property()
40
- name: string = undefined;
41
-
42
- /**
43
- * 函数描述
44
- */
45
- @property()
46
- description: string = undefined;
47
-
48
- /**
49
- * 类型参数列表
50
- */
51
- @property('TypeParam')
52
- typeParams: Array<TypeParam> = [];
53
-
54
- /**
55
- * 输入参数列表
56
- */
57
- @property('Param')
58
- params: Array<Param> = [];
59
-
60
- /**
61
- * 输出参数列表
62
- */
63
- @property('Return')
64
- returns: Array<Return> = [];
65
-
66
- /**
67
- * 变量列表
68
- */
69
- @property('Variable')
70
- variables: Array<Variable> = [];
71
-
72
- /**
73
- * 逻辑项
74
- */
75
- @property('LogicItem')
76
- returnExpression: LogicItem = undefined;
77
-
78
- /**
79
- * 祖先 Module
80
- */
81
- get module() {
82
- return this.getAncestor('Module') as Module;
30
+ /**
31
+ * 产品概念
32
+ */
33
+ @property()
34
+ concept: 'Function' = 'Function';
35
+
36
+ /**
37
+ * 函数名称
38
+ */
39
+ @property()
40
+ name: string = undefined;
41
+
42
+ /**
43
+ * 函数描述
44
+ */
45
+ @property()
46
+ description: string = undefined;
47
+
48
+ /**
49
+ * 类型参数列表
50
+ */
51
+ @property('TypeParam')
52
+ typeParams: Array<TypeParam> = [];
53
+
54
+ /**
55
+ * 输入参数列表
56
+ */
57
+ @property('Param')
58
+ params: Array<Param> = [];
59
+
60
+ /**
61
+ * 输出参数列表
62
+ */
63
+ @property('Return')
64
+ returns: Array<Return> = [];
65
+
66
+ /**
67
+ * 变量列表
68
+ */
69
+ @property('Variable')
70
+ variables: Array<Variable> = [];
71
+
72
+ /**
73
+ * 逻辑项
74
+ */
75
+ @property('LogicItem')
76
+ returnExpression: LogicItem = undefined;
77
+
78
+ /**
79
+ * 祖先 Module
80
+ */
81
+ get module() {
82
+ return this.getAncestor('Module') as Module;
83
+ }
84
+
85
+ /**
86
+ * 祖先 App
87
+ */
88
+ get app() {
89
+ return this.getAncestor('App') as App;
90
+ }
91
+
92
+ /**
93
+ * @param source 需要合并的部分参数
94
+ */
95
+ constructor(source?: Partial<Function>) {
96
+ // @ts-ignore
97
+ source = { ...Function.getDefaultOptions(), ...source };
98
+ super(source);
99
+ super.subConstructor(source);
100
+ }
101
+
102
+ getClassName() {
103
+ return 'Function';
104
+ }
105
+
106
+ static from(source: any, parentNode?: any, parentKey?: string): Function {
107
+ return super.from(source, parentNode, parentKey) as Function;
108
+ }
109
+
110
+ /**
111
+ * 从父级删除该节点
112
+ * @internal
113
+ */
114
+ _delete() {
115
+ let params: Params = null;
116
+ if (this.parentNode) {
117
+ params = (this.parentNode as any)?.__removeFunction?.(this);
83
118
  }
84
- /**
85
- * 祖先 App
86
- */
87
- get app() {
88
- return this.getAncestor('App') as App;
119
+ return params;
120
+ }
121
+
122
+ /**
123
+ * 设置函数名称
124
+ */
125
+ setName(name: string) {
126
+ const object = {
127
+ name,
128
+ };
129
+ this.update({
130
+ ...object,
131
+ field: 'name',
132
+ });
133
+ }
134
+
135
+ /**
136
+ * 设置函数描述
137
+ */
138
+ setDescription(description: string) {
139
+ const object = {
140
+ description,
141
+ };
142
+ this.update({
143
+ ...object,
144
+ });
145
+ }
146
+
147
+ /**
148
+ * 设置逻辑项
149
+ */
150
+ setReturnExpression(returnExpression: LogicItem) {
151
+ returnExpression._delete();
152
+ const relationOptions = { parentNode: this, parentKey: 'returnExpression' };
153
+ Object.assign(returnExpression, relationOptions);
154
+ const object = {
155
+ returnExpression,
156
+ };
157
+ this.update({
158
+ ...object,
159
+ });
160
+ }
161
+
162
+ getTypeParamExistingNames(excludedList: Array<TypeParam> = []) {
163
+ const excludedSet = new Set(excludedList);
164
+ return ((this.typeParams as TypeParam[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
165
+ }
166
+
167
+ getTypeParamUniqueName(name = 'typeParam1') {
168
+ return utils.unique(name, this.getTypeParamExistingNames(), undefined, false);
169
+ }
170
+
171
+ /**
172
+ * 插入类型参数
173
+ * @internal
174
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
175
+ */
176
+ _insertTypeParamAt(name: string, index: number): TypeParam;
177
+
178
+ /**
179
+ * 插入类型参数
180
+ * @internal
181
+ * @param typeParamOptions 类型参数参数
182
+ */
183
+ _insertTypeParamAt(typeParamOptions: Partial<TypeParam>, index: number): TypeParam;
184
+
185
+ /**
186
+ * 插入类型参数
187
+ * @internal
188
+ * @param typeParam 已有的类型参数实例
189
+ */
190
+ _insertTypeParamAt(typeParam: TypeParam, index: number): TypeParam;
191
+
192
+ _insertTypeParamAt(options: string | Partial<TypeParam> | TypeParam, index: number) {
193
+ const typeParamOptions: any = {};
194
+ const relationOptions = { parentNode: this, parentKey: 'typeParams' };
195
+ let typeParam: TypeParam;
196
+ if (!options) {
197
+ typeParam = TypeParam.from(
198
+ {
199
+ ...typeParamOptions,
200
+ name: this.getTypeParamUniqueName(),
201
+ },
202
+ this,
203
+ 'typeParams'
204
+ );
205
+ } else if (typeof options === 'string') {
206
+ typeParam = TypeParam.from(
207
+ {
208
+ ...typeParamOptions,
209
+ name: options,
210
+ },
211
+ this,
212
+ 'typeParams'
213
+ );
214
+ } else if (options instanceof TypeParam) {
215
+ options.ensureDelete(); // 同一实例不支持多处存在
216
+ typeParam = options;
217
+ Object.assign(typeParam, relationOptions);
218
+ } else {
219
+ typeParam = TypeParam.from(
220
+ {
221
+ ...typeParamOptions,
222
+ ...options,
223
+ },
224
+ this,
225
+ 'typeParams'
226
+ );
89
227
  }
90
-
91
- /**
92
- * @param source 需要合并的部分参数
93
- */
94
- constructor(source?: Partial<Function>) {
95
- source = Object.assign({}, Function.getDefaultOptions(), source);
96
- super(source);
97
- super.subConstructor(source);
228
+ this.typeParams.splice(index, 0, typeParam);
229
+ return typeParam;
230
+ }
231
+
232
+ /**
233
+ * 插入类型参数
234
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
235
+ */
236
+ insertTypeParamAt(name: string, index: number): TypeParam;
237
+
238
+ /**
239
+ * 插入类型参数
240
+ * @param typeParamOptions 类型参数参数
241
+ */
242
+ insertTypeParamAt(typeParamOptions: Partial<TypeParam>, index: number): TypeParam;
243
+
244
+ /**
245
+ * 插入类型参数
246
+ * @param typeParam 已有的类型参数实例
247
+ */
248
+ insertTypeParamAt(typeParam: TypeParam, index: number): TypeParam;
249
+
250
+ insertTypeParamAt(options: string | Partial<TypeParam> | TypeParam, index: number) {
251
+ const node = this._insertTypeParamAt(options as any, index);
252
+ node.create({
253
+ index,
254
+ parentNode: this,
255
+ parentKey: 'typeParams',
256
+ });
257
+ return node;
258
+ }
259
+
260
+ /**
261
+ * 添加类型参数
262
+ * @internal
263
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
264
+ */
265
+ _addTypeParam(name?: string): TypeParam;
266
+
267
+ /**
268
+ * 添加类型参数
269
+ * @internal
270
+ * @param typeParamOptions 类型参数参数
271
+ */
272
+ _addTypeParam(typeParamOptions: Partial<TypeParam>): TypeParam;
273
+
274
+ /**
275
+ * 添加类型参数
276
+ * @internal
277
+ * @param typeParam 已有的类型参数实例
278
+ */
279
+ _addTypeParam(typeParam: TypeParam): TypeParam;
280
+
281
+ _addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
282
+ const index = this.typeParams.length;
283
+ return this._insertTypeParamAt(options as any, index);
284
+ }
285
+
286
+ /**
287
+ * 添加类型参数
288
+ * @internal
289
+ * @param name 类型参数名称,如果不填会自动生成一个唯一名称
290
+ */
291
+ addTypeParam(name?: string): TypeParam;
292
+
293
+ /**
294
+ * 添加类型参数
295
+ * @param typeParamOptions 类型参数参数
296
+ */
297
+ addTypeParam(typeParamOptions: Partial<TypeParam>): TypeParam;
298
+
299
+ /**
300
+ * 添加类型参数
301
+ * @param typeParam 已有的类型参数实例
302
+ */
303
+ addTypeParam(typeParam: TypeParam): TypeParam;
304
+
305
+ addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
306
+ const node = this._addTypeParam(options as any);
307
+ const index = this.typeParams.indexOf(node);
308
+ node.create({
309
+ index,
310
+ parentNode: this,
311
+ parentKey: 'typeParams',
312
+ });
313
+ return node;
314
+ }
315
+
316
+ getParamUniqueName(name = 'param1') {
317
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
318
+ }
319
+
320
+ /**
321
+ * 插入输入参数
322
+ * @internal
323
+ * @param name 输入参数名称,如果不填会自动生成一个唯一名称
324
+ */
325
+ _insertParamAt(name: string, index: number): Param;
326
+
327
+ /**
328
+ * 插入输入参数
329
+ * @internal
330
+ * @param paramOptions 输入参数参数
331
+ */
332
+ _insertParamAt(paramOptions: Partial<Param>, index: number): Param;
333
+
334
+ /**
335
+ * 插入输入参数
336
+ * @internal
337
+ * @param param 已有的输入参数实例
338
+ */
339
+ _insertParamAt(param: Param, index: number): Param;
340
+
341
+ _insertParamAt(options: string | Partial<Param> | Param, index: number) {
342
+ const paramOptions: any = {};
343
+ const relationOptions = { parentNode: this, parentKey: 'params' };
344
+ let param: Param;
345
+ if (!options) {
346
+ param = Param.from(
347
+ {
348
+ ...paramOptions,
349
+ name: this.getParamUniqueName(),
350
+ },
351
+ this,
352
+ 'params'
353
+ );
354
+ } else if (typeof options === 'string') {
355
+ param = Param.from(
356
+ {
357
+ ...paramOptions,
358
+ name: options,
359
+ },
360
+ this,
361
+ 'params'
362
+ );
363
+ } else if (options instanceof Param) {
364
+ options.ensureDelete(); // 同一实例不支持多处存在
365
+ param = options;
366
+ Object.assign(param, relationOptions);
367
+ } else {
368
+ param = Param.from(
369
+ {
370
+ ...paramOptions,
371
+ ...options,
372
+ },
373
+ this,
374
+ 'params'
375
+ );
98
376
  }
99
- getClassName() {
100
- return 'Function';
377
+ this.params.splice(index, 0, param);
378
+ return param;
379
+ }
380
+
381
+ /**
382
+ * 插入输入参数
383
+ * @param name 输入参数名称,如果不填会自动生成一个唯一名称
384
+ */
385
+ insertParamAt(name: string, index: number): Param;
386
+
387
+ /**
388
+ * 插入输入参数
389
+ * @param paramOptions 输入参数参数
390
+ */
391
+ insertParamAt(paramOptions: Partial<Param>, index: number): Param;
392
+
393
+ /**
394
+ * 插入输入参数
395
+ * @param param 已有的输入参数实例
396
+ */
397
+ insertParamAt(param: Param, index: number): Param;
398
+
399
+ insertParamAt(options: string | Partial<Param> | Param, index: number) {
400
+ const node = this._insertParamAt(options as any, index);
401
+ node.create({
402
+ index,
403
+ parentNode: this,
404
+ parentKey: 'params',
405
+ });
406
+ return node;
407
+ }
408
+
409
+ /**
410
+ * 添加输入参数
411
+ * @internal
412
+ * @param name 输入参数名称,如果不填会自动生成一个唯一名称
413
+ */
414
+ _addParam(name?: string): Param;
415
+
416
+ /**
417
+ * 添加输入参数
418
+ * @internal
419
+ * @param paramOptions 输入参数参数
420
+ */
421
+ _addParam(paramOptions: Partial<Param>): Param;
422
+
423
+ /**
424
+ * 添加输入参数
425
+ * @internal
426
+ * @param param 已有的输入参数实例
427
+ */
428
+ _addParam(param: Param): Param;
429
+
430
+ _addParam(options?: string | Partial<Param> | Param) {
431
+ const index = this.params.length;
432
+ return this._insertParamAt(options as any, index);
433
+ }
434
+
435
+ /**
436
+ * 添加输入参数
437
+ * @internal
438
+ * @param name 输入参数名称,如果不填会自动生成一个唯一名称
439
+ */
440
+ addParam(name?: string): Param;
441
+
442
+ /**
443
+ * 添加输入参数
444
+ * @param paramOptions 输入参数参数
445
+ */
446
+ addParam(paramOptions: Partial<Param>): Param;
447
+
448
+ /**
449
+ * 添加输入参数
450
+ * @param param 已有的输入参数实例
451
+ */
452
+ addParam(param: Param): Param;
453
+
454
+ addParam(options?: string | Partial<Param> | Param) {
455
+ const node = this._addParam(options as any);
456
+ const index = this.params.indexOf(node);
457
+ node.create({
458
+ index,
459
+ parentNode: this,
460
+ parentKey: 'params',
461
+ });
462
+ return node;
463
+ }
464
+
465
+ getReturnUniqueName(name = 'result') {
466
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
467
+ }
468
+
469
+ /**
470
+ * 插入输出参数
471
+ * @internal
472
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
473
+ */
474
+ _insertReturnAt(name: string, index: number): Return;
475
+
476
+ /**
477
+ * 插入输出参数
478
+ * @internal
479
+ * @param retOptions 输出参数参数
480
+ */
481
+ _insertReturnAt(retOptions: Partial<Return>, index: number): Return;
482
+
483
+ /**
484
+ * 插入输出参数
485
+ * @internal
486
+ * @param ret 已有的输出参数实例
487
+ */
488
+ _insertReturnAt(ret: Return, index: number): Return;
489
+
490
+ _insertReturnAt(options: string | Partial<Return> | Return, index: number) {
491
+ const retOptions: any = {};
492
+ const relationOptions = { parentNode: this, parentKey: 'returns' };
493
+ let ret: Return;
494
+ if (!options) {
495
+ ret = Return.from(
496
+ {
497
+ ...retOptions,
498
+ name: this.getReturnUniqueName(),
499
+ },
500
+ this,
501
+ 'returns'
502
+ );
503
+ } else if (typeof options === 'string') {
504
+ ret = Return.from(
505
+ {
506
+ ...retOptions,
507
+ name: options,
508
+ },
509
+ this,
510
+ 'returns'
511
+ );
512
+ } else if (options instanceof Return) {
513
+ options.ensureDelete(); // 同一实例不支持多处存在
514
+ ret = options;
515
+ Object.assign(ret, relationOptions);
516
+ } else {
517
+ ret = Return.from(
518
+ {
519
+ ...retOptions,
520
+ ...options,
521
+ },
522
+ this,
523
+ 'returns'
524
+ );
101
525
  }
102
-
103
- static from(source: any, parentNode?: any, parentKey?: string): Function {
104
- return super.from(source, parentNode, parentKey) as Function;
526
+ this.returns.splice(index, 0, ret);
527
+ return ret;
528
+ }
529
+
530
+ /**
531
+ * 插入输出参数
532
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
533
+ */
534
+ insertReturnAt(name: string, index: number): Return;
535
+
536
+ /**
537
+ * 插入输出参数
538
+ * @param retOptions 输出参数参数
539
+ */
540
+ insertReturnAt(retOptions: Partial<Return>, index: number): Return;
541
+
542
+ /**
543
+ * 插入输出参数
544
+ * @param ret 已有的输出参数实例
545
+ */
546
+ insertReturnAt(ret: Return, index: number): Return;
547
+
548
+ insertReturnAt(options: string | Partial<Return> | Return, index: number) {
549
+ const node = this._insertReturnAt(options as any, index);
550
+ node.create({
551
+ index,
552
+ parentNode: this,
553
+ parentKey: 'returns',
554
+ });
555
+ return node;
556
+ }
557
+
558
+ /**
559
+ * 添加输出参数
560
+ * @internal
561
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
562
+ */
563
+ _addReturn(name?: string): Return;
564
+
565
+ /**
566
+ * 添加输出参数
567
+ * @internal
568
+ * @param retOptions 输出参数参数
569
+ */
570
+ _addReturn(retOptions: Partial<Return>): Return;
571
+
572
+ /**
573
+ * 添加输出参数
574
+ * @internal
575
+ * @param ret 已有的输出参数实例
576
+ */
577
+ _addReturn(ret: Return): Return;
578
+
579
+ _addReturn(options?: string | Partial<Return> | Return) {
580
+ const index = this.returns.length;
581
+ return this._insertReturnAt(options as any, index);
582
+ }
583
+
584
+ /**
585
+ * 添加输出参数
586
+ * @internal
587
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
588
+ */
589
+ addReturn(name?: string): Return;
590
+
591
+ /**
592
+ * 添加输出参数
593
+ * @param retOptions 输出参数参数
594
+ */
595
+ addReturn(retOptions: Partial<Return>): Return;
596
+
597
+ /**
598
+ * 添加输出参数
599
+ * @param ret 已有的输出参数实例
600
+ */
601
+ addReturn(ret: Return): Return;
602
+
603
+ addReturn(options?: string | Partial<Return> | Return) {
604
+ const node = this._addReturn(options as any);
605
+ const index = this.returns.indexOf(node);
606
+ node.create({
607
+ index,
608
+ parentNode: this,
609
+ parentKey: 'returns',
610
+ });
611
+ return node;
612
+ }
613
+
614
+ getVariableUniqueName(name = 'variable1') {
615
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
616
+ }
617
+
618
+ /**
619
+ * 插入变量
620
+ * @internal
621
+ * @param name 变量名称,如果不填会自动生成一个唯一名称
622
+ */
623
+ _insertVariableAt(name: string, index: number): Variable;
624
+
625
+ /**
626
+ * 插入变量
627
+ * @internal
628
+ * @param variableOptions 变量参数
629
+ */
630
+ _insertVariableAt(variableOptions: Partial<Variable>, index: number): Variable;
631
+
632
+ /**
633
+ * 插入变量
634
+ * @internal
635
+ * @param variable 已有的变量实例
636
+ */
637
+ _insertVariableAt(variable: Variable, index: number): Variable;
638
+
639
+ _insertVariableAt(options: string | Partial<Variable> | Variable, index: number) {
640
+ const variableOptions: any = {};
641
+ const relationOptions = { parentNode: this, parentKey: 'variables' };
642
+ let variable: Variable;
643
+ if (!options) {
644
+ variable = Variable.from(
645
+ {
646
+ ...variableOptions,
647
+ name: this.getVariableUniqueName(),
648
+ },
649
+ this,
650
+ 'variables'
651
+ );
652
+ } else if (typeof options === 'string') {
653
+ variable = Variable.from(
654
+ {
655
+ ...variableOptions,
656
+ name: options,
657
+ },
658
+ this,
659
+ 'variables'
660
+ );
661
+ } else if (options instanceof Variable) {
662
+ options.ensureDelete(); // 同一实例不支持多处存在
663
+ variable = options;
664
+ Object.assign(variable, relationOptions);
665
+ } else {
666
+ variable = Variable.from(
667
+ {
668
+ ...variableOptions,
669
+ ...options,
670
+ },
671
+ this,
672
+ 'variables'
673
+ );
105
674
  }
106
-
107
- /**
108
- * 从父级删除该节点
109
- * @internal
110
- */
111
- _delete() {
112
- let params: Params = null;
113
- if (this.parentNode) {
114
- params = (this.parentNode as any)?.__removeFunction?.(this);
115
- }
116
- return params;
675
+ this.variables.splice(index, 0, variable);
676
+ return variable;
677
+ }
678
+
679
+ /**
680
+ * 插入变量
681
+ * @param name 变量名称,如果不填会自动生成一个唯一名称
682
+ */
683
+ insertVariableAt(name: string, index: number): Variable;
684
+
685
+ /**
686
+ * 插入变量
687
+ * @param variableOptions 变量参数
688
+ */
689
+ insertVariableAt(variableOptions: Partial<Variable>, index: number): Variable;
690
+
691
+ /**
692
+ * 插入变量
693
+ * @param variable 已有的变量实例
694
+ */
695
+ insertVariableAt(variable: Variable, index: number): Variable;
696
+
697
+ insertVariableAt(options: string | Partial<Variable> | Variable, index: number) {
698
+ const node = this._insertVariableAt(options as any, index);
699
+ node.create({
700
+ index,
701
+ parentNode: this,
702
+ parentKey: 'variables',
703
+ });
704
+ return node;
705
+ }
706
+
707
+ /**
708
+ * 添加变量
709
+ * @internal
710
+ * @param name 变量名称,如果不填会自动生成一个唯一名称
711
+ */
712
+ _addVariable(name?: string): Variable;
713
+
714
+ /**
715
+ * 添加变量
716
+ * @internal
717
+ * @param variableOptions 变量参数
718
+ */
719
+ _addVariable(variableOptions: Partial<Variable>): Variable;
720
+
721
+ /**
722
+ * 添加变量
723
+ * @internal
724
+ * @param variable 已有的变量实例
725
+ */
726
+ _addVariable(variable: Variable): Variable;
727
+
728
+ _addVariable(options?: string | Partial<Variable> | Variable) {
729
+ const index = this.variables.length;
730
+ return this._insertVariableAt(options as any, index);
731
+ }
732
+
733
+ /**
734
+ * 添加变量
735
+ * @internal
736
+ * @param name 变量名称,如果不填会自动生成一个唯一名称
737
+ */
738
+ addVariable(name?: string): Variable;
739
+
740
+ /**
741
+ * 添加变量
742
+ * @param variableOptions 变量参数
743
+ */
744
+ addVariable(variableOptions: Partial<Variable>): Variable;
745
+
746
+ /**
747
+ * 添加变量
748
+ * @param variable 已有的变量实例
749
+ */
750
+ addVariable(variable: Variable): Variable;
751
+
752
+ addVariable(options?: string | Partial<Variable> | Variable) {
753
+ const node = this._addVariable(options as any);
754
+ const index = this.variables.indexOf(node);
755
+ node.create({
756
+ index,
757
+ parentNode: this,
758
+ parentKey: 'variables',
759
+ });
760
+ return node;
761
+ }
762
+
763
+ /**
764
+ * 删除类型参数
765
+ * @param name 类型参数名称
766
+ */
767
+ removeTypeParam(name: string): void;
768
+
769
+ /**
770
+ * 删除类型参数
771
+ * @param typeParam 已有的类型参数实例
772
+ */
773
+ removeTypeParam(typeParam: TypeParam): void;
774
+
775
+ removeTypeParam(options: string | TypeParam) {
776
+ let typeParam: TypeParam;
777
+ if (typeof options === 'string') {
778
+ typeParam = (this.typeParams as TypeParam[]).find((item) => item.name === options);
779
+ if (!typeParam) {
780
+ throw new Error(`找不到类型参数 ${options}`);
781
+ }
782
+ } else {
783
+ typeParam = options;
117
784
  }
118
- /**
119
- * 设置函数名称
120
- */
121
- setName(name: string) {
122
- const object = {
123
- name,
124
- };
125
- this.update({
126
- ...object,
127
- field: 'name',
128
- });
785
+ return typeParam.delete();
786
+ }
787
+
788
+ __removeTypeParam(typeParam: TypeParam) {
789
+ const { parentKey } = typeParam;
790
+ const params: Params = {
791
+ parentNode: this,
792
+ parentKey,
793
+ index: -1,
794
+ object: null,
795
+ oldObject: typeParam,
796
+ };
797
+ if (parentKey) {
798
+ params.parentKey = parentKey;
799
+ if (Array.isArray((this as any)[parentKey])) {
800
+ const index = (this as any)[parentKey].indexOf(typeParam);
801
+ ~index && (this as any)[parentKey].splice(index, 1);
802
+ params.index = index;
803
+ } else if ((this as any)[parentKey] === typeParam) {
804
+ params.index = 0;
805
+ (this as any)[parentKey] = undefined;
806
+ }
129
807
  }
130
-
131
- /**
132
- * 设置函数描述
133
- */
134
- setDescription(description: string) {
135
- const object = {
136
- description,
137
- };
138
- this.update({
139
- ...object,
140
- });
808
+ return params;
809
+ }
810
+
811
+ /**
812
+ * 删除输入参数
813
+ * @param name 输入参数名称
814
+ */
815
+ removeParam(name: string): void;
816
+
817
+ /**
818
+ * 删除输入参数
819
+ * @param param 已有的输入参数实例
820
+ */
821
+ removeParam(param: Param): void;
822
+
823
+ removeParam(options: string | Param) {
824
+ let param: Param;
825
+ if (typeof options === 'string') {
826
+ param = (this.params as Param[]).find((item) => item.name === options);
827
+ if (!param) {
828
+ throw new Error(`找不到输入参数 ${options}`);
829
+ }
830
+ } else {
831
+ param = options;
141
832
  }
142
-
143
- /**
144
- * 设置逻辑项
145
- */
146
- setReturnExpression(returnExpression: LogicItem) {
147
- returnExpression._delete();
148
- const relationOptions = { parentNode: this, parentKey: 'returnExpression' };
149
- Object.assign(returnExpression, relationOptions);
150
- const object = {
151
- returnExpression,
152
- };
153
- this.update({
154
- ...object,
155
- });
833
+ return param.delete();
834
+ }
835
+
836
+ __removeParam(param: Param) {
837
+ const { parentKey } = param;
838
+ const params: Params = {
839
+ parentNode: this,
840
+ parentKey,
841
+ index: -1,
842
+ object: null,
843
+ oldObject: param,
844
+ };
845
+ if (parentKey) {
846
+ params.parentKey = parentKey;
847
+ if (Array.isArray((this as any)[parentKey])) {
848
+ const index = (this as any)[parentKey].indexOf(param);
849
+ ~index && (this as any)[parentKey].splice(index, 1);
850
+ params.index = index;
851
+ } else if ((this as any)[parentKey] === param) {
852
+ params.index = 0;
853
+ (this as any)[parentKey] = undefined;
854
+ }
156
855
  }
157
-
158
- getTypeParamExistingNames(excludedList: Array<TypeParam> = []) {
159
- const excludedSet = new Set(excludedList);
160
- return ((this.typeParams as TypeParam[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
856
+ return params;
857
+ }
858
+
859
+ /**
860
+ * 删除输出参数
861
+ * @param name 输出参数名称
862
+ */
863
+ removeReturn(name: string): void;
864
+
865
+ /**
866
+ * 删除输出参数
867
+ * @param ret 已有的输出参数实例
868
+ */
869
+ removeReturn(ret: Return): void;
870
+
871
+ removeReturn(options: string | Return) {
872
+ let ret: Return;
873
+ if (typeof options === 'string') {
874
+ ret = (this.returns as Return[]).find((item) => item.name === options);
875
+ if (!ret) {
876
+ throw new Error(`找不到输出参数 ${options}`);
877
+ }
878
+ } else {
879
+ ret = options;
161
880
  }
162
- getTypeParamUniqueName(name = 'typeParam1') {
163
- return utils.unique(name, this.getTypeParamExistingNames(), undefined, false);
881
+ return ret.delete();
882
+ }
883
+
884
+ __removeReturn(ret: Return) {
885
+ const { parentKey } = ret;
886
+ const params: Params = {
887
+ parentNode: this,
888
+ parentKey,
889
+ index: -1,
890
+ object: null,
891
+ oldObject: ret,
892
+ };
893
+ if (parentKey) {
894
+ params.parentKey = parentKey;
895
+ if (Array.isArray((this as any)[parentKey])) {
896
+ const index = (this as any)[parentKey].indexOf(ret);
897
+ ~index && (this as any)[parentKey].splice(index, 1);
898
+ params.index = index;
899
+ } else if ((this as any)[parentKey] === ret) {
900
+ params.index = 0;
901
+ (this as any)[parentKey] = undefined;
902
+ }
164
903
  }
165
-
166
- /**
167
- * 插入类型参数
168
- * @internal
169
- * @param name 类型参数名称,如果不填会自动生成一个唯一名称
170
- */
171
- _insertTypeParamAt(name: string, index: number): TypeParam;
172
-
173
- /**
174
- * 插入类型参数
175
- * @internal
176
- * @param typeParamOptions 类型参数参数
177
- */
178
- _insertTypeParamAt(typeParamOptions: Partial<TypeParam>, index: number): TypeParam;
179
-
180
- /**
181
- * 插入类型参数
182
- * @internal
183
- * @param typeParam 已有的类型参数实例
184
- */
185
- _insertTypeParamAt(typeParam: TypeParam, index: number): TypeParam;
186
-
187
- _insertTypeParamAt(options: string | Partial<TypeParam> | TypeParam, index: number) {
188
- const typeParamOptions: any = {};
189
- const relationOptions = { parentNode: this, parentKey: 'typeParams' };
190
- let typeParam: TypeParam;
191
- if (!options) {
192
- typeParam = TypeParam.from({
193
- ...typeParamOptions,
194
- name: this.getTypeParamUniqueName(),
195
- }, this, 'typeParams');
196
- } else if (typeof options === 'string') {
197
- typeParam = TypeParam.from({
198
- ...typeParamOptions,
199
- name: options,
200
- }, this, 'typeParams');
201
- } else if (options instanceof TypeParam) {
202
- options.ensureDelete(); // 同一实例不支持多处存在
203
- typeParam = options;
204
- Object.assign(typeParam, relationOptions);
205
- } else {
206
- typeParam = TypeParam.from({
207
- ...typeParamOptions,
208
- ...options,
209
- }, this, 'typeParams');
210
- }
211
- this.typeParams.splice(index, 0, typeParam);
212
- return typeParam;
904
+ return params;
905
+ }
906
+
907
+ /**
908
+ * 删除变量
909
+ * @param name 变量名称
910
+ */
911
+ removeVariable(name: string): void;
912
+
913
+ /**
914
+ * 删除变量
915
+ * @param variable 已有的变量实例
916
+ */
917
+ removeVariable(variable: Variable): void;
918
+
919
+ removeVariable(options: string | Variable) {
920
+ let variable: Variable;
921
+ if (typeof options === 'string') {
922
+ variable = (this.variables as Variable[]).find((item) => item.name === options);
923
+ if (!variable) {
924
+ throw new Error(`找不到变量 ${options}`);
925
+ }
926
+ } else {
927
+ variable = options;
213
928
  }
214
-
215
- /**
216
- * 插入类型参数
217
- * @param name 类型参数名称,如果不填会自动生成一个唯一名称
218
- */
219
- insertTypeParamAt(name: string, index: number): TypeParam;
220
-
221
- /**
222
- * 插入类型参数
223
- * @param typeParamOptions 类型参数参数
224
- */
225
- insertTypeParamAt(typeParamOptions: Partial<TypeParam>, index: number): TypeParam;
226
-
227
- /**
228
- * 插入类型参数
229
- * @param typeParam 已有的类型参数实例
230
- */
231
- insertTypeParamAt(typeParam: TypeParam, index: number): TypeParam;
232
-
233
- insertTypeParamAt(options: string | Partial<TypeParam> | TypeParam, index: number) {
234
- const node = this._insertTypeParamAt(options as any, index);
235
- node.create({
236
- index,
237
- parentNode: this,
238
- parentKey: 'typeParams',
239
- });
240
- return node;
929
+ return variable.delete();
930
+ }
931
+
932
+ __removeVariable(variable: Variable) {
933
+ const { parentKey } = variable;
934
+ const params: Params = {
935
+ parentNode: this,
936
+ parentKey,
937
+ index: -1,
938
+ object: null,
939
+ oldObject: variable,
940
+ };
941
+ if (parentKey) {
942
+ params.parentKey = parentKey;
943
+ if (Array.isArray((this as any)[parentKey])) {
944
+ const index = (this as any)[parentKey].indexOf(variable);
945
+ ~index && (this as any)[parentKey].splice(index, 1);
946
+ params.index = index;
947
+ } else if ((this as any)[parentKey] === variable) {
948
+ params.index = 0;
949
+ (this as any)[parentKey] = undefined;
950
+ }
241
951
  }
242
-
243
- /**
244
- * 添加类型参数
245
- * @internal
246
- * @param name 类型参数名称,如果不填会自动生成一个唯一名称
247
- */
248
- _addTypeParam(name?: string): TypeParam;
249
-
250
- /**
251
- * 添加类型参数
252
- * @internal
253
- * @param typeParamOptions 类型参数参数
254
- */
255
- _addTypeParam(typeParamOptions: Partial<TypeParam>): TypeParam;
256
-
257
- /**
258
- * 添加类型参数
259
- * @internal
260
- * @param typeParam 已有的类型参数实例
261
- */
262
- _addTypeParam(typeParam: TypeParam): TypeParam;
263
-
264
- _addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
265
- const index = this.typeParams.length;
266
- return this._insertTypeParamAt(options as any, index);
952
+ return params;
953
+ }
954
+
955
+ /**
956
+ * 删除逻辑项
957
+ * @param name 逻辑项名称
958
+ */
959
+ removeReturnExpression(name: string): void;
960
+
961
+ /**
962
+ * 删除逻辑项
963
+ * @param returnExpression 已有的逻辑项实例
964
+ */
965
+ removeReturnExpression(returnExpression: LogicItem): void;
966
+
967
+ removeReturnExpression(options: string | LogicItem) {
968
+ let returnExpression: LogicItem;
969
+ if (typeof options === 'string') {
970
+ returnExpression = this.returnExpression;
971
+ if (!returnExpression) {
972
+ throw new Error(`找不到逻辑项 ${options}`);
973
+ }
974
+ } else {
975
+ returnExpression = options;
267
976
  }
268
-
269
- /**
270
- * 添加类型参数
271
- * @internal
272
- * @param name 类型参数名称,如果不填会自动生成一个唯一名称
273
- */
274
- addTypeParam(name?: string): TypeParam;
275
-
276
- /**
277
- * 添加类型参数
278
- * @param typeParamOptions 类型参数参数
279
- */
280
- addTypeParam(typeParamOptions: Partial<TypeParam>): TypeParam;
281
-
282
- /**
283
- * 添加类型参数
284
- * @param typeParam 已有的类型参数实例
285
- */
286
- addTypeParam(typeParam: TypeParam): TypeParam;
287
-
288
- addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
289
- const node = this._addTypeParam(options as any);
290
- const index = this.typeParams.indexOf(node);
291
- node.create({
292
- index,
293
- parentNode: this,
294
- parentKey: 'typeParams',
295
- });
296
- return node;
977
+ return returnExpression.delete();
978
+ }
979
+
980
+ __removeLogicItem(logicItem: LogicItem) {
981
+ const { parentKey } = logicItem;
982
+ const params: Params = {
983
+ parentNode: this,
984
+ parentKey,
985
+ index: -1,
986
+ object: null,
987
+ oldObject: logicItem,
988
+ };
989
+ if (parentKey) {
990
+ params.parentKey = parentKey;
991
+ if (Array.isArray((this as any)[parentKey])) {
992
+ const index = (this as any)[parentKey].indexOf(logicItem);
993
+ ~index && (this as any)[parentKey].splice(index, 1);
994
+ params.index = index;
995
+ } else if ((this as any)[parentKey] === logicItem) {
996
+ params.index = 0;
997
+ (this as any)[parentKey] = undefined;
998
+ }
297
999
  }
298
-
299
-
300
- getParamUniqueName(name = 'param1') {
301
- return utils.unique(name, this.getVarExistingNames(), undefined, false);
1000
+ return params;
1001
+ }
1002
+
1003
+ //= ===============================================================================
1004
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1005
+ // 自动生成的代码已结束。下面可以手动编写。
1006
+ //= ===============================================================================
1007
+
1008
+ toJS(state?: TranslatorState): String {
1009
+ const grandParent = this.parentNode?.parentNode as any;
1010
+ let code = '';
1011
+ this.params.forEach((param, index) => {
1012
+ code += param.name;
1013
+ if (index !== this.params.length - 1) {
1014
+ code += ',';
1015
+ }
1016
+ });
1017
+ code += ')';
1018
+ code += ' => (';
1019
+ if (this.returnExpression) {
1020
+ code += this.returnExpression.toJS(shiftState(state, code));
302
1021
  }
303
-
304
- /**
305
- * 插入输入参数
306
- * @internal
307
- * @param name 输入参数名称,如果不填会自动生成一个唯一名称
308
- */
309
- _insertParamAt(name: string, index: number): Param;
310
-
311
- /**
312
- * 插入输入参数
313
- * @internal
314
- * @param paramOptions 输入参数参数
315
- */
316
- _insertParamAt(paramOptions: Partial<Param>, index: number): Param;
317
-
318
- /**
319
- * 插入输入参数
320
- * @internal
321
- * @param param 已有的输入参数实例
322
- */
323
- _insertParamAt(param: Param, index: number): Param;
324
-
325
- _insertParamAt(options: string | Partial<Param> | Param, index: number) {
326
- const paramOptions: any = {};
327
- const relationOptions = { parentNode: this, parentKey: 'params' };
328
- let param: Param;
329
- if (!options) {
330
- param = Param.from({
331
- ...paramOptions,
332
- name: this.getParamUniqueName(),
333
- }, this, 'params');
334
- } else if (typeof options === 'string') {
335
- param = Param.from({
336
- ...paramOptions,
337
- name: options,
338
- }, this, 'params');
339
- } else if (options instanceof Param) {
340
- options.ensureDelete(); // 同一实例不支持多处存在
341
- param = options;
342
- Object.assign(param, relationOptions);
343
- } else {
344
- param = Param.from({
345
- ...paramOptions,
346
- ...options,
347
- }, this, 'params');
348
- }
349
- this.params.splice(index, 0, param);
350
- return param;
1022
+ code += ')';
1023
+ let resultCode = '';
1024
+ const ancestorLogic = this.getAncestor('Logic');
1025
+ if (grandParent?.view && ancestorLogic && asyncFuncMap[grandParent?.calleeName] && code.indexOf('await') != -1) {
1026
+ resultCode += `async (${code}`;
1027
+ } else {
1028
+ resultCode = `(${code}`;
351
1029
  }
352
-
353
- /**
354
- * 插入输入参数
355
- * @param name 输入参数名称,如果不填会自动生成一个唯一名称
356
- */
357
- insertParamAt(name: string, index: number): Param;
358
-
359
- /**
360
- * 插入输入参数
361
- * @param paramOptions 输入参数参数
362
- */
363
- insertParamAt(paramOptions: Partial<Param>, index: number): Param;
364
-
365
- /**
366
- * 插入输入参数
367
- * @param param 已有的输入参数实例
368
- */
369
- insertParamAt(param: Param, index: number): Param;
370
-
371
- insertParamAt(options: string | Partial<Param> | Param, index: number) {
372
- const node = this._insertParamAt(options as any, index);
373
- node.create({
374
- index,
375
- parentNode: this,
376
- parentKey: 'params',
377
- });
378
- return node;
1030
+ return resultCode;
1031
+ }
1032
+
1033
+ getVarExistingNames(excludedList: Array<Param | Return | Variable> = []) {
1034
+ const excludedSet = new Set(excludedList);
1035
+ return [...this.params, ...this.returns, ...this.variables].filter((item) => !excludedSet.has(item)).map((item) => item.name);
1036
+ }
1037
+
1038
+ getNamespace(): string {
1039
+ if (this.parentNode) {
1040
+ let parentNodeNamespace = '';
1041
+ if ((this.parentNode as Namespace).getNamespace) {
1042
+ parentNodeNamespace = [(this.parentNode as Namespace).getNamespace(), this.parentNode.name].join('.');
1043
+ }
1044
+ return `${parentNodeNamespace}`;
379
1045
  }
380
-
381
- /**
382
- * 添加输入参数
383
- * @internal
384
- * @param name 输入参数名称,如果不填会自动生成一个唯一名称
385
- */
386
- _addParam(name?: string): Param;
387
-
388
- /**
389
- * 添加输入参数
390
- * @internal
391
- * @param paramOptions 输入参数参数
392
- */
393
- _addParam(paramOptions: Partial<Param>): Param;
394
-
395
- /**
396
- * 添加输入参数
397
- * @internal
398
- * @param param 已有的输入参数实例
399
- */
400
- _addParam(param: Param): Param;
401
-
402
- _addParam(options?: string | Partial<Param> | Param) {
403
- const index = this.params.length;
404
- return this._insertParamAt(options as any, index);
1046
+ throw new Error('无法获取命名空间,请设置 parentNode!');
1047
+ }
1048
+
1049
+ @withSourceMap()
1050
+ toEmbeddedTS(state?: TranslatorState): string {
1051
+ let code = '';
1052
+ if (this.returnExpression) {
1053
+ code += `(`;
1054
+ this.params.forEach((param, index) => {
1055
+ code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
1056
+ if (index !== this.params.length - 1) code += ', ';
1057
+ });
1058
+ code += `)`;
1059
+ if (this.returns.length) {
1060
+ code += ': ';
1061
+ code += this.returns[0].typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1062
+ }
1063
+ code += ` => (`;
1064
+
1065
+ if (this.returnExpression) {
1066
+ code += this.returnExpression.toEmbeddedTS && this.returnExpression.toEmbeddedTS(shiftState(state, code, { tabSize: state.tabSize + 1 }));
1067
+ }
1068
+ code += `${indent(state.tabSize)})`;
1069
+ } else {
1070
+ code += '__IDENTIFIER__';
405
1071
  }
406
1072
 
407
- /**
408
- * 添加输入参数
409
- * @internal
410
- * @param name 输入参数名称,如果不填会自动生成一个唯一名称
411
- */
412
- addParam(name?: string): Param;
413
-
414
- /**
415
- * 添加输入参数
416
- * @param paramOptions 输入参数参数
417
- */
418
- addParam(paramOptions: Partial<Param>): Param;
419
-
420
- /**
421
- * 添加输入参数
422
- * @param param 已有的输入参数实例
423
- */
424
- addParam(param: Param): Param;
425
-
426
- addParam(options?: string | Partial<Param> | Param) {
427
- const node = this._addParam(options as any);
428
- const index = this.params.indexOf(node);
429
- node.create({
430
- index,
431
- parentNode: this,
432
- parentKey: 'params',
433
- });
434
- return node;
1073
+ return code;
1074
+ }
1075
+
1076
+ @withSourceMap()
1077
+ toNaturalTS(state?: TranslatorState): string {
1078
+ let code = '';
1079
+ if (this.returnExpression) {
1080
+ code += `(`;
1081
+ this.params.forEach((param, index) => {
1082
+ code += param.toNaturalTS(shiftState(state, code, { inline: true }));
1083
+ if (index !== this.params.length - 1)
1084
+ code += ', ';
1085
+ });
1086
+ code += `)`;
1087
+ if (this.returns.length) {
1088
+ code += ': ';
1089
+ code += this.returns[0].typeAnnotation?.toNaturalTS(shiftState(state, code, { inline: true }));
1090
+ }
1091
+ code += ` => (`;
1092
+
1093
+ if (this.returnExpression) {
1094
+ code += this.returnExpression.toNaturalTS && this.returnExpression.toNaturalTS(shiftState(state, code, { tabSize: state.tabSize + 1, inline: true }));
1095
+ }
1096
+ code += `${indent(state.tabSize)})`;
1097
+ } else {
1098
+ code += '__IDENTIFIER__';
435
1099
  }
436
1100
 
1101
+ return code;
1102
+ }
437
1103
 
438
- getReturnUniqueName(name = 'result') {
439
- return utils.unique(name, this.getVarExistingNames(), undefined, false);
440
- }
1104
+ toVue(options?: ElementToVueOptions): string {
1105
+ let code = '(';
1106
+ this.params.forEach((param, index) => {
1107
+ code += param.name;
1108
+ if (index !== this.params.length - 1) code += ', ';
1109
+ });
1110
+ code += `)`;
1111
+ code += ` => (`;
441
1112
 
442
- /**
443
- * 插入输出参数
444
- * @internal
445
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
446
- */
447
- _insertReturnAt(name: string, index: number): Return;
448
-
449
- /**
450
- * 插入输出参数
451
- * @internal
452
- * @param retOptions 输出参数参数
453
- */
454
- _insertReturnAt(retOptions: Partial<Return>, index: number): Return;
455
-
456
- /**
457
- * 插入输出参数
458
- * @internal
459
- * @param ret 已有的输出参数实例
460
- */
461
- _insertReturnAt(ret: Return, index: number): Return;
462
-
463
- _insertReturnAt(options: string | Partial<Return> | Return, index: number) {
464
- const retOptions: any = {};
465
- const relationOptions = { parentNode: this, parentKey: 'returns' };
466
- let ret: Return;
467
- if (!options) {
468
- ret = Return.from({
469
- ...retOptions,
470
- name: this.getReturnUniqueName(),
471
- }, this, 'returns');
472
- } else if (typeof options === 'string') {
473
- ret = Return.from({
474
- ...retOptions,
475
- name: options,
476
- }, this, 'returns');
477
- } else if (options instanceof Return) {
478
- options.ensureDelete(); // 同一实例不支持多处存在
479
- ret = options;
480
- Object.assign(ret, relationOptions);
481
- } else {
482
- ret = Return.from({
483
- ...retOptions,
484
- ...options,
485
- }, this, 'returns');
486
- }
487
- this.returns.splice(index, 0, ret);
488
- return ret;
1113
+ if (this.returnExpression) {
1114
+ code += this.returnExpression.toVue && this.returnExpression.toVue();
489
1115
  }
490
-
491
- /**
492
- * 插入输出参数
493
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
494
- */
495
- insertReturnAt(name: string, index: number): Return;
496
-
497
- /**
498
- * 插入输出参数
499
- * @param retOptions 输出参数参数
500
- */
501
- insertReturnAt(retOptions: Partial<Return>, index: number): Return;
502
-
503
- /**
504
- * 插入输出参数
505
- * @param ret 已有的输出参数实例
506
- */
507
- insertReturnAt(ret: Return, index: number): Return;
508
-
509
- insertReturnAt(options: string | Partial<Return> | Return, index: number) {
510
- const node = this._insertReturnAt(options as any, index);
511
- node.create({
512
- index,
513
- parentNode: this,
514
- parentKey: 'returns',
515
- });
516
- return node;
1116
+ code += ')';
1117
+ return code;
1118
+ }
1119
+
1120
+ toUI(state?: TranslatorState): string {
1121
+ let code = '(';
1122
+ this.params.forEach((param, index) => {
1123
+ code += param.name;
1124
+ if (index !== this.params.length - 1) code += ', ';
1125
+ });
1126
+ code += `)`;
1127
+ code += ` => (`;
1128
+
1129
+ if (this.returnExpression) {
1130
+ code += this.returnExpression.toUI && this.returnExpression.toUI();
517
1131
  }
518
-
519
- /**
520
- * 添加输出参数
521
- * @internal
522
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
523
- */
524
- _addReturn(name?: string): Return;
525
-
526
- /**
527
- * 添加输出参数
528
- * @internal
529
- * @param retOptions 输出参数参数
530
- */
531
- _addReturn(retOptions: Partial<Return>): Return;
532
-
533
- /**
534
- * 添加输出参数
535
- * @internal
536
- * @param ret 已有的输出参数实例
537
- */
538
- _addReturn(ret: Return): Return;
539
-
540
- _addReturn(options?: string | Partial<Return> | Return) {
541
- const index = this.returns.length;
542
- return this._insertReturnAt(options as any, index);
1132
+ code += ')';
1133
+ return code;
1134
+ }
1135
+
1136
+ toEmbeddedTSDefinition(state?: TranslatorState): string {
1137
+ let code = '(';
1138
+ this.params.forEach((param, index) => {
1139
+ code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
1140
+ if (index !== this.params.length - 1) code += ', ';
1141
+ });
1142
+ code += `) => (`;
1143
+ if (this.returns.length) {
1144
+ code += this.returns[0].typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1145
+ } else {
1146
+ code += 'any';
543
1147
  }
544
-
545
- /**
546
- * 添加输出参数
547
- * @internal
548
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
549
- */
550
- addReturn(name?: string): Return;
551
-
552
- /**
553
- * 添加输出参数
554
- * @param retOptions 输出参数参数
555
- */
556
- addReturn(retOptions: Partial<Return>): Return;
557
-
558
- /**
559
- * 添加输出参数
560
- * @param ret 已有的输出参数实例
561
- */
562
- addReturn(ret: Return): Return;
563
-
564
- addReturn(options?: string | Partial<Return> | Return) {
565
- const node = this._addReturn(options as any);
566
- const index = this.returns.indexOf(node);
567
- node.create({
568
- index,
569
- parentNode: this,
570
- parentKey: 'returns',
571
- });
572
- return node;
573
- }
574
-
575
-
576
- getVariableUniqueName(name = 'variable1') {
577
- return utils.unique(name, this.getVarExistingNames(), undefined, false);
578
- }
579
-
580
- /**
581
- * 插入变量
582
- * @internal
583
- * @param name 变量名称,如果不填会自动生成一个唯一名称
584
- */
585
- _insertVariableAt(name: string, index: number): Variable;
586
-
587
- /**
588
- * 插入变量
589
- * @internal
590
- * @param variableOptions 变量参数
591
- */
592
- _insertVariableAt(variableOptions: Partial<Variable>, index: number): Variable;
593
-
594
- /**
595
- * 插入变量
596
- * @internal
597
- * @param variable 已有的变量实例
598
- */
599
- _insertVariableAt(variable: Variable, index: number): Variable;
600
-
601
- _insertVariableAt(options: string | Partial<Variable> | Variable, index: number) {
602
- const variableOptions: any = {};
603
- const relationOptions = { parentNode: this, parentKey: 'variables' };
604
- let variable: Variable;
605
- if (!options) {
606
- variable = Variable.from({
607
- ...variableOptions,
608
- name: this.getVariableUniqueName(),
609
- }, this, 'variables');
610
- } else if (typeof options === 'string') {
611
- variable = Variable.from({
612
- ...variableOptions,
613
- name: options,
614
- }, this, 'variables');
615
- } else if (options instanceof Variable) {
616
- options.ensureDelete(); // 同一实例不支持多处存在
617
- variable = options;
618
- Object.assign(variable, relationOptions);
619
- } else {
620
- variable = Variable.from({
621
- ...variableOptions,
622
- ...options,
623
- }, this, 'variables');
624
- }
625
- this.variables.splice(index, 0, variable);
626
- return variable;
627
- }
628
-
629
- /**
630
- * 插入变量
631
- * @param name 变量名称,如果不填会自动生成一个唯一名称
632
- */
633
- insertVariableAt(name: string, index: number): Variable;
634
-
635
- /**
636
- * 插入变量
637
- * @param variableOptions 变量参数
638
- */
639
- insertVariableAt(variableOptions: Partial<Variable>, index: number): Variable;
640
-
641
- /**
642
- * 插入变量
643
- * @param variable 已有的变量实例
644
- */
645
- insertVariableAt(variable: Variable, index: number): Variable;
646
-
647
- insertVariableAt(options: string | Partial<Variable> | Variable, index: number) {
648
- const node = this._insertVariableAt(options as any, index);
649
- node.create({
650
- index,
651
- parentNode: this,
652
- parentKey: 'variables',
653
- });
654
- return node;
655
- }
656
-
657
- /**
658
- * 添加变量
659
- * @internal
660
- * @param name 变量名称,如果不填会自动生成一个唯一名称
661
- */
662
- _addVariable(name?: string): Variable;
663
-
664
- /**
665
- * 添加变量
666
- * @internal
667
- * @param variableOptions 变量参数
668
- */
669
- _addVariable(variableOptions: Partial<Variable>): Variable;
670
-
671
- /**
672
- * 添加变量
673
- * @internal
674
- * @param variable 已有的变量实例
675
- */
676
- _addVariable(variable: Variable): Variable;
677
-
678
- _addVariable(options?: string | Partial<Variable> | Variable) {
679
- const index = this.variables.length;
680
- return this._insertVariableAt(options as any, index);
681
- }
682
-
683
- /**
684
- * 添加变量
685
- * @internal
686
- * @param name 变量名称,如果不填会自动生成一个唯一名称
687
- */
688
- addVariable(name?: string): Variable;
689
-
690
- /**
691
- * 添加变量
692
- * @param variableOptions 变量参数
693
- */
694
- addVariable(variableOptions: Partial<Variable>): Variable;
695
-
696
- /**
697
- * 添加变量
698
- * @param variable 已有的变量实例
699
- */
700
- addVariable(variable: Variable): Variable;
701
-
702
- addVariable(options?: string | Partial<Variable> | Variable) {
703
- const node = this._addVariable(options as any);
704
- const index = this.variables.indexOf(node);
705
- node.create({
706
- index,
707
- parentNode: this,
708
- parentKey: 'variables',
709
- });
710
- return node;
711
- }
712
-
713
-
714
-
715
-
716
- /**
717
- * 删除类型参数
718
- * @param name 类型参数名称
719
- */
720
- removeTypeParam(name: string): void;
721
-
722
- /**
723
- * 删除类型参数
724
- * @param typeParam 已有的类型参数实例
725
- */
726
- removeTypeParam(typeParam: TypeParam): void;
727
-
728
- removeTypeParam(options: string | TypeParam) {
729
- let typeParam: TypeParam;
730
- if (typeof options === 'string') {
731
- typeParam = (this.typeParams as TypeParam[]).find((item) => item.name === options);
732
- if (!typeParam) {
733
- throw new Error('找不到类型参数 ' + options);
734
- }
735
- } else {
736
- typeParam = options;
737
- }
738
- return typeParam.delete();
739
- }
740
-
741
- __removeTypeParam(typeParam: TypeParam) {
742
- const parentKey = typeParam.parentKey;
743
- const params: Params = {
744
- parentNode: this,
745
- parentKey,
746
- index: -1,
747
- object: null,
748
- oldObject: typeParam,
749
- };
750
- if (parentKey) {
751
- params.parentKey = parentKey;
752
- if (Array.isArray((this as any)[parentKey])) {
753
- const index = (this as any)[parentKey].indexOf(typeParam);
754
- ~index && (this as any)[parentKey].splice(index, 1);
755
- params.index = index;
756
- } else if ((this as any)[parentKey] === typeParam) {
757
- params.index = 0;
758
- (this as any)[parentKey] = undefined;
759
- }
760
- }
761
- return params;
762
- }
763
-
764
-
765
-
766
- /**
767
- * 删除输入参数
768
- * @param name 输入参数名称
769
- */
770
- removeParam(name: string): void;
771
-
772
- /**
773
- * 删除输入参数
774
- * @param param 已有的输入参数实例
775
- */
776
- removeParam(param: Param): void;
777
-
778
- removeParam(options: string | Param) {
779
- let param: Param;
780
- if (typeof options === 'string') {
781
- param = (this.params as Param[]).find((item) => item.name === options);
782
- if (!param) {
783
- throw new Error('找不到输入参数 ' + options);
784
- }
785
- } else {
786
- param = options;
787
- }
788
- return param.delete();
789
- }
790
-
791
- __removeParam(param: Param) {
792
- const parentKey = param.parentKey;
793
- const params: Params = {
794
- parentNode: this,
795
- parentKey,
796
- index: -1,
797
- object: null,
798
- oldObject: param,
799
- };
800
- if (parentKey) {
801
- params.parentKey = parentKey;
802
- if (Array.isArray((this as any)[parentKey])) {
803
- const index = (this as any)[parentKey].indexOf(param);
804
- ~index && (this as any)[parentKey].splice(index, 1);
805
- params.index = index;
806
- } else if ((this as any)[parentKey] === param) {
807
- params.index = 0;
808
- (this as any)[parentKey] = undefined;
809
- }
810
- }
811
- return params;
812
- }
813
-
814
-
815
-
816
- /**
817
- * 删除输出参数
818
- * @param name 输出参数名称
819
- */
820
- removeReturn(name: string): void;
821
-
822
- /**
823
- * 删除输出参数
824
- * @param ret 已有的输出参数实例
825
- */
826
- removeReturn(ret: Return): void;
827
-
828
- removeReturn(options: string | Return) {
829
- let ret: Return;
830
- if (typeof options === 'string') {
831
- ret = (this.returns as Return[]).find((item) => item.name === options);
832
- if (!ret) {
833
- throw new Error('找不到输出参数 ' + options);
834
- }
835
- } else {
836
- ret = options;
837
- }
838
- return ret.delete();
839
- }
840
-
841
- __removeReturn(ret: Return) {
842
- const parentKey = ret.parentKey;
843
- const params: Params = {
844
- parentNode: this,
845
- parentKey,
846
- index: -1,
847
- object: null,
848
- oldObject: ret,
849
- };
850
- if (parentKey) {
851
- params.parentKey = parentKey;
852
- if (Array.isArray((this as any)[parentKey])) {
853
- const index = (this as any)[parentKey].indexOf(ret);
854
- ~index && (this as any)[parentKey].splice(index, 1);
855
- params.index = index;
856
- } else if ((this as any)[parentKey] === ret) {
857
- params.index = 0;
858
- (this as any)[parentKey] = undefined;
859
- }
860
- }
861
- return params;
862
- }
863
-
864
-
865
-
866
- /**
867
- * 删除变量
868
- * @param name 变量名称
869
- */
870
- removeVariable(name: string): void;
871
-
872
- /**
873
- * 删除变量
874
- * @param variable 已有的变量实例
875
- */
876
- removeVariable(variable: Variable): void;
877
-
878
- removeVariable(options: string | Variable) {
879
- let variable: Variable;
880
- if (typeof options === 'string') {
881
- variable = (this.variables as Variable[]).find((item) => item.name === options);
882
- if (!variable) {
883
- throw new Error('找不到变量 ' + options);
884
- }
885
- } else {
886
- variable = options;
887
- }
888
- return variable.delete();
889
- }
890
-
891
- __removeVariable(variable: Variable) {
892
- const parentKey = variable.parentKey;
893
- const params: Params = {
894
- parentNode: this,
895
- parentKey,
896
- index: -1,
897
- object: null,
898
- oldObject: variable,
899
- };
900
- if (parentKey) {
901
- params.parentKey = parentKey;
902
- if (Array.isArray((this as any)[parentKey])) {
903
- const index = (this as any)[parentKey].indexOf(variable);
904
- ~index && (this as any)[parentKey].splice(index, 1);
905
- params.index = index;
906
- } else if ((this as any)[parentKey] === variable) {
907
- params.index = 0;
908
- (this as any)[parentKey] = undefined;
909
- }
910
- }
911
- return params;
912
- }
913
-
914
-
915
-
916
- /**
917
- * 删除逻辑项
918
- * @param name 逻辑项名称
919
- */
920
- removeReturnExpression(name: string): void;
921
-
922
- /**
923
- * 删除逻辑项
924
- * @param returnExpression 已有的逻辑项实例
925
- */
926
- removeReturnExpression(returnExpression: LogicItem): void;
927
-
928
- removeReturnExpression(options: string | LogicItem) {
929
- let returnExpression: LogicItem;
930
- if (typeof options === 'string') {
931
- returnExpression = this.returnExpression;
932
- if (!returnExpression) {
933
- throw new Error('找不到逻辑项 ' + options);
934
- }
935
- } else {
936
- returnExpression = options;
937
- }
938
- return returnExpression.delete();
939
- }
940
-
941
- __removeLogicItem(logicItem: LogicItem) {
942
- const parentKey = logicItem.parentKey;
943
- const params: Params = {
944
- parentNode: this,
945
- parentKey,
946
- index: -1,
947
- object: null,
948
- oldObject: logicItem,
949
- };
950
- if (parentKey) {
951
- params.parentKey = parentKey;
952
- if (Array.isArray((this as any)[parentKey])) {
953
- const index = (this as any)[parentKey].indexOf(logicItem);
954
- ~index && (this as any)[parentKey].splice(index, 1);
955
- params.index = index;
956
- } else if ((this as any)[parentKey] === logicItem) {
957
- params.index = 0;
958
- (this as any)[parentKey] = undefined;
959
- }
960
- }
961
- return params;
962
- }
963
-
964
- //================================================================================
965
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
966
- // 自动生成的代码已结束。下面可以手动编写。
967
- //================================================================================
968
-
969
- toJS(state?: TranslatorState): String {
970
- const grandParent = this.parentNode?.parentNode as any;
971
- let code = '';
972
- this.params.forEach((param, index) => {
973
- code += param.name;
974
- if (index !== this.params.length - 1) {
975
- code += ',';
976
- }
977
- });
978
- code += ')';
979
- code += ' => (';
980
- if (this.returnExpression) {
981
- code += this.returnExpression.toJS(shiftState(state, code));
982
- }
983
- code += ')';
984
- let resultCode = '';
985
- const ancestorLogic = this.getAncestor('Logic');
986
- if (grandParent?.view && ancestorLogic && asyncFuncMap[grandParent?.calleeName] && code.indexOf('await') != -1) {
987
- resultCode += 'async (' + code;
988
- } else {
989
- resultCode = '(' + code;
990
- }
991
- return resultCode;
992
- }
993
-
994
- getVarExistingNames(excludedList: Array<Param | Return | Variable> = []) {
995
- const excludedSet = new Set(excludedList);
996
- return [...this.params, ...this.returns, ...this.variables].filter((item) => !excludedSet.has(item)).map((item) => item.name);
997
- }
998
- getNamespace(): string {
999
- if (this.parentNode) {
1000
- let parentNodeNamespace = '';
1001
- if ((this.parentNode as Namespace).getNamespace) {
1002
- parentNodeNamespace = [(this.parentNode as Namespace).getNamespace(), this.parentNode.name].join('.');
1003
- }
1004
- return `${parentNodeNamespace}`;
1005
- } else
1006
- throw new Error('无法获取命名空间,请设置 parentNode!');
1007
- }
1008
- @withSourceMap()
1009
- toEmbeddedTS(state?: TranslatorState): string {
1010
- let code = '';
1011
- if (this.returnExpression) {
1012
- code += `(`;
1013
- this.params.forEach((param, index) => {
1014
- code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
1015
- if (index !== this.params.length - 1)
1016
- code += ', ';
1017
- });
1018
- code += `)`;
1019
- if (this.returns.length) {
1020
- code += ': ';
1021
- code += this.returns[0].typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1022
- }
1023
- code += ` => (`;
1024
-
1025
- if (this.returnExpression) {
1026
- code += this.returnExpression.toEmbeddedTS && this.returnExpression.toEmbeddedTS(shiftState(state, code, { tabSize: state.tabSize + 1 }));
1027
- }
1028
- code += indent(state.tabSize) + ')';
1029
- } else {
1030
- code += '__IDENTIFIER__';
1031
- }
1032
-
1033
- return code;
1034
- }
1035
-
1036
- toVue(options?: ElementToVueOptions): string {
1037
- let code = '(';
1038
- this.params.forEach((param, index) => {
1039
- code += param.name;
1040
- if (index !== this.params.length - 1)
1041
- code += ', ';
1042
- });
1043
- code += `)`;
1044
- code += ` => (`;
1045
-
1046
- if (this.returnExpression) {
1047
- code += this.returnExpression.toVue && this.returnExpression.toVue();
1048
- }
1049
- code += ')';
1050
- return code;
1051
- }
1052
-
1053
- toUI(state?: TranslatorState): string {
1054
- let code = '(';
1055
- this.params.forEach((param, index) => {
1056
- code += param.name;
1057
- if (index !== this.params.length - 1)
1058
- code += ', ';
1059
- });
1060
- code += `)`;
1061
- code += ` => (`;
1062
-
1063
- if (this.returnExpression) {
1064
- code += this.returnExpression.toUI && this.returnExpression.toUI();
1065
- }
1066
- code += ')';
1067
- return code;
1068
- }
1069
-
1070
- toEmbeddedTSDefinition(state?: TranslatorState): string {
1071
- let code = '(';
1072
- this.params.forEach((param, index) => {
1073
- code += param.toEmbeddedTS(shiftState(state, code, { inline: true }));
1074
- if (index !== this.params.length - 1)
1075
- code += ', ';
1076
- });
1077
- code += `) => (`;
1078
- if (this.returns.length) {
1079
- code += this.returns[0].typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1080
- } else {
1081
- code += 'any';
1082
- }
1083
- code += indent(state.tabSize) + ')';
1084
- return code;
1085
- }
1086
-
1087
- get calleeKey() {
1088
- const calleeNamespace = this.getNamespace();
1089
- const calleeName = this.name;
1090
- return `${calleeNamespace}.${calleeName}`;
1091
- }
1092
-
1093
- //================================================================================
1094
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1095
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1096
- //================================================================================
1148
+ code += `${indent(state.tabSize)})`;
1149
+ return code;
1150
+ }
1151
+
1152
+ get calleeKey() {
1153
+ const calleeNamespace = this.getNamespace();
1154
+ const calleeName = this.name;
1155
+ return `${calleeNamespace}.${calleeName}`;
1156
+ }
1157
+
1158
+ //= ===============================================================================
1159
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1160
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1161
+ //= ===============================================================================
1097
1162
  }
1098
1163
 
1099
1164
  classMap.Function = Function;
1100
1165
  export default Function;
1101
- //================================================================================
1166
+ //= ===============================================================================
1102
1167
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1103
1168
  // 自动生成的代码已结束。下面可以手动编写。
1104
- //================================================================================
1169
+ //= ===============================================================================