@lcap/nasl-concepts 3.9.1-beta.6 → 3.9.2-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 (172) hide show
  1. package/out/common/BaseNode.d.ts +12 -3
  2. package/out/common/BaseNode.d.ts.map +1 -1
  3. package/out/common/BaseNode.js +158 -118
  4. package/out/common/BaseNode.js.map +1 -1
  5. package/out/concepts/App__.d.ts +6 -0
  6. package/out/concepts/App__.d.ts.map +1 -1
  7. package/out/concepts/App__.js +13 -2
  8. package/out/concepts/App__.js.map +1 -1
  9. package/out/concepts/Argument__.d.ts.map +1 -1
  10. package/out/concepts/Argument__.js +1 -0
  11. package/out/concepts/Argument__.js.map +1 -1
  12. package/out/concepts/Assignment__.d.ts.map +1 -1
  13. package/out/concepts/Assignment__.js +1 -0
  14. package/out/concepts/Assignment__.js.map +1 -1
  15. package/out/concepts/BinaryExpression__.d.ts.map +1 -1
  16. package/out/concepts/BinaryExpression__.js +7 -1
  17. package/out/concepts/BinaryExpression__.js.map +1 -1
  18. package/out/concepts/BindAttribute__.d.ts.map +1 -1
  19. package/out/concepts/BindAttribute__.js +10 -1
  20. package/out/concepts/BindAttribute__.js.map +1 -1
  21. package/out/concepts/CallInterface__.d.ts +1 -1
  22. package/out/concepts/CallInterface__.d.ts.map +1 -1
  23. package/out/concepts/CallInterface__.js +20 -3
  24. package/out/concepts/CallInterface__.js.map +1 -1
  25. package/out/concepts/CallLogic__.d.ts.map +1 -1
  26. package/out/concepts/CallLogic__.js +8 -5
  27. package/out/concepts/CallLogic__.js.map +1 -1
  28. package/out/concepts/CallQueryComponent__.d.ts.map +1 -1
  29. package/out/concepts/CallQueryComponent__.js +5 -0
  30. package/out/concepts/CallQueryComponent__.js.map +1 -1
  31. package/out/concepts/CompletionProperty__.d.ts.map +1 -1
  32. package/out/concepts/CompletionProperty__.js +9 -2
  33. package/out/concepts/CompletionProperty__.js.map +1 -1
  34. package/out/concepts/Connector__.d.ts +88 -0
  35. package/out/concepts/Connector__.d.ts.map +1 -1
  36. package/out/concepts/Connector__.js +98 -0
  37. package/out/concepts/Connector__.js.map +1 -1
  38. package/out/concepts/DataSource__.d.ts +5 -0
  39. package/out/concepts/DataSource__.d.ts.map +1 -1
  40. package/out/concepts/DataSource__.js +20 -5
  41. package/out/concepts/DataSource__.js.map +1 -1
  42. package/out/concepts/Dependency__.d.ts +56 -0
  43. package/out/concepts/Dependency__.d.ts.map +1 -0
  44. package/out/concepts/Dependency__.js +172 -0
  45. package/out/concepts/Dependency__.js.map +1 -0
  46. package/out/concepts/Entity__.d.ts +2 -1
  47. package/out/concepts/Entity__.d.ts.map +1 -1
  48. package/out/concepts/Entity__.js +6 -0
  49. package/out/concepts/Entity__.js.map +1 -1
  50. package/out/concepts/FlowConditionItemV2__.js +1 -1
  51. package/out/concepts/FlowConditionItemV2__.js.map +1 -1
  52. package/out/concepts/ForEachStatement__.d.ts +5 -0
  53. package/out/concepts/ForEachStatement__.d.ts.map +1 -1
  54. package/out/concepts/ForEachStatement__.js +19 -9
  55. package/out/concepts/ForEachStatement__.js.map +1 -1
  56. package/out/concepts/Identifier__.d.ts +2 -2
  57. package/out/concepts/Identifier__.d.ts.map +1 -1
  58. package/out/concepts/Identifier__.js +14 -12
  59. package/out/concepts/Identifier__.js.map +1 -1
  60. package/out/concepts/IfStatement__.d.ts.map +1 -1
  61. package/out/concepts/IfStatement__.js +1 -0
  62. package/out/concepts/IfStatement__.js.map +1 -1
  63. package/out/concepts/Interface__.d.ts +1 -1
  64. package/out/concepts/Interface__.d.ts.map +1 -1
  65. package/out/concepts/Interface__.js +3 -2
  66. package/out/concepts/Interface__.js.map +1 -1
  67. package/out/concepts/Logic__.d.ts.map +1 -1
  68. package/out/concepts/Logic__.js +6 -1
  69. package/out/concepts/Logic__.js.map +1 -1
  70. package/out/concepts/MatchCase__.d.ts.map +1 -1
  71. package/out/concepts/MatchCase__.js +1 -0
  72. package/out/concepts/MatchCase__.js.map +1 -1
  73. package/out/concepts/Match__.d.ts.map +1 -1
  74. package/out/concepts/Match__.js +6 -19
  75. package/out/concepts/Match__.js.map +1 -1
  76. package/out/concepts/MemberExpression__.d.ts.map +1 -1
  77. package/out/concepts/MemberExpression__.js +7 -19
  78. package/out/concepts/MemberExpression__.js.map +1 -1
  79. package/out/concepts/MetadataType__.d.ts +4 -0
  80. package/out/concepts/MetadataType__.d.ts.map +1 -1
  81. package/out/concepts/MetadataType__.js +8 -1
  82. package/out/concepts/MetadataType__.js.map +1 -1
  83. package/out/concepts/Module__.d.ts +0 -1
  84. package/out/concepts/Module__.d.ts.map +1 -1
  85. package/out/concepts/Module__.js +0 -4
  86. package/out/concepts/Module__.js.map +1 -1
  87. package/out/concepts/NewComposite__.d.ts.map +1 -1
  88. package/out/concepts/NewComposite__.js +19 -5
  89. package/out/concepts/NewComposite__.js.map +1 -1
  90. package/out/concepts/Paginate__.d.ts.map +1 -1
  91. package/out/concepts/Paginate__.js +3 -0
  92. package/out/concepts/Paginate__.js.map +1 -1
  93. package/out/concepts/Param__.d.ts +1 -1
  94. package/out/concepts/Param__.d.ts.map +1 -1
  95. package/out/concepts/Param__.js +3 -1
  96. package/out/concepts/Param__.js.map +1 -1
  97. package/out/concepts/ProcessComponentV2__.js +1 -1
  98. package/out/concepts/ProcessComponentV2__.js.map +1 -1
  99. package/out/concepts/Structure__.d.ts +6 -0
  100. package/out/concepts/Structure__.d.ts.map +1 -1
  101. package/out/concepts/Structure__.js +46 -0
  102. package/out/concepts/Structure__.js.map +1 -1
  103. package/out/concepts/SwitchCase__.d.ts.map +1 -1
  104. package/out/concepts/SwitchCase__.js +1 -0
  105. package/out/concepts/SwitchCase__.js.map +1 -1
  106. package/out/concepts/TypeAnnotation__.js +1 -1
  107. package/out/concepts/TypeAnnotation__.js.map +1 -1
  108. package/out/concepts/UnaryExpression__.d.ts.map +1 -1
  109. package/out/concepts/UnaryExpression__.js +2 -0
  110. package/out/concepts/UnaryExpression__.js.map +1 -1
  111. package/out/concepts/ViewElement__.d.ts +8 -0
  112. package/out/concepts/ViewElement__.d.ts.map +1 -1
  113. package/out/concepts/ViewElement__.js +24 -9
  114. package/out/concepts/ViewElement__.js.map +1 -1
  115. package/out/concepts/View__.d.ts +0 -11
  116. package/out/concepts/View__.d.ts.map +1 -1
  117. package/out/concepts/View__.js +93 -649
  118. package/out/concepts/View__.js.map +1 -1
  119. package/out/concepts/WhileStatement__.d.ts.map +1 -1
  120. package/out/concepts/WhileStatement__.js +1 -0
  121. package/out/concepts/WhileStatement__.js.map +1 -1
  122. package/out/concepts/basics/stdlib/nasl.util.js +14 -14
  123. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  124. package/out/concepts/index__.d.ts +2 -1
  125. package/out/concepts/index__.d.ts.map +1 -1
  126. package/out/concepts/index__.js +2 -1
  127. package/out/concepts/index__.js.map +1 -1
  128. package/out/concepts/utils/asserts.d.ts +51 -0
  129. package/out/concepts/utils/asserts.d.ts.map +1 -1
  130. package/out/concepts/utils/asserts.js +80 -13
  131. package/out/concepts/utils/asserts.js.map +1 -1
  132. package/out/concepts/utils/types.d.ts +4 -1
  133. package/out/concepts/utils/types.d.ts.map +1 -1
  134. package/out/decorators/constant.d.ts +50 -4
  135. package/out/decorators/constant.d.ts.map +1 -1
  136. package/out/decorators/constant.js.map +1 -1
  137. package/out/decorators/index.d.ts +5 -2
  138. package/out/decorators/index.d.ts.map +1 -1
  139. package/out/decorators/index.js +75 -26
  140. package/out/decorators/index.js.map +1 -1
  141. package/out/decorators/utils.d.ts +2 -8
  142. package/out/decorators/utils.d.ts.map +1 -1
  143. package/out/decorators/utils.js +12 -14
  144. package/out/decorators/utils.js.map +1 -1
  145. package/out/semantics/semanticData.d.ts.map +1 -1
  146. package/out/semantics/semanticData.js +15 -15
  147. package/out/semantics/semanticData.js.map +1 -1
  148. package/out/service/annotation.d.ts.map +1 -1
  149. package/out/service/annotation.js +9 -1
  150. package/out/service/annotation.js.map +1 -1
  151. package/out/service/entity2LogicNamespace.d.ts.map +1 -1
  152. package/out/service/entity2LogicNamespace.js +295 -285
  153. package/out/service/entity2LogicNamespace.js.map +1 -1
  154. package/out/service/formatTsUtils.d.ts +2 -1
  155. package/out/service/formatTsUtils.d.ts.map +1 -1
  156. package/out/service/formatTsUtils.js +63 -9
  157. package/out/service/formatTsUtils.js.map +1 -1
  158. package/out/service/getConnector.d.ts +3 -2
  159. package/out/service/getConnector.d.ts.map +1 -1
  160. package/out/service/getConnector.js +36 -8
  161. package/out/service/getConnector.js.map +1 -1
  162. package/out/service/getLogics.d.ts.map +1 -1
  163. package/out/service/getLogics.js +25 -18
  164. package/out/service/getLogics.js.map +1 -1
  165. package/out/service/getMemberIdentifier.d.ts +2 -2
  166. package/out/service/getMemberIdentifier.d.ts.map +1 -1
  167. package/out/service/getMemberIdentifier.js +317 -20
  168. package/out/service/getMemberIdentifier.js.map +1 -1
  169. package/out/utils/bak-translator.d.ts.map +1 -1
  170. package/out/utils/bak-translator.js +68 -47
  171. package/out/utils/bak-translator.js.map +1 -1
  172. package/package.json +7 -7
@@ -129,6 +129,15 @@ export declare class BaseNode extends EventEmitter {
129
129
  * 当前节点的类型标注
130
130
  */
131
131
  __TypeAnnotation: TypeAnnotation;
132
+ /**
133
+ * 静默模式
134
+ *
135
+ * @description 静默模式下,会屏蔽掉所有节点事件
136
+ * @description 该属性具有传染性,在实例化时,子树根节点是只读,那么其所有子节点都是静默的
137
+ * @description 创建静默实例,可以使用`App.createSilenceApp(data)`
138
+ * @description 现在只会在发布模式下启用
139
+ */
140
+ silence: boolean;
132
141
  /**
133
142
  * 当前节点的类型标注是不是正确的
134
143
  */
@@ -206,6 +215,7 @@ export declare class BaseNode extends EventEmitter {
206
215
  */
207
216
  getAncestor(concept: SyntaxNode['concept']): SyntaxNode;
208
217
  getAncestor<Node extends SyntaxNode>(concept: Node['concept']): Node;
218
+ getAncestorRaw<Node extends SyntaxNode = SyntaxNode>(concept: SyntaxNode['concept']): Node;
209
219
  get app(): App;
210
220
  /**
211
221
  *
@@ -357,9 +367,8 @@ export declare class BaseNode extends EventEmitter {
357
367
  */
358
368
  traverseStrictChildrenStopWhen(cb: (el: SyntaxNode) => void, setStopFlag: (el: SyntaxNode) => boolean, whitelist?: string[]): void;
359
369
  /**
360
- * 迭代所有子节点
361
- * @description 严格迭代所有子节点,排除属性;多函数特化版本,不做额外检查
362
- */
370
+ * @description 并非迭代所有子节点,只迭代 NASL 节点的子节点。排除属性;多函数特化版本,不做额外检查。
371
+ */
363
372
  traverseStrictChildrenDoMultiTasks(tasks: Array<(_: SyntaxNode) => Generator<any, any, any>>, cleanups: Array<(_: SyntaxNode) => Generator<any, any, any>>): Generator<any, any, any>;
364
373
  traverseStrictChildrenOnly(cb: (el: SyntaxNode) => void): void;
365
374
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../src/common/BaseNode.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAgBpE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,GAAG,EAER,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AAErB,KAAK,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAelD;;;GAGG;AACH,qBACa,QAAS,SAAQ,YAAY;IACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAc;IAEjD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhD;;;OAGG;IAEH,QAAQ,UAAQ;IAEhB,aAAa;IAEb,OAAO,CAAC,QAAQ,CAAU;IAE1B;;OAEG;IACH,IACI,OAAO,WAEV;IAED;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAoC;IAC9C;;MAEE;IAEF,MAAM,EAAE,SAAS,GAAG,MAAM,CAAa;IAEvC;;OAEG;IAEH,WAAW,EAAG,MAAM,CAAC;IAErB;;OAEG;IAEH,UAAU,EAAG,MAAM,CAAC;IAEpB;;OAEG;IAEH,WAAW,EAAG,MAAM,CAAC;IAGrB,MAAM,EAAG,MAAM,CAAC;IAEhB;;OAEG;IAEH,UAAU,EAAE,UAAU,CAAQ;IAE9B,SAAS,EAAE,MAAM,CAAM;IAEvB;;;OAGG;IAEH,QAAQ,EAAG,OAAO,CAAC;IAEnB;;;OAGG;IAEH,SAAS,EAAG,OAAO,CAAC;IAEpB;;;OAGG;IAEH,OAAO,EAAG,OAAO,CAAC;IAElB;;;OAGG;IAEH,QAAQ,EAAG,OAAO,CAAC;IAEnB;;;OAGG;IAEH,MAAM,EAAG,OAAO,CAAC;IAEjB;;;OAGG;IAEH,kBAAkB,EAAG,OAAO,CAAC;IAE7B;;;OAGG;IAEH,mBAAmB,EAAG,OAAO,CAAC;IAE9B;;;OAGG;IAEH,kBAAkB,EAAG,OAAO,CAAC;IAE7B;;;KAGC;IAED,qBAAqB,EAAG,OAAO,CAAC;IAEhC;;;OAGG;IAEH,qBAAqB,EAAG,OAAO,CAAC;IAEhC;;OAEG;IAEH,SAAS,EAAG,SAAS,CAAC;IAEtB;;;OAGG;IAEH,MAAM,EAAG,OAAO,CAAC;IAGjB,WAAW,EAAG,GAAG,CAAC;IAElB;;OAEG;IACH,aAAa,EAAG,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;IAElD;;OAEG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IAEH,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B;;OAEG;IAEH,gBAAgB,EAAG,cAAc,CAAC;IAElC;;OAEG;IAEH,yBAAyB,EAAG,OAAO,CAAC;IAEpC;;;;;;MAME;IAEF,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;IAEvD;;OAEG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAwBtC,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IA+FzC,cAAc;IA8Bd,gBAAgB;IAahB;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,YAAY;IA2BtC,WAAW,CAAC,MAAM,EAAE,YAAY;IAIhC,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;KAAE;IAsB1G,cAAc;IAQd;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM;IAkB3B;;OAEG;IACH,YAAY;IA6CZ;;OAEG;IACH,MAAM;IA+DN;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG;IA2DhC,gBAAgB,CAAC,MAAM,EAAE,GAAG;IAkB5B,gBAAgB,CAAC,MAAM,EAAE,GAAG;IAoC5B,aAAa,CAAC,MAAM,EAAE,GAAG;IA+CzB,cAAc,CAAC,MAAM,EAAE,GAAG;IAuB1B,OAAO,IAAI,MAAM;IA+BjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ;IA0C7E,IAAI,QAAQ,WAEX;IAED;;;;OAIG;IACH,wBAAwB;IAexB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IACtC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM;IAC3C,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAmD3C;;OAEG;IACH,IAAI,SAAS,IAAI,UAAU,CAO1B;IAED;;OAEG;IACH,IAAI,QAAQ,QAEX;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,UAAU;IACvD,WAAW,CAAC,IAAI,SAAS,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;IAYpE,IAAI,GAAG,QAEN;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;IAQ7C;;OAEG;IACH,IAAI,MAAM,WAWT;IAED,SAAS,EAAG,OAAO,CAAC;IAEpB,IAAI,OAAO,IAKQ,OAAO,CAHzB;IAGD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAKzB;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,EAAE;IAe/F;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;IAuBhE;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM;IAwB7C,WAAW,CAAC,MAAM,EAAE,GAAG;IAavB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,KAAK,CAAC,MAAM,CAAM;IAO1C;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,GAAE,KAAK,CAAC,MAAM,CAAM;IAqB9C;;;;;OAKG;IACH,gBAAgB;IA0ChB;;;;OAIG;IACH,MAAM;IAIN,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,EAAE,GAAG,GAAG;IAqB9E;;;;OAIG;IACH,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,GAAE,KAAK,CAAC,MAAM,CAAM,GAAG,GAAG;IAYtE,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,cAAc;IAqBhE;;OAEG;IAEG,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAI/B;;OAEG;IAEG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIhC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC;IAI5C;;OAEG;IAEG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5E;;OAEG;IAEG,mCAAmC,IAAI,OAAO,CAAC,GAAG,CAAC;IAIzD;;OAEG;IAEG,aAAa,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhD;;OAEG;IAEG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAItC;;OAEG;IAEG,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9D;;OAEG;IAEH,YAAY,CAAC,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,UAAQ,GAAG,GAAG;IAI9E;;;OAGG;IACH,OAAO;IAOP,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY;IAI9B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG;IAIrB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG;IAIrB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KAAE;IAyDjH,WAAW,CAAC,OAAO,EAAE,GAAG;IA4DlB,kBAAkB,CAAC,GAAG,EAAE,GAAG;IAyBjC;;;OAGG;IACH,MAAM,CAAC,iBAAiB,IAAI,GAAG;IAI/B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAsBnE;;;;OAIG;IACF,yBAAyB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IA0CtF;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAwChF;;;;OAIG;IACH,8BAA8B,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAgClI;;;SAGK;IACJ,kCAAkC,CACjC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACzD,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAmCzF,0BAA0B,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IA4B9D;;;;;;OAMG;IACH,iCAAiC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,OAAO,GAAG,IAAI;IAuCxE;;OAEG;IACH,uBAAuB;IAIvB;;;OAGG;IACH,gBAAgB;;;;;;;IAkBhB;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAmBlC,IAAI,UAAU,YAgBb;IAED,IAAI,WAAW,SAiBd;IAED,aAAa;IACb,YAAY,IAAI,UAAU,EAAE;IAC5B,iBAAiB;IACjB,YAAY,CAAC,CAAC,SAAS,iBAAiB,EAAE,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE;IAC3E,uBAAuB;IACvB,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,OAAO,GAAG,UAAU,EAAE;IAwB/D;;;;OAIG;IACH,QAAQ,CAAC,CAAC,SAAS,iBAAiB,EAAE,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS;IACjF;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,GAAG,UAAU,GAAG,SAAS;IAoDpE;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,EAAE,YAAY,UAAQ;IA8EnG,mBAAmB,IAAI,MAAM;IAI5B,YAAY,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC;IAI3C,gBAAgB,IAAI,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;IAIvD,2BAA2B,IAAI,QAAQ,CAAC,uBAAuB;IAI/D;;;;OAIG;IAEH,WAAW,CAAC,KAAK,8EAAwB;IAIzC;;;;OAIG;IAEH,aAAa,CAAC,KAAK,8EAAwB;IAI3C;;OAEG;IACH,SAAS;IAMT;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ;IAWzB;;OAEG;IACH,2BAA2B,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;CA6BvE;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../src/common/BaseNode.ts"],"names":[],"mappings":"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"}
@@ -90,16 +90,18 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
90
90
  */
91
91
  this.parentNode = null;
92
92
  this.parentKey = '';
93
- if (this.hasOwnProperty('JSON_EXCLUDED_KEYS') && this.JSON_EXCLUDED_KEYS === undefined) {
94
- delete this.JSON_EXCLUDED_KEYS;
93
+ if (!source?.silence) {
94
+ if (this.hasOwnProperty('JSON_EXCLUDED_KEYS') && this.JSON_EXCLUDED_KEYS === undefined) {
95
+ delete this.JSON_EXCLUDED_KEYS;
96
+ }
97
+ /**
98
+ * 监听action,delete,update事件
99
+ */
100
+ this.on('create', this.genActionListener);
101
+ this.on('delete', this.genActionListener);
102
+ this.on('update', this.genActionListener);
103
+ this.on('node:Editing', this.nodeEditing);
95
104
  }
96
- /**
97
- * 监听action,delete,update事件
98
- */
99
- this.on('create', this.genActionListener);
100
- this.on('delete', this.genActionListener);
101
- this.on('update', this.genActionListener);
102
- this.on('node:Editing', this.nodeEditing);
103
105
  /**
104
106
  * 调试相关内容只在浏览器端有效
105
107
  */
@@ -110,56 +112,69 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
110
112
  }
111
113
  }
112
114
  subConstructor(source) {
113
- const concept = this.concept || this.constructor.name;
114
- const properties = (0, decorators_1.getConceptProperties)(concept);
115
- const propertyMap = (0, decorators_1.getConceptPropertyMap)(concept);
116
- properties.forEach((key) => {
115
+ const concept = this.concept ?? this.constructor.name;
116
+ const { childProperties, childrenProperties, normalProperties, propertyMap, whitePropertyMap, } = (0, decorators_1.getConceptMeta)(concept);
117
+ // 普通属性迭代
118
+ for (const key of normalProperties) {
117
119
  if (key === 'concept') {
118
- return;
120
+ continue;
119
121
  }
120
- if (source[key] === undefined) {
121
- return;
122
+ const item = source[key];
123
+ if (item === undefined) {
124
+ continue;
122
125
  }
123
- const sourceItem = source[key] !== undefined ? source[key] : this[key];
124
- let property = propertyMap.get(key);
125
- let objectRefCtor;
126
- if (
127
- // 属性存在
128
- sourceItem &&
129
- (
130
- // 全量标注需要的后端标注数据
131
- key === 'typeAnnotation' ||
132
- (
133
- // 测试环境下手动添加的前端标注数据
134
- process.env.NODE_ENV === 'testing' &&
135
- key === '__TypeAnnotation'))) {
136
- property = { objectRef: 'TypeAnnotation' };
137
- }
138
- try {
139
- if (property?.objectRef) {
140
- const arr = property.objectRef.split(' | ');
141
- for (let i = 0; i < arr.length; i++) {
142
- objectRefCtor = (0, decorators_1.getConceptConstructor)(arr[i]);
143
- if (objectRefCtor && sourceItem instanceof objectRefCtor) {
144
- sourceItem.parentNode = this;
145
- sourceItem.parentKey = key;
146
- break;
147
- }
126
+ this[key] = item;
127
+ }
128
+ const getChildInstance = (item, descriptor) => {
129
+ if (descriptor.skipInstantiate ||
130
+ (!item?.concept && !descriptor.compatInstantiate)) {
131
+ return item;
132
+ }
133
+ let Ctor;
134
+ for (const CtorName of descriptor.objectRef) {
135
+ Ctor = (0, decorators_1.getConceptConstructor)(CtorName);
136
+ if (item instanceof Ctor) {
137
+ if (!item.parentNode || !item.parentKey) {
138
+ item.parentNode = this;
139
+ item.parentKey = descriptor.key;
148
140
  }
141
+ return item;
149
142
  }
150
- // 数组的情况也在这里做掉了
151
- const val = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.instantiateSub(sourceItem, key) : sourceItem;
152
- if (val !== undefined) {
153
- this[key] = val;
143
+ }
144
+ const sourceItem = source.silence ? { ...item, silence: true } : item;
145
+ const Constructor = (descriptor.compatInstantiate && Ctor?.from) ? Ctor : BaseNode_1;
146
+ return Constructor.from(sourceItem, this, descriptor.key);
147
+ };
148
+ // 子节点迭代
149
+ for (const key of childProperties) {
150
+ const item = source[key];
151
+ if (item === undefined) {
152
+ continue;
153
+ }
154
+ this[key] = getChildInstance(item, propertyMap.get(key) ?? whitePropertyMap.get(key));
155
+ }
156
+ // 数组子节点迭代
157
+ for (const key of childrenProperties) {
158
+ const item = source[key];
159
+ if (item === undefined) {
160
+ continue;
161
+ }
162
+ if (Array.isArray(item)) {
163
+ this[key] = [];
164
+ if (item.length === 0) {
165
+ continue;
154
166
  }
155
167
  }
156
- catch (e) {
157
- // Function has non-object prototype 'undefined' in instanceof check
158
- if (!e.message.includes('Function has non-object prototype'))
159
- throw e;
168
+ else {
169
+ this[key] = item;
170
+ continue;
160
171
  }
161
- });
162
- if (process.env.NODE_ENV !== 'testing') {
172
+ const metaData = propertyMap.get(key) ?? whitePropertyMap.get(key);
173
+ for (const source of item) {
174
+ this[key].push(getChildInstance(source, metaData));
175
+ }
176
+ }
177
+ if (process.env.NODE_ENV !== 'testing' && utils.isBrowser) {
163
178
  nasl_utils_1.breakpoint.operators.create(this);
164
179
  }
165
180
  // node 环境下需要删除当前节点的 concept 属性
@@ -198,7 +213,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
198
213
  properties.forEach((key) => {
199
214
  const property = propertyMap.get(key);
200
215
  const sourceItem = this[key];
201
- const objectRefCtor = property.objectRef && (0, decorators_1.getConceptConstructor)(property.objectRef);
216
+ const objectRefCtor = property.objectRef.length === 1 ? (0, decorators_1.getConceptConstructor)(property.objectRef[0]) : undefined;
202
217
  if (objectRefCtor) {
203
218
  if (Array.isArray(sourceItem)) {
204
219
  sourceItem.forEach((item, index) => {
@@ -503,7 +518,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
503
518
  const property = propertyMap.get(key);
504
519
  if (property) {
505
520
  const objProperty = object[key] ?? null;
506
- const propertyConcept = property?.objectRef;
521
+ const propertyConcept = property?.objectRef.join(' | ');
507
522
  // 在定义中该属性是否为数组
508
523
  const propertyIsArray = property?.isArray;
509
524
  const propertyDefaultValue = property?.defaultValue;
@@ -546,8 +561,12 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
546
561
  for (const key in object) {
547
562
  const property = propertyMap.get(key);
548
563
  if (property) {
549
- const objProperty = object[key] ?? null;
550
- const propertyConcept = property?.objectRef;
564
+ let objProperty = object[key] ?? null;
565
+ // 减少存储开销
566
+ if (['_aiUID'].includes(key) && !objProperty) {
567
+ objProperty = undefined;
568
+ }
569
+ const propertyConcept = property?.objectRef.join(' | ');
551
570
  // 在定义中该属性是否为数组
552
571
  const propertyIsArray = property?.isArray;
553
572
  const propertyDefaultValue = property?.defaultValue;
@@ -638,41 +657,38 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
638
657
  }
639
658
  static from(source, parentNode, parentKey) {
640
659
  // 有一些继承的情况
641
- const Ctor = (0, decorators_1.getConceptConstructor)(source?.concept) || this;
660
+ const Ctor = (0, decorators_1.getConceptConstructor)(source?.concept) ?? this;
642
661
  if (Ctor && source instanceof Ctor) {
643
662
  if (utils.isDebugMode) {
644
663
  // console.warn('传入的对象已经是一个实例,请确认逻辑是否存在问题!');
645
664
  }
646
- if (parentNode) {
665
+ if (parentNode && !source.parentNode) {
647
666
  source.parentNode = parentNode;
648
667
  }
649
- if (parentKey) {
668
+ if (parentKey && !source.parentKey) {
650
669
  source.parentKey = parentKey;
651
670
  }
652
671
  return source;
653
672
  }
654
673
  if (Ctor) {
655
- const instance = new Ctor();
656
- if (parentNode) {
674
+ /**
675
+ * TODO: 理论上这里的 new 是可以合并后面的 instance.subConstructor 语句的
676
+ * 并且因为很多节点 new 操作里会有默认值,但是这些默认值又会被下面的 source 覆盖掉
677
+ * 所以这里是实际上是多了很多无用的实例化的,可以考虑合并这两个语句,但是不知道为啥
678
+ * 提上来之后,这里实例化的耗时会变成 10 倍,暂且不看了,以后有空再看
679
+ */
680
+ const instance = new Ctor({ silence: source.silence });
681
+ if (parentNode && !instance.parentKey) {
657
682
  instance.parentNode = parentNode;
658
683
  }
659
- if (parentKey) {
684
+ if (parentKey && !instance.parentKey) {
660
685
  instance.parentKey = parentKey;
661
686
  }
662
- let concept;
663
- if (source?.concept)
664
- concept = source?.concept;
665
- else if (!Ctor.isAbstract) {
666
- concept = this?.prototype?.concept ?? Ctor.ConceptName ?? Ctor.name;
667
- }
668
- else {
669
- throw new Error('抽象类需要补充 concept!');
670
- }
671
687
  instance.subConstructor({
672
688
  ...source,
673
- concept,
674
689
  parentNode,
675
690
  });
691
+ Ctor.init?.(instance);
676
692
  return instance;
677
693
  }
678
694
  }
@@ -772,6 +788,15 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
772
788
  }
773
789
  return parentNode;
774
790
  }
791
+ getAncestorRaw(concept) {
792
+ // @ts-ignore
793
+ let { parentNode } = this.__v_raw ?? this;
794
+ while (parentNode && parentNode.concept && ((parentNode.concept !== concept)
795
+ && (!parentNode.constructor.inheritanceChain?.includes(concept)))) {
796
+ parentNode = parentNode.parentNode;
797
+ }
798
+ return parentNode;
799
+ }
775
800
  get app() {
776
801
  return semanticData_1.varScopeCtx.isFirstScreen ? semanticData_1.varScopeCtx.app : this.getAncestor('App');
777
802
  }
@@ -846,7 +871,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
846
871
  }
847
872
  if (source && source.concept) {
848
873
  const Ctor = (0, decorators_1.getConceptConstructor)(source.concept);
849
- if (!Ctor.from) {
874
+ if (!Ctor?.from) {
850
875
  return source;
851
876
  }
852
877
  const instance = Ctor.from(source, parentNode, parentKey);
@@ -1324,36 +1349,41 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
1324
1349
  *
1325
1350
  * @description 严格迭代所有子节点!排除属性!
1326
1351
  */
1327
- traverseStrictChildren(cb, whitelist) {
1352
+ traverseStrictChildren(cb, whitelist = []) {
1328
1353
  function traverse(node) {
1329
- if (!node) {
1330
- return;
1331
- }
1332
- if (concepts_1.asserts.isBaseNode(node)) {
1333
- cb(node);
1354
+ const concept = node.concept ?? node.constructor.name;
1355
+ const { childProperties, childrenProperties, } = (0, decorators_1.getConceptMeta)(concept);
1356
+ const traverseChild = (child) => {
1357
+ if (child && concepts_1.asserts.isBaseNode(child)) {
1358
+ cb(child);
1359
+ traverse(child);
1360
+ }
1361
+ };
1362
+ const traverseChildren = (children) => {
1363
+ if (!Array.isArray(children)) {
1364
+ return;
1365
+ }
1366
+ for (const child of children) {
1367
+ traverseChild(child);
1368
+ }
1369
+ };
1370
+ for (const key of childProperties) {
1371
+ traverseChild(node[key]);
1334
1372
  }
1335
- const propertyMap = (0, decorators_1.getConceptPropertyMap)(node?.concept);
1336
- if (!propertyMap) {
1337
- return;
1373
+ for (const key of childrenProperties) {
1374
+ traverseChildren(node[key]);
1338
1375
  }
1339
- const keys = (whitelist && whitelist.length > 0)
1340
- ? Array.from(propertyMap.keys()).concat(whitelist)
1341
- : propertyMap.keys();
1342
- for (const property of keys) {
1343
- const prop = node[property];
1344
- if (!prop) {
1345
- continue;
1346
- }
1347
- else if (Array.isArray(prop)) {
1348
- for (const child of prop) {
1349
- traverse(child);
1350
- }
1376
+ for (const key of whitelist) {
1377
+ const item = node[key];
1378
+ if (Array.isArray(item)) {
1379
+ traverseChildren(item);
1351
1380
  }
1352
1381
  else {
1353
- traverse(prop);
1382
+ traverseChild(item);
1354
1383
  }
1355
1384
  }
1356
1385
  }
1386
+ cb(this);
1357
1387
  traverse(this);
1358
1388
  }
1359
1389
  /**
@@ -1391,37 +1421,43 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
1391
1421
  __traverse(this);
1392
1422
  }
1393
1423
  /**
1394
- * 迭代所有子节点
1395
- * @description 严格迭代所有子节点,排除属性;多函数特化版本,不做额外检查
1396
- */
1424
+ * @description 并非迭代所有子节点,只迭代 NASL 节点的子节点。排除属性;多函数特化版本,不做额外检查。
1425
+ */
1397
1426
  *traverseStrictChildrenDoMultiTasks(tasks, cleanups) {
1398
- function __traverse(nd) {
1399
- if (!concepts_1.asserts.isBaseNode(nd)) {
1400
- return;
1401
- }
1402
- tasks.forEach(task => utils.runGeneratorSync(task(nd)));
1403
- const props = (0, decorators_1.getConceptPropertyMap)(nd?.concept)?.keys();
1404
- if (!props) {
1405
- cleanups.forEach(task => utils.runGeneratorSync(task(nd)));
1406
- return;
1407
- }
1408
- for (const p of props) {
1409
- const child = nd[p];
1410
- if (!child) {
1411
- continue;
1427
+ function* __traverse(nd) {
1428
+ if (concepts_1.asserts.isBaseNode(nd)) {
1429
+ for (const task of tasks) {
1430
+ yield* task(nd);
1412
1431
  }
1413
- else if (Array.isArray(child)) {
1414
- child?.forEach?.((node) => {
1415
- __traverse(node);
1416
- });
1432
+ const props = (0, decorators_1.getConceptPropertyMap)(nd?.concept)?.keys();
1433
+ if (!props) {
1434
+ for (const task of cleanups) {
1435
+ yield* task(nd);
1436
+ }
1417
1437
  }
1418
1438
  else {
1419
- __traverse(child);
1439
+ for (const p of props) {
1440
+ const child = nd[p];
1441
+ if (!child) {
1442
+ continue;
1443
+ }
1444
+ else if (Array.isArray(child)) {
1445
+ for (const node of child) {
1446
+ yield* __traverse(node);
1447
+ }
1448
+ }
1449
+ else {
1450
+ yield* __traverse(child);
1451
+ }
1452
+ }
1453
+ yield;
1454
+ for (const task of cleanups) {
1455
+ yield* task(nd);
1456
+ }
1420
1457
  }
1421
1458
  }
1422
- cleanups.forEach(task => utils.runGeneratorSync(task(nd)));
1423
1459
  }
1424
- __traverse(this);
1460
+ yield* __traverse(this);
1425
1461
  }
1426
1462
  traverseStrictChildrenOnly(cb) {
1427
1463
  function __traverse(node) {
@@ -1858,6 +1894,10 @@ __decorate([
1858
1894
  __decorate([
1859
1895
  (0, decorators_1.excludedInJSON)()
1860
1896
  ], BaseNode.prototype, "__TypeAnnotation", void 0);
1897
+ __decorate([
1898
+ (0, decorators_1.whiteProperty)(),
1899
+ (0, decorators_1.excludedInJSON)()
1900
+ ], BaseNode.prototype, "silence", void 0);
1861
1901
  __decorate([
1862
1902
  (0, decorators_1.excludedInJSON)()
1863
1903
  ], BaseNode.prototype, "__isCorrectTypeAnnotation", void 0);