@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,16 +1,16 @@
1
+ import { v4 as uuidv4 } from 'uuid';
1
2
  import Namespace from './Namespace__';
2
3
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
3
4
  import { entity2LogicNamespace } from '../server/entity2LogicNamespace';
4
5
  import CallQueryComponent from './CallQueryComponent__';
5
- //================================================================================
6
+ //= ===============================================================================
6
7
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
7
8
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
8
- //================================================================================
9
+ //= ===============================================================================
9
10
  import { EventPayload, Params } from '../common/EventEmitter';
10
11
  import { concept, excludedInJSON, property } from '../decorators';
11
12
 
12
13
  import * as utils from '../utils';
13
- import { v4 as uuidv4 } from 'uuid';
14
14
  import BaseNode from '../common/BaseNode';
15
15
  import classMap from '../common/classMap';
16
16
  import EntityProperty from './EntityProperty__';
@@ -24,875 +24,932 @@ import App from './App__';
24
24
  */
25
25
  @concept('实体')
26
26
  export class Entity extends BaseNode {
27
- /**
28
- * 产品概念
29
- */
30
- @property()
31
- concept: 'Entity' = 'Entity';
32
-
33
- /**
34
- * 实体名称
35
- */
36
- @property()
37
- name: string = undefined;
38
-
39
- /**
40
- * 唯一标识
41
- */
42
- @property()
43
- uuid: string = uuidv4().replace(/-/g, '');
44
-
45
- /**
46
- * 数据库表名
47
- */
48
- @property()
49
- tableName: string = undefined;
50
-
51
- /**
52
- * 实体描述
53
- */
54
- @property()
55
- description: string = undefined;
56
-
57
- /**
58
- * 实体来源
59
- */
60
- @property()
61
- origin: 'ide' | 'sql' | 'table' | 'excel' = 'ide';
62
-
63
- /**
64
- * 实体属性列表
65
- */
66
- @property('EntityProperty')
67
- properties: Array<EntityProperty> = [];
68
-
69
- /**
70
- * 实体索引列表
71
- */
72
- @property('EntityIndex')
73
- indexes: Array<EntityIndex> = [];
74
-
75
- /**
76
- * 祖先 Module
77
- */
78
- get module() {
79
- return this.getAncestor('Module') as Module;
80
- }
81
- /**
82
- * 祖先 App
83
- */
84
- get app() {
85
- return this.getAncestor('App') as App;
86
- }
87
- /**
88
- * 祖先 DataSource
89
- */
90
- get dataSource() {
91
- return this.getAncestor('DataSource') as DataSource;
92
- }
93
-
94
- /**
95
- * @param source 需要合并的部分参数
96
- */
97
- constructor(source?: Partial<Entity>) {
98
- source = Object.assign({}, Entity.getDefaultOptions(), source);
99
- super(source);
100
- super.subConstructor(source);
101
- }
102
- getClassName() {
103
- return 'Entity';
104
- }
105
-
106
- static from(source: any, parentNode?: any, parentKey?: string): Entity {
107
- return super.from(source, parentNode, parentKey) as Entity;
108
- }
109
-
110
- /**
111
- * 从父级删除该节点
112
- * @internal
113
- */
114
- _delete() {
115
- let params: Params = null;
116
- if (this.parentNode) {
117
- params = (this.parentNode as any)?.__removeEntity?.(this);
118
- }
119
- return params;
120
- }
121
- /**
122
- * 设置实体描述
123
- */
124
- setDescription(description: string) {
125
- const object = {
126
- description,
127
- };
128
- this.update({
129
- ...object,
130
- });
131
- }
132
-
133
- getPropertyExistingNames(excludedList: Array<EntityProperty> = []) {
134
- const excludedSet = new Set(excludedList);
135
- return ((this.properties as EntityProperty[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
136
- }
137
- getPropertyUniqueName(name = 'property1') {
138
- return utils.unique(name, this.getPropertyExistingNames(), undefined, false);
139
- }
140
-
141
- /**
142
- * 插入实体属性
143
- * @internal
144
- * @param name 实体属性名称,如果不填会自动生成一个唯一名称
145
- */
146
- _insertPropertyAt(name: string, index: number): EntityProperty;
147
-
148
- /**
149
- * 插入实体属性
150
- * @internal
151
- * @param propertyOptions 实体属性参数
152
- */
153
- _insertPropertyAt(propertyOptions: Partial<EntityProperty>, index: number): EntityProperty;
154
-
155
- /**
156
- * 插入实体属性
157
- * @internal
158
- * @param property 已有的实体属性实例
159
- */
160
- _insertPropertyAt(property: EntityProperty, index: number): EntityProperty;
161
-
162
- _insertPropertyAt(options: string | Partial<EntityProperty> | EntityProperty, index: number) {
163
- const propertyOptions: any = {};
164
- const relationOptions = { parentNode: this, parentKey: 'properties' };
165
- let property: EntityProperty;
166
- if (!options) {
167
- property = EntityProperty.from({
168
- ...propertyOptions,
169
- name: this.getPropertyUniqueName(),
170
- }, this, 'properties');
171
- } else if (typeof options === 'string') {
172
- property = EntityProperty.from({
173
- ...propertyOptions,
174
- name: options,
175
- }, this, 'properties');
176
- } else if (options instanceof EntityProperty) {
177
- options.ensureDelete(); // 同一实例不支持多处存在
178
- property = options;
179
- Object.assign(property, relationOptions);
180
- } else {
181
- property = EntityProperty.from({
182
- ...propertyOptions,
183
- ...options,
184
- }, this, 'properties');
185
- }
186
- this.properties.splice(index, 0, property);
187
- return property;
188
- }
189
-
190
- /**
191
- * 插入实体属性
192
- * @param name 实体属性名称,如果不填会自动生成一个唯一名称
193
- */
194
- insertPropertyAt(name: string, index: number): EntityProperty;
195
-
196
- /**
197
- * 插入实体属性
198
- * @param propertyOptions 实体属性参数
199
- */
200
- insertPropertyAt(propertyOptions: Partial<EntityProperty>, index: number): EntityProperty;
201
-
202
- /**
203
- * 插入实体属性
204
- * @param property 已有的实体属性实例
205
- */
206
- insertPropertyAt(property: EntityProperty, index: number): EntityProperty;
207
-
208
- insertPropertyAt(options: string | Partial<EntityProperty> | EntityProperty, index: number) {
209
- const node = this._insertPropertyAt(options as any, index);
210
- node.create({
211
- index,
212
- parentNode: this,
213
- parentKey: 'properties',
214
- });
215
- return node;
216
- }
217
-
218
- /**
219
- * 添加实体属性
220
- * @internal
221
- * @param name 实体属性名称,如果不填会自动生成一个唯一名称
222
- */
223
- _addProperty(name?: string): EntityProperty;
224
-
225
- /**
226
- * 添加实体属性
227
- * @internal
228
- * @param propertyOptions 实体属性参数
229
- */
230
- _addProperty(propertyOptions: Partial<EntityProperty>): EntityProperty;
231
-
232
- /**
233
- * 添加实体属性
234
- * @internal
235
- * @param property 已有的实体属性实例
236
- */
237
- _addProperty(property: EntityProperty): EntityProperty;
238
-
239
- _addProperty(options?: string | Partial<EntityProperty> | EntityProperty) {
240
- const index = this.properties.length;
241
- return this._insertPropertyAt(options as any, index);
242
- }
243
-
244
- /**
245
- * 添加实体属性
246
- * @internal
247
- * @param name 实体属性名称,如果不填会自动生成一个唯一名称
248
- */
249
- addProperty(name?: string): EntityProperty;
250
-
251
- /**
252
- * 添加实体属性
253
- * @param propertyOptions 实体属性参数
254
- */
255
- addProperty(propertyOptions: Partial<EntityProperty>): EntityProperty;
256
-
257
- /**
258
- * 添加实体属性
259
- * @param property 已有的实体属性实例
260
- */
261
- addProperty(property: EntityProperty): EntityProperty;
262
-
263
- addProperty(options?: string | Partial<EntityProperty> | EntityProperty) {
264
- const node = this._addProperty(options as any);
265
- const index = this.properties.indexOf(node);
266
- node.create({
267
- index,
268
- parentNode: this,
269
- parentKey: 'properties',
270
- });
271
- return node;
272
- }
273
-
274
-
275
- getEntityIndexExistingNames(excludedList: Array<EntityIndex> = []) {
276
- const excludedSet = new Set(excludedList);
277
- return ((this.indexes as EntityIndex[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
278
- }
279
- getEntityIndexUniqueName(name = 'entityIndex1') {
280
- return utils.unique(name, this.getEntityIndexExistingNames(), undefined, false);
281
- }
282
-
283
- /**
284
- * 插入实体索引
285
- * @internal
286
- * @param name 实体索引名称,如果不填会自动生成一个唯一名称
287
- */
288
- _insertEntityIndexAt(name: string, index: number): EntityIndex;
289
-
290
- /**
291
- * 插入实体索引
292
- * @internal
293
- * @param entityIndexOptions 实体索引参数
294
- */
295
- _insertEntityIndexAt(entityIndexOptions: Partial<EntityIndex>, index: number): EntityIndex;
296
-
297
- /**
298
- * 插入实体索引
299
- * @internal
300
- * @param entityIndex 已有的实体索引实例
301
- */
302
- _insertEntityIndexAt(entityIndex: EntityIndex, index: number): EntityIndex;
303
-
304
- _insertEntityIndexAt(options: string | Partial<EntityIndex> | EntityIndex, index: number) {
305
- const entityIndexOptions: any = {};
306
- const relationOptions = { parentNode: this, parentKey: 'indexes' };
307
- let entityIndex: EntityIndex;
308
- if (!options) {
309
- entityIndex = EntityIndex.from({
310
- ...entityIndexOptions,
311
- name: this.getEntityIndexUniqueName(),
312
- }, this, 'indexes');
313
- } else if (typeof options === 'string') {
314
- entityIndex = EntityIndex.from({
315
- ...entityIndexOptions,
316
- name: options,
317
- }, this, 'indexes');
318
- } else if (options instanceof EntityIndex) {
319
- options.ensureDelete(); // 同一实例不支持多处存在
320
- entityIndex = options;
321
- Object.assign(entityIndex, relationOptions);
322
- } else {
323
- entityIndex = EntityIndex.from({
324
- ...entityIndexOptions,
325
- ...options,
326
- }, this, 'indexes');
327
- }
328
- this.indexes.splice(index, 0, entityIndex);
329
- return entityIndex;
330
- }
331
-
332
- /**
333
- * 插入实体索引
334
- * @param name 实体索引名称,如果不填会自动生成一个唯一名称
335
- */
336
- insertEntityIndexAt(name: string, index: number): EntityIndex;
337
-
338
- /**
339
- * 插入实体索引
340
- * @param entityIndexOptions 实体索引参数
341
- */
342
- insertEntityIndexAt(entityIndexOptions: Partial<EntityIndex>, index: number): EntityIndex;
343
-
344
- /**
345
- * 插入实体索引
346
- * @param entityIndex 已有的实体索引实例
347
- */
348
- insertEntityIndexAt(entityIndex: EntityIndex, index: number): EntityIndex;
349
-
350
- insertEntityIndexAt(options: string | Partial<EntityIndex> | EntityIndex, index: number) {
351
- const node = this._insertEntityIndexAt(options as any, index);
352
- node.create({
353
- index,
354
- parentNode: this,
355
- parentKey: 'indexes',
356
- });
357
- return node;
358
- }
359
-
360
- /**
361
- * 添加实体索引
362
- * @internal
363
- * @param name 实体索引名称,如果不填会自动生成一个唯一名称
364
- */
365
- _addEntityIndex(name?: string): EntityIndex;
366
-
367
- /**
368
- * 添加实体索引
369
- * @internal
370
- * @param entityIndexOptions 实体索引参数
371
- */
372
- _addEntityIndex(entityIndexOptions: Partial<EntityIndex>): EntityIndex;
373
-
374
- /**
375
- * 添加实体索引
376
- * @internal
377
- * @param entityIndex 已有的实体索引实例
378
- */
379
- _addEntityIndex(entityIndex: EntityIndex): EntityIndex;
380
-
381
- _addEntityIndex(options?: string | Partial<EntityIndex> | EntityIndex) {
382
- const index = this.indexes.length;
383
- return this._insertEntityIndexAt(options as any, index);
384
- }
385
-
386
- /**
387
- * 添加实体索引
388
- * @internal
389
- * @param name 实体索引名称,如果不填会自动生成一个唯一名称
390
- */
391
- addEntityIndex(name?: string): EntityIndex;
392
-
393
- /**
394
- * 添加实体索引
395
- * @param entityIndexOptions 实体索引参数
396
- */
397
- addEntityIndex(entityIndexOptions: Partial<EntityIndex>): EntityIndex;
398
-
399
- /**
400
- * 添加实体索引
401
- * @param entityIndex 已有的实体索引实例
402
- */
403
- addEntityIndex(entityIndex: EntityIndex): EntityIndex;
404
-
405
- addEntityIndex(options?: string | Partial<EntityIndex> | EntityIndex) {
406
- const node = this._addEntityIndex(options as any);
407
- const index = this.indexes.indexOf(node);
408
- node.create({
409
- index,
410
- parentNode: this,
411
- parentKey: 'indexes',
412
- });
413
- return node;
414
- }
415
-
416
-
417
-
418
-
419
- /**
420
- * 删除实体属性
421
- * @param name 实体属性名称
422
- */
423
- removeProperty(name: string): void;
424
-
425
- /**
426
- * 删除实体属性
427
- * @param property 已有的实体属性实例
428
- */
429
- removeProperty(property: EntityProperty): void;
430
-
431
- removeProperty(options: string | EntityProperty) {
432
- let property: EntityProperty;
433
- if (typeof options === 'string') {
434
- property = (this.properties as EntityProperty[]).find((item) => item.name === options);
435
- if (!property) {
436
- throw new Error('找不到实体属性 ' + options);
437
- }
438
- } else {
439
- property = options;
440
- }
441
- return property.delete();
442
- }
443
-
444
- __removeEntityProperty(property: EntityProperty) {
445
- const parentKey = property.parentKey;
446
- const params: Params = {
447
- parentNode: this,
448
- parentKey,
449
- index: -1,
450
- object: null,
451
- oldObject: property,
452
- };
453
- if (parentKey) {
454
- params.parentKey = parentKey;
455
- if (Array.isArray((this as any)[parentKey])) {
456
- const index = (this as any)[parentKey].indexOf(property);
457
- ~index && (this as any)[parentKey].splice(index, 1);
458
- params.index = index;
459
- } else if ((this as any)[parentKey] === property) {
460
- params.index = 0;
461
- (this as any)[parentKey] = undefined;
462
- }
463
- }
464
- return params;
465
- }
466
-
467
-
468
-
469
- /**
470
- * 删除实体索引
471
- * @param name 实体索引名称
472
- */
473
- removeEntityIndex(name: string): void;
474
-
475
- /**
476
- * 删除实体索引
477
- * @param entityIndex 已有的实体索引实例
478
- */
479
- removeEntityIndex(entityIndex: EntityIndex): void;
480
-
481
- removeEntityIndex(options: string | EntityIndex) {
482
- let entityIndex: EntityIndex;
483
- if (typeof options === 'string') {
484
- entityIndex = (this.indexes as EntityIndex[]).find((item) => item.name === options);
485
- if (!entityIndex) {
486
- throw new Error('找不到实体索引 ' + options);
487
- }
488
- } else {
489
- entityIndex = options;
490
- }
491
- return entityIndex.delete();
492
- }
493
-
494
- __removeEntityIndex(entityIndex: EntityIndex) {
495
- const parentKey = entityIndex.parentKey;
496
- const params: Params = {
497
- parentNode: this,
498
- parentKey,
499
- index: -1,
500
- object: null,
501
- oldObject: entityIndex,
502
- };
503
- if (parentKey) {
504
- params.parentKey = parentKey;
505
- if (Array.isArray((this as any)[parentKey])) {
506
- const index = (this as any)[parentKey].indexOf(entityIndex);
507
- ~index && (this as any)[parentKey].splice(index, 1);
508
- params.index = index;
509
- } else if ((this as any)[parentKey] === entityIndex) {
510
- params.index = 0;
511
- (this as any)[parentKey] = undefined;
512
- }
513
- }
514
- return params;
515
- }
516
-
517
- //================================================================================
518
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
519
- // 自动生成的代码已结束。下面可以手动编写。
520
- //================================================================================
521
-
522
- getPropertyExistingColumnNames(excludedList: Array<EntityProperty> = []) {
523
- const excludedSet = new Set(excludedList);
524
- return (this.properties as EntityProperty[] || []).filter((item) => !excludedSet.has(item)).map((item) => item.columnName);
525
- }
526
- getPropertyUniqueColumnName(name = 'property1', excludedList: Array<EntityProperty> = []) {
527
- return utils.unique(name, this.getPropertyExistingColumnNames(excludedList), undefined, false);
528
- }
529
-
530
- getPropertyExistingNameList(excludedList: Array<EntityProperty> = []) {
531
- const excludedSet = Array.from(new Set(excludedList));
532
- const namelist = excludedSet.map((item) => item.name);
533
-
534
- return (this.properties || []).filter((item) => !namelist.includes(item.name)).map((item) => item.name);
535
- }
536
- /**
537
- * 设置实体表名并修改表名
538
- */
539
- setName(name: string) {
540
- const object: any = {
541
- name,
542
- };
543
-
544
- // 根据 name 格式化表名
545
- const oldName = this.name;
546
- const oldTableName = this.tableName;
547
- this.name = name;
548
- this.tableName = name;
549
- this.__formatTableName();
550
- if (this.tableName !== oldTableName && !this.isIgnoreFormatTableAndColumnName()) {
551
- object.tableName = this.tableName;
552
- }
553
-
554
- this.name = oldName;
555
- this.tableName = oldTableName;
556
- this.update({
557
- ...object,
558
- field: 'name',
559
- });
560
- }
561
- /**
562
- * 设置实体表名
563
- */
564
- setTableName(tableName: string) {
565
- const object = {
566
- tableName,
567
- };
568
-
569
- const oldTableName = this.tableName;
570
- this.tableName = tableName;
571
- this.__formatTableName();
572
-
573
- if (this.tableName !== tableName && !this.isIgnoreFormatTableAndColumnName()) {
574
- object.tableName = this.tableName;
575
- }
576
-
577
- this.tableName = oldTableName;
578
- this.update({
579
- ...object,
580
- });
581
- }
27
+ /**
28
+ * 产品概念
29
+ */
30
+ @property()
31
+ concept: 'Entity' = 'Entity';
32
+
33
+ /**
34
+ * 实体名称
35
+ */
36
+ @property()
37
+ name: string = undefined;
38
+
39
+ /**
40
+ * 唯一标识
41
+ */
42
+ @property()
43
+ uuid: string = uuidv4().replace(/-/g, '');
44
+
45
+ /**
46
+ * 数据库表名
47
+ */
48
+ @property()
49
+ tableName: string = undefined;
50
+
51
+ /**
52
+ * 实体描述
53
+ */
54
+ @property()
55
+ description: string = undefined;
56
+
57
+ /**
58
+ * 实体来源
59
+ */
60
+ @property()
61
+ origin: 'ide' | 'sql' | 'table' | 'excel' = 'ide';
62
+
63
+ /**
64
+ * 实体属性列表
65
+ */
66
+ @property('EntityProperty')
67
+ properties: Array<EntityProperty> = [];
68
+
69
+ /**
70
+ * 实体索引列表
71
+ */
72
+ @property('EntityIndex')
73
+ indexes: Array<EntityIndex> = [];
74
+
75
+ /**
76
+ * 祖先 Module
77
+ */
78
+ get module() {
79
+ return this.getAncestor('Module') as Module;
80
+ }
81
+
82
+ /**
83
+ * 祖先 App
84
+ */
85
+ get app() {
86
+ return this.getAncestor('App') as App;
87
+ }
88
+
89
+ /**
90
+ * 祖先 DataSource
91
+ */
92
+ get dataSource() {
93
+ return this.getAncestor('DataSource') as DataSource;
94
+ }
95
+
96
+ /**
97
+ * @param source 需要合并的部分参数
98
+ */
99
+ constructor(source?: Partial<Entity>) {
100
+ // @ts-ignore
101
+ source = { ...Entity.getDefaultOptions(), ...source };
102
+ super(source);
103
+ super.subConstructor(source);
104
+ }
105
+
106
+ getClassName() {
107
+ return 'Entity';
108
+ }
109
+
110
+ static from(source: any, parentNode?: any, parentKey?: string): Entity {
111
+ return super.from(source, parentNode, parentKey) as Entity;
112
+ }
113
+
114
+ /**
115
+ * 从父级删除该节点
116
+ * @internal
117
+ */
118
+ _delete() {
119
+ let params: Params = null;
120
+ if (this.parentNode) {
121
+ params = (this.parentNode as any)?.__removeEntity?.(this);
122
+ }
123
+ return params;
124
+ }
125
+
126
+ /**
127
+ * 设置实体描述
128
+ */
129
+ setDescription(description: string) {
130
+ const object = {
131
+ description,
132
+ };
133
+ this.update({
134
+ ...object,
135
+ });
136
+ }
137
+
138
+ getPropertyExistingNames(excludedList: Array<EntityProperty> = []) {
139
+ const excludedSet = new Set(excludedList);
140
+ return ((this.properties as EntityProperty[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
141
+ }
142
+
143
+ getPropertyUniqueName(name = 'property1') {
144
+ return utils.unique(name, this.getPropertyExistingNames(), undefined, false);
145
+ }
146
+
147
+ /**
148
+ * 插入实体属性
149
+ * @internal
150
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
151
+ */
152
+ _insertPropertyAt(name: string, index: number): EntityProperty;
153
+
154
+ /**
155
+ * 插入实体属性
156
+ * @internal
157
+ * @param propertyOptions 实体属性参数
158
+ */
159
+ _insertPropertyAt(propertyOptions: Partial<EntityProperty>, index: number): EntityProperty;
160
+
161
+ /**
162
+ * 插入实体属性
163
+ * @internal
164
+ * @param property 已有的实体属性实例
165
+ */
166
+ _insertPropertyAt(property: EntityProperty, index: number): EntityProperty;
167
+
168
+ _insertPropertyAt(options: string | Partial<EntityProperty> | EntityProperty, index: number) {
169
+ const propertyOptions: any = {};
170
+ const relationOptions = { parentNode: this, parentKey: 'properties' };
171
+ let property: EntityProperty;
172
+ if (!options) {
173
+ property = EntityProperty.from(
174
+ {
175
+ ...propertyOptions,
176
+ name: this.getPropertyUniqueName(),
177
+ },
178
+ this,
179
+ 'properties'
180
+ );
181
+ } else if (typeof options === 'string') {
182
+ property = EntityProperty.from(
183
+ {
184
+ ...propertyOptions,
185
+ name: options,
186
+ },
187
+ this,
188
+ 'properties'
189
+ );
190
+ } else if (options instanceof EntityProperty) {
191
+ options.ensureDelete(); // 同一实例不支持多处存在
192
+ property = options;
193
+ Object.assign(property, relationOptions);
194
+ } else {
195
+ property = EntityProperty.from(
196
+ {
197
+ ...propertyOptions,
198
+ ...options,
199
+ },
200
+ this,
201
+ 'properties'
202
+ );
203
+ }
204
+ this.properties.splice(index, 0, property);
205
+ return property;
206
+ }
207
+
208
+ /**
209
+ * 插入实体属性
210
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
211
+ */
212
+ insertPropertyAt(name: string, index: number): EntityProperty;
213
+
214
+ /**
215
+ * 插入实体属性
216
+ * @param propertyOptions 实体属性参数
217
+ */
218
+ insertPropertyAt(propertyOptions: Partial<EntityProperty>, index: number): EntityProperty;
219
+
220
+ /**
221
+ * 插入实体属性
222
+ * @param property 已有的实体属性实例
223
+ */
224
+ insertPropertyAt(property: EntityProperty, index: number): EntityProperty;
225
+
226
+ insertPropertyAt(options: string | Partial<EntityProperty> | EntityProperty, index: number) {
227
+ const node = this._insertPropertyAt(options as any, index);
228
+ node.create({
229
+ index,
230
+ parentNode: this,
231
+ parentKey: 'properties',
232
+ });
233
+ return node;
234
+ }
235
+
236
+ /**
237
+ * 添加实体属性
238
+ * @internal
239
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
240
+ */
241
+ _addProperty(name?: string): EntityProperty;
242
+
243
+ /**
244
+ * 添加实体属性
245
+ * @internal
246
+ * @param propertyOptions 实体属性参数
247
+ */
248
+ _addProperty(propertyOptions: Partial<EntityProperty>): EntityProperty;
249
+
250
+ /**
251
+ * 添加实体属性
252
+ * @internal
253
+ * @param property 已有的实体属性实例
254
+ */
255
+ _addProperty(property: EntityProperty): EntityProperty;
256
+
257
+ _addProperty(options?: string | Partial<EntityProperty> | EntityProperty) {
258
+ const index = this.properties.length;
259
+ return this._insertPropertyAt(options as any, index);
260
+ }
261
+
262
+ /**
263
+ * 添加实体属性
264
+ * @internal
265
+ * @param name 实体属性名称,如果不填会自动生成一个唯一名称
266
+ */
267
+ addProperty(name?: string): EntityProperty;
268
+
269
+ /**
270
+ * 添加实体属性
271
+ * @param propertyOptions 实体属性参数
272
+ */
273
+ addProperty(propertyOptions: Partial<EntityProperty>): EntityProperty;
274
+
275
+ /**
276
+ * 添加实体属性
277
+ * @param property 已有的实体属性实例
278
+ */
279
+ addProperty(property: EntityProperty): EntityProperty;
280
+
281
+ addProperty(options?: string | Partial<EntityProperty> | EntityProperty) {
282
+ const node = this._addProperty(options as any);
283
+ const index = this.properties.indexOf(node);
284
+ node.create({
285
+ index,
286
+ parentNode: this,
287
+ parentKey: 'properties',
288
+ });
289
+ return node;
290
+ }
291
+
292
+ getEntityIndexExistingNames(excludedList: Array<EntityIndex> = []) {
293
+ const excludedSet = new Set(excludedList);
294
+ return ((this.indexes as EntityIndex[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
295
+ }
296
+
297
+ getEntityIndexUniqueName(name = 'entityIndex1') {
298
+ return utils.unique(name, this.getEntityIndexExistingNames(), undefined, false);
299
+ }
300
+
301
+ /**
302
+ * 插入实体索引
303
+ * @internal
304
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
305
+ */
306
+ _insertEntityIndexAt(name: string, index: number): EntityIndex;
307
+
308
+ /**
309
+ * 插入实体索引
310
+ * @internal
311
+ * @param entityIndexOptions 实体索引参数
312
+ */
313
+ _insertEntityIndexAt(entityIndexOptions: Partial<EntityIndex>, index: number): EntityIndex;
314
+
315
+ /**
316
+ * 插入实体索引
317
+ * @internal
318
+ * @param entityIndex 已有的实体索引实例
319
+ */
320
+ _insertEntityIndexAt(entityIndex: EntityIndex, index: number): EntityIndex;
321
+
322
+ _insertEntityIndexAt(options: string | Partial<EntityIndex> | EntityIndex, index: number) {
323
+ const entityIndexOptions: any = {};
324
+ const relationOptions = { parentNode: this, parentKey: 'indexes' };
325
+ let entityIndex: EntityIndex;
326
+ if (!options) {
327
+ entityIndex = EntityIndex.from(
328
+ {
329
+ ...entityIndexOptions,
330
+ name: this.getEntityIndexUniqueName(),
331
+ },
332
+ this,
333
+ 'indexes'
334
+ );
335
+ } else if (typeof options === 'string') {
336
+ entityIndex = EntityIndex.from(
337
+ {
338
+ ...entityIndexOptions,
339
+ name: options,
340
+ },
341
+ this,
342
+ 'indexes'
343
+ );
344
+ } else if (options instanceof EntityIndex) {
345
+ options.ensureDelete(); // 同一实例不支持多处存在
346
+ entityIndex = options;
347
+ Object.assign(entityIndex, relationOptions);
348
+ } else {
349
+ entityIndex = EntityIndex.from(
350
+ {
351
+ ...entityIndexOptions,
352
+ ...options,
353
+ },
354
+ this,
355
+ 'indexes'
356
+ );
357
+ }
358
+ this.indexes.splice(index, 0, entityIndex);
359
+ return entityIndex;
360
+ }
361
+
362
+ /**
363
+ * 插入实体索引
364
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
365
+ */
366
+ insertEntityIndexAt(name: string, index: number): EntityIndex;
367
+
368
+ /**
369
+ * 插入实体索引
370
+ * @param entityIndexOptions 实体索引参数
371
+ */
372
+ insertEntityIndexAt(entityIndexOptions: Partial<EntityIndex>, index: number): EntityIndex;
373
+
374
+ /**
375
+ * 插入实体索引
376
+ * @param entityIndex 已有的实体索引实例
377
+ */
378
+ insertEntityIndexAt(entityIndex: EntityIndex, index: number): EntityIndex;
379
+
380
+ insertEntityIndexAt(options: string | Partial<EntityIndex> | EntityIndex, index: number) {
381
+ const node = this._insertEntityIndexAt(options as any, index);
382
+ node.create({
383
+ index,
384
+ parentNode: this,
385
+ parentKey: 'indexes',
386
+ });
387
+ return node;
388
+ }
389
+
390
+ /**
391
+ * 添加实体索引
392
+ * @internal
393
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
394
+ */
395
+ _addEntityIndex(name?: string): EntityIndex;
396
+
397
+ /**
398
+ * 添加实体索引
399
+ * @internal
400
+ * @param entityIndexOptions 实体索引参数
401
+ */
402
+ _addEntityIndex(entityIndexOptions: Partial<EntityIndex>): EntityIndex;
403
+
404
+ /**
405
+ * 添加实体索引
406
+ * @internal
407
+ * @param entityIndex 已有的实体索引实例
408
+ */
409
+ _addEntityIndex(entityIndex: EntityIndex): EntityIndex;
410
+
411
+ _addEntityIndex(options?: string | Partial<EntityIndex> | EntityIndex) {
412
+ const index = this.indexes.length;
413
+ return this._insertEntityIndexAt(options as any, index);
414
+ }
415
+
416
+ /**
417
+ * 添加实体索引
418
+ * @internal
419
+ * @param name 实体索引名称,如果不填会自动生成一个唯一名称
420
+ */
421
+ addEntityIndex(name?: string): EntityIndex;
422
+
423
+ /**
424
+ * 添加实体索引
425
+ * @param entityIndexOptions 实体索引参数
426
+ */
427
+ addEntityIndex(entityIndexOptions: Partial<EntityIndex>): EntityIndex;
428
+
429
+ /**
430
+ * 添加实体索引
431
+ * @param entityIndex 已有的实体索引实例
432
+ */
433
+ addEntityIndex(entityIndex: EntityIndex): EntityIndex;
434
+
435
+ addEntityIndex(options?: string | Partial<EntityIndex> | EntityIndex) {
436
+ const node = this._addEntityIndex(options as any);
437
+ const index = this.indexes.indexOf(node);
438
+ node.create({
439
+ index,
440
+ parentNode: this,
441
+ parentKey: 'indexes',
442
+ });
443
+ return node;
444
+ }
445
+
446
+ /**
447
+ * 删除实体属性
448
+ * @param name 实体属性名称
449
+ */
450
+ removeProperty(name: string): void;
451
+
452
+ /**
453
+ * 删除实体属性
454
+ * @param property 已有的实体属性实例
455
+ */
456
+ removeProperty(property: EntityProperty): void;
457
+
458
+ removeProperty(options: string | EntityProperty) {
459
+ let property: EntityProperty;
460
+ if (typeof options === 'string') {
461
+ property = (this.properties as EntityProperty[]).find((item) => item.name === options);
462
+ if (!property) {
463
+ throw new Error(`找不到实体属性 ${options}`);
464
+ }
465
+ } else {
466
+ property = options;
467
+ }
468
+ return property.delete();
469
+ }
470
+
471
+ __removeEntityProperty(property: EntityProperty) {
472
+ const { parentKey } = property;
473
+ const params: Params = {
474
+ parentNode: this,
475
+ parentKey,
476
+ index: -1,
477
+ object: null,
478
+ oldObject: property,
479
+ };
480
+ if (parentKey) {
481
+ params.parentKey = parentKey;
482
+ if (Array.isArray((this as any)[parentKey])) {
483
+ const index = (this as any)[parentKey].indexOf(property);
484
+ ~index && (this as any)[parentKey].splice(index, 1);
485
+ params.index = index;
486
+ } else if ((this as any)[parentKey] === property) {
487
+ params.index = 0;
488
+ (this as any)[parentKey] = undefined;
489
+ }
490
+ }
491
+ return params;
492
+ }
493
+
494
+ /**
495
+ * 删除实体索引
496
+ * @param name 实体索引名称
497
+ */
498
+ removeEntityIndex(name: string): void;
499
+
500
+ /**
501
+ * 删除实体索引
502
+ * @param entityIndex 已有的实体索引实例
503
+ */
504
+ removeEntityIndex(entityIndex: EntityIndex): void;
505
+
506
+ removeEntityIndex(options: string | EntityIndex) {
507
+ let entityIndex: EntityIndex;
508
+ if (typeof options === 'string') {
509
+ entityIndex = (this.indexes as EntityIndex[]).find((item) => item.name === options);
510
+ if (!entityIndex) {
511
+ throw new Error(`找不到实体索引 ${options}`);
512
+ }
513
+ } else {
514
+ entityIndex = options;
515
+ }
516
+ return entityIndex.delete();
517
+ }
518
+
519
+ __removeEntityIndex(entityIndex: EntityIndex) {
520
+ const { parentKey } = entityIndex;
521
+ const params: Params = {
522
+ parentNode: this,
523
+ parentKey,
524
+ index: -1,
525
+ object: null,
526
+ oldObject: entityIndex,
527
+ };
528
+ if (parentKey) {
529
+ params.parentKey = parentKey;
530
+ if (Array.isArray((this as any)[parentKey])) {
531
+ const index = (this as any)[parentKey].indexOf(entityIndex);
532
+ ~index && (this as any)[parentKey].splice(index, 1);
533
+ params.index = index;
534
+ } else if ((this as any)[parentKey] === entityIndex) {
535
+ params.index = 0;
536
+ (this as any)[parentKey] = undefined;
537
+ }
538
+ }
539
+ return params;
540
+ }
541
+
542
+ //= ===============================================================================
543
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
544
+ // 自动生成的代码已结束。下面可以手动编写。
545
+ //= ===============================================================================
546
+
547
+ getPropertyExistingColumnNames(excludedList: Array<EntityProperty> = []) {
548
+ const excludedSet = new Set(excludedList);
549
+ return ((this.properties as EntityProperty[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.columnName);
550
+ }
551
+
552
+ getPropertyUniqueColumnName(name = 'property1', excludedList: Array<EntityProperty> = []) {
553
+ return utils.unique(name, this.getPropertyExistingColumnNames(excludedList), undefined, false);
554
+ }
555
+
556
+ getPropertyExistingNameList(excludedList: Array<EntityProperty> = []) {
557
+ const excludedSet = Array.from(new Set(excludedList));
558
+ const namelist = excludedSet.map((item) => item.name);
559
+
560
+ return (this.properties || []).filter((item) => !namelist.includes(item.name)).map((item) => item.name);
561
+ }
562
+
563
+ /**
564
+ * 设置实体表名并修改表名
565
+ */
566
+ setName(name: string) {
567
+ const object: any = {
568
+ name,
569
+ };
570
+
571
+ // 根据 name 格式化表名
572
+ const oldName = this.name;
573
+ const oldTableName = this.tableName;
574
+ this.name = name;
575
+ this.tableName = name;
576
+ this.__formatTableName();
577
+ if (this.tableName !== oldTableName && !this.isIgnoreFormatTableAndColumnName()) {
578
+ object.tableName = this.tableName;
579
+ }
580
+
581
+ this.name = oldName;
582
+ this.tableName = oldTableName;
583
+ this.update({
584
+ ...object,
585
+ field: 'name',
586
+ });
587
+ }
588
+
589
+ /**
590
+ * 设置实体表名
591
+ */
592
+ setTableName(tableName: string) {
593
+ const object = {
594
+ tableName,
595
+ };
596
+
597
+ const oldTableName = this.tableName;
598
+ this.tableName = tableName;
599
+ this.__formatTableName();
600
+
601
+ if (this.tableName !== tableName && !this.isIgnoreFormatTableAndColumnName()) {
602
+ object.tableName = this.tableName;
603
+ }
604
+
605
+ this.tableName = oldTableName;
606
+ this.update({
607
+ ...object,
608
+ });
609
+ }
610
+
611
+ // Excel、数据源导入的实体不进行表名格式化
612
+ isIgnoreFormatTableAndColumnName() {
613
+ return this.origin !== 'ide' && this.origin !== 'sql';
614
+ }
615
+
616
+ genFormatTableName() {
617
+ return (this.parentNode as DataSource).genFormatEntityTableName(this);
618
+ }
619
+
620
+ /**
621
+ * 根据全局设置中的数据库命名规则,生成 属性列名
622
+ */
623
+ genFormatPropertyColumnName(property: EntityProperty) {
624
+ // Excel、数据源导入的实体不进行列名格式化
625
+ if (this.isIgnoreFormatTableAndColumnName()) {
626
+ return property.columnName || property.name;
627
+ }
628
+ const columnNameRule = this.app.preferenceMap['namingConvention.columnName'];
629
+ const formatMap: Record<string, Function> = {
630
+ camelCase: utils.snake2Camel,
631
+ snake_case: utils.Camel2Snake,
632
+ };
633
+ const columnNameFormatter = formatMap[columnNameRule];
634
+ let newColumnName = columnNameFormatter && columnNameFormatter(property.columnName || property.name, true);
635
+ newColumnName = this.getPropertyUniqueColumnName(newColumnName, [property]);
636
+ return newColumnName;
637
+ }
638
+
639
+ /**
640
+ * 根据全局设置中的数据库命名规则,将 实体表名 重命名
641
+ * 此方法不会 update
642
+ */
643
+ __formatTableName() {
582
644
  // Excel、数据源导入的实体不进行表名格式化
583
- isIgnoreFormatTableAndColumnName() {
584
- return this.origin !== 'ide' && this.origin !== 'sql';
585
- }
586
-
587
- genFormatTableName() {
588
- return (this.parentNode as DataSource).genFormatEntityTableName(this);
589
- }
590
-
591
- /**
592
- * 根据全局设置中的数据库命名规则,生成 属性列名
593
- */
594
- genFormatPropertyColumnName(property: EntityProperty) {
595
- // Excel、数据源导入的实体不进行列名格式化
596
- if (this.isIgnoreFormatTableAndColumnName()) {
597
- return property.columnName || property.name;
598
- }
599
- const columnNameRule = this.app.preferenceMap['namingConvention.columnName'];
600
- const formatMap: Record<string, Function> = {
601
- camelCase: utils.snake2Camel,
602
- snake_case: utils.Camel2Snake,
603
- };
604
- const columnNameFormatter = formatMap[columnNameRule];
605
- let newColumnName = columnNameFormatter && columnNameFormatter(property.columnName || property.name, true);
606
- newColumnName = this.getPropertyUniqueColumnName(newColumnName, [property]);
607
- return newColumnName;
608
- }
609
-
610
- /**
611
- * 根据全局设置中的数据库命名规则,将 实体表名 重命名
612
- * 此方法不会 update
613
- */
614
- __formatTableName() {
615
- // Excel、数据源导入的实体不进行表名格式化
616
- if (this.isIgnoreFormatTableAndColumnName()) {
617
- return;
618
- }
619
- const newTableName = this.genFormatTableName();
620
- if (newTableName && newTableName !== this.tableName) {
621
- this.tableName = newTableName;
622
- }
623
- }
624
-
625
- /**
626
- * 根据全局设置中的数据库命名规则,将 实体表名 重命名
627
- */
628
- formatTableName() {
629
- // Excel、数据源导入的实体不进行表名格式化
630
- if (this.isIgnoreFormatTableAndColumnName()) {
631
- return;
632
- }
633
- const newTableName = this.genFormatTableName();
634
- if (newTableName && newTableName !== this.tableName) {
635
- this.update({ tableName: newTableName });
636
- }
637
- }
638
- /**
639
- * 根据全局设置中的数据库命名规则,将 属性列名 重命名
640
- */
641
- formatPropertyColumnName() {
642
- // Excel、数据源导入的实体不进行列名格式化
643
- if (this.isIgnoreFormatTableAndColumnName()) {
644
- return;
645
- }
646
-
647
- // 重命名 properties columnName
648
- this.properties.forEach((prop) => prop.formatColumnName());
649
- }
650
- /**
651
- * 根据全局设置中的数据库命名规则,将 属性列名 重命名
652
- * 此方法不会 update
653
- */
654
- __formatPropertyColumnName() {
655
- // Excel、数据源导入的实体不进行列名格式化
656
- if (this.isIgnoreFormatTableAndColumnName()) {
657
- return;
658
- }
659
- this.properties.forEach((prop) => prop.__formatColumnName());
645
+ if (this.isIgnoreFormatTableAndColumnName()) {
646
+ return;
660
647
  }
661
- /**
662
- * 根据全局设置中的数据库命名规则,将 实体表名 属性列名 重命名
663
- */
664
- formatTableAndColumnName() {
665
- // Excel、数据源导入的实体不进行格式化
666
- if (this.isIgnoreFormatTableAndColumnName()) {
667
- return;
668
- }
669
- // 重命名 tableName
670
- this.formatTableName();
671
- // 重命名 properties columnName
672
- this.formatPropertyColumnName();
648
+ const newTableName = this.genFormatTableName();
649
+ if (newTableName && newTableName !== this.tableName) {
650
+ this.tableName = newTableName;
673
651
  }
652
+ }
674
653
 
675
- public static getDefaultOptions() {
676
- return {
677
- properties: [
678
- {
679
- concept: 'EntityProperty',
680
- name: 'id',
681
- columnName: 'id',
682
- label: '主键',
683
- description: '主键',
684
- primaryKey: true,
685
- required: true,
686
- typeAnnotation: {
687
- concept: 'TypeAnnotation',
688
- typeKind: 'primitive',
689
- typeNamespace: 'nasl.core',
690
- typeName: 'Long',
691
- },
692
- display: {
693
- inTable: false,
694
- inFilter: false,
695
- inForm: false,
696
- inDetail: false,
697
- },
698
- },
699
- {
700
- concept: 'EntityProperty',
701
- name: 'createdTime',
702
- columnName: 'createdTime',
703
- label: '创建时间',
704
- description: '创建时间',
705
- typeAnnotation: {
706
- concept: 'TypeAnnotation',
707
- typeKind: 'primitive',
708
- typeNamespace: 'nasl.core',
709
- typeName: 'DateTime',
710
- },
711
- display: {
712
- inTable: true,
713
- inFilter: false,
714
- inForm: false,
715
- inDetail: false,
716
- },
717
- },
718
- {
719
- concept: 'EntityProperty',
720
- name: 'updatedTime',
721
- columnName: 'updatedTime',
722
- label: '更新时间',
723
- description: '更新时间',
724
- typeAnnotation: {
725
- concept: 'TypeAnnotation',
726
- typeKind: 'primitive',
727
- typeNamespace: 'nasl.core',
728
- typeName: 'DateTime',
729
- },
730
- display: {
731
- inTable: true,
732
- inFilter: false,
733
- inForm: false,
734
- inDetail: false,
735
- },
736
- },
737
- {
738
- concept: 'EntityProperty',
739
- name: 'createdBy',
740
- columnName: 'createdBy',
741
- label: '创建者',
742
- description: '创建者',
743
- typeAnnotation: {
744
- concept: 'TypeAnnotation',
745
- typeKind: 'primitive',
746
- typeNamespace: 'nasl.core',
747
- typeName: 'String',
748
- },
749
- display: {
750
- inTable: false,
751
- inFilter: false,
752
- inForm: false,
753
- inDetail: false,
754
- },
755
- },
756
- {
757
- concept: 'EntityProperty',
758
- name: 'updatedBy',
759
- columnName: 'updatedBy',
760
- label: '更新者',
761
- description: '更新者',
762
- typeAnnotation: {
763
- concept: 'TypeAnnotation',
764
- typeKind: 'primitive',
765
- typeNamespace: 'nasl.core',
766
- typeName: 'String',
767
- },
768
- display: {
769
- inTable: false,
770
- inFilter: false,
771
- inForm: false,
772
- inDetail: false,
773
- },
774
- },
775
- ],
776
- };
777
- }
778
-
779
- @withSourceMap()
780
- toEmbeddedTS(state?: TranslatorState): string {
781
- let code = `export class ${this.name} {\n`;
654
+ /**
655
+ * 根据全局设置中的数据库命名规则,将 实体表名 重命名
656
+ */
657
+ formatTableName() {
658
+ // Excel、数据源导入的实体不进行表名格式化
659
+ if (this.isIgnoreFormatTableAndColumnName()) {
660
+ return;
661
+ }
662
+ const newTableName = this.genFormatTableName();
663
+ if (newTableName && newTableName !== this.tableName) {
664
+ this.update({ tableName: newTableName });
665
+ }
666
+ }
667
+
668
+ /**
669
+ * 根据全局设置中的数据库命名规则,将 属性列名 重命名
670
+ */
671
+ formatPropertyColumnName() {
672
+ // Excel、数据源导入的实体不进行列名格式化
673
+ if (this.isIgnoreFormatTableAndColumnName()) {
674
+ return;
675
+ }
676
+
677
+ // 重命名 properties columnName
678
+ this.properties.forEach((prop) => prop.formatColumnName());
679
+ }
680
+
681
+ /**
682
+ * 根据全局设置中的数据库命名规则,将 属性列名 重命名
683
+ * 此方法不会 update
684
+ */
685
+ __formatPropertyColumnName() {
686
+ // Excel、数据源导入的实体不进行列名格式化
687
+ if (this.isIgnoreFormatTableAndColumnName()) {
688
+ return;
689
+ }
690
+ this.properties.forEach((prop) => prop.__formatColumnName());
691
+ }
692
+
693
+ /**
694
+ * 根据全局设置中的数据库命名规则,将 实体表名 和 属性列名 重命名
695
+ */
696
+ formatTableAndColumnName() {
697
+ // Excel、数据源导入的实体不进行格式化
698
+ if (this.isIgnoreFormatTableAndColumnName()) {
699
+ return;
700
+ }
701
+ // 重命名 tableName
702
+ this.formatTableName();
703
+ // 重命名 properties columnName
704
+ this.formatPropertyColumnName();
705
+ }
706
+
707
+ public static getDefaultOptions() {
708
+ return {
709
+ properties: [
710
+ {
711
+ concept: 'EntityProperty',
712
+ name: 'id',
713
+ columnName: 'id',
714
+ label: '主键',
715
+ description: '主键',
716
+ primaryKey: true,
717
+ required: true,
718
+ typeAnnotation: {
719
+ concept: 'TypeAnnotation',
720
+ typeKind: 'primitive',
721
+ typeNamespace: 'nasl.core',
722
+ typeName: 'Long',
723
+ },
724
+ display: {
725
+ inTable: false,
726
+ inFilter: false,
727
+ inForm: false,
728
+ inDetail: false,
729
+ },
730
+ },
731
+ {
732
+ concept: 'EntityProperty',
733
+ name: 'createdTime',
734
+ columnName: 'createdTime',
735
+ label: '创建时间',
736
+ description: '创建时间',
737
+ typeAnnotation: {
738
+ concept: 'TypeAnnotation',
739
+ typeKind: 'primitive',
740
+ typeNamespace: 'nasl.core',
741
+ typeName: 'DateTime',
742
+ },
743
+ display: {
744
+ inTable: true,
745
+ inFilter: false,
746
+ inForm: false,
747
+ inDetail: false,
748
+ },
749
+ },
750
+ {
751
+ concept: 'EntityProperty',
752
+ name: 'updatedTime',
753
+ columnName: 'updatedTime',
754
+ label: '更新时间',
755
+ description: '更新时间',
756
+ typeAnnotation: {
757
+ concept: 'TypeAnnotation',
758
+ typeKind: 'primitive',
759
+ typeNamespace: 'nasl.core',
760
+ typeName: 'DateTime',
761
+ },
762
+ display: {
763
+ inTable: true,
764
+ inFilter: false,
765
+ inForm: false,
766
+ inDetail: false,
767
+ },
768
+ },
769
+ {
770
+ concept: 'EntityProperty',
771
+ name: 'createdBy',
772
+ columnName: 'createdBy',
773
+ label: '创建者',
774
+ description: '创建者',
775
+ typeAnnotation: {
776
+ concept: 'TypeAnnotation',
777
+ typeKind: 'primitive',
778
+ typeNamespace: 'nasl.core',
779
+ typeName: 'String',
780
+ },
781
+ display: {
782
+ inTable: false,
783
+ inFilter: false,
784
+ inForm: false,
785
+ inDetail: false,
786
+ },
787
+ },
788
+ {
789
+ concept: 'EntityProperty',
790
+ name: 'updatedBy',
791
+ columnName: 'updatedBy',
792
+ label: '更新者',
793
+ description: '更新者',
794
+ typeAnnotation: {
795
+ concept: 'TypeAnnotation',
796
+ typeKind: 'primitive',
797
+ typeNamespace: 'nasl.core',
798
+ typeName: 'String',
799
+ },
800
+ display: {
801
+ inTable: false,
802
+ inFilter: false,
803
+ inForm: false,
804
+ inDetail: false,
805
+ },
806
+ },
807
+ ],
808
+ };
809
+ }
810
+
811
+ @withSourceMap()
812
+ toEmbeddedTS(state?: TranslatorState): string {
813
+ let code = `export class ${this.name} {\n`;
814
+ code += indent((state?.tabSize || 0) + 1);
815
+ code += `__name: '${this.getNamespace()}.${this.name}';\n`;
816
+ this.properties.forEach((property) => {
817
+ code += indent((state?.tabSize || 0) + 1);
818
+ code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
819
+ code += ';\n';
820
+ });
821
+ if (this.indexes && this.indexes.length) {
822
+ code += indent((state?.tabSize || 0) + 1);
823
+ code += `__IndexList() {\n`;
824
+ code += ` return [`;
825
+ this.indexes.forEach((entityIndex) => {
782
826
  code += indent((state?.tabSize || 0) + 1);
783
- code += `__name: '${this.getNamespace()}.${this.name}';\n`;
784
- this.properties.forEach((property) => {
785
- code += indent((state?.tabSize || 0) + 1);
786
- code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
787
- code += ';\n';
788
- });
789
- if (this.indexes && this.indexes.length) {
790
- code += indent((state?.tabSize || 0) + 1);
791
- code += `__IndexList() {\n`;
792
- code += ` return [`;
793
- this.indexes.forEach((entityIndex) => {
794
- code += indent((state?.tabSize || 0) + 1);
795
- code += '\n ';
796
- code += entityIndex.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
797
- });
798
- code += indent((state?.tabSize || 0)) + `\n ];\n }\n`;
799
- }
800
-
801
- const ns = this.ns;
802
-
803
- /**
804
- * 11个函数的总行数
805
- * 如果修改这里,可能会影响到dataSource的重命名, 在naslserver中,可能要一起修改
806
- */
807
- code += `\nstatic logics = {\n`;
808
- ns.logics.forEach((logic) => {
809
- code += indent((state?.tabSize || 0) + 1);
810
- code += logic.toEmbeddedTS(shiftState(state, code), 'inObject');
811
- });
812
- code += '}\n';
813
- code += indent((state?.tabSize || 0)) + '}\n';
814
-
815
- return code;
816
- }
817
-
818
- getNamespace() {
819
- if (this.parentNode && (this.parentNode as DataSource).getNamespace)
820
- return `${(this.parentNode as DataSource).getNamespace()}.${this.parentNode.name}.entities`;
821
- else
822
- throw new Error('无法获取命名空间,请设置 parentNode!');
823
- }
824
-
825
- /**
826
- * 生成宿主语言的文件路径
827
- * @param name 一般不用传,用于 rename
828
- */
829
- getEmbeddedFilePath(name = this.name) {
830
- return `/embedded/${this.app.name}/datasources/${this.parentNode.name}/entities/${name}.ts`;
831
- }
832
-
833
- get ns() {
834
- const ns: Namespace = entity2LogicNamespace(this);
835
- ns.path = this.getNamespace();
836
- return ns;
837
- }
838
- // @excludedInJSON()
839
- // nslogic: Namespace;
840
-
841
- get logics() {
842
- const ns = this.ns;
843
- return ns.logics;
844
- }
845
-
846
- toEmbeddedTSFile() {
847
- let code = `namespace ${this.getNamespace()} {\n`;
848
- code += ' @nasl.annotation.Entity()\n';
849
-
850
- const state = createCompilerState(code, { tabSize: 1 });
851
- try {
852
- code += this.toEmbeddedTS(state);
853
- } catch (err) {
854
- code += '';
855
- console.log(err);
856
- }
857
- code += '}\n';
858
-
859
- return {
860
- code,
861
- filePath: this.getEmbeddedFilePath(),
862
- sourceMap: state.sourceMap,
863
- };
864
- }
865
-
866
- // 获取当前实体的所有主键名称
867
- get propertyPrimaryKeyNames() {
868
- const arr: string[] = [];
869
- this.properties.forEach((property) => {
870
- if (property.primaryKey) {
871
- arr.push(property.name);
872
- }
873
- });
874
- return arr;
875
- }
876
-
877
- /**
878
- * 获取已有的属性
879
- * 因为这个primaryIndex不允许添加
880
- * @param excludedList 排除的集合
881
- * @returns 有属性
882
- */
883
- getRenderEntityIndexExistingNames(excludedList: Array<EntityIndex> = []) {
884
- const arr = this.getEntityIndexExistingNames(excludedList);
885
- return [...arr, 'primaryIndex'];
886
- }
887
- //================================================================================
888
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
889
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
890
- //================================================================================
827
+ code += '\n ';
828
+ code += entityIndex.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
829
+ });
830
+ code += `${indent(state?.tabSize || 0)}\n ];\n }\n`;
831
+ }
832
+
833
+ const { ns } = this;
834
+
835
+ /**
836
+ * 11个函数的总行数
837
+ * 如果修改这里,可能会影响到dataSource的重命名, 在naslserver中,可能要一起修改
838
+ */
839
+ code += `\nstatic logics = {\n`;
840
+ ns.logics.forEach((logic) => {
841
+ code += indent((state?.tabSize || 0) + 1);
842
+ code += logic.toEmbeddedTS(shiftState(state, code), 'inObject');
843
+ });
844
+ code += '}\n';
845
+ code += `${indent(state?.tabSize || 0)}}\n`;
846
+
847
+ return code;
848
+ }
849
+
850
+ @withSourceMap()
851
+ toNaturalTS(state?: TranslatorState): string {
852
+ let code = `class ${this.name} {\n`;
853
+ // code += `${indent(state.tabSize + 1)}__name: '${this.getNamespace()}.${this.name}';\n`;
854
+ this.properties.forEach((property) => {
855
+ code += `${property.toNaturalTS(shiftState(state, code, { tabSize: state.tabSize + 1 }))};\n`;
856
+ });
857
+ if (this.indexes && this.indexes.length) {
858
+ code += indent(state.tabSize + 1);
859
+ code += `__IndexList() {\n`;
860
+ code += ` return [`;
861
+ this.indexes.forEach((entityIndex) => {
862
+ code += indent(state.tabSize + 1);
863
+ code += '\n ';
864
+ code += entityIndex.toEmbeddedTS(shiftState(state, code, { inline: true }));
865
+ });
866
+ code += `${indent(state.tabSize)}\n ];\n }\n`;
867
+ }
868
+
869
+ code += `${indent(state.tabSize)}}\n`;
870
+
871
+ code += `const ${this.name}Entity = createEntity<${this.name}>();\n`;
872
+
873
+ return code;
874
+ }
875
+
876
+ getNamespace() {
877
+ if (this.parentNode && (this.parentNode as DataSource).getNamespace)
878
+ return `${(this.parentNode as DataSource).getNamespace()}.${this.parentNode.name}.entities`;
879
+ throw new Error('无法获取命名空间,请设置 parentNode!');
880
+ }
881
+
882
+ /**
883
+ * 生成宿主语言的文件路径
884
+ * @param name 一般不用传,用于 rename
885
+ */
886
+ getEmbeddedFilePath(name = this.name) {
887
+ return `/embedded/${this.app.name}/datasources/${this.parentNode.name}/entities/${name}.ts`;
888
+ }
889
+
890
+ get ns() {
891
+ const ns: Namespace = entity2LogicNamespace(this);
892
+ ns.path = this.getNamespace();
893
+ return ns;
894
+ }
895
+ // @excludedInJSON()
896
+ // nslogic: Namespace;
897
+
898
+ get logics() {
899
+ const { ns } = this;
900
+ return ns.logics;
901
+ }
902
+
903
+ toEmbeddedTSFile() {
904
+ let code = `namespace ${this.getNamespace()} {\n`;
905
+ code += ' @nasl.annotation.Entity()\n';
906
+
907
+ const state = createCompilerState(code, { tabSize: 1 });
908
+ try {
909
+ code += this.toEmbeddedTS(state);
910
+ } catch (err) {
911
+ code += '';
912
+ console.log(err);
913
+ }
914
+ code += '}\n';
915
+
916
+ return {
917
+ code,
918
+ filePath: this.getEmbeddedFilePath(),
919
+ sourceMap: state.sourceMap,
920
+ };
921
+ }
922
+
923
+ // 获取当前实体的所有主键名称
924
+ get propertyPrimaryKeyNames() {
925
+ const arr: string[] = [];
926
+ this.properties.forEach((property) => {
927
+ if (property.primaryKey) {
928
+ arr.push(property.name);
929
+ }
930
+ });
931
+ return arr;
932
+ }
933
+
934
+ /**
935
+ * 获取已有的属性
936
+ * 因为这个primaryIndex不允许添加
937
+ * @param excludedList 排除的集合
938
+ * @returns 有属性
939
+ */
940
+ getRenderEntityIndexExistingNames(excludedList: Array<EntityIndex> = []) {
941
+ const arr = this.getEntityIndexExistingNames(excludedList);
942
+ return [...arr, 'primaryIndex'];
943
+ }
944
+ //= ===============================================================================
945
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
946
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
947
+ //= ===============================================================================
891
948
  }
892
949
 
893
950
  classMap.Entity = Entity;
894
951
  export default Entity;
895
- //================================================================================
952
+ //= ===============================================================================
896
953
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
897
954
  // 自动生成的代码已结束。下面可以手动编写。
898
- //================================================================================
955
+ //= ===============================================================================