arkanalyzer 1.0.27 → 1.0.29

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 (49) hide show
  1. package/config/arkanalyzer.json +1 -0
  2. package/lib/Config.d.ts.map +1 -1
  3. package/lib/Config.js +9 -1
  4. package/lib/VFG/DVFG.d.ts +43 -0
  5. package/lib/VFG/DVFG.d.ts.map +1 -0
  6. package/lib/VFG/DVFG.js +109 -0
  7. package/lib/VFG/builder/DVFGBuilder.d.ts +17 -0
  8. package/lib/VFG/builder/DVFGBuilder.d.ts.map +1 -0
  9. package/lib/VFG/builder/DVFGBuilder.js +111 -0
  10. package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -1
  11. package/lib/callgraph/algorithm/AbstractAnalysis.js +1 -0
  12. package/lib/callgraph/model/CallGraph.d.ts +5 -1
  13. package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
  14. package/lib/callgraph/model/CallGraph.js +35 -2
  15. package/lib/callgraph/pointerAnalysis/Pag.js +3 -3
  16. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +11 -3
  17. package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
  18. package/lib/callgraph/pointerAnalysis/PagBuilder.js +151 -62
  19. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +2 -0
  20. package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -1
  21. package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +33 -7
  22. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +7 -2
  23. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -1
  24. package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +10 -4
  25. package/lib/core/base/Expr.d.ts.map +1 -1
  26. package/lib/core/base/Expr.js +6 -4
  27. package/lib/core/base/Ref.d.ts +0 -1
  28. package/lib/core/base/Ref.d.ts.map +1 -1
  29. package/lib/core/base/Ref.js +0 -11
  30. package/lib/core/base/Type.d.ts.map +1 -1
  31. package/lib/core/common/IRInference.d.ts +3 -0
  32. package/lib/core/common/IRInference.d.ts.map +1 -1
  33. package/lib/core/common/IRInference.js +62 -23
  34. package/lib/core/common/SdkUtils.js +1 -1
  35. package/lib/core/common/TypeInference.d.ts +5 -3
  36. package/lib/core/common/TypeInference.d.ts.map +1 -1
  37. package/lib/core/common/TypeInference.js +93 -60
  38. package/lib/core/dataflow/ReachingDef.d.ts.map +1 -1
  39. package/lib/core/dataflow/ReachingDef.js +1 -0
  40. package/lib/core/graph/BaseImplicitGraph.d.ts +1 -0
  41. package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
  42. package/lib/core/graph/BaseImplicitGraph.js +6 -0
  43. package/lib/index.d.ts +2 -0
  44. package/lib/index.d.ts.map +1 -1
  45. package/lib/index.js +6 -2
  46. package/lib/utils/pathTransfer.d.ts +1 -0
  47. package/lib/utils/pathTransfer.d.ts.map +1 -1
  48. package/lib/utils/pathTransfer.js +10 -1
  49. package/package.json +2 -2
package/lib/index.js CHANGED
@@ -31,8 +31,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.ArkClass = exports.ArkNamespace = exports.ArkFile = exports.SCCDetection = exports.BaseExplicitGraph = exports.BaseNode = exports.BaseEdge = exports.DominanceTree = exports.DominanceFinder = exports.Cfg = exports.BasicBlock = exports.UndefinedVariableSolver = exports.UndefinedVariableChecker = exports.Fact = exports.PathEdge = exports.PathEdgePoint = exports.DataflowSolver = exports.DataflowResult = exports.DataflowProblem = exports.Scope = exports.VisibleValue = exports.ValueUtil = exports.TypeInference = exports.StmtUseReplacer = exports.RefUseReplacer = exports.IRUtils = exports.ExprUseReplacer = exports.DummyMainCreater = exports.ModelUtils = exports.FullPosition = exports.LineColPosition = exports.Local = exports.DefUseChain = exports.Decorator = exports.Constant = exports.DiffPTData = exports.PtsSet = exports.PointerAnalysisConfig = exports.PointerAnalysis = exports.PagBuilder = exports.CSFuncID = exports.DummyCallCreator = exports.KLimitedContextSensitive = exports.CallGraphBuilder = exports.CGStat = exports.PAGStat = exports.PTAStat = exports.RapidTypeAnalysis = exports.ClassHierarchyAnalysis = exports.AbstractAnalysis = void 0;
35
- exports.ts = exports.Logger = exports.LOG_MODULE_TYPE = exports.LOG_LEVEL = exports.ViewTreePrinter = exports.GraphPrinter = exports.JsonPrinter = exports.SourceFilePrinter = exports.SourceNamespacePrinter = exports.SourceClassPrinter = exports.SourceMethodPrinter = exports.DotFilePrinter = exports.DotNamespacePrinter = exports.DotClassPrinter = exports.DotMethodPrinter = exports.PrinterBuilder = exports.Printer = exports.Scene = exports.SceneConfig = exports.ArkBody = exports.ImportInfo = exports.ExportInfo = exports.ArkField = exports.ArkMethod = void 0;
34
+ exports.ArkFile = exports.SCCDetection = exports.BaseExplicitGraph = exports.BaseNode = exports.BaseEdge = exports.DominanceTree = exports.DominanceFinder = exports.Cfg = exports.BasicBlock = exports.UndefinedVariableSolver = exports.UndefinedVariableChecker = exports.Fact = exports.PathEdge = exports.PathEdgePoint = exports.DataflowSolver = exports.DataflowResult = exports.DataflowProblem = exports.Scope = exports.VisibleValue = exports.ValueUtil = exports.TypeInference = exports.StmtUseReplacer = exports.RefUseReplacer = exports.IRUtils = exports.ExprUseReplacer = exports.DummyMainCreater = exports.ModelUtils = exports.FullPosition = exports.LineColPosition = exports.Local = exports.DefUseChain = exports.Decorator = exports.Constant = exports.DVFGBuilder = exports.DVFG = exports.DiffPTData = exports.PtsSet = exports.PointerAnalysisConfig = exports.PointerAnalysis = exports.PagBuilder = exports.CSFuncID = exports.DummyCallCreator = exports.KLimitedContextSensitive = exports.CallGraphBuilder = exports.CGStat = exports.PAGStat = exports.PTAStat = exports.RapidTypeAnalysis = exports.ClassHierarchyAnalysis = exports.AbstractAnalysis = void 0;
35
+ exports.ts = exports.Logger = exports.LOG_MODULE_TYPE = exports.LOG_LEVEL = exports.ViewTreePrinter = exports.GraphPrinter = exports.JsonPrinter = exports.SourceFilePrinter = exports.SourceNamespacePrinter = exports.SourceClassPrinter = exports.SourceMethodPrinter = exports.DotFilePrinter = exports.DotNamespacePrinter = exports.DotClassPrinter = exports.DotMethodPrinter = exports.PrinterBuilder = exports.Printer = exports.Scene = exports.SceneConfig = exports.ArkBody = exports.ImportInfo = exports.ExportInfo = exports.ArkField = exports.ArkMethod = exports.ArkClass = exports.ArkNamespace = void 0;
36
36
  // callgraph/algorithm
37
37
  var AbstractAnalysis_1 = require("./callgraph/algorithm/AbstractAnalysis");
38
38
  Object.defineProperty(exports, "AbstractAnalysis", { enumerable: true, get: function () { return AbstractAnalysis_1.AbstractAnalysis; } });
@@ -65,6 +65,10 @@ Object.defineProperty(exports, "PointerAnalysisConfig", { enumerable: true, get:
65
65
  var PtsDS_1 = require("./callgraph/pointerAnalysis/PtsDS");
66
66
  Object.defineProperty(exports, "PtsSet", { enumerable: true, get: function () { return PtsDS_1.PtsSet; } });
67
67
  Object.defineProperty(exports, "DiffPTData", { enumerable: true, get: function () { return PtsDS_1.DiffPTData; } });
68
+ var DVFG_1 = require("./VFG/DVFG");
69
+ Object.defineProperty(exports, "DVFG", { enumerable: true, get: function () { return DVFG_1.DVFG; } });
70
+ var DVFGBuilder_1 = require("./VFG/builder/DVFGBuilder");
71
+ Object.defineProperty(exports, "DVFGBuilder", { enumerable: true, get: function () { return DVFGBuilder_1.DVFGBuilder; } });
68
72
  // core/base
69
73
  var Constant_1 = require("./core/base/Constant");
70
74
  Object.defineProperty(exports, "Constant", { enumerable: true, get: function () { return Constant_1.Constant; } });
@@ -1,2 +1,3 @@
1
1
  export declare function transfer2UnixPath(path2Do: string): string;
2
+ export declare function getArkAnalyzerModulePath(moduleName: string): string | null;
2
3
  //# sourceMappingURL=pathTransfer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pathTransfer.d.ts","sourceRoot":"","sources":["../../src/utils/pathTransfer.ts"],"names":[],"mappings":"AAiBA,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,UAEhD"}
1
+ {"version":3,"file":"pathTransfer.d.ts","sourceRoot":"","sources":["../../src/utils/pathTransfer.ts"],"names":[],"mappings":"AAiBA,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,UAEhD;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM1E"}
@@ -17,9 +17,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.transfer2UnixPath = void 0;
20
+ exports.getArkAnalyzerModulePath = exports.transfer2UnixPath = void 0;
21
21
  const path_1 = __importDefault(require("path"));
22
22
  function transfer2UnixPath(path2Do) {
23
23
  return path_1.default.posix.join(...path2Do.split(/\\/));
24
24
  }
25
25
  exports.transfer2UnixPath = transfer2UnixPath;
26
+ function getArkAnalyzerModulePath(moduleName) {
27
+ try {
28
+ return path_1.default.dirname(path_1.default.dirname(require.resolve(moduleName)));
29
+ }
30
+ catch (e) {
31
+ return null;
32
+ }
33
+ }
34
+ exports.getArkAnalyzerModulePath = getArkAnalyzerModulePath;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arkanalyzer",
3
- "version": "1.0.27",
4
- "commit_id": "059f7e14",
3
+ "version": "1.0.29",
4
+ "commit_id": "48e41990",
5
5
  "files": [
6
6
  "docs",
7
7
  "lib",