@optiprune/cli 1.2.9 → 1.2.13
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.md +117 -105
- package/dist/cli.js +1 -38
- package/dist/cli.js.map +1 -1
- package/package.json +2 -9
package/config.md
CHANGED
|
@@ -1,108 +1,120 @@
|
|
|
1
|
-
# OptiPrune Configuration
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'src/api/server.ts'
|
|
25
|
-
],
|
|
26
|
-
|
|
27
|
-
// File extensions to scan
|
|
28
|
-
extensions: ['.ts', '.tsx', '.js', '.jsx', '.mjs'],
|
|
29
|
-
|
|
30
|
-
// Glob patterns for files or directories that should be ignored
|
|
31
|
-
ignore: [
|
|
32
|
-
'**/node_modules/**',
|
|
33
|
-
'**/dist/**',
|
|
34
|
-
'**/build/**',
|
|
35
|
-
'**/coverage/**',
|
|
36
|
-
'**/*.test.ts',
|
|
37
|
-
'**/*.spec.ts',
|
|
38
|
-
'**/test/fixtures/**'
|
|
39
|
-
],
|
|
40
|
-
|
|
41
|
-
// --- Analysis Behavior ---
|
|
42
|
-
|
|
43
|
-
// Symbols considered "externally consumed" (e.g., public APIs).
|
|
44
|
-
// These will not be flagged as unused, even if no internal import exists.
|
|
45
|
-
externalContracts: [
|
|
46
|
-
'handleRequest',
|
|
47
|
-
'PluginInterface'
|
|
48
|
-
],
|
|
49
|
-
|
|
50
|
-
// Whether unused exports (functions, classes, types) should be reported
|
|
51
|
-
reportUnusedExports: true,
|
|
52
|
-
|
|
53
|
-
// Whether conventional entry points (like index.ts, main.ts)
|
|
54
|
-
// should automatically be included in the analysis.
|
|
55
|
-
includeConventionalEntries: true,
|
|
56
|
-
|
|
57
|
-
// Failure threshold for the process (exit code 1).
|
|
58
|
-
// Possible values: "high" | "medium" | "low" | "info" | "none"
|
|
59
|
-
failOn: 'high',
|
|
60
|
-
|
|
61
|
-
// --- Engine Layer (Advanced) ---
|
|
62
|
-
|
|
63
|
-
layers: {
|
|
64
|
-
// Timeout for the Z3 SMT solver in milliseconds
|
|
65
|
-
smtTimeoutMs: 5000,
|
|
66
|
-
|
|
67
|
-
// Memory limit for the WASM-based QuickJS sandbox in MB
|
|
68
|
-
isolateMemoryLimitMb: 128,
|
|
69
|
-
|
|
70
|
-
// Enables concolic execution to mathematically prove code path reachability
|
|
71
|
-
// (prevents false positives).
|
|
72
|
-
enableConcolicProof: true,
|
|
73
|
-
|
|
74
|
-
// Skips specific analysis layers (recommended for debugging only)
|
|
75
|
-
skip3: false, // Symbol Propagation
|
|
76
|
-
skip4: false // Concolic Execution
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
// --- Rule Configuration ---
|
|
80
|
-
|
|
81
|
-
// Override severity levels for specific findings.
|
|
82
|
-
// Possible values: "error" | "warning" | "off"
|
|
83
|
-
rules: {
|
|
84
|
-
'unused-dependency': 'warning',
|
|
85
|
-
'unused-dev-dependency': 'info',
|
|
86
|
-
'missing-dependency': 'error',
|
|
87
|
-
'unreachable-file': 'error',
|
|
88
|
-
'unused-export': 'warning',
|
|
89
|
-
'unused-member': 'info',
|
|
90
|
-
'constant-condition': 'off',
|
|
91
|
-
'unresolved-import': 'error'
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
// --- Output ---
|
|
95
|
-
|
|
96
|
-
// Detailed log output for debugging
|
|
97
|
-
verbose: false,
|
|
98
|
-
|
|
99
|
-
// Output results in JSON format
|
|
100
|
-
json: false
|
|
101
|
-
});
|
|
1
|
+
# OptiPrune Configuration Guide (`config.md`)
|
|
2
|
+
|
|
3
|
+
OptiPrune uses a structured configuration file to define entry points, rule behavior, ignore patterns, and core analysis engine mechanics.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
Create an `optiprune.json` or `optiprune.jsonc` file in the root directory of your project:
|
|
10
|
+
|
|
11
|
+
```jsonc
|
|
12
|
+
{
|
|
13
|
+
"$schema": "https://raw.githubusercontent.com/optiprune/core/refs/heads/main/schema.json",
|
|
14
|
+
"rootDir": "src",
|
|
15
|
+
"entry": ["src/index.ts", "src/cli.ts"],
|
|
16
|
+
"ignore": ["**/*.test.ts", "**/dist/**"],
|
|
17
|
+
"externalContracts": ["PluginAdapter", "AnalyzerPlugin"],
|
|
18
|
+
"failOn": "high",
|
|
19
|
+
"rules": {
|
|
20
|
+
"unused-variable": "warning",
|
|
21
|
+
"dead-code": "error"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
102
24
|
```
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## How OptiPrune Loads Configuration
|
|
28
|
+
When OptiPrune initializes, it checks the workspace root in the following order of precedence:
|
|
29
|
+
|
|
30
|
+
optiprune.json (Highest Priority)
|
|
31
|
+
|
|
32
|
+
optiprune.jsonc (Allows comments //, /* */, and trailing commas)
|
|
33
|
+
|
|
34
|
+
package.json (Falls back to reading an "optiprune" key)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Configuration Reference
|
|
39
|
+
**1. File & Workspace Discovery**
|
|
40
|
+
rootDir (string, default: ".")
|
|
41
|
+
|
|
42
|
+
Specifies the base directory for source files relative to the project workspace root.
|
|
43
|
+
|
|
44
|
+
entry (string[], default: [])
|
|
45
|
+
|
|
46
|
+
Defines root entry files. Any code reachable from these files (and their dependency trees) is marked as used and protected from unused-code reports.
|
|
47
|
+
|
|
48
|
+
extensions (string[], default: [".ts", ".tsx", ".js", ".jsx"])
|
|
49
|
+
|
|
50
|
+
File extensions that OptiPrune will parse and analyze.
|
|
103
51
|
|
|
104
|
-
|
|
52
|
+
ignore (string[], default: [])
|
|
53
|
+
|
|
54
|
+
Glob patterns or directory paths to skip entirely during analysis (e.g., test fixtures, output directories).
|
|
55
|
+
|
|
56
|
+
**2. Export & Contract Safeguards**
|
|
57
|
+
externalContracts (string[], default: [])
|
|
58
|
+
|
|
59
|
+
List of public API symbol or interface names. Marks these exports as globally used across all execution layers, preventing OptiPrune from flagging them as dead code when building public libraries or plugins.
|
|
60
|
+
|
|
61
|
+
reportUnusedExports (boolean, default: true)
|
|
62
|
+
|
|
63
|
+
When set to true, OptiPrune reports exported functions, types, or variables that have no internal or external references.
|
|
64
|
+
|
|
65
|
+
includeConventionalEntries (boolean, default: true)
|
|
66
|
+
|
|
67
|
+
Automatically treats framework conventions (e.g., index.ts, main.ts, App.tsx) as entry points without needing manual listing in entry.
|
|
68
|
+
|
|
69
|
+
**3. CLI & Execution Controls**
|
|
70
|
+
failOn ("high" | "medium" | "low" | "info" | "none", default: "high")
|
|
71
|
+
|
|
72
|
+
Determines the minimum issue severity level required to exit the process with a non-zero exit code in CI/CD pipelines.
|
|
73
|
+
|
|
74
|
+
verbose (boolean, default: false)
|
|
75
|
+
|
|
76
|
+
Prints step-by-step diagnostic information to stdout.
|
|
77
|
+
|
|
78
|
+
json (boolean, default: false)
|
|
79
|
+
|
|
80
|
+
Formats output directly as raw JSON for external tool ingestion.
|
|
81
|
+
|
|
82
|
+
**4. Rule Overrides (rules)**
|
|
83
|
+
Fine-tune or disable specific inspection rules:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
"rules": {
|
|
87
|
+
"rule-name": "error" | "warning" | "off"
|
|
88
|
+
}
|
|
89
|
+
```
|
|
105
90
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
91
|
+
- `"error"`: Causes finding to trigger build errors or exit failures.
|
|
92
|
+
- `"warning"`: Emits warnings without halting execution (unless configured by failOn).
|
|
93
|
+
- `"off"`: Disables rule checking entirely.
|
|
94
|
+
|
|
95
|
+
**5. Engine & Solver Tuning (layers)**
|
|
96
|
+
Configure isolated runtimes, SMT solvers, and symbolic execution passes:
|
|
97
|
+
|
|
98
|
+
| Option | Type | Default | Purpose |
|
|
99
|
+
| :----- | :--- | :------ | :------ |
|
|
100
|
+
| smtTimeoutMs | number | 10000 | SMT solver execution cap (in milliseconds) per proof path.|
|
|
101
|
+
| isolateMemoryLimitMb | number | 128 | Memory ceiling (in MB) allocated to V8 worker isolates. |
|
|
102
|
+
| enableConcolicProof | boolean | false | Enables concolic analysis to prove dead execution paths. |
|
|
103
|
+
| skip3 | boolean | false | Bypasses Analysis Layer 3. |
|
|
104
|
+
| skip4 | boolean | false | Bypasses Analysis Layer 4. |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
## Alternative: package.json Configuration
|
|
108
|
+
If you do not want an additional configuration file in your root folder, add an "optiprune" field inside package.json:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"name": "my-library",
|
|
113
|
+
"version": "1.0.0",
|
|
114
|
+
"optiprune": {
|
|
115
|
+
"entry": ["src/index.ts"],
|
|
116
|
+
"externalContracts": ["MyPublicApi"],
|
|
117
|
+
"failOn": "medium"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
package/dist/cli.js
CHANGED
|
@@ -27,43 +27,6 @@ function getCoreVersion(rootDir) {
|
|
|
27
27
|
catch (e) { }
|
|
28
28
|
return "2.1.5";
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Custom Terminal Formatter that includes the new dependency findings.
|
|
32
|
-
*/
|
|
33
|
-
function formatTerminalExtended(report) {
|
|
34
|
-
const output = formatTerminal(report);
|
|
35
|
-
const unusedDevDeps = report.findings.filter((f) => f.rule === "unused-dev-dependency");
|
|
36
|
-
const missingDeps = report.findings.filter((f) => f.rule === "missing-dependency");
|
|
37
|
-
if (unusedDevDeps.length === 0 && missingDeps.length === 0) {
|
|
38
|
-
return output;
|
|
39
|
-
}
|
|
40
|
-
const lines = [];
|
|
41
|
-
lines.push("");
|
|
42
|
-
lines.push(bold("── Dependency Audit ─────────────────────────────────────────────"));
|
|
43
|
-
if (unusedDevDeps.length > 0) {
|
|
44
|
-
lines.push("");
|
|
45
|
-
lines.push(bold(` Unused devDependencies (${unusedDevDeps.length})`));
|
|
46
|
-
lines.push(dim(" These packages are listed in devDependencies but never imported in source code."));
|
|
47
|
-
lines.push("");
|
|
48
|
-
for (const f of unusedDevDeps) {
|
|
49
|
-
const evidence = f.evidence;
|
|
50
|
-
const pkg = evidence?.package || "unknown package";
|
|
51
|
-
lines.push(` ${yellow("▲")} ${bold(pkg)}${dim(" (package.json)")}`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (missingDeps.length > 0) {
|
|
55
|
-
lines.push("");
|
|
56
|
-
lines.push(bold(` Used in code but missing from package.json (${missingDeps.length})`));
|
|
57
|
-
lines.push(dim(" These packages are imported in source files but not declared as any dependency."));
|
|
58
|
-
lines.push("");
|
|
59
|
-
for (const f of missingDeps) {
|
|
60
|
-
const evidence = f.evidence;
|
|
61
|
-
const pkg = evidence?.package || "unknown package";
|
|
62
|
-
lines.push(` ${red("✖")} ${bold(pkg)}`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return output + "\n" + lines.join("\n");
|
|
66
|
-
}
|
|
67
30
|
program
|
|
68
31
|
.name("optiprune")
|
|
69
32
|
.description("Finds dead code in TypeScript/JavaScript projects.")
|
|
@@ -115,7 +78,7 @@ program
|
|
|
115
78
|
console.log(JSON.stringify(report, (k, v) => typeof v === 'bigint' ? v.toString() : v, 2));
|
|
116
79
|
}
|
|
117
80
|
else {
|
|
118
|
-
console.log(
|
|
81
|
+
console.log(formatTerminal(report));
|
|
119
82
|
}
|
|
120
83
|
if (shouldFail(report, options.failOn))
|
|
121
84
|
process.exit(1);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,OAAO,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,2EAA2E;AAC3E,2DAA2D;AAC3D,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxE,0BAA0B;AAC1B,MAAM,IAAI,GAAI,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;AAClD,MAAM,MAAM,GAAE,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AACnD,MAAM,GAAG,GAAK,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AACnD,MAAM,GAAG,GAAK,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;AAElD,yCAAyC;AACzC,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,CAAC,CAAC;QAClF,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,OAAO,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,2EAA2E;AAC3E,2DAA2D;AAC3D,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxE,0BAA0B;AAC1B,MAAM,IAAI,GAAI,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;AAClD,MAAM,MAAM,GAAE,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AACnD,MAAM,GAAG,GAAK,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AACnD,MAAM,GAAG,GAAK,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;AAElD,yCAAyC;AACzC,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,CAAC,CAAC;QAClF,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,oDAAoD,CAAC;KACjE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAE1C,OAAO;KACJ,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACvC,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9E,MAAM,CAAC,2BAA2B,EAAE,2CAA2C,EAAE,EAAE,CAAC;KACpF,MAAM,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KAClG,MAAM,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,EAAE,CAAC;KAClE,MAAM,CAAC,4BAA4B,EAAE,8BAA8B,CAAC;KACpE,MAAM,CAAC,2BAA2B,EAAE,+DAA+D,CAAC;KACpG,MAAM,CAAC,wBAAwB,EAAE,kEAAkE,EAAE,MAAM,CAAC;KAC5G,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC1C,MAAM,CAAC,SAAS,EAAE,gCAAgC,CAAC;KACnD,MAAM,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC1D,MAAM,CAAC,UAAU,EAAE,0CAA0C,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;KACvE,MAAM,CAAC,OAAO,EAAE,0EAA0E,CAAC;KAC3F,MAAM,CAAC,qBAAqB,EAAE,0DAA0D,CAAC;KACzF,MAAM,CAAC,mBAAmB,EAAE,sDAAsD,CAAC;KACnF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,OAAO,GAAW,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAEzD,gFAAgF;QAChF,iFAAiF;QACjF,MAAM,eAAe,GAAG;YACtB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;YAChE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,0BAA0B,EAAE,OAAO,CAAC,mBAAmB;YACvD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK;YACnC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;SACC,CAAC;QAE5B,MAAM,MAAM,GAAmB,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAa,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,2BAA2B,CAAC;KACpC,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,2BAA2B,CAAC;KACpC,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optiprune/cli",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.13",
|
|
4
4
|
"description": "CLI for resilient static dead-code analyzer for TypeScript and JavaScript workspaces.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -68,12 +68,8 @@
|
|
|
68
68
|
".": "./dist/cli.js",
|
|
69
69
|
"./package.json": "./package.json"
|
|
70
70
|
},
|
|
71
|
-
"exports": {
|
|
72
|
-
".": "./dist/cli.js",
|
|
73
|
-
"./package.json": "./package.json"
|
|
74
|
-
},
|
|
75
71
|
"dependencies": {
|
|
76
|
-
"@optiprune/core": "^1.
|
|
72
|
+
"@optiprune/core": "^1.11.6",
|
|
77
73
|
"commander": "^15.0.0",
|
|
78
74
|
"pathe": "2.0.3"
|
|
79
75
|
},
|
|
@@ -85,9 +81,6 @@
|
|
|
85
81
|
"build": "tsc -p tsconfig.json",
|
|
86
82
|
"prepublishOnly": "npm run build"
|
|
87
83
|
},
|
|
88
|
-
"engines": {
|
|
89
|
-
"node": "^22.18.0 || >=24.11.0"
|
|
90
|
-
},
|
|
91
84
|
"license": "MIT",
|
|
92
85
|
"author": "DreamLongYT"
|
|
93
86
|
}
|