@lcap/nasl 1.0.0-alpha.9 → 1.0.0

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 (441) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +513 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/utils.d.ts +24 -0
  5. package/out/automate/engine/utils.js +363 -0
  6. package/out/automate/engine/utils.js.map +1 -0
  7. package/out/common/BaseNode.d.ts +20 -0
  8. package/out/common/BaseNode.js +219 -81
  9. package/out/common/BaseNode.js.map +1 -1
  10. package/out/concepts/App__.d.ts +18 -1
  11. package/out/concepts/App__.js +75 -35
  12. package/out/concepts/App__.js.map +1 -1
  13. package/out/concepts/Argument__.d.ts +5 -1
  14. package/out/concepts/Argument__.js +21 -3
  15. package/out/concepts/Argument__.js.map +1 -1
  16. package/out/concepts/Assignee__.d.ts +190 -0
  17. package/out/concepts/Assignee__.js +264 -0
  18. package/out/concepts/Assignee__.js.map +1 -0
  19. package/out/concepts/Assignment__.js +5 -0
  20. package/out/concepts/Assignment__.js.map +1 -1
  21. package/out/concepts/BinaryExpression__.js +8 -7
  22. package/out/concepts/BinaryExpression__.js.map +1 -1
  23. package/out/concepts/BindAttribute__.d.ts +19 -0
  24. package/out/concepts/BindAttribute__.js +54 -9
  25. package/out/concepts/BindAttribute__.js.map +1 -1
  26. package/out/concepts/BindDirective__.js +22 -2
  27. package/out/concepts/BindDirective__.js.map +1 -1
  28. package/out/concepts/BindEvent__.d.ts +2 -2
  29. package/out/concepts/BindEvent__.js +67 -34
  30. package/out/concepts/BindEvent__.js.map +1 -1
  31. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  32. package/out/concepts/BooleanLiteral__.js +10 -0
  33. package/out/concepts/BooleanLiteral__.js.map +1 -1
  34. package/out/concepts/CallFunction__.js +41 -23
  35. package/out/concepts/CallFunction__.js.map +1 -1
  36. package/out/concepts/CallInterface__.d.ts +5 -0
  37. package/out/concepts/CallInterface__.js +238 -31
  38. package/out/concepts/CallInterface__.js.map +1 -1
  39. package/out/concepts/CallLogic__.d.ts +4 -4
  40. package/out/concepts/CallLogic__.js +110 -53
  41. package/out/concepts/CallLogic__.js.map +1 -1
  42. package/out/concepts/CallQueryComponent__.d.ts +7 -1
  43. package/out/concepts/CallQueryComponent__.js +44 -25
  44. package/out/concepts/CallQueryComponent__.js.map +1 -1
  45. package/out/concepts/Comment__.js +6 -2
  46. package/out/concepts/Comment__.js.map +1 -1
  47. package/out/concepts/CompletionProperty__.d.ts +3 -1
  48. package/out/concepts/CompletionProperty__.js +2 -0
  49. package/out/concepts/CompletionProperty__.js.map +1 -1
  50. package/out/concepts/ConfigGroup__.js +2 -2
  51. package/out/concepts/ConfigGroup__.js.map +1 -1
  52. package/out/concepts/ConfigProperty__.js +2 -2
  53. package/out/concepts/ConfigProperty__.js.map +1 -1
  54. package/out/concepts/Configuration__.js +2 -2
  55. package/out/concepts/Configuration__.js.map +1 -1
  56. package/out/concepts/Constant__.d.ts +1 -0
  57. package/out/concepts/Constant__.js +14 -0
  58. package/out/concepts/Constant__.js.map +1 -1
  59. package/out/concepts/Destination__.d.ts +12 -0
  60. package/out/concepts/Destination__.js +94 -18
  61. package/out/concepts/Destination__.js.map +1 -1
  62. package/out/concepts/End__.js +9 -1
  63. package/out/concepts/End__.js.map +1 -1
  64. package/out/concepts/EntityProperty__.d.ts +11 -0
  65. package/out/concepts/EntityProperty__.js +73 -5
  66. package/out/concepts/EntityProperty__.js.map +1 -1
  67. package/out/concepts/Entity__.d.ts +4 -1
  68. package/out/concepts/Entity__.js +37 -15
  69. package/out/concepts/Entity__.js.map +1 -1
  70. package/out/concepts/Enum__.d.ts +4 -0
  71. package/out/concepts/Enum__.js +18 -10
  72. package/out/concepts/Enum__.js.map +1 -1
  73. package/out/concepts/Event__.js +2 -2
  74. package/out/concepts/Event__.js.map +1 -1
  75. package/out/concepts/ForEachStatement__.js +9 -13
  76. package/out/concepts/ForEachStatement__.js.map +1 -1
  77. package/out/concepts/Function__.js +9 -9
  78. package/out/concepts/Function__.js.map +1 -1
  79. package/out/concepts/Identifier__.d.ts +3 -0
  80. package/out/concepts/Identifier__.js +76 -29
  81. package/out/concepts/Identifier__.js.map +1 -1
  82. package/out/concepts/IfStatement__.js +4 -4
  83. package/out/concepts/IfStatement__.js.map +1 -1
  84. package/out/concepts/InterfaceParam__.d.ts +6 -4
  85. package/out/concepts/InterfaceParam__.js +52 -19
  86. package/out/concepts/InterfaceParam__.js.map +1 -1
  87. package/out/concepts/Interface__.d.ts +42 -30
  88. package/out/concepts/Interface__.js +131 -15
  89. package/out/concepts/Interface__.js.map +1 -1
  90. package/out/concepts/JSBlock__.d.ts +1 -0
  91. package/out/concepts/JSBlock__.js +3 -0
  92. package/out/concepts/JSBlock__.js.map +1 -1
  93. package/out/concepts/LogicItem__.d.ts +2 -1
  94. package/out/concepts/LogicItem__.js +14 -0
  95. package/out/concepts/LogicItem__.js.map +1 -1
  96. package/out/concepts/Logic__.d.ts +16 -1
  97. package/out/concepts/Logic__.js +176 -33
  98. package/out/concepts/Logic__.js.map +1 -1
  99. package/out/concepts/MemberExpression__.d.ts +2 -0
  100. package/out/concepts/MemberExpression__.js +49 -12
  101. package/out/concepts/MemberExpression__.js.map +1 -1
  102. package/out/concepts/Module__.d.ts +126 -120
  103. package/out/concepts/Module__.js +28 -18
  104. package/out/concepts/Module__.js.map +1 -1
  105. package/out/concepts/Namespace__.d.ts +5 -1
  106. package/out/concepts/Namespace__.js +36 -25
  107. package/out/concepts/Namespace__.js.map +1 -1
  108. package/out/concepts/NullLiteral__.d.ts +3 -0
  109. package/out/concepts/NullLiteral__.js +11 -1
  110. package/out/concepts/NullLiteral__.js.map +1 -1
  111. package/out/concepts/NumericLiteral__.d.ts +1 -1
  112. package/out/concepts/NumericLiteral__.js +17 -6
  113. package/out/concepts/NumericLiteral__.js.map +1 -1
  114. package/out/concepts/Param__.d.ts +7 -3
  115. package/out/concepts/Param__.js +57 -28
  116. package/out/concepts/Param__.js.map +1 -1
  117. package/out/concepts/ProcessComponent__.js +4 -4
  118. package/out/concepts/ProcessComponent__.js.map +1 -1
  119. package/out/concepts/ProcessElement__.d.ts +0 -4
  120. package/out/concepts/ProcessElement__.js +112 -49
  121. package/out/concepts/ProcessElement__.js.map +1 -1
  122. package/out/concepts/ProcessOutcome__.js +1 -1
  123. package/out/concepts/ProcessOutcome__.js.map +1 -1
  124. package/out/concepts/Process__.d.ts +7 -1
  125. package/out/concepts/Process__.js +77 -81
  126. package/out/concepts/Process__.js.map +1 -1
  127. package/out/concepts/QueryAggregateExpression__.js +1 -1
  128. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  129. package/out/concepts/QueryFromExpression__.js +2 -2
  130. package/out/concepts/QueryFromExpression__.js.map +1 -1
  131. package/out/concepts/QueryJoinExpression__.js +4 -4
  132. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  133. package/out/concepts/QueryLimitExpression__.js +3 -3
  134. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  135. package/out/concepts/QuerySelectExpression__.js +2 -2
  136. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  137. package/out/concepts/Return__.d.ts +4 -1
  138. package/out/concepts/Return__.js +67 -21
  139. package/out/concepts/Return__.js.map +1 -1
  140. package/out/concepts/Role__.d.ts +4 -0
  141. package/out/concepts/Role__.js +13 -4
  142. package/out/concepts/Role__.js.map +1 -1
  143. package/out/concepts/SqlQueryComponent__.js +2 -2
  144. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  145. package/out/concepts/StringLiteral__.d.ts +1 -1
  146. package/out/concepts/StringLiteral__.js +21 -31
  147. package/out/concepts/StringLiteral__.js.map +1 -1
  148. package/out/concepts/StructureProperty__.d.ts +5 -4
  149. package/out/concepts/StructureProperty__.js +55 -26
  150. package/out/concepts/StructureProperty__.js.map +1 -1
  151. package/out/concepts/Structure__.d.ts +44 -30
  152. package/out/concepts/Structure__.js +42 -10
  153. package/out/concepts/Structure__.js.map +1 -1
  154. package/out/concepts/SwitchCase__.js +4 -4
  155. package/out/concepts/SwitchCase__.js.map +1 -1
  156. package/out/concepts/SwitchStatement__.js +2 -2
  157. package/out/concepts/SwitchStatement__.js.map +1 -1
  158. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  159. package/out/concepts/TypeAnnotation__.js +74 -20
  160. package/out/concepts/TypeAnnotation__.js.map +1 -1
  161. package/out/concepts/UnaryExpression__.js +10 -8
  162. package/out/concepts/UnaryExpression__.js.map +1 -1
  163. package/out/concepts/Unparsed__.js +1 -1
  164. package/out/concepts/Unparsed__.js.map +1 -1
  165. package/out/concepts/ValidationRule__.d.ts +1 -0
  166. package/out/concepts/ValidationRule__.js +48 -13
  167. package/out/concepts/ValidationRule__.js.map +1 -1
  168. package/out/concepts/Variable__.d.ts +10 -1
  169. package/out/concepts/Variable__.js +70 -18
  170. package/out/concepts/Variable__.js.map +1 -1
  171. package/out/concepts/ViewComponent__.js +10 -10
  172. package/out/concepts/ViewComponent__.js.map +1 -1
  173. package/out/concepts/ViewElement__.d.ts +17 -11
  174. package/out/concepts/ViewElement__.js +299 -201
  175. package/out/concepts/ViewElement__.js.map +1 -1
  176. package/out/concepts/View__.d.ts +12 -13
  177. package/out/concepts/View__.js +106 -103
  178. package/out/concepts/View__.js.map +1 -1
  179. package/out/concepts/WhileStatement__.js +3 -3
  180. package/out/concepts/WhileStatement__.js.map +1 -1
  181. package/out/concepts/basics/stdlib/index.js +4 -1
  182. package/out/concepts/basics/stdlib/index.js.map +1 -1
  183. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  184. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  185. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  186. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  187. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  188. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  189. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  190. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  191. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  192. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  193. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  194. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  195. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  196. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  197. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  198. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  199. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  200. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  201. package/out/concepts/basics/types/coreTypeList.js +11 -10
  202. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  203. package/out/concepts/index__.d.ts +1 -0
  204. package/out/concepts/index__.js +1 -0
  205. package/out/concepts/index__.js.map +1 -1
  206. package/out/config.d.ts +1 -2
  207. package/out/config.js +1 -2
  208. package/out/config.js.map +1 -1
  209. package/out/enums/KEYWORDS.d.ts +3 -0
  210. package/out/enums/KEYWORDS.js +1208 -0
  211. package/out/enums/KEYWORDS.js.map +1 -0
  212. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  213. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  214. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  215. package/out/eventBus.d.ts +3 -0
  216. package/out/eventBus.js +7 -0
  217. package/out/eventBus.js.map +1 -0
  218. package/out/generator/genBundleFiles.d.ts +7 -2
  219. package/out/generator/genBundleFiles.js +168 -27
  220. package/out/generator/genBundleFiles.js.map +1 -1
  221. package/out/generator/genMetaData.d.ts +20 -20
  222. package/out/generator/genMetaData.js +50 -15
  223. package/out/generator/genMetaData.js.map +1 -1
  224. package/out/index.d.ts +2 -0
  225. package/out/index.js +2 -0
  226. package/out/index.js.map +1 -1
  227. package/out/manager/diagnostic.d.ts +1 -1
  228. package/out/server/createUiTs.d.ts +1 -0
  229. package/out/server/createUiTs.js +49 -5
  230. package/out/server/createUiTs.js.map +1 -1
  231. package/out/server/entity2LogicNamespace.js +38 -23
  232. package/out/server/entity2LogicNamespace.js.map +1 -1
  233. package/out/server/getExtensionModules.js +2 -0
  234. package/out/server/getExtensionModules.js.map +1 -1
  235. package/out/server/getFunctions.d.ts +1 -0
  236. package/out/server/getFunctions.js +7 -1
  237. package/out/server/getFunctions.js.map +1 -1
  238. package/out/server/getLogics.js +63 -18
  239. package/out/server/getLogics.js.map +1 -1
  240. package/out/server/getMemberIdentifier.d.ts +16 -1
  241. package/out/server/getMemberIdentifier.js +279 -36
  242. package/out/server/getMemberIdentifier.js.map +1 -1
  243. package/out/server/getProcesses.d.ts +6 -1
  244. package/out/server/getProcesses.js +243 -1
  245. package/out/server/getProcesses.js.map +1 -1
  246. package/out/server/getScope.d.ts +11 -0
  247. package/out/server/getScope.js +45 -0
  248. package/out/server/getScope.js.map +1 -0
  249. package/out/server/index.js +4 -0
  250. package/out/server/index.js.map +1 -1
  251. package/out/server/naslServer.d.ts +30 -53
  252. package/out/server/naslServer.js +682 -363
  253. package/out/server/naslServer.js.map +1 -1
  254. package/out/server/process2LogicNamespace.d.ts +10 -0
  255. package/out/server/process2LogicNamespace.js +29 -1
  256. package/out/server/process2LogicNamespace.js.map +1 -1
  257. package/out/server/translator.d.ts +22 -3
  258. package/out/server/translator.js +367 -123
  259. package/out/server/translator.js.map +1 -1
  260. package/out/service/creator/add.configs.d.ts +1 -0
  261. package/out/service/creator/add.configs.js +68 -0
  262. package/out/service/creator/add.configs.js.map +1 -0
  263. package/out/service/creator/errHandles.d.ts +18 -0
  264. package/out/service/creator/errHandles.js +60 -0
  265. package/out/service/creator/errHandles.js.map +1 -0
  266. package/out/service/creator/index.d.ts +1 -0
  267. package/out/service/creator/index.js +72 -0
  268. package/out/service/creator/index.js.map +1 -0
  269. package/out/service/storage/api.d.ts +18 -0
  270. package/out/service/storage/api.js +17 -0
  271. package/out/service/storage/api.js.map +1 -0
  272. package/out/service/storage/init.js +200 -37
  273. package/out/service/storage/init.js.map +1 -1
  274. package/out/service/storage/service.d.ts +2 -0
  275. package/out/service/storage/service.js +10 -0
  276. package/out/service/storage/service.js.map +1 -0
  277. package/out/service/storage/storagePoint.d.ts +1 -14
  278. package/out/service/storage/storagePoint.js +16 -16
  279. package/out/service/storage/storagePoint.js.map +1 -1
  280. package/out/templator/genCreateBlock.js +6 -6
  281. package/out/templator/genCreateBlock.js.map +1 -1
  282. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  283. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  284. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  285. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  286. package/out/templator/genEditTableBlock.js +5 -5
  287. package/out/templator/genEditTableBlock.js.map +1 -1
  288. package/out/templator/genEnumSelectBlock.js +2 -2
  289. package/out/templator/genEnumSelectBlock.js.map +1 -1
  290. package/out/templator/genGetBlock.js +5 -3
  291. package/out/templator/genGetBlock.js.map +1 -1
  292. package/out/templator/genGridViewBlock.d.ts +3 -1
  293. package/out/templator/genGridViewBlock.js +61 -6
  294. package/out/templator/genGridViewBlock.js.map +1 -1
  295. package/out/templator/genQueryComponent.d.ts +2 -0
  296. package/out/templator/genQueryComponent.js +27 -14
  297. package/out/templator/genQueryComponent.js.map +1 -1
  298. package/out/templator/genTableBlock.d.ts +1 -1
  299. package/out/templator/genTableBlock.js +4 -5
  300. package/out/templator/genTableBlock.js.map +1 -1
  301. package/out/templator/genUpdateBlock.js +9 -10
  302. package/out/templator/genUpdateBlock.js.map +1 -1
  303. package/out/templator/utils.d.ts +13 -4
  304. package/out/templator/utils.js +8 -4
  305. package/out/templator/utils.js.map +1 -1
  306. package/out/test/fixtures/env.js +0 -1
  307. package/out/test/fixtures/env.js.map +1 -1
  308. package/out/test/units/page/Element.spec.js +3 -3
  309. package/out/test/units/page/Element.spec.js.map +1 -1
  310. package/out/test/units/temp/temp.spec.js +1 -1
  311. package/out/test/units/temp/temp.spec.js.map +1 -1
  312. package/out/utils/index.d.ts +6 -0
  313. package/out/utils/index.js +20 -1
  314. package/out/utils/index.js.map +1 -1
  315. package/package.json +2 -1
  316. package/src/automate/engine/index.js +116 -39
  317. package/src/automate/engine/utils.js +49 -19
  318. package/src/common/BaseNode.ts +215 -71
  319. package/src/concepts/App__.ts +77 -37
  320. package/src/concepts/Argument__.ts +23 -3
  321. package/src/concepts/Assignee__.ts +437 -0
  322. package/src/concepts/Assignment__.ts +4 -1
  323. package/src/concepts/BinaryExpression__.ts +9 -7
  324. package/src/concepts/BindAttribute__.ts +68 -8
  325. package/src/concepts/BindDirective__.ts +21 -2
  326. package/src/concepts/BindEvent__.ts +67 -23
  327. package/src/concepts/BooleanLiteral__.ts +8 -0
  328. package/src/concepts/CallFunction__.ts +38 -21
  329. package/src/concepts/CallInterface__.ts +236 -26
  330. package/src/concepts/CallLogic__.ts +114 -86
  331. package/src/concepts/CallQueryComponent__.ts +23 -15
  332. package/src/concepts/Comment__.ts +6 -2
  333. package/src/concepts/CompletionProperty__.ts +5 -1
  334. package/src/concepts/ConfigGroup__.ts +2 -2
  335. package/src/concepts/ConfigProperty__.ts +2 -2
  336. package/src/concepts/Configuration__.ts +2 -2
  337. package/src/concepts/Constant__.ts +12 -0
  338. package/src/concepts/Destination__.ts +101 -17
  339. package/src/concepts/End__.ts +8 -1
  340. package/src/concepts/EntityProperty__.ts +58 -5
  341. package/src/concepts/Entity__.ts +40 -23
  342. package/src/concepts/Enum__.ts +16 -11
  343. package/src/concepts/Event__.ts +2 -2
  344. package/src/concepts/ForEachStatement__.ts +14 -19
  345. package/src/concepts/Function__.ts +9 -9
  346. package/src/concepts/Identifier__.ts +83 -32
  347. package/src/concepts/IfStatement__.ts +4 -4
  348. package/src/concepts/InterfaceParam__.ts +52 -16
  349. package/src/concepts/Interface__.ts +128 -14
  350. package/src/concepts/JSBlock__.ts +4 -0
  351. package/src/concepts/LogicItem__.ts +16 -1
  352. package/src/concepts/Logic__.ts +173 -35
  353. package/src/concepts/MemberExpression__.ts +58 -14
  354. package/src/concepts/Module__.ts +27 -16
  355. package/src/concepts/Namespace__.ts +37 -25
  356. package/src/concepts/NullLiteral__.ts +8 -1
  357. package/src/concepts/NumericLiteral__.ts +17 -6
  358. package/src/concepts/Param__.ts +56 -15
  359. package/src/concepts/ProcessComponent__.ts +4 -4
  360. package/src/concepts/ProcessElement__.ts +138 -39
  361. package/src/concepts/ProcessOutcome__.ts +1 -1
  362. package/src/concepts/Process__.ts +81 -94
  363. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  364. package/src/concepts/QueryFromExpression__.ts +2 -2
  365. package/src/concepts/QueryJoinExpression__.ts +4 -4
  366. package/src/concepts/QueryLimitExpression__.ts +3 -12
  367. package/src/concepts/QuerySelectExpression__.ts +2 -2
  368. package/src/concepts/Return__.ts +62 -15
  369. package/src/concepts/Role__.ts +5 -4
  370. package/src/concepts/SqlQueryComponent__.ts +2 -2
  371. package/src/concepts/StringLiteral__.ts +20 -31
  372. package/src/concepts/StructureProperty__.ts +50 -18
  373. package/src/concepts/Structure__.ts +30 -8
  374. package/src/concepts/SwitchCase__.ts +4 -4
  375. package/src/concepts/SwitchStatement__.ts +2 -2
  376. package/src/concepts/TypeAnnotation__.ts +58 -15
  377. package/src/concepts/UnaryExpression__.ts +10 -8
  378. package/src/concepts/Unparsed__.ts +1 -1
  379. package/src/concepts/ValidationRule__.ts +44 -14
  380. package/src/concepts/Variable__.ts +63 -14
  381. package/src/concepts/ViewComponent__.ts +10 -10
  382. package/src/concepts/ViewElement__.ts +285 -162
  383. package/src/concepts/View__.ts +116 -70
  384. package/src/concepts/WhileStatement__.ts +4 -4
  385. package/src/concepts/basics/stdlib/index.ts +4 -2
  386. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  387. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  388. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  389. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  390. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  391. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  392. package/src/concepts/basics/types/coreTypeList.ts +11 -11
  393. package/src/concepts/index__.ts +1 -0
  394. package/src/config.ts +1 -2
  395. package/src/enums/KEYWORDS.ts +1206 -0
  396. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  397. package/src/eventBus.ts +5 -0
  398. package/src/generator/genBundleFiles.ts +182 -30
  399. package/src/generator/genMetaData.ts +72 -21
  400. package/src/index.ts +2 -0
  401. package/src/manager/diagnostic.ts +1 -1
  402. package/src/server/createUiTs.ts +45 -7
  403. package/src/server/entity2LogicNamespace.ts +41 -25
  404. package/src/server/getExtensionModules.ts +2 -0
  405. package/src/server/getFunctions.ts +6 -0
  406. package/src/server/getLogics.ts +66 -19
  407. package/src/server/getMemberIdentifier.ts +233 -63
  408. package/src/server/getProcesses.ts +248 -4
  409. package/src/server/getScope.ts +50 -0
  410. package/src/server/index.ts +12 -1
  411. package/src/server/naslServer.ts +685 -387
  412. package/src/server/process2LogicNamespace.ts +30 -2
  413. package/src/server/translator.ts +423 -128
  414. package/src/service/config/index.js +1 -1
  415. package/src/service/creator/errHandles.js +5 -2
  416. package/src/service/creator/index.js +0 -6
  417. package/src/service/storage/api.js +14 -0
  418. package/src/service/storage/init.ts +198 -45
  419. package/src/service/storage/service.ts +6 -0
  420. package/src/service/storage/storagePoint.ts +16 -16
  421. package/src/templator/genCreateBlock.ts +6 -6
  422. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  423. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  424. package/src/templator/genEditTableBlock.ts +5 -5
  425. package/src/templator/genEnumSelectBlock.ts +2 -2
  426. package/src/templator/genGetBlock.ts +6 -8
  427. package/src/templator/genGridViewBlock.ts +59 -9
  428. package/src/templator/genQueryComponent.ts +39 -28
  429. package/src/templator/genTableBlock.ts +5 -9
  430. package/src/templator/genUpdateBlock.ts +9 -11
  431. package/src/templator/utils.ts +9 -6
  432. package/src/test/fixtures/env.ts +0 -2
  433. package/src/test/units/page/Element.spec.ts +3 -3
  434. package/src/test/units/temp/temp.spec.ts +1 -1
  435. package/src/utils/index.ts +19 -0
  436. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  437. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  438. package/out/data/Module.d.ts +0 -34
  439. package/out/data/Module.js +0 -53
  440. package/out/data/Module.js.map +0 -1
  441. package/src/automate/engine/index.d.ts +0 -3
@@ -14,6 +14,20 @@ export enum PRIMITIVE_TYPE {
14
14
  Email = 'Email'
15
15
  }
16
16
 
17
+ export const PRIMITIVE_TITLE: Record<string, string> = {
18
+ Boolean: '布尔值',
19
+ Integer: '整数',
20
+ Long: '长整数',
21
+ Double: '小数',
22
+ String: '字符串',
23
+ Text: '长文本',
24
+ Binary: '二进制流',
25
+ Date: '日期',
26
+ Time: '时间',
27
+ DateTime: '日期时间',
28
+ Email: '电子邮箱',
29
+ };
30
+
17
31
  //================================================================================
18
32
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
19
33
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -62,13 +76,6 @@ export class TypeAnnotation extends BaseNode {
62
76
  @property('TypeAnnotation')
63
77
  typeArguments?: Array<TypeAnnotation> = null;
64
78
 
65
- /**
66
- * 显示文本
67
- */
68
- @excludedInJSON()
69
- @property()
70
- text?: string = undefined;
71
-
72
79
  /**
73
80
  * 是否是推断出来的
74
81
  */
@@ -116,7 +123,7 @@ export class TypeAnnotation extends BaseNode {
116
123
  const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
117
124
  let typeAnnotation: TypeAnnotation;
118
125
  if (options instanceof TypeAnnotation) {
119
- options.delete(); // 同一实例不支持多处存在
126
+ options.ensureDelete(); // 同一实例不支持多处存在
120
127
  typeAnnotation = options;
121
128
  Object.assign(typeAnnotation, relationOptions);
122
129
  } else {
@@ -190,7 +197,7 @@ export class TypeAnnotation extends BaseNode {
190
197
 
191
198
  addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
192
199
  const node = this._addTypeAnnotation(options as any);
193
- const index = this.typeArguments.length;
200
+ const index = this.typeArguments.indexOf(node);
194
201
  node.create({
195
202
  index,
196
203
  parentNode: this,
@@ -252,13 +259,18 @@ export class TypeAnnotation extends BaseNode {
252
259
  }
253
260
 
254
261
  /**
255
- * 临时展示 type 标题
262
+ * 用于展示的 type 标题
256
263
  */
257
264
  get typeTitle(): string {
258
- if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
265
+ if (this.typeKind === 'primitive') {
266
+ return `${this.typeName} ${PRIMITIVE_TITLE[this.typeName]}`;
267
+ } else if (this.typeKind === 'reference') {
259
268
  return `${this.typeName}`;
260
269
  } else if (this.typeKind === 'generic') {
261
- return `${this.typeName}<${(this.typeArguments || []).map((arg) => arg.typeTitle)}>`;
270
+ if (this.typeArguments && this.typeArguments.length)
271
+ return `${this.typeName}<${(this.typeArguments || []).map((arg) => arg.typeName || 'T')}>`;
272
+ else
273
+ return this.typeName;
262
274
  } else {
263
275
  return this.typeName;
264
276
  }
@@ -319,21 +331,52 @@ export class TypeAnnotation extends BaseNode {
319
331
  return '';
320
332
  }
321
333
 
334
+ toJS(state?: TranslatorState): string {
335
+ return JSON.stringify(this);
336
+ }
337
+
322
338
  @withSourceMap()
323
339
  toEmbeddedTS(state?: TranslatorState): string {
324
340
  if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
325
- if (this.typeKind === 'reference' && this.typeNamespace.endsWith('enums')) {
341
+ if (this.typeKind === 'reference' && this.typeNamespace && this.typeNamespace.endsWith('enums')) {
326
342
  return `${this.tsCalleeNamespace}.${this.typeName}`;
327
343
  }
328
344
  return `${this.tsCalleeNamespace}.${this.typeName}`;
329
345
  } else if (this.typeKind === 'generic') {
330
346
  let code = `${this.tsCalleeNamespace}.${this.typeName}<`;
331
- return code += `${(this.typeArguments || []).map((arg) => arg.toEmbeddedTS(shiftState(state, code, { inline: true })))}>`;
347
+ return (code += `${(this.typeArguments || []).map((arg) => arg.toEmbeddedTS(shiftState(state, code, { inline: true })))}>`);
332
348
  } else {
333
- return this.typeName;
349
+ if (this.tsCalleeNamespace && this.typeName) {
350
+ return `${this.tsCalleeNamespace}.${this.typeName}`;
351
+ } else if (this.typeName) {
352
+ return this.typeName;
353
+ } else {
354
+ return '__IDENTIFIER__';
355
+ }
334
356
  }
335
357
  }
336
358
 
359
+ getDefaultValue(value: string) {
360
+ let code = '';
361
+ if (this.typeKind === 'primitive') {
362
+ if (this.typeName === 'String') {
363
+ code = ` "${value}" `;
364
+ } else {
365
+ if (['Long', 'Text'].includes(this.typeName)) {
366
+ code = ` new ${this.typeNamespace}.${this.typeName}("${value}")`;
367
+ } else if (['Boolean'].includes(this.typeName)) {
368
+ code = value;
369
+ } else {
370
+ code = ` new ${this.typeNamespace}.${this.typeName}(${value})`;
371
+ }
372
+ }
373
+ } else {
374
+ code = ` ${this.typeNamespace}.${this.typeName}.${value}`;
375
+ }
376
+
377
+ return code;
378
+ }
379
+
337
380
  /**
338
381
  *
339
382
  * @param code 233
@@ -127,25 +127,25 @@ export class UnaryExpression extends LogicItem {
127
127
 
128
128
  toVue(options?: ElementToVueOptions) {
129
129
  if (this.operator === 'isNull') {
130
- return this.argument.toVue(options);
130
+ return this.argument?.toVue(options);
131
131
  } else {
132
- return '!' + this.argument.toVue(options);
132
+ return '!(' + this.argument?.toVue(options) + ')';
133
133
  }
134
134
  }
135
135
 
136
136
  toUI(state?: TranslatorState): string {
137
137
  if (this.operator === 'isNull') {
138
- return this.argument.toUI(state);
138
+ return this.argument?.toUI(state);
139
139
  } else {
140
- return '!' + this.argument.toUI(state);
140
+ return '!(' + this.argument?.toUI(state) + ')';
141
141
  }
142
142
  }
143
143
 
144
144
  toJS(state?: TranslatorState): string {
145
145
  if (this.operator === 'isNull') {
146
- return this.argument.toJS(state);
146
+ return this.argument?.toJS(state);
147
147
  } else {
148
- return '!' + this.argument.toJS(state);
148
+ return '!(' + this.argument?.toJS(state) + ')';
149
149
  }
150
150
  }
151
151
 
@@ -162,9 +162,11 @@ export class UnaryExpression extends LogicItem {
162
162
 
163
163
  let code = '';
164
164
  if (this.argument) {
165
- code += `${this.operator}${this.argument}`;
165
+ code += `${this.operator}(`;
166
+ code += `${this.argument.toEmbeddedTS(shiftState(state, code))}`;
167
+ code += `)`;
166
168
  } else {
167
- code += `${this.operator}__IDENTIFIER__`;
169
+ code += `${this.operator}(__IDENTIFIER__)`;
168
170
  }
169
171
  return code;
170
172
  }
@@ -81,7 +81,7 @@ export class Unparsed extends LogicItem {
81
81
 
82
82
  @withSourceMap()
83
83
  toEmbeddedTS(): string {
84
- return this.code ? ` ${this.code} ` : '__IDENTIFIER__';
84
+ return 'nasl.core.universalVariable';
85
85
  }
86
86
 
87
87
  //================================================================================
@@ -1,7 +1,7 @@
1
1
  import { TranslatorState, shiftState, withSourceMap, indent } from '../translator';
2
2
  import Function from './Function__';
3
3
  import { ElementToVueOptions } from './ViewElement__';
4
-
4
+ import { getValidationInFunction } from '../server/getFunctions';
5
5
  //================================================================================
6
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
7
7
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -92,7 +92,7 @@ export class ValidationRule extends LogicItem {
92
92
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
93
93
  let argument: Argument;
94
94
  if (options instanceof Argument) {
95
- options.delete(); // 同一实例不支持多处存在
95
+ options.ensureDelete(); // 同一实例不支持多处存在
96
96
  argument = options;
97
97
  Object.assign(argument, relationOptions);
98
98
  } else {
@@ -166,7 +166,7 @@ export class ValidationRule extends LogicItem {
166
166
 
167
167
  addArgument(options?: Partial<Argument> | Argument) {
168
168
  const node = this._addArgument(options as any);
169
- const index = this.arguments.length;
169
+ const index = this.arguments.indexOf(node);
170
170
  node.create({
171
171
  index,
172
172
  parentNode: this,
@@ -220,9 +220,9 @@ export class ValidationRule extends LogicItem {
220
220
  let code = this.calleeName;
221
221
  if (this.arguments.length) {
222
222
  code += '(';
223
- this.arguments.forEach((arg, index) => {
224
- code += arg.toVue(options);
225
- if (index !== this.arguments.length - 1)
223
+ this.arguments?.forEach((arg, index) => {
224
+ code += arg?.toVue(options);
225
+ if (index !== this.arguments?.length - 1)
226
226
  code += ', ';
227
227
  });
228
228
  code += ')';
@@ -232,11 +232,11 @@ export class ValidationRule extends LogicItem {
232
232
 
233
233
  toUI(state?: TranslatorState): string {
234
234
  let code = this.calleeName;
235
- if (this.arguments.length) {
235
+ if (this.arguments?.length) {
236
236
  code += '(';
237
- this.arguments.forEach((arg, index) => {
238
- code += arg.toUI(shiftState(state, code));
239
- if (index !== this.arguments.length - 1)
237
+ this.arguments?.forEach((arg, index) => {
238
+ code += arg?.toUI(shiftState(state, code));
239
+ if (index !== this.arguments?.length - 1)
240
240
  code += ', ';
241
241
  });
242
242
  code += ')';
@@ -246,11 +246,11 @@ export class ValidationRule extends LogicItem {
246
246
 
247
247
  toJS(state?: TranslatorState): string {
248
248
  let code = this.calleeName;
249
- if (this.arguments.length) {
249
+ if (this.arguments?.length) {
250
250
  code += '(';
251
- this.arguments.forEach((arg, index) => {
252
- code += arg.toJS(shiftState(state, code));
253
- if (index !== this.arguments.length - 1)
251
+ this.arguments?.forEach((arg, index) => {
252
+ code += arg?.toJS(shiftState(state, code));
253
+ if (index !== this.arguments?.length - 1)
254
254
  code += ', ';
255
255
  });
256
256
  code += ')';
@@ -258,6 +258,36 @@ export class ValidationRule extends LogicItem {
258
258
  return code;
259
259
  }
260
260
 
261
+ @withSourceMap()
262
+ toEmbeddedTS(state?: TranslatorState): string {
263
+ let code = '';
264
+ if (this.calleeName) {
265
+ if (this.arguments.length) {
266
+ const validationInFunction = getValidationInFunction(this.calleeName);
267
+ code += this.calleeKey;
268
+ code += '(';
269
+ this.arguments.forEach((arg, index) => {
270
+ // 如果找到函数而且有参数,就用参数的必填非必填
271
+ if (validationInFunction && validationInFunction.params[index]) {
272
+ code += arg.toEmbeddedTS(shiftState(state, code), validationInFunction.params[index].required, false);
273
+ } else {
274
+ // 如果没有就默认不必填
275
+ code += arg.toEmbeddedTS(shiftState(state, code), false, false);
276
+ }
277
+ if (index !== this.arguments.length - 1)
278
+ code += ', ';
279
+ });
280
+ code += ')';
281
+ } else {
282
+ // 没有入参数的不需要校验
283
+ return 'null';
284
+ }
285
+ } else {
286
+ code += '__IDENTIFIER__';
287
+ }
288
+ return code;
289
+ }
290
+
261
291
  get calleeKey(): string {
262
292
  return `${this.calleeNamespace}.${this.calleeName}`;
263
293
  }
@@ -3,8 +3,10 @@ import { TranslatorState, shiftState, withSourceMap } from '../translator';
3
3
  import Entity from './Entity__';
4
4
  import Structure from './Structure__';
5
5
  import { ElementToVueOptions } from './ViewElement__';
6
- import { getNodeByNodeCallee } from '@nasl/automate/engine/utils';
7
6
  import EntityProperty from './EntityProperty__';
7
+ import StructureProperty from './StructureProperty__';
8
+ import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
9
+
8
10
  //================================================================================
9
11
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
10
12
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -238,8 +240,21 @@ export class Variable extends BaseNode {
238
240
  code += ': ';
239
241
  code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
240
242
  }
243
+ // if (this.defaultValue) {
244
+ // code += ` = ${this.defaultValue}`;
245
+ // }
246
+ return code;
247
+ }
248
+
249
+ @withSourceMap()
250
+ toEmbeddedTSInProcess(state?: TranslatorState): string {
251
+ let code = this.name;
252
+ if (this.typeAnnotation) {
253
+ code += ': undefined as ';
254
+ code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
255
+ }
241
256
  if (this.defaultValue) {
242
- code += ` = ${this.defaultValue}`;
257
+ code += `: ${this.defaultValue}`;
243
258
  }
244
259
  return code;
245
260
  }
@@ -260,12 +275,17 @@ export class Variable extends BaseNode {
260
275
  if (!typeAnnotation)
261
276
  throw new Error('找不到类型:' + arguments[0]);
262
277
  } else {
263
- typeAnnotation._delete();
278
+ typeAnnotation._delete?.();
264
279
  const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
265
280
  Object.assign(typeAnnotation, relationOptions);
266
281
  }
267
282
  // 处理下拉属性
268
- this.completionChildren = this.getSelectRef();
283
+ try {
284
+ this.completionChildren = this.getSelectRef();
285
+ } catch (err) {
286
+ this.completionChildren = [];
287
+ console.log(err);
288
+ }
269
289
  const object = {
270
290
  typeAnnotation,
271
291
  };
@@ -292,18 +312,47 @@ export class Variable extends BaseNode {
292
312
  get readonly() {
293
313
  return !!this.module;
294
314
  }
295
-
315
+ get hasChildren() {
316
+ const { typeKind, typeNamespace } = this.typeAnnotation;
317
+ if (typeKind === 'reference' || typeKind === 'generic') {
318
+ if (typeNamespace.endsWith('.enums'))
319
+ return null;
320
+ return [{}];
321
+ }
322
+ return null;
323
+ }
324
+ get isTreeLeaf() {
325
+ return !this.hasChildren;
326
+ }
296
327
  getSelectRef() {
297
- const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
298
- let completionChildren;
299
- if (typeKind === 'reference') {
300
- const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
301
- const properties = node.properties || [];
302
- completionChildren = properties;
303
- } else {
304
- completionChildren = undefined;
328
+ try {
329
+ const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
330
+ let completionChildren;
331
+ if (typeKind === 'reference') {
332
+ if (typeNamespace === 'nasl.ui') {
333
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
334
+ const properties = node.properties || [];
335
+ completionChildren = properties;
336
+ } else if (typeNamespace.endsWith('.enums')) {
337
+ completionChildren = undefined;
338
+ } else {
339
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
340
+ const properties = node.properties || [];
341
+ completionChildren = properties;
342
+ }
343
+ } else if (typeKind === 'generic') {
344
+ if (typeNamespace === 'nasl.collection') {
345
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
346
+ const properties = node.properties || [];
347
+ completionChildren = properties;
348
+ }
349
+ } else {
350
+ completionChildren = undefined;
351
+ }
352
+ return completionChildren;
353
+ } catch (err) {
354
+ console.log(err);
305
355
  }
306
- return completionChildren;
307
356
  }
308
357
  //================================================================================
309
358
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -164,7 +164,7 @@ export class ViewComponent extends BaseNode {
164
164
  name: options,
165
165
  }, this, 'attrs');
166
166
  } else if (options instanceof Attribute) {
167
- options.delete(); // 同一实例不支持多处存在
167
+ options.ensureDelete(); // 同一实例不支持多处存在
168
168
  attribute = options;
169
169
  Object.assign(attribute, relationOptions);
170
170
  } else {
@@ -252,7 +252,7 @@ export class ViewComponent extends BaseNode {
252
252
 
253
253
  addAttribute(options?: string | Partial<Attribute> | Attribute) {
254
254
  const node = this._addAttribute(options as any);
255
- const index = this.attrs.length;
255
+ const index = this.attrs.indexOf(node);
256
256
  node.create({
257
257
  index,
258
258
  parentNode: this,
@@ -306,7 +306,7 @@ export class ViewComponent extends BaseNode {
306
306
  name: options,
307
307
  }, this, 'events');
308
308
  } else if (options instanceof Event) {
309
- options.delete(); // 同一实例不支持多处存在
309
+ options.ensureDelete(); // 同一实例不支持多处存在
310
310
  event = options;
311
311
  Object.assign(event, relationOptions);
312
312
  } else {
@@ -394,7 +394,7 @@ export class ViewComponent extends BaseNode {
394
394
 
395
395
  addEvent(options?: string | Partial<Event> | Event) {
396
396
  const node = this._addEvent(options as any);
397
- const index = this.events.length;
397
+ const index = this.events.indexOf(node);
398
398
  node.create({
399
399
  index,
400
400
  parentNode: this,
@@ -448,7 +448,7 @@ export class ViewComponent extends BaseNode {
448
448
  name: options,
449
449
  }, this, 'slots');
450
450
  } else if (options instanceof Slot) {
451
- options.delete(); // 同一实例不支持多处存在
451
+ options.ensureDelete(); // 同一实例不支持多处存在
452
452
  slot = options;
453
453
  Object.assign(slot, relationOptions);
454
454
  } else {
@@ -536,7 +536,7 @@ export class ViewComponent extends BaseNode {
536
536
 
537
537
  addSlot(options?: string | Partial<Slot> | Slot) {
538
538
  const node = this._addSlot(options as any);
539
- const index = this.slots.length;
539
+ const index = this.slots.indexOf(node);
540
540
  node.create({
541
541
  index,
542
542
  parentNode: this,
@@ -590,7 +590,7 @@ export class ViewComponent extends BaseNode {
590
590
  name: options,
591
591
  }, this, 'methods');
592
592
  } else if (options instanceof Logic) {
593
- options.delete(); // 同一实例不支持多处存在
593
+ options.ensureDelete(); // 同一实例不支持多处存在
594
594
  logic = options;
595
595
  Object.assign(logic, relationOptions);
596
596
  } else {
@@ -678,7 +678,7 @@ export class ViewComponent extends BaseNode {
678
678
 
679
679
  addLogic(options?: string | Partial<Logic> | Logic) {
680
680
  const node = this._addLogic(options as any);
681
- const index = this.methods.length;
681
+ const index = this.methods.indexOf(node);
682
682
  node.create({
683
683
  index,
684
684
  parentNode: this,
@@ -732,7 +732,7 @@ export class ViewComponent extends BaseNode {
732
732
  name: options,
733
733
  }, this, 'children');
734
734
  } else if (options instanceof ViewComponent) {
735
- options.delete(); // 同一实例不支持多处存在
735
+ options.ensureDelete(); // 同一实例不支持多处存在
736
736
  viewComponent = options;
737
737
  Object.assign(viewComponent, relationOptions);
738
738
  } else {
@@ -820,7 +820,7 @@ export class ViewComponent extends BaseNode {
820
820
 
821
821
  addViewComponent(options?: string | Partial<ViewComponent> | ViewComponent) {
822
822
  const node = this._addViewComponent(options as any);
823
- const index = this.children.length;
823
+ const index = this.children.indexOf(node);
824
824
  node.create({
825
825
  index,
826
826
  parentNode: this,