@lcap/nasl 3.7.3-beta.1 → 3.8.0-beta.2

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 (370) hide show
  1. package/.mocharc.js +0 -1
  2. package/out/automate/engine/utils.js +6 -1
  3. package/out/automate/engine/utils.js.map +1 -1
  4. package/out/bak/translator.js +37 -0
  5. package/out/bak/translator.js.map +1 -1
  6. package/out/breakpoint/shared/utils.d.ts +1 -0
  7. package/out/breakpoint/shared/utils.js +1 -1
  8. package/out/breakpoint/shared/utils.js.map +1 -1
  9. package/out/common/BaseNode.d.ts +11 -0
  10. package/out/common/BaseNode.js +101 -5
  11. package/out/common/BaseNode.js.map +1 -1
  12. package/out/concepts/Annotatable__.d.ts +109 -0
  13. package/out/concepts/Annotatable__.js +161 -0
  14. package/out/concepts/Annotatable__.js.map +1 -0
  15. package/out/concepts/AnnotationProperty__.d.ts +48 -0
  16. package/out/concepts/AnnotationProperty__.js +74 -0
  17. package/out/concepts/AnnotationProperty__.js.map +1 -0
  18. package/out/concepts/Annotation__.d.ts +128 -0
  19. package/out/concepts/Annotation__.js +248 -0
  20. package/out/concepts/Annotation__.js.map +1 -0
  21. package/out/concepts/App__.d.ts +14 -26
  22. package/out/concepts/App__.js +50 -20
  23. package/out/concepts/App__.js.map +1 -1
  24. package/out/concepts/ApplyAnnotation__.d.ts +87 -0
  25. package/out/concepts/ApplyAnnotation__.js +140 -0
  26. package/out/concepts/ApplyAnnotation__.js.map +1 -0
  27. package/out/concepts/Argument__.d.ts +19 -0
  28. package/out/concepts/Argument__.js +126 -0
  29. package/out/concepts/Argument__.js.map +1 -1
  30. package/out/concepts/AssigneeV2__.d.ts +169 -0
  31. package/out/concepts/AssigneeV2__.js +176 -1
  32. package/out/concepts/AssigneeV2__.js.map +1 -1
  33. package/out/concepts/AuthLogicForCallInterface__.js +1 -1
  34. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  35. package/out/concepts/AuthLogic__.js +1 -1
  36. package/out/concepts/AuthLogic__.js.map +1 -1
  37. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  38. package/out/concepts/BooleanLiteral__.js +9 -0
  39. package/out/concepts/BooleanLiteral__.js.map +1 -1
  40. package/out/concepts/BusinessLogic__.js +1 -1
  41. package/out/concepts/BusinessLogic__.js.map +1 -1
  42. package/out/concepts/CallFunction__.js +1 -1
  43. package/out/concepts/CallFunction__.js.map +1 -1
  44. package/out/concepts/CallLogic__.d.ts +15 -0
  45. package/out/concepts/CallLogic__.js +149 -17
  46. package/out/concepts/CallLogic__.js.map +1 -1
  47. package/out/concepts/ConnectorLogic__.js +1 -1
  48. package/out/concepts/ConnectorLogic__.js.map +1 -1
  49. package/out/concepts/DatabaseTypeAnnotation__.d.ts +0 -2
  50. package/out/concepts/DatabaseTypeAnnotation__.js +0 -20
  51. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  52. package/out/concepts/DepartmentManagerV2__.d.ts +29 -0
  53. package/out/concepts/DepartmentManagerV2__.js +56 -0
  54. package/out/concepts/DepartmentManagerV2__.js.map +1 -0
  55. package/out/concepts/DepartmentV2__.d.ts +33 -0
  56. package/out/concepts/DepartmentV2__.js +63 -0
  57. package/out/concepts/DepartmentV2__.js.map +1 -0
  58. package/out/concepts/DirectManagerV2__.d.ts +25 -0
  59. package/out/concepts/DirectManagerV2__.js +53 -0
  60. package/out/concepts/DirectManagerV2__.js.map +1 -0
  61. package/out/concepts/End__.js +9 -1
  62. package/out/concepts/End__.js.map +1 -1
  63. package/out/concepts/EntityProperty__.js +0 -2
  64. package/out/concepts/EntityProperty__.js.map +1 -1
  65. package/out/concepts/Entity__.d.ts +2 -2
  66. package/out/concepts/Entity__.js +4 -7
  67. package/out/concepts/Entity__.js.map +1 -1
  68. package/out/concepts/EnumItem__.d.ts +1 -12
  69. package/out/concepts/EnumItem__.js +17 -49
  70. package/out/concepts/EnumItem__.js.map +1 -1
  71. package/out/concepts/EnumSelectSetter__.d.ts +4 -0
  72. package/out/concepts/EnumSelectSetter__.js +7 -0
  73. package/out/concepts/EnumSelectSetter__.js.map +1 -1
  74. package/out/concepts/Enum__.js +1 -4
  75. package/out/concepts/Enum__.js.map +1 -1
  76. package/out/concepts/ForEachStatement__.js +1 -1
  77. package/out/concepts/ForEachStatement__.js.map +1 -1
  78. package/out/concepts/FrontendLibrary__.d.ts +52 -48
  79. package/out/concepts/FrontendLibrary__.js +45 -36
  80. package/out/concepts/FrontendLibrary__.js.map +1 -1
  81. package/out/concepts/FrontendType__.d.ts +4 -0
  82. package/out/concepts/FrontendType__.js +7 -0
  83. package/out/concepts/FrontendType__.js.map +1 -1
  84. package/out/concepts/Frontend__.d.ts +2 -0
  85. package/out/concepts/Frontend__.js +21 -2
  86. package/out/concepts/Frontend__.js.map +1 -1
  87. package/out/concepts/HistoryProcessV2__.js +4 -1
  88. package/out/concepts/HistoryProcessV2__.js.map +1 -1
  89. package/out/concepts/I18nInfo__.d.ts +0 -1
  90. package/out/concepts/I18nInfo__.js +0 -7
  91. package/out/concepts/I18nInfo__.js.map +1 -1
  92. package/out/concepts/Identifier__.d.ts +2 -0
  93. package/out/concepts/Identifier__.js +31 -0
  94. package/out/concepts/Identifier__.js.map +1 -1
  95. package/out/concepts/IfStatement__.js +2 -2
  96. package/out/concepts/IfStatement__.js.map +1 -1
  97. package/out/concepts/Interface__.js +1 -4
  98. package/out/concepts/Interface__.js.map +1 -1
  99. package/out/concepts/LogicItem__.d.ts +1 -1
  100. package/out/concepts/LogicItem__.js.map +1 -1
  101. package/out/concepts/Logic__.d.ts +16 -1
  102. package/out/concepts/Logic__.js +133 -15
  103. package/out/concepts/Logic__.js.map +1 -1
  104. package/out/concepts/ManagerV2__.d.ts +34 -0
  105. package/out/concepts/ManagerV2__.js +61 -0
  106. package/out/concepts/ManagerV2__.js.map +1 -0
  107. package/out/concepts/MatchCase__.d.ts +2 -2
  108. package/out/concepts/MatchCase__.js +7 -7
  109. package/out/concepts/MatchCase__.js.map +1 -1
  110. package/out/concepts/MemberExpression__.js +1 -0
  111. package/out/concepts/MemberExpression__.js.map +1 -1
  112. package/out/concepts/Module__.d.ts +88 -0
  113. package/out/concepts/Module__.js +85 -0
  114. package/out/concepts/Module__.js.map +1 -1
  115. package/out/concepts/OperatePermissionV2__.d.ts +1 -1
  116. package/out/concepts/OperatePermissionV2__.js.map +1 -1
  117. package/out/concepts/Param__.d.ts +4 -0
  118. package/out/concepts/Param__.js +13 -21
  119. package/out/concepts/Param__.js.map +1 -1
  120. package/out/concepts/ProcessElementV2__.d.ts +6 -1
  121. package/out/concepts/ProcessElementV2__.js +20 -0
  122. package/out/concepts/ProcessElementV2__.js.map +1 -1
  123. package/out/concepts/ProcessElement__.d.ts +7 -0
  124. package/out/concepts/ProcessElement__.js +47 -0
  125. package/out/concepts/ProcessElement__.js.map +1 -1
  126. package/out/concepts/ProcessV2__.d.ts +1 -34
  127. package/out/concepts/ProcessV2__.js +3 -70
  128. package/out/concepts/ProcessV2__.js.map +1 -1
  129. package/out/concepts/QueryFromExpression__.js +2 -2
  130. package/out/concepts/QueryFromExpression__.js.map +1 -1
  131. package/out/concepts/QueryJoinExpression__.js +2 -2
  132. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  133. package/out/concepts/StaticString__.d.ts +0 -4
  134. package/out/concepts/StaticString__.js +0 -11
  135. package/out/concepts/StaticString__.js.map +1 -1
  136. package/out/concepts/StructureProperty__.d.ts +1 -0
  137. package/out/concepts/StructureProperty__.js +14 -5
  138. package/out/concepts/StructureProperty__.js.map +1 -1
  139. package/out/concepts/Structure__.d.ts +4 -0
  140. package/out/concepts/Structure__.js +6 -9
  141. package/out/concepts/Structure__.js.map +1 -1
  142. package/out/concepts/SubLogic__.d.ts +418 -0
  143. package/out/concepts/SubLogic__.js +992 -0
  144. package/out/concepts/SubLogic__.js.map +1 -0
  145. package/out/concepts/Theme__.d.ts +9 -0
  146. package/out/concepts/Theme__.js +10 -0
  147. package/out/concepts/Theme__.js.map +1 -1
  148. package/out/concepts/Transactional__.d.ts +0 -1
  149. package/out/concepts/Transactional__.js +0 -7
  150. package/out/concepts/Transactional__.js.map +1 -1
  151. package/out/concepts/TypeAnnotation__.js +18 -0
  152. package/out/concepts/TypeAnnotation__.js.map +1 -1
  153. package/out/concepts/TypeParam__.d.ts +1 -0
  154. package/out/concepts/TypeParam__.js.map +1 -1
  155. package/out/concepts/ValidationRule__.d.ts +6 -1
  156. package/out/concepts/ValidationRule__.js +6 -1
  157. package/out/concepts/ValidationRule__.js.map +1 -1
  158. package/out/concepts/ViewElement__.d.ts +8 -2
  159. package/out/concepts/ViewElement__.js +213 -32
  160. package/out/concepts/ViewElement__.js.map +1 -1
  161. package/out/concepts/View__.d.ts +10 -2
  162. package/out/concepts/View__.js +129 -17
  163. package/out/concepts/View__.js.map +1 -1
  164. package/out/concepts/basics/stdlib/nasl.processV2.d.ts +2 -0
  165. package/out/concepts/basics/stdlib/nasl.processV2.js +50 -4
  166. package/out/concepts/basics/stdlib/nasl.processV2.js.map +1 -1
  167. package/out/concepts/basics/types/index.d.ts +1 -1
  168. package/out/concepts/basics/types/index.js +2 -1
  169. package/out/concepts/basics/types/index.js.map +1 -1
  170. package/out/concepts/index__.d.ts +9 -0
  171. package/out/concepts/index__.js +9 -0
  172. package/out/concepts/index__.js.map +1 -1
  173. package/out/concepts/utils/asserts.d.ts +409 -0
  174. package/out/concepts/utils/asserts.js +564 -14
  175. package/out/concepts/utils/asserts.js.map +1 -1
  176. package/out/concepts/utils/types.d.ts +33 -2
  177. package/out/generator/genBundleFiles.d.ts +13 -9
  178. package/out/generator/genBundleFiles.js +383 -63
  179. package/out/generator/genBundleFiles.js.map +1 -1
  180. package/out/generator/genMetaData.js +2 -0
  181. package/out/generator/genMetaData.js.map +1 -1
  182. package/out/generator/release-body/body.js +1 -0
  183. package/out/generator/release-body/body.js.map +1 -1
  184. package/out/generator/release-body/utils.d.ts +15 -7
  185. package/out/generator/release-body/utils.js +50 -7
  186. package/out/generator/release-body/utils.js.map +1 -1
  187. package/out/natural/genNaturalTS.js +2 -4
  188. package/out/natural/genNaturalTS.js.map +1 -1
  189. package/out/natural/getContext/index.js +0 -2
  190. package/out/natural/getContext/index.js.map +1 -1
  191. package/out/natural/transformTS2UI.js.map +1 -1
  192. package/out/natural/transformTSCode.d.ts +1 -1
  193. package/out/natural/transformTSCode.js.map +1 -1
  194. package/out/server/extendBaseNode.js +9 -0
  195. package/out/server/extendBaseNode.js.map +1 -1
  196. package/out/server/getLogics.js +10 -6
  197. package/out/server/getLogics.js.map +1 -1
  198. package/out/server/getMemberIdentifier.js +6 -0
  199. package/out/server/getMemberIdentifier.js.map +1 -1
  200. package/out/server/getProcessesV2.d.ts +3 -2
  201. package/out/server/getProcessesV2.js +15 -6
  202. package/out/server/getProcessesV2.js.map +1 -1
  203. package/out/server/naslServer.d.ts +5 -1
  204. package/out/server/naslServer.js +120 -30
  205. package/out/server/naslServer.js.map +1 -1
  206. package/out/server/translator.js +4 -0
  207. package/out/server/translator.js.map +1 -1
  208. package/out/service/storage/init.d.ts +2 -1
  209. package/out/service/storage/init.js +28 -71
  210. package/out/service/storage/init.js.map +1 -1
  211. package/out/templator/genCreateBlock.d.ts +6 -2
  212. package/out/templator/genCreateBlock.js +25 -8
  213. package/out/templator/genCreateBlock.js.map +1 -1
  214. package/out/templator/genCurdEditMultipleKeyBlock.d.ts +22 -0
  215. package/out/templator/genCurdEditMultipleKeyBlock.js +60 -1
  216. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  217. package/out/templator/genCurdMultipleKeyBlock.d.ts +13 -3
  218. package/out/templator/genCurdMultipleKeyBlock.js +29 -23
  219. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  220. package/out/templator/genGetBlock.d.ts +1 -1
  221. package/out/templator/genGetBlock.js +3 -2
  222. package/out/templator/genGetBlock.js.map +1 -1
  223. package/out/templator/genListViewBlock.d.ts +1 -1
  224. package/out/templator/genListViewBlock.js +3 -2
  225. package/out/templator/genListViewBlock.js.map +1 -1
  226. package/out/templator/genSelectBlock.d.ts +1 -1
  227. package/out/templator/genSelectBlock.js +3 -2
  228. package/out/templator/genSelectBlock.js.map +1 -1
  229. package/out/templator/genTableBlock.d.ts +9 -4
  230. package/out/templator/genTableBlock.js +31 -17
  231. package/out/templator/genTableBlock.js.map +1 -1
  232. package/out/templator/genUpdateBlock.d.ts +2 -2
  233. package/out/templator/genUpdateBlock.js +11 -11
  234. package/out/templator/genUpdateBlock.js.map +1 -1
  235. package/out/translator/types.d.ts +0 -4
  236. package/out/translator/utils.d.ts +0 -1
  237. package/out/translator/utils.js +1 -6
  238. package/out/translator/utils.js.map +1 -1
  239. package/out/utils/delay/index.d.ts +0 -0
  240. package/out/utils/delay/index.js +1 -0
  241. package/out/utils/delay/index.js.map +1 -0
  242. package/out/utils/env.d.ts +0 -4
  243. package/out/utils/env.js +3 -6
  244. package/out/utils/env.js.map +1 -1
  245. package/out/utils/index.d.ts +3 -2
  246. package/out/utils/index.js +18 -14
  247. package/out/utils/index.js.map +1 -1
  248. package/out/utils/time-slicing/controller.js.map +1 -1
  249. package/out/utils/types.d.ts +0 -17
  250. package/package.json +27 -20
  251. package/sandbox/stdlib/extension.component.ts +29 -0
  252. package/sandbox/stdlib/nasl.process.ts +17 -0
  253. package/sandbox/stdlib/nasl.processV2.ts +10 -5
  254. package/sandbox/stdlib/nasl.util.ts +3 -1
  255. package/src/automate/engine/utils.js +7 -2
  256. package/src/bak/translator.js +42 -1
  257. package/src/breakpoint/shared/utils.ts +2 -1
  258. package/src/common/BaseNode.ts +117 -5
  259. package/src/concepts/Annotatable__.ts +263 -0
  260. package/src/concepts/AnnotationProperty__.ts +102 -0
  261. package/src/concepts/Annotation__.ts +344 -0
  262. package/src/concepts/App__.ts +917 -26
  263. package/src/concepts/ApplyAnnotation__.ts +198 -0
  264. package/src/concepts/Argument__.ts +145 -1
  265. package/src/concepts/AssigneeV2__.ts +387 -1
  266. package/src/concepts/AuthLogicForCallInterface__.ts +1 -1
  267. package/src/concepts/AuthLogic__.ts +1 -1
  268. package/src/concepts/BooleanLiteral__.ts +9 -1
  269. package/src/concepts/BusinessLogic__.ts +1 -1
  270. package/src/concepts/CallFunction__.ts +1 -1
  271. package/src/concepts/CallLogic__.ts +153 -16
  272. package/src/concepts/ConnectorLogic__.ts +1 -1
  273. package/src/concepts/DatabaseTypeAnnotation__.ts +0 -11
  274. package/src/concepts/DepartmentManagerV2__.ts +70 -0
  275. package/src/concepts/DepartmentV2__.ts +75 -0
  276. package/src/concepts/DirectManagerV2__.ts +65 -0
  277. package/src/concepts/End__.ts +10 -1
  278. package/src/concepts/EntityProperty__.ts +0 -5
  279. package/src/concepts/Entity__.ts +5 -9
  280. package/src/concepts/EnumItem__.ts +16 -65
  281. package/src/concepts/EnumSelectSetter__.ts +6 -0
  282. package/src/concepts/Enum__.ts +1 -6
  283. package/src/concepts/ForEachStatement__.ts +1 -1
  284. package/src/concepts/FrontendLibrary__.ts +88 -80
  285. package/src/concepts/FrontendType__.ts +6 -0
  286. package/src/concepts/Frontend__.ts +26 -3
  287. package/src/concepts/HistoryProcessV2__.ts +5 -0
  288. package/src/concepts/I18nInfo__.ts +0 -5
  289. package/src/concepts/Identifier__.ts +32 -0
  290. package/src/concepts/IfStatement__.ts +2 -2
  291. package/src/concepts/Interface__.ts +1 -6
  292. package/src/concepts/LogicItem__.ts +1 -0
  293. package/src/concepts/Logic__.ts +140 -17
  294. package/src/concepts/ManagerV2__.ts +78 -0
  295. package/src/concepts/MatchCase__.ts +9 -8
  296. package/src/concepts/MemberExpression__.ts +1 -0
  297. package/src/concepts/Module__.ts +194 -0
  298. package/src/concepts/OperatePermissionV2__.ts +1 -1
  299. package/src/concepts/Param__.ts +17 -20
  300. package/src/concepts/ProcessElementV2__.ts +23 -0
  301. package/src/concepts/ProcessElement__.ts +18 -0
  302. package/src/concepts/ProcessV2__.ts +4 -70
  303. package/src/concepts/QueryFromExpression__.ts +2 -2
  304. package/src/concepts/QueryJoinExpression__.ts +2 -2
  305. package/src/concepts/StaticString__.ts +0 -13
  306. package/src/concepts/StructureProperty__.ts +16 -7
  307. package/src/concepts/Structure__.ts +10 -11
  308. package/src/concepts/SubLogic__.ts +1516 -0
  309. package/src/concepts/Theme__.ts +9 -0
  310. package/src/concepts/Transactional__.ts +0 -5
  311. package/src/concepts/TriggerLauncher__.ts +1 -1
  312. package/src/concepts/TypeAnnotation__.ts +17 -0
  313. package/src/concepts/TypeParam__.ts +3 -0
  314. package/src/concepts/ValidationRule__.ts +6 -1
  315. package/src/concepts/ViewElement__.ts +224 -34
  316. package/src/concepts/View__.ts +135 -22
  317. package/src/concepts/basics/stdlib/nasl.processV2.ts +56 -3
  318. package/src/concepts/basics/types/index.ts +1 -1
  319. package/src/concepts/index__.ts +9 -0
  320. package/src/concepts/utils/asserts.ts +595 -0
  321. package/src/concepts/utils/types.ts +53 -0
  322. package/src/generator/genBundleFiles.ts +408 -68
  323. package/src/generator/genMetaData.ts +3 -0
  324. package/src/generator/release-body/body.ts +1 -0
  325. package/src/generator/release-body/utils.ts +159 -55
  326. package/src/natural/genNaturalTS.ts +3 -5
  327. package/src/natural/getContext/index.ts +0 -2
  328. package/src/natural/transformTS2UI.ts +5 -2
  329. package/src/natural/transformTSCode.ts +2 -2
  330. package/src/server/extendBaseNode.ts +11 -2
  331. package/src/server/getLogics.ts +9 -7
  332. package/src/server/getMemberIdentifier.ts +7 -0
  333. package/src/server/getProcessesV2.ts +16 -6
  334. package/src/server/naslServer.ts +133 -30
  335. package/src/server/translator.ts +4 -0
  336. package/src/service/storage/init.ts +52 -97
  337. package/src/templator/genCreateBlock.ts +35 -14
  338. package/src/templator/genCurdEditMultipleKeyBlock.ts +65 -1
  339. package/src/templator/genCurdMultipleKeyBlock.ts +42 -23
  340. package/src/templator/genGetBlock.ts +4 -3
  341. package/src/templator/genListViewBlock.ts +3 -3
  342. package/src/templator/genSelectBlock.ts +4 -2
  343. package/src/templator/genTableBlock.ts +32 -17
  344. package/src/templator/genUpdateBlock.ts +21 -18
  345. package/src/translator/types.ts +0 -4
  346. package/src/translator/utils.ts +0 -6
  347. package/src/utils/delay/index.ts +0 -0
  348. package/src/utils/env.ts +4 -5
  349. package/src/utils/index.ts +16 -4
  350. package/src/utils/time-slicing/controller.ts +1 -0
  351. package/src/utils/types.ts +0 -20
  352. package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +2 -1
  353. package/ts-worker/bundle.js +1 -1
  354. package/ts-worker/src/index.js +1 -0
  355. package/out/utils/language-cache/constant.d.ts +0 -18
  356. package/out/utils/language-cache/constant.js +0 -35
  357. package/out/utils/language-cache/constant.js.map +0 -1
  358. package/out/utils/language-cache/index.d.ts +0 -2
  359. package/out/utils/language-cache/index.js +0 -19
  360. package/out/utils/language-cache/index.js.map +0 -1
  361. package/out/utils/language-cache/nasl.d.ts +0 -10
  362. package/out/utils/language-cache/nasl.js +0 -98
  363. package/out/utils/language-cache/nasl.js.map +0 -1
  364. package/out/utils/language-cache/types.d.ts +0 -44
  365. package/out/utils/language-cache/types.js +0 -4
  366. package/out/utils/language-cache/types.js.map +0 -1
  367. package/src/utils/language-cache/constant.ts +0 -37
  368. package/src/utils/language-cache/index.ts +0 -2
  369. package/src/utils/language-cache/nasl.ts +0 -83
  370. package/src/utils/language-cache/types.ts +0 -48
@@ -0,0 +1,344 @@
1
+ import TypeAnnotation from './TypeAnnotation__';
2
+ import BooleanLiteral from './BooleanLiteral__';
3
+ import NewList from './NewList__';
4
+ import StringLiteral from './StringLiteral__';
5
+ import Argument from './Argument__';
6
+
7
+ //================================================================================
8
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
9
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
10
+ //================================================================================
11
+ import { EventPayload, Params } from '../common/EventEmitter';
12
+ import { concept, excludedInJSON, property, getConceptConstructor } from '../decorators';
13
+
14
+ import * as utils from '../utils';
15
+ import { createUUID } from '../utils/create';
16
+ import * as types from './utils/types';
17
+ import * as asserts from './utils/asserts';
18
+ import BaseNode from '../common/BaseNode';
19
+ import AnnotationProperty from './AnnotationProperty__';
20
+
21
+ /**
22
+ * 注解
23
+ */
24
+ @concept('注解')
25
+ export class Annotation extends BaseNode {
26
+ /** 类名 */
27
+ static readonly ConceptName: string = 'Annotation';
28
+ /**
29
+ * 是否为抽象类
30
+ * 抽象类不能产生 concept: string
31
+ */
32
+ static isAbstract: boolean = false;
33
+ /** 继承链 */
34
+ static readonly inheritanceChain: string[] = ['BaseNode'];
35
+
36
+ /**
37
+ * 产品概念
38
+ */
39
+ @property('concept')
40
+ // @ts-ignore
41
+ readonly concept!: 'Annotation';
42
+ /**
43
+ * 注解标识
44
+ */
45
+ @property()
46
+ name: string;
47
+
48
+ /**
49
+ * 注解描述
50
+ */
51
+ @property()
52
+ description: string;
53
+
54
+ /**
55
+ * 注解属性
56
+ */
57
+ @property({
58
+ objectRef: 'AnnotationProperty',
59
+ isArray: true,
60
+ defaultValue: [],
61
+ })
62
+ properties: Array<AnnotationProperty> = [];
63
+
64
+ /**
65
+ * 可以应用到的概念
66
+ */
67
+ @property({
68
+ isArray: true,
69
+ defaultValue: [],
70
+ })
71
+ applyTo: Array<'Entity' | 'Logic' | 'View' | 'ViewElement'> = [];
72
+
73
+ /**
74
+ * @param source 需要合并的部分参数
75
+ */
76
+ constructor(source?: Partial<Annotation>) {
77
+ source = Object.assign({}, Annotation.getDefaultOptions(), source);
78
+ super(source);
79
+ super.subConstructor(source);
80
+ }
81
+
82
+ static from(source: any, parentNode?: any, parentKey?: string): Annotation {
83
+ return super.from(source, parentNode, parentKey) as Annotation;
84
+ }
85
+
86
+ getAnnotationPropertyExistingNames(excludedList: Array<AnnotationProperty> = []) {
87
+ const excludedSet = new Set(excludedList);
88
+ return ((this.properties as AnnotationProperty[]) || [])
89
+ .filter((item) => !excludedSet.has(item))
90
+ .map((item) => item.name);
91
+ }
92
+ getAnnotationPropertyUniqueName(name = 'annotationProperty1') {
93
+ return utils.unique(name, this.getAnnotationPropertyExistingNames(), undefined, false);
94
+ }
95
+
96
+ /**
97
+ * 插入注解属性
98
+ * @internal
99
+ * @param name 注解属性名称,如果不填会自动生成一个唯一名称
100
+ */
101
+ _insertAnnotationPropertyAt(name: string, index: number): AnnotationProperty;
102
+
103
+ /**
104
+ * 插入注解属性
105
+ * @internal
106
+ * @param annotationPropertyOptions 注解属性参数
107
+ */
108
+ _insertAnnotationPropertyAt(
109
+ annotationPropertyOptions: Partial<AnnotationProperty>,
110
+ index: number,
111
+ ): AnnotationProperty;
112
+
113
+ /**
114
+ * 插入注解属性
115
+ * @internal
116
+ * @param annotationProperty 已有的注解属性实例
117
+ */
118
+ _insertAnnotationPropertyAt(annotationProperty: AnnotationProperty, index: number): AnnotationProperty;
119
+
120
+ _insertAnnotationPropertyAt(options: string | Partial<AnnotationProperty> | AnnotationProperty, index: number) {
121
+ const annotationPropertyOptions: any = {};
122
+ const relationOptions = { parentNode: this, parentKey: 'properties' };
123
+ const AnnotationProperty = getConceptConstructor('AnnotationProperty');
124
+ let annotationProperty: AnnotationProperty;
125
+ if (!options) {
126
+ annotationProperty = AnnotationProperty.from(
127
+ {
128
+ ...annotationPropertyOptions,
129
+ name: this.getAnnotationPropertyUniqueName(),
130
+ },
131
+ this,
132
+ 'properties',
133
+ );
134
+ } else if (typeof options === 'string') {
135
+ annotationProperty = AnnotationProperty.from(
136
+ {
137
+ ...annotationPropertyOptions,
138
+ name: options,
139
+ },
140
+ this,
141
+ 'properties',
142
+ );
143
+ } else if (asserts.isAnnotationProperty(options)) {
144
+ options.ensureDelete(); // 同一实例不支持多处存在
145
+ annotationProperty = options;
146
+ Object.assign(annotationProperty, relationOptions);
147
+ } else {
148
+ annotationProperty = AnnotationProperty.from(
149
+ {
150
+ ...annotationPropertyOptions,
151
+ ...options,
152
+ },
153
+ this,
154
+ 'properties',
155
+ );
156
+ }
157
+ this.properties.splice(index, 0, annotationProperty);
158
+ return annotationProperty;
159
+ }
160
+
161
+ /**
162
+ * 插入注解属性
163
+ * @param name 注解属性名称,如果不填会自动生成一个唯一名称
164
+ */
165
+ insertAnnotationPropertyAt(name: string, index: number): AnnotationProperty;
166
+
167
+ /**
168
+ * 插入注解属性
169
+ * @param annotationPropertyOptions 注解属性参数
170
+ */
171
+ insertAnnotationPropertyAt(annotationPropertyOptions: Partial<AnnotationProperty>, index: number): AnnotationProperty;
172
+
173
+ /**
174
+ * 插入注解属性
175
+ * @param annotationProperty 已有的注解属性实例
176
+ */
177
+ insertAnnotationPropertyAt(annotationProperty: AnnotationProperty, index: number): AnnotationProperty;
178
+
179
+ insertAnnotationPropertyAt(options: string | Partial<AnnotationProperty> | AnnotationProperty, index: number) {
180
+ const node = this._insertAnnotationPropertyAt(options as any, index);
181
+ node.create({
182
+ index,
183
+ parentNode: this,
184
+ parentKey: 'properties',
185
+ });
186
+ return node;
187
+ }
188
+
189
+ /**
190
+ * 添加注解属性
191
+ * @internal
192
+ * @param name 注解属性名称,如果不填会自动生成一个唯一名称
193
+ */
194
+ _addAnnotationProperty(name?: string): AnnotationProperty;
195
+
196
+ /**
197
+ * 添加注解属性
198
+ * @internal
199
+ * @param annotationPropertyOptions 注解属性参数
200
+ */
201
+ _addAnnotationProperty(annotationPropertyOptions: Partial<AnnotationProperty>): AnnotationProperty;
202
+
203
+ /**
204
+ * 添加注解属性
205
+ * @internal
206
+ * @param annotationProperty 已有的注解属性实例
207
+ */
208
+ _addAnnotationProperty(annotationProperty: AnnotationProperty): AnnotationProperty;
209
+
210
+ _addAnnotationProperty(options?: string | Partial<AnnotationProperty> | AnnotationProperty) {
211
+ const index = this.properties.length;
212
+ return this._insertAnnotationPropertyAt(options as any, index);
213
+ }
214
+
215
+ /**
216
+ * 添加注解属性
217
+ * @internal
218
+ * @param name 注解属性名称,如果不填会自动生成一个唯一名称
219
+ */
220
+ addAnnotationProperty(name?: string): AnnotationProperty;
221
+
222
+ /**
223
+ * 添加注解属性
224
+ * @param annotationPropertyOptions 注解属性参数
225
+ */
226
+ addAnnotationProperty(annotationPropertyOptions: Partial<AnnotationProperty>): AnnotationProperty;
227
+
228
+ /**
229
+ * 添加注解属性
230
+ * @param annotationProperty 已有的注解属性实例
231
+ */
232
+ addAnnotationProperty(annotationProperty: AnnotationProperty): AnnotationProperty;
233
+
234
+ addAnnotationProperty(options?: string | Partial<AnnotationProperty> | AnnotationProperty) {
235
+ const node = this._addAnnotationProperty(options as any);
236
+ const index = this.properties.indexOf(node);
237
+ node.create({
238
+ index,
239
+ parentNode: this,
240
+ parentKey: 'properties',
241
+ });
242
+ return node;
243
+ }
244
+
245
+ /**
246
+ * 删除注解属性
247
+ * @param name 注解属性名称
248
+ */
249
+ removeAnnotationProperty(name: string): void;
250
+
251
+ /**
252
+ * 删除注解属性
253
+ * @param annotationProperty 已有的注解属性实例
254
+ */
255
+ removeAnnotationProperty(annotationProperty: AnnotationProperty): void;
256
+
257
+ removeAnnotationProperty(options: string | AnnotationProperty) {
258
+ let annotationProperty: AnnotationProperty;
259
+ if (typeof options === 'string') {
260
+ annotationProperty = (this.properties as AnnotationProperty[]).find((item) => item.name === options);
261
+ if (!annotationProperty) {
262
+ throw new Error('找不到注解属性 ' + options);
263
+ }
264
+ } else {
265
+ annotationProperty = options;
266
+ }
267
+ return annotationProperty.delete();
268
+ }
269
+
270
+ //================================================================================
271
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
272
+ // 自动生成的代码已结束。下面可以手动编写。
273
+ //================================================================================
274
+ transToApplyAnno(annoprop?: any) {
275
+ let anno: any = annoprop || this;
276
+ let annotationName = anno?.group || anno.name;
277
+ let annotationNamespace = anno.annotationNamespace || ''; //todo:在 attrGroups 加上
278
+ let props = anno?.props || anno.properties || [];
279
+ let args = props?.map((p: any) => {
280
+ // 不对 defaultValue 只是初始值第一次就变成vueValue 了
281
+ // 后续变化是vueValue 传给 Argument
282
+ // 先固定写死为字符串类型 回头调试select多选
283
+ // TypeAnnotation => Argument.expression
284
+ function getExp(p: any) {
285
+ let t = TypeAnnotation.from(p.typeAnnotation).toNaturalTS();
286
+ let map: any = {
287
+ Boolean: 'BooleanLiteral',
288
+ String: 'StringLiteral',
289
+ Array: 'todo',
290
+ };
291
+ let v = p.default || p.defaultValue?.expression?.value;
292
+
293
+ let cons;
294
+ if (t === 'Boolean') {
295
+ cons = BooleanLiteral;
296
+ }
297
+ if (t === 'String') {
298
+ cons = StringLiteral;
299
+ }
300
+ if (t.includes('List')) {
301
+ return NewList.from({
302
+ concept: 'NewList',
303
+ items: p.defaultValue?.expression.items,
304
+ });
305
+ }
306
+ if (!cons) {
307
+ console.error('表达式解析错误')
308
+ };
309
+
310
+ // 是不是可以通过创建一个带类型的变量 然后搞个函数传进去 这样就能获取 argument
311
+ return cons
312
+ .from({
313
+ concept: map[t],
314
+ value: v.toString(),
315
+ })
316
+ .toJSON();
317
+ }
318
+ // Argument.from()
319
+ return {
320
+ concept: 'Argument',
321
+ name: p.name,
322
+ expression: getExp(p),
323
+ keyword: p.name,
324
+ };
325
+ });
326
+ return {
327
+ concept: 'ApplyAnnotation',
328
+ annotationNamespace,
329
+ annotationName,
330
+ name: annotationName,
331
+ arguments: args, //[Argument]
332
+ };
333
+ }
334
+ //================================================================================
335
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
336
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
337
+ //================================================================================
338
+ }
339
+
340
+ export default Annotation;
341
+ //================================================================================
342
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
343
+ // 自动生成的代码已结束。下面可以手动编写。
344
+ //================================================================================