arkanalyzer 1.0.90 → 1.0.91
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/config/arkanalyzer.json +0 -1
- package/lib/Config.d.ts +3 -0
- package/lib/Config.d.ts.map +1 -1
- package/lib/Scene.d.ts +99 -0
- package/lib/Scene.d.ts.map +1 -1
- package/lib/Scene.js +229 -13
- package/lib/callgraph/common/Statistics.js +2 -2
- package/lib/callgraph/model/CallGraph.d.ts +2 -2
- package/lib/callgraph/model/CallGraph.d.ts.map +1 -1
- package/lib/callgraph/model/CallGraph.js +6 -6
- package/lib/callgraph/model/CallSite.d.ts +1 -1
- package/lib/callgraph/model/CallSite.d.ts.map +1 -1
- package/lib/callgraph/model/CallSite.js +2 -2
- package/lib/core/base/Ref.d.ts.map +1 -1
- package/lib/core/base/Ref.js +6 -1
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +5 -0
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +2 -1
- package/lib/core/common/Const.d.ts +3 -0
- package/lib/core/common/Const.d.ts.map +1 -1
- package/lib/core/common/Const.js +5 -1
- package/lib/core/common/DummyMainCreater.d.ts +25 -12
- package/lib/core/common/DummyMainCreater.d.ts.map +1 -1
- package/lib/core/common/DummyMainCreater.js +90 -76
- package/lib/core/common/EtsConst.d.ts +2 -0
- package/lib/core/common/EtsConst.d.ts.map +1 -1
- package/lib/core/common/EtsConst.js +133 -125
- package/lib/core/common/SdkUtils.d.ts +1 -0
- package/lib/core/common/SdkUtils.d.ts.map +1 -1
- package/lib/core/common/SdkUtils.js +29 -0
- package/lib/core/graph/BaseExplicitGraph.d.ts +2 -0
- package/lib/core/graph/BaseExplicitGraph.d.ts.map +1 -1
- package/lib/core/graph/BaseExplicitGraph.js +12 -1
- package/lib/core/graph/BaseImplicitGraph.d.ts +16 -0
- package/lib/core/graph/BaseImplicitGraph.d.ts.map +1 -1
- package/lib/core/graph/BaseImplicitGraph.js +21 -0
- package/lib/core/graph/FileDepGraph.d.ts +75 -0
- package/lib/core/graph/FileDepGraph.d.ts.map +1 -0
- package/lib/core/graph/FileDepGraph.js +170 -0
- package/lib/core/graph/GraphTraits.d.ts +2 -0
- package/lib/core/graph/GraphTraits.d.ts.map +1 -1
- package/lib/core/graph/GraphTraits.js +1 -1
- package/lib/core/graph/ModuleDepGraph.d.ts +175 -0
- package/lib/core/graph/ModuleDepGraph.d.ts.map +1 -0
- package/lib/core/graph/ModuleDepGraph.js +421 -0
- package/lib/core/graph/Scc.d.ts +1 -3
- package/lib/core/graph/Scc.d.ts.map +1 -1
- package/lib/core/graph/Scc.js +6 -19
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/CfgBuilder.js +7 -1
- package/lib/core/graph/builder/TrapBuilder.d.ts +1 -0
- package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -1
- package/lib/core/graph/builder/TrapBuilder.js +27 -7
- package/lib/core/model/ArkBody.d.ts +1 -0
- package/lib/core/model/ArkBody.d.ts.map +1 -1
- package/lib/core/model/ArkBody.js +7 -0
- package/lib/core/model/ArkClass.d.ts +1 -0
- package/lib/core/model/ArkClass.d.ts.map +1 -1
- package/lib/core/model/ArkClass.js +37 -0
- package/lib/core/model/ArkExport.d.ts +1 -0
- package/lib/core/model/ArkExport.d.ts.map +1 -1
- package/lib/core/model/ArkExport.js +6 -0
- package/lib/core/model/ArkField.d.ts +1 -0
- package/lib/core/model/ArkField.d.ts.map +1 -1
- package/lib/core/model/ArkField.js +5 -0
- package/lib/core/model/ArkFile.d.ts +5 -0
- package/lib/core/model/ArkFile.d.ts.map +1 -1
- package/lib/core/model/ArkFile.js +30 -0
- package/lib/core/model/ArkImport.d.ts +1 -0
- package/lib/core/model/ArkImport.d.ts.map +1 -1
- package/lib/core/model/ArkImport.js +5 -0
- package/lib/core/model/ArkMethod.d.ts +8 -0
- package/lib/core/model/ArkMethod.d.ts.map +1 -1
- package/lib/core/model/ArkMethod.js +22 -0
- package/lib/core/model/ArkModule.d.ts +136 -0
- package/lib/core/model/ArkModule.d.ts.map +1 -0
- package/lib/core/model/ArkModule.js +250 -0
- package/lib/core/model/ArkNamespace.d.ts +1 -0
- package/lib/core/model/ArkNamespace.d.ts.map +1 -1
- package/lib/core/model/ArkNamespace.js +18 -0
- package/lib/core/model/builder/ArkFileBuilder.d.ts +19 -0
- package/lib/core/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkFileBuilder.js +155 -51
- package/lib/frontend/FrontendBuilder.d.ts +116 -0
- package/lib/frontend/FrontendBuilder.d.ts.map +1 -1
- package/lib/frontend/FrontendBuilder.js +256 -0
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts +11 -0
- package/lib/frontend/arktsFrontend/ArktsFrontend.d.ts.map +1 -1
- package/lib/frontend/arktsFrontend/ArktsFrontend.js +15 -0
- package/lib/frontend/common/MemoryMonitor.d.ts +62 -0
- package/lib/frontend/common/MemoryMonitor.d.ts.map +1 -0
- package/lib/frontend/common/MemoryMonitor.js +108 -0
- package/lib/frontend/common/ModuleAnalysisConfig.d.ts +92 -0
- package/lib/frontend/common/ModuleAnalysisConfig.d.ts.map +1 -0
- package/lib/frontend/common/ModuleAnalysisConfig.js +144 -0
- package/lib/frontend/common/ModuleBuilder.d.ts +497 -0
- package/lib/frontend/common/ModuleBuilder.d.ts.map +1 -0
- package/lib/frontend/common/ModuleBuilder.js +1458 -0
- package/lib/frontend/common/ModuleCache.d.ts +119 -0
- package/lib/frontend/common/ModuleCache.d.ts.map +1 -0
- package/lib/frontend/common/ModuleCache.js +197 -0
- package/lib/frontend/common/ModuleDepth.d.ts +28 -0
- package/lib/frontend/common/ModuleDepth.d.ts.map +1 -0
- package/lib/frontend/common/ModuleDepth.js +45 -0
- package/lib/frontend/cppFrontend/CppFrontend.d.ts +5 -0
- package/lib/frontend/cppFrontend/CppFrontend.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/CppFrontend.js +11 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts +8 -0
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.d.ts.map +1 -1
- package/lib/frontend/cppFrontend/model/builder/ArkFileBuilder.js +105 -2
- package/lib/index.d.ts +9 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +22 -3
- package/lib/utils/Canonicalizer.d.ts +105 -0
- package/lib/utils/Canonicalizer.d.ts.map +1 -0
- package/lib/utils/Canonicalizer.js +520 -0
- package/lib/utils/ModuleUtils.js +4 -2
- package/lib/utils/entryMethodUtils.d.ts +23 -0
- package/lib/utils/entryMethodUtils.d.ts.map +1 -1
- package/lib/utils/entryMethodUtils.js +53 -1
- package/package.json +1 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { SparseBitVector } from '../../utils/SparseBitVector';
|
|
2
|
+
import { ModuleType } from '../../core/model/ArkModule';
|
|
3
|
+
import { ModuleDepthLevel } from './ModuleDepth';
|
|
4
|
+
import type { ModuleID } from '../../core/model/ArkModule';
|
|
5
|
+
import type { ArkModule } from '../../core/model/ArkModule';
|
|
6
|
+
import type { Scene } from '../../Scene';
|
|
7
|
+
/**
|
|
8
|
+
* Callback invoked for each analyzed {@link ArkModule} within a {@link Scene}.
|
|
9
|
+
*/
|
|
10
|
+
export type ModuleAnalysisCallback = (module: ArkModule, scene: Scene) => void;
|
|
11
|
+
/**
|
|
12
|
+
* ModuleAnalysisConfig configures target module selection and load levels
|
|
13
|
+
* for module-level analysis.
|
|
14
|
+
*
|
|
15
|
+
* Target module selection uses three dimensions combined as:
|
|
16
|
+
* ```
|
|
17
|
+
* module is target ⟺ !excludedModuleIds.has(id)
|
|
18
|
+
* && (includedTypes.has(type) || targetModuleIds.has(id))
|
|
19
|
+
* ```
|
|
20
|
+
* Priority: exclude > type filter / ID include (union).
|
|
21
|
+
*
|
|
22
|
+
* All three dimensions use {@link SparseBitVector} for efficient O(1) membership tests.
|
|
23
|
+
* Bit indices are {@link ModuleID} (for ID include/exclude) or {@link ModuleType} enum values
|
|
24
|
+
* (for type filter).
|
|
25
|
+
*
|
|
26
|
+
* Load levels ({@link ModuleDepthLevel}) control how much data is built for ArkFile objects:
|
|
27
|
+
* - {@link loadLevel} applies to target modules (default {@link ModuleDepthLevel.BODIES}).
|
|
28
|
+
* - {@link dependencyLoadLevel} applies to dependency modules — modules in the closure but
|
|
29
|
+
* not targets (default {@link ModuleDepthLevel.SIGNATURES}).
|
|
30
|
+
*
|
|
31
|
+
* @category core/model
|
|
32
|
+
*/
|
|
33
|
+
export declare class ModuleAnalysisConfig {
|
|
34
|
+
/** Type filter: bit index = ModuleType enum value (0=PROJECT, 1=SDK, 2=OH_MODULES). */
|
|
35
|
+
private includedTypes;
|
|
36
|
+
/** Explicit include IDs: bit index = ModuleID (additive to type filter). */
|
|
37
|
+
private targetModuleIds;
|
|
38
|
+
/** Explicit exclude IDs: bit index = ModuleID (highest priority, overrides everything). */
|
|
39
|
+
private excludedModuleIds;
|
|
40
|
+
/** Load level for target modules. Default BODIES. */
|
|
41
|
+
private loadLevel;
|
|
42
|
+
/** Load level for dependency modules (in closure but not targets). Default SIGNATURES. */
|
|
43
|
+
private dependencyLoadLevel;
|
|
44
|
+
constructor();
|
|
45
|
+
/**
|
|
46
|
+
* Set whether all modules of the given type are included as targets.
|
|
47
|
+
* Returns this config to allow chaining.
|
|
48
|
+
*/
|
|
49
|
+
setIncludeType(type: ModuleType, include: boolean): ModuleAnalysisConfig;
|
|
50
|
+
/** Check whether modules of the given type are included by the type filter. */
|
|
51
|
+
isTypeIncluded(type: ModuleType): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Replace the current explicit include ID set with the given IDs.
|
|
54
|
+
* Returns this config to allow chaining.
|
|
55
|
+
*/
|
|
56
|
+
setTargetModuleIds(ids: ModuleID[]): ModuleAnalysisConfig;
|
|
57
|
+
/**
|
|
58
|
+
* Add a single module ID to the explicit include set.
|
|
59
|
+
* Returns this config to allow chaining.
|
|
60
|
+
*/
|
|
61
|
+
addTargetModuleId(id: ModuleID): ModuleAnalysisConfig;
|
|
62
|
+
/** Returns the explicit include ID set as a {@link SparseBitVector} (read-only, do not modify). */
|
|
63
|
+
getTargetModuleIds(): SparseBitVector;
|
|
64
|
+
/**
|
|
65
|
+
* Replace the current explicit exclude ID set with the given IDs.
|
|
66
|
+
* Returns this config to allow chaining.
|
|
67
|
+
*/
|
|
68
|
+
setExcludedModuleIds(ids: ModuleID[]): ModuleAnalysisConfig;
|
|
69
|
+
/**
|
|
70
|
+
* Add a single module ID to the explicit exclude set.
|
|
71
|
+
* Excluded modules are never targets, regardless of type filter or explicit include.
|
|
72
|
+
* Returns this config to allow chaining.
|
|
73
|
+
*/
|
|
74
|
+
excludeModuleId(id: ModuleID): ModuleAnalysisConfig;
|
|
75
|
+
/** Returns the explicit exclude ID set as a {@link SparseBitVector} (read-only, do not modify). */
|
|
76
|
+
getExcludedModuleIds(): SparseBitVector;
|
|
77
|
+
/**
|
|
78
|
+
* Set the {@link ModuleDepthLevel} for target modules.
|
|
79
|
+
* Returns this config to allow chaining.
|
|
80
|
+
*/
|
|
81
|
+
setLoadLevel(level: ModuleDepthLevel): ModuleAnalysisConfig;
|
|
82
|
+
/** Get the {@link ModuleDepthLevel} for target modules. Default {@link ModuleDepthLevel.BODIES}. */
|
|
83
|
+
getLoadLevel(): ModuleDepthLevel;
|
|
84
|
+
/**
|
|
85
|
+
* Set the {@link ModuleDepthLevel} for dependency modules (in closure but not targets).
|
|
86
|
+
* Returns this config to allow chaining.
|
|
87
|
+
*/
|
|
88
|
+
setDependencyLoadLevel(level: ModuleDepthLevel): ModuleAnalysisConfig;
|
|
89
|
+
/** Get the {@link ModuleDepthLevel} for dependency modules. Default {@link ModuleDepthLevel.SIGNATURES}. */
|
|
90
|
+
getDependencyLoadLevel(): ModuleDepthLevel;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=ModuleAnalysisConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleAnalysisConfig.d.ts","sourceRoot":"","sources":["../../../src/frontend/common/ModuleAnalysisConfig.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,oBAAoB;IAC7B,uFAAuF;IACvF,OAAO,CAAC,aAAa,CAA0C;IAC/D,4EAA4E;IAC5E,OAAO,CAAC,eAAe,CAA0C;IACjE,2FAA2F;IAC3F,OAAO,CAAC,iBAAiB,CAA0C;IACnE,qDAAqD;IACrD,OAAO,CAAC,SAAS,CAA6C;IAC9D,0FAA0F;IAC1F,OAAO,CAAC,mBAAmB,CAAiD;;IAM5E;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,oBAAoB;IAS/E,+EAA+E;IACxE,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAMhD;;;OAGG;IACI,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,oBAAoB;IAMhE;;;OAGG;IACI,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,oBAAoB;IAK5D,mGAAmG;IAC5F,kBAAkB,IAAI,eAAe;IAM5C;;;OAGG;IACI,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,oBAAoB;IAMlE;;;;OAIG;IACI,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,oBAAoB;IAK1D,mGAAmG;IAC5F,oBAAoB,IAAI,eAAe;IAM9C;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,oBAAoB;IAKlE,oGAAoG;IAC7F,YAAY,IAAI,gBAAgB;IAIvC;;;OAGG;IACI,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,oBAAoB;IAK5E,4GAA4G;IACrG,sBAAsB,IAAI,gBAAgB;CAGpD"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2026 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.ModuleAnalysisConfig = void 0;
|
|
18
|
+
const SparseBitVector_1 = require("../../utils/SparseBitVector");
|
|
19
|
+
const ModuleDepth_1 = require("./ModuleDepth");
|
|
20
|
+
/**
|
|
21
|
+
* ModuleAnalysisConfig configures target module selection and load levels
|
|
22
|
+
* for module-level analysis.
|
|
23
|
+
*
|
|
24
|
+
* Target module selection uses three dimensions combined as:
|
|
25
|
+
* ```
|
|
26
|
+
* module is target ⟺ !excludedModuleIds.has(id)
|
|
27
|
+
* && (includedTypes.has(type) || targetModuleIds.has(id))
|
|
28
|
+
* ```
|
|
29
|
+
* Priority: exclude > type filter / ID include (union).
|
|
30
|
+
*
|
|
31
|
+
* All three dimensions use {@link SparseBitVector} for efficient O(1) membership tests.
|
|
32
|
+
* Bit indices are {@link ModuleID} (for ID include/exclude) or {@link ModuleType} enum values
|
|
33
|
+
* (for type filter).
|
|
34
|
+
*
|
|
35
|
+
* Load levels ({@link ModuleDepthLevel}) control how much data is built for ArkFile objects:
|
|
36
|
+
* - {@link loadLevel} applies to target modules (default {@link ModuleDepthLevel.BODIES}).
|
|
37
|
+
* - {@link dependencyLoadLevel} applies to dependency modules — modules in the closure but
|
|
38
|
+
* not targets (default {@link ModuleDepthLevel.SIGNATURES}).
|
|
39
|
+
*
|
|
40
|
+
* @category core/model
|
|
41
|
+
*/
|
|
42
|
+
class ModuleAnalysisConfig {
|
|
43
|
+
constructor() {
|
|
44
|
+
/** Type filter: bit index = ModuleType enum value (0=PROJECT, 1=SDK, 2=OH_MODULES). */
|
|
45
|
+
this.includedTypes = new SparseBitVector_1.SparseBitVector();
|
|
46
|
+
/** Explicit include IDs: bit index = ModuleID (additive to type filter). */
|
|
47
|
+
this.targetModuleIds = new SparseBitVector_1.SparseBitVector();
|
|
48
|
+
/** Explicit exclude IDs: bit index = ModuleID (highest priority, overrides everything). */
|
|
49
|
+
this.excludedModuleIds = new SparseBitVector_1.SparseBitVector();
|
|
50
|
+
/** Load level for target modules. Default BODIES. */
|
|
51
|
+
this.loadLevel = ModuleDepth_1.ModuleDepthLevel.BODIES;
|
|
52
|
+
/** Load level for dependency modules (in closure but not targets). Default SIGNATURES. */
|
|
53
|
+
this.dependencyLoadLevel = ModuleDepth_1.ModuleDepthLevel.SIGNATURES;
|
|
54
|
+
}
|
|
55
|
+
// --- Type filter ---
|
|
56
|
+
/**
|
|
57
|
+
* Set whether all modules of the given type are included as targets.
|
|
58
|
+
* Returns this config to allow chaining.
|
|
59
|
+
*/
|
|
60
|
+
setIncludeType(type, include) {
|
|
61
|
+
if (include) {
|
|
62
|
+
this.includedTypes.set(type);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this.includedTypes.reset(type);
|
|
66
|
+
}
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/** Check whether modules of the given type are included by the type filter. */
|
|
70
|
+
isTypeIncluded(type) {
|
|
71
|
+
return this.includedTypes.test(type);
|
|
72
|
+
}
|
|
73
|
+
// --- ID include (additive to type filter) ---
|
|
74
|
+
/**
|
|
75
|
+
* Replace the current explicit include ID set with the given IDs.
|
|
76
|
+
* Returns this config to allow chaining.
|
|
77
|
+
*/
|
|
78
|
+
setTargetModuleIds(ids) {
|
|
79
|
+
this.targetModuleIds.clear();
|
|
80
|
+
ids.forEach(id => this.targetModuleIds.set(id));
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Add a single module ID to the explicit include set.
|
|
85
|
+
* Returns this config to allow chaining.
|
|
86
|
+
*/
|
|
87
|
+
addTargetModuleId(id) {
|
|
88
|
+
this.targetModuleIds.set(id);
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
/** Returns the explicit include ID set as a {@link SparseBitVector} (read-only, do not modify). */
|
|
92
|
+
getTargetModuleIds() {
|
|
93
|
+
return this.targetModuleIds;
|
|
94
|
+
}
|
|
95
|
+
// --- ID exclude (highest priority) ---
|
|
96
|
+
/**
|
|
97
|
+
* Replace the current explicit exclude ID set with the given IDs.
|
|
98
|
+
* Returns this config to allow chaining.
|
|
99
|
+
*/
|
|
100
|
+
setExcludedModuleIds(ids) {
|
|
101
|
+
this.excludedModuleIds.clear();
|
|
102
|
+
ids.forEach(id => this.excludedModuleIds.set(id));
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Add a single module ID to the explicit exclude set.
|
|
107
|
+
* Excluded modules are never targets, regardless of type filter or explicit include.
|
|
108
|
+
* Returns this config to allow chaining.
|
|
109
|
+
*/
|
|
110
|
+
excludeModuleId(id) {
|
|
111
|
+
this.excludedModuleIds.set(id);
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
/** Returns the explicit exclude ID set as a {@link SparseBitVector} (read-only, do not modify). */
|
|
115
|
+
getExcludedModuleIds() {
|
|
116
|
+
return this.excludedModuleIds;
|
|
117
|
+
}
|
|
118
|
+
// --- Load levels ---
|
|
119
|
+
/**
|
|
120
|
+
* Set the {@link ModuleDepthLevel} for target modules.
|
|
121
|
+
* Returns this config to allow chaining.
|
|
122
|
+
*/
|
|
123
|
+
setLoadLevel(level) {
|
|
124
|
+
this.loadLevel = level;
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
/** Get the {@link ModuleDepthLevel} for target modules. Default {@link ModuleDepthLevel.BODIES}. */
|
|
128
|
+
getLoadLevel() {
|
|
129
|
+
return this.loadLevel;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Set the {@link ModuleDepthLevel} for dependency modules (in closure but not targets).
|
|
133
|
+
* Returns this config to allow chaining.
|
|
134
|
+
*/
|
|
135
|
+
setDependencyLoadLevel(level) {
|
|
136
|
+
this.dependencyLoadLevel = level;
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
/** Get the {@link ModuleDepthLevel} for dependency modules. Default {@link ModuleDepthLevel.SIGNATURES}. */
|
|
140
|
+
getDependencyLoadLevel() {
|
|
141
|
+
return this.dependencyLoadLevel;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.ModuleAnalysisConfig = ModuleAnalysisConfig;
|