depguard-cli 1.3.0 → 1.4.0
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/README.md +116 -2
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +14 -6
- package/dist/audit.js.map +1 -1
- package/dist/cli.js +75 -2
- package/dist/cli.js.map +1 -1
- package/dist/guard.d.ts +29 -0
- package/dist/guard.d.ts.map +1 -0
- package/dist/guard.js +233 -0
- package/dist/guard.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/license.d.ts.map +1 -1
- package/dist/license.js +54 -1
- package/dist/license.js.map +1 -1
- package/dist/mcp.js +65 -1
- package/dist/mcp.js.map +1 -1
- package/dist/native-alternatives.js +1 -1
- package/dist/native-alternatives.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +7 -2
- package/dist/registry.js.map +1 -1
- package/dist/scorer.d.ts.map +1 -1
- package/dist/scorer.js +55 -14
- package/dist/scorer.js.map +1 -1
- package/dist/script-analysis.d.ts +5 -0
- package/dist/script-analysis.d.ts.map +1 -1
- package/dist/script-analysis.js +19 -6
- package/dist/script-analysis.js.map +1 -1
- package/dist/semver.d.ts +3 -1
- package/dist/semver.d.ts.map +1 -1
- package/dist/semver.js +24 -5
- package/dist/semver.js.map +1 -1
- package/dist/sweep.d.ts +53 -0
- package/dist/sweep.d.ts.map +1 -0
- package/dist/sweep.js +639 -0
- package/dist/sweep.js.map +1 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +31 -0
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-analysis.js","sourceRoot":"","sources":["../src/script-analysis.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"script-analysis.js","sourceRoot":"","sources":["../src/script-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,gEAAgE;AAChE,kEAAkE;AAClE,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAEvB,MAAM,mBAAmB,GAAkB;IACzC,uBAAuB;IACvB;QACE,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,KAAK,EAAE,sCAAsC;QAC7C,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,gCAAgC;KAC9C;IACD,0CAA0C;IAC1C;QACE,KAAK,EAAE,kCAAkC;QACzC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,wEAAwE;KACtF;IACD;QACE,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,2DAA2D;KACzE;IACD,iDAAiD;IACjD;QACE,KAAK,EAAE,IAAI,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;QAC1C,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,6DAA6D;KAC3E;IACD;QACE,KAAK,EAAE,kFAAkF;QACzF,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,0CAA0C;KACxD;IACD,mBAAmB;IACnB;QACE,KAAK,EAAE,mDAAmD;QAC1D,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,4DAA4D;KAC1E;IACD;QACE,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,+CAA+C,CAAC;QACxE,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,KAAK,EAAE,uCAAuC;QAC9C,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,qDAAqD;KACnE;IACD,gBAAgB;IAChB;QACE,KAAK,EAAE,kEAAkE;QACzE,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,uCAAuC;KACrD;IACD;QACE,KAAK,EAAE,iCAAiC;QACxC,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,qCAAqC;KACnD;IACD,wCAAwC;IACxC;QACE,KAAK,EAAE,gCAAgC;QACvC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,kCAAkC;KAChD;IACD;QACE,KAAK,EAAE,uCAAuC;QAC9C,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,mEAAmE;KACjF;IACD;QACE,KAAK,EAAE,4BAA4B;QACnC,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,wCAAwC;KACtD;IACD,iBAAiB;IACjB;QACE,KAAK,EAAE,mCAAmC;QAC1C,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0CAA0C;KACxD;IACD;QACE,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;QAClC,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,6BAA6B;KAC3C;IACD;QACE,KAAK,EAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACnC,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,8BAA8B;KAC5C;IACD,iBAAiB;IACjB;QACE,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,uCAAuC;KACrD;IACD;QACE,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,+CAA+C;KAC7D;CACF,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;AAErE;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAA2C;IACxE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAErD,MAAM,KAAK,GAAiB,EAAE,CAAA;IAE9B,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;QACnC,IAAI,CAAC,OAAO;YAAE,SAAQ;QAEtB,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC;oBACT,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;QAC5B,KAAK;KACN,CAAA;AACH,CAAC"}
|
package/dist/semver.d.ts
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* Minimal semver range checker — zero dependencies.
|
|
3
3
|
* Supports common version range patterns from GitHub advisories:
|
|
4
4
|
* "< 4.0.0", ">= 1.0.0, < 2.0.0", "<= 3.5.0", "= 1.2.3"
|
|
5
|
+
* ">= 1.0.0, < 2.0.0 || >= 3.0.0, < 3.5.0" (OR clauses)
|
|
5
6
|
*
|
|
6
|
-
* Does NOT support:
|
|
7
|
+
* Does NOT support: ~, ^, *, x, pre-release comparison, build metadata.
|
|
7
8
|
* This is intentional — advisory ranges use simple comparators.
|
|
9
|
+
* Unknown ranges are treated as vulnerable (safe default).
|
|
8
10
|
*/
|
|
9
11
|
/**
|
|
10
12
|
* Check if a version satisfies a vulnerability range string.
|
package/dist/semver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAwCH;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAiBtE"}
|
package/dist/semver.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* Minimal semver range checker — zero dependencies.
|
|
3
3
|
* Supports common version range patterns from GitHub advisories:
|
|
4
4
|
* "< 4.0.0", ">= 1.0.0, < 2.0.0", "<= 3.5.0", "= 1.2.3"
|
|
5
|
+
* ">= 1.0.0, < 2.0.0 || >= 3.0.0, < 3.5.0" (OR clauses)
|
|
5
6
|
*
|
|
6
|
-
* Does NOT support:
|
|
7
|
+
* Does NOT support: ~, ^, *, x, pre-release comparison, build metadata.
|
|
7
8
|
* This is intentional — advisory ranges use simple comparators.
|
|
9
|
+
* Unknown ranges are treated as vulnerable (safe default).
|
|
8
10
|
*/
|
|
9
11
|
function parse(version) {
|
|
10
12
|
// Strip leading 'v' and any pre-release/build suffix
|
|
@@ -52,20 +54,37 @@ export function satisfiesRange(version, range) {
|
|
|
52
54
|
return true; // If we can't parse, assume vulnerable (safe default)
|
|
53
55
|
if (!range || range === '*')
|
|
54
56
|
return true;
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
+
// Support OR clauses: "< 2.0.0 || >= 3.0.0, < 3.5.0"
|
|
58
|
+
// Vulnerable if ANY OR clause matches
|
|
59
|
+
const orClauses = range.split('||').map(s => s.trim()).filter(Boolean);
|
|
60
|
+
for (const clause of orClauses) {
|
|
61
|
+
if (satisfiesAndClause(ver, clause)) {
|
|
62
|
+
return true; // Vulnerable — matches at least one OR clause
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false; // Not vulnerable — doesn't match any OR clause
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Check if a version satisfies ALL conditions in an AND clause.
|
|
69
|
+
* AND clauses are comma-separated: ">= 1.0.0, < 2.0.0"
|
|
70
|
+
*/
|
|
71
|
+
function satisfiesAndClause(ver, clause) {
|
|
72
|
+
const parts = clause.split(',').map(s => s.trim()).filter(Boolean);
|
|
73
|
+
let hadValidPart = false;
|
|
57
74
|
for (const part of parts) {
|
|
58
75
|
const match = part.match(/^(>=|<=|>|<|=)\s*(.+)$/);
|
|
59
76
|
if (!match)
|
|
60
77
|
continue;
|
|
78
|
+
hadValidPart = true;
|
|
61
79
|
const op = match[1];
|
|
62
80
|
const target = parse(match[2]);
|
|
63
81
|
if (!target)
|
|
64
82
|
continue;
|
|
65
83
|
if (!matchComparator(ver, op, target)) {
|
|
66
|
-
return false; // One condition not met → not in
|
|
84
|
+
return false; // One condition not met → not in this clause's range
|
|
67
85
|
}
|
|
68
86
|
}
|
|
69
|
-
|
|
87
|
+
// If no valid parts were parsed, treat as vulnerable (safe default)
|
|
88
|
+
return hadValidPart || true;
|
|
70
89
|
}
|
|
71
90
|
//# sourceMappingURL=semver.js.map
|
package/dist/semver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"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"}
|
package/dist/sweep.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dead dependency detection.
|
|
3
|
+
*
|
|
4
|
+
* Scans a project's source files for import/require statements and
|
|
5
|
+
* cross-references with package.json to find unused dependencies.
|
|
6
|
+
*
|
|
7
|
+
* Purely filesystem-based — zero network calls.
|
|
8
|
+
* Zero dependencies — only Node.js built-ins.
|
|
9
|
+
*/
|
|
10
|
+
import type { SweepResult, SweepOptions, DepUsageReason } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Normalize a module specifier to a package name.
|
|
13
|
+
* `@scope/pkg/sub/path` → `@scope/pkg`
|
|
14
|
+
* `pkg/sub/path` → `pkg`
|
|
15
|
+
* `pkg` → `pkg`
|
|
16
|
+
*/
|
|
17
|
+
export declare function normalizeToPackageName(specifier: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Extract package names from import/require/re-export statements in source code.
|
|
20
|
+
* Returns a Set of normalized package names (excludes relative imports).
|
|
21
|
+
*/
|
|
22
|
+
export declare function extractImports(source: string): Set<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Recursively collect source files matching the given extensions.
|
|
25
|
+
* Excludes directories in the exclude set.
|
|
26
|
+
*/
|
|
27
|
+
export declare function collectSourceFiles(dir: string, extensions?: Set<string>, excludeDirs?: Set<string>): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Check config files in the project root for tool-dependency references.
|
|
30
|
+
* Returns a map of package name → usage reason.
|
|
31
|
+
*/
|
|
32
|
+
export declare function findConfigDependencies(projectPath: string): Map<string, DepUsageReason>;
|
|
33
|
+
/**
|
|
34
|
+
* Check npm scripts in package.json for binary references.
|
|
35
|
+
* Returns a map of package name → usage reason.
|
|
36
|
+
*/
|
|
37
|
+
export declare function findScriptDependencies(scripts: Record<string, string>, projectPath: string): Map<string, DepUsageReason>;
|
|
38
|
+
/**
|
|
39
|
+
* Estimate the installed size of a package in KB.
|
|
40
|
+
* Does a shallow directory size estimation (not recursive into node_modules).
|
|
41
|
+
*/
|
|
42
|
+
export declare function estimatePackageSize(projectPath: string, packageName: string): number | null;
|
|
43
|
+
/**
|
|
44
|
+
* Extract package names from stylesheet @use/@import statements.
|
|
45
|
+
* Handles SCSS @use 'pkg', @import 'pkg', and Less @import 'pkg'.
|
|
46
|
+
*/
|
|
47
|
+
export declare function extractStyleImports(source: string): Set<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Detect unused dependencies in a project.
|
|
50
|
+
* Purely filesystem-based — no network calls.
|
|
51
|
+
*/
|
|
52
|
+
export declare function sweep(projectPath: string, options?: SweepOptions): Promise<SweepResult>;
|
|
53
|
+
//# sourceMappingURL=sweep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sweep.d.ts","sourceRoot":"","sources":["../src/sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAA;AAmE3F;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAShE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CA6B1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,GAAG,CAAC,MAAM,CAAqB,EAC3C,WAAW,GAAE,GAAG,CAAC,MAAM,CAAgB,GACtC,MAAM,EAAE,CA6BV;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA4CvF;AAgCD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,EAAE,MAAM,GAClB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA2D7B;AAwBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoB3F;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAgB/D;AAyED;;;GAGG;AACH,wBAAsB,KAAK,CACzB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAsOtB"}
|