@lcap/nasl 3.3.3-beta.6 → 3.3.3-beta.7

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 (591) hide show
  1. package/out/bak/translator.js +73 -15
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/common/BaseNode.d.ts +11 -0
  4. package/out/common/BaseNode.js +51 -0
  5. package/out/common/BaseNode.js.map +1 -1
  6. package/out/common/index.d.ts +1 -0
  7. package/out/common/index.js +1 -0
  8. package/out/common/index.js.map +1 -1
  9. package/out/common/utils.d.ts +2 -0
  10. package/out/common/utils.js +18 -0
  11. package/out/common/utils.js.map +1 -0
  12. package/out/concepts/Abort__.d.ts +2 -2
  13. package/out/concepts/Abort__.js +6 -2
  14. package/out/concepts/Abort__.js.map +1 -1
  15. package/out/concepts/Anchor__.d.ts +2 -2
  16. package/out/concepts/Anchor__.js +11 -7
  17. package/out/concepts/Anchor__.js.map +1 -1
  18. package/out/concepts/AnonymousFunction__.d.ts +3 -3
  19. package/out/concepts/AnonymousFunction__.js +37 -23
  20. package/out/concepts/AnonymousFunction__.js.map +1 -1
  21. package/out/concepts/App__.js +137 -69
  22. package/out/concepts/App__.js.map +1 -1
  23. package/out/concepts/Argument__.d.ts +2 -2
  24. package/out/concepts/Argument__.js +18 -13
  25. package/out/concepts/Argument__.js.map +1 -1
  26. package/out/concepts/Assignee__.d.ts +2 -2
  27. package/out/concepts/Assignee__.js +31 -19
  28. package/out/concepts/Assignee__.js.map +1 -1
  29. package/out/concepts/AssignmentLine__.d.ts +2 -2
  30. package/out/concepts/AssignmentLine__.js +3 -2
  31. package/out/concepts/AssignmentLine__.js.map +1 -1
  32. package/out/concepts/Assignment__.d.ts +2 -2
  33. package/out/concepts/Assignment__.js +16 -12
  34. package/out/concepts/Assignment__.js.map +1 -1
  35. package/out/concepts/Attribute__.js +6 -3
  36. package/out/concepts/Attribute__.js.map +1 -1
  37. package/out/concepts/AuthLogicForCallInterface__.d.ts +2 -2
  38. package/out/concepts/AuthLogicForCallInterface__.js +62 -78
  39. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  40. package/out/concepts/BackendVariable__.d.ts +5 -8
  41. package/out/concepts/BackendVariable__.js +23 -18
  42. package/out/concepts/BackendVariable__.js.map +1 -1
  43. package/out/concepts/Backend__.d.ts +4 -7
  44. package/out/concepts/Backend__.js +16 -11
  45. package/out/concepts/Backend__.js.map +1 -1
  46. package/out/concepts/BatchAssignment__.d.ts +2 -2
  47. package/out/concepts/BatchAssignment__.js +30 -22
  48. package/out/concepts/BatchAssignment__.js.map +1 -1
  49. package/out/concepts/BinaryExpression__.d.ts +2 -2
  50. package/out/concepts/BinaryExpression__.js +30 -18
  51. package/out/concepts/BinaryExpression__.js.map +1 -1
  52. package/out/concepts/BindAttribute__.d.ts +10 -4
  53. package/out/concepts/BindAttribute__.js +144 -43
  54. package/out/concepts/BindAttribute__.js.map +1 -1
  55. package/out/concepts/BindDirective__.d.ts +2 -2
  56. package/out/concepts/BindDirective__.js +16 -11
  57. package/out/concepts/BindDirective__.js.map +1 -1
  58. package/out/concepts/BindEvent__.d.ts +4 -7
  59. package/out/concepts/BindEvent__.js +32 -24
  60. package/out/concepts/BindEvent__.js.map +1 -1
  61. package/out/concepts/BindStyle__.d.ts +2 -2
  62. package/out/concepts/BindStyle__.js +15 -10
  63. package/out/concepts/BindStyle__.js.map +1 -1
  64. package/out/concepts/BooleanLiteral__.d.ts +2 -2
  65. package/out/concepts/BooleanLiteral__.js +2 -2
  66. package/out/concepts/BooleanLiteral__.js.map +1 -1
  67. package/out/concepts/CallAuthInterface__.d.ts +2 -2
  68. package/out/concepts/CallAuthInterface__.js +36 -31
  69. package/out/concepts/CallAuthInterface__.js.map +1 -1
  70. package/out/concepts/CallConnector__.d.ts +2 -2
  71. package/out/concepts/CallConnector__.js +25 -23
  72. package/out/concepts/CallConnector__.js.map +1 -1
  73. package/out/concepts/CallFunction__.d.ts +2 -2
  74. package/out/concepts/CallFunction__.js +31 -22
  75. package/out/concepts/CallFunction__.js.map +1 -1
  76. package/out/concepts/CallInterface__.d.ts +2 -2
  77. package/out/concepts/CallInterface__.js +20 -29
  78. package/out/concepts/CallInterface__.js.map +1 -1
  79. package/out/concepts/CallLogic__.d.ts +2 -3
  80. package/out/concepts/CallLogic__.js +47 -50
  81. package/out/concepts/CallLogic__.js.map +1 -1
  82. package/out/concepts/CallQueryComponent__.d.ts +4 -4
  83. package/out/concepts/CallQueryComponent__.js +50 -42
  84. package/out/concepts/CallQueryComponent__.js.map +1 -1
  85. package/out/concepts/Comment__.d.ts +2 -2
  86. package/out/concepts/Comment__.js +3 -2
  87. package/out/concepts/Comment__.js.map +1 -1
  88. package/out/concepts/CompletionProperty__.js +6 -3
  89. package/out/concepts/CompletionProperty__.js.map +1 -1
  90. package/out/concepts/ConfigGroup__.js +6 -3
  91. package/out/concepts/ConfigGroup__.js.map +1 -1
  92. package/out/concepts/ConfigProperty__.d.ts +4 -7
  93. package/out/concepts/ConfigProperty__.js +18 -13
  94. package/out/concepts/ConfigProperty__.js.map +1 -1
  95. package/out/concepts/Configuration__.js +6 -3
  96. package/out/concepts/Configuration__.js.map +1 -1
  97. package/out/concepts/Connection__.d.ts +4 -7
  98. package/out/concepts/Connection__.js +12 -8
  99. package/out/concepts/Connection__.js.map +1 -1
  100. package/out/concepts/Connector__.js +30 -15
  101. package/out/concepts/Connector__.js.map +1 -1
  102. package/out/concepts/Constant__.d.ts +3 -3
  103. package/out/concepts/Constant__.js +18 -13
  104. package/out/concepts/Constant__.js.map +1 -1
  105. package/out/concepts/DataSource__.d.ts +4 -7
  106. package/out/concepts/DataSource__.js +13 -9
  107. package/out/concepts/DataSource__.js.map +1 -1
  108. package/out/concepts/Destination__.d.ts +3 -3
  109. package/out/concepts/Destination__.js +35 -29
  110. package/out/concepts/Destination__.js.map +1 -1
  111. package/out/concepts/End__.d.ts +2 -2
  112. package/out/concepts/End__.js +17 -13
  113. package/out/concepts/End__.js.map +1 -1
  114. package/out/concepts/EntityIndex__.d.ts +2 -2
  115. package/out/concepts/EntityIndex__.js +4 -3
  116. package/out/concepts/EntityIndex__.js.map +1 -1
  117. package/out/concepts/EntityProperty__.d.ts +2 -2
  118. package/out/concepts/EntityProperty__.js +22 -15
  119. package/out/concepts/EntityProperty__.js.map +1 -1
  120. package/out/concepts/Entity__.d.ts +4 -7
  121. package/out/concepts/Entity__.js +29 -21
  122. package/out/concepts/Entity__.js.map +1 -1
  123. package/out/concepts/EnumItem__.d.ts +2 -2
  124. package/out/concepts/EnumItem__.js +4 -3
  125. package/out/concepts/EnumItem__.js.map +1 -1
  126. package/out/concepts/Enum__.d.ts +4 -7
  127. package/out/concepts/Enum__.js +16 -11
  128. package/out/concepts/Enum__.js.map +1 -1
  129. package/out/concepts/Event__.js +6 -3
  130. package/out/concepts/Event__.js.map +1 -1
  131. package/out/concepts/ExternalDestination__.d.ts +2 -2
  132. package/out/concepts/ExternalDestination__.js +13 -8
  133. package/out/concepts/ExternalDestination__.js.map +1 -1
  134. package/out/concepts/ForEachStatement__.d.ts +2 -2
  135. package/out/concepts/ForEachStatement__.js +26 -18
  136. package/out/concepts/ForEachStatement__.js.map +1 -1
  137. package/out/concepts/FrontendLibrary__.js +18 -10
  138. package/out/concepts/FrontendLibrary__.js.map +1 -1
  139. package/out/concepts/Frontend__.d.ts +4 -7
  140. package/out/concepts/Frontend__.js +37 -21
  141. package/out/concepts/Frontend__.js.map +1 -1
  142. package/out/concepts/Function__.d.ts +3 -3
  143. package/out/concepts/Function__.js +52 -33
  144. package/out/concepts/Function__.js.map +1 -1
  145. package/out/concepts/Identifier__.d.ts +2 -2
  146. package/out/concepts/Identifier__.js +19 -18
  147. package/out/concepts/Identifier__.js.map +1 -1
  148. package/out/concepts/IfStatement__.d.ts +2 -2
  149. package/out/concepts/IfStatement__.js +18 -13
  150. package/out/concepts/IfStatement__.js.map +1 -1
  151. package/out/concepts/Integration__.js +17 -9
  152. package/out/concepts/Integration__.js.map +1 -1
  153. package/out/concepts/InterfaceParam__.d.ts +2 -2
  154. package/out/concepts/InterfaceParam__.js +12 -8
  155. package/out/concepts/InterfaceParam__.js.map +1 -1
  156. package/out/concepts/Interface__.d.ts +4 -7
  157. package/out/concepts/Interface__.js +44 -33
  158. package/out/concepts/Interface__.js.map +1 -1
  159. package/out/concepts/JSBlock__.d.ts +2 -2
  160. package/out/concepts/JSBlock__.js +3 -2
  161. package/out/concepts/JSBlock__.js.map +1 -1
  162. package/out/concepts/JavaLogic__.d.ts +2 -2
  163. package/out/concepts/JavaLogic__.js +6 -2
  164. package/out/concepts/JavaLogic__.js.map +1 -1
  165. package/out/concepts/LogicItem__.d.ts +2 -2
  166. package/out/concepts/LogicItem__.js +7 -3
  167. package/out/concepts/LogicItem__.js.map +1 -1
  168. package/out/concepts/Logic__.d.ts +8 -11
  169. package/out/concepts/Logic__.js +141 -136
  170. package/out/concepts/Logic__.js.map +1 -1
  171. package/out/concepts/MatchCase__.d.ts +2 -2
  172. package/out/concepts/MatchCase__.js +35 -27
  173. package/out/concepts/MatchCase__.js.map +1 -1
  174. package/out/concepts/Match__.d.ts +2 -2
  175. package/out/concepts/Match__.js +29 -24
  176. package/out/concepts/Match__.js.map +1 -1
  177. package/out/concepts/MemberExpression__.d.ts +2 -2
  178. package/out/concepts/MemberExpression__.js +34 -27
  179. package/out/concepts/MemberExpression__.js.map +1 -1
  180. package/out/concepts/MetadataType__.d.ts +4 -7
  181. package/out/concepts/MetadataType__.js +23 -15
  182. package/out/concepts/MetadataType__.js.map +1 -1
  183. package/out/concepts/MsgTriggerEvent__.js +6 -3
  184. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  185. package/out/concepts/MsgTriggerLauncher__.js +6 -3
  186. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  187. package/out/concepts/Namespace__.js +66 -33
  188. package/out/concepts/Namespace__.js.map +1 -1
  189. package/out/concepts/NewComposite__.d.ts +5 -5
  190. package/out/concepts/NewComposite__.js +95 -82
  191. package/out/concepts/NewComposite__.js.map +1 -1
  192. package/out/concepts/NewList__.d.ts +5 -5
  193. package/out/concepts/NewList__.js +42 -32
  194. package/out/concepts/NewList__.js.map +1 -1
  195. package/out/concepts/NewMap__.d.ts +4 -4
  196. package/out/concepts/NewMap__.js +51 -41
  197. package/out/concepts/NewMap__.js.map +1 -1
  198. package/out/concepts/New__.d.ts +2 -2
  199. package/out/concepts/New__.js +3 -2
  200. package/out/concepts/New__.js.map +1 -1
  201. package/out/concepts/NullLiteral__.d.ts +2 -2
  202. package/out/concepts/NullLiteral__.js +2 -2
  203. package/out/concepts/NullLiteral__.js.map +1 -1
  204. package/out/concepts/NumericLiteral__.d.ts +2 -2
  205. package/out/concepts/NumericLiteral__.js +12 -7
  206. package/out/concepts/NumericLiteral__.js.map +1 -1
  207. package/out/concepts/OqlQueryComponent__.d.ts +2 -2
  208. package/out/concepts/OqlQueryComponent__.js +22 -17
  209. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  210. package/out/concepts/OverriddenLogic__.d.ts +8 -11
  211. package/out/concepts/OverriddenLogic__.js +135 -130
  212. package/out/concepts/OverriddenLogic__.js.map +1 -1
  213. package/out/concepts/Param__.d.ts +3 -3
  214. package/out/concepts/Param__.js +29 -24
  215. package/out/concepts/Param__.js.map +1 -1
  216. package/out/concepts/ProcessComponent__.js +12 -6
  217. package/out/concepts/ProcessComponent__.js.map +1 -1
  218. package/out/concepts/ProcessElement__.d.ts +2 -2
  219. package/out/concepts/ProcessElement__.js +92 -66
  220. package/out/concepts/ProcessElement__.js.map +1 -1
  221. package/out/concepts/ProcessOutcome__.d.ts +2 -1
  222. package/out/concepts/ProcessOutcome__.js +5 -4
  223. package/out/concepts/ProcessOutcome__.js.map +1 -1
  224. package/out/concepts/ProcessOutcomes__.d.ts +2 -1
  225. package/out/concepts/ProcessOutcomes__.js +6 -5
  226. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  227. package/out/concepts/Process__.d.ts +4 -7
  228. package/out/concepts/Process__.js +51 -34
  229. package/out/concepts/Process__.js.map +1 -1
  230. package/out/concepts/QueryAggregateExpression__.d.ts +2 -2
  231. package/out/concepts/QueryAggregateExpression__.js +8 -5
  232. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  233. package/out/concepts/QueryFieldExpression__.d.ts +2 -2
  234. package/out/concepts/QueryFieldExpression__.js +5 -4
  235. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  236. package/out/concepts/QueryFromExpression__.d.ts +2 -2
  237. package/out/concepts/QueryFromExpression__.js +14 -9
  238. package/out/concepts/QueryFromExpression__.js.map +1 -1
  239. package/out/concepts/QueryGroupByExpression__.d.ts +2 -1
  240. package/out/concepts/QueryGroupByExpression__.js +12 -8
  241. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  242. package/out/concepts/QueryJoinExpression__.d.ts +2 -2
  243. package/out/concepts/QueryJoinExpression__.js +18 -13
  244. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  245. package/out/concepts/QueryLimitExpression__.d.ts +2 -2
  246. package/out/concepts/QueryLimitExpression__.js +12 -8
  247. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  248. package/out/concepts/QueryOrderByExpression__.d.ts +2 -2
  249. package/out/concepts/QueryOrderByExpression__.js +12 -8
  250. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  251. package/out/concepts/QuerySelectExpression__.js +6 -3
  252. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  253. package/out/concepts/Return__.d.ts +3 -3
  254. package/out/concepts/Return__.js +21 -16
  255. package/out/concepts/Return__.js.map +1 -1
  256. package/out/concepts/Role__.d.ts +4 -7
  257. package/out/concepts/Role__.js +7 -6
  258. package/out/concepts/Role__.js.map +1 -1
  259. package/out/concepts/SelectMembers__.d.ts +2 -2
  260. package/out/concepts/SelectMembers__.js +9 -5
  261. package/out/concepts/SelectMembers__.js.map +1 -1
  262. package/out/concepts/Slot__.js +6 -3
  263. package/out/concepts/Slot__.js.map +1 -1
  264. package/out/concepts/SqlQueryComponent__.d.ts +2 -2
  265. package/out/concepts/SqlQueryComponent__.js +18 -13
  266. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  267. package/out/concepts/Start__.d.ts +2 -2
  268. package/out/concepts/Start__.js +2 -2
  269. package/out/concepts/Start__.js.map +1 -1
  270. package/out/concepts/StringInterpolation__.d.ts +2 -2
  271. package/out/concepts/StringInterpolation__.js +13 -8
  272. package/out/concepts/StringInterpolation__.js.map +1 -1
  273. package/out/concepts/StringLiteral__.d.ts +2 -2
  274. package/out/concepts/StringLiteral__.js +4 -3
  275. package/out/concepts/StringLiteral__.js.map +1 -1
  276. package/out/concepts/StructureProperty__.d.ts +2 -2
  277. package/out/concepts/StructureProperty__.js +14 -10
  278. package/out/concepts/StructureProperty__.js.map +1 -1
  279. package/out/concepts/Structure__.d.ts +4 -7
  280. package/out/concepts/Structure__.js +22 -14
  281. package/out/concepts/Structure__.js.map +1 -1
  282. package/out/concepts/SwitchCase__.d.ts +2 -2
  283. package/out/concepts/SwitchCase__.js +18 -13
  284. package/out/concepts/SwitchCase__.js.map +1 -1
  285. package/out/concepts/SwitchStatement__.d.ts +2 -2
  286. package/out/concepts/SwitchStatement__.js +14 -9
  287. package/out/concepts/SwitchStatement__.js.map +1 -1
  288. package/out/concepts/TriggerEvent__.js +6 -3
  289. package/out/concepts/TriggerEvent__.js.map +1 -1
  290. package/out/concepts/TriggerLauncher__.d.ts +4 -7
  291. package/out/concepts/TriggerLauncher__.js +7 -6
  292. package/out/concepts/TriggerLauncher__.js.map +1 -1
  293. package/out/concepts/TypeAnnotation__.d.ts +2 -2
  294. package/out/concepts/TypeAnnotation__.js +61 -29
  295. package/out/concepts/TypeAnnotation__.js.map +1 -1
  296. package/out/concepts/TypeParam__.d.ts +2 -2
  297. package/out/concepts/TypeParam__.js +4 -3
  298. package/out/concepts/TypeParam__.js.map +1 -1
  299. package/out/concepts/UnaryExpression__.d.ts +2 -2
  300. package/out/concepts/UnaryExpression__.js +18 -10
  301. package/out/concepts/UnaryExpression__.js.map +1 -1
  302. package/out/concepts/Unparsed__.d.ts +2 -1
  303. package/out/concepts/Unparsed__.js +2 -2
  304. package/out/concepts/Unparsed__.js.map +1 -1
  305. package/out/concepts/ValidationRule__.d.ts +2 -2
  306. package/out/concepts/ValidationRule__.js +17 -12
  307. package/out/concepts/ValidationRule__.js.map +1 -1
  308. package/out/concepts/Variable__.d.ts +5 -8
  309. package/out/concepts/Variable__.js +23 -18
  310. package/out/concepts/Variable__.js.map +1 -1
  311. package/out/concepts/ViewElement__.d.ts +7 -6
  312. package/out/concepts/ViewElement__.js +139 -101
  313. package/out/concepts/ViewElement__.js.map +1 -1
  314. package/out/concepts/View__.d.ts +8 -9
  315. package/out/concepts/View__.js +73 -62
  316. package/out/concepts/View__.js.map +1 -1
  317. package/out/concepts/WhileStatement__.d.ts +2 -2
  318. package/out/concepts/WhileStatement__.js +9 -7
  319. package/out/concepts/WhileStatement__.js.map +1 -1
  320. package/out/manager/diagnostic.d.ts +1 -1
  321. package/out/manager/diagnostic.js +2 -3
  322. package/out/manager/diagnostic.js.map +1 -1
  323. package/out/server/naslServer.d.ts +46 -55
  324. package/out/server/naslServer.js +302 -449
  325. package/out/server/naslServer.js.map +1 -1
  326. package/out/server/translator.js +1 -1
  327. package/out/server/translator.js.map +1 -1
  328. package/out/templator/genCreateBlock.js +4 -4
  329. package/out/templator/genCreateBlock.js.map +1 -1
  330. package/out/templator/genCurdEditMultipleKeyBlock.js +6 -6
  331. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  332. package/out/templator/genCurdMultipleKeyBlock.js +4 -4
  333. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  334. package/out/templator/genEditTableBlock.js +2 -2
  335. package/out/templator/genEditTableBlock.js.map +1 -1
  336. package/out/templator/genUpdateBlock.js +4 -4
  337. package/out/templator/genUpdateBlock.js.map +1 -1
  338. package/out/translator/types.d.ts +16 -3
  339. package/out/translator/utils.d.ts +19 -1
  340. package/out/translator/utils.js +71 -2
  341. package/out/translator/utils.js.map +1 -1
  342. package/out/utils/time-slicing/constant.d.ts +35 -0
  343. package/out/utils/time-slicing/constant.js +40 -0
  344. package/out/utils/time-slicing/constant.js.map +1 -0
  345. package/out/utils/time-slicing/controller.d.ts +53 -0
  346. package/out/utils/time-slicing/controller.js +280 -0
  347. package/out/utils/time-slicing/controller.js.map +1 -0
  348. package/out/utils/time-slicing/index.d.ts +5 -0
  349. package/out/utils/time-slicing/index.js +26 -0
  350. package/out/utils/time-slicing/index.js.map +1 -0
  351. package/out/utils/time-slicing/page-state.d.ts +2 -0
  352. package/out/utils/time-slicing/page-state.js +14 -0
  353. package/out/utils/time-slicing/page-state.js.map +1 -0
  354. package/out/utils/time-slicing/performance.d.ts +11 -0
  355. package/out/utils/time-slicing/performance.js +51 -0
  356. package/out/utils/time-slicing/performance.js.map +1 -0
  357. package/out/utils/time-slicing/runner.d.ts +12 -0
  358. package/out/utils/time-slicing/runner.js +53 -0
  359. package/out/utils/time-slicing/runner.js.map +1 -0
  360. package/out/utils/time-slicing/tool.d.ts +24 -0
  361. package/out/utils/time-slicing/tool.js +47 -0
  362. package/out/utils/time-slicing/tool.js.map +1 -0
  363. package/out/utils/time-slicing/utils.d.ts +62 -0
  364. package/out/utils/time-slicing/utils.js +47 -0
  365. package/out/utils/time-slicing/utils.js.map +1 -0
  366. package/out/utils/time-slicing/wrapper.d.ts +18 -0
  367. package/out/utils/time-slicing/wrapper.js +55 -0
  368. package/out/utils/time-slicing/wrapper.js.map +1 -0
  369. package/out/utils/types.d.ts +7 -0
  370. package/package.json +1 -1
  371. package/src/bak/translator.js +75 -16
  372. package/src/common/BaseNode.ts +67 -6
  373. package/src/common/index.ts +1 -0
  374. package/src/common/utils.ts +17 -0
  375. package/src/concepts/Abort__.ts +12 -3
  376. package/src/concepts/Anchor__.ts +21 -8
  377. package/src/concepts/AnonymousFunction__.ts +45 -31
  378. package/src/concepts/App__.ts +137 -69
  379. package/src/concepts/Argument__.ts +31 -14
  380. package/src/concepts/Assignee__.ts +42 -21
  381. package/src/concepts/AssignmentLine__.ts +13 -3
  382. package/src/concepts/Assignment__.ts +26 -14
  383. package/src/concepts/Attribute__.ts +6 -3
  384. package/src/concepts/AuthLogicForCallInterface__.ts +69 -87
  385. package/src/concepts/BackendVariable__.ts +34 -19
  386. package/src/concepts/Backend__.ts +33 -12
  387. package/src/concepts/BatchAssignment__.ts +41 -23
  388. package/src/concepts/BinaryExpression__.ts +40 -20
  389. package/src/concepts/BindAttribute__.ts +151 -49
  390. package/src/concepts/BindDirective__.ts +25 -12
  391. package/src/concepts/BindEvent__.ts +43 -32
  392. package/src/concepts/BindStyle__.ts +24 -11
  393. package/src/concepts/BooleanLiteral__.ts +11 -3
  394. package/src/concepts/CallAuthInterface__.ts +45 -34
  395. package/src/concepts/CallConnector__.ts +34 -26
  396. package/src/concepts/CallFunction__.ts +34 -23
  397. package/src/concepts/CallInterface__.ts +33 -42
  398. package/src/concepts/CallLogic__.ts +60 -67
  399. package/src/concepts/CallQueryComponent__.ts +60 -52
  400. package/src/concepts/Comment__.ts +13 -3
  401. package/src/concepts/CompletionProperty__.ts +6 -3
  402. package/src/concepts/ConfigGroup__.ts +6 -3
  403. package/src/concepts/ConfigProperty__.ts +28 -15
  404. package/src/concepts/Configuration__.ts +6 -3
  405. package/src/concepts/Connection__.ts +28 -9
  406. package/src/concepts/Connector__.ts +30 -15
  407. package/src/concepts/Constant__.ts +28 -14
  408. package/src/concepts/DataSource__.ts +22 -10
  409. package/src/concepts/Destination__.ts +45 -36
  410. package/src/concepts/End__.ts +24 -15
  411. package/src/concepts/EntityIndex__.ts +13 -4
  412. package/src/concepts/EntityProperty__.ts +33 -17
  413. package/src/concepts/Entity__.ts +40 -25
  414. package/src/concepts/EnumItem__.ts +13 -4
  415. package/src/concepts/Enum__.ts +27 -13
  416. package/src/concepts/Event__.ts +6 -3
  417. package/src/concepts/ExternalDestination__.ts +22 -10
  418. package/src/concepts/ForEachStatement__.ts +36 -20
  419. package/src/concepts/FrontendLibrary__.ts +18 -10
  420. package/src/concepts/Frontend__.ts +48 -22
  421. package/src/concepts/Function__.ts +60 -36
  422. package/src/concepts/Identifier__.ts +28 -23
  423. package/src/concepts/IfStatement__.ts +28 -17
  424. package/src/concepts/Integration__.ts +17 -9
  425. package/src/concepts/InterfaceParam__.ts +22 -9
  426. package/src/concepts/Interface__.ts +55 -37
  427. package/src/concepts/JSBlock__.ts +12 -3
  428. package/src/concepts/JavaLogic__.ts +13 -3
  429. package/src/concepts/LogicItem__.ts +13 -4
  430. package/src/concepts/Logic__.ts +159 -149
  431. package/src/concepts/MatchCase__.ts +45 -32
  432. package/src/concepts/Match__.ts +39 -28
  433. package/src/concepts/MemberExpression__.ts +43 -28
  434. package/src/concepts/MetadataType__.ts +34 -16
  435. package/src/concepts/MsgTriggerEvent__.ts +6 -3
  436. package/src/concepts/MsgTriggerLauncher__.ts +6 -3
  437. package/src/concepts/Namespace__.ts +66 -33
  438. package/src/concepts/NewComposite__.ts +106 -87
  439. package/src/concepts/NewList__.ts +52 -38
  440. package/src/concepts/NewMap__.ts +61 -48
  441. package/src/concepts/New__.ts +13 -3
  442. package/src/concepts/NullLiteral__.ts +11 -3
  443. package/src/concepts/NumericLiteral__.ts +21 -8
  444. package/src/concepts/OqlQueryComponent__.ts +32 -21
  445. package/src/concepts/OverriddenLogic__.ts +153 -143
  446. package/src/concepts/Param__.ts +48 -34
  447. package/src/concepts/ProcessComponent__.ts +12 -6
  448. package/src/concepts/ProcessElement__.ts +102 -76
  449. package/src/concepts/ProcessOutcome__.ts +16 -8
  450. package/src/concepts/ProcessOutcomes__.ts +17 -9
  451. package/src/concepts/Process__.ts +62 -41
  452. package/src/concepts/QueryAggregateExpression__.ts +17 -6
  453. package/src/concepts/QueryFieldExpression__.ts +14 -5
  454. package/src/concepts/QueryFromExpression__.ts +24 -10
  455. package/src/concepts/QueryGroupByExpression__.ts +20 -9
  456. package/src/concepts/QueryJoinExpression__.ts +28 -14
  457. package/src/concepts/QueryLimitExpression__.ts +22 -9
  458. package/src/concepts/QueryOrderByExpression__.ts +23 -9
  459. package/src/concepts/QuerySelectExpression__.ts +6 -3
  460. package/src/concepts/Return__.ts +31 -17
  461. package/src/concepts/Role__.ts +17 -8
  462. package/src/concepts/SelectMembers__.ts +19 -6
  463. package/src/concepts/Slot__.ts +6 -3
  464. package/src/concepts/SqlQueryComponent__.ts +28 -14
  465. package/src/concepts/Start__.ts +11 -3
  466. package/src/concepts/StringInterpolation__.ts +16 -8
  467. package/src/concepts/StringLiteral__.ts +13 -4
  468. package/src/concepts/StructureProperty__.ts +24 -11
  469. package/src/concepts/Structure__.ts +33 -16
  470. package/src/concepts/SwitchCase__.ts +28 -17
  471. package/src/concepts/SwitchStatement__.ts +23 -10
  472. package/src/concepts/TriggerEvent__.ts +6 -3
  473. package/src/concepts/TriggerLauncher__.ts +17 -7
  474. package/src/concepts/TypeAnnotation__.ts +46 -30
  475. package/src/concepts/TypeParam__.ts +13 -4
  476. package/src/concepts/UnaryExpression__.ts +28 -12
  477. package/src/concepts/Unparsed__.ts +10 -3
  478. package/src/concepts/ValidationRule__.ts +27 -20
  479. package/src/concepts/Variable__.ts +34 -19
  480. package/src/concepts/ViewElement__.ts +165 -125
  481. package/src/concepts/View__.ts +108 -89
  482. package/src/concepts/WhileStatement__.ts +19 -10
  483. package/src/concepts/types__.ts +1 -1
  484. package/src/manager/diagnostic.ts +3 -4
  485. package/src/server/naslServer.ts +676 -729
  486. package/src/server/translator.ts +1 -1
  487. package/src/templator/genCreateBlock.ts +4 -4
  488. package/src/templator/genCurdEditMultipleKeyBlock.ts +6 -6
  489. package/src/templator/genCurdMultipleKeyBlock.ts +4 -4
  490. package/src/templator/genEditTableBlock.ts +2 -2
  491. package/src/templator/genUpdateBlock.ts +4 -4
  492. package/src/translator/types.ts +20 -5
  493. package/src/translator/utils.ts +78 -4
  494. package/src/utils/time-slicing/constant.ts +37 -0
  495. package/src/utils/time-slicing/controller.ts +342 -0
  496. package/src/utils/time-slicing/index.ts +6 -0
  497. package/src/utils/time-slicing/page-state.ts +12 -0
  498. package/src/utils/time-slicing/performance.ts +56 -0
  499. package/src/utils/time-slicing/runner.ts +54 -0
  500. package/src/utils/time-slicing/tool.ts +45 -0
  501. package/src/utils/time-slicing/utils.ts +90 -0
  502. package/src/utils/time-slicing/wrapper.ts +58 -0
  503. package/src/utils/types.ts +9 -0
  504. package/test/concepts/anonymous-function/__snapshots__/toEmbeddedTS.spec.ts.snap +8 -0
  505. package/test/concepts/anonymous-function/__snapshots__/toJS.spec.ts.snap +3 -0
  506. package/test/concepts/anonymous-function/__snapshots__/toVue.spec.ts.snap +6 -0
  507. package/test/concepts/anonymous-function/constant.ts +5 -0
  508. package/test/concepts/anonymous-function/fixtures/simple.json +85 -0
  509. package/test/concepts/anonymous-function/toEmbeddedTS.spec.ts +15 -0
  510. package/test/concepts/anonymous-function/toJS.spec.ts +14 -0
  511. package/test/concepts/anonymous-function/toVue.spec.ts +14 -0
  512. package/test/concepts/assignment/__snapshots__/toEmbeddedTS.spec.ts.snap +21 -0
  513. package/test/concepts/assignment/__snapshots__/toJS.spec.ts.snap +9 -0
  514. package/test/concepts/assignment/__snapshots__/toVue.spec.ts.snap +21 -0
  515. package/test/concepts/assignment/constant.ts +5 -0
  516. package/test/concepts/assignment/fixtures/both-space.json +4 -0
  517. package/test/concepts/assignment/fixtures/left-space.json +14 -0
  518. package/test/concepts/assignment/fixtures/right-space.json +8 -0
  519. package/test/concepts/assignment/fixtures/simple.json +12 -0
  520. package/test/concepts/assignment/toEmbeddedTS.spec.ts +15 -0
  521. package/test/concepts/assignment/toJS.spec.ts +14 -0
  522. package/test/concepts/assignment/toVue.spec.ts +14 -0
  523. package/test/concepts/batch-assignment/__snapshots__/toEmbeddedTS.spec.ts.snap +28 -0
  524. package/test/concepts/batch-assignment/__snapshots__/toJS.spec.ts.snap +13 -0
  525. package/test/concepts/batch-assignment/__snapshots__/toVue.spec.ts.snap +14 -0
  526. package/test/concepts/batch-assignment/constant.ts +5 -0
  527. package/test/concepts/batch-assignment/fixtures/muli-var-muli-value.json +144 -0
  528. package/test/concepts/batch-assignment/fixtures/simple-var-simple-value.json +36 -0
  529. package/test/concepts/batch-assignment/toEmbeddedTS.spec.ts +15 -0
  530. package/test/concepts/batch-assignment/toJS.spec.ts +14 -0
  531. package/test/concepts/batch-assignment/toVue.spec.ts +14 -0
  532. package/test/concepts/binary-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +25 -0
  533. package/test/concepts/binary-expression/__snapshots__/toJS.spec.ts.snap +17 -0
  534. package/test/concepts/binary-expression/__snapshots__/toVue.spec.ts.snap +19 -0
  535. package/test/concepts/binary-expression/constant.ts +5 -0
  536. package/test/concepts/binary-expression/fixtures/constant-nested.json +36 -0
  537. package/test/concepts/binary-expression/fixtures/constant-simple.json +12 -0
  538. package/test/concepts/binary-expression/fixtures/variable-nested.json +69 -0
  539. package/test/concepts/binary-expression/toEmbeddedTS.spec.ts +15 -0
  540. package/test/concepts/binary-expression/toJS.spec.ts +14 -0
  541. package/test/concepts/binary-expression/toVue.spec.ts +14 -0
  542. package/test/concepts/boolean-literal/toEmbeddedTS.spec.ts +4 -3
  543. package/test/concepts/boolean-literal/toJS.spec.ts +2 -2
  544. package/test/concepts/boolean-literal/toVue.spec.ts +2 -2
  545. package/test/concepts/call-function/toEmbeddedTS.spec.ts +2 -1
  546. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +2 -1
  547. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +2 -1
  548. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +2 -1
  549. package/test/concepts/data-source/__snapshots__/toEmbeddedTS.spec.ts.snap +8 -0
  550. package/test/concepts/data-source/__snapshots__/toEmbeddedTSFile.spec.ts.snap +12 -0
  551. package/test/concepts/data-source/constant.ts +5 -0
  552. package/test/concepts/data-source/fixtures/normal.json +289 -0
  553. package/test/concepts/data-source/toEmbeddedTS.spec.ts +15 -0
  554. package/test/concepts/data-source/toEmbeddedTSFile.spec.ts +16 -0
  555. package/test/concepts/entity/__snapshots__/toEmbeddedTS.spec.ts.snap +74 -0
  556. package/test/concepts/entity/__snapshots__/toEmbeddedTSFile.spec.ts.snap +3 -0
  557. package/test/concepts/entity/constant.ts +5 -0
  558. package/test/concepts/entity/fixtures/normal.json +469 -0
  559. package/test/concepts/entity/toEmbeddedTS.spec.ts +15 -0
  560. package/test/concepts/entity/toEmbeddedTSFile.spec.ts +14 -0
  561. package/test/concepts/identifier/toEmbeddedTS.spec.ts +4 -3
  562. package/test/concepts/identifier/toJS.spec.ts +2 -2
  563. package/test/concepts/identifier/toVue.spec.ts +2 -2
  564. package/test/concepts/match/toEmbeddedTS.spec.ts +2 -1
  565. package/test/concepts/member-expression/toEmbeddedTS.spec.ts +2 -1
  566. package/test/concepts/member-expression/toVue.spec.ts +2 -2
  567. package/test/concepts/null-literal/toEmbeddedTS.spec.ts +4 -3
  568. package/test/concepts/null-literal/toJS.spec.ts +2 -2
  569. package/test/concepts/null-literal/toVue.spec.ts +2 -2
  570. package/test/concepts/numeric-literal/toEmbeddedTS.spec.ts +4 -3
  571. package/test/concepts/numeric-literal/toJS.spec.ts +2 -2
  572. package/test/concepts/numeric-literal/toVue.spec.ts +2 -2
  573. package/test/concepts/string-literal/toEmbeddedTS.spec.ts +4 -3
  574. package/test/concepts/string-literal/toJS.spec.ts +2 -2
  575. package/test/concepts/string-literal/toVue.spec.ts +2 -2
  576. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +2 -1
  577. package/test/concepts/validation-rule/validation-rule.spec.ts +2 -1
  578. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +0 -2
  579. package/test/concepts/view-element/toEmbeddedTS.spec.ts +2 -1
  580. package/test/time-slicing/runner.spec.ts +28 -0
  581. package/test/time-slicing/time-slicing-nodejs.spec.ts +27 -0
  582. package/test/time-slicing/utils.ts +7 -0
  583. package/test/time-slicing/wrapper.spec.ts +92 -0
  584. package/ts-worker/lib/tsserver.js +10 -1
  585. package/ts-worker/package.json +1 -0
  586. package/ts-worker/src/index.js +13 -12
  587. package/ts-worker/webpack.config.js +1 -1
  588. package/out/utils/time-slicing.d.ts +0 -41
  589. package/out/utils/time-slicing.js +0 -82
  590. package/out/utils/time-slicing.js.map +0 -1
  591. package/src/utils/time-slicing.ts +0 -111
@@ -189,9 +189,12 @@ export class Attribute extends BaseNode {
189
189
  const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
190
190
  ~index && (this as any)[parentKey].splice(index, 1);
191
191
  params.index = index;
192
- } else if ((t as any)[parentKey] === n) {
193
- params.index = 0;
194
- (this as any)[parentKey] = undefined;
192
+ } else {
193
+ const q = (t as any)[parentKey];
194
+ if ((q.__v_raw || q) === n) {
195
+ params.index = 0;
196
+ (this as any)[parentKey] = undefined;
197
+ }
195
198
  }
196
199
  }
197
200
  return params;
@@ -1,3 +1,8 @@
1
+ import {
2
+ wrapForEachToGenerator as wrapForEach,
3
+ wrapIteratorToGenerator as wrapIterator,
4
+ returnOrigin,
5
+ } from '../utils/time-slicing';
1
6
  import {
2
7
  TranslatorState,
3
8
  shiftState,
@@ -5,7 +10,11 @@ import {
5
10
  indent,
6
11
  createCompilerState,
7
12
  embeddedTSEmitter,
13
+ withSourceMapGenerator,
14
+ withGenerator,
15
+ TranslatorGenerator,
8
16
  } from '../translator';
17
+ import { waitOqlQueryComponentChildrenFinish } from '../common';
9
18
  import Namespace from './Namespace__';
10
19
  import CallQueryComponent from './CallQueryComponent__';
11
20
  import Assignment from './Assignment__';
@@ -264,9 +273,12 @@ export class AuthLogicForCallInterface extends AuthLogic {
264
273
  const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
265
274
  ~index && (this as any)[parentKey].splice(index, 1);
266
275
  params.index = index;
267
- } else if ((t as any)[parentKey] === n) {
268
- params.index = 0;
269
- (this as any)[parentKey] = undefined;
276
+ } else {
277
+ const q = (t as any)[parentKey];
278
+ if ((q.__v_raw || q) === n) {
279
+ params.index = 0;
280
+ (this as any)[parentKey] = undefined;
281
+ }
270
282
  }
271
283
  }
272
284
  return params;
@@ -277,20 +289,23 @@ export class AuthLogicForCallInterface extends AuthLogic {
277
289
  // 自动生成的代码已结束。下面可以手动编写。
278
290
  //================================================================================
279
291
 
280
- @withSourceMap()
281
- toEmbeddedTS(state?: TranslatorState, prefix?: string): string {
292
+ @withSourceMapGenerator
293
+ *toEmbeddedTS(state = createCompilerState(), prefix?: string): TranslatorGenerator {
294
+ const self = this;
295
+ // 等待 oql 查询返回内容
296
+ yield waitOqlQueryComponentChildrenFinish(self);
282
297
  // 如果传了不要前缀那就为空, 要不用传进来的,要是都没有就默认导出
283
298
  let code = '';
284
299
  if (!prefix) {
285
300
  // T、U分别用来定义 api 入参和返回值
286
- code += `export function ${this.name}`;
301
+ code += `export function ${self.name}`;
287
302
  } else if (prefix === 'noExport') {
288
- code += `function ${this.name}`;
303
+ code += `function ${self.name}`;
289
304
  } else if (prefix === 'inObject') {
290
- code += `${this.name}`;
305
+ code += `${self.name}`;
291
306
  }
292
307
  const typeParams = [
293
- ...(this.typeParams || []),
308
+ ...(self.typeParams || []),
294
309
  new TypeParam({
295
310
  name: 'ApiParams',
296
311
  }),
@@ -300,8 +315,8 @@ export class AuthLogicForCallInterface extends AuthLogic {
300
315
  ];
301
316
  if (typeParams?.length) {
302
317
  code += '<';
303
- typeParams.forEach((typeParam, typeParamIndex) => {
304
- code += typeParam.toEmbeddedTS(shiftState(state, code, { inline: true }));
318
+ yield* wrapForEach(typeParams, function* warpForEachGenerator(typeParam, typeParamIndex) {
319
+ code += yield* typeParam.toEmbeddedTS(shiftState(state, code, { inline: true }));
305
320
  if (typeParamIndex !== typeParams.length - 1) {
306
321
  code += ', ';
307
322
  }
@@ -309,10 +324,10 @@ export class AuthLogicForCallInterface extends AuthLogic {
309
324
  code += '>';
310
325
  }
311
326
  // 有参数长度 && 鉴权参数
312
- if (this.authParams.length) {
327
+ if (self.authParams.length) {
313
328
  // const params = [...this.authParams, ...this.params];
314
- const params = [...this.authParams];
315
- params.forEach((param, index) => {
329
+ const params = [...self.authParams];
330
+ yield* wrapForEach(params, function* warpForEachGenerator(param, index) {
316
331
  if (index === 0) {
317
332
  code += '({';
318
333
  }
@@ -323,11 +338,11 @@ export class AuthLogicForCallInterface extends AuthLogic {
323
338
  code += ', api}:';
324
339
  }
325
340
  });
326
- params.forEach((param, index) => {
341
+ yield* wrapForEach(params, function* warpForEachGenerator(param, index) {
327
342
  if (index === 0) {
328
343
  code += '{';
329
344
  }
330
- code += param.toEmbeddedTS(shiftState(state, code), !param.required);
345
+ code += yield* param.toEmbeddedTS(shiftState(state, code), !param.required);
331
346
  if (index !== params.length - 1) {
332
347
  code += ', ';
333
348
  } else {
@@ -339,79 +354,53 @@ export class AuthLogicForCallInterface extends AuthLogic {
339
354
  // 没有参数的
340
355
  code += '({api}: {api?: ApiReturn}): ApiReturn';
341
356
  }
342
-
343
357
  // 需要类型推导的局部变量/返回值需要调整申明顺序
344
358
  const advanceMap: Map<Return | Variable, Assignment | BatchAssignment> = new Map();
345
- const needGetSourceMapOqlList: Promise<any>[] = [];
346
- this.traverseChildren((el) => {
359
+ // const needGetSourceMapOqlList: Promise<any>[] = [];
360
+ yield* self.traverseChildrenGenerator(function* traverseChildrenGenerator(el) {
347
361
  if (el && (el instanceof BatchAssignment || (el instanceof Assignment && el.left?.name))) {
348
362
  if (el instanceof Assignment) {
349
- const advanceVar = this.variables?.find(
363
+ const advanceVar = self.variables?.find(
350
364
  (variable) => !variable.typeAnnotation && el.left?.name === variable.name,
351
365
  );
352
366
  if (advanceVar && !advanceMap.get(advanceVar)) {
353
367
  advanceMap.set(advanceVar, el);
354
368
  }
355
- const advanceRn = this.returns?.find((ret) => !ret.typeAnnotation && el.left?.name === ret.name);
369
+ const advanceRn = self.returns?.find((ret) => !ret.typeAnnotation && el.left?.name === ret.name);
356
370
  if (advanceRn && !advanceMap.get(advanceRn)) {
357
371
  advanceMap.set(advanceRn, el);
358
372
  }
359
373
  } else if (el instanceof BatchAssignment) {
360
- el.assignmentLines.forEach(({ leftIndex }) => {
374
+ yield* wrapForEach(el.assignmentLines, function* warpForEachGenerator({ leftIndex }) {
361
375
  const leftCode =
362
376
  leftIndex.length === 1
363
- ? el.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))
364
- : el.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));
365
- const advanceVar = this.variables?.find(
377
+ ? yield* el.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))
378
+ : yield* el.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true })) ?? returnOrigin('');
379
+ const advanceVar = self.variables?.find(
366
380
  (variable) => !variable.typeAnnotation && leftCode === variable.name,
367
381
  );
368
382
  if (advanceVar && !advanceMap.get(advanceVar)) {
369
383
  advanceMap.set(advanceVar, el);
370
384
  }
371
- const advanceRn = this.returns?.find((ret) => !ret.typeAnnotation && leftCode === ret.name);
385
+ const advanceRn = self.returns?.find((ret) => !ret.typeAnnotation && leftCode === ret.name);
372
386
  if (advanceRn && !advanceMap.get(advanceRn)) {
373
387
  advanceMap.set(advanceRn, el);
374
388
  }
375
389
  });
376
390
  }
377
391
  }
378
- // 如果有sql查询组件就需要把他们存起来
379
- if (el instanceof OqlQueryComponent) {
380
- if (!el.codeSourceMap) {
381
- needGetSourceMapOqlList.push(el.requestEmbeddedTS());
382
- }
383
- }
384
392
  });
385
-
386
- if (needGetSourceMapOqlList.length) {
387
- Promise.all(needGetSourceMapOqlList).then(() => {
388
- // 触发一下更新重新生成代码
389
- (this.app as any)?.naslServer?.embeddedTSEmitter.emit('change', {
390
- value: [
391
- {
392
- originEvent: {
393
- action: 'update',
394
- target: this,
395
- },
396
- },
397
- ],
398
- });
399
- });
400
- }
401
-
402
393
  code += '{\n';
403
-
404
394
  // 用于虚拟节点的查找引用
405
- this.virtualParams &&
406
- Array.isArray(this.virtualParams) &&
407
- this.virtualParams.forEach((param) => {
395
+ if (Array.isArray(self.virtualParams)) {
396
+ for (const param of self.virtualParams) {
408
397
  code += indent((state?.tabSize || 0) + 1);
409
- code += param.toEmbeddedNameTS(shiftState(state, code, { inline: true }));
398
+ code += yield* param.toEmbeddedNameTS(shiftState(state, code, { inline: true }));
410
399
  code += '\n';
411
- });
412
-
400
+ }
401
+ }
413
402
  const variables = [
414
- ...this.variables,
403
+ ...self.variables,
415
404
  new Variable({
416
405
  // 将默认参数加为变量 用于参数选择校验
417
406
  name: 'request',
@@ -431,24 +420,23 @@ export class AuthLogicForCallInterface extends AuthLogic {
431
420
  }),
432
421
  }),
433
422
  ];
434
- variables.forEach((variable) => {
423
+ yield* wrapForEach(variables, function* warpForEachGenerator(variable) {
435
424
  if (!advanceMap.get(variable)) {
436
425
  code += `${indent((state?.tabSize || 0) + 1)}let `;
437
- code += variable.toEmbeddedTS(shiftState(state, code, { inline: true }));
426
+ code += yield* variable.toEmbeddedTS(shiftState(state, code, { inline: true }));
438
427
  code += ';\n';
439
428
  }
440
429
  });
441
-
442
- advanceMap.forEach((assignment, node) => {
430
+ yield* wrapIterator(advanceMap.entries(), function* warpForEachGenerator([node, assignment]) {
443
431
  code += `${indent((state?.tabSize || 0) + 1)}// @ts-ignore\n`;
444
432
  code += `${indent((state?.tabSize || 0) + 1)}let `;
445
- code += node.toEmbeddedTS(shiftState(state, code, { inline: true }));
433
+ code += yield* node.toEmbeddedTS(shiftState(state, code, { inline: true }));
446
434
  if (assignment instanceof BatchAssignment) {
447
- assignment.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
435
+ yield* wrapForEach(assignment.assignmentLines, function* warpForEachGenerator({ leftIndex, rightIndex }) {
448
436
  const leftCode =
449
437
  leftIndex.length === 1
450
- ? assignment.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))
451
- : assignment.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));
438
+ ? yield* assignment.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))
439
+ : yield* assignment.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true })) ?? returnOrigin('');
452
440
  if (leftCode === node.name) {
453
441
  const rightNode: any =
454
442
  rightIndex.length === 1
@@ -460,11 +448,11 @@ export class AuthLogicForCallInterface extends AuthLogic {
460
448
  !(rightNode instanceof CallQueryComponent && rightNode.ideVersion !== '2.11')
461
449
  ) {
462
450
  code += ': ';
463
- code += rightNode.typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true })) || 'null';
451
+ code += yield* rightNode?.typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true })) ?? returnOrigin('null');
464
452
  } else {
465
453
  code += ' = ';
466
- const rightCode = rightNode?.toEmbeddedTS(shiftState(state, code, { inline: true }));
467
- code += this.getRightCode(rightCode, assignment, rightNode);
454
+ const rightCode = yield* rightNode?.toEmbeddedTS(shiftState(state, code, { inline: true })) ?? returnOrigin('');;
455
+ code += yield* self.getRightCode(rightCode, assignment, rightNode);
468
456
  }
469
457
  }
470
458
  });
@@ -474,14 +462,14 @@ export class AuthLogicForCallInterface extends AuthLogic {
474
462
  ) {
475
463
  const rightNode: any = assignment.right;
476
464
  code += ' = ';
477
- code += rightNode.getInitCode(shiftState(state, code, { inline: true }));
465
+ code += yield* rightNode.getInitCode(shiftState(state, code, { inline: true }));
478
466
  } else if (
479
467
  assignment.right?.concept === 'NewComposite' &&
480
468
  (assignment.right as any)?.typeAnnotation?.typeKind === 'anonymousStructure'
481
469
  ) {
482
470
  const rightNode: any = assignment.right;
483
471
  code += ' = ';
484
- code += rightNode.getInitCode(shiftState(state, code, { inline: true }));
472
+ code += yield* rightNode.getInitCode(shiftState(state, code, { inline: true }));
485
473
  } else {
486
474
  const rightNode: any = assignment.right;
487
475
  // 当右边有明确类型时,直接使用其类型。旧版本数据查询不能直接使用其 typeAnnotation
@@ -490,7 +478,7 @@ export class AuthLogicForCallInterface extends AuthLogic {
490
478
  !(rightNode instanceof CallQueryComponent && rightNode.ideVersion !== '2.11')
491
479
  ) {
492
480
  code += ': ';
493
- code += rightNode.typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true })) || 'null';
481
+ code += yield* rightNode.typeAnnotation?.toEmbeddedTS(shiftState(state, code, { inline: true })) ?? returnOrigin('null');
494
482
  } else {
495
483
  code += ' = ';
496
484
  let rightCode = '';
@@ -503,39 +491,33 @@ export class AuthLogicForCallInterface extends AuthLogic {
503
491
  ) {
504
492
  rightCode += 'new ';
505
493
  }
506
- rightCode +=
507
- rightNode && rightNode.toEmbeddedTS
508
- ? rightNode.toEmbeddedTS(shiftState(state, code, { inline: true }))
509
- : '__RIGHT__';
510
- code += this.getRightCode(rightCode, assignment, rightNode);
494
+ rightCode += yield* rightNode?.toEmbeddedTS?.(shiftState(state, code, { inline: true })) ?? returnOrigin('__RIGHT__');
495
+ code += yield* self.getRightCode(rightCode, assignment, rightNode);
511
496
  }
512
497
  }
513
498
  code += ';\n';
514
499
  });
515
-
516
- if (!this.body.length) {
500
+ if (!self.body.length) {
517
501
  // 必有返回值,且返回值为 api 对应的返回参数
518
- code += `${indent((state?.tabSize || 0) + 1)}let ${this.name}Result: ApiReturn; \n ${indent(
502
+ code += `${indent((state?.tabSize || 0) + 1)}let ${self.name}Result: ApiReturn; \n ${indent(
519
503
  (state?.tabSize || 0) + 1,
520
- )}return ${this.name}Result;\n`;
504
+ )}return ${self.name}Result;\n`;
521
505
  } else {
522
506
  // 如果长度小于2 并且不是虚拟节点就 加 报错,
523
- if (this.body.length <= 2 && !(this.parentNode instanceof Namespace)) {
507
+ if (self.body.length <= 2 && !(self.parentNode instanceof Namespace)) {
524
508
  code += indent((state?.tabSize || 0) + 1);
525
509
  code += 'const __LogicEmpty: any = null;';
526
510
  }
527
- this.body.forEach((item) => {
528
- code += item.toEmbeddedTS && item.toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
511
+ yield* wrapForEach(self.body, function* warpForEachGenerator(item) {
512
+ code += yield* item.toEmbeddedTS?.(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 })) ?? returnOrigin('') ?? returnOrigin('');
529
513
  code += ';\n';
530
514
  });
531
515
  }
532
-
533
516
  // 在body渲染完成之后把其余的节点放到下面
534
- this.playground.forEach((item) => {
535
- code += item.toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
517
+ yield* wrapForEach(self.playground, function* warpForEachGenerator(item) {
518
+ code += yield* item.toEmbeddedTS(shiftState(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
536
519
  code += ';\n';
537
520
  });
538
-
539
521
  code += `${indent(state?.tabSize || 0)}}`;
540
522
  if (prefix === 'inObject') {
541
523
  code += `,`;
@@ -1,5 +1,15 @@
1
+ import type { EmbeddedTSFileGenerator } from '../utils';
1
2
  import { dataTypesMap } from './basics/types';
2
- import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
3
+ import {
4
+ TranslatorState,
5
+ shiftState,
6
+ withSourceMap,
7
+ indent,
8
+ createCompilerState,
9
+ withSourceMapGenerator,
10
+ withGenerator,
11
+ TranslatorGenerator,
12
+ } from '../translator';
3
13
  import { ElementToVueOptions } from './ViewElement__';
4
14
  import EntityProperty from './EntityProperty__';
5
15
  import StructureProperty from './StructureProperty__';
@@ -233,9 +243,12 @@ export class BackendVariable extends BaseNode {
233
243
  const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
234
244
  ~index && (this as any)[parentKey].splice(index, 1);
235
245
  params.index = index;
236
- } else if ((t as any)[parentKey] === n) {
237
- params.index = 0;
238
- (this as any)[parentKey] = undefined;
246
+ } else {
247
+ const q = (t as any)[parentKey];
248
+ if ((q.__v_raw || q) === n) {
249
+ params.index = 0;
250
+ (this as any)[parentKey] = undefined;
251
+ }
239
252
  }
240
253
  }
241
254
  return params;
@@ -313,18 +326,19 @@ export class BackendVariable extends BaseNode {
313
326
  return code;
314
327
  }
315
328
 
316
- @withSourceMap()
317
- toEmbeddedTS(state = createCompilerState()): string {
318
- let code = this.name;
319
- if (this.typeAnnotation) {
329
+ @withSourceMapGenerator
330
+ *toEmbeddedTS(state = createCompilerState()): TranslatorGenerator {
331
+ const self = this;
332
+ let code = self.name;
333
+ if (self.typeAnnotation) {
320
334
  code += ': ';
321
- code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
335
+ code += yield* self.typeAnnotation.toEmbeddedTS(shiftState(state, code));
322
336
  // toTS暂时只需要翻译引用数据类型的,因为值都是字符串
323
337
  // 就不在这里赋值了,这里单纯就为了快速查找
324
338
  // 并且屏蔽了一些异常的错误
325
- if (this.typeAnnotation?.typeKind !== 'primitive' && this.defaultValue) {
326
- if (this.isEnum()) {
327
- code += `= ${this.typeAnnotation.typeKey}['${this.defaultValue}']`;
339
+ if (self.typeAnnotation?.typeKind !== 'primitive' && self.defaultValue) {
340
+ if (self.isEnum()) {
341
+ code += `= ${self.typeAnnotation.typeKey}['${self.defaultValue}']`;
328
342
  }
329
343
  }
330
344
  }
@@ -363,12 +377,12 @@ export class BackendVariable extends BaseNode {
363
377
  throw new Error('无法获取命名空间,请设置 parentNode!');
364
378
  }
365
379
 
366
- toEmbeddedTSFile() {
380
+ *toEmbeddedTSFile(): EmbeddedTSFileGenerator {
367
381
  let code = `namespace ${this.getNamespace()} {\n`;
368
382
  code += `${indent(1)}export let `;
369
383
  const state = createCompilerState(code, { tabSize: 1 });
370
384
  try {
371
- code += `${this.toEmbeddedTS(state)}\n`;
385
+ code += `${yield* this.toEmbeddedTS(state)}\n`;
372
386
  } catch (err) {
373
387
  code += '\n';
374
388
  }
@@ -381,12 +395,13 @@ export class BackendVariable extends BaseNode {
381
395
  };
382
396
  }
383
397
 
384
- @withSourceMap()
385
- toEmbeddedTSInProcess(state?: TranslatorState): string {
386
- let code = this.name;
387
- if (this.typeAnnotation) {
398
+ @withSourceMapGenerator
399
+ *toEmbeddedTSInProcess(state = createCompilerState()): TranslatorGenerator {
400
+ const self = this;
401
+ let code = self.name;
402
+ if (self.typeAnnotation) {
388
403
  code += ': undefined as ';
389
- code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
404
+ code += yield* self.typeAnnotation.toEmbeddedTS(shiftState(state, code));
390
405
  }
391
406
  // if (this.defaultValue) {
392
407
  // code += `: ${this.defaultValue}`;
@@ -1,5 +1,21 @@
1
+ import type { EmbeddedTSFileGenerator } from '../utils';
1
2
  import Namespace from './Namespace__';
2
- import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
3
+ import {
4
+ TranslatorState,
5
+ shiftState,
6
+ withSourceMap,
7
+ indent,
8
+ createCompilerState,
9
+ withSourceMapGenerator,
10
+ withGenerator,
11
+ TranslatorGenerator,
12
+ } from '../translator';
13
+
14
+ interface TsFileData {
15
+ code: string;
16
+ filePath: string;
17
+ sourceMap: any;
18
+ }
3
19
 
4
20
  //================================================================================
5
21
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -92,7 +108,7 @@ export class Backend extends BaseNode {
92
108
  const excludedSet = new Set(excludedList);
93
109
  return ((this.variables as BackendVariable[]) || [])
94
110
  .filter((item) => !excludedSet.has(item))
95
- .map((item) => item.name);
111
+ .map((item) => item?.name);
96
112
  }
97
113
  getBackendVariableUniqueName(name = 'backendVariable1') {
98
114
  return utils.unique(name, this.getVarExistingNames(), undefined, true);
@@ -284,12 +300,16 @@ export class Backend extends BaseNode {
284
300
  // @ts-ignore
285
301
  const n = backendVariable.__v_raw || backendVariable;
286
302
  if (Array.isArray((t as any)[parentKey])) {
287
- const index = (t as any)[parentKey].indexOf(n);
303
+ // @ts-ignore
304
+ const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
288
305
  ~index && (this as any)[parentKey].splice(index, 1);
289
306
  params.index = index;
290
- } else if ((t as any)[parentKey] === n) {
291
- params.index = 0;
292
- (this as any)[parentKey] = undefined;
307
+ } else {
308
+ const q = (t as any)[parentKey];
309
+ if ((q.__v_raw || q) === n) {
310
+ params.index = 0;
311
+ (this as any)[parentKey] = undefined;
312
+ }
293
313
  }
294
314
  }
295
315
  return params;
@@ -320,11 +340,12 @@ export class Backend extends BaseNode {
320
340
  return `/embedded/${this.rootNode?.name || this.parentNode.name}/Backend/backend.ts`;
321
341
  }
322
342
 
323
- @withSourceMap()
324
- toEmbeddedTS(state = createCompilerState()): string {
325
- let code = `export namespace ${this.name} {\n`;
343
+ @withSourceMapGenerator
344
+ *toEmbeddedTS(state = createCompilerState()): TranslatorGenerator {
345
+ const self = this;
346
+ let code = `export namespace ${self.name} {\n`;
326
347
  code += 'const name = ';
327
- code += `"${this.name}";\n`;
348
+ code += `"${self.name}";\n`;
328
349
  code += '}\n';
329
350
  return code;
330
351
  }
@@ -334,12 +355,12 @@ export class Backend extends BaseNode {
334
355
  // const finalPath = path && path !== '/' ? path : '';
335
356
  // return finalPath;
336
357
  // }
337
- toEmbeddedTSFile() {
358
+ *toEmbeddedTSFile(): EmbeddedTSFileGenerator {
338
359
  let code = `namespace ${this.getNamespace()} {\n`;
339
360
 
340
361
  const state = createCompilerState(code, { tabSize: 1 });
341
362
  try {
342
- code += this.toEmbeddedTS(state);
363
+ code += yield* this.toEmbeddedTS(state);
343
364
  } catch (err) {
344
365
  code += '';
345
366
  console.log(err);
@@ -1,4 +1,13 @@
1
- import { TranslatorState, shiftState, withSourceMap, createCompilerState } from '../translator';
1
+ import { wrapForEachToGenerator as wrapForEach, returnOrigin } from '../utils/time-slicing';
2
+ import {
3
+ TranslatorState,
4
+ shiftState,
5
+ withSourceMap,
6
+ createCompilerState,
7
+ withSourceMapGenerator,
8
+ withGenerator,
9
+ TranslatorGenerator,
10
+ } from '../translator';
2
11
  import { ElementToVueOptions } from './ViewElement__';
3
12
  import MemberExpression from './MemberExpression__';
4
13
  import Assignment from './Assignment__';
@@ -507,9 +516,12 @@ export class BatchAssignment extends LogicItem {
507
516
  const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
508
517
  ~index && (this as any)[parentKey].splice(index, 1);
509
518
  params.index = index;
510
- } else if ((t as any)[parentKey] === n) {
511
- params.index = 0;
512
- (this as any)[parentKey] = undefined;
519
+ } else {
520
+ const q = (t as any)[parentKey];
521
+ if ((q.__v_raw || q) === n) {
522
+ params.index = 0;
523
+ (this as any)[parentKey] = undefined;
524
+ }
513
525
  }
514
526
  }
515
527
  return params;
@@ -560,9 +572,12 @@ export class BatchAssignment extends LogicItem {
560
572
  const index = (t as any)[parentKey].findIndex((el) => (el.__v_raw || el) === n);
561
573
  ~index && (this as any)[parentKey].splice(index, 1);
562
574
  params.index = index;
563
- } else if ((t as any)[parentKey] === n) {
564
- params.index = 0;
565
- (this as any)[parentKey] = undefined;
575
+ } else {
576
+ const q = (t as any)[parentKey];
577
+ if ((q.__v_raw || q) === n) {
578
+ params.index = 0;
579
+ (this as any)[parentKey] = undefined;
580
+ }
566
581
  }
567
582
  }
568
583
  return params;
@@ -1009,47 +1024,50 @@ export class BatchAssignment extends LogicItem {
1009
1024
  return code;
1010
1025
  }
1011
1026
 
1012
- @withSourceMap()
1013
- toEmbeddedTS(state = createCompilerState()): string {
1027
+ @withSourceMapGenerator
1028
+ *toEmbeddedTS(state = createCompilerState()): TranslatorGenerator {
1029
+ const self = this;
1014
1030
  let code = '// 以下是批量赋值的翻译代码\n';
1015
1031
  // 提供sourcemap,获取类型标注和上下文可选变量
1016
- code += this.left.expression
1017
- ? `${this.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))}`
1032
+ code += self.left.expression
1033
+ ? `${yield* self.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))}`
1018
1034
  : '';
1019
1035
  code += ';\n';
1020
- this.left.members.forEach((member) => {
1021
- code += member.toEmbeddedTS(shiftState(state, code, { inline: true }));
1036
+ yield* wrapForEach(self.left.members, function* warpForEachGenerator(member) {
1037
+ code += yield* member.toEmbeddedTS(shiftState(state, code, { inline: true }));
1022
1038
  code += '; ';
1023
1039
  });
1024
1040
  code += '\n';
1025
- this.rights.forEach((right) => {
1026
- code += `${right.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))}`;
1041
+ yield* wrapForEach(self.rights, function* warpForEachGenerator(right) {
1042
+ code += `${yield* right.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))}`;
1027
1043
  code += ';\n';
1028
- right.members.forEach((member) => {
1029
- code += member.toEmbeddedTS(shiftState(state, code, { inline: true }));
1044
+ yield* wrapForEach(right.members, function* warpForEachGenerator(member) {
1045
+ code += yield* member.toEmbeddedTS(shiftState(state, code, { inline: true }));
1030
1046
  code += '; ';
1031
1047
  });
1032
1048
  code += right.members.length ? '\n' : '';
1033
1049
  });
1034
1050
  // 根据连线状态,拆分成多个单赋值
1035
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1051
+ yield* wrapForEach(self.assignmentLines, function* warpForEachGenerator({ leftIndex, rightIndex }) {
1036
1052
  code += 'nasl.core.assign(';
1037
1053
  const leftValue =
1038
1054
  leftIndex.length === 1
1039
- ? this.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))
1040
- : this.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1055
+ ? yield* self.left.expression.toEmbeddedTS(shiftState(state, code, { inline: true }))
1056
+ : yield* self.left.members[leftIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true })) ?? returnOrigin('');
1041
1057
  code += `${leftValue}`;
1042
1058
  code += ', ';
1043
1059
  const rightValue =
1044
1060
  rightIndex.length === 1
1045
- ? this.rights[rightIndex[0]]?.expression?.toEmbeddedTS(shiftState(state, code, { inline: true }))
1046
- : this.rights[rightIndex[0]]?.members[rightIndex[1]]?.toEmbeddedTS(shiftState(state, code, { inline: true }));
1061
+ ? yield* self.rights[rightIndex[0]]?.expression?.toEmbeddedTS(shiftState(state, code, { inline: true })) ?? returnOrigin('')
1062
+ : yield* self.rights[rightIndex[0]]?.members[rightIndex[1]]?.toEmbeddedTS(
1063
+ shiftState(state, code, { inline: true }),
1064
+ ) ?? returnOrigin('');
1047
1065
  code += `${rightValue}`;
1048
1066
  code += ')';
1049
1067
  code += ';';
1050
1068
  code += '\n';
1051
1069
  });
1052
- if (!this.assignmentLines.length) code += `__assignmentLineEmpty__\n`;
1070
+ if (!self.assignmentLines.length) code += `__assignmentLineEmpty__\n`;
1053
1071
  code += '// 批量赋值的翻译代码结束---------\n';
1054
1072
  return code;
1055
1073
  }