@lcap/nasl 1.0.1 → 2.12.0-beta.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 (364) hide show
  1. package/out/automate/engine/index.d.ts +1 -0
  2. package/out/automate/engine/index.js +34 -12
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/operators.d.ts +10 -2
  5. package/out/automate/engine/operators.js +105 -7
  6. package/out/automate/engine/operators.js.map +1 -1
  7. package/out/automate/engine/uniqueName.d.ts +8 -2
  8. package/out/automate/engine/uniqueName.js +72 -4
  9. package/out/automate/engine/uniqueName.js.map +1 -1
  10. package/out/automate/engine/utils.d.ts +1 -0
  11. package/out/automate/engine/utils.js +108 -67
  12. package/out/automate/engine/utils.js.map +1 -1
  13. package/out/automate/template/process.d.ts +9 -0
  14. package/out/automate/template/process.js +10976 -0
  15. package/out/automate/template/process.js.map +1 -0
  16. package/out/bak/translator.js +1 -0
  17. package/out/bak/translator.js.map +1 -1
  18. package/out/common/BaseNode.d.ts +6 -1
  19. package/out/common/BaseNode.js +37 -6
  20. package/out/common/BaseNode.js.map +1 -1
  21. package/out/concepts/App__.d.ts +52 -49
  22. package/out/concepts/App__.js +89 -53
  23. package/out/concepts/App__.js.map +1 -1
  24. package/out/concepts/Assignee__.d.ts +11 -0
  25. package/out/concepts/Assignee__.js +34 -0
  26. package/out/concepts/Assignee__.js.map +1 -1
  27. package/out/concepts/BindAttribute__.js +2 -2
  28. package/out/concepts/BindAttribute__.js.map +1 -1
  29. package/out/concepts/BindDirective__.js +10 -3
  30. package/out/concepts/BindDirective__.js.map +1 -1
  31. package/out/concepts/BindEvent__.js +15 -6
  32. package/out/concepts/BindEvent__.js.map +1 -1
  33. package/out/concepts/BooleanLiteral__.d.ts +4 -0
  34. package/out/concepts/BooleanLiteral__.js +11 -0
  35. package/out/concepts/BooleanLiteral__.js.map +1 -1
  36. package/out/concepts/CallFunction__.js +9 -4
  37. package/out/concepts/CallFunction__.js.map +1 -1
  38. package/out/concepts/CallLogic__.js +48 -30
  39. package/out/concepts/CallLogic__.js.map +1 -1
  40. package/out/concepts/CallQueryComponent__.d.ts +34 -4
  41. package/out/concepts/CallQueryComponent__.js +340 -95
  42. package/out/concepts/CallQueryComponent__.js.map +1 -1
  43. package/out/concepts/Comment__.js +1 -1
  44. package/out/concepts/Comment__.js.map +1 -1
  45. package/out/concepts/ConfigGroup__.d.ts +1 -0
  46. package/out/concepts/ConfigGroup__.js +7 -0
  47. package/out/concepts/ConfigGroup__.js.map +1 -1
  48. package/out/concepts/ConfigProperty__.d.ts +1 -0
  49. package/out/concepts/ConfigProperty__.js +3 -0
  50. package/out/concepts/ConfigProperty__.js.map +1 -1
  51. package/out/concepts/Configuration__.d.ts +1 -0
  52. package/out/concepts/Configuration__.js +3 -0
  53. package/out/concepts/Configuration__.js.map +1 -1
  54. package/out/concepts/Constant__.js +6 -6
  55. package/out/concepts/Constant__.js.map +1 -1
  56. package/out/concepts/DataSource__.d.ts +143 -0
  57. package/out/concepts/DataSource__.js +318 -0
  58. package/out/concepts/DataSource__.js.map +1 -0
  59. package/out/concepts/Destination__.js +22 -8
  60. package/out/concepts/Destination__.js.map +1 -1
  61. package/out/concepts/End__.js +2 -2
  62. package/out/concepts/End__.js.map +1 -1
  63. package/out/concepts/EntityIndex__.d.ts +5 -0
  64. package/out/concepts/EntityIndex__.js +10 -2
  65. package/out/concepts/EntityIndex__.js.map +1 -1
  66. package/out/concepts/EntityProperty__.d.ts +9 -0
  67. package/out/concepts/EntityProperty__.js +22 -7
  68. package/out/concepts/EntityProperty__.js.map +1 -1
  69. package/out/concepts/Entity__.d.ts +6 -0
  70. package/out/concepts/Entity__.js +27 -11
  71. package/out/concepts/Entity__.js.map +1 -1
  72. package/out/concepts/Enum__.d.ts +1 -0
  73. package/out/concepts/Enum__.js +14 -4
  74. package/out/concepts/Enum__.js.map +1 -1
  75. package/out/concepts/ForEachStatement__.js +2 -2
  76. package/out/concepts/ForEachStatement__.js.map +1 -1
  77. package/out/concepts/Function__.d.ts +18 -0
  78. package/out/concepts/Function__.js +96 -1
  79. package/out/concepts/Function__.js.map +1 -1
  80. package/out/concepts/Identifier__.js +5 -14
  81. package/out/concepts/Identifier__.js.map +1 -1
  82. package/out/concepts/IfStatement__.js +8 -8
  83. package/out/concepts/IfStatement__.js.map +1 -1
  84. package/out/concepts/InterfaceParam__.js +9 -4
  85. package/out/concepts/InterfaceParam__.js.map +1 -1
  86. package/out/concepts/Interface__.js +19 -12
  87. package/out/concepts/Interface__.js.map +1 -1
  88. package/out/concepts/JSBlock__.js +3 -5
  89. package/out/concepts/JSBlock__.js.map +1 -1
  90. package/out/concepts/Logic__.js +44 -44
  91. package/out/concepts/Logic__.js.map +1 -1
  92. package/out/concepts/Module__.d.ts +116 -194
  93. package/out/concepts/Module__.js +31 -114
  94. package/out/concepts/Module__.js.map +1 -1
  95. package/out/concepts/Namespace__.d.ts +0 -86
  96. package/out/concepts/Namespace__.js +1 -108
  97. package/out/concepts/Namespace__.js.map +1 -1
  98. package/out/concepts/Param__.d.ts +3 -2
  99. package/out/concepts/Param__.js +15 -8
  100. package/out/concepts/Param__.js.map +1 -1
  101. package/out/concepts/ProcessElement__.js +38 -12
  102. package/out/concepts/ProcessElement__.js.map +1 -1
  103. package/out/concepts/Process__.d.ts +1 -1
  104. package/out/concepts/Process__.js +17 -10
  105. package/out/concepts/Process__.js.map +1 -1
  106. package/out/concepts/QueryAggregateExpression__.js +1 -1
  107. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  108. package/out/concepts/QueryFieldExpression__.d.ts +1 -0
  109. package/out/concepts/QueryFieldExpression__.js +11 -1
  110. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  111. package/out/concepts/QueryFromExpression__.d.ts +4 -0
  112. package/out/concepts/QueryFromExpression__.js +13 -2
  113. package/out/concepts/QueryFromExpression__.js.map +1 -1
  114. package/out/concepts/QueryGroupByExpression__.d.ts +3 -0
  115. package/out/concepts/QueryGroupByExpression__.js +20 -0
  116. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  117. package/out/concepts/QueryJoinExpression__.d.ts +4 -0
  118. package/out/concepts/QueryJoinExpression__.js +14 -3
  119. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  120. package/out/concepts/Return__.d.ts +1 -1
  121. package/out/concepts/Return__.js +16 -11
  122. package/out/concepts/Return__.js.map +1 -1
  123. package/out/concepts/Role__.js +10 -3
  124. package/out/concepts/Role__.js.map +1 -1
  125. package/out/concepts/SqlQueryComponent__.d.ts +14 -0
  126. package/out/concepts/SqlQueryComponent__.js +48 -5
  127. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  128. package/out/concepts/StringLiteral__.d.ts +1 -1
  129. package/out/concepts/StringLiteral__.js +2 -9
  130. package/out/concepts/StringLiteral__.js.map +1 -1
  131. package/out/concepts/StructureProperty__.js +11 -10
  132. package/out/concepts/StructureProperty__.js.map +1 -1
  133. package/out/concepts/Structure__.js +19 -12
  134. package/out/concepts/Structure__.js.map +1 -1
  135. package/out/concepts/SwitchCase__.d.ts +1 -1
  136. package/out/concepts/SwitchCase__.js +23 -25
  137. package/out/concepts/SwitchCase__.js.map +1 -1
  138. package/out/concepts/SwitchStatement__.js +1 -6
  139. package/out/concepts/SwitchStatement__.js.map +1 -1
  140. package/out/concepts/TypeAnnotation__.d.ts +8 -0
  141. package/out/concepts/TypeAnnotation__.js +53 -3
  142. package/out/concepts/TypeAnnotation__.js.map +1 -1
  143. package/out/concepts/Variable__.d.ts +1 -1
  144. package/out/concepts/Variable__.js +16 -11
  145. package/out/concepts/Variable__.js.map +1 -1
  146. package/out/concepts/ViewElement__.js +25 -20
  147. package/out/concepts/ViewElement__.js.map +1 -1
  148. package/out/concepts/View__.d.ts +1 -3
  149. package/out/concepts/View__.js +42 -36
  150. package/out/concepts/View__.js.map +1 -1
  151. package/out/concepts/WhileStatement__.js +4 -4
  152. package/out/concepts/WhileStatement__.js.map +1 -1
  153. package/out/concepts/basics/stdlib/nasl.auth.js +20 -0
  154. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  155. package/out/concepts/basics/stdlib/nasl.configuration.js +1 -1
  156. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
  157. package/out/concepts/basics/stdlib/nasl.interface.d.ts +2 -0
  158. package/out/concepts/basics/stdlib/nasl.interface.js +4 -4
  159. package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
  160. package/out/concepts/basics/stdlib/nasl.process.d.ts +4 -0
  161. package/out/concepts/basics/stdlib/nasl.process.js +410 -0
  162. package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
  163. package/out/concepts/basics/stdlib/nasl.ui.js +1 -11
  164. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  165. package/out/concepts/basics/stdlib/nasl.util.js +270 -8
  166. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  167. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +1 -1
  168. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
  169. package/out/concepts/basics/types/index.d.ts +2 -0
  170. package/out/concepts/basics/types/index.js +6 -1
  171. package/out/concepts/basics/types/index.js.map +1 -1
  172. package/out/concepts/index__.d.ts +1 -0
  173. package/out/concepts/index__.js +1 -0
  174. package/out/concepts/index__.js.map +1 -1
  175. package/out/enums/KEYWORDS.js +0 -7
  176. package/out/enums/KEYWORDS.js.map +1 -1
  177. package/out/generator/genBundleFiles.d.ts +3 -1
  178. package/out/generator/genBundleFiles.js +23 -5
  179. package/out/generator/genBundleFiles.js.map +1 -1
  180. package/out/generator/genMetaData.d.ts +1 -0
  181. package/out/generator/genMetaData.js +20 -12
  182. package/out/generator/genMetaData.js.map +1 -1
  183. package/out/index.d.ts +1 -1
  184. package/out/index.js +2 -1
  185. package/out/index.js.map +1 -1
  186. package/out/manager/diagnostic.d.ts +1 -1
  187. package/out/server/createUiTs.js +1 -0
  188. package/out/server/createUiTs.js.map +1 -1
  189. package/out/{test/integration/connect-file copy.d.ts → server/extendBaseNode.d.ts} +0 -0
  190. package/out/server/extendBaseNode.js +323 -0
  191. package/out/server/extendBaseNode.js.map +1 -0
  192. package/out/server/getLogics.js +49 -2
  193. package/out/server/getLogics.js.map +1 -1
  194. package/out/server/getMemberIdentifier.js +52 -2
  195. package/out/server/getMemberIdentifier.js.map +1 -1
  196. package/out/server/getProcesses.d.ts +8 -2
  197. package/out/server/getProcesses.js +228 -20
  198. package/out/server/getProcesses.js.map +1 -1
  199. package/out/server/getScope.d.ts +1 -0
  200. package/out/server/getScope.js +4 -0
  201. package/out/server/getScope.js.map +1 -1
  202. package/out/server/index.d.ts +1 -0
  203. package/out/server/index.js +1 -0
  204. package/out/server/index.js.map +1 -1
  205. package/out/server/naslServer.d.ts +8 -5
  206. package/out/server/naslServer.js +314 -383
  207. package/out/server/naslServer.js.map +1 -1
  208. package/out/server/process2LogicNamespace.js +10 -1
  209. package/out/server/process2LogicNamespace.js.map +1 -1
  210. package/out/server/translator.d.ts +1 -1
  211. package/out/server/translator.js +40 -2
  212. package/out/server/translator.js.map +1 -1
  213. package/out/service/creator/errHandles.js +5 -0
  214. package/out/service/creator/errHandles.js.map +1 -1
  215. package/out/service/storage/init.d.ts +1 -0
  216. package/out/service/storage/init.js +113 -94
  217. package/out/service/storage/init.js.map +1 -1
  218. package/out/templator/genCreateBlock.js +34 -24
  219. package/out/templator/genCreateBlock.js.map +1 -1
  220. package/out/templator/genCurdEditMultipleKeyBlock.js +28 -18
  221. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  222. package/out/templator/genCurdMultipleKeyBlock.js +45 -29
  223. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  224. package/out/templator/genEditTableBlock.js +15 -13
  225. package/out/templator/genEditTableBlock.js.map +1 -1
  226. package/out/templator/genEnumSelectBlock.js +1 -1
  227. package/out/templator/genEnumSelectBlock.js.map +1 -1
  228. package/out/templator/genGetBlock.js +1 -1
  229. package/out/templator/genGetBlock.js.map +1 -1
  230. package/out/templator/genGridViewBlock.js +29 -24
  231. package/out/templator/genGridViewBlock.js.map +1 -1
  232. package/out/templator/genListViewBlock.js +7 -5
  233. package/out/templator/genListViewBlock.js.map +1 -1
  234. package/out/templator/genQueryComponent.js +31 -29
  235. package/out/templator/genQueryComponent.js.map +1 -1
  236. package/out/templator/genSelectBlock.js +13 -22
  237. package/out/templator/genSelectBlock.js.map +1 -1
  238. package/out/templator/genTableBlock.js +31 -21
  239. package/out/templator/genTableBlock.js.map +1 -1
  240. package/out/templator/genUpdateBlock.js +35 -25
  241. package/out/templator/genUpdateBlock.js.map +1 -1
  242. package/out/templator/utils.d.ts +5 -3
  243. package/out/templator/utils.js +2 -1
  244. package/out/templator/utils.js.map +1 -1
  245. package/out/test/integration/connect-file.js +6 -6
  246. package/out/test/integration/connect-file.js.map +1 -1
  247. package/out/translator/index.js +1 -1
  248. package/out/translator/index.js.map +1 -1
  249. package/out/utils/index.d.ts +5 -0
  250. package/out/utils/index.js +50 -1
  251. package/out/utils/index.js.map +1 -1
  252. package/package.json +1 -2
  253. package/src/automate/engine/index.js +33 -8
  254. package/src/automate/engine/operators.js +114 -17
  255. package/src/automate/engine/uniqueName.js +77 -9
  256. package/src/automate/engine/utils.js +110 -69
  257. package/src/automate/template/process.js +10999 -0
  258. package/src/bak/translator.js +1 -0
  259. package/src/common/BaseNode.ts +35 -7
  260. package/src/concepts/App__.ts +132 -131
  261. package/src/concepts/Assignee__.ts +30 -0
  262. package/src/concepts/BindAttribute__.ts +2 -2
  263. package/src/concepts/BindDirective__.ts +9 -7
  264. package/src/concepts/BindEvent__.ts +14 -6
  265. package/src/concepts/BooleanLiteral__.ts +12 -0
  266. package/src/concepts/CallFunction__.ts +7 -4
  267. package/src/concepts/CallLogic__.ts +47 -32
  268. package/src/concepts/CallQueryComponent__.ts +352 -101
  269. package/src/concepts/Comment__.ts +1 -1
  270. package/src/concepts/ConfigGroup__.ts +3 -1
  271. package/src/concepts/ConfigProperty__.ts +4 -0
  272. package/src/concepts/Configuration__.ts +3 -0
  273. package/src/concepts/Constant__.ts +6 -6
  274. package/src/concepts/DataSource__.ts +391 -0
  275. package/src/concepts/Destination__.ts +22 -8
  276. package/src/concepts/End__.ts +2 -2
  277. package/src/concepts/EntityIndex__.ts +11 -2
  278. package/src/concepts/EntityProperty__.ts +23 -7
  279. package/src/concepts/Entity__.ts +38 -14
  280. package/src/concepts/Enum__.ts +15 -4
  281. package/src/concepts/ForEachStatement__.ts +2 -2
  282. package/src/concepts/Function__.ts +95 -1
  283. package/src/concepts/Identifier__.ts +5 -14
  284. package/src/concepts/IfStatement__.ts +9 -9
  285. package/src/concepts/InterfaceParam__.ts +9 -4
  286. package/src/concepts/Interface__.ts +20 -12
  287. package/src/concepts/JSBlock__.ts +3 -12
  288. package/src/concepts/Logic__.ts +45 -79
  289. package/src/concepts/Module__.ts +141 -342
  290. package/src/concepts/Namespace__.ts +1 -204
  291. package/src/concepts/Param__.ts +17 -9
  292. package/src/concepts/ProcessElement__.ts +42 -15
  293. package/src/concepts/Process__.ts +18 -12
  294. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  295. package/src/concepts/QueryFieldExpression__.ts +13 -1
  296. package/src/concepts/QueryFromExpression__.ts +13 -2
  297. package/src/concepts/QueryGroupByExpression__.ts +23 -0
  298. package/src/concepts/QueryJoinExpression__.ts +14 -3
  299. package/src/concepts/Return__.ts +16 -11
  300. package/src/concepts/Role__.ts +10 -4
  301. package/src/concepts/SqlQueryComponent__.ts +47 -11
  302. package/src/concepts/StringLiteral__.ts +2 -9
  303. package/src/concepts/StructureProperty__.ts +11 -14
  304. package/src/concepts/Structure__.ts +19 -11
  305. package/src/concepts/SwitchCase__.ts +23 -27
  306. package/src/concepts/SwitchStatement__.ts +1 -5
  307. package/src/concepts/TypeAnnotation__.ts +52 -3
  308. package/src/concepts/Variable__.ts +16 -11
  309. package/src/concepts/ViewElement__.ts +26 -39
  310. package/src/concepts/View__.ts +45 -38
  311. package/src/concepts/WhileStatement__.ts +4 -4
  312. package/src/concepts/basics/stdlib/nasl.auth.ts +20 -0
  313. package/src/concepts/basics/stdlib/nasl.configuration.ts +1 -1
  314. package/src/concepts/basics/stdlib/nasl.interface.ts +1 -1
  315. package/src/concepts/basics/stdlib/nasl.process.ts +406 -0
  316. package/src/concepts/basics/stdlib/nasl.ui.ts +1 -11
  317. package/src/concepts/basics/stdlib/nasl.util.ts +271 -8
  318. package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +1 -1
  319. package/src/concepts/basics/types/index.ts +2 -0
  320. package/src/concepts/index__.ts +1 -0
  321. package/src/enums/KEYWORDS.ts +0 -7
  322. package/src/generator/genBundleFiles.ts +28 -7
  323. package/src/generator/genMetaData.ts +22 -13
  324. package/src/index.ts +1 -1
  325. package/src/manager/diagnostic.ts +1 -1
  326. package/src/server/createUiTs.ts +1 -0
  327. package/src/server/extendBaseNode.ts +318 -0
  328. package/src/server/getLogics.ts +51 -5
  329. package/src/server/getMemberIdentifier.ts +53 -2
  330. package/src/server/getProcesses.ts +238 -21
  331. package/src/server/getScope.ts +5 -0
  332. package/src/server/index.ts +1 -0
  333. package/src/server/naslServer.ts +322 -380
  334. package/src/server/process2LogicNamespace.ts +29 -19
  335. package/src/server/translator.ts +42 -2
  336. package/src/service/creator/errHandles.js +6 -0
  337. package/src/service/storage/init.ts +115 -97
  338. package/src/templator/genCreateBlock.ts +35 -26
  339. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -21
  340. package/src/templator/genCurdMultipleKeyBlock.ts +46 -31
  341. package/src/templator/genEditTableBlock.ts +17 -14
  342. package/src/templator/genEnumSelectBlock.ts +1 -1
  343. package/src/templator/genGetBlock.ts +1 -1
  344. package/src/templator/genGridViewBlock.ts +30 -25
  345. package/src/templator/genListViewBlock.ts +10 -7
  346. package/src/templator/genQueryComponent.ts +34 -30
  347. package/src/templator/genSelectBlock.ts +14 -23
  348. package/src/templator/genTableBlock.ts +32 -23
  349. package/src/templator/genUpdateBlock.ts +36 -26
  350. package/src/templator/utils.ts +5 -2
  351. package/src/test/integration/connect-file.ts +6 -6
  352. package/src/translator/index.ts +1 -1
  353. package/src/utils/index.ts +51 -0
  354. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +0 -3
  355. package/out/concepts/basics/stdlib/nasl.browser copy.js +0 -70
  356. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +0 -1
  357. package/out/terms/LEVEL_NAME_MAP.d.ts +0 -26
  358. package/out/terms/LEVEL_NAME_MAP.js +0 -30
  359. package/out/terms/LEVEL_NAME_MAP.js.map +0 -1
  360. package/out/test/integration/connect-file copy.js +0 -50
  361. package/out/test/integration/connect-file copy.js.map +0 -1
  362. package/out/test/integration/node-nasl-server.d.ts +0 -1
  363. package/out/test/integration/node-nasl-server.js +0 -41
  364. package/out/test/integration/node-nasl-server.js.map +0 -1
@@ -14,12 +14,61 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.shouldLoadCss = exports.specialOfficialCustoms = exports.officialCustoms = exports.waitPromise = exports.clearObjectDeep = exports.clearObject = exports.throttle = exports.getGlobalEnv = void 0;
17
+ exports.shouldLoadCss = exports.specialOfficialCustoms = exports.officialCustoms = exports.waitPromise = exports.clearObjectDeep = exports.clearObject = exports.throttle = exports.getGlobalEnv = exports.findConceptValueFromNamespace = exports.findConceptKeyWordIndexFromNamespace = exports.findConceptKeyWordByNamespace = exports.findClosestModule = void 0;
18
18
  __exportStar(require("./string"), exports);
19
19
  __exportStar(require("./traverse"), exports);
20
20
  __exportStar(require("./logger"), exports);
21
21
  const compare_versions_1 = require("compare-versions");
22
22
  const traverse_1 = require("./traverse");
23
+ // 查找最近的模块
24
+ function findClosestModule(node) {
25
+ let moduleNode = node;
26
+ while (moduleNode && !['App', 'Module'].includes(moduleNode.concept)) {
27
+ moduleNode = moduleNode.parentNode;
28
+ }
29
+ return moduleNode;
30
+ }
31
+ exports.findClosestModule = findClosestModule;
32
+ // 从namespace获取关键字
33
+ function findConceptKeyWordByNamespace(namespace) {
34
+ const namespaceArr = namespace?.split('.') || [];
35
+ const start = namespaceArr[0];
36
+ const mod = start === 'app' ? 1 : 0;
37
+ const keywordViews = namespaceArr.filter((namespaceItem, index) => index % 2 === mod);
38
+ return keywordViews.pop();
39
+ }
40
+ exports.findConceptKeyWordByNamespace = findConceptKeyWordByNamespace;
41
+ // 从namespace中查找concept关键字
42
+ function findConceptKeyWordIndexFromNamespace(namespace, keyword) {
43
+ const namespaceArr = namespace?.split('.') || [];
44
+ const start = namespaceArr[0];
45
+ const mod = start === 'app' ? 1 : 0;
46
+ return namespaceArr.findIndex((namespaceItem, index) => {
47
+ if (index % 2 === mod) {
48
+ return namespaceItem === keyword;
49
+ }
50
+ return false;
51
+ });
52
+ }
53
+ exports.findConceptKeyWordIndexFromNamespace = findConceptKeyWordIndexFromNamespace;
54
+ // 从namespace中查找concept,返回找到类型对应的值
55
+ // 如 namespace : app.datasource.defaultDS keyword: datasource
56
+ // 返回 defaultDS
57
+ function findConceptValueFromNamespace(namespace, keyword) {
58
+ const namespaceArr = namespace?.split('.') || [];
59
+ const start = namespaceArr[0];
60
+ const mod = start === 'app' ? 1 : 0;
61
+ const findIndex = namespaceArr.findIndex((namespaceItem, index) => {
62
+ if (index % 2 === mod) {
63
+ return namespaceItem === keyword;
64
+ }
65
+ return false;
66
+ });
67
+ if (findIndex)
68
+ return namespaceArr[findIndex + 1];
69
+ return '';
70
+ }
71
+ exports.findConceptValueFromNamespace = findConceptValueFromNamespace;
23
72
  function getGlobalEnv() {
24
73
  return typeof window !== 'undefined' ? window.appInfo.env : global.appInfoEnv;
25
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AAEzB,uDAA2C;AAC3C,yCAAsC;AAEtC,SAAgB,YAAY;IACxB,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAE,MAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,MAAc,CAAC,UAAU,CAAC;AACpG,CAAC;AAFD,oCAEC;AAED;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAE,IAAY,EAAE,OAAY,EAAE,EAAE,CAAC,IAAI,CAAC;AAAhE,QAAA,QAAQ,YAAwD;AAE7E,SAAgB,WAAW,CAAC,GAAQ;IAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAC3C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC;AALD,kCAKC;AAED,SAAgB,eAAe,CAAC,GAAQ;IACpC,IAAA,mBAAQ,EAAC,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;gBAC1B,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC;AAPD,0CAOC;AAEM,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAAxF,QAAA,WAAW,eAA6E;AAErG,qBAAqB;AACR,QAAA,eAAe,GAAG;IAC3B,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,YAAY;CACf,CAAC;AACF,8BAA8B;AACjB,QAAA,sBAAsB,GAAG,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7F,yBAAyB;AAClB,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAAe,EAAW,EAAE,CAAC,CAAC,CAAC,uBAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;OACpG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;OACrB,CAAC,8BAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,IAAA,0BAAO,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAF/F,QAAA,aAAa,iBAEkF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lcap/nasl",
3
3
  "description": "NetEase Application Specific Language",
4
- "version": "1.0.1",
4
+ "version": "2.12.0-beta.1",
5
5
  "author": "Forrest <rainforest92@126.com>",
6
6
  "scripts": {
7
7
  "dev": "tsc -watch -p ./",
@@ -38,7 +38,6 @@
38
38
  "fs-extra": "^10.1.0",
39
39
  "json-stringify-safe": "^5.0.1",
40
40
  "lodash": "^4.17.21",
41
- "module-alias": "^2.2.2",
42
41
  "pluralize": "^8.0.0",
43
42
  "postcss": "^8.4.14",
44
43
  "qs": "^6.10.1",
@@ -3,8 +3,9 @@ import { BaseNode } from '../../common/BaseNode';
3
3
  import { tracking, TRACK_TYPE, IGNORE_PROPERTY } from './utils';
4
4
  import { getConceptConstructor, getConceptMeta } from '../../decorators/index';
5
5
  // import { unique, firstUpperCase } from '../../utils/string';
6
- import uniqueNameModule from './uniqueName';
7
- import operatorModule from './operators';
6
+ import {uniqueName, componentUniqueName} from './uniqueName';
7
+ import { ops as operatorModule, ComponentOps } from './operators';
8
+ import { processComponent } from '../template/process';
8
9
 
9
10
  let id = 0;
10
11
  class TemplateMeta {
@@ -23,10 +24,12 @@ class TemplateMeta {
23
24
 
24
25
  addRootBinds(propertyName, templateMeta) {
25
26
  // App.[propertyName].push(templateMeta.name)
26
- this.rootBinds.push({
27
- propertyName,
28
- value: templateMeta.name,
29
- });
27
+ if(!this.rootBinds.find(b => b.propertyName === propertyName)) {
28
+ this.rootBinds.push({
29
+ propertyName,
30
+ value: templateMeta.name,
31
+ });
32
+ }
30
33
  }
31
34
 
32
35
  addBinds(type, propertyName, templateMeta) {
@@ -324,6 +327,7 @@ export function autoTemplate(node) {
324
327
  const stack = [];
325
328
  const startNode = node;
326
329
  let rootNode = true;
330
+ const finalOps = [];
327
331
  function iterator(node) {
328
332
  if (node && !visitedMap.has(node)) {
329
333
  const meta = new TemplateMeta(node);
@@ -341,12 +345,21 @@ export function autoTemplate(node) {
341
345
  break;
342
346
  case TRACK_TYPE.PROPERTY:
343
347
  case TRACK_TYPE.ARRAY:
344
- iterator(property);
348
+ iterator(property);
345
349
  const pmeta = visitedMap.get(property);
346
350
  meta.addBinds(type, propertyName, pmeta);
347
351
  break;
352
+ case TRACK_TYPE.ARRAY_NO_FURTHER:
353
+ finalOps.push(() => {
354
+ const pmeta = visitedMap.get(property);
355
+ if(pmeta) {
356
+ meta.addBinds(TRACK_TYPE.ARRAY, propertyName, pmeta);
357
+ }
358
+ })
359
+ break;
348
360
  case TRACK_TYPE.CALLEE:
349
361
  iterator(rootNode);
362
+ iterator(calleeNode);
350
363
  const cmeta = visitedMap.get(calleeNode);
351
364
  if (AppPropertyName) {
352
365
  meta.addRootBinds(AppPropertyName, visitedMap.get(rootNode));
@@ -399,6 +412,7 @@ export function autoTemplate(node) {
399
412
  }
400
413
 
401
414
  iterator(node);
415
+ finalOps.forEach(f => { f(); });
402
416
  return autoScript(stack);
403
417
  }
404
418
 
@@ -425,7 +439,18 @@ export function applyTemplate(script, app, rootBindCallback, roleCallback, final
425
439
  // 为了兼容 2.11 老模板
426
440
  if(importModule) {
427
441
  importModule('operators', operatorModule);
428
- importModule('uniqueName', uniqueNameModule);
442
+ importModule('uniqueName', uniqueName);
429
443
  }
430
444
  execTemplate(app, getConceptConstructor, getConceptMeta, BaseNode, rootBindCallback, roleCallback, finalCallback);
431
445
  }
446
+
447
+ export function applyDropComponent(app, view, element) {
448
+ const { execTemplate, importModule } = processComponent;
449
+ // 为了兼容 2.11 老模板
450
+ if (importModule) {
451
+ importModule('operators', ComponentOps);
452
+ importModule('uniqueName', componentUniqueName);
453
+ }
454
+ view.collectExistingViewElementName();
455
+ return execTemplate(app, view, element);
456
+ }
@@ -1,28 +1,76 @@
1
1
  import { BaseNode } from '../../common/BaseNode';
2
2
  import { getConceptConstructor, getConceptMeta } from '../../decorators/index';
3
- import { firstUpperCase } from '../../utils/string';
3
+ import { firstUpperCase, unique } from '../../utils/string';
4
4
 
5
5
  function instanceOfBaseNode(item) {
6
6
  return (item instanceof BaseNode);
7
7
  }
8
- const ops = {
8
+ export const ops = {
9
9
  _set(item, propertyName, value, callback) {
10
- if(instanceOfBaseNode(value)) {
10
+ if (instanceOfBaseNode(value)) {
11
11
  value.parentNode = item;
12
12
  value.parentKey = propertyName;
13
13
  }
14
- if(item[propertyName] !== value) {
14
+ if (item[propertyName] !== value) {
15
15
  item.update({
16
16
  [propertyName]: value,
17
17
  });
18
-
19
- if(instanceOfBaseNode(value) && callback) {
18
+
19
+ if (instanceOfBaseNode(value) && callback) {
20
20
  callback(item[propertyName]);
21
21
  }
22
22
  }
23
23
  },
24
24
  _push(item, propertyName, value) {
25
- if(!item[propertyName]){
25
+ if (propertyName === 'dataSources' && value.concept === 'DataSource') {
26
+ // 合并策略
27
+ const exsitDataSource = item.dataSources.find((d) => d.name === value.name);
28
+ if (exsitDataSource) {
29
+ const nameSet = new Set(exsitDataSource.getEntityExistingNames());
30
+ value.entities.forEach((e) => {
31
+ const n = unique(e.name, nameSet, 1, true);
32
+ nameSet.add(n);
33
+ e.update({
34
+ name: n,
35
+ });
36
+ e.parentNode = exsitDataSource;
37
+ exsitDataSource.entities.push(e);
38
+ const index = exsitDataSource.entities.length;
39
+ e.create({
40
+ index,
41
+ parentNode: exsitDataSource,
42
+ parentKey: 'entities',
43
+ });
44
+ });
45
+ return;
46
+ } else {
47
+ const dataSourceGroup = item.configuration?.getGroup('dataSource');
48
+ dataSourceGroup.addConfigProperty({
49
+ name: value.name,
50
+ description: '',
51
+ values: [
52
+ { env: 'dev', value: '', concept: 'ConfigPropertyValue' },
53
+ { env: 'online', value: '', concept: 'ConfigPropertyValue' },
54
+ ],
55
+ });
56
+ }
57
+ }
58
+ if (item.concept === 'App' && propertyName === 'entities' && value.concept === 'Entity') {
59
+ // 兼容 2.11之前无 datasource 模板
60
+ const defaultDS = item.dataSources.find((d) => d.name === 'defaultDS');
61
+ // defaultDS.addEntity(value);
62
+ value.parentNode = defaultDS;
63
+ value.parentKey = 'entities';
64
+ defaultDS.entities.push(value);
65
+ const index = defaultDS.entities.length;
66
+ value.create({
67
+ index,
68
+ parentNode: defaultDS,
69
+ parentKey: 'entities',
70
+ });
71
+ return;
72
+ }
73
+ if (!item[propertyName]) {
26
74
  item[propertyName] = [];
27
75
  }
28
76
  value.parentNode = item;
@@ -39,10 +87,10 @@ const ops = {
39
87
  const _ctor = getConceptConstructor(concept);
40
88
  const item = new _ctor();
41
89
  const { propertyMap } = getConceptMeta(concept);
42
- for(const p of propertyMap) {
90
+ for (const p of propertyMap) {
43
91
  const [propertyName] = p;
44
92
  const t = item[propertyName];
45
- if(Array.isArray(t)) {
93
+ if (Array.isArray(t)) {
46
94
  ops._set(item, propertyName, []);
47
95
  }
48
96
  }
@@ -50,14 +98,63 @@ const ops = {
50
98
  },
51
99
  _addModule(app, name, belongs, data) {
52
100
  const ms = app[belongs];
53
- const exist = ms.find(m => m.name === name);
54
- if(!exist) {
55
- app["addModuleIn" + firstUpperCase(belongs)](data);
101
+ const exist = ms.find((m) => m.name === name);
102
+ if (!exist) {
103
+ app['addModuleIn' + firstUpperCase(belongs)](data);
56
104
  }
57
105
  },
58
- _bindRoles(){
59
- return Array.prototype.map.call(arguments, r => r.name);
60
- }
61
- }
106
+ _bindRoles() {
107
+ return Array.prototype.map.call(arguments, (r) => r.name);
108
+ },
109
+ };
110
+ //组件模板的导入有些不同
111
+ let handleDatas = [];
112
+ let dynamicNames = {};
113
+ export const ComponentOps = {
114
+ ...ops,
115
+ _set(item, propertyName, value, callback) {
116
+ if (instanceOfBaseNode(value)) {
117
+ value.parentNode = item;
118
+ value.parentKey = propertyName;
119
+ }
120
+ if (item[propertyName] !== value) {
121
+ //指view的全局逻辑或全局变量名称修改
122
+ if (propertyName === 'name' && dynamicNames[item.name]) {
123
+ dynamicNames[item.name] = value;
124
+ }
125
+ item.update({
126
+ [propertyName]: value,
127
+ });
128
+ //有函数或者组件引用了view的全局逻辑或全局变量名称
129
+ if ((propertyName === 'name' || propertyName === 'calleeName') && dynamicNames[value]
130
+ && item.parentKey !== 'property' && item.concept !== 'StructureProperty') {
131
+ handleDatas.push({
132
+ item,
133
+ propertyName,
134
+ });
135
+ }
136
+
137
+ if (instanceOfBaseNode(value) && callback) {
138
+ callback(item[propertyName]);
139
+ }
140
+ }
141
+ },
142
+ _rename() {
143
+ handleDatas.forEach(({ item, propertyName }) => {
144
+ const changeName = item[propertyName];
145
+ if (dynamicNames[changeName] && changeName !== dynamicNames[changeName])
146
+ item.update({
147
+ [propertyName]: dynamicNames[changeName],
148
+ });
149
+ });
150
+ handleDatas = [];
151
+ dynamicNames = {};
152
+ },
153
+ _startNames(...initialNames) {
154
+ initialNames.forEach((name) => {
155
+ dynamicNames[name] = name;
156
+ });
157
+ },
158
+ };
62
159
 
63
- export default ops;
160
+ export default ops;
@@ -1,9 +1,12 @@
1
1
  import { unique } from '../../utils/string';
2
- class uniqueName {
2
+ export class uniqueName {
3
3
  NamesWeakMap = new Map();
4
4
  initAppUniqueNames(app) {
5
5
  const NamesWeakMap = this.NamesWeakMap;
6
- NamesWeakMap.set('Entity', new Set(app.getEntityExistingNames()));
6
+ const defaultDS = app.dataSources.find(d => d.name === 'defaultDS');
7
+ NamesWeakMap.set('defaultDS', new Set(defaultDS.getEntityExistingNames()));
8
+
9
+ // NamesWeakMap.set('DataSource', new Set(app.getDataSourceExistingNames()));
7
10
  NamesWeakMap.set('Structure', new Set(app.getStructureExistingNames()));
8
11
  NamesWeakMap.set('Enum', new Set(app.getEnumExistingNames()));
9
12
  NamesWeakMap.set('Logic', new Set(app.getLogicExistingNames()));
@@ -15,22 +18,87 @@ class uniqueName {
15
18
  getGenUniqNameFunctionName(item, concept) {
16
19
  const p = item.parentNode;
17
20
  const NamesWeakMap = this.NamesWeakMap;
18
- if(!p) {
21
+ if (!p) {
22
+ // 添加至顶层 App 的对象
23
+ if(concept === 'DataSource') {
24
+ return item.name;
25
+ }
26
+ if(concept === 'Entity') {
27
+ // Entity 是为了兼容 2.11 及之前的模板
28
+ concept = 'defaultDS';
29
+ }
30
+ const nameSet = NamesWeakMap.get(concept);
31
+ const n = unique(item.name, nameSet, 1, true);
32
+ nameSet.add(n);
33
+ return n;
34
+ }
35
+ const f1 = p['get' + concept + 'UniqueName'];
36
+ const f2 = p['get' + concept + 'ExistingNames'];
37
+ if (f1 && f2) {
38
+ const names = f2.call(p);
39
+ const t = names.filter((n) => n === item.name);
40
+ if (t.length > 1) {
41
+ return f1.call(p, item.name);
42
+ }
43
+ }
44
+ return item.name;
45
+ }
46
+ }
47
+
48
+ export class componentUniqueName {
49
+ NamesWeakMap = new Map();
50
+ view = null;
51
+ initAppUniqueNames(app, view) {
52
+ const NamesWeakMap = this.NamesWeakMap;
53
+ this.view = view;
54
+ NamesWeakMap.set('DataSource', new Set(app.getDataSourceExistingNames()));
55
+ NamesWeakMap.set('Structure', new Set(app.getStructureExistingNames()));
56
+ NamesWeakMap.set('Enum', new Set(app.getEnumExistingNames()));
57
+ NamesWeakMap.set('Logic', new Set(app.getLogicExistingNames()));
58
+ NamesWeakMap.set('Interface', new Set(app.getInterfaceExistingNames()));
59
+ NamesWeakMap.set('View', new Set(app.getViewExistingNames()));
60
+ NamesWeakMap.set('Process', new Set(app.getProcessExistingNames()));
61
+ NamesWeakMap.set('Role', new Set(app.getRoleExistingNames()));
62
+ // .... 这里要补一下 view 下面 variable, logics的名字
63
+ NamesWeakMap.set('Variable', new Set(view.getVarExistingNames()));
64
+ NamesWeakMap.set('Logic', new Set(view.getLogicExistingNames()));
65
+ }
66
+ getGenUniqNameFunctionName(item, concept) {
67
+ const p = concept === 'ViewElement' ? this.view : item.parentNode;
68
+ const NamesWeakMap = this.NamesWeakMap;
69
+ if (!p) {
19
70
  const nameSet = NamesWeakMap.get(concept);
20
71
  const n = unique(item.name, nameSet, 1, true);
21
72
  nameSet.add(n);
22
73
  return n;
23
74
  }
24
- const f1 = p["get" + concept + "UniqueName"];
25
- const f2 = p["get" + concept + "ExistingNames"]
26
- if(f1 && f2) {
75
+ const f1 = p['get' + concept + 'UniqueName'];
76
+ const f2 = p['get' + concept + 'ExistingNames'];
77
+ if (f1 && f2) {
27
78
  const names = f2.call(p);
28
- const t = names.filter(n => n === item.name);
29
- if(t.length > 1) {
79
+ const t = names.filter((n) => n === item.name);
80
+ if (t.length > 1) {
81
+ return f1.call(p, item.name);
82
+ }
83
+ if (concept === 'ViewElement' && t.length)
84
+ return f1.call(p, item.name);
85
+ }
86
+ // 逻辑里面的变量也需要再判断
87
+ if (concept === 'Variable' && f1) {
88
+ const variables = p.getVarExistingNames();
89
+ if (Array.isArray(this.view.params)) {
90
+ variables.push(...this.view.params.map((item) => item.name));
91
+ }
92
+ if (Array.isArray(this.view.variables)) {
93
+ variables.push(...this.view.variables.map((item) => item.name));
94
+ }
95
+ const t = variables.filter((n) => n === item.name);
96
+ if (t.length > 1) {
30
97
  return f1.call(p, item.name);
31
98
  }
32
99
  }
33
100
  return item.name;
34
101
  }
35
102
  }
36
- export default uniqueName;
103
+
104
+ export default uniqueName;