@lcap/nasl-concepts 3.9.1-beta.16 → 3.9.1-beta.18

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 (46) hide show
  1. package/out/common/BaseNode.d.ts +11 -3
  2. package/out/common/BaseNode.d.ts.map +1 -1
  3. package/out/common/BaseNode.js +146 -113
  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 +12 -0
  8. package/out/concepts/App__.js.map +1 -1
  9. package/out/concepts/CallLogic__.d.ts.map +1 -1
  10. package/out/concepts/CallLogic__.js +6 -4
  11. package/out/concepts/CallLogic__.js.map +1 -1
  12. package/out/concepts/CompletionProperty__.d.ts.map +1 -1
  13. package/out/concepts/CompletionProperty__.js +9 -2
  14. package/out/concepts/CompletionProperty__.js.map +1 -1
  15. package/out/concepts/FlowConditionItemV2__.js +1 -1
  16. package/out/concepts/FlowConditionItemV2__.js.map +1 -1
  17. package/out/concepts/MemberExpression__.js +3 -3
  18. package/out/concepts/MemberExpression__.js.map +1 -1
  19. package/out/concepts/Param__.d.ts +1 -1
  20. package/out/concepts/Param__.d.ts.map +1 -1
  21. package/out/concepts/Param__.js +3 -1
  22. package/out/concepts/Param__.js.map +1 -1
  23. package/out/concepts/ProcessComponentV2__.js +1 -1
  24. package/out/concepts/ProcessComponentV2__.js.map +1 -1
  25. package/out/concepts/ViewElement__.d.ts +4 -0
  26. package/out/concepts/ViewElement__.d.ts.map +1 -1
  27. package/out/concepts/ViewElement__.js +12 -8
  28. package/out/concepts/ViewElement__.js.map +1 -1
  29. package/out/decorators/constant.d.ts +41 -4
  30. package/out/decorators/constant.d.ts.map +1 -1
  31. package/out/decorators/constant.js.map +1 -1
  32. package/out/decorators/index.d.ts +5 -2
  33. package/out/decorators/index.d.ts.map +1 -1
  34. package/out/decorators/index.js +47 -24
  35. package/out/decorators/index.js.map +1 -1
  36. package/out/decorators/utils.d.ts +2 -8
  37. package/out/decorators/utils.d.ts.map +1 -1
  38. package/out/decorators/utils.js +12 -14
  39. package/out/decorators/utils.js.map +1 -1
  40. package/out/semantics/semanticData.d.ts.map +1 -1
  41. package/out/semantics/semanticData.js +15 -15
  42. package/out/semantics/semanticData.js.map +1 -1
  43. package/out/service/annotation.d.ts.map +1 -1
  44. package/out/service/annotation.js +9 -1
  45. package/out/service/annotation.js.map +1 -1
  46. package/package.json +5 -5
@@ -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
  */
@@ -357,9 +366,8 @@ export declare class BaseNode extends EventEmitter {
357
366
  */
358
367
  traverseStrictChildrenStopWhen(cb: (el: SyntaxNode) => void, setStopFlag: (el: SyntaxNode) => boolean, whitelist?: string[]): void;
359
368
  /**
360
- * 迭代所有子节点
361
- * @description 严格迭代所有子节点,排除属性;多函数特化版本,不做额外检查
362
- */
369
+ * @description 并非迭代所有子节点,只迭代 NASL 节点的子节点。排除属性;多函数特化版本,不做额外检查。
370
+ */
363
371
  traverseStrictChildrenDoMultiTasks(tasks: Array<(_: SyntaxNode) => Generator<any, any, any>>, cleanups: Array<(_: SyntaxNode) => Generator<any, any, any>>): Generator<any, any, any>;
364
372
  traverseStrictChildrenOnly(cb: (el: SyntaxNode) => void): void;
365
373
  /**
@@ -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,75 @@ 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.needInstance) {
130
+ return item;
131
+ }
132
+ for (const CtorName of descriptor.objectRef) {
133
+ const Ctor = (0, decorators_1.getConceptConstructor)(CtorName);
134
+ if (item instanceof Ctor) {
135
+ if (!item.parentNode || !item.parentKey) {
136
+ item.parentNode = this;
137
+ item.parentKey = descriptor.key;
148
138
  }
139
+ return item;
149
140
  }
150
- // 数组的情况也在这里做掉了
151
- const val = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.instantiateSub(sourceItem, key) : sourceItem;
152
- if (val !== undefined) {
153
- this[key] = val;
141
+ }
142
+ return source.silence
143
+ ? BaseNode_1.from({ ...item, silence: true }, this, descriptor.key)
144
+ : BaseNode_1.from(item, this, descriptor.key);
145
+ };
146
+ // 子节点迭代
147
+ for (const key of childProperties) {
148
+ const item = source[key];
149
+ if (item === undefined) {
150
+ continue;
151
+ }
152
+ if (item?.concept) {
153
+ this[key] = getChildInstance(item, propertyMap.get(key) ?? whitePropertyMap.get(key));
154
+ }
155
+ // 非法值或者是无效值覆盖掉原始的默认值
156
+ else {
157
+ this[key] = item;
158
+ }
159
+ }
160
+ // 数组子节点迭代
161
+ for (const key of childrenProperties) {
162
+ const item = source[key];
163
+ if (item === undefined) {
164
+ continue;
165
+ }
166
+ if (Array.isArray(item)) {
167
+ this[key] = [];
168
+ if (item.length === 0) {
169
+ continue;
154
170
  }
155
171
  }
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;
172
+ else {
173
+ this[key] = item;
174
+ continue;
175
+ }
176
+ const metaData = propertyMap.get(key) ?? whitePropertyMap.get(key);
177
+ for (const source of item) {
178
+ if (source?.concept) {
179
+ this[key].push(getChildInstance(source, metaData));
180
+ }
160
181
  }
161
- });
162
- if (process.env.NODE_ENV !== 'testing') {
182
+ }
183
+ if (process.env.NODE_ENV !== 'testing' && utils.isBrowser) {
163
184
  nasl_utils_1.breakpoint.operators.create(this);
164
185
  }
165
186
  // node 环境下需要删除当前节点的 concept 属性
@@ -198,7 +219,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
198
219
  properties.forEach((key) => {
199
220
  const property = propertyMap.get(key);
200
221
  const sourceItem = this[key];
201
- const objectRefCtor = property.objectRef && (0, decorators_1.getConceptConstructor)(property.objectRef);
222
+ const objectRefCtor = property.objectRef.length === 1 ? (0, decorators_1.getConceptConstructor)(property.objectRef[0]) : undefined;
202
223
  if (objectRefCtor) {
203
224
  if (Array.isArray(sourceItem)) {
204
225
  sourceItem.forEach((item, index) => {
@@ -503,7 +524,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
503
524
  const property = propertyMap.get(key);
504
525
  if (property) {
505
526
  const objProperty = object[key] ?? null;
506
- const propertyConcept = property?.objectRef;
527
+ const propertyConcept = property?.objectRef.join(' | ');
507
528
  // 在定义中该属性是否为数组
508
529
  const propertyIsArray = property?.isArray;
509
530
  const propertyDefaultValue = property?.defaultValue;
@@ -547,7 +568,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
547
568
  const property = propertyMap.get(key);
548
569
  if (property) {
549
570
  const objProperty = object[key] ?? null;
550
- const propertyConcept = property?.objectRef;
571
+ const propertyConcept = property?.objectRef.join(' | ');
551
572
  // 在定义中该属性是否为数组
552
573
  const propertyIsArray = property?.isArray;
553
574
  const propertyDefaultValue = property?.defaultValue;
@@ -638,7 +659,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
638
659
  }
639
660
  static from(source, parentNode, parentKey) {
640
661
  // 有一些继承的情况
641
- const Ctor = (0, decorators_1.getConceptConstructor)(source?.concept) || this;
662
+ const Ctor = (0, decorators_1.getConceptConstructor)(source?.concept) ?? this;
642
663
  if (Ctor && source instanceof Ctor) {
643
664
  if (utils.isDebugMode) {
644
665
  // console.warn('传入的对象已经是一个实例,请确认逻辑是否存在问题!');
@@ -652,27 +673,24 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
652
673
  return source;
653
674
  }
654
675
  if (Ctor) {
655
- const instance = new Ctor();
676
+ /**
677
+ * TODO: 理论上这里的 new 是可以合并后面的 instance.subConstructor 语句的
678
+ * 并且因为很多节点 new 操作里会有默认值,但是这些默认值又会被下面的 source 覆盖掉
679
+ * 所以这里是实际上是多了很多无用的实例化的,可以考虑合并这两个语句,但是不知道为啥
680
+ * 提上来之后,这里实例化的耗时会变成 10 倍,暂且不看了,以后有空再看
681
+ */
682
+ const instance = new Ctor({ silence: source.silence });
656
683
  if (parentNode) {
657
684
  instance.parentNode = parentNode;
658
685
  }
659
686
  if (parentKey) {
660
687
  instance.parentKey = parentKey;
661
688
  }
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
689
  instance.subConstructor({
672
690
  ...source,
673
- concept,
674
691
  parentNode,
675
692
  });
693
+ Ctor.init?.(instance);
676
694
  return instance;
677
695
  }
678
696
  }
@@ -846,7 +864,7 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
846
864
  }
847
865
  if (source && source.concept) {
848
866
  const Ctor = (0, decorators_1.getConceptConstructor)(source.concept);
849
- if (!Ctor.from) {
867
+ if (!Ctor?.from) {
850
868
  return source;
851
869
  }
852
870
  const instance = Ctor.from(source, parentNode, parentKey);
@@ -1324,36 +1342,41 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
1324
1342
  *
1325
1343
  * @description 严格迭代所有子节点!排除属性!
1326
1344
  */
1327
- traverseStrictChildren(cb, whitelist) {
1345
+ traverseStrictChildren(cb, whitelist = []) {
1328
1346
  function traverse(node) {
1329
- if (!node) {
1330
- return;
1331
- }
1332
- if (concepts_1.asserts.isBaseNode(node)) {
1333
- cb(node);
1347
+ const concept = node.concept ?? node.constructor.name;
1348
+ const { childProperties, childrenProperties, } = (0, decorators_1.getConceptMeta)(concept);
1349
+ const traverseChild = (child) => {
1350
+ if (child && concepts_1.asserts.isBaseNode(child)) {
1351
+ cb(child);
1352
+ traverse(child);
1353
+ }
1354
+ };
1355
+ const traverseChildren = (children) => {
1356
+ if (!Array.isArray(children)) {
1357
+ return;
1358
+ }
1359
+ for (const child of children) {
1360
+ traverseChild(child);
1361
+ }
1362
+ };
1363
+ for (const key of childProperties) {
1364
+ traverseChild(node[key]);
1334
1365
  }
1335
- const propertyMap = (0, decorators_1.getConceptPropertyMap)(node?.concept);
1336
- if (!propertyMap) {
1337
- return;
1366
+ for (const key of childrenProperties) {
1367
+ traverseChildren(node[key]);
1338
1368
  }
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
- }
1369
+ for (const key of whitelist) {
1370
+ const item = node[key];
1371
+ if (Array.isArray(item)) {
1372
+ traverseChildren(item);
1351
1373
  }
1352
1374
  else {
1353
- traverse(prop);
1375
+ traverseChild(item);
1354
1376
  }
1355
1377
  }
1356
1378
  }
1379
+ cb(this);
1357
1380
  traverse(this);
1358
1381
  }
1359
1382
  /**
@@ -1391,37 +1414,43 @@ let BaseNode = class BaseNode extends EventEmitter_1.EventEmitter {
1391
1414
  __traverse(this);
1392
1415
  }
1393
1416
  /**
1394
- * 迭代所有子节点
1395
- * @description 严格迭代所有子节点,排除属性;多函数特化版本,不做额外检查
1396
- */
1417
+ * @description 并非迭代所有子节点,只迭代 NASL 节点的子节点。排除属性;多函数特化版本,不做额外检查。
1418
+ */
1397
1419
  *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;
1420
+ function* __traverse(nd) {
1421
+ if (concepts_1.asserts.isBaseNode(nd)) {
1422
+ for (const task of tasks) {
1423
+ yield* task(nd);
1412
1424
  }
1413
- else if (Array.isArray(child)) {
1414
- child?.forEach?.((node) => {
1415
- __traverse(node);
1416
- });
1425
+ const props = (0, decorators_1.getConceptPropertyMap)(nd?.concept)?.keys();
1426
+ if (!props) {
1427
+ for (const task of cleanups) {
1428
+ yield* task(nd);
1429
+ }
1417
1430
  }
1418
1431
  else {
1419
- __traverse(child);
1432
+ for (const p of props) {
1433
+ const child = nd[p];
1434
+ if (!child) {
1435
+ continue;
1436
+ }
1437
+ else if (Array.isArray(child)) {
1438
+ for (const node of child) {
1439
+ yield* __traverse(node);
1440
+ }
1441
+ }
1442
+ else {
1443
+ yield* __traverse(child);
1444
+ }
1445
+ }
1446
+ yield;
1447
+ for (const task of cleanups) {
1448
+ yield* task(nd);
1449
+ }
1420
1450
  }
1421
1451
  }
1422
- cleanups.forEach(task => utils.runGeneratorSync(task(nd)));
1423
1452
  }
1424
- __traverse(this);
1453
+ yield* __traverse(this);
1425
1454
  }
1426
1455
  traverseStrictChildrenOnly(cb) {
1427
1456
  function __traverse(node) {
@@ -1858,6 +1887,10 @@ __decorate([
1858
1887
  __decorate([
1859
1888
  (0, decorators_1.excludedInJSON)()
1860
1889
  ], BaseNode.prototype, "__TypeAnnotation", void 0);
1890
+ __decorate([
1891
+ (0, decorators_1.whiteProperty)(),
1892
+ (0, decorators_1.excludedInJSON)()
1893
+ ], BaseNode.prototype, "silence", void 0);
1861
1894
  __decorate([
1862
1895
  (0, decorators_1.excludedInJSON)()
1863
1896
  ], BaseNode.prototype, "__isCorrectTypeAnnotation", void 0);