@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,19 +1,18 @@
1
+ import { v4 as uuidv4 } from 'uuid';
1
2
  import { dataTypesMap } from './basics/types';
2
3
  import { TranslatorState, shiftState, withSourceMap, indent } from '../translator';
3
4
  import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
4
- type changeType = 'up' | 'down';
5
5
  import CallQueryComponent from './CallQueryComponent__';
6
6
  import StructureProperty from './StructureProperty__';
7
7
  import Structure from './Structure__';
8
- //================================================================================
8
+ //= ===============================================================================
9
9
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
10
10
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
11
- //================================================================================
11
+ //= ===============================================================================
12
12
  import { EventPayload, Params } from '../common/EventEmitter';
13
13
  import { concept, excludedInJSON, property } from '../decorators';
14
14
 
15
15
  import * as utils from '../utils';
16
- import { v4 as uuidv4 } from 'uuid';
17
16
  import BaseNode from '../common/BaseNode';
18
17
  import classMap from '../common/classMap';
19
18
  import TypeAnnotation from './TypeAnnotation__';
@@ -23,809 +22,844 @@ import Module from './Module__';
23
22
  import App from './App__';
24
23
  import DataSource from './DataSource__';
25
24
 
25
+ type changeType = 'up' | 'down';
26
+
26
27
  /**
27
28
  * 实体属性
28
29
  */
29
30
  @concept('实体属性')
30
31
  export class EntityProperty extends BaseNode {
31
- /**
32
- * 产品概念
33
- */
34
- @property()
35
- concept: 'EntityProperty' = 'EntityProperty';
36
-
37
- /**
38
- * 实体属性名称
39
- */
40
- @property()
41
- name: string = undefined;
42
-
43
- /**
44
- * 唯一标识
45
- */
46
- @property()
47
- uuid: string = uuidv4().replace(/-/g, '');
48
-
49
- /**
50
- * 数据库列名
51
- */
52
- @property()
53
- columnName: string = undefined;
54
-
55
- /**
56
- * 实体属性标题
57
- */
58
- @property()
59
- label: string = undefined;
60
-
61
- /**
62
- * 实体属性描述
63
- */
64
- @property()
65
- description: string = undefined;
66
-
67
- /**
68
- * 类型
69
- */
70
- @property('TypeAnnotation')
71
- typeAnnotation: TypeAnnotation = undefined;
72
-
73
- /**
74
- * 数据库存储类型
75
- */
76
- @property('DatabaseTypeAnnotation')
77
- databaseTypeAnnotation: DatabaseTypeAnnotation = undefined;
78
-
79
- /**
80
- * 是否必填
81
- */
82
- @property()
83
- required: boolean = undefined;
84
-
85
- /**
86
- * 默认值
87
- */
88
- @property()
89
- defaultValue: string = undefined;
90
-
91
- /**
92
- * 当前属性是否为主键
93
- */
94
- @property()
95
- primaryKey: boolean = undefined;
96
-
97
- /**
98
- * 关联实体的命名空间
99
- */
100
- @property()
101
- relationNamespace: string = undefined;
102
-
103
- /**
104
- * 关联实体
105
- */
106
- @property()
107
- relationEntity: string = undefined;
108
-
109
- /**
110
- * 关联属性
111
- */
112
- @property()
113
- relationProperty: string = undefined;
114
-
115
- /**
116
- * 关联属性实体记录删除规则
117
- */
118
- @property()
119
- deleteRule: 'protect' | 'cascade' = undefined;
120
-
121
- /**
122
- * 显示方式
123
- */
124
- @property()
125
- display: { [name: string]: boolean } = {
126
- inDetail: true,
127
- inFilter: true,
128
- inForm: true,
129
- inTable: true,
32
+ /**
33
+ * 产品概念
34
+ */
35
+ @property()
36
+ concept: 'EntityProperty' = 'EntityProperty';
37
+
38
+ /**
39
+ * 实体属性名称
40
+ */
41
+ @property()
42
+ name: string = undefined;
43
+
44
+ /**
45
+ * 唯一标识
46
+ */
47
+ @property()
48
+ uuid: string = uuidv4().replace(/-/g, '');
49
+
50
+ /**
51
+ * 数据库列名
52
+ */
53
+ @property()
54
+ columnName: string = undefined;
55
+
56
+ /**
57
+ * 实体属性标题
58
+ */
59
+ @property()
60
+ label: string = undefined;
61
+
62
+ /**
63
+ * 实体属性描述
64
+ */
65
+ @property()
66
+ description: string = undefined;
67
+
68
+ /**
69
+ * 类型
70
+ */
71
+ @property('TypeAnnotation')
72
+ typeAnnotation: TypeAnnotation = undefined;
73
+
74
+ /**
75
+ * 数据库存储类型
76
+ */
77
+ @property('DatabaseTypeAnnotation')
78
+ databaseTypeAnnotation: DatabaseTypeAnnotation = undefined;
79
+
80
+ /**
81
+ * 是否必填
82
+ */
83
+ @property()
84
+ required: boolean = undefined;
85
+
86
+ /**
87
+ * 默认值
88
+ */
89
+ @property()
90
+ defaultValue: string = undefined;
91
+
92
+ /**
93
+ * 当前属性是否为主键
94
+ */
95
+ @property()
96
+ primaryKey: boolean = undefined;
97
+
98
+ /**
99
+ * 关联实体的命名空间
100
+ */
101
+ @property()
102
+ relationNamespace: string = undefined;
103
+
104
+ /**
105
+ * 关联实体
106
+ */
107
+ @property()
108
+ relationEntity: string = undefined;
109
+
110
+ /**
111
+ * 关联属性
112
+ */
113
+ @property()
114
+ relationProperty: string = undefined;
115
+
116
+ /**
117
+ * 关联属性实体记录删除规则
118
+ */
119
+ @property()
120
+ deleteRule: 'protect' | 'cascade' = undefined;
121
+
122
+ /**
123
+ * 显示方式
124
+ */
125
+ @property()
126
+ display: { [name: string]: boolean } = {
127
+ inDetail: true,
128
+ inFilter: true,
129
+ inForm: true,
130
+ inTable: true,
131
+ };
132
+
133
+ /**
134
+ * 验证规则
135
+ */
136
+ @property()
137
+ rules: Array<string> = [];
138
+
139
+ /**
140
+ * 生成规则
141
+ */
142
+ @property()
143
+ generationRule: 'auto' | 'autoIncrement' | 'manual' = 'auto';
144
+
145
+ /**
146
+ * 表示 Oracle 主键自增时的序列名称
147
+ */
148
+ @property()
149
+ sequence: string = undefined;
150
+
151
+ /**
152
+ * 祖先 Entity
153
+ */
154
+ get entity() {
155
+ return this.getAncestor('Entity') as Entity;
156
+ }
157
+
158
+ /**
159
+ * 祖先 Module
160
+ */
161
+ get module() {
162
+ return this.getAncestor('Module') as Module;
163
+ }
164
+
165
+ /**
166
+ * 祖先 App
167
+ */
168
+ get app() {
169
+ return this.getAncestor('App') as App;
170
+ }
171
+
172
+ /**
173
+ * 祖先 DataSource
174
+ */
175
+ get dataSource() {
176
+ return this.getAncestor('DataSource') as DataSource;
177
+ }
178
+
179
+ /**
180
+ * @param source 需要合并的部分参数
181
+ */
182
+ constructor(source?: Partial<EntityProperty>) {
183
+ // @ts-ignore
184
+ source = { ...EntityProperty.getDefaultOptions(), ...source };
185
+ super(source);
186
+ super.subConstructor(source);
187
+ }
188
+
189
+ getClassName() {
190
+ return 'EntityProperty';
191
+ }
192
+
193
+ static from(source: any, parentNode?: any, parentKey?: string): EntityProperty {
194
+ return super.from(source, parentNode, parentKey) as EntityProperty;
195
+ }
196
+
197
+ /**
198
+ * 从父级删除该节点
199
+ * @internal
200
+ */
201
+ _delete() {
202
+ let params: Params = null;
203
+ if (this.parentNode) {
204
+ params = (this.parentNode as any)?.__removeEntityProperty?.(this);
205
+ }
206
+ return params;
207
+ }
208
+
209
+ /**
210
+ * 设置实体属性标题
211
+ */
212
+ setLabel(label: string) {
213
+ const object = {
214
+ label,
215
+ };
216
+ this.update({
217
+ ...object,
218
+ });
219
+ }
220
+
221
+ /**
222
+ * 设置实体属性描述
223
+ */
224
+ setDescription(description: string) {
225
+ const object = {
226
+ description,
227
+ };
228
+ this.update({
229
+ ...object,
230
+ });
231
+ }
232
+
233
+ /**
234
+ * 设置数据库存储类型
235
+ */
236
+ setDatabaseTypeAnnotation(databaseTypeAnnotation: DatabaseTypeAnnotation) {
237
+ databaseTypeAnnotation._delete();
238
+ const relationOptions = { parentNode: this, parentKey: 'databaseTypeAnnotation' };
239
+ Object.assign(databaseTypeAnnotation, relationOptions);
240
+ const object = {
241
+ databaseTypeAnnotation,
242
+ };
243
+ this.update({
244
+ ...object,
245
+ });
246
+ }
247
+
248
+ /**
249
+ * 设置是否必填
250
+ */
251
+ setRequired(required: boolean) {
252
+ const object = {
253
+ required,
254
+ };
255
+ this.update({
256
+ ...object,
257
+ });
258
+ }
259
+
260
+ /**
261
+ * 设置默认值
262
+ */
263
+ setDefaultValue(defaultValue: string) {
264
+ const object = {
265
+ defaultValue,
266
+ };
267
+ this.update({
268
+ ...object,
269
+ });
270
+ }
271
+
272
+ /**
273
+ * 设置当前属性是否为主键
274
+ */
275
+ setPrimaryKey(primaryKey: boolean) {
276
+ const object = {
277
+ primaryKey,
278
+ };
279
+ this.update({
280
+ ...object,
281
+ });
282
+ }
283
+
284
+ /**
285
+ * 设置生成规则
286
+ */
287
+ setGenerationRule(generationRule: 'auto' | 'autoIncrement' | 'manual') {
288
+ const object = {
289
+ generationRule,
290
+ };
291
+ this.update({
292
+ ...object,
293
+ });
294
+ }
295
+
296
+ /**
297
+ * 删除类型标注
298
+ * @param name 类型标注名称
299
+ */
300
+ removeTypeAnnotation(name: string): void;
301
+
302
+ /**
303
+ * 删除类型标注
304
+ * @param typeAnnotation 已有的类型标注实例
305
+ */
306
+ removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
307
+
308
+ removeTypeAnnotation(options: string | TypeAnnotation) {
309
+ let typeAnnotation: TypeAnnotation;
310
+ if (typeof options === 'string') {
311
+ typeAnnotation = this.typeAnnotation;
312
+ if (!typeAnnotation) {
313
+ throw new Error(`找不到类型标注 ${options}`);
314
+ }
315
+ } else {
316
+ typeAnnotation = options;
317
+ }
318
+ return typeAnnotation.delete();
319
+ }
320
+
321
+ __removeTypeAnnotation(typeAnnotation: TypeAnnotation) {
322
+ const { parentKey } = typeAnnotation;
323
+ const params: Params = {
324
+ parentNode: this,
325
+ parentKey,
326
+ index: -1,
327
+ object: null,
328
+ oldObject: typeAnnotation,
329
+ };
330
+ if (parentKey) {
331
+ params.parentKey = parentKey;
332
+ if (Array.isArray((this as any)[parentKey])) {
333
+ const index = (this as any)[parentKey].indexOf(typeAnnotation);
334
+ ~index && (this as any)[parentKey].splice(index, 1);
335
+ params.index = index;
336
+ } else if ((this as any)[parentKey] === typeAnnotation) {
337
+ params.index = 0;
338
+ (this as any)[parentKey] = undefined;
339
+ }
340
+ }
341
+ return params;
342
+ }
343
+
344
+ /**
345
+ * 删除数据库存储类型
346
+ * @param name 数据库存储类型名称
347
+ */
348
+ removeDatabaseTypeAnnotation(name: string): void;
349
+
350
+ /**
351
+ * 删除数据库存储类型
352
+ * @param databaseTypeAnnotation 已有的数据库存储类型实例
353
+ */
354
+ removeDatabaseTypeAnnotation(databaseTypeAnnotation: DatabaseTypeAnnotation): void;
355
+
356
+ removeDatabaseTypeAnnotation(options: string | DatabaseTypeAnnotation) {
357
+ let databaseTypeAnnotation: DatabaseTypeAnnotation;
358
+ if (typeof options === 'string') {
359
+ databaseTypeAnnotation = this.databaseTypeAnnotation;
360
+ if (!databaseTypeAnnotation) {
361
+ throw new Error(`找不到数据库存储类型 ${options}`);
362
+ }
363
+ } else {
364
+ databaseTypeAnnotation = options;
365
+ }
366
+ return databaseTypeAnnotation.delete();
367
+ }
368
+
369
+ __removeDatabaseTypeAnnotation(databaseTypeAnnotation: DatabaseTypeAnnotation) {
370
+ const { parentKey } = databaseTypeAnnotation;
371
+ const params: Params = {
372
+ parentNode: this,
373
+ parentKey,
374
+ index: -1,
375
+ object: null,
376
+ oldObject: databaseTypeAnnotation,
377
+ };
378
+ if (parentKey) {
379
+ params.parentKey = parentKey;
380
+ if (Array.isArray((this as any)[parentKey])) {
381
+ const index = (this as any)[parentKey].indexOf(databaseTypeAnnotation);
382
+ ~index && (this as any)[parentKey].splice(index, 1);
383
+ params.index = index;
384
+ } else if ((this as any)[parentKey] === databaseTypeAnnotation) {
385
+ params.index = 0;
386
+ (this as any)[parentKey] = undefined;
387
+ }
388
+ }
389
+ return params;
390
+ }
391
+
392
+ //= ===============================================================================
393
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
394
+ // 自动生成的代码已结束。下面可以手动编写。
395
+ //= ===============================================================================
396
+
397
+ /**
398
+ * 设置实体属性名称
399
+ */
400
+ async setName(name: string) {
401
+ const object: any = {
402
+ name,
130
403
  };
131
404
 
132
- /**
133
- * 验证规则
134
- */
135
- @property()
136
- rules: Array<string> = [];
137
-
138
- /**
139
- * 生成规则
140
- */
141
- @property()
142
- generationRule: 'auto' | 'autoIncrement' | 'manual' = 'auto';
143
-
144
- /**
145
- * 表示 Oracle 主键自增时的序列名称
146
- */
147
- @property()
148
- sequence: string = undefined;
149
-
150
- /**
151
- * 祖先 Entity
152
- */
153
- get entity() {
154
- return this.getAncestor('Entity') as Entity;
155
- }
156
- /**
157
- * 祖先 Module
158
- */
159
- get module() {
160
- return this.getAncestor('Module') as Module;
161
- }
162
- /**
163
- * 祖先 App
164
- */
165
- get app() {
166
- return this.getAncestor('App') as App;
167
- }
168
- /**
169
- * 祖先 DataSource
170
- */
171
- get dataSource() {
172
- return this.getAncestor('DataSource') as DataSource;
173
- }
174
-
175
- /**
176
- * @param source 需要合并的部分参数
177
- */
178
- constructor(source?: Partial<EntityProperty>) {
179
- source = Object.assign({}, EntityProperty.getDefaultOptions(), source);
180
- super(source);
181
- super.subConstructor(source);
182
- }
183
- getClassName() {
184
- return 'EntityProperty';
185
- }
186
-
187
- static from(source: any, parentNode?: any, parentKey?: string): EntityProperty {
188
- return super.from(source, parentNode, parentKey) as EntityProperty;
189
- }
190
-
191
- /**
192
- * 从父级删除该节点
193
- * @internal
194
- */
195
- _delete() {
196
- let params: Params = null;
197
- if (this.parentNode) {
198
- params = (this.parentNode as any)?.__removeEntityProperty?.(this);
199
- }
200
- return params;
201
- }
202
- /**
203
- * 设置实体属性标题
204
- */
205
- setLabel(label: string) {
206
- const object = {
207
- label,
208
- };
209
- this.update({
210
- ...object,
211
- });
212
- }
213
-
214
- /**
215
- * 设置实体属性描述
216
- */
217
- setDescription(description: string) {
218
- const object = {
219
- description,
220
- };
221
- this.update({
222
- ...object,
223
- });
224
- }
225
-
226
- /**
227
- * 设置数据库存储类型
228
- */
229
- setDatabaseTypeAnnotation(databaseTypeAnnotation: DatabaseTypeAnnotation) {
230
- databaseTypeAnnotation._delete();
231
- const relationOptions = { parentNode: this, parentKey: 'databaseTypeAnnotation' };
232
- Object.assign(databaseTypeAnnotation, relationOptions);
233
- const object = {
234
- databaseTypeAnnotation,
235
- };
236
- this.update({
237
- ...object,
238
- });
239
- }
240
-
241
- /**
242
- * 设置是否必填
243
- */
244
- setRequired(required: boolean) {
245
- const object = {
246
- required,
247
- };
248
- this.update({
249
- ...object,
250
- });
251
- }
252
-
253
- /**
254
- * 设置默认值
255
- */
256
- setDefaultValue(defaultValue: string) {
257
- const object = {
258
- defaultValue,
259
- };
260
- this.update({
261
- ...object,
262
- });
263
- }
264
-
265
- /**
266
- * 设置当前属性是否为主键
267
- */
268
- setPrimaryKey(primaryKey: boolean) {
269
- const object = {
270
- primaryKey,
271
- };
272
- this.update({
273
- ...object,
274
- });
275
- }
276
-
277
- /**
278
- * 设置生成规则
279
- */
280
- setGenerationRule(generationRule: 'auto' | 'autoIncrement' | 'manual') {
281
- const object = {
282
- generationRule,
283
- };
284
- this.update({
285
- ...object,
286
- });
287
- }
288
-
289
- /**
290
- * 删除类型标注
291
- * @param name 类型标注名称
292
- */
293
- removeTypeAnnotation(name: string): void;
294
-
295
- /**
296
- * 删除类型标注
297
- * @param typeAnnotation 已有的类型标注实例
298
- */
299
- removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
300
-
301
- removeTypeAnnotation(options: string | TypeAnnotation) {
302
- let typeAnnotation: TypeAnnotation;
303
- if (typeof options === 'string') {
304
- typeAnnotation = this.typeAnnotation;
305
- if (!typeAnnotation) {
306
- throw new Error('找不到类型标注 ' + options);
307
- }
405
+ // 列名为初始化时需赋值为属性名,同时需要与其他列名中去重
406
+ if ((this as any).__columnNameInit === false) {
407
+ delete (this as any).__columnNameInit;
408
+ const columnNames = (this.parentNode as Entity).properties.filter((item) => item !== this).map((item) => item.columnName);
409
+ const columnName = utils.unique(name, columnNames, undefined, false);
410
+ object.columnName = columnName;
411
+
412
+ this.update({
413
+ ...object,
414
+ field: 'name',
415
+ });
416
+ return;
417
+ }
418
+
419
+ // 根据 name 格式化列名
420
+ const oldName = this.name;
421
+ const oldColumnName = this.columnName;
422
+ this.name = name;
423
+ this.columnName = name;
424
+ this.__formatColumnName();
425
+ if (this.columnName !== oldColumnName && !(this.parentNode as Entity).isIgnoreFormatTableAndColumnName()) {
426
+ object.columnName = this.columnName;
427
+ }
428
+
429
+ this.name = oldName;
430
+ this.columnName = oldColumnName;
431
+ this.app?.emit('collect:start', { actionMsg: '修改实体属性名' });
432
+ this.update({
433
+ ...object,
434
+ field: 'name',
435
+ });
436
+ await this._effect();
437
+ this.app?.emit('collect:end');
438
+ }
439
+
440
+ /**
441
+ * 设置数据库列名
442
+ */
443
+ setColumnName(columnName: string) {
444
+ const object = {
445
+ columnName,
446
+ };
447
+ this.update({
448
+ ...object,
449
+ });
450
+ }
451
+
452
+ async delete() {
453
+ let actionMsg = '删除实体属性';
454
+ if (this.name) actionMsg += `“${this.name}”`;
455
+ this.app?.emit('collect:start', { actionMsg });
456
+ // 副作用
457
+ await this._effect({ action: 'delete' });
458
+ super.delete();
459
+ this.app?.emit('collect:end');
460
+ }
461
+
462
+ async _effect(options: { action?: 'delete' } = {}) {
463
+ // 处理选中的此字段的 CallQueryComponent
464
+ const callQueryComponents: Set<CallQueryComponent> = new Set();
465
+ const refs = await this.findUsage();
466
+ refs.forEach((val: any) => {
467
+ const loopFindNode = (item: any) => {
468
+ if (item.children) {
469
+ item.children.forEach((i: any) => loopFindNode(i));
308
470
  } else {
309
- typeAnnotation = options;
471
+ const target = item.node?.getAncestor('CallQueryComponent');
472
+ if (target) {
473
+ callQueryComponents.add(target);
474
+ }
310
475
  }
311
- return typeAnnotation.delete();
312
- }
313
-
314
- __removeTypeAnnotation(typeAnnotation: TypeAnnotation) {
315
- const parentKey = typeAnnotation.parentKey;
316
- const params: Params = {
317
- parentNode: this,
318
- parentKey,
319
- index: -1,
320
- object: null,
321
- oldObject: typeAnnotation,
322
- };
323
- if (parentKey) {
324
- params.parentKey = parentKey;
325
- if (Array.isArray((this as any)[parentKey])) {
326
- const index = (this as any)[parentKey].indexOf(typeAnnotation);
327
- ~index && (this as any)[parentKey].splice(index, 1);
328
- params.index = index;
329
- } else if ((this as any)[parentKey] === typeAnnotation) {
330
- params.index = 0;
331
- (this as any)[parentKey] = undefined;
332
- }
476
+ };
477
+ loopFindNode(val);
478
+ });
479
+ callQueryComponents?.forEach((node) => {
480
+ const targetField = node.select.selectFieldElements.find(
481
+ (item) => item.entityAsName === this.parentNode.name && item.propertyName === this.name
482
+ );
483
+ if (targetField) {
484
+ if (options.action === 'delete') {
485
+ // 删除字段对应的 QueryFieldExpression
486
+ targetField.delete();
333
487
  }
334
- return params;
335
- }
336
-
337
- /**
338
- * 删除数据库存储类型
339
- * @param name 数据库存储类型名称
340
- */
341
- removeDatabaseTypeAnnotation(name: string): void;
342
-
343
- /**
344
- * 删除数据库存储类型
345
- * @param databaseTypeAnnotation 已有的数据库存储类型实例
346
- */
347
- removeDatabaseTypeAnnotation(databaseTypeAnnotation: DatabaseTypeAnnotation): void;
348
-
349
- removeDatabaseTypeAnnotation(options: string | DatabaseTypeAnnotation) {
350
- let databaseTypeAnnotation: DatabaseTypeAnnotation;
351
- if (typeof options === 'string') {
352
- databaseTypeAnnotation = this.databaseTypeAnnotation;
353
- if (!databaseTypeAnnotation) {
354
- throw new Error('找不到数据库存储类型 ' + options);
355
- }
356
- } else {
357
- databaseTypeAnnotation = options;
358
- }
359
- return databaseTypeAnnotation.delete();
360
- }
361
-
362
- __removeDatabaseTypeAnnotation(databaseTypeAnnotation: DatabaseTypeAnnotation) {
363
- const parentKey = databaseTypeAnnotation.parentKey;
364
- const params: Params = {
365
- parentNode: this,
366
- parentKey,
367
- index: -1,
368
- object: null,
369
- oldObject: databaseTypeAnnotation,
370
- };
371
- if (parentKey) {
372
- params.parentKey = parentKey;
373
- if (Array.isArray((this as any)[parentKey])) {
374
- const index = (this as any)[parentKey].indexOf(databaseTypeAnnotation);
375
- ~index && (this as any)[parentKey].splice(index, 1);
376
- params.index = index;
377
- } else if ((this as any)[parentKey] === databaseTypeAnnotation) {
378
- params.index = 0;
379
- (this as any)[parentKey] = undefined;
380
- }
381
- }
382
- return params;
383
- }
384
-
385
- //================================================================================
386
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
387
- // 自动生成的代码已结束。下面可以手动编写。
388
- //================================================================================
389
-
390
- /**
391
- * 设置实体属性名称
392
- */
393
- async setName(name: string) {
394
- const object: any = {
395
- name,
396
- };
397
-
398
- // 列名为初始化时需赋值为属性名,同时需要与其他列名中去重
399
- if ((this as any).__columnNameInit === false) {
400
- delete (this as any).__columnNameInit;
401
- const columnNames = (this.parentNode as Entity).properties.filter((item) => item !== this).map((item) => item.columnName);
402
- const columnName = utils.unique(name, columnNames, undefined, false);
403
- object.columnName = columnName;
404
-
405
- this.update({
406
- ...object,
407
- field: 'name',
408
- });
409
- return;
410
- }
411
-
412
- // 根据 name 格式化列名
413
- const oldName = this.name;
414
- const oldColumnName = this.columnName;
415
- this.name = name;
416
- this.columnName = name;
417
- this.__formatColumnName();
418
- if (this.columnName !== oldColumnName && !(this.parentNode as Entity).isIgnoreFormatTableAndColumnName()) {
419
- object.columnName = this.columnName;
420
- }
421
-
422
- this.name = oldName;
423
- this.columnName = oldColumnName;
424
- this.app?.emit('collect:start', { actionMsg: '修改实体属性名' });
425
- this.update({
426
- ...object,
427
- field: 'name',
428
- });
429
- await this._effect();
430
- this.app?.emit('collect:end');
431
- }
432
-
433
- /**
434
- * 设置数据库列名
435
- */
436
- setColumnName(columnName: string) {
437
- const object = {
438
- columnName,
439
- };
440
- this.update({
441
- ...object,
442
- });
443
- }
444
- async delete() {
445
- let actionMsg = '删除实体属性';
446
- if (this.name)
447
- actionMsg += `“${this.name}”`;
448
- this.app?.emit('collect:start', { actionMsg });
449
- // 副作用
450
- await this._effect({ action: 'delete' });
451
- super.delete();
452
- this.app?.emit('collect:end');
453
- }
454
-
455
- async _effect(options: { action?: 'delete' } = {}) {
456
- // 处理选中的此字段的 CallQueryComponent
457
- const callQueryComponents: Set<CallQueryComponent> = new Set();
458
- const refs = await this.findUsage();
459
- refs.forEach((val: any) => {
460
- const loopFindNode = (item: any) => {
461
- if (item.children) {
462
- item.children.forEach((i: any) => loopFindNode(i));
463
- } else {
464
- const target = item.node?.getAncestor('CallQueryComponent');
465
- if (target) {
466
- callQueryComponents.add(target);
467
- }
468
- }
469
- };
470
- loopFindNode(val);
471
- });
472
- callQueryComponents?.forEach((node) => {
473
- const targetField = node.select.selectFieldElements.find((item) => item.entityAsName === this.parentNode.name && item.propertyName === this.name);
474
- if (targetField) {
475
- if (options.action === 'delete') {
476
- // 删除字段对应的 QueryFieldExpression
477
- targetField.delete();
478
- }
479
- // 更新数据结构
480
- node.saveStructure();
481
- }
482
- });
483
- }
484
- /**
485
- * 是否展开
486
- */
487
- @property()
488
- isLeaf: boolean = true;
489
-
490
- /**
491
- * 设置是否必填
492
- */
493
- setSequence(sequence: string) {
494
- const object = {
495
- sequence,
496
- };
497
- this.update({
498
- ...object,
499
- });
500
- }
501
- /**
502
- * 设置是否必填
503
- */
504
- setDisplay(display: { [name: string]: boolean }) {
505
- const object = {
506
- display,
507
- };
508
- this.update({
509
- ...object,
510
- });
511
- }
512
-
513
- setDeleteRule(deleteRule: string) {
514
- const object = {
515
- deleteRule,
516
- };
517
- this.update({
518
- ...object,
519
- });
520
- }
521
-
522
- /**
523
- * 根据全局设置中的数据库命名规则,生成 属性列名
524
- */
525
- genFormatColumnName() {
526
- return (this.parentNode as Entity).genFormatPropertyColumnName(this);
527
- }
528
-
529
- /**
530
- * 根据全局设置中的数据库命名规则,将 属性列名 重命名
531
- * 此方法不会 update
532
- */
533
- __formatColumnName() {
534
- const parentNode = this.parentNode as Entity;
535
- if (parentNode.isIgnoreFormatTableAndColumnName()) {
536
- // if (!this.columnName) {
537
- // this.columnName = this.name;
538
- // }
539
- return;
540
- }
541
-
542
- const newColumnName = this.genFormatColumnName();
543
- if (newColumnName && (!this.columnName || (this.columnName && newColumnName !== this.columnName))) {
544
- this.columnName = newColumnName;
545
- }
546
- }
547
- /**
548
- * 根据全局设置中的数据库命名规则,将 属性列名 重命名
549
- */
550
- formatColumnName() {
551
- const parentNode = this.parentNode as Entity;
552
- if (parentNode.isIgnoreFormatTableAndColumnName()) {
553
- // if (!this.columnName) {
554
- // this.setColumnName(this.name);
555
- // }
556
- return;
557
- }
558
-
559
- const newColumnName = this.genFormatColumnName();
560
- if (newColumnName && (!this.columnName || (this.columnName && newColumnName !== this.columnName))) {
561
- this.setColumnName(newColumnName);
562
- }
563
- }
564
-
565
- @withSourceMap()
566
- toEmbeddedTS(state?: TranslatorState): string {
567
- let code = '';
568
- if (this.relationNamespace && this.relationEntity && this.relationProperty) {
569
- code += `@nasl.annotation.EntityRelation(new ${this.relationNamespace}.${this.relationEntity}().${this.relationProperty})\n`;
570
- code += indent((state?.tabSize || 0) + 2);
571
- // code += indent((state?.tabSize || 0) + 1);
572
- }
573
-
574
- code += this.name;
575
- if (this.typeAnnotation) {
576
- code += ': ';
577
- code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
578
- }
579
- if (this.defaultValue) {
580
- code += '= ' + this.typeAnnotation.getDefaultValue(this.defaultValue);
581
- }
582
- return code;
583
- }
584
- /**
585
- * 设置数据类型
586
- * @param typeAnnotation 类型标注对象
587
- */
588
- setDataType(typeAnnotation: TypeAnnotation): void;
589
- /**
590
- * 设置数据类型
591
- * @param typeAnnotation 类型唯一标识
592
- */
593
- setDataType(typeKey: string): void;
594
- setDataType(typeAnnotation: TypeAnnotation | string) {
595
- if (typeof typeAnnotation === 'string') {
596
- typeAnnotation = dataTypesMap[typeAnnotation];
597
- if (!typeAnnotation)
598
- // eslint-disable-next-line prefer-rest-params
599
- throw new Error('找不到类型:' + arguments[0]);
600
- } else {
601
- typeAnnotation._delete?.();
602
- const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
603
- Object.assign(typeAnnotation, relationOptions);
604
- }
605
- const object = {
606
- typeAnnotation,
607
- };
608
- return this.update({
609
- ...object,
610
- });
611
- }
612
-
613
- public static getDefaultOptions() {
488
+ // 更新数据结构
489
+ node.saveStructure();
490
+ }
491
+ });
492
+ }
493
+
494
+ /**
495
+ * 是否展开
496
+ */
497
+ @property()
498
+ isLeaf: boolean = true;
499
+
500
+ /**
501
+ * 设置是否必填
502
+ */
503
+ setSequence(sequence: string) {
504
+ const object = {
505
+ sequence,
506
+ };
507
+ this.update({
508
+ ...object,
509
+ });
510
+ }
511
+
512
+ /**
513
+ * 设置是否必填
514
+ */
515
+ setDisplay(display: { [name: string]: boolean }) {
516
+ const object = {
517
+ display,
518
+ };
519
+ this.update({
520
+ ...object,
521
+ });
522
+ }
523
+
524
+ setDeleteRule(deleteRule: string) {
525
+ const object = {
526
+ deleteRule,
527
+ };
528
+ this.update({
529
+ ...object,
530
+ });
531
+ }
532
+
533
+ /**
534
+ * 根据全局设置中的数据库命名规则,生成 属性列名
535
+ */
536
+ genFormatColumnName() {
537
+ return (this.parentNode as Entity).genFormatPropertyColumnName(this);
538
+ }
539
+
540
+ /**
541
+ * 根据全局设置中的数据库命名规则,将 属性列名 重命名
542
+ * 此方法不会 update
543
+ */
544
+ __formatColumnName() {
545
+ const parentNode = this.parentNode as Entity;
546
+ if (parentNode.isIgnoreFormatTableAndColumnName()) {
547
+ // if (!this.columnName) {
548
+ // this.columnName = this.name;
549
+ // }
550
+ return;
551
+ }
552
+
553
+ const newColumnName = this.genFormatColumnName();
554
+ if (newColumnName && (!this.columnName || (this.columnName && newColumnName !== this.columnName))) {
555
+ this.columnName = newColumnName;
556
+ }
557
+ }
558
+
559
+ /**
560
+ * 根据全局设置中的数据库命名规则,将 属性列名 重命名
561
+ */
562
+ formatColumnName() {
563
+ const parentNode = this.parentNode as Entity;
564
+ if (parentNode.isIgnoreFormatTableAndColumnName()) {
565
+ // if (!this.columnName) {
566
+ // this.setColumnName(this.name);
567
+ // }
568
+ return;
569
+ }
570
+
571
+ const newColumnName = this.genFormatColumnName();
572
+ if (newColumnName && (!this.columnName || (this.columnName && newColumnName !== this.columnName))) {
573
+ this.setColumnName(newColumnName);
574
+ }
575
+ }
576
+
577
+ @withSourceMap()
578
+ toEmbeddedTS(state?: TranslatorState): string {
579
+ let code = '';
580
+ if (this.relationNamespace && this.relationEntity && this.relationProperty) {
581
+ code += `@nasl.annotation.EntityRelation(new ${this.relationNamespace}.${this.relationEntity}().${this.relationProperty})\n`;
582
+ code += indent((state?.tabSize || 0) + 2);
583
+ // code += indent((state?.tabSize || 0) + 1);
584
+ }
585
+
586
+ code += this.name;
587
+ if (this.typeAnnotation) {
588
+ code += ': ';
589
+ code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
590
+ }
591
+ if (this.defaultValue) {
592
+ code += `= ${this.typeAnnotation.getDefaultValue(this.defaultValue)}`;
593
+ }
594
+ return code;
595
+ }
596
+
597
+ @withSourceMap()
598
+ toNaturalTS(state?: TranslatorState): string {
599
+ let code = '';
600
+ if (this.relationNamespace && this.relationEntity && this.relationProperty) {
601
+ code += `@EntityRelation(() => new ${this.relationEntity}().${this.relationProperty})\n`;
602
+ code += indent(state.tabSize);
603
+ }
604
+
605
+ code += this.name;
606
+ if (this.typeAnnotation) {
607
+ code += ': ';
608
+ code += this.typeAnnotation.toNaturalTS(shiftState(state, code, { inline: true }));
609
+ }
610
+ return code;
611
+ }
612
+
613
+ /**
614
+ * 设置数据类型
615
+ * @param typeAnnotation 类型标注对象
616
+ */
617
+ setDataType(typeAnnotation: TypeAnnotation): void;
618
+ /**
619
+ * 设置数据类型
620
+ * @param typeAnnotation 类型唯一标识
621
+ */
622
+ setDataType(typeKey: string): void;
623
+ setDataType(typeAnnotation: TypeAnnotation | string) {
624
+ if (typeof typeAnnotation === 'string') {
625
+ typeAnnotation = dataTypesMap[typeAnnotation];
626
+ if (!typeAnnotation)
627
+ // eslint-disable-next-line prefer-rest-params
628
+ throw new Error(`找不到类型:${arguments[0]}`);
629
+ } else {
630
+ typeAnnotation._delete?.();
631
+ const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
632
+ Object.assign(typeAnnotation, relationOptions);
633
+ }
634
+ const object = {
635
+ typeAnnotation,
636
+ };
637
+ return this.update({
638
+ ...object,
639
+ });
640
+ }
641
+
642
+ public static getDefaultOptions() {
643
+ return {
644
+ typeAnnotation: {
645
+ concept: 'TypeAnnotation',
646
+ typeKind: 'primitive',
647
+ typeNamespace: 'nasl.core',
648
+ typeName: 'String',
649
+ },
650
+ };
651
+ }
652
+
653
+ /**
654
+ * 关联属性
655
+ */
656
+ clearReference() {
657
+ const object = {
658
+ relationEntity: null as string,
659
+ relationProperty: null as string,
660
+ relationNamespace: null as string,
661
+ };
662
+ this.update({
663
+ ...object,
664
+ });
665
+ }
666
+
667
+ /**
668
+ * 属性上移
669
+ */
670
+ moveUp() {
671
+ const properties = [...(this.parentNode as Entity).properties];
672
+ const propertiesNameList = properties.map((item) => item.name);
673
+ const oldIndex = propertiesNameList.indexOf(this.name);
674
+ this.changeSort(properties, oldIndex, 'up');
675
+ this.parentNode.update({
676
+ properties,
677
+ });
678
+ }
679
+
680
+ /**
681
+ * 属性下移
682
+ */
683
+ moveDown() {
684
+ const properties = [...(this.parentNode as Entity).properties];
685
+ const propertiesNameList = properties.map((item) => item.name);
686
+ const oldIndex = propertiesNameList.indexOf(this.name);
687
+ this.changeSort(properties, oldIndex, 'down');
688
+ this.parentNode.update({
689
+ properties,
690
+ });
691
+ }
692
+ /**
693
+ * 数组移动位置
694
+ */
695
+
696
+ changeSort(arr: any[], index: number, type: changeType) {
697
+ arr.splice(type !== 'up' ? index : index - 1, 1, ...arr.splice(type !== 'up' ? index + 1 : index, 1, arr[type !== 'up' ? index : index - 1]));
698
+ return arr;
699
+ }
700
+
701
+ /**
702
+ * 设置关联实体属性名称
703
+ */
704
+ setRelationProperty(relationProperty: string) {
705
+ const object = {
706
+ relationProperty,
707
+ };
708
+ this.update({
709
+ ...object,
710
+ });
711
+ }
712
+
713
+ /**
714
+ * 设置关联实体实体名称
715
+ */
716
+ setRelationNamespace(relationNamespace: string) {
717
+ const object = {
718
+ relationNamespace,
719
+ };
720
+ this.update({
721
+ ...object,
722
+ });
723
+ }
724
+
725
+ /**
726
+ * 设置关联实体实体名称
727
+ */
728
+ setRelationEntity(relationEntity: string) {
729
+ const object = {
730
+ relationEntity,
731
+ };
732
+ this.update({
733
+ ...object,
734
+ });
735
+ }
736
+
737
+ /**
738
+ * 设置验证规则
739
+ */
740
+ setRules(rules: Array<string>) {
741
+ const object = {
742
+ rules,
743
+ };
744
+ this.update({
745
+ ...object,
746
+ });
747
+ }
748
+
749
+ /**
750
+ * 是否可编辑
751
+ * */
752
+ get readonly() {
753
+ return !!this.module || this.generationRule !== 'manual';
754
+ }
755
+
756
+ // 存储类型信息
757
+ get databaseTypeInfo() {
758
+ const dataSourceSqlType = (this.getAncestor('DataSource') as DataSource)?.dataSourceSqlType;
759
+ const databaseTypeMap = this.app?.__databaseTypeMap?.[dataSourceSqlType] || {};
760
+ const { typeKind, typeName, typeNamespace } = this?.typeAnnotation || {};
761
+ let databaseTypeInfo;
762
+ if (typeNamespace?.endsWith('.enums')) {
763
+ databaseTypeInfo = databaseTypeMap.enum;
764
+ } else {
765
+ databaseTypeInfo = databaseTypeMap[typeKind] || databaseTypeMap[typeName];
766
+ }
767
+ return databaseTypeInfo;
768
+ }
769
+
770
+ // 当前nasl类型对应的存储类型列表
771
+ get dataBaseTypes() {
772
+ return this.databaseTypeInfo?.dataBaseTypes;
773
+ }
774
+
775
+ // 当前nasl类型对应的存储类型Map
776
+ get dataBaseTypeMap() {
777
+ return this.databaseTypeInfo?.dataBaseTypeMap;
778
+ }
779
+
780
+ // 当前nasl类型对应的默认存储类型
781
+ get defaultDataBaseType() {
782
+ return this.databaseTypeInfo?.defaultDataBaseType;
783
+ }
784
+
785
+ // 当前选中的存储类型
786
+ get currentDataBaseType() {
787
+ if (this.databaseTypeAnnotation) {
788
+ const databaseTypeMap = this.dataBaseTypeMap || {};
789
+ const { typeName } = this.databaseTypeAnnotation;
790
+ return databaseTypeMap[typeName];
791
+ }
792
+ const { typeName } = this.typeAnnotation;
793
+ if (typeName === 'String') {
794
+ const defaultDataBaseName = this.inferredDefaultDataBaseName;
795
+ if (defaultDataBaseName && defaultDataBaseName !== this.defaultDataBaseType?.type) {
614
796
  return {
615
- typeAnnotation: {
616
- concept: 'TypeAnnotation',
617
- typeKind: 'primitive',
618
- typeNamespace: 'nasl.core',
619
- typeName: 'String',
620
- },
621
- };
622
- }
623
- /**
624
- * 关联属性
625
- */
626
- clearReference() {
627
- const object = {
628
- relationEntity: null as string,
629
- relationProperty: null as string,
630
- relationNamespace: null as string,
797
+ ...(this.dataBaseTypeMap[defaultDataBaseName] || {}),
631
798
  };
632
- this.update({
633
- ...object,
634
- });
635
- }
636
- /**
637
- * 属性上移
638
- */
639
- moveUp() {
640
- const properties = [...(this.parentNode as Entity).properties];
641
- const propertiesNameList = properties.map((item) => item.name);
642
- const oldIndex = propertiesNameList.indexOf(this.name);
643
- this.changeSort(properties, oldIndex, 'up');
644
- this.parentNode.update({
645
- properties,
646
- });
647
- }
648
- /**
649
- * 属性下移
650
- */
651
- moveDown() {
652
- const properties = [...(this.parentNode as Entity).properties];
653
- const propertiesNameList = properties.map((item) => item.name);
654
- const oldIndex = propertiesNameList.indexOf(this.name);
655
- this.changeSort(properties, oldIndex, 'down');
656
- this.parentNode.update({
657
- properties,
658
- });
659
- }
660
- /**
661
- * 数组移动位置
662
- */
663
-
664
- changeSort(arr: any[], index: number, type: changeType) {
665
- arr.splice(type !== 'up' ? index : index - 1, 1, ...arr.splice(type !== 'up' ? index + 1 : index, 1, arr[type !== 'up' ? index : index - 1]));
666
- return arr;
667
- }
668
-
669
- /**
670
- * 设置关联实体属性名称
671
- */
672
- setRelationProperty(relationProperty: string) {
673
- const object = {
674
- relationProperty,
675
- };
676
- this.update({
677
- ...object,
678
- });
679
- }
680
-
681
- /**
682
- * 设置关联实体实体名称
683
- */
684
- setRelationNamespace(relationNamespace: string) {
685
- const object = {
686
- relationNamespace,
687
- };
688
- this.update({
689
- ...object,
690
- });
691
- }
692
- /**
693
- * 设置关联实体实体名称
694
- */
695
- setRelationEntity(relationEntity: string) {
696
- const object = {
697
- relationEntity,
698
- };
699
- this.update({
700
- ...object,
701
- });
702
- }
703
- /**
704
- * 设置验证规则
705
- */
706
- setRules(rules: Array<string>) {
707
- const object = {
708
- rules,
709
- };
710
- this.update({
711
- ...object,
712
- });
713
- }
714
- /**
715
- * 是否可编辑
716
- * */
717
- get readonly() {
718
- return !!this.module || this.generationRule !== 'manual';
719
- }
720
-
721
- // 存储类型信息
722
- get databaseTypeInfo() {
723
- const dataSourceSqlType = (this.getAncestor('DataSource') as DataSource)?.dataSourceSqlType;
724
- const databaseTypeMap = this.app?.__databaseTypeMap?.[dataSourceSqlType] || {};
725
- const { typeKind, typeName, typeNamespace } = this?.typeAnnotation || {};
726
- let databaseTypeInfo;
727
- if (typeNamespace?.endsWith('.enums')) {
728
- databaseTypeInfo = databaseTypeMap.enum;
729
- } else {
730
- databaseTypeInfo = databaseTypeMap[typeKind] || databaseTypeMap[typeName];
731
- }
732
- return databaseTypeInfo;
733
- }
734
-
735
- // 当前nasl类型对应的存储类型列表
736
- get dataBaseTypes() {
737
- return this.databaseTypeInfo?.dataBaseTypes;
738
- }
739
-
740
- // 当前nasl类型对应的存储类型Map
741
- get dataBaseTypeMap() {
742
- return this.databaseTypeInfo?.dataBaseTypeMap;
743
- }
744
-
745
- // 当前nasl类型对应的默认存储类型
746
- get defaultDataBaseType() {
747
- return this.databaseTypeInfo?.defaultDataBaseType;
748
- }
749
-
750
- // 当前选中的存储类型
751
- get currentDataBaseType() {
752
- if (this.databaseTypeAnnotation) {
753
- const databaseTypeMap = this.dataBaseTypeMap || {};
754
- const typeName = this.databaseTypeAnnotation.typeName;
755
- return databaseTypeMap[typeName];
756
- } else {
757
- const { typeName } = this.typeAnnotation;
758
- if (typeName === 'String') {
759
- const defaultDataBaseName = this.inferredDefaultDataBaseName;
760
- if (defaultDataBaseName && defaultDataBaseName !== this.defaultDataBaseType?.type) {
761
- return {
762
- ...(this.dataBaseTypeMap[defaultDataBaseName] || {}),
763
- };
764
- }
765
- }
766
- return this.defaultDataBaseType;
767
- }
768
- }
769
-
770
- // 根据最大长度推断的默认数据库类型
771
- get inferredDefaultDataBaseName() {
772
- let defaultDataBaseName;
773
- const { typeName } = this.typeAnnotation;
774
- if (typeName === 'String') {
775
- const dataSourceSqlType = (this.getAncestor('DataSource') as DataSource)?.dataSourceSqlType;
776
- let maxLength: any;
777
- const rules = this.rules;
778
- if (Array.isArray(rules)) {
779
- // 是否需要更新规则
780
- rules.forEach((rule) => {
781
- const match = rule.match(/^([^()]+)\(([\d\-.]+)\)$/);
782
- if (match) {
783
- const [, key, value] = match;
784
- if (key === 'maxLength') {
785
- maxLength = value;
786
- }
787
- }
788
- });
799
+ }
800
+ }
801
+ return this.defaultDataBaseType;
802
+ }
803
+
804
+ // 根据最大长度推断的默认数据库类型
805
+ get inferredDefaultDataBaseName() {
806
+ let defaultDataBaseName;
807
+ const { typeName } = this.typeAnnotation;
808
+ if (typeName === 'String') {
809
+ const dataSourceSqlType = (this.getAncestor('DataSource') as DataSource)?.dataSourceSqlType;
810
+ let maxLength: any;
811
+ const { rules } = this;
812
+ if (Array.isArray(rules)) {
813
+ // 是否需要更新规则
814
+ rules.forEach((rule) => {
815
+ const match = rule.match(/^([^()]+)\(([\d\-.]+)\)$/);
816
+ if (match) {
817
+ const [, key, value] = match;
818
+ if (key === 'maxLength') {
819
+ maxLength = value;
789
820
  }
790
- // 不同数据库 最大长度 短、中、长 对应的默认储存类型
791
- const sqlMap: any = {
792
- mysql: {
793
- 255: 'varchar',
794
- 4000: 'text',
795
- 16777215: 'mediumtext',
796
- },
797
- oracle: {
798
- 255: 'varchar2',
799
- 4000: 'clob',
800
- 16777215: 'clob',
801
- },
802
- dameng: {
803
- 255: 'varchar2',
804
- 4000: 'text',
805
- 16777215: 'text',
806
- },
807
- db2: {
808
- 255: 'varchar',
809
- 4000: 'clob',
810
- 16777215: 'clob',
811
- },
812
- };
813
- defaultDataBaseName = sqlMap?.[dataSourceSqlType]?.[maxLength];
814
- }
815
- return defaultDataBaseName;
816
- }
817
-
818
- __showAdvanced: boolean = false;
819
-
820
- //================================================================================
821
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
822
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
823
- //================================================================================
821
+ }
822
+ });
823
+ }
824
+ // 不同数据库 最大长度 短、中、长 对应的默认储存类型
825
+ const sqlMap: any = {
826
+ mysql: {
827
+ 255: 'varchar',
828
+ 4000: 'text',
829
+ 16777215: 'mediumtext',
830
+ },
831
+ oracle: {
832
+ 255: 'varchar2',
833
+ 4000: 'clob',
834
+ 16777215: 'clob',
835
+ },
836
+ dameng: {
837
+ 255: 'varchar2',
838
+ 4000: 'text',
839
+ 16777215: 'text',
840
+ },
841
+ db2: {
842
+ 255: 'varchar',
843
+ 4000: 'clob',
844
+ 16777215: 'clob',
845
+ },
846
+ };
847
+ defaultDataBaseName = sqlMap?.[dataSourceSqlType]?.[maxLength];
848
+ }
849
+ return defaultDataBaseName;
850
+ }
851
+
852
+ __showAdvanced: boolean = false;
853
+
854
+ //= ===============================================================================
855
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
856
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
857
+ //= ===============================================================================
824
858
  }
825
859
 
826
860
  classMap.EntityProperty = EntityProperty;
827
861
  export default EntityProperty;
828
- //================================================================================
862
+ //= ===============================================================================
829
863
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
830
864
  // 自动生成的代码已结束。下面可以手动编写。
831
- //================================================================================
865
+ //= ===============================================================================