@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
@@ -1,13 +1,16 @@
1
- // const { v4: uuidv4 } = require('uuid');
2
- const { uniq, omit } = require('lodash');
3
- const { BaseNode } = require('../../common/BaseNode');
4
- const { tracking, TRACK_TYPE, IGNORE_PROPERTY } = require('./utils');
5
- const { getConceptConstructor, getConceptMeta } = require('../../decorators/index');
1
+ import { uniq, omit } from 'lodash';
2
+ import { BaseNode } from '../../common/BaseNode';
3
+ import { tracking, TRACK_TYPE, IGNORE_PROPERTY } from './utils';
4
+ import { getConceptConstructor, getConceptMeta } from '../../decorators/index';
5
+ // import { unique, firstUpperCase } from '../../utils/string';
6
+ import uniqueNameModule from './uniqueName';
7
+ import operatorModule from './operators';
8
+
6
9
  let id = 0;
7
10
  class TemplateMeta {
8
11
  constructor(node) {
9
12
  // this.name = `t_${uuidv4().replace(/-/g, '')}`;
10
- this.name = `t_${node.concept}_${node.name ? node.name.replace(/-/g, '') : 'unknown'}_${id++}`;
13
+ this.name = `t_${node.concept}_${node.name ? node.name.replace(/[-\.]/g, '') : 'unknown'}_${id++}`;
11
14
  this.node = node;
12
15
  this.isRoot = false;
13
16
  this.rootBinds = [];
@@ -15,6 +18,7 @@ class TemplateMeta {
15
18
  this.callees = [];
16
19
  this.modules = [];
17
20
  this.rolebinds = [];
21
+ this.templatebinds = [];
18
22
  }
19
23
 
20
24
  addRootBinds(propertyName, templateMeta) {
@@ -38,7 +42,12 @@ class TemplateMeta {
38
42
  addPlainBinds(propertyName, value) {
39
43
  // this.node.[propertyName] = value
40
44
  if (typeof value === 'string') {
41
- value = value.split(/\n/).map(c => `"${c}"`).join(" +\n");
45
+ value = value
46
+ .split(/\n/)
47
+ .map((c) => `"${c.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`)
48
+ // .map((c) => `"${c.replace(/([^\\])"/g, '$1\\"')}"`)
49
+ // .map((c) => `decodeURIComponent("${c.encodeURIComponent}")`)
50
+ .join(' + "\\n" +\n');
42
51
  }
43
52
  if (typeof value === 'object') {
44
53
  value = JSON.stringify(value);
@@ -87,6 +96,12 @@ class TemplateMeta {
87
96
  });
88
97
  }
89
98
 
99
+ addTemplateBind(propertyName, relatedVar, relatedProperty) {
100
+ this.templatebinds.push({
101
+ propertyName, relatedVar, relatedProperty
102
+ })
103
+ }
104
+
90
105
  genComment(part) {
91
106
  return `/*---------${this.node.concept} ${this.node.name} ${part} -----------*/`;
92
107
  }
@@ -98,7 +113,8 @@ class TemplateMeta {
98
113
  // _tempConstructor = getConceptConstructor("${this.node.concept}");
99
114
  // const ${this.name} = new _tempConstructor();`
100
115
  return `${this.genComment('create')}
101
- let ${this.name} = _create("${this.node.concept}");`;
116
+ let ${this.name} = _create("${this.node.concept}");
117
+ _templateObjects.push(${this.name})`;
102
118
  }
103
119
 
104
120
  genBind() {
@@ -106,8 +122,9 @@ class TemplateMeta {
106
122
  const { type, propertyName, value } = bind;
107
123
  switch (type) {
108
124
  case TRACK_TYPE.PROPERTY:
125
+ return `_set(${this.name}, "${propertyName}", ${value}, (updatedObj) => { ${value} = updatedObj; })`;
109
126
  case TRACK_TYPE.PLAIN:
110
- return `_set(${this.name}, "${propertyName}", ${value})`;
127
+ return `_set(${this.name}, "${propertyName}", ${value});`;
111
128
  case TRACK_TYPE.ARRAY:
112
129
  return `_push(${this.name}, "${propertyName}", ${value});`;
113
130
  }
@@ -151,18 +168,18 @@ class TemplateMeta {
151
168
  if (this.node.concept === 'Role') {
152
169
  return '';
153
170
  }
154
- if (this.node.concept === 'Entity') {
155
- return `${this.name}.name = getGenUniqNameFunctionName(${this.name}, "${this.node.concept}")
156
- ${this.name}.setTableName(${this.name}.name + app.id.substring(0,5))`;
157
- }
158
- return `${this.name}.name = getGenUniqNameFunctionName(${this.name}, "${this.node.concept}")`;
171
+ // if (this.node.concept === 'Entity') {
172
+ // return `_set(${this.name}, "name", getGenUniqNameFunctionName(${this.name}, "${this.node.concept}"));`;
173
+ // _setTableName(${this.name}, ${this.name}.name + '_' + app.id.slice(0,6));`;
174
+ // }
175
+ return `_set(${this.name}, "name", _uniqueName.getGenUniqNameFunctionName(${this.name}, "${this.node.concept}", app), (updatedObj) => { ${this.name} = updatedObj; })`;
159
176
  }
160
177
 
161
178
  genRoleBind() {
162
179
  return this.rolebinds.map((role) => {
163
180
  const { propertyName, arguVars } = role;
164
181
 
165
- return `_set(${this.name}, "${propertyName}", _bindRoles(${arguVars}));`;
182
+ return `_set(${this.name}, "${propertyName}", _bindRoles(${arguVars}), (updatedObj) => { ${this.name} = updatedObj; });`;
166
183
  });
167
184
  }
168
185
 
@@ -178,8 +195,8 @@ class TemplateMeta {
178
195
  } else {
179
196
  // return `${this.name}.${propertyName} = ${targetVar}.getNamespace();
180
197
  // ${this.name}.${relatedPropertyName} = ${targetVar}.name;`
181
- return `_set(${this.name}, "${propertyName}", ${targetVar}.getNamespace());
182
- _set(${this.name}, "${relatedPropertyName}", ${targetVar}.name);`;
198
+ return `_set(${this.name}, "${propertyName}", ${targetVar}.getNamespace(), (updatedObj) => { ${this.name} = updatedObj; });
199
+ _set(${this.name}, "${relatedPropertyName}", ${targetVar}.name, (updatedObj) => { ${this.name} = updatedObj; });`;
183
200
  }
184
201
  });
185
202
  }
@@ -190,6 +207,13 @@ class TemplateMeta {
190
207
  return `_addModule(app, "${name}", "${belongs}", ${JSON.stringify(data)});`;
191
208
  });
192
209
  }
210
+
211
+ genTemplateBind() {
212
+ return this.templatebinds.map(meta => {
213
+ const { propertyName, relatedVar, relatedProperty } = meta;
214
+ return `_set(${this.name}, "${propertyName}", ${relatedVar}.${relatedProperty})`;
215
+ })
216
+ }
193
217
  }
194
218
 
195
219
  function autoScript(stack) {
@@ -203,6 +227,7 @@ function autoScript(stack) {
203
227
  let moduleBlock = [];
204
228
  let returnBlock = [];
205
229
  let roleNASL = [];
230
+ let templateBlock = [];
206
231
 
207
232
  stack.forEach((temp) => {
208
233
  createBlock.push(temp.genCreate());
@@ -219,102 +244,31 @@ function autoScript(stack) {
219
244
  nameBlock.push(temp.genName());
220
245
  calleeBlock = calleeBlock.concat(temp.genCallee());
221
246
  moduleBlock = moduleBlock.concat(temp.genModule());
247
+ templateBlock = templateBlock.concat(temp.genTemplateBind());
222
248
  });
223
249
 
224
250
  return `
225
251
  (function () {
226
- function alphaUpper(name) {
227
- if (!name) {
228
- return '';
229
- }
230
- return name[0].toUpperCase() + name.substring(1);
231
- }
232
-
233
- function getGenUniqNameFunctionName(item, concept) {
234
- if(!item.parentNode) {
235
- return item.name;
236
- }
237
- const p = item.parentNode;
238
- const f1 = p["get" + concept + "UniqueName"];
239
- const f2 = p["get" + concept + "ExistingNames"]
240
- if(f1 && f2) {
241
- const names = f2.call(p);
242
- const t = names.filter(n => n === item.name);
243
- if(t.length > 1) {
244
- return f1.call(p, item.name);
245
- }
246
- }
247
- return item.name;
248
- }
249
-
250
- let BaseNodeConstructor;
251
- let getConceptConstructor;
252
- let getConceptMeta;
253
-
254
- function instanceOfBaseNode(item) {
255
- return (item instanceof BaseNodeConstructor);
256
- }
257
-
258
- function _set(item, propertyName, value) {
259
- if(instanceOfBaseNode(value)) {
260
- value.parentNode = item;
261
- value.parentKey = propertyName;
262
- }
263
- item.update({
264
- [propertyName]: value,
265
- });
266
- }
267
-
268
- function _push(item, propertyName, value) {
269
- if(!item[propertyName]){
270
- item[propertyName] = [];
271
- }
272
- value.parentNode = item;
273
- value.parentKey = propertyName;
274
- item[propertyName].push(value);
275
- const index = item[propertyName].length;
276
- value.create({
277
- index,
278
- parentNode: item,
279
- parentKey: propertyName,
280
- });
281
- }
282
-
283
- function _create(concept) {
284
- const _ctor = getConceptConstructor(concept);
285
- const item = new _ctor();
286
- const { propertyMap } = getConceptMeta(concept);
287
- for(const p of propertyMap) {
288
- const [propertyName] = p;
289
- const t = item[propertyName];
290
- if(Array.isArray(t)) {
291
- _set(item, propertyName, []);
292
- }
293
- }
294
- return item;
295
- }
296
-
297
- function _addModule(app, name, belongs, data) {
298
- const ms = app[belongs];
299
- const exist = ms.find(m => m.name === name);
300
- if(!exist) {
301
- app["addModuleIn" + alphaUpper(belongs)](data);
302
- }
303
- }
304
-
305
- function _bindRoles(){
306
- return Array.prototype.map.call(arguments, r => r.name);
307
- }
308
- // let _tempConstructor;
252
+ const injectModule = {};
309
253
 
310
254
  const exportRoles = function() {
311
255
  return ${JSON.stringify(roleNASL)};
312
256
  }
313
257
 
314
- const execTemplate = function(app, getCtor, getCMeta, base, rootBindCallback, roleCallback) {
315
- BaseNodeConstructor = base;
316
- getConceptConstructor = getCtor;
317
- getConceptMeta = getCMeta;
258
+ const execTemplate = function(app, getCtor, getCMeta, base, rootBindCallback, roleCallback, finalCallback) {
259
+ let _templateObjects = [];
260
+ const {
261
+ _set,
262
+ _push,
263
+ _create,
264
+ _addModule,
265
+ _bindRoles
266
+ } = injectModule.operators;
267
+
268
+ const _uniqueName = new injectModule.uniqueName();
269
+
270
+ _uniqueName.initAppUniqueNames(app);
271
+
318
272
  app.emit('collect:start', {
319
273
  actionMsg: '导入页面模板'
320
274
  });
@@ -324,14 +278,14 @@ function autoScript(stack) {
324
278
  /*---- bind ---- */
325
279
  ${bindBlock.join('\n\t\t')}
326
280
 
327
- /*---- appbind ---- */
328
- ${appBindBlock.join('\n\t\t')}
281
+ /*---- reset name ---- */
282
+ ${nameBlock.join('\n\t\t')}
329
283
 
330
284
  /*--- root bind ---*/
331
285
  ${rootBindBlock.join('\n\t\t')}
332
286
 
333
- /*---- reset name ---- */
334
- ${nameBlock.join('\n\t\t')}
287
+ /*---- appbind ---- */
288
+ ${appBindBlock.join('\n\t\t')}
335
289
 
336
290
  /*--- role bind ---*/
337
291
  ${rolebindBlock.join('\n\t\t')}
@@ -339,8 +293,16 @@ function autoScript(stack) {
339
293
  /*---- reset callee ---- */
340
294
  ${calleeBlock.join('\n\t\t')}
341
295
 
296
+ /*--- template bind ---- */
297
+ ${templateBlock.join('\n\t\t')}
298
+
342
299
  /*---- add module ----*/
343
300
  ${moduleBlock.join('\n\t\t')}
301
+
302
+ /*--- final callback ---*/
303
+ if(finalCallback) {
304
+ finalCallback(_templateObjects)
305
+ }
344
306
  app.emit('collect:end');
345
307
 
346
308
  /*---- return root -----*/
@@ -349,12 +311,15 @@ function autoScript(stack) {
349
311
 
350
312
  return {
351
313
  execTemplate,
352
- exportRoles
314
+ exportRoles,
315
+ importModule(key, m) {
316
+ injectModule[key] = m;
317
+ },
353
318
  }
354
319
  })();`;
355
320
  }
356
321
  const i = 0;
357
- const autoTemplate = (exports.autoTemplate = function autoTemplate(node) {
322
+ export function autoTemplate(node) {
358
323
  const visitedMap = new WeakMap();
359
324
  const stack = [];
360
325
  const startNode = node;
@@ -410,7 +375,16 @@ const autoTemplate = (exports.autoTemplate = function autoTemplate(node) {
410
375
  });
411
376
 
412
377
  meta.addRoleTemplate(propertyName, roleMetaNames);
413
-
378
+ break;
379
+ case TRACK_TYPE.PROPERTY_TEMPLATE:
380
+ const relatedProperty = options.relatedProperty;
381
+ const getRelatedVar = options.getRelatedVar;
382
+ const t = getRelatedVar();
383
+ if(t) {
384
+ iterator(t);
385
+ const relatedMeta = visitedMap.get(t);
386
+ meta.addTemplateBind(propertyName, relatedMeta.name, relatedProperty)
387
+ }
414
388
  break;
415
389
  default:
416
390
  break;
@@ -426,7 +400,7 @@ const autoTemplate = (exports.autoTemplate = function autoTemplate(node) {
426
400
 
427
401
  iterator(node);
428
402
  return autoScript(stack);
429
- });
403
+ }
430
404
 
431
405
  /* 使用模板的代码 */
432
406
  /*
@@ -442,11 +416,16 @@ const autoTemplate = (exports.autoTemplate = function autoTemplate(node) {
442
416
  })
443
417
  */
444
418
 
445
- const getRoles = (exports.getRoles = function getRoles(script) {
419
+ export function getRoles(script) {
446
420
  const { exportRoles } = eval(script);
447
421
  return exportRoles();
448
- });
449
- const applyTemplate = (exports.applyTemplate = function applyTemplate(script, app, rootBindCallback, roleCallback) {
450
- const { execTemplate } = eval(script);
451
- execTemplate(app, getConceptConstructor, getConceptMeta, BaseNode, rootBindCallback, roleCallback);
452
- });
422
+ }
423
+ export function applyTemplate(script, app, rootBindCallback, roleCallback, finalCallback) {
424
+ const { execTemplate, importModule } = eval(script);
425
+ // 为了兼容 2.11 老模板
426
+ if(importModule) {
427
+ importModule('operators', operatorModule);
428
+ importModule('uniqueName', uniqueNameModule);
429
+ }
430
+ execTemplate(app, getConceptConstructor, getConceptMeta, BaseNode, rootBindCallback, roleCallback, finalCallback);
431
+ }
@@ -0,0 +1,63 @@
1
+ import { BaseNode } from '../../common/BaseNode';
2
+ import { getConceptConstructor, getConceptMeta } from '../../decorators/index';
3
+ import { firstUpperCase } from '../../utils/string';
4
+
5
+ function instanceOfBaseNode(item) {
6
+ return (item instanceof BaseNode);
7
+ }
8
+ const ops = {
9
+ _set(item, propertyName, value, callback) {
10
+ if(instanceOfBaseNode(value)) {
11
+ value.parentNode = item;
12
+ value.parentKey = propertyName;
13
+ }
14
+ if(item[propertyName] !== value) {
15
+ item.update({
16
+ [propertyName]: value,
17
+ });
18
+
19
+ if(instanceOfBaseNode(value) && callback) {
20
+ callback(item[propertyName]);
21
+ }
22
+ }
23
+ },
24
+ _push(item, propertyName, value) {
25
+ if(!item[propertyName]){
26
+ item[propertyName] = [];
27
+ }
28
+ value.parentNode = item;
29
+ value.parentKey = propertyName;
30
+ item[propertyName].push(value);
31
+ const index = item[propertyName].length;
32
+ value.create({
33
+ index,
34
+ parentNode: item,
35
+ parentKey: propertyName,
36
+ });
37
+ },
38
+ _create(concept) {
39
+ const _ctor = getConceptConstructor(concept);
40
+ const item = new _ctor();
41
+ const { propertyMap } = getConceptMeta(concept);
42
+ for(const p of propertyMap) {
43
+ const [propertyName] = p;
44
+ const t = item[propertyName];
45
+ if(Array.isArray(t)) {
46
+ ops._set(item, propertyName, []);
47
+ }
48
+ }
49
+ return item;
50
+ },
51
+ _addModule(app, name, belongs, data) {
52
+ const ms = app[belongs];
53
+ const exist = ms.find(m => m.name === name);
54
+ if(!exist) {
55
+ app["addModuleIn" + firstUpperCase(belongs)](data);
56
+ }
57
+ },
58
+ _bindRoles(){
59
+ return Array.prototype.map.call(arguments, r => r.name);
60
+ }
61
+ }
62
+
63
+ export default ops;
@@ -0,0 +1,36 @@
1
+ import { unique } from '../../utils/string';
2
+ class uniqueName {
3
+ NamesWeakMap = new Map();
4
+ initAppUniqueNames(app) {
5
+ const NamesWeakMap = this.NamesWeakMap;
6
+ NamesWeakMap.set('Entity', new Set(app.getEntityExistingNames()));
7
+ NamesWeakMap.set('Structure', new Set(app.getStructureExistingNames()));
8
+ NamesWeakMap.set('Enum', new Set(app.getEnumExistingNames()));
9
+ NamesWeakMap.set('Logic', new Set(app.getLogicExistingNames()));
10
+ NamesWeakMap.set('Interface', new Set(app.getInterfaceExistingNames()));
11
+ NamesWeakMap.set('View', new Set(app.getViewExistingNames()));
12
+ NamesWeakMap.set('Process', new Set(app.getProcessExistingNames()));
13
+ NamesWeakMap.set('Role', new Set(app.getRoleExistingNames()));
14
+ }
15
+ getGenUniqNameFunctionName(item, concept) {
16
+ const p = item.parentNode;
17
+ const NamesWeakMap = this.NamesWeakMap;
18
+ if(!p) {
19
+ const nameSet = NamesWeakMap.get(concept);
20
+ const n = unique(item.name, nameSet, 1, true);
21
+ nameSet.add(n);
22
+ return n;
23
+ }
24
+ const f1 = p["get" + concept + "UniqueName"];
25
+ const f2 = p["get" + concept + "ExistingNames"]
26
+ if(f1 && f2) {
27
+ const names = f2.call(p);
28
+ const t = names.filter(n => n === item.name);
29
+ if(t.length > 1) {
30
+ return f1.call(p, item.name);
31
+ }
32
+ }
33
+ return item.name;
34
+ }
35
+ }
36
+ export default uniqueName;
@@ -2,14 +2,13 @@
2
2
  // BaseNode,
3
3
  // Module
4
4
  // } from '../../concepts';
5
- const { BaseNode } = require('../../concepts');
6
- const { getConceptMeta } = require('../../decorators/index');
7
-
5
+ import { BaseNode, uiStructures, collectionStructures } from '../../concepts';
6
+ import { getConceptMeta } from '../../decorators/index';
8
7
  /*
9
8
  根据 namespace 字符串来获取 node
10
9
  link: http://nasl.lcap.group/docs/current/semantics/Basics/Namespaces/
11
10
  */
12
- const getNodeByNodeCallee = (exports.getNodeByNodeCallee = function getNodeByNodeCallee(AppInstance, namespace, callback) {
11
+ export function getNodeByNodeCallee(AppInstance, namespace, callback) {
13
12
  const nodePath = namespace.split('.');
14
13
  const kind = nodePath.shift();
15
14
  let tempPoint;
@@ -21,7 +20,7 @@ const getNodeByNodeCallee = (exports.getNodeByNodeCallee = function getNodeByNod
21
20
  tempPoint = AppInstance.dependencies;
22
21
  state = 2;
23
22
  }
24
- if (kind === 'interfaces') {
23
+ if (kind === 'apis') {
25
24
  tempPoint = AppInstance.interfaceDependencies;
26
25
  state = 2;
27
26
  }
@@ -63,9 +62,19 @@ const getNodeByNodeCallee = (exports.getNodeByNodeCallee = function getNodeByNod
63
62
  }
64
63
  }
65
64
  return tempPoint;
66
- });
65
+ }
67
66
 
68
- const TRACK_TYPE = (exports.TRACK_TYPE = {
67
+ /**
68
+ * 根据 namespace 字符串来获取 node,主要是nasl的ui 和 collection
69
+ */
70
+ export function getNaslNodeByNodeCallee(namespace, typeName) {
71
+ if (namespace === 'nasl.ui') {
72
+ return uiStructures.find((item) => item.name === typeName);
73
+ } else if (namespace === 'nasl.collection') {
74
+ return collectionStructures.find((item) => item.name === typeName);
75
+ }
76
+ }
77
+ export const TRACK_TYPE = {
69
78
  PLAIN: 'plain',
70
79
  PROPERTY: 'property',
71
80
  ARRAY: 'array',
@@ -73,8 +82,11 @@ const TRACK_TYPE = (exports.TRACK_TYPE = {
73
82
  CALLEE_TEMPLATE: 'callee_template',
74
83
  MODULE: 'module',
75
84
  ROLE_TEMPLATE: 'role_template',
85
+ PROPERTY_TEMPLATE: 'property_template',
76
86
  // INTERNAL: 'internal'
77
- });
87
+ };
88
+
89
+ const ENTITY_AS_NAME = 'entityAsName';
78
90
 
79
91
  const BACKTACKING_PROPERTY_NS = {
80
92
  TYPE_NAMESPACE: 'typeNamespace',
@@ -113,15 +125,16 @@ function isBACKTRACKING_IGNORE_NAMESPACE(ns) {
113
125
  return ns.startsWith('nasl') || ns.startsWith('elements');
114
126
  }
115
127
 
116
- const IGNORE_PROPERTY = (exports.IGNORE_PROPERTY = [
128
+ export const IGNORE_PROPERTY = [
117
129
  'uuid', // View 属性
118
130
  'origin', // Entity 属性
119
131
  'changedTime',
120
132
  'branchName',
121
133
  'appId',
122
134
  'isIndex',
123
- 'tableName',
124
- ]);
135
+ // 'tableName',
136
+ // 'columnName',
137
+ ];
125
138
 
126
139
  const ROLE_PROPERTY = 'bindRoles';
127
140
 
@@ -136,7 +149,7 @@ const ROLE_PROPERTY = 'bindRoles';
136
149
  // 'Role',
137
150
  // ];
138
151
 
139
- const tracking = (exports.tracking = function tracking(node, startNode, callback) {
152
+ export function tracking(node, startNode, callback) {
140
153
  const { propertyMap } = getConceptMeta(node.concept);
141
154
  // console.log(propertyMap)
142
155
  for (const p of propertyMap) {
@@ -238,7 +251,7 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
238
251
  relatedPropertyName,
239
252
  AppPropertyName: 'processes',
240
253
  });
241
- return;
254
+ break;
242
255
  }
243
256
 
244
257
  const entity = rootNode.entities.find((e) => e.name === nodeName);
@@ -252,7 +265,7 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
252
265
  relatedPropertyName,
253
266
  AppPropertyName: 'entities',
254
267
  });
255
- return;
268
+ break;
256
269
  }
257
270
  } else {
258
271
  const nsPath = `${ns}.${calleeN}`;
@@ -275,9 +288,26 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
275
288
  case BACKTACKING_PROPERTY.ENTITY_NAMESPACE:
276
289
  case BACKTACKING_PROPERTY.RELATION_NAMESPACE:
277
290
  break;
291
+ case ENTITY_AS_NAME:
292
+ // 现在还不存在 asName 先直接当 Entity 名称来用。
293
+ callback(TRACK_TYPE.PROPERTY_TEMPLATE, propertyName, property, {
294
+ getRelatedVar: () => {
295
+ const queryCom = node.getAncestor('CallQueryComponent');
296
+ if (queryCom) {
297
+ const entities = node.app.entities;
298
+ // entityAsName === entity.name
299
+ return entities.find((e) => e.name === property);
300
+ }
301
+ return null;
302
+ },
303
+ relatedProperty: 'name',
304
+ });
305
+
306
+ break;
307
+
278
308
  default:
279
- if (property !== undefined && property !== null) {
280
- if (objectRef) {
309
+ if (property !== undefined) {
310
+ if (objectRef && property !== null) {
281
311
  callback(TRACK_TYPE.PROPERTY, propertyName, property);
282
312
  } else {
283
313
  callback(TRACK_TYPE.PLAIN, propertyName, property);
@@ -287,7 +317,7 @@ const tracking = (exports.tracking = function tracking(node, startNode, callback
287
317
  }
288
318
  }
289
319
  }
290
- });
320
+ }
291
321
 
292
322
  function getAppPropertyName(node) {
293
323
  const { propertyMap } = getConceptMeta('App');
@@ -301,7 +331,7 @@ function getAppPropertyName(node) {
301
331
  return undefined;
302
332
  }
303
333
 
304
- const backtracking = (exports.backtracking = function backtracking({ node, startNode, calleeNode, propertyName, relatedPropertyName }, callback) {
334
+ export function backtracking({ node, startNode, calleeNode, propertyName, relatedPropertyName }, callback) {
305
335
  const m = calleeNode.getAncestor('Module');
306
336
  if (m) {
307
337
  callback(TRACK_TYPE.PLAIN, propertyName, node[propertyName]);
@@ -332,4 +362,4 @@ const backtracking = (exports.backtracking = function backtracking({ node, start
332
362
  relatedPropertyName,
333
363
  AppPropertyName,
334
364
  });
335
- });
365
+ }