@optiprune/cli 1.1.6 → 1.2.1
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/dist/cli.js +45 -4
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -6,7 +6,7 @@ const program = new Command();
|
|
|
6
6
|
// Using @ts-ignore for core imports as CI environments sometimes struggle
|
|
7
7
|
// with subpath exports resolution in strict NodeNext mode.
|
|
8
8
|
// @ts-ignore
|
|
9
|
-
import { analyze, shouldFail } from "@optiprune/core";
|
|
9
|
+
import { analyze, shouldFail, exportCache, importCache } from "@optiprune/core";
|
|
10
10
|
// @ts-ignore
|
|
11
11
|
import { formatTerminal, formatSarif } from "@optiprune/core/reporters";
|
|
12
12
|
/** ANSI colour helpers */
|
|
@@ -67,6 +67,10 @@ function formatTerminalExtended(report) {
|
|
|
67
67
|
program
|
|
68
68
|
.name("optiprune")
|
|
69
69
|
.description("Finds dead code in TypeScript/JavaScript projects.")
|
|
70
|
+
.version(getCoreVersion(process.cwd()));
|
|
71
|
+
program
|
|
72
|
+
.command("analyze", { isDefault: true })
|
|
73
|
+
.description("Perform full analysis of the project")
|
|
70
74
|
.option("-r, --rootDir <path>", "Root directory of the project", process.cwd())
|
|
71
75
|
.option("-e, --entry <patterns...>", "Entry point patterns (glob or file paths)", [])
|
|
72
76
|
.option("-x, --extensions <exts...>", "File extensions to analyze", [".ts", ".tsx", ".js", ".jsx"])
|
|
@@ -79,10 +83,14 @@ program
|
|
|
79
83
|
.option("--skip-3", "Skip Layer 3 (SMT Constraint Solver)")
|
|
80
84
|
.option("--skip-4", "Skip Layer 4 (Concolic Execution Proofs)")
|
|
81
85
|
.option("-v, --verbose", "Show verbose output and internal graph state")
|
|
86
|
+
.option("--fix", "Automatically remove unused exports, dependencies, and unreachable files")
|
|
87
|
+
.option("--cache-from <path>", "Path to a JSON file to import cache from before analysis")
|
|
88
|
+
.option("--cache-to <path>", "Path to export the resulting cache to after analysis")
|
|
82
89
|
.action(async (options) => {
|
|
83
90
|
try {
|
|
84
91
|
const rootDir = options.rootDir ?? process.cwd();
|
|
85
|
-
|
|
92
|
+
// We cast to any here because the locally resolved @optiprune/core/types might
|
|
93
|
+
// be out of sync with the actual HeadLess API implementation during development.
|
|
86
94
|
const analyzerOptions = {
|
|
87
95
|
rootDir: rootDir,
|
|
88
96
|
entry: options.entry ?? [],
|
|
@@ -95,6 +103,9 @@ program
|
|
|
95
103
|
skip3: options.skip3,
|
|
96
104
|
skip4: options.skip4,
|
|
97
105
|
verbose: options.verbose,
|
|
106
|
+
fix: options.fix,
|
|
107
|
+
cacheFrom: options.cacheFrom,
|
|
108
|
+
cacheTo: options.cacheTo,
|
|
98
109
|
};
|
|
99
110
|
const report = await analyze(analyzerOptions);
|
|
100
111
|
// --- DEPENDENCY AUDIT INJECTION ---
|
|
@@ -154,7 +165,7 @@ program
|
|
|
154
165
|
}
|
|
155
166
|
}
|
|
156
167
|
}
|
|
157
|
-
const skipList = new Set(['
|
|
168
|
+
const skipList = new Set(['@optiprune/cli', '@optiprune/core', 'typescript', '@types/node', 'tsx']);
|
|
158
169
|
for (const devDepName of Object.keys(devDeps)) {
|
|
159
170
|
if (!usedExternals.has(devDepName) && !skipList.has(devDepName)) {
|
|
160
171
|
const alreadyReported = report.findings.some((f) => f.rule === "unused-dev-dependency" && f.evidence?.package === devDepName);
|
|
@@ -188,7 +199,37 @@ program
|
|
|
188
199
|
process.exit(1);
|
|
189
200
|
}
|
|
190
201
|
catch (error) {
|
|
191
|
-
console.error("An unexpected error occurred:", error);
|
|
202
|
+
console.error("An unexpected error occurred during analysis:", error);
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
program
|
|
207
|
+
.command("export-cache <targetPath>")
|
|
208
|
+
.description("Export the current analysis cache to a JSON file")
|
|
209
|
+
.option("-r, --rootDir <path>", "Root directory of the project", process.cwd())
|
|
210
|
+
.action(async (targetPath, options) => {
|
|
211
|
+
try {
|
|
212
|
+
const rootDir = options.rootDir ?? process.cwd();
|
|
213
|
+
await exportCache(rootDir, targetPath);
|
|
214
|
+
console.log(`${yellow("✔")} Cache exported to ${bold(targetPath)}`);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
console.error("Failed to export cache:", error);
|
|
218
|
+
process.exit(1);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
program
|
|
222
|
+
.command("import-cache <sourcePath>")
|
|
223
|
+
.description("Import an external cache JSON file into the local directory")
|
|
224
|
+
.option("-r, --rootDir <path>", "Root directory of the project", process.cwd())
|
|
225
|
+
.action(async (sourcePath, options) => {
|
|
226
|
+
try {
|
|
227
|
+
const rootDir = options.rootDir ?? process.cwd();
|
|
228
|
+
await importCache(rootDir, sourcePath);
|
|
229
|
+
console.log(`${yellow("✔")} Cache imported from ${bold(sourcePath)}`);
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
console.error("Failed to import cache:", error);
|
|
192
233
|
process.exit(1);
|
|
193
234
|
}
|
|
194
235
|
});
|
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,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|