@lcap/nasl 1.0.0-alpha.8 → 1.0.1

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 (460) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +414 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/operators.d.ts +13 -0
  5. package/out/automate/engine/operators.js +63 -0
  6. package/out/automate/engine/operators.js.map +1 -0
  7. package/out/automate/engine/uniqueName.d.ts +6 -0
  8. package/out/automate/engine/uniqueName.js +39 -0
  9. package/out/automate/engine/uniqueName.js.map +1 -0
  10. package/out/automate/engine/utils.d.ts +24 -0
  11. package/out/automate/engine/utils.js +363 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +20 -0
  14. package/out/common/BaseNode.js +219 -81
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +18 -1
  17. package/out/concepts/App__.js +84 -44
  18. package/out/concepts/App__.js.map +1 -1
  19. package/out/concepts/Argument__.d.ts +5 -1
  20. package/out/concepts/Argument__.js +21 -3
  21. package/out/concepts/Argument__.js.map +1 -1
  22. package/out/concepts/Assignee__.d.ts +190 -0
  23. package/out/concepts/Assignee__.js +264 -0
  24. package/out/concepts/Assignee__.js.map +1 -0
  25. package/out/concepts/Assignment__.js +5 -0
  26. package/out/concepts/Assignment__.js.map +1 -1
  27. package/out/concepts/BinaryExpression__.js +8 -7
  28. package/out/concepts/BinaryExpression__.js.map +1 -1
  29. package/out/concepts/BindAttribute__.d.ts +19 -0
  30. package/out/concepts/BindAttribute__.js +55 -10
  31. package/out/concepts/BindAttribute__.js.map +1 -1
  32. package/out/concepts/BindDirective__.js +23 -3
  33. package/out/concepts/BindDirective__.js.map +1 -1
  34. package/out/concepts/BindEvent__.d.ts +2 -2
  35. package/out/concepts/BindEvent__.js +67 -34
  36. package/out/concepts/BindEvent__.js.map +1 -1
  37. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  38. package/out/concepts/BooleanLiteral__.js +10 -0
  39. package/out/concepts/BooleanLiteral__.js.map +1 -1
  40. package/out/concepts/CallFunction__.js +57 -23
  41. package/out/concepts/CallFunction__.js.map +1 -1
  42. package/out/concepts/CallInterface__.d.ts +5 -0
  43. package/out/concepts/CallInterface__.js +238 -31
  44. package/out/concepts/CallInterface__.js.map +1 -1
  45. package/out/concepts/CallLogic__.d.ts +4 -4
  46. package/out/concepts/CallLogic__.js +107 -50
  47. package/out/concepts/CallLogic__.js.map +1 -1
  48. package/out/concepts/CallQueryComponent__.d.ts +7 -1
  49. package/out/concepts/CallQueryComponent__.js +45 -26
  50. package/out/concepts/CallQueryComponent__.js.map +1 -1
  51. package/out/concepts/Comment__.js +6 -2
  52. package/out/concepts/Comment__.js.map +1 -1
  53. package/out/concepts/CompletionProperty__.d.ts +3 -1
  54. package/out/concepts/CompletionProperty__.js +2 -0
  55. package/out/concepts/CompletionProperty__.js.map +1 -1
  56. package/out/concepts/ConfigGroup__.js +3 -3
  57. package/out/concepts/ConfigGroup__.js.map +1 -1
  58. package/out/concepts/ConfigProperty__.js +3 -3
  59. package/out/concepts/ConfigProperty__.js.map +1 -1
  60. package/out/concepts/Configuration__.js +3 -3
  61. package/out/concepts/Configuration__.js.map +1 -1
  62. package/out/concepts/Constant__.d.ts +1 -0
  63. package/out/concepts/Constant__.js +14 -0
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +98 -19
  67. package/out/concepts/Destination__.js.map +1 -1
  68. package/out/concepts/End__.js +9 -1
  69. package/out/concepts/End__.js.map +1 -1
  70. package/out/concepts/EntityProperty__.d.ts +11 -0
  71. package/out/concepts/EntityProperty__.js +73 -5
  72. package/out/concepts/EntityProperty__.js.map +1 -1
  73. package/out/concepts/Entity__.d.ts +4 -4
  74. package/out/concepts/Entity__.js +30 -20
  75. package/out/concepts/Entity__.js.map +1 -1
  76. package/out/concepts/Enum__.d.ts +4 -0
  77. package/out/concepts/Enum__.js +18 -10
  78. package/out/concepts/Enum__.js.map +1 -1
  79. package/out/concepts/Event__.js +3 -3
  80. package/out/concepts/Event__.js.map +1 -1
  81. package/out/concepts/ForEachStatement__.d.ts +1 -1
  82. package/out/concepts/ForEachStatement__.js +11 -15
  83. package/out/concepts/ForEachStatement__.js.map +1 -1
  84. package/out/concepts/Function__.js +13 -13
  85. package/out/concepts/Function__.js.map +1 -1
  86. package/out/concepts/Identifier__.d.ts +3 -0
  87. package/out/concepts/Identifier__.js +76 -29
  88. package/out/concepts/Identifier__.js.map +1 -1
  89. package/out/concepts/IfStatement__.js +4 -4
  90. package/out/concepts/IfStatement__.js.map +1 -1
  91. package/out/concepts/InterfaceParam__.d.ts +6 -4
  92. package/out/concepts/InterfaceParam__.js +52 -19
  93. package/out/concepts/InterfaceParam__.js.map +1 -1
  94. package/out/concepts/Interface__.d.ts +42 -30
  95. package/out/concepts/Interface__.js +133 -17
  96. package/out/concepts/Interface__.js.map +1 -1
  97. package/out/concepts/JSBlock__.d.ts +1 -0
  98. package/out/concepts/JSBlock__.js +3 -0
  99. package/out/concepts/JSBlock__.js.map +1 -1
  100. package/out/concepts/LogicItem__.d.ts +2 -1
  101. package/out/concepts/LogicItem__.js +14 -0
  102. package/out/concepts/LogicItem__.js.map +1 -1
  103. package/out/concepts/Logic__.d.ts +20 -1
  104. package/out/concepts/Logic__.js +194 -37
  105. package/out/concepts/Logic__.js.map +1 -1
  106. package/out/concepts/MemberExpression__.d.ts +2 -0
  107. package/out/concepts/MemberExpression__.js +49 -13
  108. package/out/concepts/MemberExpression__.js.map +1 -1
  109. package/out/concepts/Module__.d.ts +126 -120
  110. package/out/concepts/Module__.js +36 -26
  111. package/out/concepts/Module__.js.map +1 -1
  112. package/out/concepts/Namespace__.d.ts +5 -1
  113. package/out/concepts/Namespace__.js +48 -37
  114. package/out/concepts/Namespace__.js.map +1 -1
  115. package/out/concepts/NullLiteral__.d.ts +3 -0
  116. package/out/concepts/NullLiteral__.js +11 -1
  117. package/out/concepts/NullLiteral__.js.map +1 -1
  118. package/out/concepts/NumericLiteral__.d.ts +1 -1
  119. package/out/concepts/NumericLiteral__.js +17 -6
  120. package/out/concepts/NumericLiteral__.js.map +1 -1
  121. package/out/concepts/Param__.d.ts +7 -3
  122. package/out/concepts/Param__.js +57 -28
  123. package/out/concepts/Param__.js.map +1 -1
  124. package/out/concepts/ProcessComponent__.js +6 -6
  125. package/out/concepts/ProcessComponent__.js.map +1 -1
  126. package/out/concepts/ProcessElement__.d.ts +0 -4
  127. package/out/concepts/ProcessElement__.js +117 -54
  128. package/out/concepts/ProcessElement__.js.map +1 -1
  129. package/out/concepts/ProcessOutcome__.js +1 -1
  130. package/out/concepts/ProcessOutcome__.js.map +1 -1
  131. package/out/concepts/Process__.d.ts +7 -1
  132. package/out/concepts/Process__.js +81 -85
  133. package/out/concepts/Process__.js.map +1 -1
  134. package/out/concepts/QueryAggregateExpression__.js +1 -1
  135. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  136. package/out/concepts/QueryFromExpression__.js +2 -2
  137. package/out/concepts/QueryFromExpression__.js.map +1 -1
  138. package/out/concepts/QueryJoinExpression__.js +5 -5
  139. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  140. package/out/concepts/QueryLimitExpression__.js +2 -2
  141. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  142. package/out/concepts/QuerySelectExpression__.js +3 -3
  143. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  144. package/out/concepts/Return__.d.ts +4 -1
  145. package/out/concepts/Return__.js +67 -21
  146. package/out/concepts/Return__.js.map +1 -1
  147. package/out/concepts/Role__.d.ts +4 -0
  148. package/out/concepts/Role__.js +13 -4
  149. package/out/concepts/Role__.js.map +1 -1
  150. package/out/concepts/SqlQueryComponent__.js +2 -2
  151. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  152. package/out/concepts/StringLiteral__.d.ts +1 -1
  153. package/out/concepts/StringLiteral__.js +21 -31
  154. package/out/concepts/StringLiteral__.js.map +1 -1
  155. package/out/concepts/StructureProperty__.d.ts +5 -4
  156. package/out/concepts/StructureProperty__.js +55 -26
  157. package/out/concepts/StructureProperty__.js.map +1 -1
  158. package/out/concepts/Structure__.d.ts +44 -30
  159. package/out/concepts/Structure__.js +44 -12
  160. package/out/concepts/Structure__.js.map +1 -1
  161. package/out/concepts/SwitchCase__.js +4 -4
  162. package/out/concepts/SwitchCase__.js.map +1 -1
  163. package/out/concepts/SwitchStatement__.js +2 -2
  164. package/out/concepts/SwitchStatement__.js.map +1 -1
  165. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  166. package/out/concepts/TypeAnnotation__.js +74 -20
  167. package/out/concepts/TypeAnnotation__.js.map +1 -1
  168. package/out/concepts/UnaryExpression__.js +10 -8
  169. package/out/concepts/UnaryExpression__.js.map +1 -1
  170. package/out/concepts/Unparsed__.js +1 -1
  171. package/out/concepts/Unparsed__.js.map +1 -1
  172. package/out/concepts/ValidationRule__.d.ts +1 -0
  173. package/out/concepts/ValidationRule__.js +48 -13
  174. package/out/concepts/ValidationRule__.js.map +1 -1
  175. package/out/concepts/Variable__.d.ts +10 -1
  176. package/out/concepts/Variable__.js +70 -18
  177. package/out/concepts/Variable__.js.map +1 -1
  178. package/out/concepts/ViewComponent__.js +15 -15
  179. package/out/concepts/ViewComponent__.js.map +1 -1
  180. package/out/concepts/ViewElement__.d.ts +17 -11
  181. package/out/concepts/ViewElement__.js +302 -204
  182. package/out/concepts/ViewElement__.js.map +1 -1
  183. package/out/concepts/View__.d.ts +12 -11
  184. package/out/concepts/View__.js +109 -98
  185. package/out/concepts/View__.js.map +1 -1
  186. package/out/concepts/WhileStatement__.js +3 -3
  187. package/out/concepts/WhileStatement__.js.map +1 -1
  188. package/out/concepts/basics/stdlib/index.js +4 -1
  189. package/out/concepts/basics/stdlib/index.js.map +1 -1
  190. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  191. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  192. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  193. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  194. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  195. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  196. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  197. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  198. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  199. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  200. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  201. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  202. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  203. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  204. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  205. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  206. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  207. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  208. package/out/concepts/basics/types/coreTypeList.js +11 -10
  209. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  210. package/out/concepts/index__.d.ts +1 -0
  211. package/out/concepts/index__.js +1 -0
  212. package/out/concepts/index__.js.map +1 -1
  213. package/out/config.d.ts +1 -2
  214. package/out/config.js +1 -2
  215. package/out/config.js.map +1 -1
  216. package/out/enums/KEYWORDS.d.ts +3 -0
  217. package/out/enums/KEYWORDS.js +1206 -0
  218. package/out/enums/KEYWORDS.js.map +1 -0
  219. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  220. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  221. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  222. package/out/eventBus.d.ts +3 -0
  223. package/out/eventBus.js +7 -0
  224. package/out/eventBus.js.map +1 -0
  225. package/out/generator/genBundleFiles.d.ts +7 -2
  226. package/out/generator/genBundleFiles.js +168 -27
  227. package/out/generator/genBundleFiles.js.map +1 -1
  228. package/out/generator/genMetaData.d.ts +20 -20
  229. package/out/generator/genMetaData.js +50 -15
  230. package/out/generator/genMetaData.js.map +1 -1
  231. package/out/index.d.ts +2 -0
  232. package/out/index.js +2 -0
  233. package/out/index.js.map +1 -1
  234. package/out/manager/diagnostic.d.ts +1 -1
  235. package/out/server/createUiTs.d.ts +1 -0
  236. package/out/server/createUiTs.js +49 -5
  237. package/out/server/createUiTs.js.map +1 -1
  238. package/out/server/entity2LogicNamespace.js +38 -23
  239. package/out/server/entity2LogicNamespace.js.map +1 -1
  240. package/out/server/getExtensionModules.js +2 -0
  241. package/out/server/getExtensionModules.js.map +1 -1
  242. package/out/server/getFunctions.d.ts +1 -0
  243. package/out/server/getFunctions.js +7 -1
  244. package/out/server/getFunctions.js.map +1 -1
  245. package/out/server/getLogics.js +63 -18
  246. package/out/server/getLogics.js.map +1 -1
  247. package/out/server/getMemberIdentifier.d.ts +16 -1
  248. package/out/server/getMemberIdentifier.js +279 -36
  249. package/out/server/getMemberIdentifier.js.map +1 -1
  250. package/out/server/getProcesses.d.ts +6 -1
  251. package/out/server/getProcesses.js +243 -1
  252. package/out/server/getProcesses.js.map +1 -1
  253. package/out/server/getScope.d.ts +12 -0
  254. package/out/server/getScope.js +57 -0
  255. package/out/server/getScope.js.map +1 -0
  256. package/out/server/index.js +4 -0
  257. package/out/server/index.js.map +1 -1
  258. package/out/server/naslServer.d.ts +30 -53
  259. package/out/server/naslServer.js +721 -381
  260. package/out/server/naslServer.js.map +1 -1
  261. package/out/server/process2LogicNamespace.d.ts +10 -0
  262. package/out/server/process2LogicNamespace.js +29 -1
  263. package/out/server/process2LogicNamespace.js.map +1 -1
  264. package/out/server/translator.d.ts +22 -3
  265. package/out/server/translator.js +367 -123
  266. package/out/server/translator.js.map +1 -1
  267. package/out/service/creator/add.configs.d.ts +1 -0
  268. package/out/service/creator/add.configs.js +68 -0
  269. package/out/service/creator/add.configs.js.map +1 -0
  270. package/out/service/creator/errHandles.d.ts +18 -0
  271. package/out/service/creator/errHandles.js +60 -0
  272. package/out/service/creator/errHandles.js.map +1 -0
  273. package/out/service/creator/index.d.ts +1 -0
  274. package/out/service/creator/index.js +72 -0
  275. package/out/service/creator/index.js.map +1 -0
  276. package/out/service/storage/api.d.ts +18 -0
  277. package/out/service/storage/api.js +17 -0
  278. package/out/service/storage/api.js.map +1 -0
  279. package/out/service/storage/init.js +213 -37
  280. package/out/service/storage/init.js.map +1 -1
  281. package/out/service/storage/service.d.ts +2 -0
  282. package/out/service/storage/service.js +10 -0
  283. package/out/service/storage/service.js.map +1 -0
  284. package/out/service/storage/storagePoint.d.ts +1 -14
  285. package/out/service/storage/storagePoint.js +16 -16
  286. package/out/service/storage/storagePoint.js.map +1 -1
  287. package/out/templator/genCreateBlock.js +6 -6
  288. package/out/templator/genCreateBlock.js.map +1 -1
  289. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  290. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  291. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  292. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  293. package/out/templator/genEditTableBlock.js +5 -5
  294. package/out/templator/genEditTableBlock.js.map +1 -1
  295. package/out/templator/genEnumSelectBlock.js +2 -2
  296. package/out/templator/genEnumSelectBlock.js.map +1 -1
  297. package/out/templator/genGetBlock.js +5 -3
  298. package/out/templator/genGetBlock.js.map +1 -1
  299. package/out/templator/genGridViewBlock.d.ts +3 -1
  300. package/out/templator/genGridViewBlock.js +61 -6
  301. package/out/templator/genGridViewBlock.js.map +1 -1
  302. package/out/templator/genQueryComponent.d.ts +2 -0
  303. package/out/templator/genQueryComponent.js +27 -14
  304. package/out/templator/genQueryComponent.js.map +1 -1
  305. package/out/templator/genTableBlock.d.ts +1 -1
  306. package/out/templator/genTableBlock.js +4 -5
  307. package/out/templator/genTableBlock.js.map +1 -1
  308. package/out/templator/genUpdateBlock.js +9 -10
  309. package/out/templator/genUpdateBlock.js.map +1 -1
  310. package/out/templator/utils.d.ts +13 -4
  311. package/out/templator/utils.js +8 -4
  312. package/out/templator/utils.js.map +1 -1
  313. package/out/test/fixtures/env.js +0 -1
  314. package/out/test/fixtures/env.js.map +1 -1
  315. package/out/test/integration/connect-file copy.d.ts +1 -0
  316. package/out/test/integration/connect-file copy.js +50 -0
  317. package/out/test/integration/connect-file copy.js.map +1 -0
  318. package/out/test/integration/node-nasl-server.d.ts +1 -0
  319. package/out/test/integration/node-nasl-server.js +41 -0
  320. package/out/test/integration/node-nasl-server.js.map +1 -0
  321. package/out/test/units/page/Element.spec.js +3 -3
  322. package/out/test/units/page/Element.spec.js.map +1 -1
  323. package/out/test/units/temp/temp.spec.js +1 -1
  324. package/out/test/units/temp/temp.spec.js.map +1 -1
  325. package/out/utils/index.d.ts +6 -0
  326. package/out/utils/index.js +25 -1
  327. package/out/utils/index.js.map +1 -1
  328. package/out/utils/string.d.ts +1 -1
  329. package/out/utils/string.js +38 -9
  330. package/out/utils/string.js.map +1 -1
  331. package/package.json +2 -1
  332. package/src/automate/engine/index.js +97 -118
  333. package/src/automate/engine/operators.js +63 -0
  334. package/src/automate/engine/uniqueName.js +36 -0
  335. package/src/automate/engine/utils.js +49 -19
  336. package/src/common/BaseNode.ts +223 -87
  337. package/src/concepts/App__.ts +86 -46
  338. package/src/concepts/Argument__.ts +23 -3
  339. package/src/concepts/Assignee__.ts +437 -0
  340. package/src/concepts/Assignment__.ts +4 -1
  341. package/src/concepts/BinaryExpression__.ts +9 -7
  342. package/src/concepts/BindAttribute__.ts +69 -9
  343. package/src/concepts/BindDirective__.ts +22 -3
  344. package/src/concepts/BindEvent__.ts +67 -23
  345. package/src/concepts/BooleanLiteral__.ts +8 -0
  346. package/src/concepts/CallFunction__.ts +58 -25
  347. package/src/concepts/CallInterface__.ts +236 -26
  348. package/src/concepts/CallLogic__.ts +111 -52
  349. package/src/concepts/CallQueryComponent__.ts +36 -21
  350. package/src/concepts/Comment__.ts +6 -2
  351. package/src/concepts/CompletionProperty__.ts +5 -1
  352. package/src/concepts/ConfigGroup__.ts +3 -3
  353. package/src/concepts/ConfigProperty__.ts +3 -3
  354. package/src/concepts/Configuration__.ts +3 -3
  355. package/src/concepts/Constant__.ts +12 -0
  356. package/src/concepts/Destination__.ts +106 -18
  357. package/src/concepts/End__.ts +8 -1
  358. package/src/concepts/EntityProperty__.ts +69 -5
  359. package/src/concepts/Entity__.ts +33 -28
  360. package/src/concepts/Enum__.ts +16 -11
  361. package/src/concepts/Event__.ts +3 -3
  362. package/src/concepts/ForEachStatement__.ts +16 -21
  363. package/src/concepts/Function__.ts +13 -13
  364. package/src/concepts/Identifier__.ts +82 -32
  365. package/src/concepts/IfStatement__.ts +4 -4
  366. package/src/concepts/InterfaceParam__.ts +49 -27
  367. package/src/concepts/Interface__.ts +130 -16
  368. package/src/concepts/JSBlock__.ts +4 -0
  369. package/src/concepts/LogicItem__.ts +16 -1
  370. package/src/concepts/Logic__.ts +201 -39
  371. package/src/concepts/MemberExpression__.ts +58 -15
  372. package/src/concepts/Module__.ts +35 -24
  373. package/src/concepts/Namespace__.ts +49 -37
  374. package/src/concepts/NullLiteral__.ts +8 -1
  375. package/src/concepts/NumericLiteral__.ts +17 -6
  376. package/src/concepts/Param__.ts +54 -28
  377. package/src/concepts/ProcessComponent__.ts +6 -6
  378. package/src/concepts/ProcessElement__.ts +143 -44
  379. package/src/concepts/ProcessOutcome__.ts +1 -1
  380. package/src/concepts/Process__.ts +85 -98
  381. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  382. package/src/concepts/QueryFromExpression__.ts +2 -2
  383. package/src/concepts/QueryJoinExpression__.ts +5 -5
  384. package/src/concepts/QueryLimitExpression__.ts +2 -2
  385. package/src/concepts/QuerySelectExpression__.ts +3 -3
  386. package/src/concepts/Return__.ts +60 -29
  387. package/src/concepts/Role__.ts +11 -4
  388. package/src/concepts/SqlQueryComponent__.ts +2 -2
  389. package/src/concepts/StringLiteral__.ts +20 -31
  390. package/src/concepts/StructureProperty__.ts +50 -33
  391. package/src/concepts/Structure__.ts +32 -10
  392. package/src/concepts/SwitchCase__.ts +4 -4
  393. package/src/concepts/SwitchStatement__.ts +2 -2
  394. package/src/concepts/TypeAnnotation__.ts +59 -16
  395. package/src/concepts/UnaryExpression__.ts +10 -8
  396. package/src/concepts/Unparsed__.ts +1 -1
  397. package/src/concepts/ValidationRule__.ts +44 -14
  398. package/src/concepts/Variable__.ts +67 -25
  399. package/src/concepts/ViewComponent__.ts +15 -15
  400. package/src/concepts/ViewElement__.ts +380 -264
  401. package/src/concepts/View__.ts +139 -94
  402. package/src/concepts/WhileStatement__.ts +4 -4
  403. package/src/concepts/basics/stdlib/index.ts +4 -2
  404. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  405. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  406. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  407. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  408. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  409. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  410. package/src/concepts/basics/types/coreTypeList.ts +11 -10
  411. package/src/concepts/index__.ts +1 -0
  412. package/src/config.ts +1 -2
  413. package/src/enums/KEYWORDS.ts +1204 -0
  414. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  415. package/src/eventBus.ts +5 -0
  416. package/src/generator/genBundleFiles.ts +182 -30
  417. package/src/generator/genMetaData.ts +72 -21
  418. package/src/index.ts +2 -0
  419. package/src/manager/diagnostic.ts +1 -1
  420. package/src/server/createUiTs.ts +50 -8
  421. package/src/server/entity2LogicNamespace.ts +41 -25
  422. package/src/server/getExtensionModules.ts +2 -0
  423. package/src/server/getFunctions.ts +6 -0
  424. package/src/server/getLogics.ts +66 -19
  425. package/src/server/getMemberIdentifier.ts +275 -46
  426. package/src/server/getProcesses.ts +248 -4
  427. package/src/server/getScope.ts +62 -0
  428. package/src/server/index.ts +12 -1
  429. package/src/server/naslServer.ts +715 -398
  430. package/src/server/process2LogicNamespace.ts +30 -2
  431. package/src/server/translator.ts +423 -128
  432. package/src/service/config/index.js +1 -1
  433. package/src/service/creator/errHandles.js +5 -2
  434. package/src/service/creator/index.js +0 -6
  435. package/src/service/storage/api.js +14 -0
  436. package/src/service/storage/init.ts +217 -47
  437. package/src/service/storage/service.ts +6 -0
  438. package/src/service/storage/storagePoint.ts +16 -16
  439. package/src/templator/genCreateBlock.ts +6 -6
  440. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  441. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  442. package/src/templator/genEditTableBlock.ts +5 -5
  443. package/src/templator/genEnumSelectBlock.ts +2 -2
  444. package/src/templator/genGetBlock.ts +6 -8
  445. package/src/templator/genGridViewBlock.ts +59 -9
  446. package/src/templator/genQueryComponent.ts +39 -28
  447. package/src/templator/genTableBlock.ts +5 -9
  448. package/src/templator/genUpdateBlock.ts +9 -11
  449. package/src/templator/utils.ts +9 -6
  450. package/src/test/fixtures/env.ts +0 -2
  451. package/src/test/units/page/Element.spec.ts +3 -3
  452. package/src/test/units/temp/temp.spec.ts +1 -1
  453. package/src/utils/index.ts +24 -0
  454. package/src/utils/string.ts +39 -9
  455. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  456. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  457. package/out/data/Module.d.ts +0 -34
  458. package/out/data/Module.js +0 -53
  459. package/out/data/Module.js.map +0 -1
  460. package/src/automate/engine/index.d.ts +0 -3
@@ -0,0 +1,437 @@
1
+ //================================================================================
2
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
3
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
4
+ //================================================================================
5
+ import { EventPayload, Params } from '../common/EventEmitter';
6
+ import { concept, excludedInJSON, property } from '../decorators';
7
+
8
+ import * as utils from '../utils';
9
+ import { v4 as uuidv4 } from 'uuid';
10
+ import BaseNode from '../common/BaseNode';
11
+ import classMap from '../common/classMap';
12
+ import LogicItem from './LogicItem__';
13
+
14
+ /**
15
+ * 经办人
16
+ */
17
+ @concept('经办人')
18
+ export class Assignee extends LogicItem {
19
+ /**
20
+ * 产品概念
21
+ */
22
+ @property()
23
+ concept: 'Assignee' = 'Assignee';
24
+
25
+ /**
26
+ * 绑定用户
27
+ */
28
+ @property()
29
+ users: Array<string> = [];
30
+
31
+ /**
32
+ * 动态用户
33
+ */
34
+ @property('LogicItem')
35
+ dynamicUsers: Array<LogicItem> = [];
36
+
37
+ /**
38
+ * 绑定角色
39
+ */
40
+ @property()
41
+ roles: Array<string> = [];
42
+
43
+ /**
44
+ * 动态角色
45
+ */
46
+ @property('LogicItem')
47
+ dynamicRoles: Array<LogicItem> = [];
48
+
49
+
50
+
51
+ /**
52
+ * @param source 需要合并的部分参数
53
+ */
54
+ constructor(source?: Partial<Assignee>) {
55
+ source = Object.assign({}, Assignee.getDefaultOptions(), source);
56
+ super(source);
57
+ super.subConstructor(source);
58
+ }
59
+
60
+ static from(source: any, parentNode?: any, parentKey?: string): Assignee {
61
+ return super.from(source, parentNode, parentKey) as Assignee;
62
+ }
63
+
64
+
65
+
66
+
67
+
68
+
69
+ getLogicItemExistingNames(excludedList: Array<LogicItem> = []) {
70
+ const excludedSet = new Set(excludedList);
71
+ return (this.dynamicUsers || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
72
+ }
73
+ getLogicItemUniqueName(name = 'logicItem1') {
74
+ return utils.unique(name, this.getLogicItemExistingNames(), undefined, false);
75
+ }
76
+
77
+ /**
78
+ * 插入逻辑项
79
+ * @internal
80
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
81
+ */
82
+ _insertLogicItemInDynamicUsersAt(name: string, index: number): LogicItem;
83
+
84
+ /**
85
+ * 插入逻辑项
86
+ * @internal
87
+ * @param logicItemOptions 逻辑项参数
88
+ */
89
+ _insertLogicItemInDynamicUsersAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
90
+
91
+ /**
92
+ * 插入逻辑项
93
+ * @internal
94
+ * @param logicItem 已有的逻辑项实例
95
+ */
96
+ _insertLogicItemInDynamicUsersAt(logicItem: LogicItem, index: number): LogicItem;
97
+
98
+ _insertLogicItemInDynamicUsersAt(options: string | Partial<LogicItem> | LogicItem, index: number) {
99
+ const logicItemOptions: any = {};
100
+ const relationOptions = { parentNode: this, parentKey: 'dynamicUsers' };
101
+ let logicItem: LogicItem;
102
+ if (!options) {
103
+ logicItem = LogicItem.from({
104
+ ...logicItemOptions,
105
+ name: this.getLogicItemUniqueName(),
106
+ }, this, 'dynamicUsers');
107
+ } else if (typeof options === 'string') {
108
+ logicItem = LogicItem.from({
109
+ ...logicItemOptions,
110
+ name: options,
111
+ }, this, 'dynamicUsers');
112
+ } else if (options instanceof LogicItem) {
113
+ options.ensureDelete(); // 同一实例不支持多处存在
114
+ logicItem = options;
115
+ Object.assign(logicItem, relationOptions);
116
+ } else {
117
+ logicItem = LogicItem.from({
118
+ ...logicItemOptions,
119
+ ...options,
120
+ }, this, 'dynamicUsers');
121
+ }
122
+ this.dynamicUsers.splice(index, 0, logicItem);
123
+ return logicItem;
124
+ }
125
+
126
+ /**
127
+ * 插入逻辑项
128
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
129
+ */
130
+ insertLogicItemInDynamicUsersAt(name: string, index: number): LogicItem;
131
+
132
+ /**
133
+ * 插入逻辑项
134
+ * @param logicItemOptions 逻辑项参数
135
+ */
136
+ insertLogicItemInDynamicUsersAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
137
+
138
+ /**
139
+ * 插入逻辑项
140
+ * @param logicItem 已有的逻辑项实例
141
+ */
142
+ insertLogicItemInDynamicUsersAt(logicItem: LogicItem, index: number): LogicItem;
143
+
144
+ insertLogicItemInDynamicUsersAt(options: string | Partial<LogicItem> | LogicItem, index: number) {
145
+ const node = this._insertLogicItemInDynamicUsersAt(options as any, index);
146
+ node.create({
147
+ index,
148
+ parentNode: this,
149
+ parentKey: 'dynamicUsers',
150
+ });
151
+ return node;
152
+ }
153
+
154
+ /**
155
+ * 添加逻辑项
156
+ * @internal
157
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
158
+ */
159
+ _addLogicItemInDynamicUsers(name?: string): LogicItem;
160
+
161
+ /**
162
+ * 添加逻辑项
163
+ * @internal
164
+ * @param logicItemOptions 逻辑项参数
165
+ */
166
+ _addLogicItemInDynamicUsers(logicItemOptions: Partial<LogicItem>): LogicItem;
167
+
168
+ /**
169
+ * 添加逻辑项
170
+ * @internal
171
+ * @param logicItem 已有的逻辑项实例
172
+ */
173
+ _addLogicItemInDynamicUsers(logicItem: LogicItem): LogicItem;
174
+
175
+ _addLogicItemInDynamicUsers(options?: string | Partial<LogicItem> | LogicItem) {
176
+ const index = this.dynamicUsers.length;
177
+ return this._insertLogicItemInDynamicUsersAt(options as any, index);
178
+ }
179
+
180
+ /**
181
+ * 添加逻辑项
182
+ * @internal
183
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
184
+ */
185
+ addLogicItemInDynamicUsers(name?: string): LogicItem;
186
+
187
+ /**
188
+ * 添加逻辑项
189
+ * @param logicItemOptions 逻辑项参数
190
+ */
191
+ addLogicItemInDynamicUsers(logicItemOptions: Partial<LogicItem>): LogicItem;
192
+
193
+ /**
194
+ * 添加逻辑项
195
+ * @param logicItem 已有的逻辑项实例
196
+ */
197
+ addLogicItemInDynamicUsers(logicItem: LogicItem): LogicItem;
198
+
199
+ addLogicItemInDynamicUsers(options?: string | Partial<LogicItem> | LogicItem) {
200
+ const node = this._addLogicItemInDynamicUsers(options as any);
201
+ const index = this.dynamicUsers.indexOf(node);
202
+ node.create({
203
+ index,
204
+ parentNode: this,
205
+ parentKey: 'dynamicUsers',
206
+ });
207
+ return node;
208
+ }
209
+
210
+ /**
211
+ * 插入逻辑项
212
+ * @internal
213
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
214
+ */
215
+ _insertLogicItemInDynamicRolesAt(name: string, index: number): LogicItem;
216
+
217
+ /**
218
+ * 插入逻辑项
219
+ * @internal
220
+ * @param logicItemOptions 逻辑项参数
221
+ */
222
+ _insertLogicItemInDynamicRolesAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
223
+
224
+ /**
225
+ * 插入逻辑项
226
+ * @internal
227
+ * @param logicItem 已有的逻辑项实例
228
+ */
229
+ _insertLogicItemInDynamicRolesAt(logicItem: LogicItem, index: number): LogicItem;
230
+
231
+ _insertLogicItemInDynamicRolesAt(options: string | Partial<LogicItem> | LogicItem, index: number) {
232
+ const logicItemOptions: any = {};
233
+ const relationOptions = { parentNode: this, parentKey: 'dynamicRoles' };
234
+ let logicItem: LogicItem;
235
+ if (!options) {
236
+ logicItem = LogicItem.from({
237
+ ...logicItemOptions,
238
+ name: this.getLogicItemUniqueName(),
239
+ }, this, 'dynamicRoles');
240
+ } else if (typeof options === 'string') {
241
+ logicItem = LogicItem.from({
242
+ ...logicItemOptions,
243
+ name: options,
244
+ }, this, 'dynamicRoles');
245
+ } else if (options instanceof LogicItem) {
246
+ options.ensureDelete(); // 同一实例不支持多处存在
247
+ logicItem = options;
248
+ Object.assign(logicItem, relationOptions);
249
+ } else {
250
+ logicItem = LogicItem.from({
251
+ ...logicItemOptions,
252
+ ...options,
253
+ }, this, 'dynamicRoles');
254
+ }
255
+ this.dynamicRoles.splice(index, 0, logicItem);
256
+ return logicItem;
257
+ }
258
+
259
+ /**
260
+ * 插入逻辑项
261
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
262
+ */
263
+ insertLogicItemInDynamicRolesAt(name: string, index: number): LogicItem;
264
+
265
+ /**
266
+ * 插入逻辑项
267
+ * @param logicItemOptions 逻辑项参数
268
+ */
269
+ insertLogicItemInDynamicRolesAt(logicItemOptions: Partial<LogicItem>, index: number): LogicItem;
270
+
271
+ /**
272
+ * 插入逻辑项
273
+ * @param logicItem 已有的逻辑项实例
274
+ */
275
+ insertLogicItemInDynamicRolesAt(logicItem: LogicItem, index: number): LogicItem;
276
+
277
+ insertLogicItemInDynamicRolesAt(options: string | Partial<LogicItem> | LogicItem, index: number) {
278
+ const node = this._insertLogicItemInDynamicRolesAt(options as any, index);
279
+ node.create({
280
+ index,
281
+ parentNode: this,
282
+ parentKey: 'dynamicRoles',
283
+ });
284
+ return node;
285
+ }
286
+
287
+ /**
288
+ * 添加逻辑项
289
+ * @internal
290
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
291
+ */
292
+ _addLogicItemInDynamicRoles(name?: string): LogicItem;
293
+
294
+ /**
295
+ * 添加逻辑项
296
+ * @internal
297
+ * @param logicItemOptions 逻辑项参数
298
+ */
299
+ _addLogicItemInDynamicRoles(logicItemOptions: Partial<LogicItem>): LogicItem;
300
+
301
+ /**
302
+ * 添加逻辑项
303
+ * @internal
304
+ * @param logicItem 已有的逻辑项实例
305
+ */
306
+ _addLogicItemInDynamicRoles(logicItem: LogicItem): LogicItem;
307
+
308
+ _addLogicItemInDynamicRoles(options?: string | Partial<LogicItem> | LogicItem) {
309
+ const index = this.dynamicRoles.length;
310
+ return this._insertLogicItemInDynamicRolesAt(options as any, index);
311
+ }
312
+
313
+ /**
314
+ * 添加逻辑项
315
+ * @internal
316
+ * @param name 逻辑项名称,如果不填会自动生成一个唯一名称
317
+ */
318
+ addLogicItemInDynamicRoles(name?: string): LogicItem;
319
+
320
+ /**
321
+ * 添加逻辑项
322
+ * @param logicItemOptions 逻辑项参数
323
+ */
324
+ addLogicItemInDynamicRoles(logicItemOptions: Partial<LogicItem>): LogicItem;
325
+
326
+ /**
327
+ * 添加逻辑项
328
+ * @param logicItem 已有的逻辑项实例
329
+ */
330
+ addLogicItemInDynamicRoles(logicItem: LogicItem): LogicItem;
331
+
332
+ addLogicItemInDynamicRoles(options?: string | Partial<LogicItem> | LogicItem) {
333
+ const node = this._addLogicItemInDynamicRoles(options as any);
334
+ const index = this.dynamicRoles.indexOf(node);
335
+ node.create({
336
+ index,
337
+ parentNode: this,
338
+ parentKey: 'dynamicRoles',
339
+ });
340
+ return node;
341
+ }
342
+
343
+
344
+
345
+
346
+ /**
347
+ * 删除逻辑项
348
+ * @param name 逻辑项名称
349
+ */
350
+ removeLogicItemInDynamicUsers(name: string): void;
351
+
352
+ /**
353
+ * 删除逻辑项
354
+ * @param logicItem 已有的逻辑项实例
355
+ */
356
+ removeLogicItemInDynamicUsers(logicItem: LogicItem): void;
357
+
358
+ removeLogicItemInDynamicUsers(options: string | LogicItem) {
359
+ let logicItem: LogicItem;
360
+ if (typeof options === 'string') {
361
+ logicItem = this.dynamicUsers.find((item) => item.name === options);
362
+ if (!logicItem) {
363
+ throw new Error('找不到逻辑项 ' + options);
364
+ }
365
+ } else {
366
+ logicItem = options;
367
+ }
368
+ return logicItem.delete();
369
+ }
370
+
371
+
372
+
373
+ /**
374
+ * 删除逻辑项
375
+ * @param name 逻辑项名称
376
+ */
377
+ removeLogicItemInDynamicRoles(name: string): void;
378
+
379
+ /**
380
+ * 删除逻辑项
381
+ * @param logicItem 已有的逻辑项实例
382
+ */
383
+ removeLogicItemInDynamicRoles(logicItem: LogicItem): void;
384
+
385
+ removeLogicItemInDynamicRoles(options: string | LogicItem) {
386
+ let logicItem: LogicItem;
387
+ if (typeof options === 'string') {
388
+ logicItem = this.dynamicRoles.find((item) => item.name === options);
389
+ if (!logicItem) {
390
+ throw new Error('找不到逻辑项 ' + options);
391
+ }
392
+ } else {
393
+ logicItem = options;
394
+ }
395
+ return logicItem.delete();
396
+ }
397
+
398
+ __removeLogicItem(logicItem: LogicItem) {
399
+ const parentKey = logicItem.parentKey;
400
+ const params: Params = {
401
+ parentNode: this,
402
+ parentKey,
403
+ index: -1,
404
+ object: null,
405
+ oldObject: logicItem,
406
+ };
407
+ if (parentKey) {
408
+ params.parentKey = parentKey;
409
+ if (Array.isArray((this as any)[parentKey])) {
410
+ const index = (this as any)[parentKey].indexOf(logicItem);
411
+ ~index && (this as any)[parentKey].splice(index, 1);
412
+ params.index = index;
413
+ } else if ((this as any)[parentKey] === logicItem) {
414
+ params.index = 0;
415
+ (this as any)[parentKey] = undefined;
416
+ }
417
+ }
418
+ return params;
419
+ }
420
+
421
+ //================================================================================
422
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
423
+ // 自动生成的代码已结束。下面可以手动编写。
424
+ //================================================================================
425
+
426
+ //================================================================================
427
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
428
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
429
+ //================================================================================
430
+ }
431
+
432
+ classMap['Assignee'] = Assignee;
433
+ export default Assignee;
434
+ //================================================================================
435
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
436
+ // 自动生成的代码已结束。下面可以手动编写。
437
+ //================================================================================
@@ -216,7 +216,10 @@ export class Assignment extends LogicItem {
216
216
 
217
217
  code += this.left ? this.left.toEmbeddedTS(shiftState(state, code, { inline: true })) : '__LEFT__';
218
218
  code += ' = ';
219
-
219
+ // 因为右侧枚举要赋值就得new 一下;
220
+ if (this.right && this.right instanceof Identifier && this.right.namespace && this.right.namespace.endsWith('enums')) {
221
+ code += 'new ';
222
+ }
220
223
  code += (this.right && this.right.toEmbeddedTS) ? this.right.toEmbeddedTS(shiftState(state, code, { inline: true })) : '__RIGHT__';
221
224
  code += ';';
222
225
  return code;
@@ -188,9 +188,9 @@ export class BinaryExpression extends LogicItem {
188
188
  return code;
189
189
  }
190
190
  let code = '';
191
- code += this.left?.toVue ? this.left.toVue() : '';
191
+ code += '(' + (this.left?.toVue(options) || '') + ')';
192
192
  code += ` ${this.operator} `;
193
- code += this.right?.toVue ? this.right.toVue() : '';
193
+ code += '(' + (this.right?.toVue(options) || '') + ')';
194
194
  return code;
195
195
  }
196
196
 
@@ -206,12 +206,13 @@ export class BinaryExpression extends LogicItem {
206
206
  code += '.' + fnName + '(';
207
207
  code += this.right?.toUI ? this.right.toUI(shiftState(state, code, { inline: true })) : '';
208
208
  code += ')';
209
+
209
210
  return code;
210
211
  }
211
212
  let code = '';
212
- code += this.left?.toUI ? this.left.toUI(shiftState(state, code, { inline: true })) : '';
213
+ code += '(' + (this.left?.toUI(shiftState(state, code, { inline: true })) || '') + ')';
213
214
  code += ` ${this.operator} `;
214
- code += this.right?.toUI ? this.right.toUI(shiftState(state, code, { inline: true })) : '';
215
+ code += '(' + (this.right?.toUI(shiftState(state, code, { inline: true })) || '') + ')';
215
216
  return code;
216
217
  }
217
218
 
@@ -230,9 +231,9 @@ export class BinaryExpression extends LogicItem {
230
231
  return code;
231
232
  }
232
233
  let code = '';
233
- code += this.left?.toJS ? this.left.toJS(shiftState(state, code, { inline: true })) : '';
234
+ code += '(' + (this.left?.toJS(shiftState(state, code, { inline: true })) || '') + ')';
234
235
  code += ` ${this.operator} `;
235
- code += this.right?.toJS ? this.right.toJS(shiftState(state, code, { inline: true })) : '';
236
+ code += '(' + (this.right?.toJS(shiftState(state, code, { inline: true })) || '') + ')';
236
237
  return code;
237
238
  }
238
239
 
@@ -248,7 +249,7 @@ export class BinaryExpression extends LogicItem {
248
249
  code += ')';
249
250
  return code;
250
251
  }
251
- if (['&&', '||', '+', '-', '*', '/'].includes(this.operator)) {
252
+ if (['&&', '||', '+', '-', '*', '/', '%'].includes(this.operator)) {
252
253
  const operatorMap = {
253
254
  '&&': 'and',
254
255
  '||': 'or',
@@ -256,6 +257,7 @@ export class BinaryExpression extends LogicItem {
256
257
  '-': 'minus',
257
258
  '*': 'multiply',
258
259
  '/': 'divide',
260
+ '%': 'remainder',
259
261
  };
260
262
  let code = '';
261
263
  code += `nasl.core.${operatorMap[this.operator as keyof typeof operatorMap]}(`;
@@ -15,6 +15,7 @@ import classMap from '../common/classMap';
15
15
  import LogicItem from './LogicItem__';
16
16
  import Destination from './Destination__';
17
17
  import ValidationRule from './ValidationRule__';
18
+ import Assignee from './Assignee__';
18
19
  import ViewElement from './ViewElement__';
19
20
  import ProcessElement from './ProcessElement__';
20
21
  import View from './View__';
@@ -69,6 +70,12 @@ export class BindAttribute extends BaseNode {
69
70
  @property('ValidationRule')
70
71
  rules: Array<ValidationRule> = [];
71
72
 
73
+ /**
74
+ * 经办人
75
+ */
76
+ @property('Assignee')
77
+ assignee: Assignee = undefined;
78
+
72
79
  /**
73
80
  * 是否使用 v-model
74
81
  */
@@ -184,6 +191,21 @@ export class BindAttribute extends BaseNode {
184
191
  });
185
192
  }
186
193
 
194
+ /**
195
+ * 设置经办人
196
+ */
197
+ setAssignee(assignee: Assignee) {
198
+ assignee._delete();
199
+ const relationOptions = { parentNode: this, parentKey: 'assignee' };
200
+ Object.assign(assignee, relationOptions);
201
+ const object = {
202
+ assignee,
203
+ };
204
+ this.update({
205
+ ...object,
206
+ });
207
+ }
208
+
187
209
  /**
188
210
  * 设置是否开启双向绑定
189
211
  */
@@ -201,7 +223,7 @@ export class BindAttribute extends BaseNode {
201
223
  return (this.rules || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
202
224
  }
203
225
  getValidationRuleUniqueName(name = 'validationRule1') {
204
- return utils.unique(name, this.getValidationRuleExistingNames());
226
+ return utils.unique(name, this.getValidationRuleExistingNames(), undefined, false);
205
227
  }
206
228
 
207
229
  /**
@@ -240,7 +262,7 @@ export class BindAttribute extends BaseNode {
240
262
  name: options,
241
263
  }, this, 'rules');
242
264
  } else if (options instanceof ValidationRule) {
243
- options.delete(); // 同一实例不支持多处存在
265
+ options.ensureDelete(); // 同一实例不支持多处存在
244
266
  validationRule = options;
245
267
  Object.assign(validationRule, relationOptions);
246
268
  } else {
@@ -328,7 +350,7 @@ export class BindAttribute extends BaseNode {
328
350
 
329
351
  addValidationRule(options?: string | Partial<ValidationRule> | ValidationRule) {
330
352
  const node = this._addValidationRule(options as any);
331
- const index = this.rules.length;
353
+ const index = this.rules.indexOf(node);
332
354
  node.create({
333
355
  index,
334
356
  parentNode: this,
@@ -419,6 +441,33 @@ export class BindAttribute extends BaseNode {
419
441
  return validationRule.delete();
420
442
  }
421
443
 
444
+
445
+
446
+ /**
447
+ * 删除经办人
448
+ * @param name 经办人名称
449
+ */
450
+ removeAssignee(name: string): void;
451
+
452
+ /**
453
+ * 删除经办人
454
+ * @param assignee 已有的经办人实例
455
+ */
456
+ removeAssignee(assignee: Assignee): void;
457
+
458
+ removeAssignee(options: string | Assignee) {
459
+ let assignee: Assignee;
460
+ if (typeof options === 'string') {
461
+ assignee = this.assignee;
462
+ if (!assignee) {
463
+ throw new Error('找不到经办人 ' + options);
464
+ }
465
+ } else {
466
+ assignee = options;
467
+ }
468
+ return assignee.delete();
469
+ }
470
+
422
471
  __removeLogicItem(logicItem: LogicItem) {
423
472
  const parentKey = logicItem.parentKey;
424
473
  const params: Params = {
@@ -471,16 +520,27 @@ export class BindAttribute extends BaseNode {
471
520
  if (value !== undefined && value !== null && typeof value === 'string') {
472
521
  value = value.replace(/"/g, "'");
473
522
  }
474
- if (this.name === 'destination' && this.destination) {
475
- return this.destination.toVue(options);
523
+ if (this.name === 'destination' && this.type === 'dynamic') {
524
+ return this.destination ? this.destination.toVue(options) : '';
476
525
  } else if (this.name === 'rules' && this.rules) {
477
- const ruleStrs = this.rules.map((rule) => rule.toVue());
526
+ const ruleStrs = this.rules.map((rule) => rule.toVue(options));
478
527
  value = ruleStrs.join(' | ');
479
528
  return value !== undefined && value !== null ? `${this.name}="${value}"` : '';
480
- } else if (this.type === 'string') {
481
- return value !== undefined && value !== null ? `${this.name}="${value}"` : '';
482
529
  } else {
483
- return value !== undefined && value !== null && value !== '' ? `:${this.name}${this.sync ? '.sync' : ''}="${value}"` : '';
530
+ let str = '';
531
+ let name = this.name;
532
+ if (value !== undefined && value !== null && value !== '') {
533
+ if (name === 'download') {
534
+ str += 'download="true" ';
535
+ name = 'href';
536
+ }
537
+ if (this.type === 'string') {
538
+ str += `${name}="${value}"`;
539
+ } else {
540
+ str += `:${name}${this.sync ? '.sync' : ''}="${value}"`;
541
+ }
542
+ }
543
+ return str;
484
544
  }
485
545
  }
486
546
 
@@ -218,12 +218,31 @@ export class BindDirective extends BaseNode {
218
218
  if (this.expression) {
219
219
  value = this.expression.toVue(options);
220
220
  if (this.expression.concept === 'StringLiteral') {
221
- value = `'${value}'`;
221
+ value = `${value}`;
222
222
  }
223
- value = value.replace && value.replace(/"/g, "'");
223
+ value = value?.replace(/"/g, "'");
224
224
  }
225
225
  if (this.name === 'auth' && !!this.value) {
226
- value = `'/${this.view.name}/${this.element.name}'`;
226
+ const regex = /(.\w+\[name=\w+\])/g;
227
+ const paths = this.element.nodePath.match(regex);
228
+ const regex1 = /\s*=(\w+)\]/;
229
+ let pathArr: string[] = [];
230
+ const isElement = paths.find((item) => {
231
+ if (item.startsWith('.elements')) {
232
+ return true;
233
+ } else {
234
+ pathArr.push(item);
235
+ return false;
236
+ }
237
+ });
238
+ if (isElement) {
239
+ pathArr = [...pathArr, ...paths.slice(-1)];
240
+ }
241
+ const _path = pathArr.reduce((str, item) => {
242
+ const c = item.match(regex1);
243
+ return str + '/' + c[1];
244
+ }, '');
245
+ value = `'${_path}'`;
227
246
  }
228
247
  return value !== '' && value !== undefined && value !== null ? `v-${this.name}${modifiersString}${this.arg ? ':' + this.arg : ''}="${value}"` : '';
229
248
  }