arkanalyzer 1.0.5
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.
- package/LICENSE +201 -0
- package/README.en.md +88 -0
- package/README.md +98 -0
- package/docs/HowToCreatePR.md +55 -0
- package/docs/HowToHandleIssues.md +155 -0
- package/docs/quickstart.pdf +0 -0
- package/lib/Config.d.ts +26 -0
- package/lib/Config.d.ts.map +1 -0
- package/lib/Config.js +128 -0
- package/lib/Scene.d.ts +125 -0
- package/lib/Scene.d.ts.map +1 -0
- package/lib/Scene.js +762 -0
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts +28 -0
- package/lib/callgraph/algorithm/AbstractAnalysis.d.ts.map +1 -0
- package/lib/callgraph/algorithm/AbstractAnalysis.js +137 -0
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts +11 -0
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.d.ts.map +1 -0
- package/lib/callgraph/algorithm/ClassHierarchyAnalysis.js +71 -0
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts +16 -0
- package/lib/callgraph/algorithm/RapidTypeAnalysis.d.ts.map +1 -0
- package/lib/callgraph/algorithm/RapidTypeAnalysis.js +147 -0
- package/lib/callgraph/common/Statistics.d.ts +58 -0
- package/lib/callgraph/common/Statistics.d.ts.map +1 -0
- package/lib/callgraph/common/Statistics.js +203 -0
- package/lib/callgraph/model/BaseGraph.d.ts +62 -0
- package/lib/callgraph/model/BaseGraph.d.ts.map +1 -0
- package/lib/callgraph/model/BaseGraph.js +158 -0
- package/lib/callgraph/model/CallGraph.d.ts +94 -0
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -0
- package/lib/callgraph/model/CallGraph.js +339 -0
- package/lib/callgraph/model/builder/CallGraphBuilder.d.ts +16 -0
- package/lib/callgraph/model/builder/CallGraphBuilder.d.ts.map +1 -0
- package/lib/callgraph/model/builder/CallGraphBuilder.js +106 -0
- package/lib/callgraph/pointerAnalysis/Context.d.ts +38 -0
- package/lib/callgraph/pointerAnalysis/Context.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/Context.js +156 -0
- package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts +23 -0
- package/lib/callgraph/pointerAnalysis/DummyCallCreator.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/DummyCallCreator.js +104 -0
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +209 -0
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/Pag.js +774 -0
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +88 -0
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +821 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts +64 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysis.js +502 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts +9 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/PointerAnalysisConfig.js +57 -0
- package/lib/callgraph/pointerAnalysis/PtsDS.d.ts +58 -0
- package/lib/callgraph/pointerAnalysis/PtsDS.d.ts.map +1 -0
- package/lib/callgraph/pointerAnalysis/PtsDS.js +234 -0
- package/lib/core/base/Constant.d.ts +17 -0
- package/lib/core/base/Constant.d.ts.map +1 -0
- package/lib/core/base/Constant.js +53 -0
- package/lib/core/base/Decorator.d.ts +15 -0
- package/lib/core/base/Decorator.d.ts.map +1 -0
- package/lib/core/base/Decorator.js +43 -0
- package/lib/core/base/DefUseChain.d.ts +9 -0
- package/lib/core/base/DefUseChain.d.ts.map +1 -0
- package/lib/core/base/DefUseChain.js +25 -0
- package/lib/core/base/Expr.d.ts +219 -0
- package/lib/core/base/Expr.d.ts.map +1 -0
- package/lib/core/base/Expr.js +896 -0
- package/lib/core/base/Local.d.ts +40 -0
- package/lib/core/base/Local.d.ts.map +1 -0
- package/lib/core/base/Local.js +101 -0
- package/lib/core/base/Position.d.ts +39 -0
- package/lib/core/base/Position.d.ts.map +1 -0
- package/lib/core/base/Position.js +86 -0
- package/lib/core/base/Ref.d.ts +75 -0
- package/lib/core/base/Ref.d.ts.map +1 -0
- package/lib/core/base/Ref.js +286 -0
- package/lib/core/base/Stmt.d.ts +109 -0
- package/lib/core/base/Stmt.d.ts.map +1 -0
- package/lib/core/base/Stmt.js +374 -0
- package/lib/core/base/Type.d.ts +220 -0
- package/lib/core/base/Type.d.ts.map +1 -0
- package/lib/core/base/Type.js +477 -0
- package/lib/core/base/Value.d.ts +11 -0
- package/lib/core/base/Value.d.ts.map +1 -0
- package/lib/core/base/Value.js +16 -0
- package/lib/core/common/ArkIRTransformer.d.ts +101 -0
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -0
- package/lib/core/common/ArkIRTransformer.js +1674 -0
- package/lib/core/common/BodyBuilder.d.ts +10 -0
- package/lib/core/common/BodyBuilder.d.ts.map +1 -0
- package/lib/core/common/BodyBuilder.js +34 -0
- package/lib/core/common/Builtin.d.ts +35 -0
- package/lib/core/common/Builtin.d.ts.map +1 -0
- package/lib/core/common/Builtin.js +78 -0
- package/lib/core/common/CfgBuilder.d.ts +136 -0
- package/lib/core/common/CfgBuilder.d.ts.map +1 -0
- package/lib/core/common/CfgBuilder.js +1241 -0
- package/lib/core/common/Const.d.ts +15 -0
- package/lib/core/common/Const.d.ts.map +1 -0
- package/lib/core/common/Const.js +34 -0
- package/lib/core/common/DummyMainCreater.d.ts +48 -0
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -0
- package/lib/core/common/DummyMainCreater.js +433 -0
- package/lib/core/common/EtsConst.d.ts +65 -0
- package/lib/core/common/EtsConst.d.ts.map +1 -0
- package/lib/core/common/EtsConst.js +918 -0
- package/lib/core/common/ExprUseReplacer.d.ts +18 -0
- package/lib/core/common/ExprUseReplacer.d.ts.map +1 -0
- package/lib/core/common/ExprUseReplacer.js +88 -0
- package/lib/core/common/IRUtils.d.ts +7 -0
- package/lib/core/common/IRUtils.d.ts.map +1 -0
- package/lib/core/common/IRUtils.js +39 -0
- package/lib/core/common/ModelUtils.d.ts +61 -0
- package/lib/core/common/ModelUtils.d.ts.map +1 -0
- package/lib/core/common/ModelUtils.js +628 -0
- package/lib/core/common/RefUseReplacer.d.ts +14 -0
- package/lib/core/common/RefUseReplacer.d.ts.map +1 -0
- package/lib/core/common/RefUseReplacer.js +50 -0
- package/lib/core/common/StmtUseReplacer.d.ts +16 -0
- package/lib/core/common/StmtUseReplacer.d.ts.map +1 -0
- package/lib/core/common/StmtUseReplacer.js +88 -0
- package/lib/core/common/TSConst.d.ts +11 -0
- package/lib/core/common/TSConst.d.ts.map +1 -0
- package/lib/core/common/TSConst.js +28 -0
- package/lib/core/common/TypeInference.d.ts +44 -0
- package/lib/core/common/TypeInference.d.ts.map +1 -0
- package/lib/core/common/TypeInference.js +519 -0
- package/lib/core/common/ValueUtil.d.ts +17 -0
- package/lib/core/common/ValueUtil.d.ts.map +1 -0
- package/lib/core/common/ValueUtil.js +71 -0
- package/lib/core/common/VisibleValue.d.ts +37 -0
- package/lib/core/common/VisibleValue.d.ts.map +1 -0
- package/lib/core/common/VisibleValue.js +212 -0
- package/lib/core/dataflow/DataflowProblem.d.ts +21 -0
- package/lib/core/dataflow/DataflowProblem.d.ts.map +1 -0
- package/lib/core/dataflow/DataflowProblem.js +33 -0
- package/lib/core/dataflow/DataflowResult.d.ts +8 -0
- package/lib/core/dataflow/DataflowResult.d.ts.map +1 -0
- package/lib/core/dataflow/DataflowResult.js +26 -0
- package/lib/core/dataflow/DataflowSolver.d.ts +40 -0
- package/lib/core/dataflow/DataflowSolver.d.ts.map +1 -0
- package/lib/core/dataflow/DataflowSolver.js +318 -0
- package/lib/core/dataflow/Edge.d.ts +16 -0
- package/lib/core/dataflow/Edge.d.ts.map +1 -0
- package/lib/core/dataflow/Edge.js +40 -0
- package/lib/core/dataflow/Fact.d.ts +7 -0
- package/lib/core/dataflow/Fact.d.ts.map +1 -0
- package/lib/core/dataflow/Fact.js +24 -0
- package/lib/core/dataflow/TiantAnalysis.d.ts +37 -0
- package/lib/core/dataflow/TiantAnalysis.d.ts.map +1 -0
- package/lib/core/dataflow/TiantAnalysis.js +326 -0
- package/lib/core/dataflow/UndefinedVariable.d.ts +32 -0
- package/lib/core/dataflow/UndefinedVariable.d.ts.map +1 -0
- package/lib/core/dataflow/UndefinedVariable.js +235 -0
- package/lib/core/dataflow/Util.d.ts +8 -0
- package/lib/core/dataflow/Util.d.ts.map +1 -0
- package/lib/core/dataflow/Util.js +137 -0
- package/lib/core/graph/BasicBlock.d.ts +26 -0
- package/lib/core/graph/BasicBlock.d.ts.map +1 -0
- package/lib/core/graph/BasicBlock.js +92 -0
- package/lib/core/graph/Cfg.d.ts +29 -0
- package/lib/core/graph/Cfg.d.ts.map +1 -0
- package/lib/core/graph/Cfg.js +154 -0
- package/lib/core/graph/DominanceFinder.d.ts +16 -0
- package/lib/core/graph/DominanceFinder.d.ts.map +1 -0
- package/lib/core/graph/DominanceFinder.js +121 -0
- package/lib/core/graph/DominanceTree.d.ts +13 -0
- package/lib/core/graph/DominanceTree.d.ts.map +1 -0
- package/lib/core/graph/DominanceTree.js +70 -0
- package/lib/core/graph/ViewTree.d.ts +115 -0
- package/lib/core/graph/ViewTree.d.ts.map +1 -0
- package/lib/core/graph/ViewTree.js +16 -0
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts +204 -0
- package/lib/core/graph/builder/ViewTreeBuilder.d.ts.map +1 -0
- package/lib/core/graph/builder/ViewTreeBuilder.js +1046 -0
- package/lib/core/model/ArkBody.d.ts +22 -0
- package/lib/core/model/ArkBody.d.ts.map +1 -0
- package/lib/core/model/ArkBody.js +63 -0
- package/lib/core/model/ArkClass.d.ts +110 -0
- package/lib/core/model/ArkClass.d.ts.map +1 -0
- package/lib/core/model/ArkClass.js +315 -0
- package/lib/core/model/ArkExport.d.ts +70 -0
- package/lib/core/model/ArkExport.d.ts.map +1 -0
- package/lib/core/model/ArkExport.js +143 -0
- package/lib/core/model/ArkField.d.ts +60 -0
- package/lib/core/model/ArkField.d.ts.map +1 -0
- package/lib/core/model/ArkField.js +157 -0
- package/lib/core/model/ArkFile.d.ts +62 -0
- package/lib/core/model/ArkFile.d.ts.map +1 -0
- package/lib/core/model/ArkFile.js +160 -0
- package/lib/core/model/ArkImport.d.ts +43 -0
- package/lib/core/model/ArkImport.d.ts.map +1 -0
- package/lib/core/model/ArkImport.js +109 -0
- package/lib/core/model/ArkMethod.d.ts +76 -0
- package/lib/core/model/ArkMethod.d.ts.map +1 -0
- package/lib/core/model/ArkMethod.js +235 -0
- package/lib/core/model/ArkNamespace.d.ts +65 -0
- package/lib/core/model/ArkNamespace.d.ts.map +1 -0
- package/lib/core/model/ArkNamespace.js +182 -0
- package/lib/core/model/ArkSignature.d.ts +98 -0
- package/lib/core/model/ArkSignature.d.ts.map +1 -0
- package/lib/core/model/ArkSignature.js +281 -0
- package/lib/core/model/builder/ArkClassBuilder.d.ts +13 -0
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkClassBuilder.js +422 -0
- package/lib/core/model/builder/ArkExportBuilder.d.ts +25 -0
- package/lib/core/model/builder/ArkExportBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkExportBuilder.js +207 -0
- package/lib/core/model/builder/ArkFieldBuilder.d.ts +9 -0
- package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkFieldBuilder.js +189 -0
- package/lib/core/model/builder/ArkFileBuilder.d.ts +10 -0
- package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkFileBuilder.js +164 -0
- package/lib/core/model/builder/ArkImportBuilder.d.ts +4 -0
- package/lib/core/model/builder/ArkImportBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkImportBuilder.js +125 -0
- package/lib/core/model/builder/ArkMethodBuilder.d.ts +60 -0
- package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkMethodBuilder.js +419 -0
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts +5 -0
- package/lib/core/model/builder/ArkNamespaceBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkNamespaceBuilder.js +171 -0
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts +9 -0
- package/lib/core/model/builder/ArkSignatureBuilder.d.ts.map +1 -0
- package/lib/core/model/builder/ArkSignatureBuilder.js +40 -0
- package/lib/core/model/builder/builderUtils.d.ts +18 -0
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -0
- package/lib/core/model/builder/builderUtils.js +449 -0
- package/lib/index.d.ts +77 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +190 -0
- package/lib/save/ArkStream.d.ts +24 -0
- package/lib/save/ArkStream.d.ts.map +1 -0
- package/lib/save/ArkStream.js +83 -0
- package/lib/save/DotPrinter.d.ts +48 -0
- package/lib/save/DotPrinter.d.ts.map +1 -0
- package/lib/save/DotPrinter.js +229 -0
- package/lib/save/GraphPrinter.d.ts +17 -0
- package/lib/save/GraphPrinter.d.ts.map +1 -0
- package/lib/save/GraphPrinter.js +135 -0
- package/lib/save/JsonPrinter.d.ts +28 -0
- package/lib/save/JsonPrinter.d.ts.map +1 -0
- package/lib/save/JsonPrinter.js +511 -0
- package/lib/save/Printer.d.ts +17 -0
- package/lib/save/Printer.d.ts.map +1 -0
- package/lib/save/Printer.js +27 -0
- package/lib/save/PrinterBuilder.d.ts +38 -0
- package/lib/save/PrinterBuilder.d.ts.map +1 -0
- package/lib/save/PrinterBuilder.js +102 -0
- package/lib/save/serializeArkIR.d.ts +3 -0
- package/lib/save/serializeArkIR.d.ts.map +1 -0
- package/lib/save/serializeArkIR.js +166 -0
- package/lib/save/source/SourceBase.d.ts +32 -0
- package/lib/save/source/SourceBase.d.ts.map +1 -0
- package/lib/save/source/SourceBase.js +93 -0
- package/lib/save/source/SourceBody.d.ts +60 -0
- package/lib/save/source/SourceBody.d.ts.map +1 -0
- package/lib/save/source/SourceBody.js +292 -0
- package/lib/save/source/SourceClass.d.ts +27 -0
- package/lib/save/source/SourceClass.d.ts.map +1 -0
- package/lib/save/source/SourceClass.js +202 -0
- package/lib/save/source/SourceField.d.ts +15 -0
- package/lib/save/source/SourceField.d.ts.map +1 -0
- package/lib/save/source/SourceField.js +68 -0
- package/lib/save/source/SourceFilePrinter.d.ts +14 -0
- package/lib/save/source/SourceFilePrinter.d.ts.map +1 -0
- package/lib/save/source/SourceFilePrinter.js +73 -0
- package/lib/save/source/SourceMethod.d.ts +24 -0
- package/lib/save/source/SourceMethod.d.ts.map +1 -0
- package/lib/save/source/SourceMethod.js +170 -0
- package/lib/save/source/SourceModule.d.ts +18 -0
- package/lib/save/source/SourceModule.d.ts.map +1 -0
- package/lib/save/source/SourceModule.js +120 -0
- package/lib/save/source/SourceNamespace.d.ts +13 -0
- package/lib/save/source/SourceNamespace.d.ts.map +1 -0
- package/lib/save/source/SourceNamespace.js +80 -0
- package/lib/save/source/SourceStmt.d.ts +172 -0
- package/lib/save/source/SourceStmt.d.ts.map +1 -0
- package/lib/save/source/SourceStmt.js +757 -0
- package/lib/save/source/SourceTransformer.d.ts +37 -0
- package/lib/save/source/SourceTransformer.d.ts.map +1 -0
- package/lib/save/source/SourceTransformer.js +338 -0
- package/lib/save/source/SourceUtils.d.ts +25 -0
- package/lib/save/source/SourceUtils.d.ts.map +1 -0
- package/lib/save/source/SourceUtils.js +201 -0
- package/lib/transformer/FunctionTransformer.d.ts +3 -0
- package/lib/transformer/FunctionTransformer.d.ts.map +1 -0
- package/lib/transformer/FunctionTransformer.js +17 -0
- package/lib/transformer/SceneTransformer.d.ts +3 -0
- package/lib/transformer/SceneTransformer.d.ts.map +1 -0
- package/lib/transformer/SceneTransformer.js +17 -0
- package/lib/transformer/StaticSingleAssignmentFormer.d.ts +13 -0
- package/lib/transformer/StaticSingleAssignmentFormer.d.ts.map +1 -0
- package/lib/transformer/StaticSingleAssignmentFormer.js +259 -0
- package/lib/transformer/Transformer.d.ts +7 -0
- package/lib/transformer/Transformer.d.ts.map +1 -0
- package/lib/transformer/Transformer.js +22 -0
- package/lib/utils/CfgStructualAnalysis.d.ts +93 -0
- package/lib/utils/CfgStructualAnalysis.d.ts.map +1 -0
- package/lib/utils/CfgStructualAnalysis.js +955 -0
- package/lib/utils/FileUtils.d.ts +18 -0
- package/lib/utils/FileUtils.d.ts.map +1 -0
- package/lib/utils/FileUtils.js +131 -0
- package/lib/utils/callGraphUtils.d.ts +31 -0
- package/lib/utils/callGraphUtils.d.ts.map +1 -0
- package/lib/utils/callGraphUtils.js +208 -0
- package/lib/utils/entryMethodUtils.d.ts +16 -0
- package/lib/utils/entryMethodUtils.d.ts.map +1 -0
- package/lib/utils/entryMethodUtils.js +139 -0
- package/lib/utils/getAllFiles.d.ts +10 -0
- package/lib/utils/getAllFiles.d.ts.map +1 -0
- package/lib/utils/getAllFiles.js +91 -0
- package/lib/utils/json5parser.d.ts +7 -0
- package/lib/utils/json5parser.d.ts.map +1 -0
- package/lib/utils/json5parser.js +146 -0
- package/lib/utils/logger.d.ts +19 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +90 -0
- package/lib/utils/pathTransfer.d.ts +2 -0
- package/lib/utils/pathTransfer.d.ts.map +1 -0
- package/lib/utils/pathTransfer.js +25 -0
- package/package.json +29 -0
package/lib/Config.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(o, k2, desc);
|
|
23
|
+
}) : (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
o[k2] = m[k];
|
|
26
|
+
}));
|
|
27
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
28
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29
|
+
}) : function(o, v) {
|
|
30
|
+
o["default"] = v;
|
|
31
|
+
});
|
|
32
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.SceneConfig = void 0;
|
|
44
|
+
const fs_1 = __importDefault(require("fs"));
|
|
45
|
+
const path_1 = __importDefault(require("path"));
|
|
46
|
+
const logger_1 = __importStar(require("./utils/logger"));
|
|
47
|
+
const getAllFiles_1 = require("./utils/getAllFiles");
|
|
48
|
+
const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'Config');
|
|
49
|
+
class SceneConfig {
|
|
50
|
+
constructor() {
|
|
51
|
+
this.targetProjectName = "";
|
|
52
|
+
this.targetProjectDirectory = "";
|
|
53
|
+
this.etsSdkPath = "";
|
|
54
|
+
this.sdksObj = [];
|
|
55
|
+
this.sdkFiles = [];
|
|
56
|
+
this.sdkFilesMap = new Map();
|
|
57
|
+
this.projectFiles = [];
|
|
58
|
+
}
|
|
59
|
+
buildConfig(targetProjectName, targetProjectDirectory, sdks, fullFilePath) {
|
|
60
|
+
this.targetProjectName = targetProjectName;
|
|
61
|
+
this.targetProjectDirectory = targetProjectDirectory;
|
|
62
|
+
this.sdksObj = sdks;
|
|
63
|
+
if (fullFilePath) {
|
|
64
|
+
this.projectFiles.push(...fullFilePath);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
buildFromProjectDir(targetProjectDirectory) {
|
|
68
|
+
this.targetProjectDirectory = targetProjectDirectory;
|
|
69
|
+
this.targetProjectName = path_1.default.basename(targetProjectDirectory);
|
|
70
|
+
this.projectFiles = (0, getAllFiles_1.getAllFiles)(targetProjectDirectory, ['.ets', '.ts']);
|
|
71
|
+
}
|
|
72
|
+
buildFromJson(configJsonPath) {
|
|
73
|
+
if (fs_1.default.existsSync(configJsonPath)) {
|
|
74
|
+
let configurationsText;
|
|
75
|
+
try {
|
|
76
|
+
configurationsText = fs_1.default.readFileSync(configJsonPath, 'utf-8');
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
logger.error(`Error reading file: ${error}`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
logger.info(configurationsText);
|
|
83
|
+
let configurations;
|
|
84
|
+
try {
|
|
85
|
+
configurations = JSON.parse(configurationsText);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
logger.error(`Error parsing JSON: ${error}`);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const targetProjectName = configurations.targetProjectName
|
|
92
|
+
? configurations.targetProjectName
|
|
93
|
+
: '';
|
|
94
|
+
const targetProjectDirectory = configurations.targetProjectDirectory
|
|
95
|
+
? configurations.targetProjectDirectory
|
|
96
|
+
: '';
|
|
97
|
+
const sdks = configurations.sdks
|
|
98
|
+
? configurations.sdks
|
|
99
|
+
: [];
|
|
100
|
+
this.buildConfig(targetProjectName, targetProjectDirectory, sdks);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
logger.error(`Your configJsonPath: "${configJsonPath}" is not exist.`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
getTargetProjectName() {
|
|
107
|
+
return this.targetProjectName;
|
|
108
|
+
}
|
|
109
|
+
getTargetProjectDirectory() {
|
|
110
|
+
return this.targetProjectDirectory;
|
|
111
|
+
}
|
|
112
|
+
getProjectFiles() {
|
|
113
|
+
return this.projectFiles;
|
|
114
|
+
}
|
|
115
|
+
getSdkFiles() {
|
|
116
|
+
return this.sdkFiles;
|
|
117
|
+
}
|
|
118
|
+
getSdkFilesMap() {
|
|
119
|
+
return this.sdkFilesMap;
|
|
120
|
+
}
|
|
121
|
+
getEtsSdkPath() {
|
|
122
|
+
return this.etsSdkPath;
|
|
123
|
+
}
|
|
124
|
+
getSdksObj() {
|
|
125
|
+
return this.sdksObj;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.SceneConfig = SceneConfig;
|
package/lib/Scene.d.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { SceneConfig, Sdk } from './Config';
|
|
2
|
+
import { VisibleValue } from './core/common/VisibleValue';
|
|
3
|
+
import { ArkClass } from './core/model/ArkClass';
|
|
4
|
+
import { ArkFile } from './core/model/ArkFile';
|
|
5
|
+
import { ArkMethod } from './core/model/ArkMethod';
|
|
6
|
+
import { ArkNamespace } from './core/model/ArkNamespace';
|
|
7
|
+
import { ClassSignature, FileSignature, MethodSignature, NamespaceSignature } from './core/model/ArkSignature';
|
|
8
|
+
import { Local } from './core/base/Local';
|
|
9
|
+
import { ArkExport } from './core/model/ArkExport';
|
|
10
|
+
import { CallGraph } from './callgraph/model/CallGraph';
|
|
11
|
+
declare enum SceneBuildStage {
|
|
12
|
+
BUILD_INIT = 0,
|
|
13
|
+
CLASS_DONE = 1,
|
|
14
|
+
METHOD_DONE = 2
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The Scene class includes everything in the analyzed project.
|
|
18
|
+
* We should be able to re-generate the project's code based on this class.
|
|
19
|
+
*/
|
|
20
|
+
export declare class Scene {
|
|
21
|
+
private projectName;
|
|
22
|
+
private projectFiles;
|
|
23
|
+
private realProjectDir;
|
|
24
|
+
private moduleScenesMap;
|
|
25
|
+
private modulePath2NameMap;
|
|
26
|
+
private globalImportInfos;
|
|
27
|
+
private moduleSdkMap;
|
|
28
|
+
private projectSdkMap;
|
|
29
|
+
private visibleValue;
|
|
30
|
+
private filesMap;
|
|
31
|
+
private namespacesMap;
|
|
32
|
+
private classesMap;
|
|
33
|
+
private methodsMap;
|
|
34
|
+
private sdkArkFilesMap;
|
|
35
|
+
private sdkGlobalMap;
|
|
36
|
+
private ohPkgContentMap;
|
|
37
|
+
private ohPkgFilePath;
|
|
38
|
+
private ohPkgContent;
|
|
39
|
+
private buildStage;
|
|
40
|
+
constructor();
|
|
41
|
+
getStage(): SceneBuildStage;
|
|
42
|
+
buildSceneFromProjectDir(sceneConfig: SceneConfig): void;
|
|
43
|
+
buildBasicInfo(sceneConfig: SceneConfig): void;
|
|
44
|
+
private addDefaultConstructors;
|
|
45
|
+
private buildAllMethodBody;
|
|
46
|
+
private genArkFiles;
|
|
47
|
+
private buildSdk;
|
|
48
|
+
buildScene4HarmonyProject(): void;
|
|
49
|
+
buildModuleScene(moduleName: string, modulePath: string): void;
|
|
50
|
+
getRealProjectDir(): string;
|
|
51
|
+
getProjectName(): string;
|
|
52
|
+
getProjectFiles(): string[];
|
|
53
|
+
getSdkGlobal(globalName: string): ArkExport | null;
|
|
54
|
+
getFile(fileSignature: FileSignature): ArkFile | null;
|
|
55
|
+
getFiles(): ArkFile[];
|
|
56
|
+
getSdkArkFilesMap(): Map<string, ArkFile>;
|
|
57
|
+
getModuleSdkMap(): Map<string, Sdk[]>;
|
|
58
|
+
getProjectSdkMap(): Map<string, Sdk>;
|
|
59
|
+
getFilesMap(): Map<string, ArkFile>;
|
|
60
|
+
getNamespace(namespaceSignature: NamespaceSignature): ArkNamespace | null;
|
|
61
|
+
private getNamespacesMap;
|
|
62
|
+
getNamespaces(): ArkNamespace[];
|
|
63
|
+
getClass(classSignature: ClassSignature, refresh?: boolean): ArkClass | null;
|
|
64
|
+
private getClassesMap;
|
|
65
|
+
getClasses(refresh?: boolean): ArkClass[];
|
|
66
|
+
getMethod(methodSignature: MethodSignature, refresh?: boolean): ArkMethod | null;
|
|
67
|
+
private getMethodsMap;
|
|
68
|
+
getMethods(refresh?: boolean): ArkMethod[];
|
|
69
|
+
addToMethodsMap(method: ArkMethod): void;
|
|
70
|
+
hasMainMethod(): boolean;
|
|
71
|
+
getEntryPoints(): never[];
|
|
72
|
+
/** get values that is visible in curr scope */
|
|
73
|
+
getVisibleValue(): VisibleValue;
|
|
74
|
+
getOhPkgContent(): {
|
|
75
|
+
[k: string]: unknown;
|
|
76
|
+
};
|
|
77
|
+
getOhPkgContentMap(): Map<string, {
|
|
78
|
+
[k: string]: unknown;
|
|
79
|
+
}>;
|
|
80
|
+
getOhPkgFilePath(): string;
|
|
81
|
+
makeCallGraphCHA(entryPoints: MethodSignature[]): CallGraph;
|
|
82
|
+
makeCallGraphRTA(entryPoints: MethodSignature[]): CallGraph;
|
|
83
|
+
/**
|
|
84
|
+
* inference type for each non-default method
|
|
85
|
+
* because default and generated method was finished
|
|
86
|
+
*/
|
|
87
|
+
inferTypes(): void;
|
|
88
|
+
/**
|
|
89
|
+
* @Deprecated
|
|
90
|
+
*/
|
|
91
|
+
inferSimpleTypes(): void;
|
|
92
|
+
collectProjectImportInfos(): void;
|
|
93
|
+
getClassMap(): Map<FileSignature | NamespaceSignature, ArkClass[]>;
|
|
94
|
+
getGlobalVariableMap(): Map<FileSignature | NamespaceSignature, Local[]>;
|
|
95
|
+
getStaticInitMethods(): ArkMethod[];
|
|
96
|
+
buildClassDone(): boolean;
|
|
97
|
+
getModuleScene(moduleName: string): ModuleScene | undefined;
|
|
98
|
+
getModuleSceneMap(): Map<string, ModuleScene>;
|
|
99
|
+
}
|
|
100
|
+
export declare class ModuleScene {
|
|
101
|
+
private projectScene;
|
|
102
|
+
private moduleName;
|
|
103
|
+
private modulePath;
|
|
104
|
+
private moduleOhPkgFilePath;
|
|
105
|
+
private ohPkgContent;
|
|
106
|
+
constructor();
|
|
107
|
+
ModuleScenBuilder(moduleName: string, modulePath: string, projectScene: Scene, recursively?: boolean): void;
|
|
108
|
+
/**
|
|
109
|
+
* get oh-package.json5
|
|
110
|
+
*/
|
|
111
|
+
private getModuleOhPkgFilePath;
|
|
112
|
+
/**
|
|
113
|
+
* get nodule name
|
|
114
|
+
* @returns return module name
|
|
115
|
+
*/
|
|
116
|
+
getModuleName(): string;
|
|
117
|
+
getModulePath(): string;
|
|
118
|
+
getOhPkgFilePath(): string;
|
|
119
|
+
getOhPkgContent(): {
|
|
120
|
+
[k: string]: unknown;
|
|
121
|
+
};
|
|
122
|
+
private genArkFiles;
|
|
123
|
+
}
|
|
124
|
+
export {};
|
|
125
|
+
//# sourceMappingURL=Scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../src/Scene.ts"],"names":[],"mappings":"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"}
|