@lcap/nasl 3.2.0-beta.4 → 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 (774) hide show
  1. package/out/automate/upgrader/2.20.js +1 -1
  2. package/out/automate/upgrader/2.20.js.map +1 -1
  3. package/out/bak/translator.js +11 -15
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/breakpoint/generator/AfterStartNode.js +3 -1
  6. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  7. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  8. package/out/breakpoint/generator/BreakpointNode.d.ts +1 -0
  9. package/out/breakpoint/generator/BreakpointNode.js +48 -15
  10. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  11. package/out/breakpoint/generator/CallbackNode.d.ts +4 -0
  12. package/out/breakpoint/generator/CallbackNode.js +22 -0
  13. package/out/breakpoint/generator/CallbackNode.js.map +1 -0
  14. package/out/breakpoint/generator/FragmentNode.d.ts +4 -0
  15. package/out/breakpoint/generator/FragmentNode.js +18 -0
  16. package/out/breakpoint/generator/FragmentNode.js.map +1 -0
  17. package/out/breakpoint/generator/index.js +25 -4
  18. package/out/breakpoint/generator/index.js.map +1 -1
  19. package/out/breakpoint/shared/constants.d.ts +3 -0
  20. package/out/breakpoint/shared/constants.js +6 -1
  21. package/out/breakpoint/shared/constants.js.map +1 -1
  22. package/out/breakpoint/shared/operations.js.map +1 -1
  23. package/out/breakpoint/shared/socket.d.ts +1 -1
  24. package/out/breakpoint/shared/socket.js +36 -7
  25. package/out/breakpoint/shared/socket.js.map +1 -1
  26. package/out/breakpoint/shared/utils.d.ts +2 -0
  27. package/out/breakpoint/shared/utils.js +15 -2
  28. package/out/breakpoint/shared/utils.js.map +1 -1
  29. package/out/breakpoint/store/core.d.ts +48 -2
  30. package/out/breakpoint/store/core.js +58 -32
  31. package/out/breakpoint/store/core.js.map +1 -1
  32. package/out/breakpoint/store/dock.js +1 -1
  33. package/out/breakpoint/store/dock.js.map +1 -1
  34. package/out/common/BaseNode.d.ts +1 -1
  35. package/out/common/BaseNode.js +105 -51
  36. package/out/common/BaseNode.js.map +1 -1
  37. package/out/common/Command.d.ts +13 -2
  38. package/out/common/Command.js +37 -9
  39. package/out/common/Command.js.map +1 -1
  40. package/out/common/EventEmitter.js.map +1 -1
  41. package/out/common/Messager.d.ts +3 -3
  42. package/out/common/Messager.js +6 -7
  43. package/out/common/Messager.js.map +1 -1
  44. package/out/common/asyncFuncMap.js.map +1 -1
  45. package/out/concepts/Abort__.js +6 -5
  46. package/out/concepts/Abort__.js.map +1 -1
  47. package/out/concepts/Anchor__.d.ts +4 -3
  48. package/out/concepts/Anchor__.js +24 -7
  49. package/out/concepts/Anchor__.js.map +1 -1
  50. package/out/concepts/AnonymousFunction__.d.ts +22 -21
  51. package/out/concepts/AnonymousFunction__.js +48 -22
  52. package/out/concepts/AnonymousFunction__.js.map +1 -1
  53. package/out/concepts/App__.d.ts +421 -247
  54. package/out/concepts/App__.js +286 -54
  55. package/out/concepts/App__.js.map +1 -1
  56. package/out/concepts/Argument__.d.ts +4 -3
  57. package/out/concepts/Argument__.js +42 -11
  58. package/out/concepts/Argument__.js.map +1 -1
  59. package/out/concepts/Assignee__.d.ts +45 -45
  60. package/out/concepts/Assignee__.js +15 -15
  61. package/out/concepts/Assignee__.js.map +1 -1
  62. package/out/concepts/AssignmentLine__.js +6 -5
  63. package/out/concepts/AssignmentLine__.js.map +1 -1
  64. package/out/concepts/Assignment__.d.ts +7 -6
  65. package/out/concepts/Assignment__.js +40 -22
  66. package/out/concepts/Assignment__.js.map +1 -1
  67. package/out/concepts/Attribute__.d.ts +3 -3
  68. package/out/concepts/Attribute__.js +8 -7
  69. package/out/concepts/Attribute__.js.map +1 -1
  70. package/out/concepts/AuthInterface__.js +4 -3
  71. package/out/concepts/AuthInterface__.js.map +1 -1
  72. package/out/concepts/AuthLogicForCallInterface__.d.ts +15 -15
  73. package/out/concepts/AuthLogicForCallInterface__.js +46 -27
  74. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  75. package/out/concepts/AuthLogic__.js +27 -13
  76. package/out/concepts/AuthLogic__.js.map +1 -1
  77. package/out/concepts/BackendVariable__.d.ts +5 -5
  78. package/out/concepts/BackendVariable__.js +23 -26
  79. package/out/concepts/BackendVariable__.js.map +1 -1
  80. package/out/concepts/Backend__.d.ts +18 -18
  81. package/out/concepts/Backend__.js +13 -13
  82. package/out/concepts/Backend__.js.map +1 -1
  83. package/out/concepts/BatchAssignment__.d.ts +34 -33
  84. package/out/concepts/BatchAssignment__.js +83 -43
  85. package/out/concepts/BatchAssignment__.js.map +1 -1
  86. package/out/concepts/BinaryExpression__.d.ts +7 -6
  87. package/out/concepts/BinaryExpression__.js +60 -24
  88. package/out/concepts/BinaryExpression__.js.map +1 -1
  89. package/out/concepts/BindAttribute__.d.ts +37 -37
  90. package/out/concepts/BindAttribute__.js +101 -48
  91. package/out/concepts/BindAttribute__.js.map +1 -1
  92. package/out/concepts/BindDirective__.d.ts +13 -13
  93. package/out/concepts/BindDirective__.js +23 -21
  94. package/out/concepts/BindDirective__.js.map +1 -1
  95. package/out/concepts/BindEvent__.d.ts +28 -28
  96. package/out/concepts/BindEvent__.js +99 -48
  97. package/out/concepts/BindEvent__.js.map +1 -1
  98. package/out/concepts/BindStyle__.d.ts +14 -15
  99. package/out/concepts/BindStyle__.js +16 -16
  100. package/out/concepts/BindStyle__.js.map +1 -1
  101. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  102. package/out/concepts/BooleanLiteral__.js +12 -5
  103. package/out/concepts/BooleanLiteral__.js.map +1 -1
  104. package/out/concepts/CallAuthInterface__.d.ts +15 -15
  105. package/out/concepts/CallAuthInterface__.js +23 -22
  106. package/out/concepts/CallAuthInterface__.js.map +1 -1
  107. package/out/concepts/CallConnector__.d.ts +11 -9
  108. package/out/concepts/CallConnector__.js +79 -36
  109. package/out/concepts/CallConnector__.js.map +1 -1
  110. package/out/concepts/CallFunction__.d.ts +17 -16
  111. package/out/concepts/CallFunction__.js +95 -63
  112. package/out/concepts/CallFunction__.js.map +1 -1
  113. package/out/concepts/CallInterface__.d.ts +9 -8
  114. package/out/concepts/CallInterface__.js +71 -30
  115. package/out/concepts/CallInterface__.js.map +1 -1
  116. package/out/concepts/CallLogic__.d.ts +20 -19
  117. package/out/concepts/CallLogic__.js +155 -52
  118. package/out/concepts/CallLogic__.js.map +1 -1
  119. package/out/concepts/CallQueryComponent__.d.ts +51 -51
  120. package/out/concepts/CallQueryComponent__.js +66 -63
  121. package/out/concepts/CallQueryComponent__.js.map +1 -1
  122. package/out/concepts/Comment__.d.ts +1 -0
  123. package/out/concepts/Comment__.js +13 -6
  124. package/out/concepts/Comment__.js.map +1 -1
  125. package/out/concepts/CompletionProperty__.d.ts +3 -3
  126. package/out/concepts/CompletionProperty__.js +8 -7
  127. package/out/concepts/CompletionProperty__.js.map +1 -1
  128. package/out/concepts/ConfigGroup__.d.ts +15 -15
  129. package/out/concepts/ConfigGroup__.js +9 -9
  130. package/out/concepts/ConfigGroup__.js.map +1 -1
  131. package/out/concepts/ConfigPropertyValue__.js +4 -3
  132. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  133. package/out/concepts/ConfigProperty__.d.ts +15 -15
  134. package/out/concepts/ConfigProperty__.js +10 -10
  135. package/out/concepts/ConfigProperty__.js.map +1 -1
  136. package/out/concepts/Configuration__.d.ts +15 -15
  137. package/out/concepts/Configuration__.js +9 -9
  138. package/out/concepts/Configuration__.js.map +1 -1
  139. package/out/concepts/Connection__.d.ts +166 -0
  140. package/out/concepts/Connection__.js +332 -0
  141. package/out/concepts/Connection__.js.map +1 -0
  142. package/out/concepts/ConnectorTrigger__.js +4 -3
  143. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  144. package/out/concepts/Connector__.d.ts +66 -66
  145. package/out/concepts/Connector__.js +16 -15
  146. package/out/concepts/Connector__.js.map +1 -1
  147. package/out/concepts/Constant__.d.ts +3 -3
  148. package/out/concepts/Constant__.js +8 -7
  149. package/out/concepts/Constant__.js.map +1 -1
  150. package/out/concepts/DataElement__.d.ts +3 -3
  151. package/out/concepts/DataElement__.js +6 -5
  152. package/out/concepts/DataElement__.js.map +1 -1
  153. package/out/concepts/DataSource__.d.ts +15 -15
  154. package/out/concepts/DataSource__.js +55 -39
  155. package/out/concepts/DataSource__.js.map +1 -1
  156. package/out/concepts/DatabaseTypeAnnotation__.js +4 -3
  157. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  158. package/out/concepts/Destination__.d.ts +12 -11
  159. package/out/concepts/Destination__.js +93 -36
  160. package/out/concepts/Destination__.js.map +1 -1
  161. package/out/concepts/End__.js +15 -13
  162. package/out/concepts/End__.js.map +1 -1
  163. package/out/concepts/EntityIndex__.d.ts +1 -1
  164. package/out/concepts/EntityIndex__.js +6 -5
  165. package/out/concepts/EntityIndex__.js.map +1 -1
  166. package/out/concepts/EntityProperty__.d.ts +8 -7
  167. package/out/concepts/EntityProperty__.js +39 -24
  168. package/out/concepts/EntityProperty__.js.map +1 -1
  169. package/out/concepts/Entity__.d.ts +31 -30
  170. package/out/concepts/Entity__.js +40 -16
  171. package/out/concepts/Entity__.js.map +1 -1
  172. package/out/concepts/EnumItem__.d.ts +1 -0
  173. package/out/concepts/EnumItem__.js +12 -5
  174. package/out/concepts/EnumItem__.js.map +1 -1
  175. package/out/concepts/Enum__.d.ts +9 -8
  176. package/out/concepts/Enum__.js +24 -11
  177. package/out/concepts/Enum__.js.map +1 -1
  178. package/out/concepts/Event__.d.ts +15 -15
  179. package/out/concepts/Event__.js +6 -5
  180. package/out/concepts/Event__.js.map +1 -1
  181. package/out/concepts/ExternalDestination__.d.ts +6 -6
  182. package/out/concepts/ExternalDestination__.js +12 -11
  183. package/out/concepts/ExternalDestination__.js.map +1 -1
  184. package/out/concepts/ForEachStatement__.d.ts +25 -24
  185. package/out/concepts/ForEachStatement__.js +101 -36
  186. package/out/concepts/ForEachStatement__.js.map +1 -1
  187. package/out/concepts/FrontendLibrary__.d.ts +30 -30
  188. package/out/concepts/FrontendLibrary__.js +12 -13
  189. package/out/concepts/FrontendLibrary__.js.map +1 -1
  190. package/out/concepts/FrontendVariable__.js +4 -3
  191. package/out/concepts/FrontendVariable__.js.map +1 -1
  192. package/out/concepts/Frontend__.d.ts +64 -65
  193. package/out/concepts/Frontend__.js +23 -27
  194. package/out/concepts/Frontend__.js.map +1 -1
  195. package/out/concepts/Function__.d.ts +64 -63
  196. package/out/concepts/Function__.js +49 -21
  197. package/out/concepts/Function__.js.map +1 -1
  198. package/out/concepts/Identifier__.js +37 -31
  199. package/out/concepts/Identifier__.js.map +1 -1
  200. package/out/concepts/IfStatement__.d.ts +20 -19
  201. package/out/concepts/IfStatement__.js +64 -34
  202. package/out/concepts/IfStatement__.js.map +1 -1
  203. package/out/concepts/Integration__.d.ts +3 -3
  204. package/out/concepts/Integration__.js +8 -7
  205. package/out/concepts/Integration__.js.map +1 -1
  206. package/out/concepts/InterfaceParam__.d.ts +3 -3
  207. package/out/concepts/InterfaceParam__.js +7 -6
  208. package/out/concepts/InterfaceParam__.js.map +1 -1
  209. package/out/concepts/Interface__.d.ts +33 -33
  210. package/out/concepts/Interface__.js +19 -20
  211. package/out/concepts/Interface__.js.map +1 -1
  212. package/out/concepts/JSBlock__.d.ts +1 -0
  213. package/out/concepts/JSBlock__.js +12 -5
  214. package/out/concepts/JSBlock__.js.map +1 -1
  215. package/out/concepts/JavaLogic__.js +10 -9
  216. package/out/concepts/JavaLogic__.js.map +1 -1
  217. package/out/concepts/LogicItem__.d.ts +6 -0
  218. package/out/concepts/LogicItem__.js +14 -5
  219. package/out/concepts/LogicItem__.js.map +1 -1
  220. package/out/concepts/Logic__.d.ts +80 -79
  221. package/out/concepts/Logic__.js +204 -58
  222. package/out/concepts/Logic__.js.map +1 -1
  223. package/out/concepts/MatchCase__.d.ts +39 -38
  224. package/out/concepts/MatchCase__.js +122 -37
  225. package/out/concepts/MatchCase__.js.map +1 -1
  226. package/out/concepts/Match__.d.ts +13 -11
  227. package/out/concepts/Match__.js +128 -60
  228. package/out/concepts/Match__.js.map +1 -1
  229. package/out/concepts/MemberExpression__.d.ts +7 -6
  230. package/out/concepts/MemberExpression__.js +52 -22
  231. package/out/concepts/MemberExpression__.js.map +1 -1
  232. package/out/concepts/MicroApp__.js +4 -3
  233. package/out/concepts/MicroApp__.js.map +1 -1
  234. package/out/concepts/Module__.d.ts +239 -155
  235. package/out/concepts/Module__.js +139 -33
  236. package/out/concepts/Module__.js.map +1 -1
  237. package/out/concepts/MsgTriggerEvent__.d.ts +15 -15
  238. package/out/concepts/MsgTriggerEvent__.js +6 -5
  239. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  240. package/out/concepts/MsgTriggerLauncher__.d.ts +23 -15
  241. package/out/concepts/MsgTriggerLauncher__.js +24 -5
  242. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  243. package/out/concepts/Namespace__.d.ts +180 -180
  244. package/out/concepts/Namespace__.js +33 -34
  245. package/out/concepts/Namespace__.js.map +1 -1
  246. package/out/concepts/NewComposite__.d.ts +49 -48
  247. package/out/concepts/NewComposite__.js +164 -49
  248. package/out/concepts/NewComposite__.js.map +1 -1
  249. package/out/concepts/NewList__.d.ts +19 -18
  250. package/out/concepts/NewList__.js +29 -12
  251. package/out/concepts/NewList__.js.map +1 -1
  252. package/out/concepts/NewMap__.d.ts +34 -33
  253. package/out/concepts/NewMap__.js +81 -72
  254. package/out/concepts/NewMap__.js.map +1 -1
  255. package/out/concepts/New__.js +6 -5
  256. package/out/concepts/New__.js.map +1 -1
  257. package/out/concepts/NullLiteral__.js +6 -5
  258. package/out/concepts/NullLiteral__.js.map +1 -1
  259. package/out/concepts/NumericLiteral__.d.ts +4 -3
  260. package/out/concepts/NumericLiteral__.js +15 -8
  261. package/out/concepts/NumericLiteral__.js.map +1 -1
  262. package/out/concepts/OqlQueryComponent__.d.ts +4 -3
  263. package/out/concepts/OqlQueryComponent__.js +25 -16
  264. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  265. package/out/concepts/OverriddenLogic__.d.ts +79 -79
  266. package/out/concepts/OverriddenLogic__.js +79 -58
  267. package/out/concepts/OverriddenLogic__.js.map +1 -1
  268. package/out/concepts/Param__.d.ts +6 -5
  269. package/out/concepts/Param__.js +66 -29
  270. package/out/concepts/Param__.js.map +1 -1
  271. package/out/concepts/Point__.js +4 -3
  272. package/out/concepts/Point__.js.map +1 -1
  273. package/out/concepts/ProcessComponent__.d.ts +30 -30
  274. package/out/concepts/ProcessComponent__.js +8 -7
  275. package/out/concepts/ProcessComponent__.js.map +1 -1
  276. package/out/concepts/ProcessElement__.d.ts +96 -96
  277. package/out/concepts/ProcessElement__.js +34 -34
  278. package/out/concepts/ProcessElement__.js.map +1 -1
  279. package/out/concepts/ProcessOutcome__.js +6 -5
  280. package/out/concepts/ProcessOutcome__.js.map +1 -1
  281. package/out/concepts/ProcessOutcomes__.js +6 -5
  282. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  283. package/out/concepts/Process__.d.ts +75 -75
  284. package/out/concepts/Process__.js +33 -30
  285. package/out/concepts/Process__.js.map +1 -1
  286. package/out/concepts/QueryAggregateExpression__.d.ts +3 -3
  287. package/out/concepts/QueryAggregateExpression__.js +8 -7
  288. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  289. package/out/concepts/QueryFieldExpression__.js +7 -6
  290. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  291. package/out/concepts/QueryFromExpression__.d.ts +8 -8
  292. package/out/concepts/QueryFromExpression__.js +8 -7
  293. package/out/concepts/QueryFromExpression__.js.map +1 -1
  294. package/out/concepts/QueryGroupByExpression__.d.ts +3 -3
  295. package/out/concepts/QueryGroupByExpression__.js +9 -10
  296. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  297. package/out/concepts/QueryJoinExpression__.d.ts +23 -23
  298. package/out/concepts/QueryJoinExpression__.js +11 -10
  299. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  300. package/out/concepts/QueryLimitExpression__.d.ts +6 -6
  301. package/out/concepts/QueryLimitExpression__.js +9 -8
  302. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  303. package/out/concepts/QueryOrderByExpression__.d.ts +6 -6
  304. package/out/concepts/QueryOrderByExpression__.js +9 -8
  305. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  306. package/out/concepts/QuerySelectExpression__.d.ts +30 -30
  307. package/out/concepts/QuerySelectExpression__.js +9 -8
  308. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  309. package/out/concepts/Rect__.js +4 -3
  310. package/out/concepts/Rect__.js.map +1 -1
  311. package/out/concepts/Return__.d.ts +4 -3
  312. package/out/concepts/Return__.js +37 -18
  313. package/out/concepts/Return__.js.map +1 -1
  314. package/out/concepts/Role__.js +9 -9
  315. package/out/concepts/Role__.js.map +1 -1
  316. package/out/concepts/SelectMembers__.d.ts +18 -18
  317. package/out/concepts/SelectMembers__.js +10 -9
  318. package/out/concepts/SelectMembers__.js.map +1 -1
  319. package/out/concepts/Slot__.d.ts +3 -3
  320. package/out/concepts/Slot__.js +6 -5
  321. package/out/concepts/Slot__.js.map +1 -1
  322. package/out/concepts/SqlQueryComponent__.d.ts +4 -3
  323. package/out/concepts/SqlQueryComponent__.js +21 -12
  324. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  325. package/out/concepts/Start__.js +6 -5
  326. package/out/concepts/Start__.js.map +1 -1
  327. package/out/concepts/StringInterpolation__.d.ts +16 -15
  328. package/out/concepts/StringInterpolation__.js +37 -14
  329. package/out/concepts/StringInterpolation__.js.map +1 -1
  330. package/out/concepts/StringLiteral__.d.ts +1 -0
  331. package/out/concepts/StringLiteral__.js +13 -8
  332. package/out/concepts/StringLiteral__.js.map +1 -1
  333. package/out/concepts/StructureProperty__.d.ts +4 -3
  334. package/out/concepts/StructureProperty__.js +22 -9
  335. package/out/concepts/StructureProperty__.js.map +1 -1
  336. package/out/concepts/Structure__.d.ts +31 -30
  337. package/out/concepts/Structure__.js +27 -15
  338. package/out/concepts/Structure__.js.map +1 -1
  339. package/out/concepts/SwitchCase__.d.ts +12 -11
  340. package/out/concepts/SwitchCase__.js +69 -31
  341. package/out/concepts/SwitchCase__.js.map +1 -1
  342. package/out/concepts/SwitchStatement__.d.ts +9 -8
  343. package/out/concepts/SwitchStatement__.js +27 -7
  344. package/out/concepts/SwitchStatement__.js.map +1 -1
  345. package/out/concepts/Theme__.js +4 -3
  346. package/out/concepts/Theme__.js.map +1 -1
  347. package/out/concepts/Transactional__.js +4 -3
  348. package/out/concepts/Transactional__.js.map +1 -1
  349. package/out/concepts/TriggerEvent__.d.ts +15 -15
  350. package/out/concepts/TriggerEvent__.js +6 -5
  351. package/out/concepts/TriggerEvent__.js.map +1 -1
  352. package/out/concepts/TriggerLauncher__.d.ts +15 -10
  353. package/out/concepts/TriggerLauncher__.js +54 -32
  354. package/out/concepts/TriggerLauncher__.js.map +1 -1
  355. package/out/concepts/TypeAnnotation__.d.ts +28 -27
  356. package/out/concepts/TypeAnnotation__.js +144 -124
  357. package/out/concepts/TypeAnnotation__.js.map +1 -1
  358. package/out/concepts/TypeParam__.d.ts +1 -0
  359. package/out/concepts/TypeParam__.js +12 -5
  360. package/out/concepts/TypeParam__.js.map +1 -1
  361. package/out/concepts/UnaryExpression__.d.ts +4 -3
  362. package/out/concepts/UnaryExpression__.js +31 -20
  363. package/out/concepts/UnaryExpression__.js.map +1 -1
  364. package/out/concepts/Unparsed__.d.ts +1 -0
  365. package/out/concepts/Unparsed__.js +12 -5
  366. package/out/concepts/Unparsed__.js.map +1 -1
  367. package/out/concepts/UseComponent__.js +4 -3
  368. package/out/concepts/UseComponent__.js.map +1 -1
  369. package/out/concepts/ValidationRule__.d.ts +14 -14
  370. package/out/concepts/ValidationRule__.js +19 -17
  371. package/out/concepts/ValidationRule__.js.map +1 -1
  372. package/out/concepts/Variable__.d.ts +4 -3
  373. package/out/concepts/Variable__.js +39 -23
  374. package/out/concepts/Variable__.js.map +1 -1
  375. package/out/concepts/ViewBlock__.js +4 -3
  376. package/out/concepts/ViewBlock__.js.map +1 -1
  377. package/out/concepts/ViewComponent__.d.ts +90 -90
  378. package/out/concepts/ViewComponent__.js +16 -15
  379. package/out/concepts/ViewComponent__.js.map +1 -1
  380. package/out/concepts/ViewElement__.d.ts +91 -86
  381. package/out/concepts/ViewElement__.js +218 -146
  382. package/out/concepts/ViewElement__.js.map +1 -1
  383. package/out/concepts/View__.d.ts +92 -92
  384. package/out/concepts/View__.js +135 -60
  385. package/out/concepts/View__.js.map +1 -1
  386. package/out/concepts/WhileStatement__.d.ts +12 -11
  387. package/out/concepts/WhileStatement__.js +46 -23
  388. package/out/concepts/WhileStatement__.js.map +1 -1
  389. package/out/concepts/index__.d.ts +2 -1
  390. package/out/concepts/index__.js +2 -1
  391. package/out/concepts/index__.js.map +1 -1
  392. package/out/concepts/types__.d.ts +2 -1
  393. package/out/decorators/index.d.ts +1 -1
  394. package/out/decorators/index.js +20 -7
  395. package/out/decorators/index.js.map +1 -1
  396. package/out/decorators/promise.d.ts +7 -0
  397. package/out/decorators/promise.js +28 -0
  398. package/out/decorators/promise.js.map +1 -0
  399. package/out/enums/KEYWORDS.js.map +1 -1
  400. package/out/enums/LEVEL_NAME_MAP.js.map +1 -1
  401. package/out/generator/compileComponent.js.map +1 -1
  402. package/out/generator/genBundleFiles.d.ts +4 -1
  403. package/out/generator/genBundleFiles.js +15 -11
  404. package/out/generator/genBundleFiles.js.map +1 -1
  405. package/out/generator/genHash.js.map +1 -1
  406. package/out/generator/genMetaData.js +12 -8
  407. package/out/generator/genMetaData.js.map +1 -1
  408. package/out/generator/genReleaseBody.js +33 -35
  409. package/out/generator/genReleaseBody.js.map +1 -1
  410. package/out/generator/microApp.js +2 -1
  411. package/out/generator/microApp.js.map +1 -1
  412. package/out/generator/permission.js +16 -14
  413. package/out/generator/permission.js.map +1 -1
  414. package/out/generator/styleReplacer.js +4 -7
  415. package/out/generator/styleReplacer.js.map +1 -1
  416. package/out/index.d.ts +0 -2
  417. package/out/index.js +0 -3
  418. package/out/index.js.map +1 -1
  419. package/out/manager/diagnostic.d.ts +1 -1
  420. package/out/manager/diagnostic.js.map +1 -1
  421. package/out/manager/stepRecorder.js +13 -9
  422. package/out/manager/stepRecorder.js.map +1 -1
  423. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  424. package/out/natural/RequirementAnalyzer.js +196 -0
  425. package/out/natural/RequirementAnalyzer.js.map +1 -0
  426. package/out/natural/RequirementExecutor.d.ts +51 -0
  427. package/out/natural/RequirementExecutor.js +692 -0
  428. package/out/natural/RequirementExecutor.js.map +1 -0
  429. package/out/natural/componentData.d.ts +31 -0
  430. package/out/natural/componentData.js +85 -0
  431. package/out/natural/componentData.js.map +1 -0
  432. package/out/natural/genNaturalTS.d.ts +3 -0
  433. package/out/natural/genNaturalTS.js +76 -0
  434. package/out/natural/genNaturalTS.js.map +1 -0
  435. package/out/natural/index.d.ts +4 -0
  436. package/out/natural/index.js +21 -0
  437. package/out/natural/index.js.map +1 -0
  438. package/out/natural/knowledgeMap.d.ts +4 -0
  439. package/out/natural/knowledgeMap.js +40 -0
  440. package/out/natural/knowledgeMap.js.map +1 -0
  441. package/out/natural/naslStdlibMap.d.ts +2 -0
  442. package/out/natural/naslStdlibMap.js +26 -0
  443. package/out/natural/naslStdlibMap.js.map +1 -0
  444. package/out/natural/transformTSCode.d.ts +7 -0
  445. package/out/natural/transformTSCode.js +760 -0
  446. package/out/natural/transformTSCode.js.map +1 -0
  447. package/out/sentry/index.d.ts +2 -1
  448. package/out/sentry/index.js.map +1 -1
  449. package/out/server/createUiTs.js +28 -16
  450. package/out/server/createUiTs.js.map +1 -1
  451. package/out/server/entity2LogicNamespace.js +24 -22
  452. package/out/server/entity2LogicNamespace.js.map +1 -1
  453. package/out/server/event.js.map +1 -1
  454. package/out/server/extendBaseNode.js +55 -70
  455. package/out/server/extendBaseNode.js.map +1 -1
  456. package/out/server/formatTsUtils.js +46 -50
  457. package/out/server/formatTsUtils.js.map +1 -1
  458. package/out/server/getConnector.d.ts +3 -3
  459. package/out/server/getConnector.js +7 -8
  460. package/out/server/getConnector.js.map +1 -1
  461. package/out/server/getExtensionModules.js +2 -2
  462. package/out/server/getExtensionModules.js.map +1 -1
  463. package/out/server/getFunctions.js.map +1 -1
  464. package/out/server/getInterfaces.js.map +1 -1
  465. package/out/server/getLogging.js.map +1 -1
  466. package/out/server/getLogics.d.ts +1 -1
  467. package/out/server/getLogics.js +34 -16
  468. package/out/server/getLogics.js.map +1 -1
  469. package/out/server/getMemberIdentifier.js +13 -10
  470. package/out/server/getMemberIdentifier.js.map +1 -1
  471. package/out/server/getProcessComponents.js.map +1 -1
  472. package/out/server/getProcesses.js +21 -29
  473. package/out/server/getProcesses.js.map +1 -1
  474. package/out/server/getScope.js.map +1 -1
  475. package/out/server/getValidates.js.map +1 -1
  476. package/out/server/index.js +0 -1
  477. package/out/server/index.js.map +1 -1
  478. package/out/server/naslServer.d.ts +99 -94
  479. package/out/server/naslServer.js +485 -465
  480. package/out/server/naslServer.js.map +1 -1
  481. package/out/server/naslStdlibMap.js +4 -2
  482. package/out/server/naslStdlibMap.js.map +1 -1
  483. package/out/server/process2LogicNamespace.js.map +1 -1
  484. package/out/server/translator.d.ts +1 -1
  485. package/out/server/translator.js +52 -47
  486. package/out/server/translator.js.map +1 -1
  487. package/out/service/storage/init.d.ts +15 -1
  488. package/out/service/storage/init.js +65 -56
  489. package/out/service/storage/init.js.map +1 -1
  490. package/out/templator/genCallComponentLogic.js +1 -2
  491. package/out/templator/genCallComponentLogic.js.map +1 -1
  492. package/out/templator/genCreateBlock.js +13 -8
  493. package/out/templator/genCreateBlock.js.map +1 -1
  494. package/out/templator/genCurdEditMultipleKeyBlock.js +19 -10
  495. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  496. package/out/templator/genCurdMultipleKeyBlock.js +22 -26
  497. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  498. package/out/templator/genEditTableBlock.js +11 -12
  499. package/out/templator/genEditTableBlock.js.map +1 -1
  500. package/out/templator/genEnumSelectBlock.js +1 -1
  501. package/out/templator/genEnumSelectBlock.js.map +1 -1
  502. package/out/templator/genGetBlock.js +2 -2
  503. package/out/templator/genGetBlock.js.map +1 -1
  504. package/out/templator/genGridViewBlock.js +10 -14
  505. package/out/templator/genGridViewBlock.js.map +1 -1
  506. package/out/templator/genListViewBlock.js +4 -7
  507. package/out/templator/genListViewBlock.js.map +1 -1
  508. package/out/templator/genQueryComponent.js +22 -15
  509. package/out/templator/genQueryComponent.js.map +1 -1
  510. package/out/templator/genSelectBlock.js +12 -33
  511. package/out/templator/genSelectBlock.js.map +1 -1
  512. package/out/templator/genTableBlock.js +8 -10
  513. package/out/templator/genTableBlock.js.map +1 -1
  514. package/out/templator/genUpdateBlock.js +12 -7
  515. package/out/templator/genUpdateBlock.js.map +1 -1
  516. package/out/templator/index.d.ts +4 -2
  517. package/out/templator/index.js +2 -2
  518. package/out/templator/index.js.map +1 -1
  519. package/out/templator/utils.d.ts +2 -2
  520. package/out/templator/utils.js +21 -22
  521. package/out/templator/utils.js.map +1 -1
  522. package/out/translator/index.js +27 -28
  523. package/out/translator/index.js.map +1 -1
  524. package/out/utils/index.d.ts +2 -1
  525. package/out/utils/index.js +8 -14
  526. package/out/utils/index.js.map +1 -1
  527. package/out/utils/logger.js.map +1 -1
  528. package/out/utils/sortTsString.js +3 -1
  529. package/out/utils/sortTsString.js.map +1 -1
  530. package/out/utils/string.js +8 -11
  531. package/out/utils/string.js.map +1 -1
  532. package/out/utils/time-slicing.d.ts +41 -0
  533. package/out/utils/time-slicing.js +81 -0
  534. package/out/utils/time-slicing.js.map +1 -0
  535. package/out/utils/traverse.js +4 -6
  536. package/out/utils/traverse.js.map +1 -1
  537. package/package.json +11 -7
  538. package/sandbox/stdlib/nasl.auth.ts +49 -46
  539. package/sandbox/stdlib/nasl.http.ts +29 -31
  540. package/sandbox/stdlib/nasl.ui.definition.ts +13 -1
  541. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  542. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  543. package/sandbox-natural/stdlib/nasl.ui.ts +56 -0
  544. package/sandbox-natural/stdlib/nasl.util.ts +26 -0
  545. package/sandbox-natural/tsconfig.json +12 -0
  546. package/src/automate/upgrader/2.20.js +1 -1
  547. package/src/bak/translator.js +92 -99
  548. package/src/breakpoint/generator/AfterStartNode.ts +19 -17
  549. package/src/breakpoint/generator/BeforeEndNode.ts +17 -17
  550. package/src/breakpoint/generator/BreakpointNode.ts +243 -195
  551. package/src/breakpoint/generator/CallbackNode.ts +20 -0
  552. package/src/breakpoint/generator/FragmentNode.ts +14 -0
  553. package/src/breakpoint/generator/index.ts +107 -80
  554. package/src/breakpoint/shared/constants.ts +59 -53
  555. package/src/breakpoint/shared/operations.ts +6 -6
  556. package/src/breakpoint/shared/socket.ts +277 -223
  557. package/src/breakpoint/shared/utils.ts +166 -146
  558. package/src/breakpoint/store/core.ts +326 -297
  559. package/src/breakpoint/store/dock.ts +103 -103
  560. package/src/breakpoint/types/index.d.ts +11 -11
  561. package/src/common/BaseNode.ts +1102 -1024
  562. package/src/common/Command.ts +46 -16
  563. package/src/common/ComponentAPI.ts +72 -72
  564. package/src/common/EventEmitter.ts +80 -76
  565. package/src/common/Messager.ts +223 -224
  566. package/src/common/asyncFuncMap.ts +12 -12
  567. package/src/concepts/Abort__.ts +53 -60
  568. package/src/concepts/Anchor__.ts +158 -149
  569. package/src/concepts/AnonymousFunction__.ts +584 -551
  570. package/src/concepts/App__.ts +4278 -3671
  571. package/src/concepts/Argument__.ts +234 -210
  572. package/src/concepts/Assignee__.ts +680 -656
  573. package/src/concepts/AssignmentLine__.ts +80 -84
  574. package/src/concepts/Assignment__.ts +275 -264
  575. package/src/concepts/Attribute__.ts +183 -184
  576. package/src/concepts/AuthInterface__.ts +61 -63
  577. package/src/concepts/AuthLogicForCallInterface__.ts +540 -511
  578. package/src/concepts/AuthLogic__.ts +210 -194
  579. package/src/concepts/BackendVariable__.ts +414 -415
  580. package/src/concepts/Backend__.ts +317 -303
  581. package/src/concepts/BatchAssignment__.ts +987 -939
  582. package/src/concepts/BinaryExpression__.ts +370 -341
  583. package/src/concepts/BindAttribute__.ts +1057 -1007
  584. package/src/concepts/BindDirective__.ts +540 -542
  585. package/src/concepts/BindEvent__.ts +992 -911
  586. package/src/concepts/BindStyle__.ts +442 -451
  587. package/src/concepts/BooleanLiteral__.ts +89 -90
  588. package/src/concepts/CallAuthInterface__.ts +458 -433
  589. package/src/concepts/CallConnector__.ts +209 -164
  590. package/src/concepts/CallFunction__.ts +600 -600
  591. package/src/concepts/CallInterface__.ts +752 -721
  592. package/src/concepts/CallLogic__.ts +1324 -1200
  593. package/src/concepts/CallQueryComponent__.ts +1580 -1501
  594. package/src/concepts/Comment__.ts +69 -68
  595. package/src/concepts/CompletionProperty__.ts +250 -255
  596. package/src/concepts/ConfigGroup__.ts +312 -296
  597. package/src/concepts/ConfigPropertyValue__.ts +92 -93
  598. package/src/concepts/ConfigProperty__.ts +374 -357
  599. package/src/concepts/Configuration__.ts +288 -276
  600. package/src/concepts/Connection__.ts +426 -0
  601. package/src/concepts/ConnectorTrigger__.ts +146 -142
  602. package/src/concepts/Connector__.ts +1090 -1048
  603. package/src/concepts/Constant__.ts +226 -219
  604. package/src/concepts/DataElement__.ts +108 -115
  605. package/src/concepts/DataSource__.ts +508 -472
  606. package/src/concepts/DatabaseTypeAnnotation__.ts +53 -59
  607. package/src/concepts/Destination__.ts +808 -746
  608. package/src/concepts/End__.ts +85 -89
  609. package/src/concepts/EntityIndex__.ts +206 -202
  610. package/src/concepts/EntityProperty__.ts +825 -791
  611. package/src/concepts/Entity__.ts +921 -864
  612. package/src/concepts/EnumItem__.ts +133 -125
  613. package/src/concepts/Enum__.ts +347 -337
  614. package/src/concepts/Event__.ts +305 -292
  615. package/src/concepts/ExternalDestination__.ts +269 -280
  616. package/src/concepts/ForEachStatement__.ts +583 -531
  617. package/src/concepts/FrontendLibrary__.ts +507 -485
  618. package/src/concepts/FrontendVariable__.ts +44 -49
  619. package/src/concepts/Frontend__.ts +1239 -1187
  620. package/src/concepts/Function__.ts +1110 -1045
  621. package/src/concepts/Identifier__.ts +276 -272
  622. package/src/concepts/IfStatement__.ts +467 -436
  623. package/src/concepts/Integration__.ts +136 -137
  624. package/src/concepts/InterfaceParam__.ts +239 -238
  625. package/src/concepts/Interface__.ts +969 -948
  626. package/src/concepts/JSBlock__.ts +83 -83
  627. package/src/concepts/JavaLogic__.ts +101 -106
  628. package/src/concepts/LogicItem__.ts +307 -237
  629. package/src/concepts/Logic__.ts +2301 -2088
  630. package/src/concepts/MatchCase__.ts +886 -779
  631. package/src/concepts/Match__.ts +728 -659
  632. package/src/concepts/MemberExpression__.ts +330 -311
  633. package/src/concepts/MicroApp__.ts +91 -97
  634. package/src/concepts/Module__.ts +2590 -2278
  635. package/src/concepts/MsgTriggerEvent__.ts +297 -281
  636. package/src/concepts/MsgTriggerLauncher__.ts +286 -256
  637. package/src/concepts/Namespace__.ts +2579 -2466
  638. package/src/concepts/NewComposite__.ts +1487 -1350
  639. package/src/concepts/NewList__.ts +464 -450
  640. package/src/concepts/NewMap__.ts +691 -674
  641. package/src/concepts/New__.ts +42 -49
  642. package/src/concepts/NullLiteral__.ts +66 -72
  643. package/src/concepts/NumericLiteral__.ts +169 -169
  644. package/src/concepts/OqlQueryComponent__.ts +282 -279
  645. package/src/concepts/OverriddenLogic__.ts +2142 -2097
  646. package/src/concepts/Param__.ts +500 -442
  647. package/src/concepts/Point__.ts +53 -59
  648. package/src/concepts/ProcessComponent__.ts +497 -475
  649. package/src/concepts/ProcessElement__.ts +1852 -1780
  650. package/src/concepts/ProcessOutcome__.ts +59 -64
  651. package/src/concepts/ProcessOutcomes__.ts +59 -64
  652. package/src/concepts/Process__.ts +1491 -1428
  653. package/src/concepts/QueryAggregateExpression__.ts +135 -142
  654. package/src/concepts/QueryFieldExpression__.ts +138 -142
  655. package/src/concepts/QueryFromExpression__.ts +246 -254
  656. package/src/concepts/QueryGroupByExpression__.ts +130 -136
  657. package/src/concepts/QueryJoinExpression__.ts +441 -438
  658. package/src/concepts/QueryLimitExpression__.ts +159 -166
  659. package/src/concepts/QueryOrderByExpression__.ts +173 -180
  660. package/src/concepts/QuerySelectExpression__.ts +464 -439
  661. package/src/concepts/Rect__.ts +73 -79
  662. package/src/concepts/Return__.ts +366 -345
  663. package/src/concepts/Role__.ts +146 -147
  664. package/src/concepts/SelectMembers__.ts +358 -350
  665. package/src/concepts/Slot__.ts +152 -153
  666. package/src/concepts/SqlQueryComponent__.ts +230 -228
  667. package/src/concepts/Start__.ts +45 -52
  668. package/src/concepts/StringInterpolation__.ts +323 -296
  669. package/src/concepts/StringLiteral__.ts +113 -115
  670. package/src/concepts/StructureProperty__.ts +306 -295
  671. package/src/concepts/Structure__.ts +615 -578
  672. package/src/concepts/SwitchCase__.ts +326 -290
  673. package/src/concepts/SwitchStatement__.ts +236 -229
  674. package/src/concepts/Theme__.ts +64 -68
  675. package/src/concepts/Transactional__.ts +159 -153
  676. package/src/concepts/TriggerEvent__.ts +285 -274
  677. package/src/concepts/TriggerLauncher__.ts +232 -196
  678. package/src/concepts/TypeAnnotation__.ts +1049 -1011
  679. package/src/concepts/TypeParam__.ts +48 -50
  680. package/src/concepts/UnaryExpression__.ts +163 -153
  681. package/src/concepts/Unparsed__.ts +81 -82
  682. package/src/concepts/UseComponent__.ts +53 -59
  683. package/src/concepts/ValidationRule__.ts +524 -544
  684. package/src/concepts/Variable__.ts +419 -397
  685. package/src/concepts/ViewBlock__.ts +58 -64
  686. package/src/concepts/ViewComponent__.ts +1323 -1261
  687. package/src/concepts/ViewElement__.ts +2538 -2350
  688. package/src/concepts/View__.ts +2447 -2268
  689. package/src/concepts/WhileStatement__.ts +293 -272
  690. package/src/concepts/index__.ts +2 -1
  691. package/src/concepts/types__.ts +123 -121
  692. package/src/decorators/index.ts +75 -77
  693. package/src/decorators/promise.ts +28 -0
  694. package/src/enums/KEYWORDS.ts +1228 -1228
  695. package/src/enums/LEVEL_NAME_MAP.ts +24 -24
  696. package/src/generator/compileComponent.ts +10 -10
  697. package/src/generator/genBundleFiles.ts +300 -291
  698. package/src/generator/genHash.ts +2 -2
  699. package/src/generator/genMetaData.ts +280 -261
  700. package/src/generator/genReleaseBody.ts +312 -291
  701. package/src/generator/icestark.ts +1 -1
  702. package/src/generator/microApp.ts +17 -20
  703. package/src/generator/permission.ts +227 -218
  704. package/src/generator/qiankun.ts +1 -1
  705. package/src/generator/styleReplacer.ts +28 -31
  706. package/src/index.ts +0 -3
  707. package/src/manager/diagnostic.ts +84 -82
  708. package/src/manager/stepRecorder.ts +106 -94
  709. package/src/natural/RequirementAnalyzer.ts +208 -0
  710. package/src/natural/RequirementExecutor.ts +685 -0
  711. package/src/natural/componentData.ts +81 -0
  712. package/src/natural/genNaturalTS.ts +77 -0
  713. package/src/natural/index.ts +4 -0
  714. package/src/natural/knowledgeMap.ts +39 -0
  715. package/src/natural/naslStdlibMap.ts +24 -0
  716. package/src/natural/transformTSCode.ts +692 -0
  717. package/src/sentry/index.ts +109 -104
  718. package/src/server/createUiTs.ts +190 -184
  719. package/src/server/entity2LogicNamespace.ts +379 -359
  720. package/src/server/event.js +145 -145
  721. package/src/server/extendBaseNode.ts +461 -456
  722. package/src/server/formatTsUtils.ts +712 -713
  723. package/src/server/getConnector.ts +33 -33
  724. package/src/server/getExtensionModules.ts +23 -22
  725. package/src/server/getFunctions.ts +6 -6
  726. package/src/server/getInterfaces.ts +38 -37
  727. package/src/server/getLogging.ts +1 -1
  728. package/src/server/getLogics.ts +390 -344
  729. package/src/server/getMemberIdentifier.ts +286 -281
  730. package/src/server/getProcessComponents.ts +2 -2
  731. package/src/server/getProcesses.ts +548 -534
  732. package/src/server/getScope.ts +51 -51
  733. package/src/server/getValidates.ts +3 -3
  734. package/src/server/index.ts +29 -30
  735. package/src/server/naslServer.ts +4302 -4225
  736. package/src/server/naslStdlibMap.ts +43 -41
  737. package/src/server/process2LogicNamespace.ts +97 -97
  738. package/src/server/translator.ts +740 -746
  739. package/src/service/storage/init.ts +761 -728
  740. package/src/templator/genCallComponentLogic.ts +14 -15
  741. package/src/templator/genCreateBlock.ts +257 -229
  742. package/src/templator/genCurdEditMultipleKeyBlock.ts +332 -316
  743. package/src/templator/genCurdMultipleKeyBlock.ts +501 -473
  744. package/src/templator/genEditTableBlock.ts +192 -182
  745. package/src/templator/genEnumSelectBlock.ts +13 -7
  746. package/src/templator/genGetBlock.ts +57 -55
  747. package/src/templator/genGridViewBlock.ts +191 -201
  748. package/src/templator/genListViewBlock.ts +59 -64
  749. package/src/templator/genQueryComponent.ts +337 -287
  750. package/src/templator/genSelectBlock.ts +276 -285
  751. package/src/templator/genTableBlock.ts +157 -160
  752. package/src/templator/genUpdateBlock.ts +269 -255
  753. package/src/templator/index.ts +4 -4
  754. package/src/templator/utils.ts +490 -464
  755. package/src/translator/index.ts +84 -84
  756. package/src/translator/lsp.ts +22 -22
  757. package/src/translator/tsp.ts +6 -6
  758. package/src/utils/index.ts +115 -117
  759. package/src/utils/logger.ts +3 -4
  760. package/src/utils/sortTsString.ts +34 -32
  761. package/src/utils/string.ts +47 -48
  762. package/src/utils/time-slicing.ts +109 -0
  763. package/src/utils/traverse.ts +114 -126
  764. package/test/concepts/match/__snapshots__/toEmbeddedTS.spec.ts.snap +66 -0
  765. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +40 -0
  766. package/test/concepts/match/constant.ts +5 -0
  767. package/test/concepts/match/fixtures/isExpression.json +259 -0
  768. package/test/concepts/match/fixtures/lastBodyIf.json +268 -0
  769. package/test/concepts/match/fixtures/noExpression.json +176 -0
  770. package/test/concepts/match/toEmbeddedTS.spec.ts +14 -0
  771. package/test/concepts/match/toJS.spec.ts +14 -0
  772. package/test/setup.ts +2 -1
  773. package/ts-worker/src/index.js +0 -2
  774. package/tsconfig.json +21 -21
@@ -0,0 +1,685 @@
1
+ import axios from '../service/storage';
2
+ import knowledgeMap, { docsMap } from './knowledgeMap';
3
+ import { componentData } from './componentData';
4
+
5
+ interface GPTExecutorReply {
6
+ thoughts: {
7
+ text: string,
8
+ reasoning: string,
9
+ currentTask: string,
10
+ currentTaskIndex: number,
11
+ totalTaskCount: number,
12
+ criticism: string
13
+ },
14
+ command: {
15
+ name: string,
16
+ args: { [name: string]: any },
17
+ }
18
+ }
19
+
20
+ interface Memory {
21
+ requirement: string,
22
+ reply: GPTExecutorReply,
23
+ result: string
24
+ }
25
+
26
+ function tryFixJSON(str: string) {
27
+ let lastIndex = 0;
28
+ let inQuote = false;
29
+ let output: string = '';
30
+
31
+ str = str.replace(/\\\\"/g, '\\\\\\"');
32
+
33
+ function push(index: number) {
34
+ let part = str.slice(lastIndex, index);
35
+ // console.log('part---', part);
36
+ if (inQuote)
37
+ part = part.replace(/\n/g, '\\n');
38
+
39
+ lastIndex = index + 1;
40
+ output += part + (index === str.length ? '' : '"');
41
+ inQuote = !inQuote;
42
+ }
43
+
44
+ for (let i = 0; i < str.length; i++) {
45
+ if (str[i] === '"')
46
+ push(i);
47
+ }
48
+ push(str.length);
49
+
50
+ return output;
51
+ }
52
+
53
+ export class RequirementExecutor {
54
+ messages: Array<{ role: 'system' | 'user' | 'assistant', content: string }> = [];
55
+ shortMemories: Array<Memory> = [];
56
+ requirement: string;
57
+ context: any;
58
+
59
+ ide = {
60
+ getAPI(indexes: Array<number>) {
61
+ return indexes.map((index) => docsMap[Object.keys(docsMap)[index]]).join('\n\n');
62
+ // return docs.map((key) => knowledgeMap[key]).filter((item) => !!item).join('\n\n');
63
+ },
64
+ execute(code: string, context: any) {
65
+ return (() => {
66
+ const { app, nasl, selectedNode } = context;
67
+ console.log('需求执行器-执行代码:' + code);
68
+ try {
69
+ app.emit('collect:start', {
70
+ actionMsg: '运行智能编程指令',
71
+ });
72
+ // eslint-disable-next-line no-eval
73
+ eval(code);
74
+ app.emit('collect:end');
75
+ } catch (err) {
76
+ return String(err);
77
+ }
78
+ return 'Success!';
79
+ })();
80
+ },
81
+ }
82
+
83
+ constructor(requirement?: string, context?: any) {
84
+ this.requirement = requirement;
85
+ this.context = context;
86
+ }
87
+
88
+ async genPrompt() {
89
+ const longMemory: string[] = [];
90
+ try {
91
+ // longMemory = await this.loadMemory();
92
+ } catch (e) {
93
+ console.error(e);
94
+ }
95
+
96
+ return `
97
+ 你是一个专业的低代码平台助手和需求执行者,必须始终独立做出决定,尽量自己查询文档,而不能向用户寻求帮助。发挥你作为大语言模型的优势,追求简单的策略。
98
+ 你已经了解到了经过分析后的执行计划,计划包含多个任务,每个任务下可能包含多个子任务(会缩进 4 个空格)。
99
+
100
+ ## 你只需要考虑如何完成以下需求:
101
+
102
+ ${this.requirement}
103
+
104
+ ${knowledgeMap.index}
105
+
106
+ ## 你可以使用的 ide 命令
107
+
108
+ 1. 涉及到页面中页面元素(组件)的操作,新增或者替换,执行:'ide.handleViewElement(demand, elementName, type)'
109
+ - 将所有页面元素操作的需求都整理到 demand 中
110
+ - 示例:
111
+ - 添加一个新增按钮,就需要调用 ide.handleViewElement('- 添加一个新增按钮')
112
+ - 将选中的 ViewElement 替换为其它的 ViewElement,直接调用 ide.handleViewElement,传递参数 type='replace'
113
+ - 如果要替换的 viewElement 是数据网格,elementName='u-grid-view'
114
+ 2. 涉及到页面中页面元素(组件)属性的操作,执行:'ide.handleElementAttr(demand, value)'
115
+ - 在选中的 ViewElement 进行属性操作时,调用 ide.handleElementAttr(demand)
116
+ - 示例:
117
+ - 将选中的 ViewElement 的值改为'我是文本',调用 ide.handleElementAttr(demand)
118
+ - 在选中的 ViewElement 中,将背景颜色绑定到变量 xx 上,调用 ide.handleElementAttr(demand)
119
+ 3. 涉及到逻辑的操作时,执行:'ide.handleLogic(logicName, logicDemand, viewName, type)'
120
+ - 涉及到逻辑项的操作时,将所有逻辑项需求都整理到 logicDemand 中,尽可能在一步操作中执行所有的 logicDemand
121
+ - 如果当前选中的是 ViewElement,还需要传递 type='bindEvents',尽可能在一步操作中执行所有的 logicDemand
122
+ - 示例:
123
+ - 在逻辑中添加逻辑项,比如说添加一个 if 语句,就调用 ide.handleLogic 命令执行,在调用 ide.handleLogic 时
124
+ - 为选中的 ViewElement 添加点击事件逻辑并实现逻辑功能,调用 ide.handleLogic 命令执行,并传递 type='bindEvents'
125
+ 4. 查询 API 文档:'ide.getAPI(indexes: Array<number>)',如'ide.getAPI([0, 1, 2])'
126
+ - 当前面的命令无法匹配用户需求时,你可以查询 API 文档,尽可能一次性多的获取相关文档
127
+ - 如果要添加实体属性,需要考虑类型,请加入查询:类型标注相关文档
128
+ - 如果要了解默认数据源在哪里,请加入查询:应用和默认数据库相关文档
129
+ - 当需求中需要考虑类型时,请加入查询:类型标注文档。
130
+ 5. 执行 IDE 的操作,其中代码为 JS 脚本:'ide.execute(code: string)'
131
+ 6. 当完成计划时:command name 及 args 为 'ide.complete(reason: string)'
132
+ 1. 优先执行以上命令,对比原始需求和解决当前需求的短期记忆,如果已经完成原始需求的执行,调用 ide.complete 命令
133
+
134
+ ## 目前 API 文档目录
135
+
136
+ ${Object.keys(docsMap).map((key, index) => `${index}. ${key}`).join('\n')}
137
+
138
+ ### 限制
139
+
140
+ - 由于 8000 左右 token 数的限制,一次处理多个任务、查询多个文档容易溢出,建议一次只处理一个任务。
141
+ - 在记忆中已经查询过的文档不要再去查询了。
142
+ - 你只能使用已列举出的 ide 中的命令
143
+ - ide 下的命令需串行执行,不能嵌套
144
+ - 将 ide.execute 和 ide.handleLogic 分别执行,不要在 ide.execute 中执行 ide.handleLogic 或者 handleLogic 方法以及其他 ide 的命令!
145
+ - 替换组件和绑定变量的操作需要分开执行,依次调用 ide.handleViewElement 和 ide.handleElementAttr
146
+ - 涉及到逻辑的操作,整理逻辑相关的所有需求,调用 ide.handleLogic,在一次命令调用中执行完所有的需求
147
+ - 例如: 为已存在的 ViewElement 添加点击事件并实现事件逻辑,直接执行 ide.handleLogic、传入参数 type='bindEvents' 即可
148
+ - 所有命令传参的值必须匹配正则: /^[a-zA-Z0-9_]+$/,如 viewName、logicName 等
149
+
150
+ ## 你解决当前需求的短期记忆
151
+
152
+ ${this.shortMemories.slice(-9).map((memory, index) => `
153
+
154
+ ### 你的思考和命令${index}
155
+
156
+ ${JSON.stringify(memory.reply, null, 4)}
157
+
158
+ ### 结果${index}
159
+
160
+ ${memory.result}
161
+ `).join('\n') || '暂无'}
162
+
163
+ ## 你曾经解决需求的长期记忆
164
+
165
+ ${(longMemory.join('\n')) || '暂无'}
166
+
167
+ ## 资源
168
+
169
+ - 短期和长期的记忆管理
170
+ - GPT-4
171
+
172
+ ## 要求
173
+
174
+ 1. 在后续的所有回答中,你必须以 JSON 格式回复,内容用中文作答,格式如下:
175
+
176
+ {
177
+ "thoughts": {
178
+ "text": "thought",
179
+ "reasoning": "reasoning",
180
+ "criticism": "我生成的这段代码,可能在 API 中没有定义",
181
+ "currentTask": "- 任务 2\\n - 子任务 1\\n - 子任务 2\\n - 子任务 3"
182
+ },
183
+ "command": {
184
+ "name": "command name",
185
+ "args": {
186
+ "code": "value",
187
+ "logicDemand": "- 子任务 1\\n - 子任务 2\\n - 子任务 3"
188
+ }
189
+ }
190
+ }
191
+
192
+ 1. 按照上述格式,内容用中文作答,把你的思考放在"thoughts.text"字段中
193
+ 2. 确保回复可以被 JavaScript 的 JSON.parse 解析!
194
+ `;
195
+ }
196
+
197
+ async chatWithGPT() {
198
+ const res = await axios.post('/api/gpt/chatGPT', {
199
+ messages: this.messages,
200
+ });
201
+ const result = res.data.result;
202
+ if (result) {
203
+ const answer = result.choices[0]?.message.content.trim() + '\n';
204
+ // this.messages.push({
205
+ // role: 'assistant',
206
+ // content: answer,
207
+ // });
208
+ console.log(result.usage);
209
+ return answer;
210
+ } else {
211
+ console.error(res.data);
212
+ throw new Error(res.data);
213
+ }
214
+ }
215
+
216
+ async saveMemory(memory: Memory) {
217
+ const res = await axios.post('/api/memory/saveMemory', `
218
+ ### 你的思考和命令
219
+ ${JSON.stringify(memory.reply, null, 4)}
220
+
221
+ ### 结果
222
+ ${memory.result}
223
+ `);
224
+ const data = res.data;
225
+ if (data.code === 200) {
226
+ //
227
+ } else {
228
+ console.error(res.data);
229
+ throw new Error(res.data);
230
+ }
231
+ }
232
+
233
+ async loadMemory() {
234
+ const res = await axios.post('/api/memory/loadMemory', {
235
+ text: `### 你的需求
236
+ ${this.requirement}
237
+ ` + this.shortMemories.slice(-9).map((memory, index) => `
238
+ ### 你的思考和命令${index}
239
+ ${JSON.stringify(memory.reply, null, 4)}
240
+
241
+ ### 结果${index}
242
+ ${memory.result}
243
+ `).join('\n'),
244
+ k: 5,
245
+ });
246
+ const data = res.data;
247
+ if (data.code === 200) {
248
+ const result = data.result as string[];
249
+ return result;
250
+ } else {
251
+ console.error(res.data);
252
+ throw new Error(res.data);
253
+ }
254
+ }
255
+
256
+ async chatWithGPTAndParseJSON() {
257
+ const answer = await this.chatWithGPT();
258
+ let json: GPTExecutorReply;
259
+ try {
260
+ json = JSON.parse(answer);
261
+ console.log('需求执行器-回复:' + JSON.stringify(json, null, 4));
262
+ return json;
263
+ } catch (e) {
264
+ const fixed = tryFixJSON(answer);
265
+ try {
266
+ json = JSON.parse(fixed);
267
+ console.log('需求执行器-回复:' + JSON.stringify(json, null, 4));
268
+ return json;
269
+ } catch (ee) {
270
+ console.log(fixed);
271
+ throw e;
272
+ }
273
+ }
274
+ }
275
+
276
+ async next() {
277
+ this.messages = [{
278
+ role: 'system',
279
+ content: await this.genPrompt(),
280
+ }];
281
+
282
+ if (!this.shortMemories.length)
283
+ console.log(this.messages[0].content);
284
+
285
+ return this.chatWithGPTAndParseJSON();
286
+ }
287
+ async execute(context: any, cb?: (reply: GPTExecutorReply) => void) {
288
+ const reply = await this.next();
289
+ cb && cb(reply);
290
+ if (this.shortMemories.length > 10) {
291
+ throw new Error('执行超过10次,可能存在问题!');
292
+ } else if (reply.command.name === 'ide.complete') {
293
+ //
294
+ } else {
295
+ let result: string;
296
+ if (reply.command.name === 'ide.getAPI')
297
+ result = this.ide.getAPI(reply.command.args.indexes);
298
+ else if (reply.command.name === 'ide.execute')
299
+ result = this.ide.execute(reply.command.args.code, context);
300
+ else if (reply.command.name === 'ide.handleLogic')
301
+ result = await this.handleLogic({ ...reply.command.args, context }) as any;
302
+ else if (reply.command.name === 'ide.handleViewElement')
303
+ result = await this.handleViewElement({ ...reply.command.args, context }) as any;
304
+ else if (reply.command.name === 'ide.handleElementAttr')
305
+ result = await this.handleElementAttr({ ...reply.command.args, context }) as any;
306
+
307
+ console.log('需求执行器-执行结果:' + result);
308
+ const memory = { requirement: this.requirement, reply, result };
309
+ this.shortMemories.push(memory);
310
+ // this.shortMemories = this.shortMemories.slice(-2);
311
+ // const lastMemory = this.shortMemories[this.shortMemories.length - 1];
312
+
313
+ if (reply.command.name === 'ide.execute') {
314
+ try {
315
+ await this.saveMemory(memory);
316
+ } catch (e) {}
317
+ // if (result === 'Success!' && reply.thoughts.currentTaskIndex === reply.thoughts.totalTaskCount) {
318
+ // return;
319
+ // }
320
+ }
321
+
322
+ // 重复执行
323
+ await this.execute(context, cb);
324
+ }
325
+ }
326
+
327
+ async handleLogic(logicParams: any) {
328
+ const { logicDemand, context, type } = logicParams;
329
+ let { app, nasl, selectedNode } = context;
330
+ const Window = window as any;
331
+ selectedNode = Window.globalData.$n0;
332
+ const requirements = [
333
+ '如果要查询,则使用 nasl.oql.query,尽量用一句 SQL 包含更多信息',
334
+ '优先使用 nasl.util 中的内置函数',
335
+ '禁止使用 Array 的方法,其中 map 方法请使用 ListTransform',
336
+ '禁止使用 Number 的 toFixed 方法,保留小数使用 FormatNumber',
337
+ '禁止使用 String 的 方法,字符串截取用 SubString 函数',
338
+ '当前日期请使用 CurrDateTime()',
339
+ // '声明过的变量已经初始化',
340
+ '分支情况请使用 switch',
341
+ '数字循环请使用 while',
342
+ '禁止使用 import',
343
+ '禁止打印结果日志',
344
+ '直接输出代码结果,其他描述请以注释的形式出现',
345
+ '返回的实现须为函数并且必须使用符合语法的语句',
346
+ ];
347
+ let logicItem;
348
+ console.log('lemon ~ selectedNode:', selectedNode);
349
+ if (selectedNode.concept === 'Logic') {
350
+ logicItem = selectedNode;
351
+ } else if (selectedNode.concept === 'ViewElement' && type === 'bindEvents') {
352
+ logicItem = selectedNode.addBindEvent('click').addLogic('click');
353
+ }
354
+ const getRequirement = () => `/*
355
+ 有以下要求:
356
+ ${requirements.map((line) => '- ' + line).join('\n')}
357
+
358
+ 请在当前函数的“当前位置”中只要实现:
359
+ ${logicDemand}
360
+
361
+ ## 返回示例1
362
+ // 筛选商品
363
+ function load1(params: nasl.ui.DataSourceParams) {
364
+ result.list = nasl.util.ListFilter(result.list, (item) => item.product.supplierId === id);
365
+ // 不要 return
366
+ }
367
+ ## 返回示例2
368
+ // 校验表单输入
369
+ function formValidate() {
370
+ const validateResult: ValidateEvent = $refs.form1.validate();
371
+ if (validateResult.valid) {
372
+ const newProduct = product;
373
+ newProduct.suppilerId = id;
374
+ ProductEntity.create(newProduct);
375
+ nasl.ui.showMessage("创建成功");
376
+ $refs.modal1.close();
377
+ $refs.gridView.reload();
378
+ } else{
379
+ nasl.ui.showMessage("创建失败");
380
+ }
381
+ }
382
+ */`;
383
+ console.log('lemon', logicItem);
384
+ let prompt = nasl.genNaturalTS(app, logicItem);
385
+ prompt += getRequirement();
386
+ this.messages = [{
387
+ role: 'user',
388
+ content: prompt,
389
+ }];
390
+ const res = await axios.post('/api/gpt/chatGPT', {
391
+ messages: this.messages,
392
+ });
393
+ const result = res.data.result;
394
+ if (result) {
395
+ const answer = result.choices[0]?.message.content.trim() + '\n';
396
+ try {
397
+ await nasl.transformTSCodeEx(answer, logicItem, context);
398
+ return 'Success!';
399
+ } catch (e) {
400
+ console.log('TS 转换 NASL 失败!请检查浏览器日志。');
401
+ return String(e);
402
+ }
403
+ } else {
404
+ return String(res.data);
405
+ }
406
+ }
407
+ // 处理页面上对于元素的操作
408
+ async handleViewElement(elementParams: any) {
409
+ const { demand, context, viewName, elementName = 'uLinearLayout1', type } = elementParams;
410
+ let { app, nasl, selectedNode } = context;
411
+ if (type === 'bindEvents') {
412
+ const result = await this.handleLogic({ context, type, logicDemand: demand });
413
+ return result;
414
+ }
415
+ if (type === 'replace') {
416
+ selectedNode.delete();
417
+ selectedNode = selectedNode.parentNode;
418
+ }
419
+ if (elementParams.elementName === 'u-grid-view') {
420
+ selectedNode.addGridViewByEntity('Product');
421
+ return 'Success';
422
+ }
423
+ let templateList;
424
+ try {
425
+ templateList = await this.getViewElementTemplate(demand, context);
426
+ if (templateList.length <= 0)
427
+ throw new Error('请求失败');
428
+ console.log('lemon ~ templateList:', templateList);
429
+ try {
430
+ const codeList = await this.handleViewElementTemplate(demand, templateList, context);
431
+ console.log('lemon ~ codeList:', codeList);
432
+ let nodePath:string;
433
+ if (viewName && app.findViewByName(viewName)) {
434
+ nodePath = app.findViewByName(viewName).findElementByName(elementName).nodePath;
435
+ } else if (selectedNode.concept === 'View') {
436
+ nodePath = selectedNode.findElementByName(elementName).nodePath;
437
+ } else if (selectedNode.concept === 'ViewElement') {
438
+ nodePath = selectedNode.nodePath;
439
+ } else {
440
+ return 'error';
441
+ }
442
+ const position = 'append';
443
+ codeList.forEach((code: string) => {
444
+ const data = {
445
+ code,
446
+ nodePath,
447
+ position, // 没有时会添加到最顶层
448
+ };
449
+ selectedNode.addBlock(data);
450
+ });
451
+ console.log('lemon', selectedNode);
452
+ return 'Success!';
453
+ } catch (e) {
454
+ return String(e);
455
+ }
456
+ } catch (e) {
457
+ return String(e);
458
+ }
459
+ }
460
+ // 根据用户需求获取到对应的组件 code
461
+ async getViewElementTemplate(demand:string, context: any) {
462
+ this.messages = [{
463
+ role: 'user',
464
+ content: this.getViewPrompt(demand),
465
+ }];
466
+ const res = await axios.post('/api/gpt/chatGPT', {
467
+ messages: this.messages,
468
+ });
469
+ const result = res.data.result;
470
+ if (result) {
471
+ const answer = result.choices[0]?.message.content.trim() + '\n';
472
+ const elementList = Object.keys(JSON.parse(answer));
473
+ console.log('lemon getViewElementTemplate', elementList, answer);
474
+ const templateList = elementList.map((el: any) => {
475
+ const ind = JSON.parse(answer)[el].index;
476
+ const code = context.nasl.config.allNodesAPI[el]?.blocks[ind]?.code;
477
+ if (!code)
478
+ throw new Error('组件名称错误,获取组件模板失败, 请重试');
479
+ return code;
480
+ });
481
+ return templateList;
482
+ }
483
+ }
484
+ getViewPrompt(demand: string): string {
485
+ return `
486
+ ## 组件定义如下:
487
+ ${JSON.stringify(componentData)}
488
+
489
+ ## 用户的需求如下:
490
+ ${demand}
491
+
492
+ ## 注意:
493
+ 1. 你需要根据用户的需求参照组件定义获取到对应的组件名称,除了i-ico之外,其它组件都是 'u-' 的格式
494
+ 1. 必须按照下面指定的格式的格式返回,确保回复可以被 JavaScript 的 JSON.parse 解析!
495
+
496
+ { "componentName": { "reason": "原因", index: "模板索引" } }
497
+
498
+ ## 示例:
499
+ { "i-ico": { "reason": "用于展示刷新图标和文本", "index": 1 } }
500
+ { "u-rate": { "reason": "用于替换文本组件为五星评分组件", "index": 0 } }
501
+ { "u-button": { "reason": "用于添加一个图标按钮组件", "index": 3 } }
502
+ `;
503
+ }
504
+ // 再次处理组件模板,得到与需求融合后的组件模板
505
+ async handleViewElementTemplate(demand: string, templateList: any, context: any) {
506
+ const prompt = `
507
+ ## 组件的 template 如下
508
+ ${JSON.stringify(templateList)}
509
+
510
+ ## 用户的需求如下
511
+ ${demand}
512
+
513
+ ## 注意
514
+ 1. 请根据需求,在 template 基础上仅替换默认文字信息,但是不要修改标签名称
515
+ 1. 仅可以使用template中提供的标签名称,不能修改
516
+ - 例如 不能修改标签组件名称 <u-grid-view>
517
+ 1. 按照提供的原 template 格式返回新的 template!
518
+ eg:
519
+ "[新的template]"
520
+ `;
521
+ this.messages = [{
522
+ role: 'user',
523
+ content: prompt,
524
+ }];
525
+ const res = await axios.post('/api/gpt/chatGPT', {
526
+ messages: this.messages,
527
+ });
528
+ const result = res.data.result;
529
+ if (result) {
530
+ const answer = result.choices[0]?.message.content.trim() + '\n';
531
+ const codeList = JSON.parse(answer);
532
+ return codeList;
533
+ }
534
+ }
535
+ async handleElementAttr(elementParams: any) {
536
+ const { demand, context } = elementParams;
537
+ const { app, nasl, selectedNode } = context;
538
+ try {
539
+ const options = await this.getCorrectParams(demand, selectedNode) as any;
540
+ console.log('lemonhandle-getCorrectParams-传入的option', options);
541
+ try {
542
+ for (let i = 0; i < options.length; i++) {
543
+ let option = options[i];
544
+ option = {
545
+ ...option,
546
+ // eslint-disable-next-line no-await-in-loop
547
+ value: option.type === 'dynamic' ? await this.getExpression(option.demand, context) : option.value,
548
+ };
549
+ console.log('lemonhandle-最终拿到的option', option);
550
+ try {
551
+ selectedNode.updateBindAttr(option);
552
+ } catch (e) {
553
+ return String(e);
554
+ }
555
+ }
556
+ return 'Success';
557
+ } catch (e) {
558
+ return String(e);
559
+ }
560
+ } catch (e) {
561
+ return String(e);
562
+ }
563
+ }
564
+ async getCorrectParams(demand: string, selectedNode: any) {
565
+ const curAttrGroups = selectedNode.getCurrentElementAttrGroups();
566
+ const prompt = `
567
+ ## 组件的所有属性定义如下
568
+ ${JSON.stringify(curAttrGroups)}
569
+
570
+ ## 用户的需求如下
571
+ ${demand}
572
+
573
+ ## 注意
574
+ 1. 请根据需求结合属性定义,分析并返回用户想要修改属性的 name、value,以及所属的 concept
575
+ 2. 如果涉及到表达式或者绑定或者动态的值时,type的值为'dynamic'
576
+ 3. 按照以下格式返回数据,确保回复可以被 JavaScript 的 JSON.parse 解析!
577
+
578
+ [{ concept, type, name, value, demand }]
579
+ `;
580
+ this.messages = [{
581
+ role: 'user',
582
+ content: prompt,
583
+ }];
584
+ const res = await axios.post('/api/gpt/chatGPT', {
585
+ messages: this.messages,
586
+ });
587
+ const result = res.data.result;
588
+ if (result) {
589
+ const answer = result.choices[0]?.message.content.trim() + '\n';
590
+ return JSON.parse(answer);
591
+ }
592
+ }
593
+ async getExpression(demand: string, context: any) {
594
+ const { app, nasl, selectedNode } = context;
595
+ const requirements = [
596
+ '如果要查询,则使用 nasl.oql.query,尽量用一句 SQL 包含更多信息',
597
+ '优先使用 nasl.util 中的内置函数',
598
+ '禁止使用 Array 的方法,其中 map 方法请使用 ListTransform',
599
+ '禁止使用 Number 的 toFixed 方法,保留小数使用 FormatNumber',
600
+ '禁止使用 String 的 方法,字符串截取用 SubString 函数',
601
+ '当前日期请使用 CurrDateTime()',
602
+ '分支情况请使用 switch',
603
+ '禁止使用 import',
604
+ '禁止打印结果日志',
605
+ '不要新建变量',
606
+ '涉及到颜色转换为 HEX 格式的值',
607
+ '直接输出代码结果,其他描述请以注释的形式出现',
608
+ '回复必须是函数并且必须使用符合语法的语句',
609
+ ];
610
+
611
+ const getRequirement = () => `/*
612
+ ## 有以下要求:
613
+ ${requirements.map((line) => '- ' + line).join('\n')}
614
+
615
+ ## 返回示例 1
616
+ export function logic2() {
617
+ return nasl.util.FormatDateTime(variable1, "YYYY-MM-DD HH:mm");
618
+ }
619
+ ## 返回示例 2
620
+ export function setBackgroundColor(): string {
621
+ switch (varibable) {
622
+ case SupplierStatusEnum.enable:
623
+ return "#0f0";
624
+ case SupplierStatusEnum.disable:
625
+ return "#7f827f";
626
+ }
627
+ }
628
+ ## 返回示例 3
629
+ export function bindLevel() {
630
+ return current.item.supplier.level;
631
+ }
632
+
633
+ ## 请在当前函数的“当前位置”中只要实现:
634
+ ${demand}
635
+ */`;
636
+ let prompt = nasl.genNaturalTS(app, selectedNode);
637
+ prompt += getRequirement();
638
+ this.messages = [{
639
+ role: 'user',
640
+ content: prompt,
641
+ }];
642
+ const res = await axios.post('/api/gpt/chatGPT', {
643
+ messages: this.messages,
644
+ });
645
+ const result = res.data.result;
646
+ if (result) {
647
+ const answer = result.choices[0]?.message.content.trim() + '\n';
648
+ console.log('lemon ~ getExpression ~ answer:', answer);
649
+ try {
650
+ const body = nasl.transformTSCodeToExpression(answer, context);
651
+ console.log('lemon ~ RequirementExecutor ~ getExpression ~ body:', body);
652
+ return body[0];
653
+ } catch (e) {
654
+ console.log('TS 转换 NASL 失败!请检查浏览器日志。');
655
+ return String(e);
656
+ }
657
+ }
658
+ }
659
+ }
660
+
661
+ export default RequirementExecutor;
662
+
663
+ // console.log(tryFixJSON(`{
664
+ // {
665
+ // "thoughts": {
666
+ // "text": "thought",
667
+ // "reasoning": "reasoning",
668
+ // "currentTask": "- 任务1
669
+ // - 任务2
670
+ // - 任务3",
671
+ // "criticism": "我生成的这段代码,可能在 API 中没有定义"
672
+ // },
673
+ // "command": {
674
+ // "name": "command name",
675
+ // "args": {
676
+ // "code": "value"
677
+ // }
678
+ // }
679
+ // }
680
+ // }`));
681
+ // - 对于不清楚定义的 API,先不要急着生成执行脚本,考虑是不是要先获取一下 API 文档,然后在后面的步骤中再生成执行脚本
682
+ // - 一般初次执行时,你最好先获取需要的 API 文档。尽可能一次性多的获取相关文档
683
+ // 2. 把当前执行的任务放在"thoughts.currentTask"中,把当前执行的任务的索引(从1开始)放在"thoughts.currentTaskIndex"中
684
+ // "currentTaskIndex": 2,
685
+ // "totalTaskCount": 3,