arkanalyzer 1.0.31 → 1.0.33

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 (260) hide show
  1. package/config/arkanalyzer.json +1 -0
  2. package/lib/Config.d.ts +1 -0
  3. package/lib/Config.d.ts.map +1 -1
  4. package/lib/Config.js +26 -18
  5. package/lib/Scene.d.ts +5 -5
  6. package/lib/Scene.d.ts.map +1 -1
  7. package/lib/Scene.js +21 -19
  8. package/lib/VFG/DVFG.d.ts.map +1 -1
  9. package/lib/VFG/builder/DVFGBuilder.d.ts +2 -2
  10. package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -1
  11. package/lib/VFG/builder/DVFGBuilder.js +15 -7
  12. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +1 -0
  13. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  14. package/lib/callgraph/algorithm/AbstractAnalysis.js +24 -8
  15. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -1
  16. package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +3 -2
  17. package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -1
  18. package/lib/callgraph/algorithm/RapidTypeAnalysis.js +4 -3
  19. package/lib/callgraph/common/Statistics.d.ts +9 -7
  20. package/lib/callgraph/common/Statistics.d.ts.map +1 -1
  21. package/lib/callgraph/common/Statistics.js +18 -6
  22. package/lib/callgraph/model/CallGraph.d.ts +2 -0
  23. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  24. package/lib/callgraph/model/CallGraph.js +14 -8
  25. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +1 -0
  26. package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -1
  27. package/lib/callgraph/model/builder/CallGraphBuilder.js +9 -4
  28. package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -1
  29. package/lib/callgraph/pointerAnalysis/Context.js +2 -2
  30. package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts.map +1 -1
  31. package/lib/callgraph/pointerAnalysis/DummyCallCreator.js +4 -2
  32. package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
  33. package/lib/callgraph/pointerAnalysis/PTAUtils.js +2 -3
  34. package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
  35. package/lib/callgraph/pointerAnalysis/Pag.js +27 -35
  36. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  37. package/lib/callgraph/pointerAnalysis/PagBuilder.js +63 -46
  38. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  39. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +12 -12
  40. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
  41. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts +1 -1
  42. package/lib/callgraph/pointerAnalysis/PtsDS.d.ts.map +1 -1
  43. package/lib/callgraph/pointerAnalysis/PtsDS.js +10 -6
  44. package/lib/core/base/Constant.js +2 -2
  45. package/lib/core/base/DefUseChain.d.ts.map +1 -1
  46. package/lib/core/base/DefUseChain.js +1 -1
  47. package/lib/core/base/Expr.d.ts.map +1 -1
  48. package/lib/core/base/Expr.js +3 -5
  49. package/lib/core/base/Local.d.ts.map +1 -1
  50. package/lib/core/base/Local.js +7 -2
  51. package/lib/core/base/Position.d.ts.map +1 -1
  52. package/lib/core/base/Position.js +1 -1
  53. package/lib/core/base/Ref.d.ts.map +1 -1
  54. package/lib/core/base/Ref.js +3 -1
  55. package/lib/core/base/Stmt.d.ts.map +1 -1
  56. package/lib/core/base/Stmt.js +1 -4
  57. package/lib/core/base/Trap.js +1 -1
  58. package/lib/core/base/Type.d.ts.map +1 -1
  59. package/lib/core/base/Type.js +2 -2
  60. package/lib/core/base/Value.d.ts +1 -1
  61. package/lib/core/base/Value.d.ts.map +1 -1
  62. package/lib/core/base/Value.js +1 -1
  63. package/lib/core/common/ArkError.js +1 -1
  64. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  65. package/lib/core/common/ArkIRTransformer.js +46 -36
  66. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  67. package/lib/core/common/ArkValueTransformer.js +295 -109
  68. package/lib/core/common/Builtin.d.ts.map +1 -1
  69. package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
  70. package/lib/core/common/DummyMainCreater.js +10 -4
  71. package/lib/core/common/EtsConst.d.ts.map +1 -1
  72. package/lib/core/common/EtsConst.js +3 -12
  73. package/lib/core/common/ExprUseReplacer.js +1 -1
  74. package/lib/core/common/IRInference.d.ts.map +1 -1
  75. package/lib/core/common/IRInference.js +31 -20
  76. package/lib/core/common/IRUtils.d.ts.map +1 -1
  77. package/lib/core/common/IRUtils.js +5 -4
  78. package/lib/core/common/ModelUtils.d.ts +0 -1
  79. package/lib/core/common/ModelUtils.d.ts.map +1 -1
  80. package/lib/core/common/ModelUtils.js +36 -29
  81. package/lib/core/common/RefUseReplacer.js +1 -1
  82. package/lib/core/common/SdkUtils.d.ts +3 -0
  83. package/lib/core/common/SdkUtils.d.ts.map +1 -1
  84. package/lib/core/common/SdkUtils.js +29 -10
  85. package/lib/core/common/StmtDefReplacer.d.ts.map +1 -1
  86. package/lib/core/common/StmtDefReplacer.js +1 -1
  87. package/lib/core/common/StmtUseReplacer.d.ts.map +1 -1
  88. package/lib/core/common/StmtUseReplacer.js +1 -1
  89. package/lib/core/common/TSConst.d.ts.map +1 -1
  90. package/lib/core/common/TypeInference.d.ts.map +1 -1
  91. package/lib/core/common/TypeInference.js +25 -17
  92. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  93. package/lib/core/common/ValueUtil.js +1 -1
  94. package/lib/core/common/VisibleValue.d.ts.map +1 -1
  95. package/lib/core/common/VisibleValue.js +5 -5
  96. package/lib/core/dataflow/DataflowProblem.d.ts.map +1 -1
  97. package/lib/core/dataflow/DataflowProblem.js +1 -1
  98. package/lib/core/dataflow/DataflowResult.js +1 -1
  99. package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -1
  100. package/lib/core/dataflow/DataflowSolver.js +5 -3
  101. package/lib/core/dataflow/Edge.d.ts.map +1 -1
  102. package/lib/core/dataflow/Edge.js +1 -1
  103. package/lib/core/dataflow/Fact.js +1 -1
  104. package/lib/core/dataflow/GenericDataFlow.js +5 -5
  105. package/lib/core/dataflow/ReachingDef.js +4 -4
  106. package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -1
  107. package/lib/core/dataflow/UndefinedVariable.js +17 -13
  108. package/lib/core/dataflow/Util.d.ts +4 -4
  109. package/lib/core/dataflow/Util.d.ts.map +1 -1
  110. package/lib/core/dataflow/Util.js +3 -5
  111. package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
  112. package/lib/core/graph/BaseExplicitGraph.js +1 -1
  113. package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
  114. package/lib/core/graph/BasicBlock.d.ts.map +1 -1
  115. package/lib/core/graph/BasicBlock.js +11 -7
  116. package/lib/core/graph/Cfg.d.ts.map +1 -1
  117. package/lib/core/graph/Cfg.js +10 -4
  118. package/lib/core/graph/DependsGraph.d.ts.map +1 -1
  119. package/lib/core/graph/DependsGraph.js +1 -1
  120. package/lib/core/graph/DominanceFinder.d.ts.map +1 -1
  121. package/lib/core/graph/DominanceFinder.js +4 -4
  122. package/lib/core/graph/DominanceTree.js +1 -1
  123. package/lib/core/graph/GraphTraits.js +1 -1
  124. package/lib/core/graph/Scc.js +2 -2
  125. package/lib/core/graph/ViewTree.js +1 -1
  126. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  127. package/lib/core/graph/builder/CfgBuilder.js +22 -13
  128. package/lib/core/graph/builder/ConditionBuilder.d.ts.map +1 -1
  129. package/lib/core/graph/builder/ConditionBuilder.js +21 -22
  130. package/lib/core/graph/builder/LoopBuilder.d.ts.map +1 -1
  131. package/lib/core/graph/builder/LoopBuilder.js +13 -10
  132. package/lib/core/graph/builder/SwitchBuilder.d.ts.map +1 -1
  133. package/lib/core/graph/builder/SwitchBuilder.js +7 -4
  134. package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
  135. package/lib/core/graph/builder/TrapBuilder.js +4 -3
  136. package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -1
  137. package/lib/core/graph/builder/ViewTreeBuilder.js +18 -19
  138. package/lib/core/model/ArkBaseModel.d.ts.map +1 -1
  139. package/lib/core/model/ArkBaseModel.js +8 -5
  140. package/lib/core/model/ArkBody.d.ts +1 -0
  141. package/lib/core/model/ArkBody.d.ts.map +1 -1
  142. package/lib/core/model/ArkBody.js +11 -1
  143. package/lib/core/model/ArkClass.d.ts.map +1 -1
  144. package/lib/core/model/ArkClass.js +3 -5
  145. package/lib/core/model/ArkExport.d.ts +4 -0
  146. package/lib/core/model/ArkExport.d.ts.map +1 -1
  147. package/lib/core/model/ArkExport.js +8 -1
  148. package/lib/core/model/ArkField.d.ts.map +1 -1
  149. package/lib/core/model/ArkField.js +2 -2
  150. package/lib/core/model/ArkFile.d.ts +1 -0
  151. package/lib/core/model/ArkFile.d.ts.map +1 -1
  152. package/lib/core/model/ArkFile.js +21 -6
  153. package/lib/core/model/ArkImport.d.ts.map +1 -1
  154. package/lib/core/model/ArkImport.js +1 -1
  155. package/lib/core/model/ArkMetadata.d.ts.map +1 -1
  156. package/lib/core/model/ArkMetadata.js +1 -1
  157. package/lib/core/model/ArkMethod.d.ts +6 -5
  158. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  159. package/lib/core/model/ArkMethod.js +27 -13
  160. package/lib/core/model/ArkNamespace.d.ts +1 -1
  161. package/lib/core/model/ArkNamespace.d.ts.map +1 -1
  162. package/lib/core/model/ArkNamespace.js +5 -6
  163. package/lib/core/model/ArkSignature.d.ts +4 -2
  164. package/lib/core/model/ArkSignature.d.ts.map +1 -1
  165. package/lib/core/model/ArkSignature.js +17 -17
  166. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  167. package/lib/core/model/builder/ArkClassBuilder.js +15 -16
  168. package/lib/core/model/builder/ArkExportBuilder.d.ts +2 -1
  169. package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -1
  170. package/lib/core/model/builder/ArkExportBuilder.js +17 -11
  171. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  172. package/lib/core/model/builder/ArkFieldBuilder.js +6 -7
  173. package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
  174. package/lib/core/model/builder/ArkFileBuilder.js +22 -11
  175. package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -1
  176. package/lib/core/model/builder/ArkImportBuilder.js +13 -8
  177. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  178. package/lib/core/model/builder/ArkMethodBuilder.js +3 -3
  179. package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -1
  180. package/lib/core/model/builder/ArkNamespaceBuilder.js +7 -9
  181. package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -1
  182. package/lib/core/model/builder/ArkSignatureBuilder.js +1 -1
  183. package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -1
  184. package/lib/core/model/builder/BodyBuilder.js +8 -5
  185. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  186. package/lib/core/model/builder/builderUtils.js +15 -13
  187. package/lib/index.d.ts.map +1 -1
  188. package/lib/save/ArkStream.d.ts.map +1 -1
  189. package/lib/save/ArkStream.js +1 -1
  190. package/lib/save/DotPrinter.d.ts.map +1 -1
  191. package/lib/save/DotPrinter.js +2 -4
  192. package/lib/save/GraphPrinter.d.ts.map +1 -1
  193. package/lib/save/GraphPrinter.js +2 -3
  194. package/lib/save/JsonPrinter.d.ts.map +1 -1
  195. package/lib/save/JsonPrinter.js +29 -29
  196. package/lib/save/Printer.js +1 -1
  197. package/lib/save/PrinterBuilder.d.ts.map +1 -1
  198. package/lib/save/PrinterBuilder.js +1 -1
  199. package/lib/save/ViewTreePrinter.d.ts.map +1 -1
  200. package/lib/save/ViewTreePrinter.js +3 -3
  201. package/lib/save/arkir/ArkIRClassPrinter.js +1 -1
  202. package/lib/save/arkir/ArkIRMethodPrinter.js +5 -5
  203. package/lib/save/arkir/ArkIRNamespacePrinter.d.ts.map +1 -1
  204. package/lib/save/arkir/ArkIRNamespacePrinter.js +2 -3
  205. package/lib/save/base/BasePrinter.js +2 -2
  206. package/lib/save/base/ExportPrinter.d.ts.map +1 -1
  207. package/lib/save/base/ExportPrinter.js +3 -6
  208. package/lib/save/base/ImportPrinter.d.ts.map +1 -1
  209. package/lib/save/base/ImportPrinter.js +2 -6
  210. package/lib/save/base/PrinterUtils.d.ts.map +1 -1
  211. package/lib/save/base/PrinterUtils.js +2 -4
  212. package/lib/save/serializeArkIR.d.ts.map +1 -1
  213. package/lib/save/serializeArkIR.js +2 -2
  214. package/lib/save/source/SourceBase.d.ts.map +1 -1
  215. package/lib/save/source/SourceBase.js +1 -3
  216. package/lib/save/source/SourceBody.d.ts.map +1 -1
  217. package/lib/save/source/SourceBody.js +1 -5
  218. package/lib/save/source/SourceClass.d.ts.map +1 -1
  219. package/lib/save/source/SourceClass.js +2 -3
  220. package/lib/save/source/SourceField.js +2 -2
  221. package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
  222. package/lib/save/source/SourceMethod.d.ts.map +1 -1
  223. package/lib/save/source/SourceMethod.js +5 -6
  224. package/lib/save/source/SourceNamespace.d.ts.map +1 -1
  225. package/lib/save/source/SourceNamespace.js +2 -3
  226. package/lib/save/source/SourceStmt.d.ts.map +1 -1
  227. package/lib/save/source/SourceStmt.js +9 -14
  228. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  229. package/lib/save/source/SourceTransformer.js +6 -10
  230. package/lib/transformer/FunctionTransformer.d.ts.map +1 -1
  231. package/lib/transformer/FunctionTransformer.js +1 -1
  232. package/lib/transformer/SceneTransformer.d.ts.map +1 -1
  233. package/lib/transformer/SceneTransformer.js +1 -1
  234. package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -1
  235. package/lib/transformer/StaticSingleAssignmentFormer.js +1 -1
  236. package/lib/transformer/Transformer.d.ts.map +1 -1
  237. package/lib/transformer/Transformer.js +2 -3
  238. package/lib/utils/AstTreeUtils.d.ts +20 -1
  239. package/lib/utils/AstTreeUtils.d.ts.map +1 -1
  240. package/lib/utils/AstTreeUtils.js +66 -2
  241. package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -1
  242. package/lib/utils/CfgStructualAnalysis.js +6 -18
  243. package/lib/utils/FileUtils.d.ts.map +1 -1
  244. package/lib/utils/FileUtils.js +7 -7
  245. package/lib/utils/SparseBitVector.d.ts.map +1 -1
  246. package/lib/utils/SparseBitVector.js +6 -5
  247. package/lib/utils/callGraphUtils.d.ts.map +1 -1
  248. package/lib/utils/callGraphUtils.js +9 -7
  249. package/lib/utils/crypto_utils.d.ts.map +1 -1
  250. package/lib/utils/crypto_utils.js +2 -2
  251. package/lib/utils/entryMethodUtils.d.ts.map +1 -1
  252. package/lib/utils/entryMethodUtils.js +18 -18
  253. package/lib/utils/getAllFiles.d.ts.map +1 -1
  254. package/lib/utils/json5parser.d.ts.map +1 -1
  255. package/lib/utils/json5parser.js +1 -1
  256. package/lib/utils/logger.d.ts.map +1 -1
  257. package/lib/utils/pathTransfer.d.ts +0 -1
  258. package/lib/utils/pathTransfer.d.ts.map +1 -1
  259. package/lib/utils/pathTransfer.js +2 -11
  260. package/package.json +2 -2
@@ -2,6 +2,7 @@
2
2
  "supportFileExts": [
3
3
  ".ets",
4
4
  ".ts",
5
+ ".js",
5
6
  ".d.ets",
6
7
  ".d.ts"
7
8
  ],
package/lib/Config.d.ts CHANGED
@@ -71,6 +71,7 @@ export declare class SceneConfig {
71
71
  getSdkFilesMap(): Map<string[], string>;
72
72
  getEtsSdkPath(): string;
73
73
  getSdksObj(): Sdk[];
74
+ private getDefaultConfigPath;
74
75
  private loadDefaultConfig;
75
76
  }
76
77
  //# sourceMappingURL=Config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKhD,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE;YACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;SAC3B,CAAC;KACL,CAAC;CAEL;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9G,MAAM,WAAW,YAAY;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAC,OAAO,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACvC;AAID,qBAAa,WAAW;IACpB,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,sBAAsB,CAAc;IAE5C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAa;IAE5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAsD;IAEzE,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAoC;IAEzD,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,CAAC,EAAE,YAAY;IAK3B,UAAU,IAAI,YAAY;IAIjC;;;;;;;OAOG;IACI,WAAW,CACd,iBAAiB,EAAE,MAAM,EACzB,sBAAsB,EAAE,MAAM,EAC9B,IAAI,EAAE,GAAG,EAAE,EACX,YAAY,CAAC,EAAE,MAAM,EAAE;IAU3B;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,sBAAsB,EAAE,MAAM;IAUlD,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EACnF,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI;IAgBxE,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,sBAAsB;IAiBvB,aAAa,CAAC,cAAc,EAAE,MAAM;IAmCpC,oBAAoB;IAIpB,yBAAyB;IAIzB,eAAe;IAIf,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIzC,WAAW;IAIX,cAAc;IAId,aAAa;IAIb,UAAU;IAIjB,OAAO,CAAC,iBAAiB;CAmB5B"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,MAAM,WAAW,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE;YACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;SAC3B,CAAC;KACL,CAAC;CACL;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9G,MAAM,WAAW,YAAY;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACvC;AAID,qBAAa,WAAW;IACpB,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,sBAAsB,CAAc;IAE5C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAa;IAE5B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAsD;IAEzE,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAoC;IAEzD,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,CAAC,EAAE,YAAY;IAK3B,UAAU,IAAI,YAAY;IAIjC;;;;;;;OAOG;IACI,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IASzH;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI;IAMzD,qBAAqB,CACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,IAAI,CAAC,EAAE,GAAG,EAAE,EACZ,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GACrC,IAAI;IAgBP,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,sBAAsB;IAgBvB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAiC3C,oBAAoB,IAAI,MAAM;IAI9B,yBAAyB,IAAI,MAAM;IAInC,eAAe,IAAI,MAAM,EAAE;IAI3B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIzC,WAAW,IAAI,MAAM,EAAE;IAIvB,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC;IAIvC,aAAa,IAAI,MAAM;IAIvB,UAAU,IAAI,GAAG,EAAE;IAI1B,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,iBAAiB;CAY5B"}
package/lib/Config.js CHANGED
@@ -45,7 +45,6 @@ const fs_1 = __importDefault(require("fs"));
45
45
  const path_1 = __importDefault(require("path"));
46
46
  const logger_1 = __importStar(require("./utils/logger"));
47
47
  const getAllFiles_1 = require("./utils/getAllFiles");
48
- const pathTransfer_1 = require("./utils/pathTransfer");
49
48
  const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'Config');
50
49
  const CONFIG_FILENAME = 'arkanalyzer.json';
51
50
  const DEFAULT_CONFIG_FILE = path_1.default.join(__dirname, '../config', CONFIG_FILENAME);
@@ -116,14 +115,14 @@ class SceneConfig {
116
115
  }
117
116
  processFilePaths(fileOrDirectory, projectDir) {
118
117
  let absoluteFilePath = '';
119
- if (fileOrDirectory.includes(projectDir)) {
118
+ if (path_1.default.isAbsolute(fileOrDirectory)) {
120
119
  absoluteFilePath = fileOrDirectory;
121
120
  }
122
121
  else {
123
122
  absoluteFilePath = path_1.default.join(projectDir, fileOrDirectory);
124
123
  }
125
124
  if (fs_1.default.statSync(absoluteFilePath).isDirectory()) {
126
- (0, getAllFiles_1.getAllFiles)(absoluteFilePath, this.getOptions().supportFileExts, this.options.ignoreFileNames).forEach((filePath) => {
125
+ (0, getAllFiles_1.getAllFiles)(absoluteFilePath, this.getOptions().supportFileExts, this.options.ignoreFileNames).forEach(filePath => {
127
126
  if (!this.projectFiles.includes(filePath)) {
128
127
  this.projectFiles.push(filePath);
129
128
  }
@@ -135,15 +134,14 @@ class SceneConfig {
135
134
  }
136
135
  setLanguageTagForFiles(fileOrDirectory, projectDir, languageTag) {
137
136
  let absoluteFilePath = '';
138
- if (fileOrDirectory.includes(projectDir)) {
137
+ if (path_1.default.isAbsolute(fileOrDirectory)) {
139
138
  absoluteFilePath = fileOrDirectory;
140
139
  }
141
140
  else {
142
141
  absoluteFilePath = path_1.default.join(projectDir, fileOrDirectory);
143
142
  }
144
143
  if (fs_1.default.statSync(absoluteFilePath).isDirectory()) {
145
- (0, getAllFiles_1.getAllFiles)(absoluteFilePath, this.getOptions().supportFileExts, this.options.ignoreFileNames)
146
- .forEach((filePath) => {
144
+ (0, getAllFiles_1.getAllFiles)(absoluteFilePath, this.getOptions().supportFileExts, this.options.ignoreFileNames).forEach(filePath => {
147
145
  this.fileLanguages.set(filePath, languageTag);
148
146
  });
149
147
  }
@@ -171,9 +169,7 @@ class SceneConfig {
171
169
  return;
172
170
  }
173
171
  const targetProjectName = configurations.targetProjectName ? configurations.targetProjectName : '';
174
- const targetProjectDirectory = configurations.targetProjectDirectory
175
- ? configurations.targetProjectDirectory
176
- : '';
172
+ const targetProjectDirectory = configurations.targetProjectDirectory ? configurations.targetProjectDirectory : '';
177
173
  const sdks = configurations.sdks ? configurations.sdks : [];
178
174
  if (configurations.options) {
179
175
  this.options = Object.assign(Object.assign({}, this.options), configurations.options);
@@ -208,16 +204,28 @@ class SceneConfig {
208
204
  getSdksObj() {
209
205
  return this.sdksObj;
210
206
  }
211
- loadDefaultConfig(options) {
212
- let configFile = DEFAULT_CONFIG_FILE;
213
- const modulePath = (0, pathTransfer_1.getArkAnalyzerModulePath)('arkanalyzer');
214
- if (modulePath !== null) {
215
- configFile = path_1.default.join(modulePath, 'config', CONFIG_FILENAME);
216
- }
217
- if (!fs_1.default.existsSync(configFile)) {
218
- configFile = path_1.default.join(__dirname, 'config', CONFIG_FILENAME);
207
+ getDefaultConfigPath() {
208
+ try {
209
+ const moduleRoot = path_1.default.dirname(path_1.default.dirname(require.resolve('arkanalyzer')));
210
+ return path_1.default.join(moduleRoot, 'config', CONFIG_FILENAME);
211
+ }
212
+ catch (e) {
213
+ logger.info(`Failed to resolve default config file from dependency path with error: ${e}`);
214
+ let configFile = DEFAULT_CONFIG_FILE;
215
+ if (!fs_1.default.existsSync(configFile)) {
216
+ logger.debug(`default config file '${DEFAULT_CONFIG_FILE}' not found.`);
217
+ configFile = path_1.default.join(__dirname, 'config', CONFIG_FILENAME);
218
+ logger.debug(`use new config file '${configFile}'.`);
219
+ }
220
+ else {
221
+ logger.debug(`default config file '${DEFAULT_CONFIG_FILE}' found, use it.`);
222
+ }
223
+ return configFile;
219
224
  }
220
- logger.info(`try to parse config file ${configFile}`);
225
+ }
226
+ loadDefaultConfig(options) {
227
+ const configFile = this.getDefaultConfigPath();
228
+ logger.debug(`try to parse config file ${configFile}`);
221
229
  try {
222
230
  this.options = Object.assign(Object.assign({}, this.options), JSON.parse(fs_1.default.readFileSync(configFile, 'utf-8')));
223
231
  }
package/lib/Scene.d.ts CHANGED
@@ -164,7 +164,7 @@ export declare class Scene {
164
164
  * @example
165
165
  * 1. In inferSimpleTypes() to check arkClass and arkMethod.
166
166
  * ```typescript
167
- * public inferSimpleTypes() {
167
+ * public inferSimpleTypes(): void {
168
168
  * for (let arkFile of this.getFiles()) {
169
169
  * for (let arkClass of arkFile.getClasses()) {
170
170
  * for (let arkMethod of arkClass.getMethods()) {
@@ -236,14 +236,14 @@ export declare class Scene {
236
236
  removeNamespace(namespace: ArkNamespace): boolean;
237
237
  removeFile(file: ArkFile): boolean;
238
238
  hasMainMethod(): boolean;
239
- getEntryPoints(): never[];
239
+ getEntryPoints(): MethodSignature[];
240
240
  /** get values that is visible in curr scope */
241
241
  getVisibleValue(): VisibleValue;
242
242
  getOhPkgContent(): {
243
- [k: string]: unknown;
243
+ [p: string]: unknown;
244
244
  };
245
245
  getOhPkgContentMap(): Map<string, {
246
- [k: string]: unknown;
246
+ [p: string]: unknown;
247
247
  }>;
248
248
  getOhPkgFilePath(): string;
249
249
  makeCallGraphCHA(entryPoints: MethodSignature[]): CallGraph;
@@ -316,7 +316,7 @@ export declare class ModuleScene {
316
316
  getModulePath(): string;
317
317
  getOhPkgFilePath(): string;
318
318
  getOhPkgContent(): {
319
- [k: string]: unknown;
319
+ [p: string]: unknown;
320
320
  };
321
321
  getModuleFilesMap(): Map<string, ArkFile>;
322
322
  addArkFile(arkFile: ArkFile): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
package/lib/Scene.js CHANGED
@@ -74,7 +74,6 @@ var SceneBuildStage;
74
74
  SceneBuildStage[SceneBuildStage["SDK_INFERRED"] = 5] = "SDK_INFERRED";
75
75
  SceneBuildStage[SceneBuildStage["TYPE_INFERRED"] = 6] = "TYPE_INFERRED";
76
76
  })(SceneBuildStage || (SceneBuildStage = {}));
77
- ;
78
77
  /**
79
78
  * The Scene class includes everything in the analyzed project.
80
79
  * We should be able to re-generate the project's code based on this class.
@@ -193,7 +192,7 @@ class Scene {
193
192
  logger.warn('This project has no tsconfig.json!');
194
193
  }
195
194
  // handle sdks
196
- (_a = sceneConfig.getSdksObj()) === null || _a === void 0 ? void 0 : _a.forEach((sdk) => {
195
+ (_a = sceneConfig.getSdksObj()) === null || _a === void 0 ? void 0 : _a.forEach(sdk => {
197
196
  if (!sdk.moduleName) {
198
197
  this.buildSdk(sdk.name, sdk.path);
199
198
  this.projectSdkMap.set(sdk.name, sdk);
@@ -224,7 +223,7 @@ class Scene {
224
223
  const buildProfileJson = (0, json5parser_1.parseJsonText)(configurationsText);
225
224
  const modules = buildProfileJson.modules;
226
225
  if (modules instanceof Array) {
227
- modules.forEach((module) => {
226
+ modules.forEach(module => {
228
227
  this.modulePath2NameMap.set(path_1.default.resolve(this.realProjectDir, path_1.default.join(module.srcPath)), module.name);
229
228
  });
230
229
  }
@@ -312,7 +311,7 @@ class Scene {
312
311
  this.buildStage = SceneBuildStage.METHOD_DONE;
313
312
  }
314
313
  genArkFiles() {
315
- this.projectFiles.forEach((file) => {
314
+ this.projectFiles.forEach(file => {
316
315
  logger.info('=== parse file:', file);
317
316
  try {
318
317
  const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file, this.fileLanguages));
@@ -416,7 +415,7 @@ class Scene {
416
415
  findDependenciesByTsConfig(from, arkFile) {
417
416
  if (this.globalModule2PathMapping) {
418
417
  const paths = this.globalModule2PathMapping;
419
- Object.keys(paths).forEach((key) => this.parseTsConfigParms(paths, key, from, arkFile));
418
+ Object.keys(paths).forEach(key => this.parseTsConfigParms(paths, key, from, arkFile));
420
419
  }
421
420
  }
422
421
  parseTsConfigParms(paths, key, from, arkFile) {
@@ -426,7 +425,7 @@ class Scene {
426
425
  }
427
426
  else if (from.startsWith(key)) {
428
427
  let tail = from.substring(key.length, from.length);
429
- module2pathMapping.forEach((pathMapping) => {
428
+ module2pathMapping.forEach(pathMapping => {
430
429
  let originPath = path_1.default.join(this.getRealProjectDir(), pathMapping, tail);
431
430
  if (this.baseUrl) {
432
431
  originPath = path_1.default.resolve(this.baseUrl, originPath);
@@ -439,7 +438,7 @@ class Scene {
439
438
  key = key.substring(0, key.indexOf(TSConst_1.ALL) - 1);
440
439
  if (from.substring(0, key.indexOf(TSConst_1.ALL) - 1) === key) {
441
440
  let tail = from.substring(key.indexOf(TSConst_1.ALL) - 1, from.length);
442
- module2pathMapping.forEach((pathMapping) => {
441
+ module2pathMapping.forEach(pathMapping => {
443
442
  pathMapping = pathMapping.substring(0, pathMapping.indexOf(TSConst_1.ALL) - 1);
444
443
  let originPath = path_1.default.join(this.getRealProjectDir(), pathMapping, tail);
445
444
  if (this.baseUrl) {
@@ -478,7 +477,7 @@ class Scene {
478
477
  findRelativeDependenciesByOhPkg(from, arkFile) {
479
478
  //relative path ../from ./from
480
479
  //order
481
- //1. ../from/oh-package.json5 -> [[name]] -> overRides/overRideDependencyMap? ->
480
+ //1. ../from/oh-package.json5 -> [[name]] -> overRides/overRideDependencyMap? ->
482
481
  //[[main]] -> file path ->dependencies(priority)+devDependencies? dynamicDependencies(not support) ->
483
482
  //key overRides/overRideDependencyMap?
484
483
  //2. ../from/index.ets(ts)
@@ -541,7 +540,7 @@ class Scene {
541
540
  }
542
541
  buildSdk(sdkName, sdkPath) {
543
542
  const allFiles = (0, getAllFiles_1.getAllFiles)(sdkPath, this.options.supportFileExts, this.options.ignoreFileNames);
544
- allFiles.forEach((file) => {
543
+ allFiles.forEach(file => {
545
544
  logger.info('=== parse sdk file:', file);
546
545
  try {
547
546
  const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file, this.fileLanguages));
@@ -554,6 +553,7 @@ class Scene {
554
553
  });
555
554
  const fileSig = arkFile.getFileSignature().toMapKey();
556
555
  this.sdkArkFilesMap.set(fileSig, arkFile);
556
+ SdkUtils_1.SdkUtils.buildSdkImportMap(arkFile);
557
557
  SdkUtils_1.SdkUtils.buildGlobalMap(arkFile, this.sdkGlobalMap);
558
558
  }
559
559
  catch (error) {
@@ -616,7 +616,7 @@ class Scene {
616
616
  processModuleOhPkgContent(dependencies, moduleOhPkgFilePath, supportFileExts) {
617
617
  Object.entries(dependencies).forEach(([k, v]) => {
618
618
  const pattern = new RegExp('^(\\.\\.\\/\|\\.\\/)');
619
- if (typeof (v) === 'string') {
619
+ if (typeof v === 'string') {
620
620
  let dependencyModulePath = '';
621
621
  if (pattern.test(v)) {
622
622
  dependencyModulePath = path_1.default.join(moduleOhPkgFilePath, v);
@@ -710,7 +710,7 @@ class Scene {
710
710
  * @example
711
711
  * 1. In inferSimpleTypes() to check arkClass and arkMethod.
712
712
  * ```typescript
713
- * public inferSimpleTypes() {
713
+ * public inferSimpleTypes(): void {
714
714
  * for (let arkFile of this.getFiles()) {
715
715
  * for (let arkClass of arkFile.getClasses()) {
716
716
  * for (let arkMethod of arkClass.getMethods()) {
@@ -775,7 +775,7 @@ class Scene {
775
775
  getNamespacesMap() {
776
776
  if (this.buildStage === SceneBuildStage.CLASS_DONE) {
777
777
  for (const file of this.getFiles()) {
778
- ModelUtils_1.ModelUtils.getAllNamespacesInFile(file).forEach((namespace) => {
778
+ ModelUtils_1.ModelUtils.getAllNamespacesInFile(file).forEach(namespace => {
779
779
  this.namespacesMap.set(namespace.getNamespaceSignature().toMapKey(), namespace);
780
780
  });
781
781
  }
@@ -1055,8 +1055,7 @@ class Scene {
1055
1055
  const importNameSpaceClasses = classMap.get(importNameSpace.getNamespaceSignature());
1056
1056
  importClasses.push(...importNameSpaceClasses.filter(c => !importClasses.includes(c) && c.getName() !== Const_1.DEFAULT_ARK_CLASS_NAME));
1057
1057
  }
1058
- catch (_a) {
1059
- }
1058
+ catch (_a) { }
1060
1059
  }
1061
1060
  }
1062
1061
  const fileClasses = classMap.get(file.getFileSignature());
@@ -1108,7 +1107,10 @@ class Scene {
1108
1107
  while (namespaceStack.length > 0) {
1109
1108
  const ns = namespaceStack.shift();
1110
1109
  const nsGlobalLocals = [];
1111
- (_a = ns.getDefaultClass().getDefaultArkMethod().getBody()) === null || _a === void 0 ? void 0 : _a.getLocals().forEach(local => {
1110
+ (_a = ns
1111
+ .getDefaultClass()
1112
+ .getDefaultArkMethod()
1113
+ .getBody()) === null || _a === void 0 ? void 0 : _a.getLocals().forEach(local => {
1112
1114
  if (local.getDeclaringStmt() && local.getName() !== 'this' && local.getName()[0] !== '$') {
1113
1115
  nsGlobalLocals.push(local);
1114
1116
  }
@@ -1174,8 +1176,7 @@ class Scene {
1174
1176
  const importNameSpaceClasses = globalVariableMap.get(importNameSpace.getNamespaceSignature());
1175
1177
  importLocals.push(...importNameSpaceClasses.filter(c => !importLocals.includes(c) && c.getName() !== Const_1.DEFAULT_ARK_CLASS_NAME));
1176
1178
  }
1177
- catch (_a) {
1178
- }
1179
+ catch (_a) { }
1179
1180
  }
1180
1181
  }
1181
1182
  const fileLocals = globalVariableMap.get(file.getFileSignature());
@@ -1217,7 +1218,8 @@ class Scene {
1217
1218
  const parentMap = new Map();
1218
1219
  const finalNamespaces = [];
1219
1220
  const globalLocals = [];
1220
- (_b = (_a = file.getDefaultClass()) === null || _a === void 0 ? void 0 : _a.getDefaultArkMethod().getBody()) === null || _b === void 0 ? void 0 : _b.getLocals().forEach(local => {
1221
+ (_b = (_a = file
1222
+ .getDefaultClass()) === null || _a === void 0 ? void 0 : _a.getDefaultArkMethod().getBody()) === null || _b === void 0 ? void 0 : _b.getLocals().forEach(local => {
1221
1223
  if (local.getDeclaringStmt() && local.getName() !== 'this' && local.getName()[0] !== '$') {
1222
1224
  globalLocals.push(local);
1223
1225
  }
@@ -1327,7 +1329,7 @@ class ModuleScene {
1327
1329
  this.moduleFileMap.set(arkFile.getFileSignature().toMapKey(), arkFile);
1328
1330
  }
1329
1331
  genArkFiles(supportFileExts) {
1330
- (0, getAllFiles_1.getAllFiles)(this.modulePath, supportFileExts, this.projectScene.getOptions().ignoreFileNames).forEach((file) => {
1332
+ (0, getAllFiles_1.getAllFiles)(this.modulePath, supportFileExts, this.projectScene.getOptions().ignoreFileNames).forEach(file => {
1331
1333
  logger.info('=== parse file:', file);
1332
1334
  try {
1333
1335
  const arkFile = new ArkFile_1.ArkFile(FileUtils_1.FileUtils.getFileLanguage(file, this.projectScene.getFileLanguages()));
@@ -1 +1 @@
1
- {"version":3,"file":"DVFG.d.ts","sourceRoot":"","sources":["../../src/VFG/DVFG.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAiB,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;GAIG;AACH,qBAAa,IAAK,SAAQ,iBAAiB;IACvC,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,YAAY,CAAoB;gBAC5B,EAAE,EAAE,SAAS;IAMlB,KAAK,IAAI,SAAS;IAIlB,YAAY,IAAI,MAAM;IAItB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;IAiBtC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,GAAG,QAAQ;IASrD,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO;IAalD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAIlC;AAED,oBAAY,YAAY;IACpB,MAAM,IAAA;IAAE,IAAI,IAAA;IAAE,KAAK,IAAA;IAAE,IAAI,IAAA;IAAE,IAAI,IAAA;IAAE,EAAE,IAAA;IAAE,UAAU,IAAA;IAAE,UAAU,IAAA;IAAE,SAAS,IAAA;IACtE,SAAS,IAAA;IAAE,KAAK,KAAA;IAAE,MAAM,KAAA;IAAE,MAAM,KAAA;CACnC;AAED,qBAAa,QAAS,SAAQ,QAAQ;IAClC,OAAO,CAAC,IAAI,CAAO;gBAEP,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI;IAKxC,WAAW,IAAI,MAAM;IAMrB,OAAO,IAAI,IAAI;CAGzB;AAED,qBAAa,QAAS,SAAQ,QAAQ;CAAG"}
1
+ {"version":3,"file":"DVFG.d.ts","sourceRoot":"","sources":["../../src/VFG/DVFG.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAiB,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;GAIG;AACH,qBAAa,IAAK,SAAQ,iBAAiB;IACvC,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,YAAY,CAAoB;gBAC5B,EAAE,EAAE,SAAS;IAMlB,KAAK,IAAI,SAAS;IAIlB,YAAY,IAAI,MAAM;IAItB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;IAiBtC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,GAAG,QAAQ;IASrD,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO;IAalD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAIlC;AAED,oBAAY,YAAY;IACpB,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,EAAE,IAAA;IACF,UAAU,IAAA;IACV,UAAU,IAAA;IACV,SAAS,IAAA;IACT,SAAS,IAAA;IACT,KAAK,KAAA;IACL,MAAM,KAAA;IACN,MAAM,KAAA;CACT;AAED,qBAAa,QAAS,SAAQ,QAAQ;IAClC,OAAO,CAAC,IAAI,CAAO;gBAEP,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI;IAKxC,WAAW,IAAI,MAAM;IAMrB,OAAO,IAAI,IAAI;CAGzB;AAED,qBAAa,QAAS,SAAQ,QAAQ;CAAG"}
@@ -1,7 +1,7 @@
1
1
  import { Stmt } from '../../core/base/Stmt';
2
2
  import { ArkMethod } from '../../core/model/ArkMethod';
3
3
  import { Scene } from '../../Scene';
4
- import { DVFG } from '../DVFG';
4
+ import { DVFG, DVFGNode } from '../DVFG';
5
5
  export declare class DVFGBuilder {
6
6
  private dvfg;
7
7
  private scene;
@@ -10,7 +10,7 @@ export declare class DVFGBuilder {
10
10
  buildForSingleMethod(m: ArkMethod): void;
11
11
  private getStmtUsedValues;
12
12
  private getUsedValues;
13
- getOrNewDVFGNode(stmt: Stmt): import("../DVFG").DVFGNode;
13
+ getOrNewDVFGNode(stmt: Stmt): DVFGNode;
14
14
  addDVFGNodes(): void;
15
15
  addDVFGEdges(): void;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DVFGBuilder.d.ts","sourceRoot":"","sources":["../../../src/VFG/builder/DVFGBuilder.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwE,IAAI,EAA6C,MAAM,sBAAsB,CAAC;AAM7J,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,qBAAa,WAAW;IACpB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,KAAK,CAAQ;gBAET,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK;IAKzB,KAAK;IAIL,oBAAoB,CAAC,CAAC,EAAE,SAAS;IAyCxC,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,aAAa;IAcd,gBAAgB,CAAC,IAAI,EAAE,IAAI;IAI3B,YAAY,IAAI,IAAI;IAEpB,YAAY,IAAI,IAAI;CAC9B"}
1
+ {"version":3,"file":"DVFGBuilder.d.ts","sourceRoot":"","sources":["../../../src/VFG/builder/DVFGBuilder.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwE,IAAI,EAA6C,MAAM,sBAAsB,CAAC;AAM7J,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,WAAW;IACpB,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,KAAK,CAAQ;gBAET,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK;IAKzB,KAAK,IAAI,IAAI;IAQb,oBAAoB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IA2C/C,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,aAAa;IAkBd,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;IAItC,YAAY,IAAI,IAAI;IAEpB,YAAY,IAAI,IAAI;CAC9B"}
@@ -27,16 +27,20 @@ class DVFGBuilder {
27
27
  this.scene = s;
28
28
  }
29
29
  build() {
30
- this.scene.getMethods().forEach(m => { if (m.getCfg()) {
31
- this.buildForSingleMethod(m);
32
- } });
30
+ this.scene.getMethods().forEach(m => {
31
+ if (m.getCfg()) {
32
+ this.buildForSingleMethod(m);
33
+ }
34
+ });
33
35
  }
34
36
  buildForSingleMethod(m) {
35
37
  let problem = new ReachingDef_1.ReachingDefProblem(m);
36
38
  let solver = new GenericDataFlow_1.MFPDataFlowSolver();
37
39
  let solution = solver.calculateMopSolutionForwards(problem);
38
40
  let defMap = new Map();
39
- m.getCfg().getStmts().forEach((s) => {
41
+ m.getCfg()
42
+ .getStmts()
43
+ .forEach(s => {
40
44
  var _a;
41
45
  let def = s.getDef();
42
46
  if (def != null) {
@@ -63,7 +67,7 @@ class DVFGBuilder {
63
67
  if (target instanceof Ref_1.AbstractFieldRef) {
64
68
  target = target.getFieldSignature();
65
69
  }
66
- (_a = defMap.get(target)) === null || _a === void 0 ? void 0 : _a.forEach((defStmt) => {
70
+ (_a = defMap.get(target)) === null || _a === void 0 ? void 0 : _a.forEach(defStmt => {
67
71
  let defId = problem.flowGraph.getNodeID(defStmt);
68
72
  addNewNodes(defId, defStmt, reachStmt);
69
73
  });
@@ -96,10 +100,14 @@ class DVFGBuilder {
96
100
  getUsedValues(val) {
97
101
  if (val instanceof Expr_1.AbstractExpr) {
98
102
  if (val instanceof Expr_1.AbstractInvokeExpr) {
99
- return val.getArgs().flatMap((current) => { return this.getUsedValues(current); }, []);
103
+ return val.getArgs().flatMap(current => {
104
+ return this.getUsedValues(current);
105
+ }, []);
100
106
  }
101
107
  else {
102
- return val.getUses().flatMap((current) => { return this.getUsedValues(current); }, []);
108
+ return val.getUses().flatMap(current => {
109
+ return this.getUsedValues(current);
110
+ }, []);
103
111
  }
104
112
  }
105
113
  if (val instanceof Constant_1.Constant) {
@@ -22,6 +22,7 @@ export declare abstract class AbstractAnalysis {
22
22
  resolveInvokeExpr(invokeExpr: AbstractInvokeExpr): ArkMethod | undefined;
23
23
  getClassHierarchy(arkClass: ArkClass): ArkClass[];
24
24
  start(displayGeneratedMethod: boolean): void;
25
+ projectStart(displayGeneratedMethod: boolean): void;
25
26
  private processCallSite;
26
27
  protected init(): void;
27
28
  protected processMethod(methodID: FuncID): CallSite[];
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/AbstractAnalysis.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAA2B,cAAc,EAAqB,MAAM,0BAA0B,CAAC;AAItG,8BAAsB,gBAAgB;IAClC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,EAAG,SAAS,CAAC;IACzB,SAAS,CAAC,SAAS,EAAG,gBAAgB,CAAC;IACvC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAM;IAClC,SAAS,CAAC,eAAe,EAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBAEvC,CAAC,EAAE,KAAK;IAIb,QAAQ,IAAI,KAAK;IAIjB,YAAY,IAAI,SAAS;IAIhC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IAClF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAExD,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,GAAG,SAAS;IAOxE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAgBjD,KAAK,CAAC,sBAAsB,EAAE,OAAO,GAAG,IAAI;IAqBnD,OAAO,CAAC,eAAe;IAgBvB,SAAS,CAAC,IAAI,IAAI,IAAI;IAOtB,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IA0BrD,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,eAAe,EAAE;IAapF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,GAAG,IAAI;CAU5H"}
1
+ {"version":3,"file":"AbstractAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/AbstractAnalysis.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAA2B,cAAc,EAAqB,MAAM,0BAA0B,CAAC;AAItG,8BAAsB,gBAAgB;IAClC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,EAAG,SAAS,CAAC;IACzB,SAAS,CAAC,SAAS,EAAG,gBAAgB,CAAC;IACvC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAM;IAClC,SAAS,CAAC,eAAe,EAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBAEvC,CAAC,EAAE,KAAK;IAIb,QAAQ,IAAI,KAAK;IAIjB,YAAY,IAAI,SAAS;IAIhC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IAClF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAExD,iBAAiB,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,GAAG,SAAS;IAQxE,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAgBjD,KAAK,CAAC,sBAAsB,EAAE,OAAO,GAAG,IAAI;IAqB5C,YAAY,CAAC,sBAAsB,EAAE,OAAO,GAAG,IAAI;IAgB1D,OAAO,CAAC,eAAe;IAqBvB,SAAS,CAAC,IAAI,IAAI,IAAI;IAOtB,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IA0BrD,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,eAAe,EAAE;IAapF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,GAAG,IAAI;CAU5H"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -58,6 +58,7 @@ class AbstractAnalysis {
58
58
  if (method != null) {
59
59
  return method;
60
60
  }
61
+ return undefined;
61
62
  }
62
63
  getClassHierarchy(arkClass) {
63
64
  // TODO: remove abstract class
@@ -89,12 +90,27 @@ class AbstractAnalysis {
89
90
  });
90
91
  }
91
92
  }
92
- processCallSite(method, cs, displayGeneratedMethod) {
93
+ projectStart(displayGeneratedMethod) {
94
+ this.scene.getMethods().forEach((method) => {
95
+ let cgNode = this.cg.getCallGraphNodeByMethod(method.getSignature());
96
+ if (cgNode.isSdkMethod()) {
97
+ return;
98
+ }
99
+ this.preProcessMethod(cgNode.getID());
100
+ this.processMethod(cgNode.getID()).forEach((cs) => {
101
+ this.processCallSite(cgNode.getID(), cs, displayGeneratedMethod, true);
102
+ });
103
+ });
104
+ }
105
+ processCallSite(method, cs, displayGeneratedMethod, isProject = false) {
93
106
  var _a;
94
107
  let me = this.cg.getArkMethodByFuncID(cs.calleeFuncID);
95
108
  let meNode = this.cg.getNode(cs.calleeFuncID);
96
- this.processedMethod.insert(cs.callerFuncID);
97
109
  this.addCallGraphEdge(method, me, cs, displayGeneratedMethod);
110
+ if (isProject) {
111
+ return;
112
+ }
113
+ this.processedMethod.insert(cs.callerFuncID);
98
114
  if (this.processedMethod.contains(cs.calleeFuncID) || meNode.isSdkMethod()) {
99
115
  return;
100
116
  }
@@ -105,7 +121,7 @@ class AbstractAnalysis {
105
121
  }
106
122
  init() {
107
123
  this.processedMethod = new ((0, PtsDS_1.createPtsCollectionCtor)(PtsDS_1.PtsCollectionType.BitVector))();
108
- this.cg.getEntries().forEach((entryFunc) => {
124
+ this.cg.getEntries().forEach(entryFunc => {
109
125
  this.workList.push(entryFunc);
110
126
  });
111
127
  }
@@ -114,15 +130,15 @@ class AbstractAnalysis {
114
130
  let arkMethod = this.scene.getMethod(cgNode.getMethod(), true);
115
131
  let calleeMethods = [];
116
132
  if (!arkMethod) {
117
- throw new Error("can not find method");
133
+ throw new Error('can not find method');
118
134
  }
119
135
  const cfg = arkMethod.getCfg();
120
136
  if (!cfg) {
121
137
  return [];
122
138
  }
123
- cfg.getStmts().forEach((stmt) => {
139
+ cfg.getStmts().forEach(stmt => {
124
140
  if (stmt.containsInvokeExpr()) {
125
- this.resolveCall(cgNode.getID(), stmt).forEach((callSite) => {
141
+ this.resolveCall(cgNode.getID(), stmt).forEach(callSite => {
126
142
  calleeMethods.push(callSite);
127
143
  this.cg.addStmtToCallSiteMap(stmt, callSite);
128
144
  this.cg.addMethodToCallSiteMap(callSite.calleeFuncID, callSite);
@@ -133,7 +149,7 @@ class AbstractAnalysis {
133
149
  }
134
150
  getParamAnonymousMethod(invokeExpr) {
135
151
  let paramMethod = [];
136
- invokeExpr.getArgs().forEach((args) => {
152
+ invokeExpr.getArgs().forEach(args => {
137
153
  let argsType = args.getType();
138
154
  if (argsType instanceof Type_1.FunctionType) {
139
155
  paramMethod.push(argsType.getMethodSignature());
@@ -1 +1 @@
1
- {"version":3,"file":"ClassHierarchyAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/ClassHierarchyAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,sBAAuB,SAAQ,gBAAgB;gBAE5C,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS;IAKhC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IAwDtE,SAAS,CAAC,gBAAgB,IAAI,QAAQ,EAAE;CAI3C"}
1
+ {"version":3,"file":"ClassHierarchyAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/ClassHierarchyAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,sBAAuB,SAAQ,gBAAgB;gBAC5C,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS;IAKhC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IAkDtE,SAAS,CAAC,gBAAgB,IAAI,QAAQ,EAAE;CAI3C"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -49,7 +49,8 @@ class ClassHierarchyAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
49
49
  return;
50
50
  }
51
51
  let possibleCalleeMethod = arkClass.getMethodWithName(calleeMethod.getName());
52
- if (possibleCalleeMethod && possibleCalleeMethod.isGenerated() &&
52
+ if (possibleCalleeMethod &&
53
+ possibleCalleeMethod.isGenerated() &&
53
54
  arkClass.getSignature().toString() !== declareClass.getSignature().toString()) {
54
55
  // remove the generated method in extended classes
55
56
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"RapidTypeAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/RapidTypeAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,qBAAa,iBAAkB,SAAQ,gBAAgB;IAEnD,OAAO,CAAC,gBAAgB,CAAkC;IAE1D,OAAO,CAAC,YAAY,CAA2F;gBAEnG,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS;IAKhC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IA8DtE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAqBtD,OAAO,CAAC,+BAA+B;IA4BhC,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI;CAKxG"}
1
+ {"version":3,"file":"RapidTypeAnalysis.d.ts","sourceRoot":"","sources":["../../../src/callgraph/algorithm/RapidTypeAnalysis.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,qBAAa,iBAAkB,SAAQ,gBAAgB;IAEnD,OAAO,CAAC,gBAAgB,CAAkC;IAE1D,OAAO,CAAC,YAAY,CAA2F;gBAEnG,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS;IAKhC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE;IA8DtE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IAmBtD,OAAO,CAAC,+BAA+B;IA4BhC,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI;CAK/G"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*
3
- * Copyright (c) 2024 Huawei Device Co., Ltd.
3
+ * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -78,7 +78,8 @@ class RapidTypeAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
78
78
  return;
79
79
  }
80
80
  let possibleCalleeMethod = arkClass.getMethodWithName(calleeMethod.getName());
81
- if (possibleCalleeMethod && possibleCalleeMethod.isGenerated() &&
81
+ if (possibleCalleeMethod &&
82
+ possibleCalleeMethod.isGenerated() &&
82
83
  arkClass.getSignature().toString() !== declareClass.getSignature().toString()) {
83
84
  // remove the generated method in extended classes
84
85
  return;
@@ -103,7 +104,7 @@ class RapidTypeAnalysis extends AbstractAnalysis_1.AbstractAnalysis {
103
104
  newlyInstancedClasses.forEach(sig => {
104
105
  let ignoredCalls = this.ignoredCalls.get(sig);
105
106
  if (ignoredCalls) {
106
- ignoredCalls.forEach((call) => {
107
+ ignoredCalls.forEach(call => {
107
108
  this.cg.addDynamicCallEdge(call.caller, call.callee, call.callStmt);
108
109
  newCallSites.push(new CallGraph_1.CallSite(call.callStmt, undefined, call.callee, call.caller));
109
110
  });
@@ -1,10 +1,13 @@
1
- import { CallGraphNodeKind } from "../model/CallGraph";
2
- import { PointerAnalysis } from "../pointerAnalysis/PointerAnalysis";
1
+ import { CallGraphNodeKind } from '../model/CallGraph';
2
+ import { PointerAnalysis } from '../pointerAnalysis/PointerAnalysis';
3
3
  declare abstract class StatTraits {
4
+ TotalTime: number;
5
+ startTime: number;
6
+ endTime: number;
4
7
  getStat(): string;
5
8
  printStat(): void;
6
9
  }
7
- export declare class PTAStat implements StatTraits {
10
+ export declare class PTAStat extends StatTraits {
8
11
  pta: PointerAnalysis;
9
12
  numProcessedAddr: number;
10
13
  numProcessedCopy: number;
@@ -22,9 +25,6 @@ export declare class PTAStat implements StatTraits {
22
25
  numNotInferedUnknownValue: number;
23
26
  numUnhandledFunc: number;
24
27
  iterTimes: number;
25
- TotalTime: number;
26
- startTime: number;
27
- endTime: number;
28
28
  startMemUsage: any;
29
29
  endMemUsage: any;
30
30
  rssUsed: number;
@@ -38,7 +38,7 @@ export declare class PTAStat implements StatTraits {
38
38
  getStat(): string;
39
39
  printStat(): void;
40
40
  }
41
- export declare class PAGStat implements StatTraits {
41
+ export declare class PAGStat extends StatTraits {
42
42
  numDynamicCall: number;
43
43
  numTotalFunction: number;
44
44
  numTotalNode: number;
@@ -51,6 +51,8 @@ export declare class CGStat extends StatTraits {
51
51
  numVirtual: number;
52
52
  numIntrinsic: number;
53
53
  numConstructor: number;
54
+ startStat(): void;
55
+ endStat(): void;
54
56
  addNodeStat(kind: CallGraphNodeKind): void;
55
57
  getStat(): string;
56
58
  }