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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (842) hide show
  1. package/out/automate/engine/utils.js +4 -0
  2. package/out/automate/engine/utils.js.map +1 -1
  3. package/out/automate/upgrader/2.20.js +1 -1
  4. package/out/automate/upgrader/2.20.js.map +1 -1
  5. package/out/bak/translator.js +11 -15
  6. package/out/bak/translator.js.map +1 -1
  7. package/out/breakpoint/generator/AfterStartNode.js +3 -1
  8. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  9. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  10. package/out/breakpoint/generator/BreakpointNode.d.ts +1 -0
  11. package/out/breakpoint/generator/BreakpointNode.js +48 -15
  12. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  13. package/out/breakpoint/generator/CallbackNode.d.ts +4 -0
  14. package/out/breakpoint/generator/CallbackNode.js +22 -0
  15. package/out/breakpoint/generator/CallbackNode.js.map +1 -0
  16. package/out/breakpoint/generator/FragmentNode.d.ts +4 -0
  17. package/out/breakpoint/generator/FragmentNode.js +18 -0
  18. package/out/breakpoint/generator/FragmentNode.js.map +1 -0
  19. package/out/breakpoint/generator/index.js +25 -4
  20. package/out/breakpoint/generator/index.js.map +1 -1
  21. package/out/breakpoint/shared/constants.d.ts +3 -0
  22. package/out/breakpoint/shared/constants.js +6 -1
  23. package/out/breakpoint/shared/constants.js.map +1 -1
  24. package/out/breakpoint/shared/operations.js.map +1 -1
  25. package/out/breakpoint/shared/socket.d.ts +1 -1
  26. package/out/breakpoint/shared/socket.js +36 -7
  27. package/out/breakpoint/shared/socket.js.map +1 -1
  28. package/out/breakpoint/shared/utils.d.ts +2 -0
  29. package/out/breakpoint/shared/utils.js +15 -2
  30. package/out/breakpoint/shared/utils.js.map +1 -1
  31. package/out/breakpoint/store/core.d.ts +48 -2
  32. package/out/breakpoint/store/core.js +58 -32
  33. package/out/breakpoint/store/core.js.map +1 -1
  34. package/out/breakpoint/store/dock.js +1 -1
  35. package/out/breakpoint/store/dock.js.map +1 -1
  36. package/out/common/BaseNode.d.ts +2 -2
  37. package/out/common/BaseNode.js +110 -53
  38. package/out/common/BaseNode.js.map +1 -1
  39. package/out/common/Command.d.ts +13 -2
  40. package/out/common/Command.js +37 -9
  41. package/out/common/Command.js.map +1 -1
  42. package/out/common/EventEmitter.js.map +1 -1
  43. package/out/common/Messager.d.ts +3 -3
  44. package/out/common/Messager.js +6 -7
  45. package/out/common/Messager.js.map +1 -1
  46. package/out/common/asyncFuncMap.js.map +1 -1
  47. package/out/concepts/Abort__.js +6 -5
  48. package/out/concepts/Abort__.js.map +1 -1
  49. package/out/concepts/Anchor__.d.ts +4 -3
  50. package/out/concepts/Anchor__.js +24 -7
  51. package/out/concepts/Anchor__.js.map +1 -1
  52. package/out/concepts/AnonymousFunction__.d.ts +22 -21
  53. package/out/concepts/AnonymousFunction__.js +48 -22
  54. package/out/concepts/AnonymousFunction__.js.map +1 -1
  55. package/out/concepts/App__.d.ts +421 -247
  56. package/out/concepts/App__.js +288 -54
  57. package/out/concepts/App__.js.map +1 -1
  58. package/out/concepts/Argument__.d.ts +4 -3
  59. package/out/concepts/Argument__.js +42 -11
  60. package/out/concepts/Argument__.js.map +1 -1
  61. package/out/concepts/Assignee__.d.ts +45 -45
  62. package/out/concepts/Assignee__.js +15 -15
  63. package/out/concepts/Assignee__.js.map +1 -1
  64. package/out/concepts/AssignmentLine__.js +6 -5
  65. package/out/concepts/AssignmentLine__.js.map +1 -1
  66. package/out/concepts/Assignment__.d.ts +7 -6
  67. package/out/concepts/Assignment__.js +41 -23
  68. package/out/concepts/Assignment__.js.map +1 -1
  69. package/out/concepts/Attribute__.d.ts +3 -3
  70. package/out/concepts/Attribute__.js +8 -7
  71. package/out/concepts/Attribute__.js.map +1 -1
  72. package/out/concepts/AuthInterface__.js +4 -3
  73. package/out/concepts/AuthInterface__.js.map +1 -1
  74. package/out/concepts/AuthLogicForCallInterface__.d.ts +15 -15
  75. package/out/concepts/AuthLogicForCallInterface__.js +46 -27
  76. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  77. package/out/concepts/AuthLogic__.js +27 -13
  78. package/out/concepts/AuthLogic__.js.map +1 -1
  79. package/out/concepts/BackendVariable__.d.ts +5 -5
  80. package/out/concepts/BackendVariable__.js +23 -26
  81. package/out/concepts/BackendVariable__.js.map +1 -1
  82. package/out/concepts/Backend__.d.ts +18 -18
  83. package/out/concepts/Backend__.js +13 -13
  84. package/out/concepts/Backend__.js.map +1 -1
  85. package/out/concepts/BatchAssignment__.d.ts +34 -33
  86. package/out/concepts/BatchAssignment__.js +83 -43
  87. package/out/concepts/BatchAssignment__.js.map +1 -1
  88. package/out/concepts/BinaryExpression__.d.ts +7 -6
  89. package/out/concepts/BinaryExpression__.js +60 -24
  90. package/out/concepts/BinaryExpression__.js.map +1 -1
  91. package/out/concepts/BindAttribute__.d.ts +37 -37
  92. package/out/concepts/BindAttribute__.js +102 -58
  93. package/out/concepts/BindAttribute__.js.map +1 -1
  94. package/out/concepts/BindDirective__.d.ts +13 -13
  95. package/out/concepts/BindDirective__.js +23 -21
  96. package/out/concepts/BindDirective__.js.map +1 -1
  97. package/out/concepts/BindEvent__.d.ts +28 -28
  98. package/out/concepts/BindEvent__.js +150 -57
  99. package/out/concepts/BindEvent__.js.map +1 -1
  100. package/out/concepts/BindStyle__.d.ts +14 -15
  101. package/out/concepts/BindStyle__.js +16 -16
  102. package/out/concepts/BindStyle__.js.map +1 -1
  103. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  104. package/out/concepts/BooleanLiteral__.js +12 -5
  105. package/out/concepts/BooleanLiteral__.js.map +1 -1
  106. package/out/concepts/CallAuthInterface__.d.ts +15 -15
  107. package/out/concepts/CallAuthInterface__.js +23 -22
  108. package/out/concepts/CallAuthInterface__.js.map +1 -1
  109. package/out/concepts/CallConnector__.d.ts +11 -9
  110. package/out/concepts/CallConnector__.js +79 -36
  111. package/out/concepts/CallConnector__.js.map +1 -1
  112. package/out/concepts/CallFunction__.d.ts +17 -16
  113. package/out/concepts/CallFunction__.js +95 -63
  114. package/out/concepts/CallFunction__.js.map +1 -1
  115. package/out/concepts/CallInterface__.d.ts +9 -8
  116. package/out/concepts/CallInterface__.js +109 -80
  117. package/out/concepts/CallInterface__.js.map +1 -1
  118. package/out/concepts/CallLogic__.d.ts +24 -20
  119. package/out/concepts/CallLogic__.js +209 -162
  120. package/out/concepts/CallLogic__.js.map +1 -1
  121. package/out/concepts/CallQueryComponent__.d.ts +51 -51
  122. package/out/concepts/CallQueryComponent__.js +66 -63
  123. package/out/concepts/CallQueryComponent__.js.map +1 -1
  124. package/out/concepts/Comment__.d.ts +1 -0
  125. package/out/concepts/Comment__.js +13 -6
  126. package/out/concepts/Comment__.js.map +1 -1
  127. package/out/concepts/CompletionProperty__.d.ts +3 -3
  128. package/out/concepts/CompletionProperty__.js +16 -8
  129. package/out/concepts/CompletionProperty__.js.map +1 -1
  130. package/out/concepts/ConfigGroup__.d.ts +15 -15
  131. package/out/concepts/ConfigGroup__.js +9 -9
  132. package/out/concepts/ConfigGroup__.js.map +1 -1
  133. package/out/concepts/ConfigPropertyValue__.js +4 -3
  134. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  135. package/out/concepts/ConfigProperty__.d.ts +15 -15
  136. package/out/concepts/ConfigProperty__.js +10 -10
  137. package/out/concepts/ConfigProperty__.js.map +1 -1
  138. package/out/concepts/Configuration__.d.ts +15 -15
  139. package/out/concepts/Configuration__.js +9 -9
  140. package/out/concepts/Configuration__.js.map +1 -1
  141. package/out/concepts/Connection__.d.ts +166 -0
  142. package/out/concepts/Connection__.js +332 -0
  143. package/out/concepts/Connection__.js.map +1 -0
  144. package/out/concepts/ConnectorTrigger__.js +4 -3
  145. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  146. package/out/concepts/Connector__.d.ts +66 -66
  147. package/out/concepts/Connector__.js +16 -15
  148. package/out/concepts/Connector__.js.map +1 -1
  149. package/out/concepts/Constant__.d.ts +3 -3
  150. package/out/concepts/Constant__.js +8 -7
  151. package/out/concepts/Constant__.js.map +1 -1
  152. package/out/concepts/DataElement__.d.ts +3 -3
  153. package/out/concepts/DataElement__.js +6 -5
  154. package/out/concepts/DataElement__.js.map +1 -1
  155. package/out/concepts/DataSource__.d.ts +15 -15
  156. package/out/concepts/DataSource__.js +55 -39
  157. package/out/concepts/DataSource__.js.map +1 -1
  158. package/out/concepts/DatabaseTypeAnnotation__.js +4 -3
  159. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  160. package/out/concepts/Destination__.d.ts +12 -11
  161. package/out/concepts/Destination__.js +93 -36
  162. package/out/concepts/Destination__.js.map +1 -1
  163. package/out/concepts/End__.js +15 -13
  164. package/out/concepts/End__.js.map +1 -1
  165. package/out/concepts/EntityIndex__.d.ts +1 -1
  166. package/out/concepts/EntityIndex__.js +6 -5
  167. package/out/concepts/EntityIndex__.js.map +1 -1
  168. package/out/concepts/EntityProperty__.d.ts +8 -7
  169. package/out/concepts/EntityProperty__.js +39 -24
  170. package/out/concepts/EntityProperty__.js.map +1 -1
  171. package/out/concepts/Entity__.d.ts +31 -30
  172. package/out/concepts/Entity__.js +40 -16
  173. package/out/concepts/Entity__.js.map +1 -1
  174. package/out/concepts/EnumItem__.d.ts +1 -0
  175. package/out/concepts/EnumItem__.js +12 -5
  176. package/out/concepts/EnumItem__.js.map +1 -1
  177. package/out/concepts/Enum__.d.ts +9 -8
  178. package/out/concepts/Enum__.js +24 -11
  179. package/out/concepts/Enum__.js.map +1 -1
  180. package/out/concepts/Event__.d.ts +15 -15
  181. package/out/concepts/Event__.js +6 -5
  182. package/out/concepts/Event__.js.map +1 -1
  183. package/out/concepts/ExternalDestination__.d.ts +6 -6
  184. package/out/concepts/ExternalDestination__.js +12 -11
  185. package/out/concepts/ExternalDestination__.js.map +1 -1
  186. package/out/concepts/ForEachStatement__.d.ts +25 -24
  187. package/out/concepts/ForEachStatement__.js +101 -36
  188. package/out/concepts/ForEachStatement__.js.map +1 -1
  189. package/out/concepts/FrontendLibrary__.d.ts +30 -30
  190. package/out/concepts/FrontendLibrary__.js +12 -13
  191. package/out/concepts/FrontendLibrary__.js.map +1 -1
  192. package/out/concepts/FrontendVariable__.js +4 -3
  193. package/out/concepts/FrontendVariable__.js.map +1 -1
  194. package/out/concepts/Frontend__.d.ts +64 -65
  195. package/out/concepts/Frontend__.js +23 -27
  196. package/out/concepts/Frontend__.js.map +1 -1
  197. package/out/concepts/Function__.d.ts +64 -63
  198. package/out/concepts/Function__.js +49 -21
  199. package/out/concepts/Function__.js.map +1 -1
  200. package/out/concepts/Identifier__.js +37 -31
  201. package/out/concepts/Identifier__.js.map +1 -1
  202. package/out/concepts/IfStatement__.d.ts +20 -19
  203. package/out/concepts/IfStatement__.js +64 -34
  204. package/out/concepts/IfStatement__.js.map +1 -1
  205. package/out/concepts/Integration__.d.ts +3 -3
  206. package/out/concepts/Integration__.js +8 -7
  207. package/out/concepts/Integration__.js.map +1 -1
  208. package/out/concepts/InterfaceParam__.d.ts +3 -3
  209. package/out/concepts/InterfaceParam__.js +7 -6
  210. package/out/concepts/InterfaceParam__.js.map +1 -1
  211. package/out/concepts/Interface__.d.ts +33 -33
  212. package/out/concepts/Interface__.js +19 -20
  213. package/out/concepts/Interface__.js.map +1 -1
  214. package/out/concepts/JSBlock__.d.ts +1 -0
  215. package/out/concepts/JSBlock__.js +12 -5
  216. package/out/concepts/JSBlock__.js.map +1 -1
  217. package/out/concepts/JavaLogic__.js +10 -9
  218. package/out/concepts/JavaLogic__.js.map +1 -1
  219. package/out/concepts/LogicItem__.d.ts +6 -0
  220. package/out/concepts/LogicItem__.js +14 -5
  221. package/out/concepts/LogicItem__.js.map +1 -1
  222. package/out/concepts/Logic__.d.ts +80 -79
  223. package/out/concepts/Logic__.js +204 -58
  224. package/out/concepts/Logic__.js.map +1 -1
  225. package/out/concepts/MatchCase__.d.ts +39 -38
  226. package/out/concepts/MatchCase__.js +122 -37
  227. package/out/concepts/MatchCase__.js.map +1 -1
  228. package/out/concepts/Match__.d.ts +13 -11
  229. package/out/concepts/Match__.js +128 -60
  230. package/out/concepts/Match__.js.map +1 -1
  231. package/out/concepts/MemberExpression__.d.ts +7 -6
  232. package/out/concepts/MemberExpression__.js +52 -22
  233. package/out/concepts/MemberExpression__.js.map +1 -1
  234. package/out/concepts/MicroApp__.js +4 -3
  235. package/out/concepts/MicroApp__.js.map +1 -1
  236. package/out/concepts/Module__.d.ts +242 -154
  237. package/out/concepts/Module__.js +139 -33
  238. package/out/concepts/Module__.js.map +1 -1
  239. package/out/concepts/MsgTriggerEvent__.d.ts +15 -15
  240. package/out/concepts/MsgTriggerEvent__.js +6 -5
  241. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  242. package/out/concepts/MsgTriggerLauncher__.d.ts +23 -15
  243. package/out/concepts/MsgTriggerLauncher__.js +24 -5
  244. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  245. package/out/concepts/Namespace__.d.ts +180 -180
  246. package/out/concepts/Namespace__.js +33 -34
  247. package/out/concepts/Namespace__.js.map +1 -1
  248. package/out/concepts/NewComposite__.d.ts +49 -48
  249. package/out/concepts/NewComposite__.js +164 -49
  250. package/out/concepts/NewComposite__.js.map +1 -1
  251. package/out/concepts/NewList__.d.ts +19 -18
  252. package/out/concepts/NewList__.js +29 -12
  253. package/out/concepts/NewList__.js.map +1 -1
  254. package/out/concepts/NewMap__.d.ts +34 -33
  255. package/out/concepts/NewMap__.js +81 -72
  256. package/out/concepts/NewMap__.js.map +1 -1
  257. package/out/concepts/New__.js +6 -5
  258. package/out/concepts/New__.js.map +1 -1
  259. package/out/concepts/NullLiteral__.js +6 -5
  260. package/out/concepts/NullLiteral__.js.map +1 -1
  261. package/out/concepts/NumericLiteral__.d.ts +4 -3
  262. package/out/concepts/NumericLiteral__.js +15 -8
  263. package/out/concepts/NumericLiteral__.js.map +1 -1
  264. package/out/concepts/OqlQueryComponent__.d.ts +4 -3
  265. package/out/concepts/OqlQueryComponent__.js +25 -16
  266. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  267. package/out/concepts/OverriddenLogic__.d.ts +79 -79
  268. package/out/concepts/OverriddenLogic__.js +79 -58
  269. package/out/concepts/OverriddenLogic__.js.map +1 -1
  270. package/out/concepts/Param__.d.ts +6 -5
  271. package/out/concepts/Param__.js +66 -29
  272. package/out/concepts/Param__.js.map +1 -1
  273. package/out/concepts/Point__.js +4 -3
  274. package/out/concepts/Point__.js.map +1 -1
  275. package/out/concepts/ProcessComponent__.d.ts +30 -30
  276. package/out/concepts/ProcessComponent__.js +8 -7
  277. package/out/concepts/ProcessComponent__.js.map +1 -1
  278. package/out/concepts/ProcessElement__.d.ts +96 -96
  279. package/out/concepts/ProcessElement__.js +34 -34
  280. package/out/concepts/ProcessElement__.js.map +1 -1
  281. package/out/concepts/ProcessOutcome__.js +6 -5
  282. package/out/concepts/ProcessOutcome__.js.map +1 -1
  283. package/out/concepts/ProcessOutcomes__.js +6 -5
  284. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  285. package/out/concepts/Process__.d.ts +75 -75
  286. package/out/concepts/Process__.js +33 -30
  287. package/out/concepts/Process__.js.map +1 -1
  288. package/out/concepts/QueryAggregateExpression__.d.ts +3 -3
  289. package/out/concepts/QueryAggregateExpression__.js +8 -7
  290. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  291. package/out/concepts/QueryFieldExpression__.js +7 -6
  292. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  293. package/out/concepts/QueryFromExpression__.d.ts +8 -8
  294. package/out/concepts/QueryFromExpression__.js +8 -7
  295. package/out/concepts/QueryFromExpression__.js.map +1 -1
  296. package/out/concepts/QueryGroupByExpression__.d.ts +3 -3
  297. package/out/concepts/QueryGroupByExpression__.js +9 -10
  298. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  299. package/out/concepts/QueryJoinExpression__.d.ts +23 -23
  300. package/out/concepts/QueryJoinExpression__.js +11 -10
  301. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  302. package/out/concepts/QueryLimitExpression__.d.ts +6 -6
  303. package/out/concepts/QueryLimitExpression__.js +9 -8
  304. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  305. package/out/concepts/QueryOrderByExpression__.d.ts +6 -6
  306. package/out/concepts/QueryOrderByExpression__.js +9 -8
  307. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  308. package/out/concepts/QuerySelectExpression__.d.ts +30 -30
  309. package/out/concepts/QuerySelectExpression__.js +9 -8
  310. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  311. package/out/concepts/Rect__.js +4 -3
  312. package/out/concepts/Rect__.js.map +1 -1
  313. package/out/concepts/Return__.d.ts +4 -3
  314. package/out/concepts/Return__.js +37 -18
  315. package/out/concepts/Return__.js.map +1 -1
  316. package/out/concepts/Role__.js +9 -9
  317. package/out/concepts/Role__.js.map +1 -1
  318. package/out/concepts/SelectMembers__.d.ts +18 -18
  319. package/out/concepts/SelectMembers__.js +10 -9
  320. package/out/concepts/SelectMembers__.js.map +1 -1
  321. package/out/concepts/Slot__.d.ts +3 -3
  322. package/out/concepts/Slot__.js +6 -5
  323. package/out/concepts/Slot__.js.map +1 -1
  324. package/out/concepts/SqlQueryComponent__.d.ts +4 -3
  325. package/out/concepts/SqlQueryComponent__.js +21 -12
  326. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  327. package/out/concepts/Start__.js +6 -5
  328. package/out/concepts/Start__.js.map +1 -1
  329. package/out/concepts/StringInterpolation__.d.ts +16 -15
  330. package/out/concepts/StringInterpolation__.js +37 -14
  331. package/out/concepts/StringInterpolation__.js.map +1 -1
  332. package/out/concepts/StringLiteral__.d.ts +1 -0
  333. package/out/concepts/StringLiteral__.js +13 -8
  334. package/out/concepts/StringLiteral__.js.map +1 -1
  335. package/out/concepts/StructureProperty__.d.ts +4 -3
  336. package/out/concepts/StructureProperty__.js +22 -9
  337. package/out/concepts/StructureProperty__.js.map +1 -1
  338. package/out/concepts/Structure__.d.ts +31 -30
  339. package/out/concepts/Structure__.js +27 -15
  340. package/out/concepts/Structure__.js.map +1 -1
  341. package/out/concepts/SwitchCase__.d.ts +12 -11
  342. package/out/concepts/SwitchCase__.js +69 -31
  343. package/out/concepts/SwitchCase__.js.map +1 -1
  344. package/out/concepts/SwitchStatement__.d.ts +9 -8
  345. package/out/concepts/SwitchStatement__.js +27 -7
  346. package/out/concepts/SwitchStatement__.js.map +1 -1
  347. package/out/concepts/Theme__.js +4 -3
  348. package/out/concepts/Theme__.js.map +1 -1
  349. package/out/concepts/Transactional__.js +4 -3
  350. package/out/concepts/Transactional__.js.map +1 -1
  351. package/out/concepts/TriggerEvent__.d.ts +15 -15
  352. package/out/concepts/TriggerEvent__.js +6 -5
  353. package/out/concepts/TriggerEvent__.js.map +1 -1
  354. package/out/concepts/TriggerLauncher__.d.ts +15 -10
  355. package/out/concepts/TriggerLauncher__.js +54 -32
  356. package/out/concepts/TriggerLauncher__.js.map +1 -1
  357. package/out/concepts/TypeAnnotation__.d.ts +28 -27
  358. package/out/concepts/TypeAnnotation__.js +144 -124
  359. package/out/concepts/TypeAnnotation__.js.map +1 -1
  360. package/out/concepts/TypeParam__.d.ts +1 -0
  361. package/out/concepts/TypeParam__.js +12 -5
  362. package/out/concepts/TypeParam__.js.map +1 -1
  363. package/out/concepts/UnaryExpression__.d.ts +4 -3
  364. package/out/concepts/UnaryExpression__.js +31 -20
  365. package/out/concepts/UnaryExpression__.js.map +1 -1
  366. package/out/concepts/Unparsed__.d.ts +1 -0
  367. package/out/concepts/Unparsed__.js +12 -5
  368. package/out/concepts/Unparsed__.js.map +1 -1
  369. package/out/concepts/UseComponent__.js +4 -3
  370. package/out/concepts/UseComponent__.js.map +1 -1
  371. package/out/concepts/ValidationRule__.d.ts +14 -14
  372. package/out/concepts/ValidationRule__.js +19 -17
  373. package/out/concepts/ValidationRule__.js.map +1 -1
  374. package/out/concepts/Variable__.d.ts +4 -3
  375. package/out/concepts/Variable__.js +39 -23
  376. package/out/concepts/Variable__.js.map +1 -1
  377. package/out/concepts/ViewBlock__.js +4 -3
  378. package/out/concepts/ViewBlock__.js.map +1 -1
  379. package/out/concepts/ViewComponent__.d.ts +90 -90
  380. package/out/concepts/ViewComponent__.js +16 -15
  381. package/out/concepts/ViewComponent__.js.map +1 -1
  382. package/out/concepts/ViewElement__.d.ts +92 -86
  383. package/out/concepts/ViewElement__.js +258 -200
  384. package/out/concepts/ViewElement__.js.map +1 -1
  385. package/out/concepts/View__.d.ts +92 -92
  386. package/out/concepts/View__.js +173 -63
  387. package/out/concepts/View__.js.map +1 -1
  388. package/out/concepts/WhileStatement__.d.ts +12 -11
  389. package/out/concepts/WhileStatement__.js +46 -23
  390. package/out/concepts/WhileStatement__.js.map +1 -1
  391. package/out/concepts/basics/stdlib/index.js +17 -1
  392. package/out/concepts/basics/stdlib/index.js.map +1 -1
  393. package/out/concepts/basics/stdlib/nasl.browser.js +36 -0
  394. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  395. package/out/concepts/basics/stdlib/nasl.event.d.ts +3 -0
  396. package/out/concepts/basics/stdlib/nasl.event.js +23 -0
  397. package/out/concepts/basics/stdlib/nasl.event.js.map +1 -0
  398. package/out/concepts/basics/stdlib/nasl.ui.js +45 -0
  399. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  400. package/out/concepts/basics/stdlib/nasl.util.js +6 -22
  401. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  402. package/out/concepts/index__.d.ts +2 -1
  403. package/out/concepts/index__.js +2 -1
  404. package/out/concepts/index__.js.map +1 -1
  405. package/out/concepts/types__.d.ts +2 -1
  406. package/out/decorators/index.d.ts +1 -1
  407. package/out/decorators/index.js +20 -7
  408. package/out/decorators/index.js.map +1 -1
  409. package/out/decorators/promise.d.ts +7 -0
  410. package/out/decorators/promise.js +28 -0
  411. package/out/decorators/promise.js.map +1 -0
  412. package/out/enums/KEYWORDS.js.map +1 -1
  413. package/out/enums/LEVEL_NAME_MAP.js.map +1 -1
  414. package/out/generator/compileComponent.js.map +1 -1
  415. package/out/generator/genBundleFiles.d.ts +4 -1
  416. package/out/generator/genBundleFiles.js +15 -11
  417. package/out/generator/genBundleFiles.js.map +1 -1
  418. package/out/generator/genHash.js.map +1 -1
  419. package/out/generator/genMetaData.js +12 -8
  420. package/out/generator/genMetaData.js.map +1 -1
  421. package/out/generator/genReleaseBody.js +33 -35
  422. package/out/generator/genReleaseBody.js.map +1 -1
  423. package/out/generator/microApp.js +2 -1
  424. package/out/generator/microApp.js.map +1 -1
  425. package/out/generator/permission.js +31 -30
  426. package/out/generator/permission.js.map +1 -1
  427. package/out/generator/styleReplacer.js +4 -7
  428. package/out/generator/styleReplacer.js.map +1 -1
  429. package/out/index.d.ts +0 -2
  430. package/out/index.js +0 -3
  431. package/out/index.js.map +1 -1
  432. package/out/manager/diagnostic.d.ts +1 -1
  433. package/out/manager/diagnostic.js.map +1 -1
  434. package/out/manager/stepRecorder.js +13 -9
  435. package/out/manager/stepRecorder.js.map +1 -1
  436. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  437. package/out/natural/RequirementAnalyzer.js +196 -0
  438. package/out/natural/RequirementAnalyzer.js.map +1 -0
  439. package/out/natural/RequirementExecutor.d.ts +51 -0
  440. package/out/natural/RequirementExecutor.js +692 -0
  441. package/out/natural/RequirementExecutor.js.map +1 -0
  442. package/out/natural/componentData.d.ts +31 -0
  443. package/out/natural/componentData.js +85 -0
  444. package/out/natural/componentData.js.map +1 -0
  445. package/out/natural/genNaturalTS.d.ts +3 -0
  446. package/out/natural/genNaturalTS.js +76 -0
  447. package/out/natural/genNaturalTS.js.map +1 -0
  448. package/out/natural/index.d.ts +4 -0
  449. package/out/natural/index.js +21 -0
  450. package/out/natural/index.js.map +1 -0
  451. package/out/natural/knowledgeMap.d.ts +4 -0
  452. package/out/natural/knowledgeMap.js +40 -0
  453. package/out/natural/knowledgeMap.js.map +1 -0
  454. package/out/natural/naslStdlibMap.d.ts +2 -0
  455. package/out/natural/naslStdlibMap.js +26 -0
  456. package/out/natural/naslStdlibMap.js.map +1 -0
  457. package/out/natural/transformTSCode.d.ts +7 -0
  458. package/out/natural/transformTSCode.js +760 -0
  459. package/out/natural/transformTSCode.js.map +1 -0
  460. package/out/sentry/index.d.ts +2 -1
  461. package/out/sentry/index.js.map +1 -1
  462. package/out/server/createUiTs.js +28 -16
  463. package/out/server/createUiTs.js.map +1 -1
  464. package/out/server/entity2LogicNamespace.js +24 -22
  465. package/out/server/entity2LogicNamespace.js.map +1 -1
  466. package/out/server/event.d.ts +12 -0
  467. package/out/server/event.js +52 -28
  468. package/out/server/event.js.map +1 -1
  469. package/out/server/extendBaseNode.js +55 -70
  470. package/out/server/extendBaseNode.js.map +1 -1
  471. package/out/server/formatTsUtils.js +46 -50
  472. package/out/server/formatTsUtils.js.map +1 -1
  473. package/out/server/getConnector.d.ts +3 -3
  474. package/out/server/getConnector.js +7 -8
  475. package/out/server/getConnector.js.map +1 -1
  476. package/out/server/getExtensionModules.js +2 -2
  477. package/out/server/getExtensionModules.js.map +1 -1
  478. package/out/server/getFunctions.js.map +1 -1
  479. package/out/server/getInterfaces.js.map +1 -1
  480. package/out/server/getLogging.js.map +1 -1
  481. package/out/server/getLogics.d.ts +1 -1
  482. package/out/server/getLogics.js +55 -8
  483. package/out/server/getLogics.js.map +1 -1
  484. package/out/server/getMemberIdentifier.js +13 -10
  485. package/out/server/getMemberIdentifier.js.map +1 -1
  486. package/out/server/getProcessComponents.js.map +1 -1
  487. package/out/server/getProcesses.js +21 -29
  488. package/out/server/getProcesses.js.map +1 -1
  489. package/out/server/getScope.js.map +1 -1
  490. package/out/server/getValidates.js.map +1 -1
  491. package/out/server/index.js +0 -1
  492. package/out/server/index.js.map +1 -1
  493. package/out/server/naslServer.d.ts +99 -94
  494. package/out/server/naslServer.js +490 -469
  495. package/out/server/naslServer.js.map +1 -1
  496. package/out/server/naslStdlibMap.js +6 -2
  497. package/out/server/naslStdlibMap.js.map +1 -1
  498. package/out/server/process2LogicNamespace.js.map +1 -1
  499. package/out/server/translator.d.ts +1 -1
  500. package/out/server/translator.js +52 -47
  501. package/out/server/translator.js.map +1 -1
  502. package/out/service/storage/init.d.ts +15 -1
  503. package/out/service/storage/init.js +65 -56
  504. package/out/service/storage/init.js.map +1 -1
  505. package/out/templator/genCallComponentLogic.js +1 -2
  506. package/out/templator/genCallComponentLogic.js.map +1 -1
  507. package/out/templator/genCreateBlock.js +14 -9
  508. package/out/templator/genCreateBlock.js.map +1 -1
  509. package/out/templator/genCurdEditMultipleKeyBlock.js +23 -14
  510. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  511. package/out/templator/genCurdMultipleKeyBlock.js +26 -30
  512. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  513. package/out/templator/genEditTableBlock.d.ts +1 -1
  514. package/out/templator/genEditTableBlock.js +14 -19
  515. package/out/templator/genEditTableBlock.js.map +1 -1
  516. package/out/templator/genEnumSelectBlock.js +1 -1
  517. package/out/templator/genEnumSelectBlock.js.map +1 -1
  518. package/out/templator/genGetBlock.js +2 -2
  519. package/out/templator/genGetBlock.js.map +1 -1
  520. package/out/templator/genGridViewBlock.d.ts +2 -2
  521. package/out/templator/genGridViewBlock.js +18 -28
  522. package/out/templator/genGridViewBlock.js.map +1 -1
  523. package/out/templator/genListViewBlock.d.ts +2 -2
  524. package/out/templator/genListViewBlock.js +9 -16
  525. package/out/templator/genListViewBlock.js.map +1 -1
  526. package/out/templator/genQueryComponent.js +22 -15
  527. package/out/templator/genQueryComponent.js.map +1 -1
  528. package/out/templator/genSelectBlock.d.ts +2 -2
  529. package/out/templator/genSelectBlock.js +21 -48
  530. package/out/templator/genSelectBlock.js.map +1 -1
  531. package/out/templator/genTableBlock.d.ts +1 -1
  532. package/out/templator/genTableBlock.js +11 -17
  533. package/out/templator/genTableBlock.js.map +1 -1
  534. package/out/templator/genUpdateBlock.js +13 -8
  535. package/out/templator/genUpdateBlock.js.map +1 -1
  536. package/out/templator/index.d.ts +4 -2
  537. package/out/templator/index.js +2 -2
  538. package/out/templator/index.js.map +1 -1
  539. package/out/templator/utils.d.ts +9 -2
  540. package/out/templator/utils.js +22 -22
  541. package/out/templator/utils.js.map +1 -1
  542. package/out/translator/index.js +27 -28
  543. package/out/translator/index.js.map +1 -1
  544. package/out/utils/index.d.ts +2 -1
  545. package/out/utils/index.js +8 -14
  546. package/out/utils/index.js.map +1 -1
  547. package/out/utils/logger.js.map +1 -1
  548. package/out/utils/sortTsString.js +3 -1
  549. package/out/utils/sortTsString.js.map +1 -1
  550. package/out/utils/string.js +8 -11
  551. package/out/utils/string.js.map +1 -1
  552. package/out/utils/time-slicing.d.ts +41 -0
  553. package/out/utils/time-slicing.js +81 -0
  554. package/out/utils/time-slicing.js.map +1 -0
  555. package/out/utils/traverse.js +4 -6
  556. package/out/utils/traverse.js.map +1 -1
  557. package/package.json +22 -20
  558. package/sandbox/stdlib/nasl.auth.ts +49 -46
  559. package/sandbox/stdlib/nasl.browser.ts +1 -0
  560. package/sandbox/stdlib/nasl.event.ts +4 -0
  561. package/sandbox/stdlib/nasl.http.ts +29 -31
  562. package/sandbox/stdlib/nasl.ui.definition.ts +13 -1
  563. package/sandbox/stdlib/nasl.ui.ts +11 -0
  564. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  565. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  566. package/sandbox-natural/stdlib/nasl.ui.ts +56 -0
  567. package/sandbox-natural/stdlib/nasl.util.ts +26 -0
  568. package/sandbox-natural/tsconfig.json +12 -0
  569. package/src/automate/engine/utils.js +3 -0
  570. package/src/automate/upgrader/2.20.js +1 -1
  571. package/src/bak/translator.js +92 -99
  572. package/src/breakpoint/generator/AfterStartNode.ts +19 -17
  573. package/src/breakpoint/generator/BeforeEndNode.ts +17 -17
  574. package/src/breakpoint/generator/BreakpointNode.ts +243 -195
  575. package/src/breakpoint/generator/CallbackNode.ts +20 -0
  576. package/src/breakpoint/generator/FragmentNode.ts +14 -0
  577. package/src/breakpoint/generator/index.ts +107 -80
  578. package/src/breakpoint/shared/constants.ts +59 -53
  579. package/src/breakpoint/shared/operations.ts +6 -6
  580. package/src/breakpoint/shared/socket.ts +277 -223
  581. package/src/breakpoint/shared/utils.ts +166 -146
  582. package/src/breakpoint/store/core.ts +326 -297
  583. package/src/breakpoint/store/dock.ts +103 -103
  584. package/src/breakpoint/types/index.d.ts +11 -11
  585. package/src/common/BaseNode.ts +1103 -1020
  586. package/src/common/Command.ts +46 -16
  587. package/src/common/ComponentAPI.ts +72 -72
  588. package/src/common/EventEmitter.ts +80 -76
  589. package/src/common/Messager.ts +223 -224
  590. package/src/common/asyncFuncMap.ts +12 -12
  591. package/src/concepts/Abort__.ts +53 -60
  592. package/src/concepts/Anchor__.ts +158 -149
  593. package/src/concepts/AnonymousFunction__.ts +584 -551
  594. package/src/concepts/App__.ts +4278 -3669
  595. package/src/concepts/Argument__.ts +234 -210
  596. package/src/concepts/Assignee__.ts +680 -656
  597. package/src/concepts/AssignmentLine__.ts +80 -84
  598. package/src/concepts/Assignment__.ts +276 -264
  599. package/src/concepts/Attribute__.ts +183 -184
  600. package/src/concepts/AuthInterface__.ts +61 -63
  601. package/src/concepts/AuthLogicForCallInterface__.ts +540 -511
  602. package/src/concepts/AuthLogic__.ts +210 -194
  603. package/src/concepts/BackendVariable__.ts +414 -415
  604. package/src/concepts/Backend__.ts +317 -303
  605. package/src/concepts/BatchAssignment__.ts +987 -939
  606. package/src/concepts/BinaryExpression__.ts +370 -341
  607. package/src/concepts/BindAttribute__.ts +1056 -1011
  608. package/src/concepts/BindDirective__.ts +540 -542
  609. package/src/concepts/BindEvent__.ts +992 -866
  610. package/src/concepts/BindStyle__.ts +442 -451
  611. package/src/concepts/BooleanLiteral__.ts +89 -90
  612. package/src/concepts/CallAuthInterface__.ts +458 -433
  613. package/src/concepts/CallConnector__.ts +209 -164
  614. package/src/concepts/CallFunction__.ts +600 -600
  615. package/src/concepts/CallInterface__.ts +752 -725
  616. package/src/concepts/CallLogic__.ts +1328 -1236
  617. package/src/concepts/CallQueryComponent__.ts +1580 -1501
  618. package/src/concepts/Comment__.ts +69 -68
  619. package/src/concepts/CompletionProperty__.ts +250 -250
  620. package/src/concepts/ConfigGroup__.ts +312 -296
  621. package/src/concepts/ConfigPropertyValue__.ts +81 -82
  622. package/src/concepts/ConfigProperty__.ts +374 -357
  623. package/src/concepts/Configuration__.ts +288 -276
  624. package/src/concepts/Connection__.ts +426 -0
  625. package/src/concepts/ConnectorTrigger__.ts +146 -142
  626. package/src/concepts/Connector__.ts +1090 -1048
  627. package/src/concepts/Constant__.ts +226 -219
  628. package/src/concepts/DataElement__.ts +108 -115
  629. package/src/concepts/DataSource__.ts +508 -472
  630. package/src/concepts/DatabaseTypeAnnotation__.ts +53 -59
  631. package/src/concepts/Destination__.ts +808 -746
  632. package/src/concepts/End__.ts +85 -89
  633. package/src/concepts/EntityIndex__.ts +206 -202
  634. package/src/concepts/EntityProperty__.ts +825 -791
  635. package/src/concepts/Entity__.ts +921 -864
  636. package/src/concepts/EnumItem__.ts +133 -125
  637. package/src/concepts/Enum__.ts +347 -337
  638. package/src/concepts/Event__.ts +305 -292
  639. package/src/concepts/ExternalDestination__.ts +269 -280
  640. package/src/concepts/ForEachStatement__.ts +583 -531
  641. package/src/concepts/FrontendLibrary__.ts +507 -485
  642. package/src/concepts/FrontendVariable__.ts +44 -49
  643. package/src/concepts/Frontend__.ts +1239 -1187
  644. package/src/concepts/Function__.ts +1110 -1045
  645. package/src/concepts/Identifier__.ts +276 -272
  646. package/src/concepts/IfStatement__.ts +467 -436
  647. package/src/concepts/Integration__.ts +136 -137
  648. package/src/concepts/InterfaceParam__.ts +239 -238
  649. package/src/concepts/Interface__.ts +969 -948
  650. package/src/concepts/JSBlock__.ts +83 -83
  651. package/src/concepts/JavaLogic__.ts +101 -106
  652. package/src/concepts/LogicItem__.ts +307 -237
  653. package/src/concepts/Logic__.ts +2301 -2088
  654. package/src/concepts/MatchCase__.ts +886 -779
  655. package/src/concepts/Match__.ts +728 -659
  656. package/src/concepts/MemberExpression__.ts +330 -311
  657. package/src/concepts/MicroApp__.ts +91 -97
  658. package/src/concepts/Module__.ts +2590 -2275
  659. package/src/concepts/MsgTriggerEvent__.ts +297 -281
  660. package/src/concepts/MsgTriggerLauncher__.ts +286 -256
  661. package/src/concepts/Namespace__.ts +2579 -2466
  662. package/src/concepts/NewComposite__.ts +1487 -1350
  663. package/src/concepts/NewList__.ts +464 -450
  664. package/src/concepts/NewMap__.ts +691 -674
  665. package/src/concepts/New__.ts +42 -49
  666. package/src/concepts/NullLiteral__.ts +66 -72
  667. package/src/concepts/NumericLiteral__.ts +169 -169
  668. package/src/concepts/OqlQueryComponent__.ts +282 -279
  669. package/src/concepts/OverriddenLogic__.ts +2142 -2097
  670. package/src/concepts/Param__.ts +500 -442
  671. package/src/concepts/Point__.ts +53 -59
  672. package/src/concepts/ProcessComponent__.ts +497 -475
  673. package/src/concepts/ProcessElement__.ts +1852 -1780
  674. package/src/concepts/ProcessOutcome__.ts +59 -64
  675. package/src/concepts/ProcessOutcomes__.ts +59 -64
  676. package/src/concepts/Process__.ts +1491 -1428
  677. package/src/concepts/QueryAggregateExpression__.ts +135 -142
  678. package/src/concepts/QueryFieldExpression__.ts +138 -142
  679. package/src/concepts/QueryFromExpression__.ts +246 -254
  680. package/src/concepts/QueryGroupByExpression__.ts +130 -136
  681. package/src/concepts/QueryJoinExpression__.ts +441 -438
  682. package/src/concepts/QueryLimitExpression__.ts +159 -166
  683. package/src/concepts/QueryOrderByExpression__.ts +173 -180
  684. package/src/concepts/QuerySelectExpression__.ts +464 -439
  685. package/src/concepts/Rect__.ts +73 -79
  686. package/src/concepts/Return__.ts +366 -345
  687. package/src/concepts/Role__.ts +146 -147
  688. package/src/concepts/SelectMembers__.ts +358 -350
  689. package/src/concepts/Slot__.ts +152 -153
  690. package/src/concepts/SqlQueryComponent__.ts +230 -228
  691. package/src/concepts/Start__.ts +45 -52
  692. package/src/concepts/StringInterpolation__.ts +323 -296
  693. package/src/concepts/StringLiteral__.ts +113 -115
  694. package/src/concepts/StructureProperty__.ts +306 -295
  695. package/src/concepts/Structure__.ts +615 -578
  696. package/src/concepts/SwitchCase__.ts +326 -290
  697. package/src/concepts/SwitchStatement__.ts +236 -229
  698. package/src/concepts/Theme__.ts +64 -68
  699. package/src/concepts/Transactional__.ts +159 -153
  700. package/src/concepts/TriggerEvent__.ts +285 -274
  701. package/src/concepts/TriggerLauncher__.ts +232 -196
  702. package/src/concepts/TypeAnnotation__.ts +1049 -1011
  703. package/src/concepts/TypeParam__.ts +48 -50
  704. package/src/concepts/UnaryExpression__.ts +163 -153
  705. package/src/concepts/Unparsed__.ts +81 -82
  706. package/src/concepts/UseComponent__.ts +53 -59
  707. package/src/concepts/ValidationRule__.ts +524 -544
  708. package/src/concepts/Variable__.ts +419 -397
  709. package/src/concepts/ViewBlock__.ts +58 -64
  710. package/src/concepts/ViewComponent__.ts +1323 -1261
  711. package/src/concepts/ViewElement__.ts +2537 -2351
  712. package/src/concepts/View__.ts +2461 -2245
  713. package/src/concepts/WhileStatement__.ts +293 -272
  714. package/src/concepts/basics/stdlib/index.ts +17 -1
  715. package/src/concepts/basics/stdlib/nasl.browser.ts +36 -0
  716. package/src/concepts/basics/stdlib/nasl.event.ts +18 -0
  717. package/src/concepts/basics/stdlib/nasl.ui.ts +45 -0
  718. package/src/concepts/basics/stdlib/nasl.util.ts +6 -22
  719. package/src/concepts/index__.ts +2 -1
  720. package/src/concepts/types__.ts +123 -121
  721. package/src/decorators/index.ts +75 -77
  722. package/src/decorators/promise.ts +28 -0
  723. package/src/enums/KEYWORDS.ts +1228 -1228
  724. package/src/enums/LEVEL_NAME_MAP.ts +24 -24
  725. package/src/generator/compileComponent.ts +10 -10
  726. package/src/generator/genBundleFiles.ts +300 -291
  727. package/src/generator/genHash.ts +2 -2
  728. package/src/generator/genMetaData.ts +280 -261
  729. package/src/generator/genReleaseBody.ts +312 -291
  730. package/src/generator/icestark.ts +1 -1
  731. package/src/generator/microApp.ts +17 -20
  732. package/src/generator/permission.ts +241 -232
  733. package/src/generator/qiankun.ts +1 -1
  734. package/src/generator/styleReplacer.ts +28 -31
  735. package/src/index.ts +0 -3
  736. package/src/manager/diagnostic.ts +84 -82
  737. package/src/manager/stepRecorder.ts +106 -94
  738. package/src/natural/RequirementAnalyzer.ts +208 -0
  739. package/src/natural/RequirementExecutor.ts +685 -0
  740. package/src/natural/componentData.ts +81 -0
  741. package/src/natural/genNaturalTS.ts +77 -0
  742. package/src/natural/index.ts +4 -0
  743. package/src/natural/knowledgeMap.ts +39 -0
  744. package/src/natural/naslStdlibMap.ts +24 -0
  745. package/src/natural/transformTSCode.ts +692 -0
  746. package/src/sentry/index.ts +109 -104
  747. package/src/server/createUiTs.ts +190 -184
  748. package/src/server/entity2LogicNamespace.ts +379 -359
  749. package/src/server/event.js +145 -121
  750. package/src/server/extendBaseNode.ts +461 -456
  751. package/src/server/formatTsUtils.ts +712 -713
  752. package/src/server/getConnector.ts +33 -33
  753. package/src/server/getExtensionModules.ts +23 -22
  754. package/src/server/getFunctions.ts +6 -6
  755. package/src/server/getInterfaces.ts +38 -37
  756. package/src/server/getLogging.ts +1 -1
  757. package/src/server/getLogics.ts +391 -312
  758. package/src/server/getMemberIdentifier.ts +286 -281
  759. package/src/server/getProcessComponents.ts +2 -2
  760. package/src/server/getProcesses.ts +548 -534
  761. package/src/server/getScope.ts +51 -51
  762. package/src/server/getValidates.ts +3 -3
  763. package/src/server/index.ts +29 -30
  764. package/src/server/naslServer.ts +4303 -4222
  765. package/src/server/naslStdlibMap.ts +43 -39
  766. package/src/server/process2LogicNamespace.ts +97 -97
  767. package/src/server/translator.ts +740 -746
  768. package/src/service/storage/init.ts +761 -728
  769. package/src/templator/genCallComponentLogic.ts +14 -15
  770. package/src/templator/genCreateBlock.ts +257 -229
  771. package/src/templator/genCurdEditMultipleKeyBlock.ts +333 -317
  772. package/src/templator/genCurdMultipleKeyBlock.ts +503 -475
  773. package/src/templator/genEditTableBlock.ts +194 -187
  774. package/src/templator/genEnumSelectBlock.ts +13 -7
  775. package/src/templator/genGetBlock.ts +57 -55
  776. package/src/templator/genGridViewBlock.ts +195 -211
  777. package/src/templator/genListViewBlock.ts +62 -72
  778. package/src/templator/genQueryComponent.ts +337 -287
  779. package/src/templator/genSelectBlock.ts +283 -297
  780. package/src/templator/genTableBlock.ts +160 -166
  781. package/src/templator/genUpdateBlock.ts +269 -255
  782. package/src/templator/index.ts +4 -4
  783. package/src/templator/utils.ts +491 -463
  784. package/src/translator/index.ts +84 -84
  785. package/src/translator/lsp.ts +22 -22
  786. package/src/translator/tsp.ts +6 -6
  787. package/src/utils/index.ts +115 -117
  788. package/src/utils/logger.ts +3 -4
  789. package/src/utils/sortTsString.ts +34 -32
  790. package/src/utils/string.ts +47 -48
  791. package/src/utils/time-slicing.ts +109 -0
  792. package/src/utils/traverse.ts +114 -126
  793. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +71 -0
  794. package/test/concepts/call-interface/__snapshots__/toJS.spec.ts.snap +140 -0
  795. package/test/concepts/call-interface/constant.ts +5 -0
  796. package/test/concepts/call-interface/fixtures/only-interface.json +158 -0
  797. package/test/concepts/call-interface/fixtures/with-body-complex-argument.json +455 -0
  798. package/test/concepts/call-interface/fixtures/with-body-no-argument.json +187 -0
  799. package/test/concepts/call-interface/fixtures/with-body-simple-argument.json +225 -0
  800. package/test/concepts/call-interface/fixtures/with-headers-no-argument.json +213 -0
  801. package/test/concepts/call-interface/fixtures/with-headers.json +192 -0
  802. package/test/concepts/call-interface/fixtures/with-query-no-argument.json +213 -0
  803. package/test/concepts/call-interface/fixtures/with-query.json +192 -0
  804. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +14 -0
  805. package/test/concepts/call-interface/toJS.spec.ts +14 -0
  806. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +74 -0
  807. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +141 -0
  808. package/test/concepts/call-logic/constant.ts +5 -0
  809. package/test/concepts/call-logic/fixtures/entries-get-with-arguments.json +223 -0
  810. package/test/concepts/call-logic/fixtures/entries-update-with-arguments.json +359 -0
  811. package/test/concepts/call-logic/fixtures/global-logic-argument-no-expression.json +209 -0
  812. package/test/concepts/call-logic/fixtures/global-logic-argument-some-expression.json +311 -0
  813. package/test/concepts/call-logic/fixtures/only-call-logic.json +10 -0
  814. package/test/concepts/call-logic/fixtures/view-buildin-logic-with-argument.json +128 -0
  815. package/test/concepts/call-logic/fixtures/view-component-logic-no-argument.json +126 -0
  816. package/test/concepts/call-logic/fixtures/view-component-with-validation.json +244 -0
  817. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +14 -0
  818. package/test/concepts/call-logic/toJS.spec.ts +14 -0
  819. package/test/concepts/match/__snapshots__/toEmbeddedTS.spec.ts.snap +66 -0
  820. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +40 -0
  821. package/test/concepts/match/constant.ts +5 -0
  822. package/test/concepts/match/fixtures/isExpression.json +259 -0
  823. package/test/concepts/match/fixtures/lastBodyIf.json +268 -0
  824. package/test/concepts/match/fixtures/noExpression.json +176 -0
  825. package/test/concepts/match/toEmbeddedTS.spec.ts +14 -0
  826. package/test/concepts/match/toJS.spec.ts +14 -0
  827. package/test/concepts/utils.ts +76 -3
  828. package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
  829. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +16 -0
  830. package/test/concepts/validation-rule/constant.ts +5 -0
  831. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +10 -17
  832. package/test/concepts/validation-rule/toJS.spec.ts +14 -0
  833. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +68 -0
  834. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +44 -0
  835. package/test/concepts/view-element/constant.ts +5 -0
  836. package/test/concepts/view-element/fixtures/default-not-found.json +322 -0
  837. package/test/concepts/view-element/toEmbeddedTS.spec.ts +14 -0
  838. package/test/concepts/view-element/toVue.spec.ts +14 -0
  839. package/test/setup.ts +7 -0
  840. package/ts-worker/src/index.js +0 -2
  841. package/tsconfig.json +21 -21
  842. package/bin/naslc +0 -3
@@ -1,482 +1,460 @@
1
1
  import { getDisplayString2Type } from './naslServer';
2
2
  import {
3
- Module,
4
- BaseNode,
5
- App,
6
- Structure,
7
- Logic,
8
- Entity,
9
- TypeAnnotation,
10
- MemberExpression,
11
- EntityProperty,
12
- EntityIndex,
13
- View,
14
- Destination,
15
- Enum,
16
- BindEvent,
17
- QueryFromExpression,
18
- QueryJoinExpression,
19
- QueryFieldExpression,
20
- Identifier,
21
- CallLogic,
22
- EnumItem,
23
- Param,
24
- Process,
25
- Interface,
26
- Argument,
27
- ViewElement,
28
- BindAttribute,
29
- Assignment,
30
- CallQueryComponent,
31
- Role,
32
- Configuration,
33
- CallInterface,
34
- Return,
35
- ProcessElement,
36
- NullLiteral,
37
- SwitchCase,
38
- WhileStatement,
39
- IfStatement,
40
- UnaryExpression,
41
- ForEachStatement,
42
- CallFunction,
43
- ProcessOutcome,
44
- Function,
45
- Anchor,
46
- BatchAssignment,
47
- AnonymousFunction,
48
- MatchCase,
49
- OqlQueryComponent,
50
- NewMap,
51
- NewList,
52
- NewComposite,
53
- ValidationRule,
3
+ Module,
4
+ BaseNode,
5
+ App,
6
+ Structure,
7
+ Logic,
8
+ Entity,
9
+ TypeAnnotation,
10
+ MemberExpression,
11
+ EntityProperty,
12
+ EntityIndex,
13
+ View,
14
+ Destination,
15
+ Enum,
16
+ BindEvent,
17
+ QueryFromExpression,
18
+ QueryJoinExpression,
19
+ QueryFieldExpression,
20
+ Identifier,
21
+ CallLogic,
22
+ EnumItem,
23
+ Param,
24
+ Process,
25
+ Interface,
26
+ Argument,
27
+ ViewElement,
28
+ BindAttribute,
29
+ Assignment,
30
+ CallQueryComponent,
31
+ Role,
32
+ Configuration,
33
+ CallInterface,
34
+ Return,
35
+ ProcessElement,
36
+ NullLiteral,
37
+ SwitchCase,
38
+ WhileStatement,
39
+ IfStatement,
40
+ UnaryExpression,
41
+ ForEachStatement,
42
+ CallFunction,
43
+ ProcessOutcome,
44
+ Function,
45
+ Anchor,
46
+ BatchAssignment,
47
+ AnonymousFunction,
48
+ MatchCase,
49
+ OqlQueryComponent,
50
+ NewMap,
51
+ NewList,
52
+ NewComposite,
53
+ ValidationRule,
54
54
  } from '../concepts';
55
55
  import { SourceMapItem } from '../translator';
56
56
  import { Diagnostic } from '../manager/diagnostic';
57
57
  import { sortTsString } from '../utils/sortTsString';
58
58
  import { getNodeByNodeCallee } from '../automate/engine/utils.js';
59
+
59
60
  export interface MinRange {
60
- node: BaseNode;
61
- item: SourceMapItem;
61
+ node: BaseNode;
62
+ item: SourceMapItem;
62
63
  }
63
64
 
64
65
  const mapAstString = new Map();
65
66
 
66
67
  function transformType(tsType: string): string {
67
- if (tsType === 'string' || tsType === 'String')
68
- return '字符串';
69
- else if (tsType === 'number')
70
- return '数字';
71
- else if (tsType === 'Integer')
72
- return '整数';
73
- else if (tsType === 'Double')
74
- return '小数';
75
- else if (tsType === 'Decimal')
76
- return '小数';
77
- else if (tsType === 'Long')
78
- return '整数';
79
- else if (tsType === 'DateTime')
80
- return '日期时间';
81
- else if (tsType === 'Date')
82
- return '日期';
83
- else if (tsType === 'Time')
84
- return '时间';
85
- else if (tsType === 'boolean' || tsType === 'Boolean')
86
- return '布尔值';
87
- else if (tsType === 'unknown')
88
- return '未知类型';
89
- else if (tsType === 'Enums')
90
- return '枚举';
91
- else if (tsType === 'views')
92
- return '页面';
93
- else if (tsType === 'void')
94
- return '无返回值';
95
- else if (tsType === '__elements')
96
- return '页面元素';
97
- else if (tsType === '__unknown__')
98
- return '无效';
99
- else if (tsType === 'extensions')
100
- return '拓展模块';
101
- else if (tsType === 'Promise<void>')
102
- return '未知类型';
103
- else if ((tsType.startsWith('{') && tsType.endsWith('}')) || (tsType.startsWith('{') && tsType.endsWith('...'))) {
104
- if (tsType.includes('__name: "AStructure_')) {
105
- return tsType.replace(/__name: "AStructure_\w{8}";/g, '');
106
- }
107
- return '当前节点';
108
- } else if (tsType.endsWith('[]')) {
109
- return `List<${transformType(tsType.slice(0, -2))}>`;
110
- } else if (tsType.startsWith('<T extends ') && tsType.endsWith('>() => T')) {
111
- const types = getDisplayString2Type(tsType);
112
- let tsStr = '';
113
- types.forEach((item, index) => {
114
- tsStr += index === 0 ? transformType(item) : ' | ' + transformType(item);
115
- });
116
- return tsStr;
117
- } else if (tsType.includes(' & ')) {
118
- const types = tsType.split(' & ');
119
- let tsStr = '';
120
- types.forEach((item, index) => {
121
- tsStr += index === 0 ? transformType(item) : ' | ' + transformType(item);
122
- });
123
- return tsStr;
124
- } else if (tsType.includes(' | ')) {
125
- const types = tsType.split(' | ');
126
- let tsStr = '';
127
- types.forEach((item, index) => {
128
- const newItem = item.replace(/[a-zA-Z_]+/g, (text) => transformType(text));
129
- tsStr += index === 0 ? newItem : ' 或 ' + newItem;
130
- });
131
- return tsStr;
132
- } else {
133
- return tsType;
68
+ if (tsType === 'string' || tsType === 'String') return '字符串';
69
+ if (tsType === 'number') return '数字';
70
+ if (tsType === 'Integer') return '整数';
71
+ if (tsType === 'Double') return '小数';
72
+ if (tsType === 'Decimal') return '小数';
73
+ if (tsType === 'Long') return '整数';
74
+ if (tsType === 'DateTime') return '日期时间';
75
+ if (tsType === 'Date') return '日期';
76
+ if (tsType === 'Time') return '时间';
77
+ if (tsType === 'boolean' || tsType === 'Boolean') return '布尔值';
78
+ if (tsType === 'unknown') return '未知类型';
79
+ else if (tsType === 'Enums') return '枚举';
80
+ else if (tsType === 'views') return '页面';
81
+ else if (tsType === 'void') return '无返回值';
82
+ else if (tsType === '__elements') return '页面元素';
83
+ else if (tsType === '__unknown__') return '无效';
84
+ else if (tsType === 'extensions') return '拓展模块';
85
+ else if (tsType === 'Promise<void>') return '未知类型';
86
+ else if ((tsType.startsWith('{') && tsType.endsWith('}')) || (tsType.startsWith('{') && tsType.endsWith('...'))) {
87
+ if (tsType.includes('__name: "AStructure_')) {
88
+ return tsType.replace(/__name: "AStructure_\w{8}";/g, '');
134
89
  }
90
+ return '当前节点';
91
+ } else if (tsType.endsWith('[]')) {
92
+ return `List<${transformType(tsType.slice(0, -2))}>`;
93
+ } else if (tsType.startsWith('<T extends ') && tsType.endsWith('>() => T')) {
94
+ const types = getDisplayString2Type(tsType);
95
+ let tsStr = '';
96
+ types.forEach((item, index) => {
97
+ tsStr += index === 0 ? transformType(item) : ' | ' + transformType(item);
98
+ });
99
+ return tsStr;
100
+ } else if (tsType.includes(' & ')) {
101
+ const types = tsType.split(' & ');
102
+ let tsStr = '';
103
+ types.forEach((item, index) => {
104
+ tsStr += index === 0 ? transformType(item) : ' | ' + transformType(item);
105
+ });
106
+ return tsStr;
107
+ } else if (tsType.includes(' | ')) {
108
+ const types = tsType.split(' | ');
109
+ let tsStr = '';
110
+ types.forEach((item, index) => {
111
+ const newItem = item.replace(/[a-zA-Z_]+/g, (text) => transformType(text));
112
+ tsStr += index === 0 ? newItem : ' 或 ' + newItem;
113
+ });
114
+ return tsStr;
115
+ } else {
116
+ return tsType;
117
+ }
135
118
  }
136
119
 
137
120
  const NAMESPACE_CONCEPT_MAP: Record<string, string> = {
138
- entities: '实体',
139
- structures: '数据结构',
140
- enums: '枚举',
141
- logics: '逻辑',
142
- interfaces: '接口',
143
- views: '页面',
144
- elements: '元素',
145
- processes: '流程',
146
- roles: '角色',
147
- extensions: '扩展模块',
148
- apis: '接口应用',
149
- components: '扩展组件',
150
- properties: '配置参数',
121
+ entities: '实体',
122
+ structures: '数据结构',
123
+ enums: '枚举',
124
+ logics: '逻辑',
125
+ interfaces: '接口',
126
+ views: '页面',
127
+ elements: '元素',
128
+ processes: '流程',
129
+ roles: '角色',
130
+ extensions: '扩展模块',
131
+ apis: '接口应用',
132
+ components: '扩展组件',
133
+ properties: '配置参数',
151
134
  };
152
135
 
153
136
  function transformNamespace(tsNamespace: string): string {
154
- for (const key in NAMESPACE_CONCEPT_MAP) {
155
- const value = NAMESPACE_CONCEPT_MAP[key];
156
- if (tsNamespace.endsWith(key))
157
- return value;
158
- }
159
- return tsNamespace;
137
+ for (const key in NAMESPACE_CONCEPT_MAP) {
138
+ const value = NAMESPACE_CONCEPT_MAP[key];
139
+ if (tsNamespace.endsWith(key)) return value;
140
+ }
141
+ return tsNamespace;
160
142
  }
161
143
 
162
144
  function transformMethod(tsMethod: string): string {
163
- if (tsMethod === 'forEach')
164
- return 'ForEach';
165
- else
166
- return tsMethod;
145
+ if (tsMethod === 'forEach') return 'ForEach';
146
+ return tsMethod;
167
147
  }
168
148
 
169
149
  function transformIdentifier(identifier: string): string {
170
- if (NAMESPACE_CONCEPT_MAP[identifier])
171
- return NAMESPACE_CONCEPT_MAP[identifier];
172
- else
173
- return ` ${transformType(identifier)} 上的`;
150
+ if (NAMESPACE_CONCEPT_MAP[identifier]) return NAMESPACE_CONCEPT_MAP[identifier];
151
+ return ` ${transformType(identifier)} 上的`;
174
152
  }
175
153
 
176
154
  export function outOriginalvalue(value: string) {
177
- return value;
155
+ return value;
178
156
  }
179
157
  const TS_RULES_TYPE_INCONSISTENCY: Array<RegExp> = [
180
- /This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap/,
181
- /Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/,
182
- /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/,
183
- /Type '(.+?)' is not assignable to type '(.+?)'/,
184
- /Type '(.+?)' does not satisfy the constraint '(.+?)'/,
185
- /Type '(.+?)' is missing the following properties from type '(.+?)'/,
158
+ /This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap/,
159
+ /Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/,
160
+ /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/,
161
+ /Type '(.+?)' is not assignable to type '(.+?)'/,
162
+ /Type '(.+?)' does not satisfy the constraint '(.+?)'/,
163
+ /Type '(.+?)' is missing the following properties from type '(.+?)'/,
186
164
  ];
187
165
 
188
166
  const TS_RULES: Array<{
189
- re: RegExp;
190
- result: string;
191
- transforms?: Array<(str: string) => string>;
167
+ re: RegExp;
168
+ result: string;
169
+ transforms?: Array<(str: string) => string>;
192
170
  }> = [
193
- {
194
- re: /Property '(FrontEnd|BackEnd)(.+?)' is private and only accessible within/,
195
- result: '找不到配置参数$2',
196
- transforms: [transformType, transformType],
197
- },
198
- {
199
- re: /Object literal may only specify known properties, and '(.+?)' does not exist in type/,
200
- result: '当前参数$1,不可用。',
201
- transforms: [transformType],
202
- },
203
- {
204
- re: /Object literal may only specify known properties, but '(.+?)' does not exist in type/,
205
- result: '当前参数$1,不可用。',
206
- transforms: [transformType],
207
- },
208
- {
209
- re: /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/,
210
- result: '参数类型不一致!传入类型:$1,接收类型:$2。',
211
- transforms: [transformType, transformType],
212
- },
213
- {
214
- re: /Type '(.+?)' is not assignable to type '(.+?)'/,
215
- result: '左右参数类型不一致!左边类型:$2,右边类型:$1。',
216
- transforms: [transformType, transformType],
217
- },
218
- {
219
- re: /Type '(.+?)' does not satisfy the constraint '(.+?)'/,
220
- result: '参数类型不一致!传入类型:$1,接收类型:$2。',
221
- transforms: [transformType, transformType],
222
- },
223
- {
224
- re: /This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap/,
225
- result: '左右参数类型不一致!左边类型:$2,右边类型:$3。',
226
- transforms: [transformType, transformType, transformType],
227
- },
228
- {
229
- re: /Type '(.+?)' is missing the following properties from type '(.+?)'/,
230
- result: '类型不一致!左边类型:$2,右边类型:$1。',
231
- transforms: [transformType, transformType],
232
- },
233
- {
234
- re: /Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/,
235
- result: '类型不一致!左边类型:$3,右边类型:$2。',
236
- transforms: [outOriginalvalue, transformType, transformType],
237
- },
238
- {
239
- re: /object literal cannot have multiple properties with the same name/,
240
- result: '不能具有多个名称相同的属性。',
241
- },
242
- {
243
- re: /Invalid character/,
244
- result: '无效的字符',
245
- },
246
- {
247
- // This expression is not callable.\n Type 'Entity1' has no call signatures.
248
- re: /This expression is not callable.\s*Type '(.+?)' has no call signatures/,
249
- result: '此表达式不可用。',
250
- },
251
- {
252
- re: /Expression expected/,
253
- result: '表达式不能为空。',
254
- },
255
- {
256
- re: /Cannot find name '__(?:IDENTIFIER|LEFT|RIGHT)__'/,
257
- result: '表达式不能为空。',
258
- },
259
- {
260
- re: /Cannot find name '__(?:FRONTENDVARIABLES)__'/,
261
- result: '前端全局变量:不可在非页面下使用。',
262
- },
263
- {
264
- re: /Cannot find name '__(?:QueryFieldExpression)__'/,
265
- result: '数据查询:实体属性不能为空。',
266
- },
267
- {
268
- re: /Cannot find name '__(?:WHERE_MULTIPLE_CONDITION)__'/,
269
- result: '数据查询:筛选条件不能有多个表达式。',
270
- },
271
- {
272
- re: /Cannot find name '__(?:HAVING_MULTIPLE_CONDITION)__'/,
273
- result: '数据查询:聚合属性过滤不能有多个表达式。',
274
- },
275
- {
276
- re: /Cannot find name '__(?:EMPTY_AGGREGATE_NAME)__'/,
277
- result: '数据查询:聚合函数名称不能为空。',
278
- },
279
- {
280
- re: /Cannot find name '__(?:EMPTY_AGGREGATE_ALIAS)__'/,
281
- result: '数据查询:聚合函数别名不能为空。',
282
- },
283
- {
284
- re: /Cannot find name '__(?:EMPTY_GROUP_BY_NAME)__'/,
285
- result: '数据查询:分组属性不能为空。',
286
- },
287
- {
288
- re: /Cannot find name '__(?:EMPTY_GROUP_BY_ALIAS)__'/,
289
- result: '分组属性别名不能为空。',
290
- },
291
- {
292
- re: /Cannot find name '__(?:SQL_GRAMMAR_ERROR)__'/,
293
- result: 'SQL查询:语句可能有异常。',
294
- },
295
- {
296
- re: /Cannot find name '__(?:OQL_GRAMMAR_ERROR)__'/,
297
- result: 'SQL查询:语句可能有异常。',
298
- },
299
- {
300
- re: /Cannot find name '__(?:OQL_ALIAS_WARNING)__'/,
301
- result: 'SQL查询:别名不符合规范。',
302
- },
303
- {
304
- re: /Cannot find name '__(?:OQL_EMPTY_ERROR)__'/,
305
- result: 'SQL查询:语句不能为空。',
306
- },
307
- {
308
- re: /Cannot find name '__(?:NO_SELECT_TYPE)__'/,
309
- result: '未选择返回数据类型',
310
- },
311
- {
312
- re: /'_unsupported_syntax_lcap'/,
313
- result: 'SQL查询:不支持的使用方式',
314
- },
315
- {
316
- re: /Cannot find name '__UsersEmpty__'./,
317
- result: '任务完成人为空',
318
- },
319
- {
320
- re: /Cannot find name '__assignmentLineEmpty__'./,
321
- result: '批量赋值没有连线',
322
- },
323
- {
324
- re: /No value exists in scope for the shorthand property '__(?:IDENTIFIER|LEFT|RIGHT)__'. Either declare one or provide an initializer./,
325
- result: '用户任务未关联页面',
326
- },
327
- {
328
- re: /No value exists in scope for the shorthand property '__(?:outOfProcess)__'. Either declare one or provide an initializer./,
329
- result: '节点未关联到流程图',
330
- },
331
- {
332
- re: /'(.+?)' has no exported member(?: named)? '(.+?)'/,
333
- result: '找不到接口$1 $2。',
334
- transforms: [transformNamespace, transformType],
335
- },
336
- {
337
- re: /Unreachable code detected\./,
338
- result: '逻辑中有未使用的。',
339
- },
340
- {
341
- re: /Property '__slice' does not exist on type '(.+?)'/,
342
- result: 'ForEach:循环列表:参数类型不匹配!所需类型:数组、集合等,提供类型:$1',
343
- transforms: [transformType],
344
- },
345
- {
346
- re: /Property '(.+?)' does not exist on type 'typeof (.+?)'/,
347
- result: '找不到$2 $1。',
348
- transforms: [transformMethod, transformIdentifier],
349
- },
350
- {
351
- re: /Property '(.+?)' does not exist on type '(.+?)'/,
352
- result: '找不到$2 $1。',
353
- transforms: [transformMethod, transformIdentifier],
354
- },
355
- {
356
- re: /Cannot find name '(.+?)'. Did you mean '(.+?)'\?/,
357
- result: '找不到 $1。',
358
- transforms: [outOriginalvalue, outOriginalvalue],
359
- },
360
- {
361
- re: /Expected (.+?) type arguments, but got (.+?)/,
362
- result: '预期 $1 个类型参数,但传入了 $2 个。',
363
- transforms: [outOriginalvalue, outOriginalvalue],
364
- },
365
- {
366
- re: /Expected (.+?) arguments, but got (.+?)./,
367
- result: '预期 $1 个参数,但传入了 $2 个。',
368
- transforms: [outOriginalvalue, outOriginalvalue],
369
- },
370
- {
371
- re: /The (.+?)-hand side of an arithmetic operation must be of type (.+?). type./,
372
- result: '表达式错误!',
373
- transforms: [outOriginalvalue, outOriginalvalue],
374
- },
375
- {
376
- re: /Operator '(.+?)' cannot be applied to types '(.+?)' and '(.+?)'./,
377
- result: '符号:$1 参数类型不匹配!所需类型:基础类型>$2,提供类型:$3。',
378
- transforms: [outOriginalvalue, transformType, transformType],
379
- },
380
- {
381
- re: /Object is possibly 'undefined'./,
382
- result: '所选择的内容未定义。',
383
- },
384
- {
385
- re: /Cannot find name '(.+?)'./,
386
- result: '所选择的内容 $1 未定义。',
387
- transforms: [outOriginalvalue],
388
- },
389
- {
390
- re: /Duplicate identifier '(.+?)'./,
391
- result: '当前内容中有重复的 $1,可能会影响使用。',
392
- transforms: [outOriginalvalue],
393
- },
394
- {
395
- re: /'__LogicEmpty' is declared but its value is never read./,
396
- result: '逻辑为空,请编辑内容',
397
- },
398
- {
399
- re: /'__destinationEmpty__' is declared but its value is never read./,
400
- result: '任务未关联页面',
401
- },
402
- {
403
- re: /'__devConfigValueEmpty' is declared but its value is never read./,
404
- result: '配置参数开发环境取值未设置',
405
- },
406
- {
407
- re: /'__onlineConfigValueEmpty' is declared but its value is never read./,
408
- result: '配置参数生产环境取值未设置',
409
- },
410
- {
411
- re: /Variable '(.+?)' implicitly has an 'any' type./,
412
- result: '$1推导不出类型!请连线或手动设置',
413
- transforms: [transformType],
414
- },
415
- {
416
- re: /'(.+?)' refers to a value, but is being used as a type here. Did you mean 'typeof (.+?)'?/,
417
- result: '$1未初始化!请连线',
418
- transforms: [transformType],
419
- },
171
+ {
172
+ re: /Property '(FrontEnd|BackEnd)(.+?)' is private and only accessible within/,
173
+ result: '找不到配置参数$2',
174
+ transforms: [transformType, transformType],
175
+ },
176
+ {
177
+ re: /Object literal may only specify known properties, and '(.+?)' does not exist in type/,
178
+ result: '当前参数$1,不可用。',
179
+ transforms: [transformType],
180
+ },
181
+ {
182
+ re: /Object literal may only specify known properties, but '(.+?)' does not exist in type/,
183
+ result: '当前参数$1,不可用。',
184
+ transforms: [transformType],
185
+ },
186
+ {
187
+ re: /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/,
188
+ result: '参数类型不一致!传入类型:$1,接收类型:$2。',
189
+ transforms: [transformType, transformType],
190
+ },
191
+ {
192
+ re: /Type '(.+?)' is not assignable to type '(.+?)'/,
193
+ result: '左右参数类型不一致!左边类型:$2,右边类型:$1。',
194
+ transforms: [transformType, transformType],
195
+ },
196
+ {
197
+ re: /Type '(.+?)' does not satisfy the constraint '(.+?)'/,
198
+ result: '参数类型不一致!传入类型:$1,接收类型:$2。',
199
+ transforms: [transformType, transformType],
200
+ },
201
+ {
202
+ re: /This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap/,
203
+ result: '左右参数类型不一致!左边类型:$2,右边类型:$3。',
204
+ transforms: [transformType, transformType, transformType],
205
+ },
206
+ {
207
+ re: /Type '(.+?)' is missing the following properties from type '(.+?)'/,
208
+ result: '类型不一致!左边类型:$2,右边类型:$1。',
209
+ transforms: [transformType, transformType],
210
+ },
211
+ {
212
+ re: /Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/,
213
+ result: '类型不一致!左边类型:$3,右边类型:$2。',
214
+ transforms: [outOriginalvalue, transformType, transformType],
215
+ },
216
+ {
217
+ re: /object literal cannot have multiple properties with the same name/,
218
+ result: '不能具有多个名称相同的属性。',
219
+ },
220
+ {
221
+ re: /Invalid character/,
222
+ result: '无效的字符',
223
+ },
224
+ {
225
+ // This expression is not callable.\n Type 'Entity1' has no call signatures.
226
+ re: /This expression is not callable.\s*Type '(.+?)' has no call signatures/,
227
+ result: '此表达式不可用。',
228
+ },
229
+ {
230
+ re: /Expression expected/,
231
+ result: '表达式不能为空。',
232
+ },
233
+ {
234
+ re: /Cannot find name '__(?:IDENTIFIER|LEFT|RIGHT)__'/,
235
+ result: '表达式不能为空。',
236
+ },
237
+ {
238
+ re: /Cannot find name '__(?:FRONTENDVARIABLES)__'/,
239
+ result: '前端全局变量:不可在非页面下使用。',
240
+ },
241
+ {
242
+ re: /Cannot find name '__(?:QueryFieldExpression)__'/,
243
+ result: '数据查询:实体属性不能为空。',
244
+ },
245
+ {
246
+ re: /Cannot find name '__(?:WHERE_MULTIPLE_CONDITION)__'/,
247
+ result: '数据查询:筛选条件不能有多个表达式。',
248
+ },
249
+ {
250
+ re: /Cannot find name '__(?:HAVING_MULTIPLE_CONDITION)__'/,
251
+ result: '数据查询:聚合属性过滤不能有多个表达式。',
252
+ },
253
+ {
254
+ re: /Cannot find name '__(?:EMPTY_AGGREGATE_NAME)__'/,
255
+ result: '数据查询:聚合函数名称不能为空。',
256
+ },
257
+ {
258
+ re: /Cannot find name '__(?:EMPTY_AGGREGATE_ALIAS)__'/,
259
+ result: '数据查询:聚合函数别名不能为空。',
260
+ },
261
+ {
262
+ re: /Cannot find name '__(?:EMPTY_GROUP_BY_NAME)__'/,
263
+ result: '数据查询:分组属性不能为空。',
264
+ },
265
+ {
266
+ re: /Cannot find name '__(?:EMPTY_GROUP_BY_ALIAS)__'/,
267
+ result: '分组属性别名不能为空。',
268
+ },
269
+ {
270
+ re: /Cannot find name '__(?:SQL_GRAMMAR_ERROR)__'/,
271
+ result: 'SQL查询:语句可能有异常。',
272
+ },
273
+ {
274
+ re: /Cannot find name '__(?:OQL_GRAMMAR_ERROR)__'/,
275
+ result: 'SQL查询:语句可能有异常。',
276
+ },
277
+ {
278
+ re: /Cannot find name '__(?:OQL_ALIAS_WARNING)__'/,
279
+ result: 'SQL查询:别名不符合规范。',
280
+ },
281
+ {
282
+ re: /Cannot find name '__(?:OQL_EMPTY_ERROR)__'/,
283
+ result: 'SQL查询:语句不能为空。',
284
+ },
285
+ {
286
+ re: /Cannot find name '__(?:NO_SELECT_TYPE)__'/,
287
+ result: '未选择返回数据类型',
288
+ },
289
+ {
290
+ re: /'_unsupported_syntax_lcap'/,
291
+ result: 'SQL查询:不支持的使用方式',
292
+ },
293
+ {
294
+ re: /Cannot find name '__UsersEmpty__'./,
295
+ result: '任务完成人为空',
296
+ },
297
+ {
298
+ re: /Cannot find name '__assignmentLineEmpty__'./,
299
+ result: '批量赋值没有连线',
300
+ },
301
+ {
302
+ re: /No value exists in scope for the shorthand property '__(?:IDENTIFIER|LEFT|RIGHT)__'. Either declare one or provide an initializer./,
303
+ result: '用户任务未关联页面',
304
+ },
305
+ {
306
+ re: /No value exists in scope for the shorthand property '__(?:outOfProcess)__'. Either declare one or provide an initializer./,
307
+ result: '节点未关联到流程图',
308
+ },
309
+ {
310
+ re: /'(.+?)' has no exported member(?: named)? '(.+?)'/,
311
+ result: '找不到接口$1 $2。',
312
+ transforms: [transformNamespace, transformType],
313
+ },
314
+ {
315
+ re: /Unreachable code detected\./,
316
+ result: '逻辑中有未使用的。',
317
+ },
318
+ {
319
+ re: /Property '__slice' does not exist on type '(.+?)'/,
320
+ result: 'ForEach:循环列表:参数类型不匹配!所需类型:数组、集合等,提供类型:$1',
321
+ transforms: [transformType],
322
+ },
323
+ {
324
+ re: /Property '(.+?)' does not exist on type 'typeof (.+?)'/,
325
+ result: '找不到$2 $1。',
326
+ transforms: [transformMethod, transformIdentifier],
327
+ },
328
+ {
329
+ re: /Property '(.+?)' does not exist on type '(.+?)'/,
330
+ result: '找不到$2 $1。',
331
+ transforms: [transformMethod, transformIdentifier],
332
+ },
333
+ {
334
+ re: /Cannot find name '(.+?)'. Did you mean '(.+?)'\?/,
335
+ result: '找不到 $1。',
336
+ transforms: [outOriginalvalue, outOriginalvalue],
337
+ },
338
+ {
339
+ re: /Expected (.+?) type arguments, but got (.+?)/,
340
+ result: '预期 $1 个类型参数,但传入了 $2 个。',
341
+ transforms: [outOriginalvalue, outOriginalvalue],
342
+ },
343
+ {
344
+ re: /Expected (.+?) arguments, but got (.+?)./,
345
+ result: '预期 $1 个参数,但传入了 $2 个。',
346
+ transforms: [outOriginalvalue, outOriginalvalue],
347
+ },
348
+ {
349
+ re: /The (.+?)-hand side of an arithmetic operation must be of type (.+?). type./,
350
+ result: '表达式错误!',
351
+ transforms: [outOriginalvalue, outOriginalvalue],
352
+ },
353
+ {
354
+ re: /Operator '(.+?)' cannot be applied to types '(.+?)' and '(.+?)'./,
355
+ result: '符号:$1 参数类型不匹配!所需类型:基础类型>$2,提供类型:$3。',
356
+ transforms: [outOriginalvalue, transformType, transformType],
357
+ },
358
+ {
359
+ re: /Object is possibly 'undefined'./,
360
+ result: '所选择的内容未定义。',
361
+ },
362
+ {
363
+ re: /Cannot find name '(.+?)'./,
364
+ result: '所选择的内容 $1 未定义。',
365
+ transforms: [outOriginalvalue],
366
+ },
367
+ {
368
+ re: /Duplicate identifier '(.+?)'./,
369
+ result: '当前内容中有重复的 $1,可能会影响使用。',
370
+ transforms: [outOriginalvalue],
371
+ },
372
+ {
373
+ re: /'__LogicEmpty' is declared but its value is never read./,
374
+ result: '逻辑为空,请编辑内容',
375
+ },
376
+ {
377
+ re: /'__destinationEmpty__' is declared but its value is never read./,
378
+ result: '任务未关联页面',
379
+ },
380
+ {
381
+ re: /'__devConfigValueEmpty' is declared but its value is never read./,
382
+ result: '配置参数开发环境取值未设置',
383
+ },
384
+ {
385
+ re: /'__onlineConfigValueEmpty' is declared but its value is never read./,
386
+ result: '配置参数生产环境取值未设置',
387
+ },
388
+ {
389
+ re: /Variable '(.+?)' implicitly has an 'any' type./,
390
+ result: '$1推导不出类型!请连线或手动设置',
391
+ transforms: [transformType],
392
+ },
393
+ {
394
+ re: /'(.+?)' refers to a value, but is being used as a type here. Did you mean 'typeof (.+?)'?/,
395
+ result: '$1未初始化!请连线',
396
+ transforms: [transformType],
397
+ },
420
398
  ];
421
399
 
422
400
  const POST_RULES: Array<{
423
- re: RegExp;
424
- result: string;
425
- transforms?: Array<(str: string) => string>;
401
+ re: RegExp;
402
+ result: string;
403
+ transforms?: Array<(str: string) => string>;
426
404
  }> = [
427
- {
428
- re: /__IDENTIFIER__/g,
429
- result: 'undefined',
430
- },
431
- {
432
- re: /Integer|"Integer"/g,
433
- result: '整数',
434
- },
435
- {
436
- re: /Long|"Long"/g,
437
- result: '整数',
438
- },
439
- {
440
- re: /Double|"Double"/g,
441
- result: '小数',
442
- },
443
- {
444
- re: /Decimal|"Decimal"/g,
445
- result: '小数',
446
- },
447
- {
448
- re: /String|"String"/g,
449
- result: '字符串',
450
- },
451
- {
452
- re: /Boolean|"Boolean"/g,
453
- result: '布尔值',
454
- },
455
- {
456
- re: /never/g,
457
- result: '未知类型',
458
- },
459
- // 匿名数据结构去掉冗余展示 __name: "AStructure_\w{8}"
460
- {
461
- re: /__name: "AStructure_\w{8}";/g,
462
- result: '',
463
- },
405
+ {
406
+ re: /__IDENTIFIER__/g,
407
+ result: 'undefined',
408
+ },
409
+ {
410
+ re: /Integer|"Integer"/g,
411
+ result: '整数',
412
+ },
413
+ {
414
+ re: /Long|"Long"/g,
415
+ result: '整数',
416
+ },
417
+ {
418
+ re: /Double|"Double"/g,
419
+ result: '小数',
420
+ },
421
+ {
422
+ re: /Decimal|"Decimal"/g,
423
+ result: '小数',
424
+ },
425
+ {
426
+ re: /String|"String"/g,
427
+ result: '字符串',
428
+ },
429
+ {
430
+ re: /Boolean|"Boolean"/g,
431
+ result: '布尔值',
432
+ },
433
+ {
434
+ re: /never/g,
435
+ result: '未知类型',
436
+ },
437
+ // 匿名数据结构去掉冗余展示 __name: "AStructure_\w{8}"
438
+ {
439
+ re: /__name: "AStructure_\w{8}";/g,
440
+ result: '',
441
+ },
464
442
  ];
465
443
  Object.keys(NAMESPACE_CONCEPT_MAP).forEach((key) => {
466
- POST_RULES.push({
467
- re: new RegExp(key, 'g'),
468
- result: NAMESPACE_CONCEPT_MAP[key],
469
- });
444
+ POST_RULES.push({
445
+ re: new RegExp(key, 'g'),
446
+ result: NAMESPACE_CONCEPT_MAP[key],
447
+ });
470
448
  });
471
449
 
472
450
  export function translateDiagnosticMessage(message: string) {
473
- for (const rule of TS_RULES) {
474
- const cap = rule.re.exec(message);
475
- if (cap) {
476
- return rule.result.replace(/\$(\d+)/g, (m, index) => rule.transforms[index - 1](cap[index]));
477
- }
451
+ for (const rule of TS_RULES) {
452
+ const cap = rule.re.exec(message);
453
+ if (cap) {
454
+ return rule.result.replace(/\$(\d+)/g, (m, index) => rule.transforms[index - 1](cap[index]));
478
455
  }
479
- return message;
456
+ }
457
+ return message;
480
458
  }
481
459
  /**
482
460
  * 节点和ts 报错结合,转成更精准的ts报错
@@ -485,350 +463,366 @@ export function translateDiagnosticMessage(message: string) {
485
463
  * @returns
486
464
  */
487
465
  export function naslNodeTranslateMessage(minRange: MinRange, tsErrorDetail: Diagnostic) {
488
- const text = tsErrorDetail?.originalDiagnostic?.text;
489
- let node = minRange?.node;
490
- const logicAncestor = node.getAncestor('Logic') || {} as any;
491
- const { parentNode = { concept: '' } } = logicAncestor;
492
- const isFELogic = ['BindEvent', 'View'].includes(parentNode.concept);
466
+ const text = tsErrorDetail?.originalDiagnostic?.text;
467
+ let node = minRange?.node;
468
+ const logicAncestor = node.getAncestor('Logic') || ({} as any);
469
+ const { parentNode = { concept: '' } } = logicAncestor;
470
+ const isFELogic = ['BindEvent', 'View'].includes(parentNode.concept);
493
471
 
494
- // 有一些节点报错信息不向外暴露,缺失一些原生标签等等的展示
495
- if (node instanceof View || node instanceof ViewElement) {
496
- if (text.startsWith(`'nasl.ui' has no exported member named `)) {
497
- return null;
498
- } else if (text.startsWith(`Property '`) && text.includes(`does not exist on type 'typeof ui'.`)) {
499
- return null;
500
- } else if (text.startsWith(`Namespace 'nasl.ui' has no exported member `)) {
501
- return null;
502
- } else if (text.startsWith(`Function expression, which lacks return-type annotation, implicitly has an 'any[]' return type.`)) {
503
- return null;
504
- }
472
+ // 有一些节点报错信息不向外暴露,缺失一些原生标签等等的展示
473
+ if (node instanceof View || node instanceof ViewElement) {
474
+ if (text.startsWith(`'nasl.ui' has no exported member named `)) {
475
+ return null;
476
+ }
477
+ if (text.startsWith(`Property '`) && text.includes(`does not exist on type 'typeof ui'.`)) {
478
+ return null;
479
+ }
480
+ if (text.startsWith(`Namespace 'nasl.ui' has no exported member `)) {
481
+ return null;
482
+ }
483
+ if (text.startsWith(`Function expression, which lacks return-type annotation, implicitly has an 'any[]' return type.`)) {
484
+ return null;
485
+ }
486
+ }
487
+ // 处理bindevent参数没传递的报错
488
+ if (/Expected (.+?) arguments, but got (.+?)./.exec(text)) {
489
+ // bindevent本身现在就不传参数
490
+ if (node instanceof BindEvent) {
491
+ return null;
505
492
  }
506
- // 处理bindevent参数没传递的报错
507
- if (/Expected (.+?) arguments, but got (.+?)./.exec(text)) {
508
- // bindevent本身现在就不传参数
509
- if (node instanceof BindEvent) {
510
- return null;
511
- }
512
-
513
- if (node instanceof ProcessElement && (node.isUserTask || node.type === 'AutoTask' || node.type === 'StartNoneEvent')) {
514
- const reg = /Expected (.+?) arguments, but got (.+?)./.exec(text);
515
- let u;
516
- switch (node.type) {
517
- case 'UserTask':
518
- u = '用户任务';
519
- break;
520
- case 'AutoTask':
521
- u = '自动任务';
522
- break;
523
- case 'ApprovalTask':
524
- u = '审批任务';
525
- break;
526
- case 'InitiateTask':
527
- u = '发起任务';
528
- break;
529
- default:
530
- u = '任务';
531
- }
532
- if (reg[2] === '0') {
533
- tsErrorDetail.message = `${u}出口顺序流个数不能是0`;
534
- } else {
535
- tsErrorDetail.message = `${u}出口顺序流个数不能大于1`;
536
- }
537
493
 
538
- if (node.type === 'StartNoneEvent') {
539
- tsErrorDetail.message = `开始节点只能有一个出口顺序流`;
540
- }
541
- }
494
+ if (node instanceof ProcessElement && (node.isUserTask || node.type === 'AutoTask' || node.type === 'StartNoneEvent')) {
495
+ const reg = /Expected (.+?) arguments, but got (.+?)./.exec(text);
496
+ let u;
497
+ switch (node.type) {
498
+ case 'UserTask':
499
+ u = '用户任务';
500
+ break;
501
+ case 'AutoTask':
502
+ u = '自动任务';
503
+ break;
504
+ case 'ApprovalTask':
505
+ u = '审批任务';
506
+ break;
507
+ case 'InitiateTask':
508
+ u = '发起任务';
509
+ break;
510
+ default:
511
+ u = '任务';
512
+ }
513
+ if (reg[2] === '0') {
514
+ tsErrorDetail.message = `${u}出口顺序流个数不能是0`;
515
+ } else {
516
+ tsErrorDetail.message = `${u}出口顺序流个数不能大于1`;
517
+ }
542
518
 
543
- if (node instanceof ProcessElement && ['ExclusiveGateway', 'ParallelGateway', 'InclusiveGateway'].includes(node.type)) {
544
- const reg = /Expected (.+?) arguments, but got (.+?)./.exec(text);
545
- let u = '排他网关';
546
- if (node.type === 'ParallelGateway') {
547
- u = '并行网关';
548
- } else if (node.type === 'InclusiveGateway') {
549
- u = '包容网关';
550
- }
551
- if (reg[2] === '0') {
552
- tsErrorDetail.message = `${u}出口顺序流和入口顺序流个数不能等于0`;
553
- } else {
554
- tsErrorDetail.message = `${u}出口顺序流和入口顺序流个数同时等于1,该${u}没有意义`;
555
- }
556
- }
519
+ if (node.type === 'StartNoneEvent') {
520
+ tsErrorDetail.message = `开始节点只能有一个出口顺序流`;
521
+ }
557
522
  }
558
523
 
559
- // 因为缺少参数时候有可能有特殊情况,因为原本少的多了就会找到 callLogic上,
560
- // 但是只少一个的时候就会找到准确的Argument上 需要特殊处理, ui层就可以统一处理
561
- if (/Expected (.+?) arguments, but got (.+?)./.exec(text) && node.getAncestor('CallLogic')) {
562
- node = node.getAncestor('CallLogic');
524
+ if (node instanceof ProcessElement && ['ExclusiveGateway', 'ParallelGateway', 'InclusiveGateway'].includes(node.type)) {
525
+ const reg = /Expected (.+?) arguments, but got (.+?)./.exec(text);
526
+ let u = '排他网关';
527
+ if (node.type === 'ParallelGateway') {
528
+ u = '并行网关';
529
+ } else if (node.type === 'InclusiveGateway') {
530
+ u = '包容网关';
531
+ }
532
+ if (reg[2] === '0') {
533
+ tsErrorDetail.message = `${u}出口顺序流和入口顺序流个数不能等于0`;
534
+ } else {
535
+ tsErrorDetail.message = `${u}出口顺序流和入口顺序流个数同时等于1,该${u}没有意义`;
536
+ }
563
537
  }
564
- // 赋值左右侧类型不一致, 把文字换一下
565
- if (/Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text)) {
566
- if (node instanceof OqlQueryComponent) {
567
- tsErrorDetail.message = tsErrorDetail.message.replace('参数类型不一致!传入类型:', '类型不一致!传入类型:').replace('接收类型:', '期望类型:');
568
- } else if (node.parentNode instanceof Assignment) {
569
- // OQL 的返回类型报错需要转换翻译,其内部 SQL 语句的参数类型报错不转换翻译
570
- if (node instanceof OqlQueryComponent) {
571
- if (node.getCurrentSource().currentSource.range.start.line + 1 === tsErrorDetail.originalDiagnostic.start.line) {
572
- tsErrorDetail.message = tsErrorDetail.message.replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:').replace('接收类型:', '左边类型:');
573
- }
574
- } else {
575
- // node = node.getAncestor('CallLogic');
576
- tsErrorDetail.message = tsErrorDetail.message.replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:').replace('接收类型:', '左边类型:');
577
- }
578
- } else if (node.parentNode instanceof NewMap) {
579
- if (text.includes(`is not assignable to parameter of type 'None'`)) {
580
- const cap = /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text);
581
- tsErrorDetail.message = tsErrorDetail.message = `参数类型不一致!传入类型:${transformType(cap[1])},接收类型:字符串 或 布尔值 或 整数 或 小数`;
582
- } else if (text.includes(`parameter of type 'never'`)) {
583
- tsErrorDetail.message = '自动推导不出类型!newMap中有未知类型';
584
- }
585
- } else if (node.parentNode instanceof NewList && text.includes(`parameter of type 'never'`)) {
586
- tsErrorDetail.message = '自动推导不出类型!newList中有未知类型';
538
+ }
539
+
540
+ // 因为缺少参数时候有可能有特殊情况,因为原本少的多了就会找到 callLogic上,
541
+ // 但是只少一个的时候就会找到准确的Argument上 需要特殊处理, ui层就可以统一处理
542
+ if (/Expected (.+?) arguments, but got (.+?)./.exec(text) && node.getAncestor('CallLogic')) {
543
+ node = node.getAncestor('CallLogic');
544
+ }
545
+ // 赋值左右侧类型不一致, 把文字换一下
546
+ if (/Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text)) {
547
+ if (node instanceof OqlQueryComponent) {
548
+ tsErrorDetail.message = tsErrorDetail.message
549
+ .replace('参数类型不一致!传入类型:', '类型不一致!传入类型:')
550
+ .replace('接收类型:', '期望类型:');
551
+ } else if (node.parentNode instanceof Assignment) {
552
+ // OQL 的返回类型报错需要转换翻译,其内部 SQL 语句的参数类型报错不转换翻译
553
+ if (node instanceof OqlQueryComponent) {
554
+ if (node.getCurrentSource().currentSource.range.start.line + 1 === tsErrorDetail.originalDiagnostic.start.line) {
555
+ tsErrorDetail.message = tsErrorDetail.message
556
+ .replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:')
557
+ .replace('接收类型:', '左边类型:');
587
558
  }
559
+ } else {
560
+ // node = node.getAncestor('CallLogic');
561
+ tsErrorDetail.message = tsErrorDetail.message
562
+ .replace('参数类型不一致!传入类型:', '赋值:类型不一致!右边类型:')
563
+ .replace('接收类型:', '左边类型:');
564
+ }
565
+ } else if (node.parentNode instanceof NewMap) {
566
+ if (text.includes(`is not assignable to parameter of type 'None'`)) {
567
+ const cap = /Argument of type '(.+?)' is not assignable to parameter of type '(.+?)'/.exec(text);
568
+ tsErrorDetail.message = tsErrorDetail.message = `参数类型不一致!传入类型:${transformType(
569
+ cap[1]
570
+ )},接收类型:字符串 或 布尔值 或 整数 或 小数`;
571
+ } else if (text.includes(`parameter of type 'never'`)) {
572
+ tsErrorDetail.message = '自动推导不出类型!newMap中有未知类型';
573
+ }
574
+ } else if (node.parentNode instanceof NewList && text.includes(`parameter of type 'never'`)) {
575
+ tsErrorDetail.message = '自动推导不出类型!newList中有未知类型';
588
576
  }
589
- if (node instanceof Argument || node instanceof Anchor) {
590
- // if (/Type '(.+?)' is not assignable to type '(.+?)'./.exec(text)) {
591
- // }
592
- // Argument在callInterface上的报错放到内部
593
- if (node.expression) {
594
- node = node.expression;
595
- }
577
+ }
578
+ if (node instanceof Argument || node instanceof Anchor) {
579
+ // if (/Type '(.+?)' is not assignable to type '(.+?)'./.exec(text)) {
580
+ // }
581
+ // Argument在callInterface上的报错放到内部
582
+ if (node.expression) {
583
+ node = node.expression;
596
584
  }
585
+ }
597
586
 
598
- if (node instanceof AnonymousFunction) {
599
- if (node.body)
600
- node = node.body;
601
- } else if (node instanceof Function) {
602
- if (node.returnExpression)
603
- node = node.returnExpression;
604
- }
587
+ if (node instanceof AnonymousFunction) {
588
+ if (node.body) node = node.body;
589
+ } else if (node instanceof Function) {
590
+ if (node.returnExpression) node = node.returnExpression;
591
+ }
605
592
 
606
- // 处理一些复制过来的内容 Identifier或者MemberExpression内容缺失,错误要像上冒
607
- if (node instanceof Identifier || node instanceof MemberExpression) {
608
- if (node.parentNode instanceof MemberExpression) {
609
- let parentNode: BaseNode = node;
610
- while (parentNode && parentNode.parentNode instanceof MemberExpression) {
611
- parentNode = parentNode.parentNode;
612
- }
613
- node = parentNode || node;
593
+ // 处理一些复制过来的内容 Identifier或者MemberExpression内容缺失,错误要像上冒
594
+ if (node instanceof Identifier || node instanceof MemberExpression) {
595
+ if (node.parentNode instanceof MemberExpression) {
596
+ let parentNode: BaseNode = node;
597
+ while (parentNode && parentNode.parentNode instanceof MemberExpression) {
598
+ parentNode = parentNode.parentNode;
599
+ }
600
+ node = parentNode || node;
614
601
 
615
- let str = tsErrorDetail.message;
616
- str = (node as any).constructor.nodeTitle + ':' + str;
617
- tsErrorDetail.message = str;
618
- }
602
+ let str = tsErrorDetail.message;
603
+ str = `${(node as any).constructor.nodeTitle}:${str}`;
604
+ tsErrorDetail.message = str;
619
605
  }
620
- // 类型报错的,需要放到上一级
621
- if (/'(.+?)' has no exported member(?: named)? '(.+?)'/.exec(text) || /Property '(.+?)' does not exist on type '(.+?)'./.exec(text)) {
622
- if (node instanceof TypeAnnotation) {
623
- // 变量type的报错放到type本身上
624
- // node = node.parentNode;
625
- let str = tsErrorDetail.message;
626
- if (node) {
627
- str = (node as any).parentNode.constructor.nodeTitle + ':' + str;
628
- }
629
- tsErrorDetail.message = str;
630
- }
606
+ }
607
+ // 类型报错的,需要放到上一级
608
+ if (/'(.+?)' has no exported member(?: named)? '(.+?)'/.exec(text) || /Property '(.+?)' does not exist on type '(.+?)'./.exec(text)) {
609
+ if (node instanceof TypeAnnotation) {
610
+ // 变量type的报错放到type本身上
611
+ // node = node.parentNode;
612
+ let str = tsErrorDetail.message;
613
+ if (node) {
614
+ str = `${(node as any).parentNode.constructor.nodeTitle}:${str}`;
615
+ }
616
+ tsErrorDetail.message = str;
631
617
  }
618
+ }
632
619
 
633
- /**
634
- * 所有问题的报错处理具体信息
635
- * 转成一个最合理的文案
636
- */
637
- if (/^Cannot find name '__(?:IDENTIFIER|LEFT|RIGHT)__'\.$/.exec(text)) {
638
- if (node instanceof IfStatement || node instanceof SwitchCase || node instanceof WhileStatement) {
639
- tsErrorDetail.message = (node as any).constructor.nodeTitle + ':参数不能为空!所需类型:基础类型>布尔值';
640
- } else if (node instanceof ForEachStatement) {
641
- tsErrorDetail.message = 'ForEach:结束值:不能为空!所需类型:基础类型>整数';
642
- } else if (node instanceof UnaryExpression) {
643
- tsErrorDetail.message = '!:参数不能为空!';
644
- } else if (node instanceof Assignment) {
645
- tsErrorDetail.message = '赋值:参数不能为空!';
646
- } else if (node instanceof BatchAssignment) {
647
- tsErrorDetail.message = '批量赋值:参数不能为空';
648
- } else if ((node instanceof Argument && node.parentNode instanceof CallInterface) || node instanceof CallInterface) {
649
- tsErrorDetail.message = '调用接口:参数不能为空!';
650
- } else if ((node instanceof Argument && node.parentNode instanceof CallFunction) || node instanceof CallFunction) {
651
- tsErrorDetail.message = '调用函数:参数不能为空!';
652
- } else if ((node instanceof Argument && node.parentNode instanceof CallLogic) || node instanceof CallLogic) {
653
- tsErrorDetail.message = '调用逻辑:参数不能为空!';
654
- } else if (node instanceof ProcessOutcome || node instanceof Function || node instanceof MatchCase) {
655
- tsErrorDetail.message = (node as any).constructor.nodeTitle + ':不能为空!';
656
- } else if (node instanceof NewMap) {
657
- tsErrorDetail.message = 'Map推导不出类型!请手动设置!';
658
- } else if (node instanceof NewList) {
659
- tsErrorDetail.message = 'List推导不出类型!请手动设置!';
660
- } else if (node instanceof Argument) {
661
- let str = tsErrorDetail.message;
662
- str = (node.parentNode as any).constructor.nodeTitle + ':' + str;
663
- tsErrorDetail.message = str;
664
- } else if (node instanceof TypeAnnotation) {
665
- // 如果是TypeAnnotation 嵌套TypeAnnotation,就往上冒,多是那种T嵌套的
666
- let str = tsErrorDetail.message;
667
- // TypeAnnotation要冒泡到最上面
668
- while (node.parentNode && node.parentNode instanceof TypeAnnotation) {
669
- node = node.parentNode;
670
- }
671
- str = (node.parentNode as any).constructor.nodeTitle + ':' + str;
620
+ /**
621
+ * 所有问题的报错处理具体信息
622
+ * 转成一个最合理的文案
623
+ */
624
+ if (/^Cannot find name '__(?:IDENTIFIER|LEFT|RIGHT)__'\.$/.exec(text)) {
625
+ if (node instanceof IfStatement || node instanceof SwitchCase || node instanceof WhileStatement) {
626
+ tsErrorDetail.message = `${(node as any).constructor.nodeTitle}:参数不能为空!所需类型:基础类型>布尔值`;
627
+ } else if (node instanceof ForEachStatement) {
628
+ tsErrorDetail.message = 'ForEach:结束值:不能为空!所需类型:基础类型>整数';
629
+ } else if (node instanceof UnaryExpression) {
630
+ tsErrorDetail.message = '!:参数不能为空!';
631
+ } else if (node instanceof Assignment) {
632
+ tsErrorDetail.message = '赋值:参数不能为空!';
633
+ } else if (node instanceof BatchAssignment) {
634
+ tsErrorDetail.message = '批量赋值:参数不能为空';
635
+ } else if ((node instanceof Argument && node.parentNode instanceof CallInterface) || node instanceof CallInterface) {
636
+ tsErrorDetail.message = '调用接口:参数不能为空!';
637
+ } else if ((node instanceof Argument && node.parentNode instanceof CallFunction) || node instanceof CallFunction) {
638
+ tsErrorDetail.message = '调用函数:参数不能为空!';
639
+ } else if ((node instanceof Argument && node.parentNode instanceof CallLogic) || node instanceof CallLogic) {
640
+ tsErrorDetail.message = '调用逻辑:参数不能为空!';
641
+ } else if (node instanceof ProcessOutcome || node instanceof Function || node instanceof MatchCase) {
642
+ tsErrorDetail.message = `${(node as any).constructor.nodeTitle}:不能为空!`;
643
+ } else if (node instanceof NewMap) {
644
+ tsErrorDetail.message = 'Map推导不出类型!请手动设置!';
645
+ } else if (node instanceof NewList) {
646
+ tsErrorDetail.message = 'List推导不出类型!请手动设置!';
647
+ } else if (node instanceof Argument) {
648
+ let str = tsErrorDetail.message;
649
+ str = `${(node.parentNode as any).constructor.nodeTitle}:${str}`;
650
+ tsErrorDetail.message = str;
651
+ } else if (node instanceof TypeAnnotation) {
652
+ // 如果是TypeAnnotation 嵌套TypeAnnotation,就往上冒,多是那种T嵌套的
653
+ let str = tsErrorDetail.message;
654
+ // TypeAnnotation要冒泡到最上面
655
+ while (node.parentNode && node.parentNode instanceof TypeAnnotation) {
656
+ node = node.parentNode;
657
+ }
658
+ str = `${(node.parentNode as any).constructor.nodeTitle}:${str}`;
672
659
 
673
- tsErrorDetail.message = str;
674
- } else if (node instanceof Identifier) {
675
- // 根据父级内容推断当前缺少啥
676
- const identifierToString = (node: Identifier) => {
677
- let str = tsErrorDetail.message;
678
- if (node.parentNode instanceof Assignment) {
679
- str = '赋值:参数不能为空!';
680
- } else if (node.parentNode instanceof Argument && node.parentNode.parentNode instanceof CallLogic) {
681
- str = '调用逻辑:参数不能为空!';
682
- } else if (node.parentNode instanceof ValidationRule) {
683
- str = '验证逻辑:验证对象不能为空!';
684
- } else {
685
- str = (node.parentNode as any).constructor.nodeTitle + ':' + str;
686
- tsErrorDetail.message = str;
687
- }
688
- return str;
689
- };
690
- tsErrorDetail.message = identifierToString(node);
660
+ tsErrorDetail.message = str;
661
+ } else if (node instanceof Identifier) {
662
+ // 根据父级内容推断当前缺少啥
663
+ const identifierToString = (node: Identifier) => {
664
+ let str = tsErrorDetail.message;
665
+ if (node.parentNode instanceof Assignment) {
666
+ str = '赋值:参数不能为空!';
667
+ } else if (node.parentNode instanceof Argument && node.parentNode.parentNode instanceof CallLogic) {
668
+ str = '调用逻辑:参数不能为空!';
669
+ } else if (node.parentNode instanceof ValidationRule) {
670
+ str = '验证逻辑:验证对象不能为空!';
671
+ } else {
672
+ str = `${(node.parentNode as any).constructor.nodeTitle}:${str}`;
673
+ tsErrorDetail.message = str;
691
674
  }
675
+ return str;
676
+ };
677
+ tsErrorDetail.message = identifierToString(node);
692
678
  }
679
+ }
693
680
 
694
- if (/'__UpdateNoProperty__' is declared but its value is never read./.exec(text)) {
695
- tsErrorDetail.message = '局部更新:未选择任何属性';
696
- const callLogic = node?.parentNode?.parentNode?.parentNode as CallLogic;
697
- const bodyArgument = callLogic?.arguments?.find((item) => item.keyword === 'body');
698
- node = bodyArgument?.expression;
699
- }
681
+ if (/'__UpdateNoProperty__' is declared but its value is never read./.exec(text)) {
682
+ tsErrorDetail.message = '局部更新:未选择任何属性';
683
+ const callLogic = node?.parentNode?.parentNode?.parentNode as CallLogic;
684
+ const bodyArgument = callLogic?.arguments?.find((item) => item.keyword === 'body');
685
+ node = bodyArgument?.expression;
686
+ }
700
687
 
701
- // 左右类型不一致的,把上级信息带上
702
- if (/^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text) || /^This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap./.exec(text)) {
703
- if (node instanceof OqlQueryComponent) {
704
- // SQL语句:查询字段重复:id
705
- let cap = /^Type '(.+?)' is not assignable to type 'true'\./.exec(text);
706
- if (cap) {
707
- const errorMsg = 'SQL查询:查询字段重复:$1'.replace(/\$(\d+)/g, (m, index) => transformType(cap[index]));
708
- tsErrorDetail.message = errorMsg;
709
- } else {
710
- cap = /^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text);
711
- if (cap) {
712
- const errorMsg = 'SQL查询:返回类型不一致:选择类型:$2,返回类型:$1'.replace(/\$(\d+)/g, (m, index) => transformType(cap[index]));
713
- tsErrorDetail.message = errorMsg;
714
- }
715
- }
716
- } else {
717
- let str = tsErrorDetail.message;
718
- str = (node.parentNode as any).constructor.nodeTitle + ':' + str;
719
- tsErrorDetail.message = str;
720
- if (node.parentNode instanceof AnonymousFunction) {
721
- // 匿名函数:左右参数类型不一致!左边类型:布尔值,右边类型:整数。
722
- tsErrorDetail.message = tsErrorDetail.message.replace('左右参数', '返回值').replace('左边类型', '接收类型').replace('右边类型', '传入类型');
723
- } else if (text === `Type 'void' is not assignable to type 'never'.`) {
724
- tsErrorDetail.message = `${node.name}推导不出类型!请连线或手动设置`;
725
- }
688
+ // 左右类型不一致的,把上级信息带上
689
+ if (
690
+ /^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text) ||
691
+ /^This condition will always return '(.+?)' since the types '(.+?)' and '(.+?)' have no overlap./.exec(text)
692
+ ) {
693
+ if (node instanceof OqlQueryComponent) {
694
+ // SQL语句:查询字段重复:id
695
+ let cap = /^Type '(.+?)' is not assignable to type 'true'\./.exec(text);
696
+ if (cap) {
697
+ const errorMsg = 'SQL查询:查询字段重复:$1'.replace(/\$(\d+)/g, (m, index) => transformType(cap[index]));
698
+ tsErrorDetail.message = errorMsg;
699
+ } else {
700
+ cap = /^Type '(.+?)' is not assignable to type '(.+?)'\./.exec(text);
701
+ if (cap) {
702
+ const errorMsg = 'SQL查询:返回类型不一致:选择类型:$2,返回类型:$1'.replace(/\$(\d+)/g, (m, index) => transformType(cap[index]));
703
+ tsErrorDetail.message = errorMsg;
726
704
  }
705
+ }
706
+ } else {
707
+ let str = tsErrorDetail.message;
708
+ str = `${(node.parentNode as any).constructor.nodeTitle}:${str}`;
709
+ tsErrorDetail.message = str;
710
+ if (node.parentNode instanceof AnonymousFunction) {
711
+ // 匿名函数:左右参数类型不一致!左边类型:布尔值,右边类型:整数。
712
+ tsErrorDetail.message = tsErrorDetail.message.replace('左右参数', '返回值').replace('左边类型', '接收类型').replace('右边类型', '传入类型');
713
+ } else if (text === `Type 'void' is not assignable to type 'never'.`) {
714
+ tsErrorDetail.message = `${node.name}推导不出类型!请连线或手动设置`;
715
+ }
727
716
  }
728
- if (/Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/.exec(text)) {
729
- if (node.parentNode instanceof NewComposite) {
730
- tsErrorDetail.message = tsErrorDetail.message.replace('类型不一致', '接收与传入类型不一致').replace('左边类型', '左边接收类型').replace('右边类型', '右边传入类型');
731
- tsErrorDetail.message = node.name + tsErrorDetail.message;
732
- }
717
+ }
718
+ if (/Property '(.+?)' is missing in type '(.+?)' but required in type '(.+?)'/.exec(text)) {
719
+ if (node.parentNode instanceof NewComposite) {
720
+ tsErrorDetail.message = tsErrorDetail.message
721
+ .replace('类型不一致', '接收与传入类型不一致')
722
+ .replace('左边类型', '左边接收类型')
723
+ .replace('右边类型', '右边传入类型');
724
+ tsErrorDetail.message = node.name + tsErrorDetail.message;
733
725
  }
734
- // 参数类型不一致!
735
- if (/^Type '(.+?)' does not satisfy the constraint '(.+?)'\./.exec(text)) {
736
- // match
737
- if ((node instanceof TypeAnnotation && node.parentNode instanceof MatchCase) || node instanceof MatchCase) {
738
- return null;
739
- // ide进行计算
740
- // const reg = /^Type '(.+?)' does not satisfy the constraint '(.+?)'\./.exec(text);
741
- // if (reg[1] && reg[2]) {
742
- // tsErrorDetail.message = '匹配:类型不一致! 传入类型:' + transformType(reg[1]) + ',接收类型:' + transformType(reg[2]);
743
- // if (reg[2] === 'never') {
744
- // tsErrorDetail.message = '匹配:类型不一致! 传入类型:' + transformType(reg[1]) + ',接收类型:无可以接收的类型';
745
- // }
746
- // }
747
- // tsErrorDetail.titleTip = '该类型无法满足条件';
748
- }
726
+ }
727
+ // 参数类型不一致!
728
+ if (/^Type '(.+?)' does not satisfy the constraint '(.+?)'\./.exec(text)) {
729
+ // match
730
+ if ((node instanceof TypeAnnotation && node.parentNode instanceof MatchCase) || node instanceof MatchCase) {
731
+ return null;
732
+ // ide进行计算
733
+ // const reg = /^Type '(.+?)' does not satisfy the constraint '(.+?)'\./.exec(text);
734
+ // if (reg[1] && reg[2]) {
735
+ // tsErrorDetail.message = '匹配:类型不一致! 传入类型:' + transformType(reg[1]) + ',接收类型:' + transformType(reg[2]);
736
+ // if (reg[2] === 'never') {
737
+ // tsErrorDetail.message = '匹配:类型不一致! 传入类型:' + transformType(reg[1]) + ',接收类型:无可以接收的类型';
738
+ // }
739
+ // }
740
+ // tsErrorDetail.titleTip = '该类型无法满足条件';
749
741
  }
742
+ }
750
743
 
751
- // 左右类型不一致的,把上级信息带上
752
- if (/^A type literal property cannot have an initializer./.exec(text)) {
753
- if (node instanceof Param)
754
- return null;
744
+ // 左右类型不一致的,把上级信息带上
745
+ if (/^A type literal property cannot have an initializer./.exec(text)) {
746
+ if (node instanceof Param) return null;
747
+ }
748
+ if (/'__LogicEmpty' is declared but its value is never read./.exec(text)) {
749
+ if (node instanceof Logic) {
750
+ node.isSmpty = true;
755
751
  }
756
- if (/'__LogicEmpty' is declared but its value is never read./.exec(text)) {
757
- if (node instanceof Logic) {
758
- node.isSmpty = true;
759
- }
760
- }
761
- if (/Variable '(.+?)' implicitly has an 'any' type./.exec(text) || /Variable '(.+?)' implicitly has an 'any\[\]' type./.exec(text)) {
762
- if (node.parentNode instanceof NewComposite) {
763
- //
764
- } else if (node.parentNode instanceof NewList) {
765
- tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');
766
- } else if (node.parentNode instanceof NewMap) {
767
- tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');
768
- } else {
769
- return;
770
- }
771
- }
772
- if (checkAStructure_(text)) {
773
- return null;
752
+ }
753
+ if (/Variable '(.+?)' implicitly has an 'any' type./.exec(text) || /Variable '(.+?)' implicitly has an 'any\[\]' type./.exec(text)) {
754
+ if (node.parentNode instanceof NewComposite) {
755
+ //
756
+ } else if (node.parentNode instanceof NewList) {
757
+ tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');
758
+ } else if (node.parentNode instanceof NewMap) {
759
+ tsErrorDetail.message = tsErrorDetail.message.replace('!请连线或手动设置', '');
760
+ } else {
761
+ return;
774
762
  }
775
- for (const rule of POST_RULES) {
776
- if (rule.re.test(tsErrorDetail.message)) {
777
- tsErrorDetail.message = tsErrorDetail.message.replace(rule.re, (value, index, oldStr) => {
778
- // 处理匹配到的值的左右的内容,是不是还是字母,要是字母就原样输出,防止展示问题
779
- try {
780
- const leftCode = index - 1 < 0 ? '' : oldStr[index - 1];
781
- const rightCode = oldStr[index + value.length] || '';
782
- if (/^[A-Za-z]+$/.test(leftCode) || /^[A-Za-z]+$/.test(rightCode)) {
783
- return value;
784
- } else {
785
- return rule.result;
786
- }
787
- } catch (err) {
788
- return value;
789
- }
790
- });
763
+ }
764
+ if (checkAStructure_(text)) {
765
+ return null;
766
+ }
767
+ for (const rule of POST_RULES) {
768
+ if (rule.re.test(tsErrorDetail.message)) {
769
+ tsErrorDetail.message = tsErrorDetail.message.replace(rule.re, (value, index, oldStr) => {
770
+ // 处理匹配到的值的左右的内容,是不是还是字母,要是字母就原样输出,防止展示问题
771
+ try {
772
+ const leftCode = index - 1 < 0 ? '' : oldStr[index - 1];
773
+ const rightCode = oldStr[index + value.length] || '';
774
+ if (/^[A-Za-z]+$/.test(leftCode) || /^[A-Za-z]+$/.test(rightCode)) {
775
+ return value;
776
+ }
777
+ return rule.result;
778
+ } catch (err) {
779
+ return value;
791
780
  }
781
+ });
792
782
  }
793
- if (node && tsErrorDetail) {
794
- node.tsErrorDetail = tsErrorDetail;
795
- }
783
+ }
784
+ if (node && tsErrorDetail) {
785
+ node.tsErrorDetail = tsErrorDetail;
786
+ }
796
787
 
797
- return {
798
- node,
799
- ...tsErrorDetail,
800
- };
788
+ return {
789
+ node,
790
+ ...tsErrorDetail,
791
+ };
801
792
  }
802
793
 
803
- export function checkAStructure_(errorText: string): any {
804
- const index = TS_RULES_TYPE_INCONSISTENCY.findIndex((item) => item.exec(errorText));
805
- if (index !== -1) {
806
- const rule = TS_RULES_TYPE_INCONSISTENCY[index];
807
- const cap = rule.exec(errorText);
808
- if (rule === TS_RULES_TYPE_INCONSISTENCY[0] || rule === TS_RULES_TYPE_INCONSISTENCY[1]) {
809
- cap.splice(1, 1);
810
- }
811
- if (((cap[1].startsWith('{') && cap[1].endsWith('}')) || (cap[1].startsWith('{') && cap[1].endsWith('...')))
812
- && ((cap[2].startsWith('{') && cap[2].endsWith('}')) || (cap[2].startsWith('{') && cap[2].endsWith('...')))
813
- && (cap[1].includes('__name: "AStructure_') && cap[2].includes('__name: "AStructure_'))) {
814
- const x = sortTsString(transformType(cap[1]));
815
- const y = sortTsString(transformType(cap[2]));
816
- if (x === y) {
817
- return true;
818
- } else if (mapAstString.get(x) === y || mapAstString.get(y) === x) {
819
- return true;
820
- } else {
821
- const regex = /Type '"AStructure_(.*)' is not assignable to type '"AStructure_(.*)'/;
822
- const nameError = regex.exec(errorText);
823
- const length1 = x.match(/:/g) ? x.match(/:/g).length : -1;
824
- const length2 = y.match(/:/g) ? y.match(/:/g).length : -2;
825
- if (nameError && length1 === length2) {
826
- mapAstString.set(x, y);
827
- mapAstString.set(y, x);
828
- return true;
829
- }
830
- }
831
- }
794
+ export function checkAStructure_(errorText: string) {
795
+ const index = TS_RULES_TYPE_INCONSISTENCY.findIndex((item) => item.exec(errorText));
796
+ if (index !== -1) {
797
+ const rule = TS_RULES_TYPE_INCONSISTENCY[index];
798
+ const cap = rule.exec(errorText);
799
+ if (rule === TS_RULES_TYPE_INCONSISTENCY[0] || rule === TS_RULES_TYPE_INCONSISTENCY[1]) {
800
+ cap.splice(1, 1);
801
+ }
802
+ if (
803
+ ((cap[1].startsWith('{') && cap[1].endsWith('}')) || (cap[1].startsWith('{') && cap[1].endsWith('...'))) &&
804
+ ((cap[2].startsWith('{') && cap[2].endsWith('}')) || (cap[2].startsWith('{') && cap[2].endsWith('...'))) &&
805
+ cap[1].includes('__name: "AStructure_') &&
806
+ cap[2].includes('__name: "AStructure_')
807
+ ) {
808
+ const x = sortTsString(transformType(cap[1]));
809
+ const y = sortTsString(transformType(cap[2]));
810
+ if (x === y) {
811
+ return true;
812
+ }
813
+ if (mapAstString.get(x) === y || mapAstString.get(y) === x) {
814
+ return true;
815
+ }
816
+ const regex = /Type '"AStructure_(.*)' is not assignable to type '"AStructure_(.*)'/;
817
+ const nameError = regex.exec(errorText);
818
+ const length1 = x.match(/:/g) ? x.match(/:/g).length : -1;
819
+ const length2 = y.match(/:/g) ? y.match(/:/g).length : -2;
820
+ if (nameError && length1 === length2) {
821
+ mapAstString.set(x, y);
822
+ mapAstString.set(y, x);
823
+ return true;
824
+ }
832
825
  }
833
- return false;
826
+ }
827
+ return false;
834
828
  }