arkanalyzer 1.0.7 → 1.0.8

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 (170) hide show
  1. package/config/arkanalyzer.json +8 -0
  2. package/docs/IR2ts-stmt.md +81 -0
  3. package/docs/IR2ts.md +82 -0
  4. package/lib/Config.d.ts +9 -1
  5. package/lib/Config.d.ts.map +1 -1
  6. package/lib/Config.js +24 -11
  7. package/lib/Scene.d.ts +49 -42
  8. package/lib/Scene.d.ts.map +1 -1
  9. package/lib/Scene.js +124 -93
  10. package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -1
  11. package/lib/callgraph/common/Statistics.js +1 -1
  12. package/lib/callgraph/model/CallGraph.d.ts +3 -2
  13. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  14. package/lib/callgraph/model/CallGraph.js +16 -6
  15. package/lib/callgraph/model/builder/CallGraphBuilder.js +1 -1
  16. package/lib/callgraph/pointerAnalysis/Pag.d.ts +35 -8
  17. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  18. package/lib/callgraph/pointerAnalysis/Pag.js +93 -12
  19. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +32 -5
  20. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  21. package/lib/callgraph/pointerAnalysis/PagBuilder.js +378 -83
  22. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +3 -0
  23. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  24. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +71 -18
  25. package/lib/core/base/Constant.d.ts +25 -5
  26. package/lib/core/base/Constant.d.ts.map +1 -1
  27. package/lib/core/base/Constant.js +46 -8
  28. package/lib/core/base/Expr.d.ts +45 -40
  29. package/lib/core/base/Expr.d.ts.map +1 -1
  30. package/lib/core/base/Expr.js +239 -153
  31. package/lib/core/base/Local.d.ts +2 -2
  32. package/lib/core/base/Local.d.ts.map +1 -1
  33. package/lib/core/base/Local.js +2 -2
  34. package/lib/core/base/Ref.d.ts +38 -37
  35. package/lib/core/base/Ref.d.ts.map +1 -1
  36. package/lib/core/base/Ref.js +102 -70
  37. package/lib/core/base/Stmt.d.ts +4 -0
  38. package/lib/core/base/Stmt.d.ts.map +1 -1
  39. package/lib/core/base/Stmt.js +12 -1
  40. package/lib/core/base/Type.d.ts +4 -0
  41. package/lib/core/base/Type.d.ts.map +1 -1
  42. package/lib/core/base/Type.js +41 -17
  43. package/lib/core/common/ArkError.d.ts +15 -0
  44. package/lib/core/common/ArkError.d.ts.map +1 -0
  45. package/lib/core/common/ArkError.js +28 -0
  46. package/lib/core/common/ArkIRTransformer.d.ts +7 -3
  47. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  48. package/lib/core/common/ArkIRTransformer.js +46 -20
  49. package/lib/core/common/Builtin.js +1 -1
  50. package/lib/core/common/CfgBuilder.d.ts +12 -0
  51. package/lib/core/common/CfgBuilder.d.ts.map +1 -1
  52. package/lib/core/common/CfgBuilder.js +289 -61
  53. package/lib/core/common/Const.d.ts +15 -10
  54. package/lib/core/common/Const.d.ts.map +1 -1
  55. package/lib/core/common/Const.js +18 -11
  56. package/lib/core/common/DummyMainCreater.d.ts +2 -1
  57. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  58. package/lib/core/common/DummyMainCreater.js +28 -15
  59. package/lib/core/common/EtsConst.d.ts +1 -0
  60. package/lib/core/common/EtsConst.d.ts.map +1 -1
  61. package/lib/core/common/EtsConst.js +2 -1
  62. package/lib/core/common/IRUtils.d.ts +7 -0
  63. package/lib/core/common/IRUtils.d.ts.map +1 -1
  64. package/lib/core/common/IRUtils.js +34 -2
  65. package/lib/core/common/ModelUtils.d.ts +1 -0
  66. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  67. package/lib/core/common/ModelUtils.js +32 -32
  68. package/lib/core/common/TSConst.d.ts +10 -3
  69. package/lib/core/common/TSConst.d.ts.map +1 -1
  70. package/lib/core/common/TSConst.js +11 -4
  71. package/lib/core/common/TypeInference.d.ts +8 -2
  72. package/lib/core/common/TypeInference.d.ts.map +1 -1
  73. package/lib/core/common/TypeInference.js +218 -87
  74. package/lib/core/common/ValueUtil.d.ts +0 -4
  75. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  76. package/lib/core/common/ValueUtil.js +8 -25
  77. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  78. package/lib/core/dataflow/DataflowSolver.js +2 -4
  79. package/lib/core/dataflow/TiantAnalysis.js +2 -1
  80. package/lib/core/dataflow/Util.d.ts +1 -1
  81. package/lib/core/dataflow/Util.d.ts.map +1 -1
  82. package/lib/core/dataflow/Util.js +8 -7
  83. package/lib/core/graph/BasicBlock.d.ts +41 -0
  84. package/lib/core/graph/BasicBlock.d.ts.map +1 -1
  85. package/lib/core/graph/BasicBlock.js +132 -1
  86. package/lib/core/graph/Cfg.d.ts +30 -1
  87. package/lib/core/graph/Cfg.d.ts.map +1 -1
  88. package/lib/core/graph/Cfg.js +129 -6
  89. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  90. package/lib/core/graph/builder/ViewTreeBuilder.js +3 -2
  91. package/lib/core/model/ArkBaseModel.d.ts +8 -0
  92. package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
  93. package/lib/core/model/ArkBaseModel.js +56 -4
  94. package/lib/core/model/ArkClass.d.ts +36 -30
  95. package/lib/core/model/ArkClass.d.ts.map +1 -1
  96. package/lib/core/model/ArkClass.js +79 -40
  97. package/lib/core/model/ArkExport.d.ts +3 -0
  98. package/lib/core/model/ArkExport.d.ts.map +1 -1
  99. package/lib/core/model/ArkExport.js +11 -1
  100. package/lib/core/model/ArkField.d.ts +2 -0
  101. package/lib/core/model/ArkField.d.ts.map +1 -1
  102. package/lib/core/model/ArkField.js +4 -1
  103. package/lib/core/model/ArkFile.d.ts +4 -0
  104. package/lib/core/model/ArkFile.d.ts.map +1 -1
  105. package/lib/core/model/ArkFile.js +20 -0
  106. package/lib/core/model/ArkImport.d.ts +2 -0
  107. package/lib/core/model/ArkImport.d.ts.map +1 -1
  108. package/lib/core/model/ArkImport.js +3 -0
  109. package/lib/core/model/ArkMetadata.d.ts +20 -0
  110. package/lib/core/model/ArkMetadata.d.ts.map +1 -0
  111. package/lib/core/model/ArkMetadata.js +44 -0
  112. package/lib/core/model/ArkMethod.d.ts +156 -53
  113. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  114. package/lib/core/model/ArkMethod.js +309 -54
  115. package/lib/core/model/ArkNamespace.d.ts +4 -0
  116. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  117. package/lib/core/model/ArkNamespace.js +13 -0
  118. package/lib/core/model/ArkSignature.d.ts +11 -5
  119. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  120. package/lib/core/model/ArkSignature.js +38 -18
  121. package/lib/core/model/builder/ArkClassBuilder.d.ts +0 -1
  122. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  123. package/lib/core/model/builder/ArkClassBuilder.js +9 -34
  124. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
  125. package/lib/core/model/builder/ArkExportBuilder.js +6 -1
  126. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  127. package/lib/core/model/builder/ArkFieldBuilder.js +3 -0
  128. package/lib/core/model/builder/ArkFileBuilder.js +1 -1
  129. package/lib/core/model/builder/ArkImportBuilder.d.ts +2 -1
  130. package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -1
  131. package/lib/core/model/builder/ArkImportBuilder.js +12 -5
  132. package/lib/core/model/builder/ArkMethodBuilder.d.ts +2 -1
  133. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  134. package/lib/core/model/builder/ArkMethodBuilder.js +87 -47
  135. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  136. package/lib/core/model/builder/ArkNamespaceBuilder.js +2 -0
  137. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  138. package/lib/core/model/builder/builderUtils.js +25 -2
  139. package/lib/save/source/SourceClass.d.ts.map +1 -1
  140. package/lib/save/source/SourceClass.js +4 -0
  141. package/lib/save/source/SourceField.d.ts.map +1 -1
  142. package/lib/save/source/SourceField.js +4 -0
  143. package/lib/save/source/SourceMethod.d.ts.map +1 -1
  144. package/lib/save/source/SourceMethod.js +7 -0
  145. package/lib/save/source/SourceModule.d.ts.map +1 -1
  146. package/lib/save/source/SourceModule.js +14 -9
  147. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  148. package/lib/save/source/SourceNamespace.js +4 -0
  149. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  150. package/lib/save/source/SourceStmt.js +15 -3
  151. package/lib/save/source/SourceTransformer.d.ts +6 -0
  152. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  153. package/lib/save/source/SourceTransformer.js +72 -41
  154. package/lib/save/source/SourceUtils.d.ts.map +1 -1
  155. package/lib/save/source/SourceUtils.js +3 -2
  156. package/lib/transformer/StaticSingleAssignmentFormer.js +1 -1
  157. package/lib/utils/CfgStructualAnalysis.d.ts +1 -0
  158. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  159. package/lib/utils/CfgStructualAnalysis.js +42 -8
  160. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  161. package/lib/utils/callGraphUtils.js +7 -10
  162. package/lib/utils/crypto_utils.d.ts +6 -0
  163. package/lib/utils/crypto_utils.d.ts.map +1 -0
  164. package/lib/utils/crypto_utils.js +57 -0
  165. package/lib/utils/entryMethodUtils.js +23 -23
  166. package/lib/utils/getAllFiles.d.ts +1 -1
  167. package/lib/utils/getAllFiles.d.ts.map +1 -1
  168. package/lib/utils/getAllFiles.js +4 -5
  169. package/lib/utils/logger.js +2 -2
  170. package/package.json +3 -2
@@ -1,4 +1,4 @@
1
- import { GenericType } from '../base/Type';
1
+ import { GenericType, Type } from '../base/Type';
2
2
  import { ViewTree } from '../graph/ViewTree';
3
3
  import { ArkField } from './ArkField';
4
4
  import { ArkFile } from './ArkFile';
@@ -8,6 +8,7 @@ import { ClassSignature, FieldSignature, FileSignature, MethodSignature, Namespa
8
8
  import { Local } from '../base/Local';
9
9
  import { ArkExport, ExportType } from './ArkExport';
10
10
  import { ArkBaseModel } from './ArkBaseModel';
11
+ import { ArkError } from '../common/ArkError';
11
12
  export declare enum ClassCategory {
12
13
  CLASS = 0,
13
14
  STRUCT = 1,
@@ -30,6 +31,7 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
30
31
  private superClass?;
31
32
  private implementedInterfaceNames;
32
33
  private genericsTypes?;
34
+ private realTypes?;
33
35
  private defaultMethod;
34
36
  private methods;
35
37
  private fields;
@@ -73,9 +75,9 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
73
75
  * @example
74
76
  * 1. Get the {@link ArkFile} which the ArkClass is in.
75
77
 
76
- ```typescript
77
- const arkFile = arkClass.getDeclaringArkFile();
78
- ```
78
+ ```typescript
79
+ const arkFile = arkClass.getDeclaringArkFile();
80
+ ```
79
81
  */
80
82
  getDeclaringArkFile(): ArkFile;
81
83
  setDeclaringArkFile(declaringArkFile: ArkFile): void;
@@ -123,6 +125,7 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
123
125
  getFields(): ArkField[];
124
126
  addField(field: ArkField): void;
125
127
  addFields(fields: ArkField[]): void;
128
+ getRealTypes(): Type[] | undefined;
126
129
  getGenericsTypes(): GenericType[] | undefined;
127
130
  addGenericType(gType: GenericType): void;
128
131
  /**
@@ -132,14 +135,14 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
132
135
  * @returns An array of all methods in this class.
133
136
  * @example
134
137
  * 1. Get methods defined in class `BookService`.
135
-
136
- ```typescript
137
- let classes: ArkClass[] = scene.getClasses();
138
- let serviceClass : ArkClass = classes[1];
139
- let methods: ArkMethod[] = serviceClass.getMethods();
140
- let methodNames: string[] = methods.map(mthd => mthd.name);
141
- console.log(methodNames);
142
- ```
138
+
139
+ ```typescript
140
+ let classes: ArkClass[] = scene.getClasses();
141
+ let serviceClass : ArkClass = classes[1];
142
+ let methods: ArkMethod[] = serviceClass.getMethods();
143
+ let methodNames: string[] = methods.map(mthd => mthd.name);
144
+ console.log(methodNames);
145
+ ```
143
146
  */
144
147
  getMethods(generated?: boolean): ArkMethod[];
145
148
  getMethod(methodSignature: MethodSignature): ArkMethod | null;
@@ -155,15 +158,15 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
155
158
  * @example
156
159
  * 1. get viewTree of ArkClass.
157
160
 
158
- ```typescript
159
- for (let arkFiles of scene.getFiles()) {
160
- for (let arkClasss of arkFiles.getClasses()) {
161
- if (arkClasss.hasViewTree()) {
162
- arkClasss.getViewTree();
163
- }
164
- }
165
- }
166
- ```
161
+ ```typescript
162
+ for (let arkFiles of scene.getFiles()) {
163
+ for (let arkClasss of arkFiles.getClasses()) {
164
+ if (arkClasss.hasViewTree()) {
165
+ arkClasss.getViewTree();
166
+ }
167
+ }
168
+ }
169
+ ```
167
170
  */
168
171
  getViewTree(): ViewTree | undefined;
169
172
  /**
@@ -173,15 +176,15 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
173
176
  * @example
174
177
  * 1. Judge viewTree of ArkClass.
175
178
 
176
- ```typescript
177
- for (let arkFiles of scene.getFiles()) {
178
- for (let arkClasss of arkFiles.getClasses()) {
179
- if (arkClasss.hasViewTree()) {
180
- arkClasss.getViewTree();
181
- }
182
- }
183
- }
184
- ```
179
+ ```typescript
180
+ for (let arkFiles of scene.getFiles()) {
181
+ for (let arkClasss of arkFiles.getClasses()) {
182
+ if (arkClasss.hasViewTree()) {
183
+ arkClasss.getViewTree();
184
+ }
185
+ }
186
+ }
187
+ ```
185
188
  */
186
189
  hasViewTree(): boolean;
187
190
  getStaticFields(classMap: Map<FileSignature | NamespaceSignature, ArkClass[]>): ArkField[];
@@ -193,5 +196,8 @@ export declare class ArkClass extends ArkBaseModel implements ArkExport {
193
196
  getStaticInitMethod(): ArkMethod;
194
197
  setInstanceInitMethod(arkMethod: ArkMethod): void;
195
198
  setStaticInitMethod(arkMethod: ArkMethod): void;
199
+ removeField(field: ArkField): boolean;
200
+ removeMethod(method: ArkMethod): boolean;
201
+ validate(): ArkError;
196
202
  }
197
203
  //# sourceMappingURL=ArkClass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkClass.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkClass.ts"],"names":[],"mappings":"AAeA,OAAO,EAAa,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,oBAAY,aAAa;IACrB,KAAK,IAAI;IACT,MAAM,IAAI;IACV,SAAS,IAAI;IACb,IAAI,IAAI;IACR,YAAY,IAAI;IAChB,MAAM,IAAI;CACb;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAa,YAAW,SAAS;IAC3D,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,gBAAgB,CAAW;IACnC,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAkB;IAExC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,UAAU,CAAC,CAAkB;IACrC,OAAO,CAAC,yBAAyB,CAAgB;IACjD,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC,OAAO,CAAC,aAAa,CAA0B;IAG/C,OAAO,CAAC,OAAO,CAAwD;IACvE,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,aAAa,CAAwD;IAC7E,OAAO,CAAC,YAAY,CAAsD;IAE1E,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,oBAAoB,CAAa;IAEzC,OAAO,CAAC,QAAQ,CAAC,CAAW;;IAM5B;;;OAGG;IACI,OAAO;IAId;;;OAGG;IACI,OAAO;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM;IAI3B;;;OAGG;IACI,OAAO;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM;IAI3B;;;OAGG;IACI,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIjD;;;;;;;;;OASG;IACI,mBAAmB;IAInB,mBAAmB,CAAC,gBAAgB,EAAE,OAAO;IAIpD;;;OAGG;IACI,wBAAwB,IAAI,YAAY,GAAG,SAAS;IAIpD,wBAAwB,CAAC,qBAAqB,EAAE,YAAY,GAAG,SAAS;IAIxE,iBAAiB,IAAI,OAAO;IAI5B,gBAAgB,IAAI,OAAO;IAIlC;;;;OAIG;IACI,YAAY;IAIZ,YAAY,CAAC,QAAQ,EAAE,cAAc;IAIrC,iBAAiB;IAIjB,iBAAiB,CAAC,cAAc,EAAE,MAAM;IAI/C;;;OAGG;IACI,aAAa,IAAI,QAAQ,GAAG,IAAI;IAgBhC,aAAa,CAAC,UAAU,EAAE,QAAQ;IAIlC,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAI3C,gBAAgB,CAAC,aAAa,EAAE,QAAQ;IAIxC,4BAA4B;IAI5B,2BAA2B,CAAC,aAAa,EAAE,MAAM;IAIjD,uBAAuB,CAAC,aAAa,EAAE,MAAM;IAIpD;;;;;OAKG;IACI,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI;IASzD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIpD,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIjE;;;OAGG;IACI,SAAS,IAAI,QAAQ,EAAE;IAMvB,QAAQ,CAAC,KAAK,EAAE,QAAQ;IAQxB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE;IAM5B,gBAAgB;IAIhB,cAAc,CAAC,KAAK,EAAE,WAAW;IAOxC;;;;;;;;;;;;;;;OAeG;IACI,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE;IAO5C,SAAS,CAAC,eAAe,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI;IAS7D,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIvD,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAI7D,SAAS,CAAC,MAAM,EAAE,SAAS;IAQ3B,mBAAmB,CAAC,aAAa,EAAE,SAAS;IAK5C,mBAAmB,IAAI,SAAS,GAAG,IAAI;IAIvC,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAIrC;;;;;;;;;;;;;;;OAeG;IACI,WAAW,IAAI,QAAQ,GAAG,SAAS;IAI1C;;;;;;;;;;;;;;;;OAgBG;IACI,WAAW,IAAI,OAAO;IAItB,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE;IAkB1F,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,aAAa,GAAG,kBAAkB,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE;IAOvF,wBAAwB;IAIxB,uBAAuB;IAI9B,aAAa,IAAI,UAAU;IAIpB,qBAAqB,IAAI,SAAS;IAIlC,mBAAmB,IAAI,SAAS;IAIhC,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIjD,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;CAGzD"}
1
+ {"version":3,"file":"ArkClass.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkClass.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ var ClassCategory;
30
30
  ClassCategory[ClassCategory["ENUM"] = 3] = "ENUM";
31
31
  ClassCategory[ClassCategory["TYPE_LITERAL"] = 4] = "TYPE_LITERAL";
32
32
  ClassCategory[ClassCategory["OBJECT"] = 5] = "OBJECT";
33
- })(ClassCategory || (exports.ClassCategory = ClassCategory = {}));
33
+ })(ClassCategory = exports.ClassCategory || (exports.ClassCategory = {}));
34
34
  /**
35
35
  * @category core/model
36
36
  */
@@ -101,9 +101,9 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
101
101
  * @example
102
102
  * 1. Get the {@link ArkFile} which the ArkClass is in.
103
103
 
104
- ```typescript
105
- const arkFile = arkClass.getDeclaringArkFile();
106
- ```
104
+ ```typescript
105
+ const arkFile = arkClass.getDeclaringArkFile();
106
+ ```
107
107
  */
108
108
  getDeclaringArkFile() {
109
109
  return this.declaringArkFile;
@@ -151,13 +151,16 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
151
151
  getSuperClass() {
152
152
  if (this.superClass === undefined) {
153
153
  const type = TypeInference_1.TypeInference.inferUnclearReferenceType(this.superClassName, this);
154
- if (type instanceof Type_1.ClassType) {
155
- let superClass = this.declaringArkFile.getScene().getClass(type.getClassSignature());
156
- if (superClass) {
157
- superClass.addExtendedClass(this);
158
- this.superClass = superClass;
159
- return this.superClass;
154
+ let superClass;
155
+ if (type instanceof Type_1.ClassType &&
156
+ (superClass = this.declaringArkFile.getScene().getClass(type.getClassSignature()))) {
157
+ superClass.addExtendedClass(this);
158
+ this.superClass = superClass;
159
+ const realGenericTypes = type.getRealGenericTypes();
160
+ if (realGenericTypes) {
161
+ this.realTypes = realGenericTypes;
160
162
  }
163
+ return this.superClass;
161
164
  }
162
165
  this.superClass = null;
163
166
  }
@@ -223,6 +226,9 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
223
226
  this.addField(field);
224
227
  });
225
228
  }
229
+ getRealTypes() {
230
+ return this.realTypes;
231
+ }
226
232
  getGenericsTypes() {
227
233
  return this.genericsTypes;
228
234
  }
@@ -239,14 +245,14 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
239
245
  * @returns An array of all methods in this class.
240
246
  * @example
241
247
  * 1. Get methods defined in class `BookService`.
242
-
243
- ```typescript
244
- let classes: ArkClass[] = scene.getClasses();
245
- let serviceClass : ArkClass = classes[1];
246
- let methods: ArkMethod[] = serviceClass.getMethods();
247
- let methodNames: string[] = methods.map(mthd => mthd.name);
248
- console.log(methodNames);
249
- ```
248
+
249
+ ```typescript
250
+ let classes: ArkClass[] = scene.getClasses();
251
+ let serviceClass : ArkClass = classes[1];
252
+ let methods: ArkMethod[] = serviceClass.getMethods();
253
+ let methodNames: string[] = methods.map(mthd => mthd.name);
254
+ console.log(methodNames);
255
+ ```
250
256
  */
251
257
  getMethods(generated) {
252
258
  const allMethods = Array.from(this.methods.values())
@@ -255,12 +261,25 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
255
261
  return allMethods;
256
262
  }
257
263
  getMethod(methodSignature) {
264
+ var _a;
258
265
  const methodName = methodSignature.getMethodSubSignature().getMethodName();
259
- let methodSearched = this.getMethodWithName(methodName);
260
- if (!methodSearched) {
261
- methodSearched = this.getStaticMethodWithName(methodName);
266
+ const methodSearched = (_a = this.getMethodWithName(methodName)) !== null && _a !== void 0 ? _a : this.getStaticMethodWithName(methodName);
267
+ if (methodSearched === null) {
268
+ return null;
269
+ }
270
+ const implSignature = methodSearched.getImplementationSignature();
271
+ if (implSignature !== null && implSignature.isMatch(methodSignature)) {
272
+ return methodSearched;
273
+ }
274
+ const declareSignatures = methodSearched.getDeclareSignatures();
275
+ if (declareSignatures !== null) {
276
+ for (let i = 0; i < declareSignatures.length; i++) {
277
+ if (declareSignatures[i].isMatch(methodSignature)) {
278
+ return methodSearched;
279
+ }
280
+ }
262
281
  }
263
- return methodSearched;
282
+ return null;
264
283
  }
265
284
  getMethodWithName(methodName) {
266
285
  return this.methods.get(methodName) || null;
@@ -292,15 +311,15 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
292
311
  * @example
293
312
  * 1. get viewTree of ArkClass.
294
313
 
295
- ```typescript
296
- for (let arkFiles of scene.getFiles()) {
297
- for (let arkClasss of arkFiles.getClasses()) {
298
- if (arkClasss.hasViewTree()) {
299
- arkClasss.getViewTree();
300
- }
301
- }
302
- }
303
- ```
314
+ ```typescript
315
+ for (let arkFiles of scene.getFiles()) {
316
+ for (let arkClasss of arkFiles.getClasses()) {
317
+ if (arkClasss.hasViewTree()) {
318
+ arkClasss.getViewTree();
319
+ }
320
+ }
321
+ }
322
+ ```
304
323
  */
305
324
  getViewTree() {
306
325
  return this.viewTree;
@@ -312,15 +331,15 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
312
331
  * @example
313
332
  * 1. Judge viewTree of ArkClass.
314
333
 
315
- ```typescript
316
- for (let arkFiles of scene.getFiles()) {
317
- for (let arkClasss of arkFiles.getClasses()) {
318
- if (arkClasss.hasViewTree()) {
319
- arkClasss.getViewTree();
320
- }
321
- }
322
- }
323
- ```
334
+ ```typescript
335
+ for (let arkFiles of scene.getFiles()) {
336
+ for (let arkClasss of arkFiles.getClasses()) {
337
+ if (arkClasss.hasViewTree()) {
338
+ arkClasss.getViewTree();
339
+ }
340
+ }
341
+ }
342
+ ```
324
343
  */
325
344
  hasViewTree() {
326
345
  return this.viewTree !== undefined;
@@ -370,5 +389,25 @@ class ArkClass extends ArkBaseModel_1.ArkBaseModel {
370
389
  setStaticInitMethod(arkMethod) {
371
390
  this.staticInitMethod = arkMethod;
372
391
  }
392
+ removeField(field) {
393
+ if (field.isStatic()) {
394
+ return this.staticFields.delete(field.getName());
395
+ }
396
+ return this.fields.delete(field.getName());
397
+ }
398
+ removeMethod(method) {
399
+ let rtn = false;
400
+ if (method.isStatic()) {
401
+ rtn = this.staticMethods.delete(method.getName());
402
+ }
403
+ else {
404
+ rtn = this.methods.delete(method.getName());
405
+ }
406
+ rtn && (rtn = this.getDeclaringArkFile().getScene().removeMethod(method));
407
+ return rtn;
408
+ }
409
+ validate() {
410
+ return this.validateFields(['declaringArkFile', 'category', 'classSignature']);
411
+ }
373
412
  }
374
413
  exports.ArkClass = ArkClass;
@@ -2,6 +2,7 @@ import { LineColPosition } from '../base/Position';
2
2
  import { ArkFile } from './ArkFile';
3
3
  import { ArkSignature, ClassSignature, LocalSignature, MethodSignature, NamespaceSignature } from './ArkSignature';
4
4
  import { ArkBaseModel, ModifierType } from './ArkBaseModel';
5
+ import { ArkError } from '../common/ArkError';
5
6
  export type ExportSignature = NamespaceSignature | ClassSignature | MethodSignature | LocalSignature;
6
7
  export declare enum ExportType {
7
8
  NAME_SPACE = 0,
@@ -61,8 +62,10 @@ export declare class ExportInfo extends ArkBaseModel implements FromInfo {
61
62
  declaringArkFile(value: ArkFile): any;
62
63
  arkExport(value: ArkExport): any;
63
64
  exportFrom(exportFrom: string): any;
65
+ setLeadingComments(comments: string[]): any;
64
66
  build(): ExportInfo;
65
67
  };
66
68
  };
69
+ validate(): ArkError;
67
70
  }
68
71
  //# sourceMappingURL=ArkExport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkExport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkExport.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG5D,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAErG,oBAAY,UAAU;IAClB,UAAU,IAAI;IACd,KAAK,IAAI;IACT,MAAM,IAAI;IACV,KAAK,IAAI;IACT,IAAI,IAAI;IACR,OAAO,IAAI;CACd;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC3C,YAAY,IAAI,MAAM,CAAC;IACvB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;IAEtD,OAAO,IAAI,MAAM,CAAC;IAElB,aAAa,IAAI,UAAU,CAAC;CAE/B;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,IAAI,OAAO,CAAC;IAErB,aAAa,IAAI,MAAM,CAAC;IAExB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAC;IAE9B,mBAAmB,IAAI,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAa,YAAW,QAAQ;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAc;IAEtC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO;IAIA,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,aAAa,IAAI,MAAM;IAIvB,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,GAAG,IAAI;IAIvD,mBAAmB,IAAI,UAAU;IAIjC,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIpC,YAAY,IAAI,SAAS,GAAG,SAAS,GAAG,IAAI;IAI5C,SAAS,IAAI,OAAO;IAUpB,mBAAmB,IAAI,eAAe;IAItC,eAAe,IAAI,MAAM;IAIzB,mBAAmB,IAAI,OAAO;IAIrC,OAAc,OAAO;;wBACL,UAAU;+CAEoB,MAAM;+CAKN,UAAU;uCAKlB,MAAM;iCAKZ,MAAM;+CAKQ,eAAe;uCAKvB,MAAM;oCAKT,OAAO;6BAKd,SAAS;mCAKH,MAAM;qBAOpB,UAAU;;MAG5B;CAEL"}
1
+ {"version":3,"file":"ArkExport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkExport.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEnH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAErG,oBAAY,UAAU;IAClB,UAAU,IAAI;IACd,KAAK,IAAI;IACT,MAAM,IAAI;IACV,KAAK,IAAI;IACT,IAAI,IAAI;IACR,OAAO,IAAI;CACd;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC3C,YAAY,IAAI,MAAM,CAAC;IACvB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;IAEtD,OAAO,IAAI,MAAM,CAAC;IAElB,aAAa,IAAI,UAAU,CAAC;CAE/B;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,IAAI,OAAO,CAAC;IAErB,aAAa,IAAI,MAAM,CAAC;IAExB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAC;IAE9B,mBAAmB,IAAI,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAa,YAAW,QAAQ;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAc;IAEtC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAmB;IACrC,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO;IAIA,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,aAAa,IAAI,MAAM;IAIvB,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,GAAG,IAAI;IAIvD,mBAAmB,IAAI,UAAU;IAIjC,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIpC,YAAY,IAAI,SAAS,GAAG,SAAS,GAAG,IAAI;IAI5C,SAAS,IAAI,OAAO;IAUpB,mBAAmB,IAAI,eAAe;IAItC,eAAe,IAAI,MAAM;IAIzB,mBAAmB,IAAI,OAAO;IAIrC,OAAc,OAAO;;wBACL,UAAU;+CAEoB,MAAM;+CAKN,UAAU;uCAKlB,MAAM;iCAKZ,MAAM;+CAKQ,eAAe;uCAKvB,MAAM;oCAKT,OAAO;6BAKd,SAAS;mCAKH,MAAM;yCAOA,MAAM,EAAE;qBAO5B,UAAU;;MAG5B;IAEK,QAAQ,IAAI,QAAQ;CAG9B"}
@@ -18,6 +18,7 @@ exports.ExportInfo = exports.ExportType = void 0;
18
18
  const Position_1 = require("../base/Position");
19
19
  const TSConst_1 = require("../common/TSConst");
20
20
  const ArkBaseModel_1 = require("./ArkBaseModel");
21
+ const ArkMetadata_1 = require("./ArkMetadata");
21
22
  var ExportType;
22
23
  (function (ExportType) {
23
24
  ExportType[ExportType["NAME_SPACE"] = 0] = "NAME_SPACE";
@@ -26,7 +27,7 @@ var ExportType;
26
27
  ExportType[ExportType["LOCAL"] = 3] = "LOCAL";
27
28
  ExportType[ExportType["TYPE"] = 4] = "TYPE";
28
29
  ExportType[ExportType["UNKNOWN"] = 9] = "UNKNOWN";
29
- })(ExportType || (exports.ExportType = ExportType = {}));
30
+ })(ExportType = exports.ExportType || (exports.ExportType = {}));
30
31
  /**
31
32
  * @category core/model
32
33
  */
@@ -81,6 +82,9 @@ class ExportInfo extends ArkBaseModel_1.ArkBaseModel {
81
82
  getDeclaringArkFile() {
82
83
  return this.declaringArkFile;
83
84
  }
85
+ validate() {
86
+ return this.validateFields(['declaringArkFile']);
87
+ }
84
88
  }
85
89
  exports.ExportInfo = ExportInfo;
86
90
  ExportInfo.Builder = class ArkExportBuilder {
@@ -125,6 +129,12 @@ ExportInfo.Builder = class ArkExportBuilder {
125
129
  }
126
130
  return this;
127
131
  }
132
+ setLeadingComments(comments) {
133
+ if (comments.length > 0) {
134
+ this.exportInfo.setMetadata(ArkMetadata_1.ArkMetadataKind.LEADING_COMMENTS, comments);
135
+ }
136
+ return this;
137
+ }
128
138
  build() {
129
139
  return this.exportInfo;
130
140
  }
@@ -4,6 +4,7 @@ import { ArkClass } from './ArkClass';
4
4
  import { FieldSignature } from './ArkSignature';
5
5
  import { Type } from '../base/Type';
6
6
  import { ArkBaseModel } from './ArkBaseModel';
7
+ import { ArkError } from '../common/ArkError';
7
8
  export declare enum FieldCategory {
8
9
  PROPERTY_DECLARATION = 0,
9
10
  PROPERTY_ASSIGNMENT = 1,
@@ -57,5 +58,6 @@ export declare class ArkField extends ArkBaseModel {
57
58
  * @returns The original position of the field at source code.
58
59
  */
59
60
  getOriginPosition(): LineColPosition;
61
+ validate(): ArkError;
60
62
  }
61
63
  //# sourceMappingURL=ArkField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkField.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,oBAAY,aAAa;IACrB,oBAAoB,IAAI;IACxB,mBAAmB,IAAI;IACvB,8BAA8B,IAAI;IAClC,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;IACtB,WAAW,IAAI;IACf,eAAe,IAAI;IACnB,YAAY,IAAI;CACnB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACtC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAE1C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAkB;IAEzC,OAAO,CAAC,WAAW,CAAc;;IAM1B,oBAAoB;IAIpB,oBAAoB,CAAC,cAAc,EAAE,QAAQ;IAIpD;;;OAGG;IACI,OAAO;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,OAAO;IAIP,OAAO,IAAG,IAAI;IAId,YAAY,IAAI,cAAc;IAI9B,YAAY,CAAC,QAAQ,EAAE,cAAc;IAI5C;;;OAGG;IACI,cAAc,IAAI,IAAI,EAAE;IAIxB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE;IAIlC,gBAAgB,CAAC,aAAa,EAAE,OAAO;IAIvC,mBAAmB,CAAC,gBAAgB,EAAE,OAAO;IAI7C,gBAAgB;IAIhB,mBAAmB;IAInB,iBAAiB,CAAC,QAAQ,EAAE,eAAe;IAIlD;;;OAGG;IACI,iBAAiB,IAAI,eAAe;CAG9C"}
1
+ {"version":3,"file":"ArkField.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkField.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,oBAAY,aAAa;IACrB,oBAAoB,IAAI;IACxB,mBAAmB,IAAI;IACvB,8BAA8B,IAAI;IAClC,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;IACtB,WAAW,IAAI;IACf,eAAe,IAAI;IACnB,YAAY,IAAI;CACnB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACtC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAE1C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAkB;IAEzC,OAAO,CAAC,WAAW,CAAc;;IAM1B,oBAAoB;IAIpB,oBAAoB,CAAC,cAAc,EAAE,QAAQ;IAIpD;;;OAGG;IACI,OAAO;IAIP,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,WAAW,IAAI,aAAa;IAI5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,OAAO;IAIP,OAAO,IAAG,IAAI;IAId,YAAY,IAAI,cAAc;IAI9B,YAAY,CAAC,QAAQ,EAAE,cAAc;IAI5C;;;OAGG;IACI,cAAc,IAAI,IAAI,EAAE;IAIxB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE;IAIlC,gBAAgB,CAAC,aAAa,EAAE,OAAO;IAIvC,mBAAmB,CAAC,gBAAgB,EAAE,OAAO;IAI7C,gBAAgB;IAIhB,mBAAmB;IAInB,iBAAiB,CAAC,QAAQ,EAAE,eAAe;IAIlD;;;OAGG;IACI,iBAAiB,IAAI,eAAe;IAIpC,QAAQ,IAAI,QAAQ;CAG9B"}
@@ -27,7 +27,7 @@ var FieldCategory;
27
27
  FieldCategory[FieldCategory["ENUM_MEMBER"] = 5] = "ENUM_MEMBER";
28
28
  FieldCategory[FieldCategory["INDEX_SIGNATURE"] = 6] = "INDEX_SIGNATURE";
29
29
  FieldCategory[FieldCategory["GET_ACCESSOR"] = 7] = "GET_ACCESSOR";
30
- })(FieldCategory || (exports.FieldCategory = FieldCategory = {}));
30
+ })(FieldCategory = exports.FieldCategory || (exports.FieldCategory = {}));
31
31
  /**
32
32
  * @category core/model
33
33
  */
@@ -106,5 +106,8 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
106
106
  var _a;
107
107
  return (_a = this.originPosition) !== null && _a !== void 0 ? _a : Position_1.LineColPosition.DEFAULT;
108
108
  }
109
+ validate() {
110
+ return this.validateFields(['category', 'declaringClass', 'fieldSignature']);
111
+ }
109
112
  }
110
113
  exports.ArkField = ArkField;
@@ -81,9 +81,13 @@ export declare class ArkFile {
81
81
  getImportInfos(): ImportInfo[];
82
82
  getImportInfoBy(name: string): ImportInfo | undefined;
83
83
  addImportInfo(importInfo: ImportInfo): void;
84
+ removeImportInfo(importInfo: ImportInfo): boolean;
85
+ removeNamespace(namespace: ArkNamespace): boolean;
86
+ removeArkClass(arkClass: ArkClass): boolean;
84
87
  getExportInfos(): ExportInfo[];
85
88
  getExportInfoBy(name: string): ExportInfo | undefined;
86
89
  addExportInfo(exportInfo: ExportInfo, key?: string): void;
90
+ removeExportInfo(exportInfo: ExportInfo, key?: string): void;
87
91
  getProjectName(): string;
88
92
  getModuleName(): string | undefined;
89
93
  setOhPackageJson5Path(ohPackageJson5Path: string[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGnF,eAAO,MAAM,iBAAiB,UAEqD,CAAC;AAEpF;;GAEG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,IAAI,CAAc;IAE1B,OAAO,CAAC,YAAY,CAAY;IAGhC,OAAO,CAAC,UAAU,CAA8D;IAChF,OAAO,CAAC,OAAO,CAAsD;IAErE,OAAO,CAAC,aAAa,CAA0D;IAC/E,OAAO,CAAC,aAAa,CAA0D;IAE/E,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,kBAAkB,CAAgB;IAE1C,OAAO,CAAC,oBAAoB,CAAa;;IAKzC;;;OAGG;IACI,OAAO;IAIP,QAAQ,CAAC,KAAK,EAAE,KAAK;IAI5B;;;;;OAKG;IACI,QAAQ;IAIR,cAAc;IAId,cAAc,CAAC,WAAW,EAAE,WAAW;IAIvC,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,aAAa,IAAI,MAAM;IAI9B;;;;;;;;;OASG;IACI,WAAW,IAAI,MAAM;IAIrB,WAAW,CAAC,gBAAgB,EAAE,MAAM;IAIpC,OAAO,CAAC,IAAI,EAAE,MAAM;IAI3B;;;OAGG;IACI,OAAO;IAIP,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAI9B,eAAe;IAIf,eAAe,CAAC,YAAY,EAAE,QAAQ;IAItC,YAAY,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI;IAKzE,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIhE,aAAa,IAAI,YAAY,EAAE;IAItC;;;;OAIG;IACI,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI;IAKzD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIhD,UAAU,IAAI,QAAQ,EAAE;IAIxB,YAAY,CAAC,SAAS,EAAE,YAAY;IAI3C;;;;OAIG;IACI,cAAc,IAAI,UAAU,EAAE;IAI9B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD,aAAa,CAAC,UAAU,EAAE,UAAU;IAIpC,cAAc,IAAI,UAAU,EAAE;IAU9B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM;IAIlD,cAAc;IAId,aAAa;IAIb,qBAAqB,CAAC,kBAAkB,EAAE,MAAM,EAAE;IAIlD,qBAAqB;IAI5B;;;OAGG;IACI,gBAAgB;IAIhB,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD,6BAA6B,IAAI,YAAY,EAAE;IAS/C,uBAAuB;CAGjC"}
1
+ {"version":3,"file":"ArkFile.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkFile.ts"],"names":[],"mappings":"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"}
@@ -145,6 +145,19 @@ class ArkFile {
145
145
  addImportInfo(importInfo) {
146
146
  this.importInfoMap.set(importInfo.getImportClauseName(), importInfo);
147
147
  }
148
+ removeImportInfo(importInfo) {
149
+ return this.importInfoMap.delete(importInfo.getImportClauseName());
150
+ }
151
+ removeNamespace(namespace) {
152
+ let rtn = this.namespaces.delete(namespace.getName());
153
+ rtn && (rtn = this.getScene().removeNamespace(namespace));
154
+ return rtn;
155
+ }
156
+ removeArkClass(arkClass) {
157
+ let rtn = this.classes.delete(arkClass.getName());
158
+ rtn && (rtn = this.getScene().removeClass(arkClass));
159
+ return rtn;
160
+ }
148
161
  getExportInfos() {
149
162
  const exportInfos = [];
150
163
  this.exportInfoMap.forEach((value, key) => {
@@ -160,6 +173,13 @@ class ArkFile {
160
173
  addExportInfo(exportInfo, key) {
161
174
  this.exportInfoMap.set(key !== null && key !== void 0 ? key : exportInfo.getExportClauseName(), exportInfo);
162
175
  }
176
+ removeExportInfo(exportInfo, key) {
177
+ if (key) {
178
+ this.exportInfoMap.delete(key);
179
+ return;
180
+ }
181
+ this.exportInfoMap.delete(exportInfo.getExportClauseName());
182
+ }
163
183
  getProjectName() {
164
184
  return this.fileSignature.getProjectName();
165
185
  }
@@ -2,6 +2,7 @@ import { ArkFile } from './ArkFile';
2
2
  import { LineColPosition } from '../base/Position';
3
3
  import { ExportInfo, FromInfo } from './ArkExport';
4
4
  import { ArkBaseModel } from './ArkBaseModel';
5
+ import { ArkError } from '../common/ArkError';
5
6
  /**
6
7
  * @category core/model
7
8
  */
@@ -39,5 +40,6 @@ export declare class ImportInfo extends ArkBaseModel implements FromInfo {
39
40
  getTsSourceCode(): string;
40
41
  getFrom(): string | undefined;
41
42
  isDefault(): boolean;
43
+ validate(): ArkError;
42
44
  }
43
45
  //# sourceMappingURL=ArkImport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkImport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkImport.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAa,YAAW,QAAQ;IAC5D,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAoB;;IAMpC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EACnG,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAS9C,aAAa,IAAI,MAAM;IAI9B;;;;;OAKG;IACI,iBAAiB,IAAI,UAAU,GAAG,IAAI;IAOtC,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAIpD,mBAAmB,IAAI,OAAO;IAI9B,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAInD,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;IAIhD,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,GAAG,IAAI;IAI5D,mBAAmB,IAAI,eAAe;IAItC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAI3C,eAAe,IAAI,MAAM;IAIzB,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,SAAS,IAAI,OAAO;CAM9B"}
1
+ {"version":3,"file":"ArkImport.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkImport.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAa,YAAW,QAAQ;IAC5D,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAW;IAEnC,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAoB;;IAMpC,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EACnG,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAS9C,aAAa,IAAI,MAAM;IAI9B;;;;;OAKG;IACI,iBAAiB,IAAI,UAAU,GAAG,IAAI;IAOtC,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAIpD,mBAAmB,IAAI,OAAO;IAI9B,mBAAmB,IAAI,MAAM;IAI7B,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAInD,aAAa,IAAI,MAAM;IAIvB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;IAIhD,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,GAAG,IAAI;IAI5D,mBAAmB,IAAI,eAAe;IAItC,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAI3C,eAAe,IAAI,MAAM;IAIzB,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,SAAS,IAAI,OAAO;IAOpB,QAAQ,IAAI,QAAQ;CAG9B"}
@@ -101,5 +101,8 @@ class ImportInfo extends ArkBaseModel_1.ArkBaseModel {
101
101
  }
102
102
  return this.importType === 'Identifier';
103
103
  }
104
+ validate() {
105
+ return this.validateFields(['declaringArkFile']);
106
+ }
104
107
  }
105
108
  exports.ImportInfo = ImportInfo;
@@ -0,0 +1,20 @@
1
+ export declare enum ArkMetadataKind {
2
+ LEADING_COMMENTS = 0
3
+ }
4
+ export type ArkMetadataType = string[];
5
+ /**
6
+ * ArkMetadata
7
+ * @example
8
+ * // get leading comments
9
+ * let stmt: Stmt = xxx;
10
+ * let comments = stmt.getMetadata(ArkMetadataKind.LEADING_COMMENTS) || [];
11
+ * comments.forEach((comment) => {
12
+ * logger.info(comment);
13
+ * });
14
+ */
15
+ export declare class ArkMetadata {
16
+ protected metadata?: Map<ArkMetadataKind, ArkMetadataType>;
17
+ getMetadata(kind: ArkMetadataKind): ArkMetadataType | undefined;
18
+ setMetadata(kind: ArkMetadataKind, value: ArkMetadataType): void;
19
+ }
20
+ //# sourceMappingURL=ArkMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArkMetadata.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMetadata.ts"],"names":[],"mappings":"AAeA,oBAAY,eAAe;IACvB,gBAAgB,IAAA;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC;AAEvC;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAI/D,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;CAM1E"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024 Huawei Device Co., Ltd.
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ArkMetadata = exports.ArkMetadataKind = void 0;
18
+ var ArkMetadataKind;
19
+ (function (ArkMetadataKind) {
20
+ ArkMetadataKind[ArkMetadataKind["LEADING_COMMENTS"] = 0] = "LEADING_COMMENTS";
21
+ })(ArkMetadataKind = exports.ArkMetadataKind || (exports.ArkMetadataKind = {}));
22
+ /**
23
+ * ArkMetadata
24
+ * @example
25
+ * // get leading comments
26
+ * let stmt: Stmt = xxx;
27
+ * let comments = stmt.getMetadata(ArkMetadataKind.LEADING_COMMENTS) || [];
28
+ * comments.forEach((comment) => {
29
+ * logger.info(comment);
30
+ * });
31
+ */
32
+ class ArkMetadata {
33
+ getMetadata(kind) {
34
+ var _a;
35
+ return (_a = this.metadata) === null || _a === void 0 ? void 0 : _a.get(kind);
36
+ }
37
+ setMetadata(kind, value) {
38
+ if (!this.metadata) {
39
+ this.metadata = new Map();
40
+ }
41
+ this.metadata.set(kind, value);
42
+ }
43
+ }
44
+ exports.ArkMetadata = ArkMetadata;