@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
@@ -55,13 +55,13 @@ function genFilterTemplate(entity: Entity, nameGroup: NameGroup, selectNameGroup
55
55
  } else if (propertyTypeName === 'Boolean') {
56
56
  formItem += `
57
57
  <u-select clearable v-model="${vModel}" placeholder="请输入${label}">
58
- <u-select-item :value="true">是</u-select-item>
59
- <u-select-item :value="false">否</u-select-item>
58
+ <u-select-item :value="true" text="是">是</u-select-item>
59
+ <u-select-item :value="false" text="否">否</u-select-item>
60
60
  </u-select>
61
61
  `;
62
62
  } else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
63
63
  formItem += `<u-number-input v-model="${vModel}" placeholder="请输入${label}"></u-number-input>`;
64
- } else if (propertyTypeName === 'Decimal') {
64
+ } else if (propertyTypeName === 'Double') {
65
65
  formItem += `<u-number-input v-model="${vModel}" :precision="0" :step="0" placeholder="请输入${label}"></u-number-input>`;
66
66
  } else if (propertyTypeName === 'Text') {
67
67
  formItem += `<u-textarea v-model="${vModel}" placeholder="请输入${label}"></u-textarea>`;
@@ -91,7 +91,7 @@ function genFilterTemplate(entity: Entity, nameGroup: NameGroup, selectNameGroup
91
91
  </u-form-item>
92
92
  </u-form>
93
93
 
94
- <u-button color="primary" @click="${nameGroup.viewLogicCreate}($event)">创建</u-button>
94
+ <u-button color="primary" @click="${nameGroup.viewLogicCreate}">创建</u-button>
95
95
  </u-linear-layout>
96
96
  `;
97
97
  }
@@ -154,12 +154,12 @@ function genSaveModalTemplate(entity: Entity, nameGroup: NameGroup, selectNameGr
154
154
  } else if (propertyTypeName === 'Boolean') {
155
155
  formItem += `
156
156
  <u-select clearable v-model="${vModel}" placeholder="请输入${label}" ${property.primaryKey ? `:disabled="${nameGroup.viewVariableIsUpdate}"` : ''}>
157
- <u-select-item :value="true">是</u-select-item>
158
- <u-select-item :value="false">否</u-select-item>
157
+ <u-select-item :value="true" text="是">是</u-select-item>
158
+ <u-select-item :value="false" text="否">否</u-select-item>
159
159
  </u-select>`;
160
160
  } else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
161
161
  formItem += `<u-number-input v-model="${vModel}" placeholder="请输入${label}" ${property.primaryKey ? `:disabled="${nameGroup.viewVariableIsUpdate}"` : ''}></u-number-input>`;
162
- } else if (propertyTypeName === 'Decimal') {
162
+ } else if (propertyTypeName === 'Double') {
163
163
  formItem += `<u-number-input v-model="${vModel}" :precision="0" :step="0" placeholder="请输入${label}" ${
164
164
  property.primaryKey ? `:disabled="${nameGroup.viewVariableIsUpdate}"` : ''
165
165
  }></u-number-input>`;
@@ -459,7 +459,7 @@ export function genCurdMultipleKeyBlock(entity: Entity, view: View) {
459
459
  return `<template>
460
460
  <u-linear-layout direction="vertical">
461
461
  ${genFilterTemplate(entity, nameGroup, selectNameGroupMap)}
462
- ${genTableTemplate(entity, nameGroup)}
462
+ ${genTableTemplate(entity, nameGroup, true)}
463
463
  ${genSaveModalTemplate(entity, nameGroup, selectNameGroupMap)}
464
464
  </u-linear-layout>
465
465
  </template>
@@ -511,7 +511,7 @@ export function genCurdMultipleKeyBlock(entity: Entity, view: View) {
511
511
  "concept": "BindEvent",
512
512
  "arguments": [],
513
513
  "name": "created",
514
- "calleeNamespace": "${view.getNamespace()}.views.${view.name}.logics",
514
+ "calleeNamespace": "",
515
515
  "calleeName": "${nameGroup.viewLogicInit}"
516
516
  }
517
517
  ],
@@ -581,7 +581,7 @@ export function genGridViewMultipleKeyBlock(entity: Entity, view: View) {
581
581
  return `<template>
582
582
  <u-linear-layout direction="vertical">
583
583
  ${genFilterTemplate(entity, nameGroup, selectNameGroupMap)}
584
- ${genGridViewTemplate(entity, nameGroup)}
584
+ ${genGridViewTemplate(entity, nameGroup, true)}
585
585
  ${genSaveModalTemplate(entity, nameGroup, selectNameGroupMap)}
586
586
  </u-linear-layout>
587
587
  </template>
@@ -633,7 +633,7 @@ export function genGridViewMultipleKeyBlock(entity: Entity, view: View) {
633
633
  "concept": "BindEvent",
634
634
  "arguments": [],
635
635
  "name": "created",
636
- "calleeNamespace": "${view.getNamespace()}.views.${view.name}.logics",
636
+ "calleeNamespace": "",
637
637
  "calleeName": "${nameGroup.viewLogicInit}"
638
638
  }
639
639
  ],
@@ -65,12 +65,12 @@ export function genEditTableColumnTemplate(entity: Entity, property: EntityPrope
65
65
  } else if (propertyTypeName === 'Boolean') {
66
66
  formItem += `<u-select clearable :value.sync="${valueExpression}" placeholder="请输入${label}"
67
67
  :autofocus="true" :opened="true" append-to="body" @blur="${nameGroup.viewLogicBlurUpdate}" @select="${nameGroup.viewLogicBlurUpdate}">
68
- <u-select-item :value="true">是</u-select-item>
69
- <u-select-item :value="false">否</u-select-item>
68
+ <u-select-item :value="true" text="是">是</u-select-item>
69
+ <u-select-item :value="false" text="否">否</u-select-item>
70
70
  </u-select>`;
71
71
  } else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
72
72
  formItem = `<u-number-input :value.sync="${valueExpression}" placeholder="请输入${label}" :autofocus="true" @blur="${nameGroup.viewLogicBlurUpdate}"></u-number-input>`;
73
- } else if (propertyTypeName === 'Decimal') {
73
+ } else if (propertyTypeName === 'Double') {
74
74
  formItem = `<u-number-input :value.sync="${valueExpression}" :precision="0" :step="0" placeholder="请输入${label}" :autofocus="true" @blur="${nameGroup.viewLogicBlurUpdate}"></u-number-input>`;
75
75
  } else if (propertyTypeName === 'Text') {
76
76
  formItem = `<u-validator placement="bottom" display="appear" @blur-valid="${nameGroup.viewLogicBlurUpdate}" style="width:100%">
@@ -122,7 +122,7 @@ export function genEditTableTemplate(entity: Entity, nameGroup: NameGroup, selec
122
122
  <u-table-view-column title="操作">
123
123
  <template #cell="scope">
124
124
  <u-linear-layout gap="small">
125
- <u-link @click="${nameGroup.viewLogicRemove}($event, scope)">删除</u-link>
125
+ <u-link @click="${nameGroup.viewLogicRemove}">删除</u-link>
126
126
  </u-linear-layout>
127
127
  </template>
128
128
  </u-table-view-column>
@@ -228,7 +228,7 @@ export function genEditTableRemoveLogic(entity: Entity, nameGroup: NameGroup) {
228
228
  if (!paramFromLogic) {
229
229
  paramFromLogic = getParamFromLogic(deleteLogic, 'id');
230
230
  }
231
- return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.id`);
231
+ return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.${paramFromLogic.name}`);
232
232
  }),
233
233
  }),
234
234
  genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
@@ -11,10 +11,10 @@ import { Enum } from '../concepts';
11
11
  export function genEnumSelectBlock(enumeration: Enum, vModel?: string, size?: string, placeholder?: string, hiddenAll?: boolean) {
12
12
  if (config.scope === 'h5')
13
13
  return `<van-cascader ${vModel ? ` v-model="${vModel}"` : ''}${placeholder ? ` title="${placeholder}" placeholder="${placeholder}"` : ''}
14
- :data-source="$utils.EnumList('${enumeration.name}')" labelField="${!hiddenAll ? (placeholder || '') : ''}" :notitleblock="${hiddenAll}"></van-cascader>`;
14
+ :data-source="$utils.EnumList('${enumeration.name}', '${enumeration.getNamespace()}')" labelField="${!hiddenAll ? (placeholder || '') : ''}" :notitleblock="${hiddenAll}"></van-cascader>`;
15
15
 
16
16
  return `<u-select clearable${vModel ? ` v-model="${vModel}"` : ''}${size ? ` size="${size}"` : ''}${placeholder ? ` placeholder="${placeholder}"` : ''}
17
- :data-source="$utils.EnumList('${enumeration.name}')">
17
+ :data-source="$utils.EnumList('${enumeration.name}', '${enumeration.getNamespace()}')">
18
18
  ${hiddenAll ? '' : '<u-select-item text="全部"></u-select-item>'}
19
19
  </u-select>`;
20
20
  }
@@ -1,10 +1,7 @@
1
1
  import { config } from '../config';
2
2
  import * as utils from '../utils';
3
3
  import { Entity, Logic, View } from '../concepts';
4
- import {
5
- NaslCoreTypeAnnotation, NaslTypeAnnotation, NaslLogicItem,
6
- NaslNode,
7
- } from './utils';
4
+ import { NaslCoreTypeAnnotation, NaslTypeAnnotation, NaslLogicItem, NaslNode } from './utils';
8
5
  import { NameGroup, filterProperty, getExpression, genLogicParam } from '.';
9
6
 
10
7
  export function genGetTemplate(entity: Entity, nameGroup: NameGroup) {
@@ -58,11 +55,12 @@ export function genH5GetTemplate(entity: Entity, nameGroup: NameGroup) {
58
55
  return `<van-cell-group>
59
56
  ${properties
60
57
  .map((property) => {
61
- let formItem = ` <van-cell isLink title="${property.label || property.name}"`;
58
+ const temptitle = property.label || property.name;
59
+ let formItem = ` <van-cell isLink`;
62
60
 
63
61
  formItem += ' :value="' + getExpression(property, `${nameGroup.viewVariableEntity}.${property.name}`) + '">';
64
-
65
- formItem += ` </van-cell>\n`;
62
+ formItem += `<template #title>${temptitle}</template>`;
63
+ formItem += `<template>{{ ${getExpression(property, `${nameGroup.viewVariableEntity}.${property.name}`)} }}</template> </van-cell>\n`;
66
64
  return formItem;
67
65
  })
68
66
  .join('')}
@@ -109,7 +107,7 @@ export function genGetBlock(entity: Entity, view: View) {
109
107
  "concept": "BindEvent",
110
108
  "arguments": [],
111
109
  "name": "created",
112
- "calleeNamespace": "${view.getNamespace()}.${view.name}.logics",
110
+ "calleeNamespace": "",
113
111
  "calleeName": "${nameGroup.viewLogicLoad}"
114
112
  }
115
113
  ]
@@ -1,3 +1,4 @@
1
+ import { config } from '../config';
1
2
  import * as utils from '../utils';
2
3
  import { App, Namespace, Entity, EntityProperty, View } from '../concepts';
3
4
  import {
@@ -12,10 +13,7 @@ import {
12
13
  genQueryLogic,
13
14
  genQueryStructure,
14
15
  } from '.';
15
- import {
16
- NaslCoreTypeAnnotation, NaslUITypeAnnotation, NaslCollectionTypeAnnotation,
17
- NaslTypeAnnotation, NaslLogicItem, NaslNode,
18
- } from './utils';
16
+ import { NaslCoreTypeAnnotation, NaslUITypeAnnotation, NaslCollectionTypeAnnotation, NaslTypeAnnotation, NaslLogicItem, NaslNode } from './utils';
19
17
 
20
18
  /**
21
19
  * 根据实体属性生成表格列模板
@@ -60,12 +58,48 @@ export function genGridViewCardTemplate(property: EntityProperty) {
60
58
  </u-linear-layout>`;
61
59
  }
62
60
 
61
+ export function genH5GridViewCardTemplate(property: EntityProperty) {
62
+ const entity = property.entity;
63
+ const parentNode = entity.parentNode as App | Namespace;
64
+ const lowerEntityName = utils.firstLowerCase(entity.name);
65
+ let expression = `scope.item.${lowerEntityName}.${property.name}`;
66
+ const title = property.label || property.name;
67
+
68
+ if (property.relationEntity) {
69
+ // 有外键关联
70
+ const relationEntity = parentNode?.findEntityByName(property.relationEntity);
71
+ if (relationEntity) {
72
+ const displayedProperty = getFirstDisplayedProperty(relationEntity);
73
+ if (displayedProperty) {
74
+ const relationLowerEntityName = utils.firstLowerCase(relationEntity.name);
75
+ expression = getExpression(property, `scope.item.${relationLowerEntityName}.${displayedProperty.name}`);
76
+ } else
77
+ return '';
78
+ } else
79
+ return '';
80
+ } else
81
+ expression = getExpression(property, `scope.item.${lowerEntityName}.${property.name}`);
82
+
83
+ const getText = (property: EntityProperty) => {
84
+ const propertyTypeName = property.typeAnnotation.typeName;
85
+ if (propertyTypeName === 'Boolean') {
86
+ return `
87
+ <van-text v-if="${expression}" text="是" display="block"></van-text>
88
+ <van-text v-if="!${expression}" text="否" display="block"></van-text>
89
+ `;
90
+ } else {
91
+ return `<van-text :text="${expression}" display="block"></van-text>`;
92
+ }
93
+ };
94
+ return `${getText(property)}`;
95
+ }
96
+
63
97
  /**
64
98
  * 生成表格模板
65
99
  * @param entity 实体
66
100
  * @param nameGroup 命名组
67
101
  */
68
- export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup) {
102
+ export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup, modifyable?: boolean) {
69
103
  const properties = entity.properties.filter(filterProperty('inTable'));
70
104
 
71
105
  return `<u-grid-view ref="${nameGroup.viewElementMainView}" :data-source="${nameGroup.viewLogicLoad}" data-schema="${nameGroup.structure}"
@@ -84,8 +118,8 @@ export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup) {
84
118
  <u-linear-layout direction="vertical" gap="small">
85
119
  ${properties.map((property) => genGridViewCardTemplate(property) + '\n').join('')}
86
120
  <u-linear-layout gap="small">
87
- <u-link @click="${nameGroup.viewLogicModify || 'modify'}($event, scope)">修改</u-link>
88
- <u-link @click="${nameGroup.viewLogicRemove}($event, scope)">删除</u-link>
121
+ <u-link ${modifyable ? `@click="${nameGroup.viewLogicModify || 'modify'}"` : ''}>修改</u-link>
122
+ <u-link @click="${nameGroup.viewLogicRemove}">删除</u-link>
89
123
  </u-linear-layout>
90
124
  </u-linear-layout>
91
125
  </u-card>
@@ -94,6 +128,22 @@ export function genGridViewTemplate(entity: Entity, nameGroup: NameGroup) {
94
128
  `;
95
129
  }
96
130
 
131
+ export function genH5GridViewTemplate(entity: Entity, nameGroup: NameGroup) {
132
+ const properties = entity.properties.filter(filterProperty('inTable'));
133
+ return `<van-grid-view ref="gridView" :data-source="${nameGroup.viewLogicLoad}" data-schema="${nameGroup.structure}"
134
+ pageable="auto-more"
135
+ :remote-paging="true"
136
+ :col="2"
137
+ :iffall="false">
138
+ <template #item="scope">
139
+ <van-cardu no-title>
140
+ ${properties.map((property) => genH5GridViewCardTemplate(property) + '\n').join('')}
141
+ </van-cardu>
142
+ </template>
143
+ </van-grid-view>
144
+ `;
145
+ }
146
+
97
147
  /**
98
148
  * 生成表格 load 逻辑
99
149
  * @param entity 实体
@@ -190,7 +240,7 @@ export function genGridViewRemoveLogic(entity: Entity, nameGroup: NameGroup) {
190
240
  if (!paramFromLogic) {
191
241
  paramFromLogic = getParamFromLogic(deleteLogic, 'id');
192
242
  }
193
- return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.id`);
243
+ return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.${paramFromLogic.name}`);
194
244
  }),
195
245
  }),
196
246
  genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
@@ -240,7 +290,7 @@ export function genGridViewBlock(entity: Entity, view: View) {
240
290
 
241
291
  return `
242
292
  <template>
243
- ${genGridViewTemplate(entity, nameGroup)}
293
+ ${config.scope === 'h5' ? genH5GridViewTemplate(entity, nameGroup) : genGridViewTemplate(entity, nameGroup)}
244
294
  </template>
245
295
  <definition>
246
296
  {
@@ -1,21 +1,20 @@
1
1
  import * as utils from '../utils';
2
2
  import { App, Namespace, Entity, Structure, QueryJoinExpression, CallQueryComponent, StructureProperty } from '../concepts';
3
- import {
4
- NameGroup, NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation,
5
- NaslTypeAnnotation, NaslQueryExpression, NaslLogicItem, NaslNode,
6
- } from './utils';
3
+ import { NameGroup, NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation, NaslTypeAnnotation, NaslQueryExpression, NaslLogicItem, NaslNode } from './utils';
7
4
 
8
5
  export function genQueryStructure(allEntities: Array<Entity>, nameGroup: NameGroup) {
9
6
  allEntities = Array.from(new Set(allEntities));
10
7
  return NaslNode.Structure({
11
8
  name: nameGroup.structure,
12
- properties: allEntities.map((entity) => (NaslNode.StructureProperty({
13
- name: utils.firstLowerCase(entity.name),
14
- typeAnnotation: NaslTypeAnnotation.Reference({
15
- typeNamespace: entity.getNamespace(),
16
- typeName: entity.name,
17
- }),
18
- }))),
9
+ origin: 'CallQueryComponent',
10
+ properties: allEntities.map((entity) =>
11
+ NaslNode.StructureProperty({
12
+ name: utils.firstLowerCase(entity.name),
13
+ typeAnnotation: NaslTypeAnnotation.Reference({
14
+ typeNamespace: entity.getNamespace(),
15
+ typeName: entity.name,
16
+ }),
17
+ })),
19
18
  });
20
19
  }
21
20
 
@@ -78,7 +77,7 @@ export function genQueryAssignment(allEntities: Array<Entity>, nameGroup: NameGr
78
77
  return NaslQueryExpression.QueryJoinExpression({
79
78
  entityNamespace: relationEntity.getNamespace(),
80
79
  entityName: relationEntity.name,
81
- joinType: 'INNER',
80
+ joinType: 'LEFT',
82
81
  onExpressions: [
83
82
  NaslLogicItem.BinaryExpression({
84
83
  operator: '==',
@@ -100,7 +99,7 @@ export function genQueryAssignment(allEntities: Array<Entity>, nameGroup: NameGr
100
99
  });
101
100
  }),
102
101
  });
103
- const where: any = supportFilter && genWhereExpression(entity);
102
+ const where: any = supportFilter ? genWhereExpression(entity) : undefined;
104
103
  return NaslLogicItem.Assignment({
105
104
  left: NaslLogicItem.Identifier({
106
105
  name: 'result',
@@ -120,7 +119,7 @@ export function genQueryAssignment(allEntities: Array<Entity>, nameGroup: NameGr
120
119
  from,
121
120
  where,
122
121
  groupBy: [],
123
- having: [],
122
+ having: null,
124
123
  orderBy: supportSort ? [
125
124
  NaslQueryExpression.QueryOrderByExpression({
126
125
  label: '查询组件OrderBy元素',
@@ -174,11 +173,7 @@ export function genQueryLogic(allEntities: Array<Entity>, nameGroup: NameGroup,
174
173
  }),
175
174
  ],
176
175
  variables: [] as Array<any>,
177
- body: [
178
- NaslLogicItem.Start,
179
- genQueryAssignment(allEntities, nameGroup, supportFilter, supportSort),
180
- NaslLogicItem.End,
181
- ],
176
+ body: [NaslLogicItem.Start, genQueryAssignment(allEntities, nameGroup, supportFilter, supportSort), NaslLogicItem.End],
182
177
  playground: [] as Array<any>,
183
178
  });
184
179
  if (supportSort) {
@@ -214,7 +209,7 @@ export async function joinEntity(callQueryComponent: CallQueryComponent, entity:
214
209
  // 一般左联是自动有的了
215
210
  const rightProperty = entity.properties.find((property) => property.relationEntity === lastEntity.name);
216
211
  if (rightProperty) {
217
- const leftProperty = lastEntity.properties.find((property) => property.name === rightProperty.name);
212
+ const leftProperty = lastEntity.properties.find((property) => property.name === rightProperty.relationProperty);
218
213
  joinInfo = {
219
214
  leftProperty,
220
215
  rightProperty,
@@ -222,7 +217,7 @@ export async function joinEntity(callQueryComponent: CallQueryComponent, entity:
222
217
  } else {
223
218
  const leftProperty = lastEntity.properties.find((property) => property.relationEntity === entity.name);
224
219
  if (leftProperty) {
225
- const rightProperty = entity.properties.find((property) => property.name === leftProperty.name);
220
+ const rightProperty = entity.properties.find((property) => property.name === leftProperty.relationProperty);
226
221
  joinInfo = {
227
222
  leftProperty,
228
223
  rightProperty,
@@ -260,22 +255,38 @@ export async function joinEntity(callQueryComponent: CallQueryComponent, entity:
260
255
  }),
261
256
  }), recordStructure, 'properties');
262
257
  recordStructure.addProperty(structureProperty);
258
+ } else {
259
+ queryJoinExpression.onExpressions.push(NaslLogicItem.BinaryExpression({
260
+ operator: '==',
261
+ left: NaslQueryExpression.QueryFieldExpression({
262
+ label: '查询组件实体属性',
263
+ isDotStar: false,
264
+ entityAsName: lastEntity.name,
265
+ }),
266
+ right: NaslQueryExpression.QueryFieldExpression({
267
+ label: '查询组件实体属性',
268
+ isDotStar: false,
269
+ entityAsName: entity.name,
270
+ }),
271
+ }));
263
272
  }
264
273
  const newJoinPartLogicItem = QueryJoinExpression.from(queryJoinExpression, callQueryComponent, 'joinParts');
265
274
  from.addJoinPart(newJoinPartLogicItem);
275
+ callQueryComponent.saveStructure();
266
276
  }
267
277
 
268
278
  export default genQueryAssignment;
269
279
 
270
280
  export function genEditQueryStructure(allEntities: Array<Entity>, nameGroup: NameGroup) {
271
281
  allEntities = Array.from(new Set(allEntities));
272
- const properties = allEntities.map((entity) => (NaslNode.StructureProperty({
273
- name: utils.firstLowerCase(entity.name),
274
- typeAnnotation: NaslTypeAnnotation.Reference({
275
- typeNamespace: entity.getNamespace(),
276
- typeName: entity.name,
277
- }),
278
- })));
282
+ const properties = allEntities.map((entity) =>
283
+ NaslNode.StructureProperty({
284
+ name: utils.firstLowerCase(entity.name),
285
+ typeAnnotation: NaslTypeAnnotation.Reference({
286
+ typeNamespace: entity.getNamespace(),
287
+ typeName: entity.name,
288
+ }),
289
+ }));
279
290
  properties.push(NaslNode.StructureProperty({
280
291
  name: 'editing',
281
292
  typeAnnotation: NaslCoreTypeAnnotation.String,
@@ -12,10 +12,7 @@ import {
12
12
  genQueryStructure,
13
13
  genLogicParam,
14
14
  } from '.';
15
- import {
16
- NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation, NaslUITypeAnnotation,
17
- NaslTypeAnnotation, NaslLogicItem, NaslNode,
18
- } from './utils';
15
+ import { NaslCoreTypeAnnotation, NaslCollectionTypeAnnotation, NaslUITypeAnnotation, NaslTypeAnnotation, NaslLogicItem, NaslNode } from './utils';
19
16
 
20
17
  /**
21
18
  * 根据实体属性生成表格列模板
@@ -59,7 +56,7 @@ export function genTableColumnTemplate(property: EntityProperty) {
59
56
  * @param entity 实体
60
57
  * @param nameGroup 命名组
61
58
  */
62
- export function genTableTemplate(entity: Entity, nameGroup: NameGroup) {
59
+ export function genTableTemplate(entity: Entity, nameGroup: NameGroup, modifyable?: boolean) {
63
60
  const properties = entity.properties.filter(filterProperty('inTable'));
64
61
 
65
62
  return `<u-table-view ref="${nameGroup.viewElementMainView}" :data-source="${nameGroup.viewLogicLoad}" data-schema="${nameGroup.structure}"
@@ -72,8 +69,8 @@ export function genTableTemplate(entity: Entity, nameGroup: NameGroup) {
72
69
  <u-table-view-column title="操作">
73
70
  <template #cell="scope">
74
71
  <u-linear-layout gap="small">
75
- <u-link @click="${nameGroup.viewLogicModify || 'modify'}($event, scope)">修改</u-link>
76
- <u-link @click="${nameGroup.viewLogicRemove}($event, scope)">删除</u-link>
72
+ <u-link ${modifyable ? `@click="${nameGroup.viewLogicModify || 'modify'}"` : ''}>修改</u-link>
73
+ <u-link @click="${nameGroup.viewLogicRemove}">删除</u-link>
77
74
  </u-linear-layout>
78
75
  </template>
79
76
  </u-table-view-column>
@@ -144,7 +141,6 @@ export function genTableRemoveLogic(entity: Entity, nameGroup: NameGroup) {
144
141
  const parentNode = entity.parentNode as App | Namespace;
145
142
  const parentNamespace = parentNode?.getNamespace();
146
143
  const ns = entity.ns;
147
- console.log(ns)
148
144
  const deleteLogic = ns?.logics?.find((logic) => logic.name === 'delete');
149
145
  const idPropertys = entity.properties.filter((property) => property.primaryKey);
150
146
  return NaslNode.Logic({
@@ -177,7 +173,7 @@ export function genTableRemoveLogic(entity: Entity, nameGroup: NameGroup) {
177
173
  if (!paramFromLogic) {
178
174
  paramFromLogic = getParamFromLogic(deleteLogic, 'id');
179
175
  }
180
- return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.id`);
176
+ return genLogicParam(paramFromLogic.name, `scope.item.${lowerEntityName}.${paramFromLogic.name}`);
181
177
  }),
182
178
  }),
183
179
  genCallComponentLogic(nameGroup.viewElementMainView, 'reload'),
@@ -59,7 +59,7 @@ export function genUpdateFormTemplate(entity: Entity, nameGroup: NameGroup, sele
59
59
  formItem += `<u-checkbox v-model="${vModel}"></u-checkbox>`;
60
60
  } else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
61
61
  formItem += `<u-number-input v-model="${vModel}" placeholder="请输入${label}"></u-number-input>`;
62
- } else if (propertyTypeName === 'Decimal') {
62
+ } else if (propertyTypeName === 'Double') {
63
63
  formItem += `<u-number-input v-model="${vModel}" :precision="0" :step="0" placeholder="请输入${label}"></u-number-input>`;
64
64
  } else if (propertyTypeName === 'Text') {
65
65
  formItem += `<u-textarea v-model="${vModel}" placeholder="请输入${label}"></u-textarea>`;
@@ -124,6 +124,7 @@ export function genH5UpdateFormTemplate(entity: Entity, nameGroup: NameGroup, se
124
124
  <template #input><van-cascader title="请选择${label}" placeholder="请选择${label}"
125
125
  v-model="${vModel}" :data-source="${selectNameGroup.viewLogicLoad}"
126
126
  text-field="${lowerEntityName}.${displayedProperty.name}" value-field="${lowerEntityName}.${relationProperty.name}"
127
+ :notitleblock="true"
127
128
  :pageable="true" :remote-paging="true"></van-cascader></template>
128
129
  `;
129
130
  } else
@@ -134,15 +135,13 @@ export function genH5UpdateFormTemplate(entity: Entity, nameGroup: NameGroup, se
134
135
  formItem += `<template #input><van-switch v-model="${vModel}"></van-switch></template>`;
135
136
  } else if (propertyTypeName === 'Integer' || propertyTypeName === 'Long') {
136
137
  formItem += `<template #input><van-stepper v-model="${vModel}" placeholder="请输入${label}"></van-stepper></template>`;
137
- } else if (propertyTypeName === 'Decimal') {
138
+ } else if (propertyTypeName === 'Double') {
138
139
  formItem += `<template #input><van-stepper v-model="${vModel}" placeholder="请输入${label}"></van-stepper></template>`;
139
140
  } else if (propertyTypeName === 'Text') {
140
- formItem = formItem.replace(/other/g, '');
141
- formItem += `<van-input v-model="${vModel}" placeholder="请输入${label}"></van-input>`;
142
-
141
+ formItem += `<template #input><van-fieldtextarea v-model="${vModel}" placeholder="请输入${label}"></van-fieldtextarea></template>`;
143
142
  // @TODO
144
143
  } else if (propertyTypeName === 'Date') {
145
- formItem += `<template #input><van-calendar clearable :date.sync="${vModel}" placeholder="请输入${label}"></van-calendar></template>`;
144
+ formItem += `<template #input><van-calendar clearable :default-date.sync="${vModel}" placeholder="请输入${label}"></van-calendar></template>`;
146
145
  } else if (propertyTypeName === 'Time') {
147
146
  formItem += `<template #input><van-datetime-picker type="time" v-model="${vModel}" title="请选择${label}" label-field=""></van-datetime-picker></template>`;
148
147
  } else if (propertyTypeName === 'DateTime') {
@@ -151,10 +150,9 @@ export function genH5UpdateFormTemplate(entity: Entity, nameGroup: NameGroup, se
151
150
  const namespaceArr = propertyTypeNamespace.split('.');
152
151
  const type = namespaceArr.pop();
153
152
  if (type === 'enums') {
154
- formItem += genEnumSelectBlock(parentNode.findEnumByName(propertyTypeName) as Enum, `${vModel}`, '', `请选择${label}`, true);
153
+ formItem += '<template #input>' + genEnumSelectBlock(parentNode.findEnumByName(propertyTypeName) as Enum, `${vModel}`, '', `请选择${label}`, true) + '</template>';
155
154
  } else {
156
- formItem = formItem.replace(/other/g, '');
157
- formItem += `<van-input v-model="${vModel}" placeholder="请输入${label}"></van-input>`;
155
+ formItem += `<template #input><van-fieldinput v-model="${vModel}" placeholder="请输入${label}"></van-fieldinput></template>`;
158
156
  }
159
157
  }
160
158
 
@@ -259,7 +257,7 @@ export function genUpdateBlock(entity: Entity, view: View) {
259
257
  const updateLogic = ns?.logics?.find((logic) => logic.name === `update`);
260
258
 
261
259
  const nameGroup: NameGroup = {};
262
- nameGroup.viewElementMainView = view.getLogicUniqueName('form1');
260
+ nameGroup.viewElementMainView = view.getViewElementUniqueName('form1');
263
261
  nameGroup.viewVariableEntity = view.getVariableUniqueName(utils.firstLowerCase(entity.name));
264
262
  nameGroup.viewParamId = view.getParamUniqueName('id');
265
263
  nameGroup.viewLogicLoad = view.getLogicUniqueName('load');
@@ -324,7 +322,7 @@ export function genUpdateBlock(entity: Entity, view: View) {
324
322
  "concept": "BindEvent",
325
323
  "arguments": [],
326
324
  "name": "created",
327
- "calleeNamespace": "${view.getNamespace()}.views.${view.name}.logics",
325
+ "calleeNamespace": "",
328
326
  "calleeName": "${nameGroup.viewLogicLoad}"
329
327
  }
330
328
  ],
@@ -2,10 +2,11 @@ import { utils } from '..';
2
2
  import { App, Namespace, Entity, EntityProperty, Logic, View } from '../concepts';
3
3
 
4
4
  export const filterProperty = (key: 'inTable' | 'inFilter' | 'inForm' | 'inDetail') => (property: EntityProperty) => {
5
- if (property.display)
5
+ if (property.display) {
6
6
  return property.display[key];
7
- else
7
+ } else {
8
8
  return !['id', 'createdTime', 'updatedTime'].includes(property.name);
9
+ }
9
10
  };
10
11
 
11
12
  /**
@@ -17,7 +18,7 @@ export function getExpression(property: EntityProperty, expression: string) {
17
18
  const { typeAnnotation } = property || {};
18
19
  const { typeName: propertyTypeName, typeNamespace: propertyTypeNamespace } = typeAnnotation || {};
19
20
  if (propertyTypeName === 'DateTime')
20
- return `$utils['FormatDate'](${expression}, 'YYYY-MM-DD HH:mm:ss')`;
21
+ return `$utils['FormatDateTime'](${expression}, 'YYYY-MM-DD HH:mm:ss')`;
21
22
  else if (propertyTypeName === 'Date')
22
23
  return `$utils['FormatDate'](${expression}, 'YYYY-MM-DD')`;
23
24
  else {
@@ -224,6 +225,7 @@ export const NaslUITypeAnnotation = {
224
225
  UploadErrorEvent: genNaslUITypeAnnotation('UploadErrorEvent'),
225
226
  SortEvent: genNaslUITypeAnnotation('SortEvent'),
226
227
  PoiInfo: genNaslUITypeAnnotation('PoiInfo'),
228
+ File: genNaslUITypeAnnotation('File'),
227
229
  ScopeOf: genNaslUIGenericTypeAnnotation('ScopeOf'),
228
230
  };
229
231
 
@@ -361,7 +363,7 @@ export const NaslLogicItem = {
361
363
  };
362
364
 
363
365
  export const NaslQueryExpression = {
364
- QueryFieldExpression: ({ label, isDotStar, entityAsName, propertyName }: { label: string; isDotStar: boolean; entityAsName: string; propertyName: string }) => ({
366
+ QueryFieldExpression: ({ label, isDotStar, entityAsName, propertyName }: { label: string; isDotStar: boolean; entityAsName: string; propertyName?: string }) => ({
365
367
  concept: 'QueryFieldExpression',
366
368
  name: '',
367
369
  label,
@@ -446,7 +448,7 @@ export const NaslQueryExpression = {
446
448
  where: any;
447
449
  limit: any;
448
450
  groupBy: any[];
449
- having: any[];
451
+ having: any;
450
452
  orderBy: any[];
451
453
  logicName: string;
452
454
  structureName: string;
@@ -495,10 +497,11 @@ export const NaslNode = {
495
497
  description,
496
498
  playground,
497
499
  }),
498
- Structure: ({ name, properties }: { name: string; properties?: any[] }) => ({
500
+ Structure: ({ name, properties, origin }: { name: string; properties?: any[], origin?: 'CallQueryComponent' }) => ({
499
501
  concept: 'Structure',
500
502
  name,
501
503
  properties,
504
+ origin,
502
505
  }),
503
506
  StructureProperty: ({ name, typeAnnotation }: { name: string; typeAnnotation?: any }) => ({
504
507
  concept: 'StructureProperty',
@@ -9,8 +9,6 @@ export async function getApp() {
9
9
  await login('admin', 'Admin@123456');
10
10
 
11
11
  const app = new App({ id: appId });
12
- // config.defaultApp = app;
13
-
14
12
  // await app.loadAll();
15
13
 
16
14
  return app;
@@ -6,7 +6,7 @@ describe('Block', () => {
6
6
  it('简单标签', () => {
7
7
  const source = '<u-input size="normal" :checked="var1" v-model="var2" @change="onChange"></u-input>';
8
8
  const element = ViewElement.parse(source);
9
- const result = element.toVue();
9
+ const result = element?.toVue();
10
10
  console.info(result);
11
11
  expect(source).to.equal(result);
12
12
  });
@@ -16,7 +16,7 @@ describe('Block', () => {
16
16
  <u-input size="normal" :checked="var1" v-model="var2" @change="onChange"></u-input>
17
17
  </u-linear-layout>`;
18
18
  const element = ViewElement.parse(source);
19
- const result = element.toVue();
19
+ const result = element?.toVue();
20
20
  console.info(result);
21
21
  expect(source).to.equal(result);
22
22
  });
@@ -24,7 +24,7 @@ describe('Block', () => {
24
24
  it('去除 text 类型', () => {
25
25
  const source = `<u-linear-layout direction="vertical">这是一行文本</u-linear-layout>`;
26
26
  const element = ViewElement.parse(source);
27
- const result = element.toVue();
27
+ const result = element?.toVue();
28
28
  console.info(result);
29
29
  expect(result).to.equal(`<u-linear-layout direction="vertical">
30
30
  <u-text text="这是一行文本"></u-text>
@@ -59,7 +59,7 @@ describe('Block', () => {
59
59
  </l-dashboard>
60
60
  `;
61
61
  const element = ViewElement.parse(source);
62
- const result = element.toVue({ aslIdAttr: true });
62
+ const result = element?.toVue({ aslIdAttr: true });
63
63
  console.info(result);
64
64
  });
65
65
  });