@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,27 +1,25 @@
1
- import * as babel from '@babel/core';
1
+ import { v4 as uuidv4 } from 'uuid';
2
2
  import LogicItem from './LogicItem__';
3
3
  import Namespace from './Namespace__';
4
4
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
5
- import { ElementToVueOptions } from './ViewElement__';
5
+ import ViewElement, { ElementToVueOptions } from './ViewElement__';
6
6
  import { elementsEventsMap } from '../server/createUiTs';
7
7
  import Param from './Param__';
8
8
  import TypeAnnotation from './TypeAnnotation__';
9
9
  import Process from './Process__';
10
10
 
11
- //================================================================================
11
+ //= ===============================================================================
12
12
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
13
13
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
14
- //================================================================================
14
+ //= ===============================================================================
15
15
  import { EventPayload, Params } from '../common/EventEmitter';
16
16
  import { concept, excludedInJSON, property } from '../decorators';
17
17
 
18
18
  import * as utils from '../utils';
19
- import { v4 as uuidv4 } from 'uuid';
20
19
  import BaseNode from '../common/BaseNode';
21
20
  import classMap from '../common/classMap';
22
21
  import Logic from './Logic__';
23
22
  import Argument from './Argument__';
24
- import ViewElement from './ViewElement__';
25
23
  import View from './View__';
26
24
  import Module from './Module__';
27
25
  import App from './App__';
@@ -32,921 +30,1049 @@ import Frontend from './Frontend__';
32
30
  */
33
31
  @concept('元素绑定事件')
34
32
  export class BindEvent extends BaseNode {
35
- /**
36
- * 产品概念
37
- */
38
- @property()
39
- concept: 'BindEvent' = 'BindEvent';
40
-
41
- /**
42
- * 元素绑定事件名称
43
- */
44
- @property()
45
- name: string = undefined;
46
-
47
- /**
48
- * 逻辑列表
49
- */
50
- @property('Logic')
51
- logics: Array<Logic> = [];
52
-
53
- /**
54
- * calleeNamespace
55
- */
56
- @property()
57
- calleeNamespace: string = undefined;
58
-
59
- /**
60
- * calleeName
61
- */
62
- @property()
63
- calleeName: string = undefined;
64
-
65
- /**
66
- * 实际参数
67
- */
68
- @property('Argument')
69
- arguments: Array<Argument> = [];
70
-
71
- /**
72
- * 祖先 ViewElement
73
- */
74
- get element() {
75
- return this.getAncestor('ViewElement') as ViewElement;
76
- }
77
- /**
78
- * 祖先 View
79
- */
80
- get view() {
81
- return this.getAncestor('View') as View;
82
- }
83
- /**
84
- * 祖先 Module
85
- */
86
- get module() {
87
- return this.getAncestor('Module') as Module;
33
+ /**
34
+ * 产品概念
35
+ */
36
+ @property()
37
+ concept: 'BindEvent' = 'BindEvent';
38
+
39
+ /**
40
+ * 元素绑定事件名称
41
+ */
42
+ @property()
43
+ name: string = undefined;
44
+
45
+ /**
46
+ * 逻辑列表
47
+ */
48
+ @property('Logic')
49
+ logics: Array<Logic> = [];
50
+
51
+ /**
52
+ * calleeNamespace
53
+ */
54
+ @property()
55
+ calleeNamespace: string = undefined;
56
+
57
+ /**
58
+ * calleeName
59
+ */
60
+ @property()
61
+ calleeName: string = undefined;
62
+
63
+ /**
64
+ * 实际参数
65
+ */
66
+ @property('Argument')
67
+ arguments: Array<Argument> = [];
68
+
69
+ /**
70
+ * 祖先 ViewElement
71
+ */
72
+ get element() {
73
+ return this.getAncestor('ViewElement') as ViewElement;
74
+ }
75
+
76
+ /**
77
+ * 祖先 View
78
+ */
79
+ get view() {
80
+ return this.getAncestor('View') as View;
81
+ }
82
+
83
+ /**
84
+ * 祖先 Module
85
+ */
86
+ get module() {
87
+ return this.getAncestor('Module') as Module;
88
+ }
89
+
90
+ /**
91
+ * 祖先 App
92
+ */
93
+ get app() {
94
+ return this.getAncestor('App') as App;
95
+ }
96
+
97
+ /**
98
+ * 祖先 Frontend
99
+ */
100
+ get frontend() {
101
+ return this.getAncestor('Frontend') as Frontend;
102
+ }
103
+
104
+ /**
105
+ * @param source 需要合并的部分参数
106
+ */
107
+ constructor(source?: Partial<BindEvent>) {
108
+ // @ts-ignore
109
+ source = { ...BindEvent.getDefaultOptions(), ...source };
110
+ super(source);
111
+ super.subConstructor(source);
112
+ }
113
+
114
+ getClassName() {
115
+ return 'BindEvent';
116
+ }
117
+
118
+ static from(source: any, parentNode?: any, parentKey?: string): BindEvent {
119
+ return super.from(source, parentNode, parentKey) as BindEvent;
120
+ }
121
+
122
+ /**
123
+ * 从父级删除该节点
124
+ * @internal
125
+ */
126
+ _delete() {
127
+ let params: Params = null;
128
+ if (this.parentNode) {
129
+ params = (this.parentNode as any)?.__removeBindEvent?.(this);
88
130
  }
89
- /**
90
- * 祖先 App
91
- */
92
- get app() {
93
- return this.getAncestor('App') as App;
131
+ return params;
132
+ }
133
+
134
+ /**
135
+ * 设置元素绑定事件名称
136
+ */
137
+ setName(name: string) {
138
+ const object = {
139
+ name,
140
+ };
141
+ this.update({
142
+ ...object,
143
+ field: 'name',
144
+ });
145
+ }
146
+
147
+ /**
148
+ * 设置calleeNamespace
149
+ */
150
+ setCalleeNamespace(calleeNamespace: string) {
151
+ const object = {
152
+ calleeNamespace,
153
+ };
154
+ this.update({
155
+ ...object,
156
+ });
157
+ }
158
+
159
+ /**
160
+ * 设置calleeName
161
+ */
162
+ setCalleeName(calleeName: string) {
163
+ const object = {
164
+ calleeName,
165
+ };
166
+ this.update({
167
+ ...object,
168
+ });
169
+ }
170
+
171
+ getLogicExistingNames(excludedList: Array<Logic> = []) {
172
+ const excludedSet = new Set(excludedList);
173
+ return ((this.logics as Logic[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
174
+ }
175
+
176
+ getLogicUniqueName(name = 'logic1') {
177
+ return utils.unique(name, this.getLogicExistingNames(), undefined, true);
178
+ }
179
+
180
+ /**
181
+ * 插入逻辑
182
+ * @internal
183
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
184
+ */
185
+ _insertLogicAt(name: string, index: number): Logic;
186
+
187
+ /**
188
+ * 插入逻辑
189
+ * @internal
190
+ * @param logicOptions 逻辑参数
191
+ */
192
+ _insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
193
+
194
+ /**
195
+ * 插入逻辑
196
+ * @internal
197
+ * @param logic 已有的逻辑实例
198
+ */
199
+ _insertLogicAt(logic: Logic, index: number): Logic;
200
+
201
+ _insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
202
+ const logicOptions: any = {};
203
+ const relationOptions = { parentNode: this, parentKey: 'logics' };
204
+ let logic: Logic;
205
+ if (!options) {
206
+ logic = Logic.from(
207
+ {
208
+ ...logicOptions,
209
+ name: this.getLogicUniqueName(),
210
+ },
211
+ this,
212
+ 'logics'
213
+ );
214
+ } else if (typeof options === 'string') {
215
+ logic = Logic.from(
216
+ {
217
+ ...logicOptions,
218
+ name: options,
219
+ },
220
+ this,
221
+ 'logics'
222
+ );
223
+ } else if (options instanceof Logic) {
224
+ options.ensureDelete(); // 同一实例不支持多处存在
225
+ logic = options;
226
+ Object.assign(logic, relationOptions);
227
+ } else {
228
+ logic = Logic.from(
229
+ {
230
+ ...logicOptions,
231
+ ...options,
232
+ },
233
+ this,
234
+ 'logics'
235
+ );
94
236
  }
95
- /**
96
- * 祖先 Frontend
97
- */
98
- get frontend() {
99
- return this.getAncestor('Frontend') as Frontend;
237
+ this.logics.splice(index, 0, logic);
238
+ return logic;
239
+ }
240
+
241
+ /**
242
+ * 插入逻辑
243
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
244
+ */
245
+ insertLogicAt(name: string, index: number): Logic;
246
+
247
+ /**
248
+ * 插入逻辑
249
+ * @param logicOptions 逻辑参数
250
+ */
251
+ insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
252
+
253
+ /**
254
+ * 插入逻辑
255
+ * @param logic 已有的逻辑实例
256
+ */
257
+ insertLogicAt(logic: Logic, index: number): Logic;
258
+
259
+ insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
260
+ const node = this._insertLogicAt(options as any, index);
261
+ node.create({
262
+ index,
263
+ parentNode: this,
264
+ parentKey: 'logics',
265
+ });
266
+ return node;
267
+ }
268
+
269
+ /**
270
+ * 添加逻辑
271
+ * @internal
272
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
273
+ */
274
+ _addLogic(name?: string): Logic;
275
+
276
+ /**
277
+ * 添加逻辑
278
+ * @internal
279
+ * @param logicOptions 逻辑参数
280
+ */
281
+ _addLogic(logicOptions: Partial<Logic>): Logic;
282
+
283
+ /**
284
+ * 添加逻辑
285
+ * @internal
286
+ * @param logic 已有的逻辑实例
287
+ */
288
+ _addLogic(logic: Logic): Logic;
289
+
290
+ _addLogic(options?: string | Partial<Logic> | Logic) {
291
+ const index = 0;
292
+ return this._insertLogicAt(options as any, index);
293
+ }
294
+
295
+ /**
296
+ * 添加逻辑
297
+ * @internal
298
+ * @param name 逻辑名称,如果不填会自动生成一个唯一名称
299
+ */
300
+ addLogic(name?: string): Logic;
301
+
302
+ /**
303
+ * 添加逻辑
304
+ * @param logicOptions 逻辑参数
305
+ */
306
+ addLogic(logicOptions: Partial<Logic>): Logic;
307
+
308
+ /**
309
+ * 添加逻辑
310
+ * @param logic 已有的逻辑实例
311
+ */
312
+ addLogic(logic: Logic): Logic;
313
+
314
+ addLogic(options?: string | Partial<Logic> | Logic) {
315
+ const node = this._addLogic(options as any);
316
+ const index = this.logics.indexOf(node);
317
+ node.create({
318
+ index,
319
+ parentNode: this,
320
+ parentKey: 'logics',
321
+ });
322
+ return node;
323
+ }
324
+
325
+ /**
326
+ * 插入实际参数
327
+ * @internal
328
+ * @param argumentOptions 实际参数参数
329
+ */
330
+ _insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
331
+
332
+ /**
333
+ * 插入实际参数
334
+ * @internal
335
+ * @param argument 已有的实际参数实例
336
+ */
337
+ _insertArgumentAt(argument: Argument, index: number): Argument;
338
+
339
+ _insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
340
+ const argumentOptions: any = {};
341
+ const relationOptions = { parentNode: this, parentKey: 'arguments' };
342
+ let argument: Argument;
343
+ if (options instanceof Argument) {
344
+ options.ensureDelete(); // 同一实例不支持多处存在
345
+ argument = options;
346
+ Object.assign(argument, relationOptions);
347
+ } else {
348
+ argument = Argument.from(
349
+ {
350
+ ...argumentOptions,
351
+ ...options,
352
+ },
353
+ this,
354
+ 'arguments'
355
+ );
100
356
  }
101
-
102
- /**
103
- * @param source 需要合并的部分参数
104
- */
105
- constructor(source?: Partial<BindEvent>) {
106
- source = Object.assign({}, BindEvent.getDefaultOptions(), source);
107
- super(source);
108
- super.subConstructor(source);
109
- }
110
- getClassName() {
111
- return 'BindEvent';
112
- }
113
-
114
- static from(source: any, parentNode?: any, parentKey?: string): BindEvent {
115
- return super.from(source, parentNode, parentKey) as BindEvent;
357
+ this.arguments.splice(index, 0, argument);
358
+ return argument;
359
+ }
360
+
361
+ /**
362
+ * 插入实际参数
363
+ * @param argumentOptions 实际参数参数
364
+ */
365
+ insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
366
+
367
+ /**
368
+ * 插入实际参数
369
+ * @param argument 已有的实际参数实例
370
+ */
371
+ insertArgumentAt(argument: Argument, index: number): Argument;
372
+
373
+ insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
374
+ const node = this._insertArgumentAt(options as any, index);
375
+ node.create({
376
+ index,
377
+ parentNode: this,
378
+ parentKey: 'arguments',
379
+ });
380
+ return node;
381
+ }
382
+
383
+ /**
384
+ * 添加实际参数
385
+ * @internal
386
+ * @param argumentOptions 实际参数参数
387
+ */
388
+ _addArgument(argumentOptions: Partial<Argument>): Argument;
389
+
390
+ /**
391
+ * 添加实际参数
392
+ * @internal
393
+ * @param argument 已有的实际参数实例
394
+ */
395
+ _addArgument(argument: Argument): Argument;
396
+
397
+ _addArgument(options?: Partial<Argument> | Argument) {
398
+ const index = this.arguments.length;
399
+ return this._insertArgumentAt(options as any, index);
400
+ }
401
+
402
+ /**
403
+ * 添加实际参数
404
+ * @param argumentOptions 实际参数参数
405
+ */
406
+ addArgument(argumentOptions: Partial<Argument>): Argument;
407
+
408
+ /**
409
+ * 添加实际参数
410
+ * @param argument 已有的实际参数实例
411
+ */
412
+ addArgument(argument: Argument): Argument;
413
+
414
+ addArgument(options?: Partial<Argument> | Argument) {
415
+ const node = this._addArgument(options as any);
416
+ const index = this.arguments.indexOf(node);
417
+ node.create({
418
+ index,
419
+ parentNode: this,
420
+ parentKey: 'arguments',
421
+ });
422
+ return node;
423
+ }
424
+
425
+ /**
426
+ * 删除逻辑
427
+ * @param name 逻辑名称
428
+ */
429
+ removeLogic(name: string): void;
430
+
431
+ /**
432
+ * 删除逻辑
433
+ * @param logic 已有的逻辑实例
434
+ */
435
+ removeLogic(logic: Logic): void;
436
+
437
+ removeLogic(options: string | Logic) {
438
+ let logic: Logic;
439
+ if (typeof options === 'string') {
440
+ logic = (this.logics as Logic[]).find((item) => item.name === options);
441
+ if (!logic) {
442
+ throw new Error(`找不到逻辑 ${options}`);
443
+ }
444
+ } else {
445
+ logic = options;
116
446
  }
117
-
118
- /**
119
- * 从父级删除该节点
120
- * @internal
121
- */
122
- _delete() {
123
- let params: Params = null;
124
- if (this.parentNode) {
125
- params = (this.parentNode as any)?.__removeBindEvent?.(this);
126
- }
127
- return params;
447
+ return logic.delete();
448
+ }
449
+
450
+ __removeLogic(logic: Logic) {
451
+ const { parentKey } = logic;
452
+ const params: Params = {
453
+ parentNode: this,
454
+ parentKey,
455
+ index: -1,
456
+ object: null,
457
+ oldObject: logic,
458
+ };
459
+ if (parentKey) {
460
+ params.parentKey = parentKey;
461
+ if (Array.isArray((this as any)[parentKey])) {
462
+ const index = (this as any)[parentKey].indexOf(logic);
463
+ ~index && (this as any)[parentKey].splice(index, 1);
464
+ params.index = index;
465
+ } else if ((this as any)[parentKey] === logic) {
466
+ params.index = 0;
467
+ (this as any)[parentKey] = undefined;
468
+ }
128
469
  }
129
- /**
130
- * 设置元素绑定事件名称
131
- */
132
- setName(name: string) {
133
- const object = {
134
- name,
135
- };
136
- this.update({
137
- ...object,
138
- field: 'name',
139
- });
470
+ return params;
471
+ }
472
+
473
+ /**
474
+ * 删除实际参数
475
+ * @param argument 已有的实际参数实例
476
+ */
477
+ removeArgument(argument: Argument): void;
478
+
479
+ removeArgument(options: Argument) {
480
+ const argument: Argument = options;
481
+ return argument.delete();
482
+ }
483
+
484
+ __removeLogicItem(logicItem: LogicItem) {
485
+ const { parentKey } = logicItem;
486
+ const params: Params = {
487
+ parentNode: this,
488
+ parentKey,
489
+ index: -1,
490
+ object: null,
491
+ oldObject: logicItem,
492
+ };
493
+ if (parentKey) {
494
+ params.parentKey = parentKey;
495
+ if (Array.isArray((this as any)[parentKey])) {
496
+ const index = (this as any)[parentKey].indexOf(logicItem);
497
+ ~index && (this as any)[parentKey].splice(index, 1);
498
+ params.index = index;
499
+ } else if ((this as any)[parentKey] === logicItem) {
500
+ params.index = 0;
501
+ (this as any)[parentKey] = undefined;
502
+ }
140
503
  }
141
-
142
- /**
143
- * 设置calleeNamespace
144
- */
145
- setCalleeNamespace(calleeNamespace: string) {
146
- const object = {
147
- calleeNamespace,
148
- };
149
- this.update({
150
- ...object,
151
- });
504
+ return params;
505
+ }
506
+
507
+ //= ===============================================================================
508
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
509
+ // 自动生成的代码已结束。下面可以手动编写。
510
+ //= ===============================================================================
511
+ get process() {
512
+ return this.getAncestor('Process') as Process;
513
+ }
514
+
515
+ get tsCalleeNamespace() {
516
+ if (this.calleeNamespace) {
517
+ let tsCalleeNamespace = this.calleeNamespace;
518
+ tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
519
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
520
+ return tsCalleeNamespace;
152
521
  }
522
+ return '';
523
+ }
153
524
 
154
- /**
155
- * 设置calleeName
156
- */
157
- setCalleeName(calleeName: string) {
158
- const object = {
159
- calleeName,
160
- };
161
- this.update({
162
- ...object,
163
- });
525
+ get calleeKey(): string {
526
+ const { tsCalleeNamespace } = this;
527
+ if (!tsCalleeNamespace) {
528
+ return `${this.calleeName}`;
164
529
  }
165
-
166
- getLogicExistingNames(excludedList: Array<Logic> = []) {
167
- const excludedSet = new Set(excludedList);
168
- return ((this.logics as Logic[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
530
+ // elements单独处理相对路径,和后缀的问题
531
+ if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
532
+ const methodName = tsCalleeNamespace.substring(0, tsCalleeNamespace.length - '.logics'.length);
533
+ return `__${methodName}.${this.calleeName}`;
169
534
  }
170
- getLogicUniqueName(name = 'logic1') {
171
- return utils.unique(name, this.getLogicExistingNames(), undefined, true);
535
+ return `${tsCalleeNamespace}.${this.calleeName}`;
536
+ }
537
+
538
+ // 用于展示的value
539
+ get randerValue() {
540
+ const randerNameSpace = this.tsCalleeNamespace;
541
+ if (!randerNameSpace) {
542
+ return `${this.calleeName}`;
172
543
  }
173
-
174
- /**
175
- * 插入逻辑
176
- * @internal
177
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
178
- */
179
- _insertLogicAt(name: string, index: number): Logic;
180
-
181
- /**
182
- * 插入逻辑
183
- * @internal
184
- * @param logicOptions 逻辑参数
185
- */
186
- _insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
187
-
188
- /**
189
- * 插入逻辑
190
- * @internal
191
- * @param logic 已有的逻辑实例
192
- */
193
- _insertLogicAt(logic: Logic, index: number): Logic;
194
-
195
- _insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
196
- const logicOptions: any = {};
197
- const relationOptions = { parentNode: this, parentKey: 'logics' };
198
- let logic: Logic;
199
- if (!options) {
200
- logic = Logic.from({
201
- ...logicOptions,
202
- name: this.getLogicUniqueName(),
203
- }, this, 'logics');
204
- } else if (typeof options === 'string') {
205
- logic = Logic.from({
206
- ...logicOptions,
207
- name: options,
208
- }, this, 'logics');
209
- } else if (options instanceof Logic) {
210
- options.ensureDelete(); // 同一实例不支持多处存在
211
- logic = options;
212
- Object.assign(logic, relationOptions);
213
- } else {
214
- logic = Logic.from({
215
- ...logicOptions,
216
- ...options,
217
- }, this, 'logics');
218
- }
219
- this.logics.splice(index, 0, logic);
220
- return logic;
544
+ // elements单独处理相对路径,和后缀的问题
545
+ if (randerNameSpace.startsWith('elements') && randerNameSpace.endsWith('logics')) {
546
+ const methodName = randerNameSpace.substring('elements.'.length, randerNameSpace.length);
547
+ return `$refs.${methodName}.${this.calleeName}`;
221
548
  }
549
+ return `${randerNameSpace}.${this.calleeName}`;
550
+ }
551
+
552
+ // 绑定事件转驼峰
553
+ toHump = (name: string) => (name ? name.replace(/\-(\w)/g, (all, letter) => letter.toUpperCase()) : '');
554
+
555
+ toJS(state?: TranslatorState): string {
556
+ // shiftState(state, code)
557
+ let code = `async ${this.getViewEventName()} (`;
558
+ const params = this.getContextLogicParams();
559
+ code += params.map((item: Param) => item.name).toString();
560
+ code += ') { \n';
561
+ this.logics.forEach((logic) => {
562
+ code += logic.toJS(shiftState(state, code), 'IIFE');
563
+ });
564
+ code += '}\n';
565
+ return code;
566
+ }
567
+
568
+ @withSourceMap()
569
+ toEmbeddedTS(state?: TranslatorState, isPageCycle?: Boolean): string {
570
+ // 如果有绑定的事件名
571
+ let code = ``;
572
+ if (isPageCycle) {
573
+ if (['keydown', 'keyup'].includes(this.name)) {
574
+ code = `const ${this.toHump(this.name) || '__IDENTIFIER__'} = (event: `;
575
+ code += this.getEventTypeString();
576
+ code += ') => [\n';
577
+ this.logics.forEach((logic) => {
578
+ // 一些默认的逻辑不翻译 排除掉
579
+ if (logic.name.startsWith('__')) {
580
+ return;
581
+ }
582
+ if (logic.view) {
583
+ const logicName = logic.name;
584
+ if ((logic.parentNode as BindEvent)?.element) {
585
+ logic.name = `__${logic.view.name}${(logic.parentNode as BindEvent).element.name}${logic.name}`;
586
+ }
222
587
 
223
- /**
224
- * 插入逻辑
225
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
226
- */
227
- insertLogicAt(name: string, index: number): Logic;
228
-
229
- /**
230
- * 插入逻辑
231
- * @param logicOptions 逻辑参数
232
- */
233
- insertLogicAt(logicOptions: Partial<Logic>, index: number): Logic;
234
-
235
- /**
236
- * 插入逻辑
237
- * @param logic 已有的逻辑实例
238
- */
239
- insertLogicAt(logic: Logic, index: number): Logic;
240
-
241
- insertLogicAt(options: string | Partial<Logic> | Logic, index: number) {
242
- const node = this._insertLogicAt(options as any, index);
243
- node.create({
244
- index,
245
- parentNode: this,
246
- parentKey: 'logics',
588
+ logic.name = logic.name.replace(/-/g, '');
589
+ try {
590
+ code += logic.toEmbeddedTS(
591
+ shiftState(state, code, {
592
+ tabSize: (state?.tabSize || 0) + 2,
593
+ }),
594
+ 'noExport'
595
+ );
596
+ } finally {
597
+ // 翻译logic可能出错
598
+ logic.name = logicName;
599
+ }
600
+ } else {
601
+ code += logic.toEmbeddedTS(
602
+ shiftState(state, code, {
603
+ tabSize: (state?.tabSize || 0) + 2,
604
+ }),
605
+ 'noExport'
606
+ );
607
+ }
608
+
609
+ code += indent(state?.tabSize || 0);
610
+ code += ',\n';
247
611
  });
248
- return node;
249
- }
250
-
251
- /**
252
- * 添加逻辑
253
- * @internal
254
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
255
- */
256
- _addLogic(name?: string): Logic;
257
-
258
- /**
259
- * 添加逻辑
260
- * @internal
261
- * @param logicOptions 逻辑参数
262
- */
263
- _addLogic(logicOptions: Partial<Logic>): Logic;
264
-
265
- /**
266
- * 添加逻辑
267
- * @internal
268
- * @param logic 已有的逻辑实例
269
- */
270
- _addLogic(logic: Logic): Logic;
271
-
272
- _addLogic(options?: string | Partial<Logic> | Logic) {
273
- const index = 0;
274
- return this._insertLogicAt(options as any, index);
275
- }
276
-
277
- /**
278
- * 添加逻辑
279
- * @internal
280
- * @param name 逻辑名称,如果不填会自动生成一个唯一名称
281
- */
282
- addLogic(name?: string): Logic;
283
-
284
- /**
285
- * 添加逻辑
286
- * @param logicOptions 逻辑参数
287
- */
288
- addLogic(logicOptions: Partial<Logic>): Logic;
289
-
290
- /**
291
- * 添加逻辑
292
- * @param logic 已有的逻辑实例
293
- */
294
- addLogic(logic: Logic): Logic;
295
-
296
- addLogic(options?: string | Partial<Logic> | Logic) {
297
- const node = this._addLogic(options as any);
298
- const index = this.logics.indexOf(node);
299
- node.create({
300
- index,
301
- parentNode: this,
302
- parentKey: 'logics',
612
+ code += '];\n';
613
+ } else {
614
+ this.logics.forEach((logic, index) => {
615
+ const logicName = logic.name;
616
+ logic.name = logic.view.name + logic.name + index;
617
+ code += logic.toEmbeddedTS(
618
+ shiftState(state, code, {
619
+ tabSize: (state?.tabSize || 0) + 2,
620
+ }),
621
+ 'noExport'
622
+ );
623
+ code += indent(state?.tabSize || 0);
624
+ code += `${logic.name}();\n`;
625
+ logic.name = logicName;
303
626
  });
304
- return node;
627
+ }
628
+ return code;
305
629
  }
306
630
 
307
-
308
-
309
-
310
-
311
-
312
- /**
313
- * 插入实际参数
314
- * @internal
315
- * @param argumentOptions 实际参数参数
316
- */
317
- _insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
318
-
319
- /**
320
- * 插入实际参数
321
- * @internal
322
- * @param argument 已有的实际参数实例
323
- */
324
- _insertArgumentAt(argument: Argument, index: number): Argument;
325
-
326
- _insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
327
- const argumentOptions: any = {};
328
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
329
- let argument: Argument;
330
- if (options instanceof Argument) {
331
- options.ensureDelete(); // 同一实例不支持多处存在
332
- argument = options;
333
- Object.assign(argument, relationOptions);
334
- } else {
335
- argument = Argument.from({
336
- ...argumentOptions,
337
- ...options,
338
- }, this, 'arguments');
631
+ code = `${this.toHump(this.name) || '__IDENTIFIER__'}: (event: `;
632
+
633
+ // event的类型
634
+ code += this.getEventTypeString();
635
+
636
+ code += ') => [\n';
637
+ this.logics.forEach((logic) => {
638
+ // 一些默认的逻辑不翻译 排除掉
639
+ if (logic.name.startsWith('__')) {
640
+ return;
641
+ }
642
+ if (logic.view) {
643
+ const logicName = logic.name;
644
+ if ((logic.parentNode as BindEvent)?.element) {
645
+ logic.name = `__${logic.view.name}${(logic.parentNode as BindEvent).element.name}${logic.name}`;
339
646
  }
340
- this.arguments.splice(index, 0, argument);
341
- return argument;
342
- }
343
-
344
-
345
-
346
- /**
347
- * 插入实际参数
348
- * @param argumentOptions 实际参数参数
349
- */
350
- insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
351
-
352
- /**
353
- * 插入实际参数
354
- * @param argument 已有的实际参数实例
355
- */
356
- insertArgumentAt(argument: Argument, index: number): Argument;
357
-
358
- insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
359
- const node = this._insertArgumentAt(options as any, index);
360
- node.create({
361
- index,
362
- parentNode: this,
363
- parentKey: 'arguments',
364
- });
365
- return node;
366
- }
367
-
368
-
369
-
370
- /**
371
- * 添加实际参数
372
- * @internal
373
- * @param argumentOptions 实际参数参数
374
- */
375
- _addArgument(argumentOptions: Partial<Argument>): Argument;
376
-
377
- /**
378
- * 添加实际参数
379
- * @internal
380
- * @param argument 已有的实际参数实例
381
- */
382
- _addArgument(argument: Argument): Argument;
383
-
384
- _addArgument(options?: Partial<Argument> | Argument) {
385
- const index = this.arguments.length;
386
- return this._insertArgumentAt(options as any, index);
387
- }
388
-
389
-
390
-
391
- /**
392
- * 添加实际参数
393
- * @param argumentOptions 实际参数参数
394
- */
395
- addArgument(argumentOptions: Partial<Argument>): Argument;
396
-
397
- /**
398
- * 添加实际参数
399
- * @param argument 已有的实际参数实例
400
- */
401
- addArgument(argument: Argument): Argument;
402
-
403
- addArgument(options?: Partial<Argument> | Argument) {
404
- const node = this._addArgument(options as any);
405
- const index = this.arguments.indexOf(node);
406
- node.create({
407
- index,
408
- parentNode: this,
409
- parentKey: 'arguments',
410
- });
411
- return node;
412
- }
413
-
414
-
415
-
416
-
417
- /**
418
- * 删除逻辑
419
- * @param name 逻辑名称
420
- */
421
- removeLogic(name: string): void;
422
-
423
- /**
424
- * 删除逻辑
425
- * @param logic 已有的逻辑实例
426
- */
427
- removeLogic(logic: Logic): void;
428
647
 
429
- removeLogic(options: string | Logic) {
430
- let logic: Logic;
431
- if (typeof options === 'string') {
432
- logic = (this.logics as Logic[]).find((item) => item.name === options);
433
- if (!logic) {
434
- throw new Error('找不到逻辑 ' + options);
435
- }
436
- } else {
437
- logic = options;
648
+ logic.name = logic.name.replace(/-/g, '');
649
+ try {
650
+ code += logic.toEmbeddedTS(
651
+ shiftState(state, code, {
652
+ tabSize: (state?.tabSize || 0) + 2,
653
+ }),
654
+ 'noExport'
655
+ );
656
+ } finally {
657
+ // 翻译logic可能出错
658
+ logic.name = logicName;
438
659
  }
439
- return logic.delete();
660
+ } else {
661
+ code += logic.toEmbeddedTS(
662
+ shiftState(state, code, {
663
+ tabSize: (state?.tabSize || 0) + 2,
664
+ }),
665
+ 'noExport'
666
+ );
667
+ }
668
+
669
+ code += indent(state?.tabSize || 0);
670
+ code += ',\n';
671
+ });
672
+ if (this.view) code += '],\n';
673
+ else code += ']\n';
674
+ return code;
675
+ }
676
+
677
+ @withSourceMap()
678
+ toNaturalTS(state?: TranslatorState, isPageCycle?: Boolean): string {
679
+ // 如果有绑定的事件名
680
+ let code = ``;
681
+ if (isPageCycle) {
682
+ this.logics.forEach((logic, index) => {
683
+ const logicName = `on_view_${logic.name}${index}`;
684
+ // logic.name = logic.view.name + logic.name + index;
685
+ code += logic.toNaturalTS(shiftState(state, code, {
686
+ tabSize: state.tabSize,
687
+ }), 'noExport', logicName);
688
+
689
+ // logic.name = logicName;
690
+ // code += indent(state.tabSize);
691
+ // code += `${logicName}();\n`;
692
+ });
693
+ return code;
440
694
  }
441
-
442
- __removeLogic(logic: Logic) {
443
- const parentKey = logic.parentKey;
444
- const params: Params = {
445
- parentNode: this,
446
- parentKey,
447
- index: -1,
448
- object: null,
449
- oldObject: logic,
450
- };
451
- if (parentKey) {
452
- params.parentKey = parentKey;
453
- if (Array.isArray((this as any)[parentKey])) {
454
- const index = (this as any)[parentKey].indexOf(logic);
455
- ~index && (this as any)[parentKey].splice(index, 1);
456
- params.index = index;
457
- } else if ((this as any)[parentKey] === logic) {
458
- params.index = 0;
459
- (this as any)[parentKey] = undefined;
460
- }
695
+ // code = `${this.toHump(this.name) || '__IDENTIFIER__'}: (event: `;
696
+
697
+ // event的类型
698
+ // code += this.getEventTypeString();
699
+
700
+ // code += ') => [\n';
701
+ this.logics.forEach((logic) => {
702
+ // 一些默认的逻辑不翻译 排除掉
703
+ if (logic.name.startsWith('__')) {
704
+ return;
705
+ }
706
+ if (logic.view) {
707
+ const logicName = logic.name;
708
+ logic.name = `on_${(logic.parentNode as BindEvent).element.name}_${logic.name}`;
709
+ // logic.name = '__' + logic.view.name + (logic.parentNode as BindEvent).element.name + logic.name;
710
+ logic.name = logic.name.replace(/-/g, '');
711
+ try {
712
+ code += logic.toNaturalTS(shiftState(state, code, {
713
+ tabSize: state.tabSize,
714
+ }), 'noExport');
715
+ } finally {
716
+ // 翻译logic可能出错
717
+ logic.name = logicName;
461
718
  }
462
- return params;
719
+ } else {
720
+ code += logic.toNaturalTS(shiftState(state, code, {
721
+ tabSize: state.tabSize,
722
+ }), 'noExport');
723
+ }
724
+
725
+ code += indent(state.tabSize);
726
+ // code += ',\n';
727
+ });
728
+ // if (this.view)
729
+ // code += '],\n';
730
+ // else
731
+ // code += ']\n';
732
+ return code;
733
+ }
734
+
735
+ getEventTypeString() {
736
+ let code = '';
737
+ if (!Object.keys(elementsEventsMap).length) return;
738
+ // 已有的点击事件,已知类型的,就直接取值
739
+ if (
740
+ ['click', 'dblclick', 'contextmenu', 'mousedown', 'mouseup', 'mouseenter', 'mouseleave', 'focus', 'blur', 'keydown', 'keyup'].includes(
741
+ this.name
742
+ )
743
+ ) {
744
+ const eventInfo = elementsEventsMap[this.name];
745
+ const ref = eventInfo.params[0].schema.$ref;
746
+ const type = ref.replace('#/systemTypes/', 'nasl.ui.');
747
+ code = `${type}`;
748
+ } else {
749
+ code = 'nasl.ui.BaseEvent';
463
750
  }
464
751
 
465
-
466
-
467
- /**
468
- * 删除实际参数
469
- * @param argument 已有的实际参数实例
470
- */
471
- removeArgument(argument: Argument): void;
472
-
473
- removeArgument(options: Argument) {
474
- let argument: Argument = options;
475
- return argument.delete();
476
- }
477
-
478
- __removeLogicItem(logicItem: LogicItem) {
479
- const parentKey = logicItem.parentKey;
480
- const params: Params = {
481
- parentNode: this,
482
- parentKey,
483
- index: -1,
484
- object: null,
485
- oldObject: logicItem,
486
- };
487
- if (parentKey) {
488
- params.parentKey = parentKey;
489
- if (Array.isArray((this as any)[parentKey])) {
490
- const index = (this as any)[parentKey].indexOf(logicItem);
491
- ~index && (this as any)[parentKey].splice(index, 1);
492
- params.index = index;
493
- } else if ((this as any)[parentKey] === logicItem) {
494
- params.index = 0;
495
- (this as any)[parentKey] = undefined;
496
- }
752
+ // 组件上自己有类型的就覆盖掉,没有就用上面的类型
753
+ if (this.element && elementsEventsMap[`${this.element.tag}-${this.name}`]) {
754
+ const pageInfo = elementsEventsMap[`${this.element.tag}-${this.name}`];
755
+ const refParam = pageInfo.params && pageInfo.params.find((item: any) => item.schema);
756
+ if (refParam) {
757
+ const ref = refParam.schema.$ref;
758
+ let type = '';
759
+ if (ref.includes('systemTypes')) {
760
+ // 不要删除,用于转换类型
761
+ type = ref.replace('#/systemTypes/', 'nasl.ui.');
762
+ } else if (ref.includes('basicTypes')) {
763
+ // 不要删除,用于转换类型
764
+ type = ref.replace('#/basicTypes/', 'nasl.core.');
497
765
  }
498
- return params;
766
+ code = `${type}`;
767
+ }
499
768
  }
500
-
501
- //================================================================================
502
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
503
- // 自动生成的代码已结束。下面可以手动编写。
504
- //================================================================================
505
- get process() {
506
- return this.getAncestor('Process') as Process;
507
- }
508
-
509
- get tsCalleeNamespace() {
510
- if (this.calleeNamespace) {
511
- let tsCalleeNamespace = this.calleeNamespace;
512
- tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
513
- tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
514
- return tsCalleeNamespace;
515
- }
516
- return '';
769
+ return code;
770
+ }
771
+
772
+ // @withSourceMap()
773
+ // toObjectTS(state?: TranslatorState): string {
774
+ // let code = '';
775
+ // if (this.name) {
776
+ // code = `function ${this.name || '__IDENTIFIER__'} () {\n`;
777
+ // code += indent((state?.tabSize || 0) + 1);
778
+ // code += `${this.calleeKey}()`;
779
+ // code += '\n';
780
+ // code += indent((state?.tabSize || 0));
781
+ // code += '};\n';
782
+ // }
783
+ // return code;
784
+ // }
785
+
786
+ /**
787
+ * 设置callee
788
+ */
789
+ setCallee(logic: Logic) {
790
+ let calleeNamespace = logic.getNamespace();
791
+ if (logic.parentNode instanceof View) {
792
+ calleeNamespace = '';
517
793
  }
518
-
519
- get calleeKey(): string {
520
- const tsCalleeNamespace = this.tsCalleeNamespace;
521
- if (!tsCalleeNamespace) {
522
- return `${this.calleeName}`;
523
- }
524
- // elements单独处理相对路径,和后缀的问题
525
- if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
526
- const methodName = tsCalleeNamespace.substring(0, tsCalleeNamespace.length - '.logics'.length);
527
- return '__' + methodName + `.${this.calleeName}`;
528
- }
529
- return `${tsCalleeNamespace}.${this.calleeName}`;
794
+ const object = {
795
+ calleeNamespace,
796
+ calleeName: logic.name,
797
+ };
798
+ this.update({
799
+ ...object,
800
+ });
801
+ }
802
+
803
+ getNamespace(ns: string) {
804
+ if (this.view) return `${this.view.getNamespace()}.${this.view.name}.bindEvents.${this.name}.logics`;
805
+ if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
806
+ const parentNamespace = (this.parentNode as Namespace).getNamespace();
807
+ const parentName = this.parentNode.name;
808
+ const arr = [parentNamespace];
809
+ if (this.parentNode.concept !== 'App' && parentName) {
810
+ arr.push(parentName);
811
+ }
812
+ return `${arr.join('.')}.${ns || 'bindEvent'}`;
530
813
  }
531
- // 用于展示的value
532
- get randerValue() {
533
- const randerNameSpace = this.tsCalleeNamespace;
534
- if (!randerNameSpace) {
535
- return '' + this.calleeName;
536
- }
537
- // elements单独处理相对路径,和后缀的问题
538
- if (randerNameSpace.startsWith('elements') && randerNameSpace.endsWith('logics')) {
539
- const methodName = randerNameSpace.substring('elements.'.length, randerNameSpace.length);
540
- return '$refs.' + methodName + `.${this.calleeName}`;
814
+ throw new Error('无法获取命名空间,请设置 parentNode!');
815
+ }
816
+
817
+ /**
818
+ * 转换成 Vue 的模板格式
819
+ */
820
+ toVue(options?: ElementToVueOptions) {
821
+ let code = '';
822
+ if (this.logics?.length) {
823
+ code += `@${this.name}="`;
824
+ const argsList: string[] = [];
825
+ if (this.logics?.length) {
826
+ let parent = this.parentNode;
827
+ let index = 0;
828
+ while (parent && parent.concept !== 'View') {
829
+ if ((parent as ViewElement).slotScope) {
830
+ argsList.unshift(index === 0 ? 'current' : `current${index}`);
831
+ index++;
832
+ }
833
+ parent = parent.parentNode;
541
834
  }
542
- return `${randerNameSpace}.${this.calleeName}`;
543
- }
544
- // 绑定事件转驼峰
545
- toHump = (name: string) => (name ? name.replace(/\-(\w)/g, (all, letter) => letter.toUpperCase()) : '');
546
-
547
- toJS(state?: TranslatorState): string {
548
- // shiftState(state, code)
549
- let code = `async ${this.getViewEventName()} (`;
550
- const params = this.getContextLogicParams();
551
- code += params.map((item: Param) => item.name).toString();
552
- code += ') { \n';
553
- this.logics.forEach((logic) => {
554
- code += logic.toJS(shiftState(state, code), 'IIFE');
555
- });
556
- code += '}\n';
557
- return code;
835
+ argsList.unshift('$event');
836
+ }
837
+ code += this.getViewEventName();
838
+
839
+ code += '(';
840
+ argsList.forEach((arg, index) => {
841
+ code += arg;
842
+ if (index !== argsList.length - 1) code += ', ';
843
+ });
844
+ code += ')';
845
+
846
+ code += `"`;
558
847
  }
559
848
 
560
- @withSourceMap()
561
- toEmbeddedTS(state?: TranslatorState, isPageCycle?: Boolean): string {
562
- // 如果有绑定的事件名
563
- let code = ``;
564
- if (isPageCycle) {
565
- this.logics.forEach((logic, index) => {
566
- const logicName = logic.name;
567
- logic.name = logic.view.name + logic.name + index;
568
- code += logic.toEmbeddedTS(shiftState(state, code, {
569
- tabSize: (state?.tabSize || 0) + 2,
570
- }), 'noExport');
571
- code += indent((state?.tabSize || 0));
572
- code += `${logic.name}();\n`;
573
- logic.name = logicName;
574
- });
575
- return code;
849
+ return code;
850
+ }
851
+
852
+ // 获取bindEvent上的logic的参数从上文获取
853
+ getContextLogicParams() {
854
+ const argsList: string[] = [];
855
+ if (this.logics?.length) {
856
+ let parent = this.parentNode;
857
+ let index = 0;
858
+ while (parent && parent.concept !== 'View') {
859
+ if ((parent as ViewElement).slotScope) {
860
+ argsList.unshift(index === 0 ? 'current' : `current${index}`);
861
+ index++;
576
862
  }
577
- code = `${this.toHump(this.name) || '__IDENTIFIER__'}: (event: `;
578
-
579
- // event的类型
580
- code += this.getEventTypeString();
581
-
582
- code += ') => [\n';
583
- this.logics.forEach((logic) => {
584
- // 一些默认的逻辑不翻译 排除掉
585
- if (logic.name.startsWith('__')) {
586
- return;
587
- }
588
- if (logic.view) {
589
- const logicName = logic.name;
590
- logic.name = '__' + logic.view.name + (logic.parentNode as BindEvent).element.name + logic.name;
591
- logic.name = logic.name.replace(/-/g, '');
592
- try {
593
- code += logic.toEmbeddedTS(shiftState(state, code, {
594
- tabSize: (state?.tabSize || 0) + 2,
595
- }), 'noExport');
596
- } finally {
597
- // 翻译logic可能出错
598
- logic.name = logicName;
599
- }
600
- } else {
601
- code += logic.toEmbeddedTS(shiftState(state, code, {
602
- tabSize: (state?.tabSize || 0) + 2,
603
- }), 'noExport');
604
- }
605
-
606
- code += indent((state?.tabSize || 0));
607
- code += ',\n';
608
- });
609
- if (this.view)
610
- code += '],\n';
611
- else
612
- code += ']\n';
613
- return code;
863
+ parent = parent.parentNode;
864
+ }
865
+ argsList.unshift('event');
614
866
  }
615
-
616
- getEventTypeString() {
617
- let code = '';
618
- if (!Object.keys(elementsEventsMap).length)
619
- return;
620
- // 已有的点击事件,已知类型的,就直接取值
621
- if (['click', 'dblclick', 'contextmenu', 'mousedown', 'mouseup', 'mouseenter', 'mouseleave', 'focus', 'blur'].includes(this.name)) {
622
- const eventInfo = elementsEventsMap[this.name];
623
- const ref = eventInfo.params[0].schema.$ref;
624
- const type = ref.replace('#/systemTypes/', 'nasl.ui.');
625
- code = `${type}`;
626
- } else {
627
- code = 'nasl.ui.BaseEvent';
628
- }
629
-
630
- // 组件上自己有类型的就覆盖掉,没有就用上面的类型
631
- if (this.element && elementsEventsMap[`${this.element.tag}-${this.name}`]) {
632
- const pageInfo = elementsEventsMap[`${this.element.tag}-${this.name}`];
633
- const refParam = pageInfo.params && pageInfo.params.find((item: any) => item.schema);
634
- if (refParam) {
635
- const ref = refParam.schema.$ref;
636
- let type = '';
637
- if (ref.includes('systemTypes')) {
638
- // 不要删除,用于转换类型
639
- type = ref.replace('#/systemTypes/', 'nasl.ui.');
640
- } else if (ref.includes('basicTypes')) {
641
- // 不要删除,用于转换类型
642
- type = ref.replace('#/basicTypes/', 'nasl.core.');
643
- }
644
- code = `${type}`;
645
- }
867
+ return argsList.map((name: string) => new Param({ name }));
868
+ }
869
+
870
+ // 获取bindEvent上的logic的参数从上文获取
871
+ getContextRenderLogicParams(logic: Logic) {
872
+ const argsList: Param[] = [];
873
+ const { virtualParams } = logic;
874
+ if (this.logics?.length) {
875
+ let parent = this.parentNode;
876
+ let index = 0;
877
+ const event = Param.from({ name: 'event', typeAnnotation: null }, logic, 'virtualParams');
878
+ argsList.push(event);
879
+ while (parent && parent.concept !== 'View') {
880
+ if ((parent as ViewElement).slotScope) {
881
+ const param = Param.from({ name: index === 0 ? 'current' : `current${index}`, typeAnnotation: null }, logic, 'virtualParams');
882
+ argsList.push(param);
883
+ index++;
646
884
  }
647
- return code;
885
+ parent = parent.parentNode;
886
+ }
648
887
  }
649
-
650
- // @withSourceMap()
651
- // toObjectTS(state?: TranslatorState): string {
652
- // let code = '';
653
- // if (this.name) {
654
- // code = `function ${this.name || '__IDENTIFIER__'} () {\n`;
655
- // code += indent((state?.tabSize || 0) + 1);
656
- // code += `${this.calleeKey}()`;
657
- // code += '\n';
658
- // code += indent((state?.tabSize || 0));
659
- // code += '};\n';
660
- // }
661
- // return code;
662
- // }
663
-
664
- /**
665
- * 设置callee
666
- */
667
- setCallee(logic: Logic) {
668
- let calleeNamespace = logic.getNamespace();
669
- if (logic.parentNode instanceof View) {
670
- calleeNamespace = '';
888
+ let haveDifference = false;
889
+ // 如果长度一样
890
+ if (virtualParams.length === argsList.length) {
891
+ // 那就看一下每一项的名字是不是变了
892
+ for (let i = 0; i < virtualParams.length; i++) {
893
+ if (virtualParams[i].name !== argsList[i].name) {
894
+ haveDifference = true;
895
+ break;
671
896
  }
672
- const object = {
673
- calleeNamespace,
674
- calleeName: logic.name,
675
- };
676
- this.update({
677
- ...object,
678
- });
897
+ }
898
+ // 如果变了, 输出新的
899
+ if (haveDifference) {
900
+ return argsList;
901
+ }
902
+ // 如果没变,输出旧的不让树组件刷新
903
+ return virtualParams;
679
904
  }
680
-
681
- getNamespace(ns: string) {
682
- if (this.view)
683
- return `${this.view.getNamespace()}.${this.view.name}.bindEvents.${this.name}.logics`;
684
- if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
685
- const parentNamespace = (this.parentNode as Namespace).getNamespace();
686
- const parentName = this.parentNode.name;
687
- const arr = [parentNamespace];
688
- if (this.parentNode.concept !== 'App' && parentName) {
689
- arr.push(parentName);
690
- }
691
- return `${arr.join('.')}.${ns || 'bindEvent'}`;
692
- } else
693
- throw new Error('无法获取命名空间,请设置 parentNode!');
905
+ // 长度啥的都不一样,就输出新的
906
+ return argsList;
907
+ }
908
+
909
+ getPageViewEventChineseName() {
910
+ const parent = this.parentNode;
911
+ const suffixRE = /时|前|后$/;
912
+ if (parent instanceof View) {
913
+ const event = elementsEventsMap[this.name];
914
+
915
+ if (['keydown', 'keyup'].includes(event.name)) {
916
+ return `“${parent.title || parent.name}”页面${event.title}`;
917
+ }
918
+
919
+ const cap = suffixRE.exec(event?.title);
920
+ if (cap) return `${event.title.replace(suffixRE, '')}“${parent.title || parent.name}”页面${cap[0]}`;
921
+ return `${event.title}“${parent.title || parent.name}”页面`;
694
922
  }
695
- /**
696
- * 转换成 Vue 的模板格式
697
- */
698
- toVue(options?: ElementToVueOptions) {
699
- let code = '';
700
- if (this.logics?.length) {
701
- code += `@${this.name}="`;
702
- const argsList: string[] = [];
703
- if (this.logics?.length) {
704
- let parent = this.parentNode;
705
- let index = 0;
706
- while (parent && parent.concept !== 'View') {
707
- if ((parent as ViewElement).slotScope) {
708
- argsList.unshift(index === 0 ? 'current' : 'current' + index);
709
- index++;
710
- }
711
- parent = parent.parentNode;
712
- }
713
- argsList.unshift('$event');
714
- }
715
- code += this.getViewEventName();
716
-
717
- code += '(';
718
- argsList.forEach((arg, index) => {
719
- code += arg;
720
- if (index !== argsList.length - 1)
721
- code += ', ';
722
- });
723
- code += ')';
724
-
725
- code += `"`;
923
+ if (parent instanceof ViewElement) {
924
+ const eventName = `${parent.tag}-${this.name}`;
925
+ if (elementsEventsMap[eventName]) {
926
+ const event = elementsEventsMap[eventName];
927
+
928
+ let title = '';
929
+ const textChild = parent.children.find((item) => item.tag === 'u-text');
930
+ if (textChild) {
931
+ const bindAttr = textChild.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
932
+ if (bindAttr && bindAttr.type === 'string') title = bindAttr.value;
933
+ } else {
934
+ const bindAttr = parent.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
935
+ if (bindAttr && bindAttr.type === 'string') title = bindAttr.value;
726
936
  }
727
- return code;
728
- }
729
937
 
730
- // 获取bindEvent上的logic的参数从上文获取
731
- getContextLogicParams() {
732
- const argsList: string[] = [];
733
- if (this.logics?.length) {
734
- let parent = this.parentNode;
735
- let index = 0;
736
- while (parent && parent.concept !== 'View') {
737
- if ((parent as ViewElement).slotScope) {
738
- argsList.unshift(index === 0 ? 'current' : 'current' + index);
739
- index++;
740
- }
741
- parent = parent.parentNode;
742
- }
743
- argsList.unshift('event');
938
+ const cap = suffixRE.exec(event?.title);
939
+ if (cap) return `${event.title.replace(suffixRE, '')}${title ? `“${title}”` : ''}${parent.name}${cap[0]}`;
940
+ return `${event.title}${title ? `“${title}”` : ''}${parent.name}`;
941
+ }
942
+ if (['click', 'dblclick', 'contextmenu', 'mousedown', 'mouseup', 'mouseenter', 'mouseleave', 'focus', 'blur'].includes(this.name)) {
943
+ const event = elementsEventsMap[this.name];
944
+
945
+ let title = '';
946
+ const textChild = parent.children.find((item) => item.tag === 'u-text');
947
+ if (textChild) {
948
+ const bindAttr = textChild.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
949
+ if (bindAttr && bindAttr.type === 'string') title = bindAttr.value;
950
+ } else {
951
+ const bindAttr = parent.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
952
+ if (bindAttr && bindAttr.type === 'string') title = bindAttr.value;
744
953
  }
745
- return argsList.map((name: string) => new Param({ name }));
746
- }
747
954
 
748
- // 获取bindEvent上的logic的参数从上文获取
749
- getContextRenderLogicParams(logic: Logic) {
750
- const argsList: Param[] = [];
751
- const virtualParams = logic.virtualParams;
752
- if (this.logics?.length) {
753
- let parent = this.parentNode;
754
- let index = 0;
755
- const event = Param.from({ name: 'event', typeAnnotation: null }, logic, 'virtualParams');
756
- argsList.push(event);
757
- while (parent && parent.concept !== 'View') {
758
- if ((parent as ViewElement).slotScope) {
759
- const param = Param.from({ name: index === 0 ? 'current' : 'current' + index, typeAnnotation: null }, logic, 'virtualParams');
760
- argsList.push(param);
761
- index++;
762
- }
763
- parent = parent.parentNode;
764
- }
765
- }
766
- let haveDifference = false;
767
- // 如果长度一样
768
- if (virtualParams.length === argsList.length) {
769
- // 那就看一下每一项的名字是不是变了
770
- for (let i = 0; i < virtualParams.length; i++) {
771
- if (virtualParams[i].name !== argsList[i].name) {
772
- haveDifference = true;
773
- break;
774
- }
775
- }
776
- // 如果变了, 输出新的
777
- if (haveDifference) {
778
- return argsList;
779
- }
780
- // 如果没变,输出旧的不让树组件刷新
781
- return virtualParams;
782
- }
783
- // 长度啥的都不一样,就输出新的
784
- return argsList;
955
+ const cap = suffixRE.exec(event?.title);
956
+ if (cap) return `${event.title.replace(suffixRE, '')}${title ? `“${title}”` : ''}${parent.name}${cap[0]}`;
957
+ return `${event.title}${title ? `“${title}”` : ''}${parent.name}`;
958
+ }
959
+ return `${parent.name}-${this.name}`;
785
960
  }
961
+ }
786
962
 
787
- getPageViewEventChineseName() {
788
- const parent = this.parentNode;
789
- const suffixRE = /时|前|后$/;
790
- if (parent instanceof View) {
791
- const event = elementsEventsMap[this.name];
792
- const cap = suffixRE.exec(event?.title);
793
- if (cap)
794
- return `${event.title.replace(suffixRE, '')}“${parent.title || parent.name}”页面${cap[0]}`;
795
- else
796
- return `${event.title}“${parent.title || parent.name}”页面`;
797
- } else if (parent instanceof ViewElement) {
798
- const eventName = `${parent.tag}-${this.name}`;
799
- if (elementsEventsMap[eventName]) {
800
- const event = elementsEventsMap[eventName];
801
-
802
- let title = '';
803
- const textChild = parent.children.find((item) => item.tag === 'u-text');
804
- if (textChild) {
805
- const bindAttr = textChild.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
806
- if (bindAttr && bindAttr.type === 'string')
807
- title = bindAttr.value;
808
- } else {
809
- const bindAttr = parent.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
810
- if (bindAttr && bindAttr.type === 'string')
811
- title = bindAttr.value;
812
- }
813
-
814
- const cap = suffixRE.exec(event?.title);
815
- if (cap)
816
- return `${event.title.replace(suffixRE, '')}${title ? `“${title}”` : ''}${parent.name}${cap[0]}`;
817
- else
818
- return `${event.title}${title ? `“${title}”` : ''}${parent.name}`;
819
- } else if (['click', 'dblclick', 'contextmenu', 'mousedown', 'mouseup', 'mouseenter', 'mouseleave', 'focus', 'blur'].includes(this.name)) {
820
- const event = elementsEventsMap[this.name];
821
-
822
- let title = '';
823
- const textChild = parent.children.find((item) => item.tag === 'u-text');
824
- if (textChild) {
825
- const bindAttr = textChild.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
826
- if (bindAttr && bindAttr.type === 'string')
827
- title = bindAttr.value;
828
- } else {
829
- const bindAttr = parent.bindAttrs.find((bindAttr) => bindAttr.name === 'text' || bindAttr.name === 'title' || bindAttr.name === 'label');
830
- if (bindAttr && bindAttr.type === 'string')
831
- title = bindAttr.value;
832
- }
833
-
834
- const cap = suffixRE.exec(event?.title);
835
- if (cap)
836
- return `${event.title.replace(suffixRE, '')}${title ? `“${title}”` : ''}${parent.name}${cap[0]}`;
837
- else
838
- return `${event.title}${title ? `“${title}”` : ''}${parent.name}`;
839
- }
840
- return `${parent.name}-${this.name}`;
841
- }
963
+ getViewEventChineseName() {
964
+ const parent = this.parentNode;
965
+ if (parent instanceof View) {
966
+ const event = elementsEventsMap[this.name];
967
+ return `${event.title}`;
842
968
  }
843
-
844
- getViewEventChineseName() {
845
- const parent = this.parentNode;
846
- if (parent instanceof View) {
847
- const event = elementsEventsMap[this.name];
848
- return `${event.title}`;
849
- } else if (parent instanceof ViewElement) {
850
- const eventName = `${parent.tag}-${this.name}`;
851
- if (elementsEventsMap[eventName]) {
852
- const event = elementsEventsMap[eventName];
853
- return `${event.title}`;
854
- } else if (['click', 'dblclick', 'contextmenu', 'mousedown', 'mouseup', 'mouseenter', 'mouseleave', 'focus', 'blur'].includes(this.name)) {
855
- const event = elementsEventsMap[this.name];
856
- return `${event.title}`;
857
- }
858
- return `${this.name}`;
859
- }
969
+ if (parent instanceof ViewElement) {
970
+ const eventName = `${parent.tag}-${this.name}`;
971
+ if (elementsEventsMap[eventName]) {
972
+ const event = elementsEventsMap[eventName];
973
+ return `${event.title}`;
974
+ }
975
+ if (['click', 'dblclick', 'contextmenu', 'mousedown', 'mouseup', 'mouseenter', 'mouseleave', 'focus', 'blur'].includes(this.name)) {
976
+ const event = elementsEventsMap[this.name];
977
+ return `${event.title}`;
978
+ }
979
+ return `${this.name}`;
860
980
  }
861
- getViewEventName() {
862
- // 名称规则:组件的名称 + 组件的事件 + 逻辑本身的事件 用下划线链接
863
- const parentNode = this.parentNode;
864
- const newName = this.name.replace(/-/g, '');
865
- if (parentNode instanceof ViewElement) {
866
- return `${parentNode.name}_${newName}`;
867
- } else if (parentNode instanceof View) {
868
- return `${this.view.name}_${newName}`;
869
- } else {
870
- // 这里编译成这个名字了 后续pctemplate 里也得按这个调用?
871
- // 或者说因为会编译在不同的端里 直接 name好了
872
- // return `${this.parentNode.name}_${newName}`;
873
- return newName;
874
- }
981
+ }
982
+
983
+ getViewEventName() {
984
+ // 名称规则:组件的名称 + 组件的事件 + 逻辑本身的事件 用下划线链接
985
+ const { parentNode } = this;
986
+ const newName = this.name.replace(/-/g, '');
987
+ if (parentNode instanceof ViewElement) {
988
+ return `${parentNode.name}_${newName}`;
875
989
  }
876
- toFunction(state?: TranslatorState): string {
877
- // shiftState(state, code)
878
- // 和 toJS一样的 只是下一行增加了 function 关键字
879
- // let code = `async function ${this.getViewEventName()} (`;
880
- let code = `window.${this.getViewEventName()} = async (`;
881
- const params = this.getContextLogicParams();
882
- code += params.map((item: Param) => item.name).toString();
883
- // code += ') { \n';
884
- code += ') => { \n';
885
- this.logics.forEach((logic) => {
886
- code += logic.toJS(shiftState(state, code), 'IIFE');
887
- });
888
- code += '}\n';
889
- return code;
990
+ if (parentNode instanceof View) {
991
+ return `${this.view.name}_${newName}`;
890
992
  }
891
- getTsNamespace() {
892
- if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
893
- const parentNamespace = (this.parentNode as Namespace).getNamespace();
894
- const parentName = this.parentNode.name;
895
- const arr = [parentNamespace];
896
-
897
- if (this.parentNode.concept !== 'App' && parentName) {
898
- arr.push(parentName);
899
- }
900
- return `${arr.join('.')}.bindEvents`;
901
- } else
902
- throw new Error('无法获取命名空间,请设置 parentNode!');
993
+ // 这里编译成这个名字了 后续pctemplate 里也得按这个调用?
994
+ // 或者说因为会编译在不同的端里 直接 name好了
995
+ // return `${this.parentNode.name}_${newName}`;
996
+ return newName;
997
+ }
998
+
999
+ toFunction(state?: TranslatorState): string {
1000
+ // shiftState(state, code)
1001
+ // 和 toJS一样的 只是下一行增加了 function 关键字
1002
+ // let code = `async function ${this.getViewEventName()} (`;
1003
+ let code = `window.${this.getViewEventName()} = async (`;
1004
+ const params = this.getContextLogicParams();
1005
+ code += params.map((item: Param) => item.name).toString();
1006
+ // code += ') { \n';
1007
+ code += ') => { \n';
1008
+ this.logics.forEach((logic) => {
1009
+ code += logic.toJS(shiftState(state, code), 'IIFE');
1010
+ });
1011
+ code += '}\n';
1012
+ return code;
1013
+ }
1014
+
1015
+ getTsNamespace() {
1016
+ if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
1017
+ const parentNamespace = (this.parentNode as Namespace).getNamespace();
1018
+ const parentName = this.parentNode.name;
1019
+ const arr = [parentNamespace];
1020
+
1021
+ if (this.parentNode.concept !== 'App' && parentName) {
1022
+ arr.push(parentName);
1023
+ }
1024
+ return `${arr.join('.')}.bindEvents`;
903
1025
  }
904
- toEmbeddedTSFile() {
905
- let code = `namespace ${this.getTsNamespace()} {\n`;
906
- const state = createCompilerState(code, {
907
- tabSize: 1,
908
- });
909
-
910
- try {
911
- code += this.toEmbeddedTS(state);
912
- } catch (err) {
913
- code += '';
914
- console.log(err);
915
- }
916
-
917
- code += '}\n';
918
-
919
- return {
920
- code,
921
- filePath: this.getEmbeddedFilePath(),
922
- sourceMap: state.sourceMap,
923
- };
1026
+ throw new Error('无法获取命名空间,请设置 parentNode!');
1027
+ }
1028
+
1029
+ toEmbeddedTSFile() {
1030
+ let code = `namespace ${this.getTsNamespace()} {\n`;
1031
+ const state = createCompilerState(code, {
1032
+ tabSize: 1,
1033
+ });
1034
+
1035
+ try {
1036
+ code += this.toEmbeddedTS(state);
1037
+ } catch (err) {
1038
+ code += '';
1039
+ console.log(err);
924
1040
  }
925
- /**
926
- * 生成宿主语言的文件路径
927
- * @param name 一般不用传,用于 rename
928
- */
929
- getEmbeddedFilePath(name = this.name) {
930
- let pathName = name;
931
- let parent = this.parentNode;
932
- if (parent) {
933
- while (parent && parent instanceof View) {
934
- pathName = parent.name + '/' + pathName;
935
- parent = parent.parentNode;
936
- }
937
- }
938
- return `/embedded/${this.app.name}/frontends/${this.frontend.name}/bindEvents/${pathName}.ts`;
1041
+
1042
+ code += '}\n';
1043
+
1044
+ return {
1045
+ code,
1046
+ filePath: this.getEmbeddedFilePath(),
1047
+ sourceMap: state.sourceMap,
1048
+ };
1049
+ }
1050
+
1051
+ /**
1052
+ * 生成宿主语言的文件路径
1053
+ * @param name 一般不用传,用于 rename
1054
+ */
1055
+ getEmbeddedFilePath(name = this.name) {
1056
+ let pathName = name;
1057
+ let parent = this.parentNode;
1058
+ if (parent) {
1059
+ while (parent && parent instanceof View) {
1060
+ pathName = `${parent.name}/${pathName}`;
1061
+ parent = parent.parentNode;
1062
+ }
939
1063
  }
1064
+ return `/embedded/${this.app.name}/frontends/${this.frontend.name}/bindEvents/${pathName}.ts`;
1065
+ }
940
1066
 
941
- //================================================================================
942
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
943
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
944
- //================================================================================
1067
+ //= ===============================================================================
1068
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1069
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1070
+ //= ===============================================================================
945
1071
  }
946
1072
 
947
1073
  classMap.BindEvent = BindEvent;
948
1074
  export default BindEvent;
949
- //================================================================================
1075
+ //= ===============================================================================
950
1076
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
951
1077
  // 自动生成的代码已结束。下面可以手动编写。
952
- //================================================================================
1078
+ //= ===============================================================================