depguard-cli 1.2.0 → 1.3.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 +59 -3
- package/dist/advisor.d.ts +3 -2
- package/dist/advisor.d.ts.map +1 -1
- package/dist/advisor.js +27 -2
- package/dist/advisor.js.map +1 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +20 -4
- package/dist/audit.js.map +1 -1
- package/dist/bulk.d.ts +9 -0
- package/dist/bulk.d.ts.map +1 -1
- package/dist/bulk.js +18 -0
- package/dist/bulk.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +35 -2
- package/dist/mcp.js.map +1 -1
- package/dist/native-alternatives.d.ts +16 -0
- package/dist/native-alternatives.d.ts.map +1 -0
- package/dist/native-alternatives.js +142 -0
- package/dist/native-alternatives.js.map +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +14 -3
- package/dist/registry.js.map +1 -1
- package/dist/semver.d.ts +19 -0
- package/dist/semver.d.ts.map +1 -0
- package/dist/semver.js +71 -0
- package/dist/semver.js.map +1 -0
- package/dist/types.d.ts +17 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -177,9 +177,10 @@ claude mcp add --transport stdio depguard -- npx -y depguard-cli --mcp
|
|
|
177
177
|
|------|-------------|
|
|
178
178
|
| `depguard_audit` | Full security audit of an npm package |
|
|
179
179
|
| `depguard_audit_bulk` | Audit multiple packages in a single call |
|
|
180
|
+
| `depguard_audit_project` | Audit all dependencies from a package.json file path |
|
|
180
181
|
| `depguard_search` | Search npm for packages by keywords |
|
|
181
182
|
| `depguard_score` | Score a package 0-100 |
|
|
182
|
-
| `depguard_should_use` | Recommend install
|
|
183
|
+
| `depguard_should_use` | Recommend install, use native Node.js, or write from scratch |
|
|
183
184
|
|
|
184
185
|
### Bulk audit
|
|
185
186
|
|
|
@@ -197,6 +198,61 @@ console.log(report.summary) // { critical: 0, high: 2, moderate: 5, low: 3 }
|
|
|
197
198
|
|
|
198
199
|
Via MCP, the AI agent can pass the dependencies object from `package.json` directly — no need to extract package names manually.
|
|
199
200
|
|
|
201
|
+
### Project audit
|
|
202
|
+
|
|
203
|
+
Audit all dependencies from a `package.json` file in one call:
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import { auditProject } from 'depguard-cli'
|
|
207
|
+
|
|
208
|
+
const report = await auditProject('./package.json', {
|
|
209
|
+
includeDevDependencies: true, // also audit devDependencies
|
|
210
|
+
})
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Via MCP, the agent just passes the file path — depguard reads it, detects the project license, and audits everything.
|
|
214
|
+
|
|
215
|
+
## Smart Advisor
|
|
216
|
+
|
|
217
|
+
The `should_use` tool now checks for native Node.js alternatives before recommending npm packages:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
"I need an http client" → Use native fetch() (Node 18+). No package needed.
|
|
221
|
+
"I need uuid generation" → Use crypto.randomUUID() (Node 19+). No package needed.
|
|
222
|
+
"I need deep cloning" → Use structuredClone() (Node 17+). No package needed.
|
|
223
|
+
"I need a date formatter" → Install date-fns (score 85). No native alternative.
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Covers 20+ common intents including fetch, uuid, hashing, URL parsing, CLI args, testing, SQLite, glob, streams, compression, and more. Each recommendation includes example code and the minimum Node.js version required.
|
|
227
|
+
|
|
228
|
+
## Fix Suggestions
|
|
229
|
+
|
|
230
|
+
When vulnerabilities are found, each audit report includes actionable fix suggestions:
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
"fixSuggestions": [
|
|
234
|
+
{
|
|
235
|
+
"vulnerability": "Prototype Pollution",
|
|
236
|
+
"severity": "high",
|
|
237
|
+
"currentVersion": "4.17.19",
|
|
238
|
+
"fixVersion": "4.17.21",
|
|
239
|
+
"action": "upgrade"
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
If no patch exists, `action` is `"no-fix-available"`.
|
|
245
|
+
|
|
246
|
+
## GitHub Token
|
|
247
|
+
|
|
248
|
+
For higher GitHub Advisory API rate limits (60/hour → 5,000/hour), set a GitHub token:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
export GITHUB_TOKEN=ghp_your_token_here
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
No special scopes needed — the token only identifies you for rate limiting. If already set (e.g. by `gh` CLI or GitHub Actions), depguard uses it automatically.
|
|
255
|
+
|
|
200
256
|
## Install Script Analysis
|
|
201
257
|
|
|
202
258
|
depguard statically analyzes install scripts (`preinstall`, `install`, `postinstall`) for suspicious patterns commonly used in supply chain attacks:
|
|
@@ -224,7 +280,7 @@ depguard combines two advisory databases for maximum coverage:
|
|
|
224
280
|
| **npm Registry** | Advisories from `npm audit` |
|
|
225
281
|
| **GitHub Advisory Database** | GHSA advisories, often not in npm |
|
|
226
282
|
|
|
227
|
-
Results are deduplicated and each advisory includes a `source` field (`npm` or `github`).
|
|
283
|
+
Results are deduplicated, filtered by the current package version (only vulnerabilities that actually affect the installed version are reported), and each advisory includes a `source` field (`npm` or `github`).
|
|
228
284
|
|
|
229
285
|
### Caching
|
|
230
286
|
|
|
@@ -257,7 +313,7 @@ A dependency is compatible if its license is equally or more permissive than you
|
|
|
257
313
|
```bash
|
|
258
314
|
npm run build # compile TypeScript
|
|
259
315
|
npm run lint # ESLint (strict)
|
|
260
|
-
npm test #
|
|
316
|
+
npm test # 93 tests (all offline)
|
|
261
317
|
npm run check # build + lint + test + audit
|
|
262
318
|
```
|
|
263
319
|
|
package/dist/advisor.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { AdvisorOptions, Recommendation } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Given a user intent (e.g. "date formatting", "http client"),
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* first check if Node.js has a native solution, then search for
|
|
5
|
+
* packages, audit the top results, and recommend the best option.
|
|
6
6
|
*
|
|
7
7
|
* Thresholds:
|
|
8
|
+
* native match: "use-native"
|
|
8
9
|
* ≥60: "install"
|
|
9
10
|
* 40-59: "caution"
|
|
10
11
|
* <40: "write-from-scratch"
|
package/dist/advisor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisor.d.ts","sourceRoot":"","sources":["../src/advisor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"advisor.d.ts","sourceRoot":"","sources":["../src/advisor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhE;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,cAAc,CAAC,CA0EzB"}
|
package/dist/advisor.js
CHANGED
|
@@ -1,17 +1,40 @@
|
|
|
1
1
|
import { search } from './search.js';
|
|
2
2
|
import { score } from './scorer.js';
|
|
3
|
+
import { findNativeAlternative } from './native-alternatives.js';
|
|
3
4
|
/**
|
|
4
5
|
* Given a user intent (e.g. "date formatting", "http client"),
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* first check if Node.js has a native solution, then search for
|
|
7
|
+
* packages, audit the top results, and recommend the best option.
|
|
7
8
|
*
|
|
8
9
|
* Thresholds:
|
|
10
|
+
* native match: "use-native"
|
|
9
11
|
* ≥60: "install"
|
|
10
12
|
* 40-59: "caution"
|
|
11
13
|
* <40: "write-from-scratch"
|
|
12
14
|
*/
|
|
13
15
|
export async function shouldUse(intent, options = {}) {
|
|
14
16
|
const { threshold = 60, targetLicense = 'MIT', limit = 5, fetcher = globalThis.fetch, } = options;
|
|
17
|
+
// Check for native Node.js alternative first
|
|
18
|
+
const native = findNativeAlternative(intent);
|
|
19
|
+
if (native) {
|
|
20
|
+
// Still search npm to provide alternatives if user wants them
|
|
21
|
+
const results = await search(intent, { limit: 3, fetcher }).catch(() => []);
|
|
22
|
+
const alternatives = results.map(r => ({ name: r.name, score: r.score }));
|
|
23
|
+
return {
|
|
24
|
+
intent,
|
|
25
|
+
action: 'use-native',
|
|
26
|
+
package: null,
|
|
27
|
+
score: null,
|
|
28
|
+
nativeAlternative: {
|
|
29
|
+
api: native.api,
|
|
30
|
+
example: native.example,
|
|
31
|
+
minNodeVersion: native.minNodeVersion,
|
|
32
|
+
},
|
|
33
|
+
alternatives,
|
|
34
|
+
reasoning: `Node.js has a built-in solution: ${native.api} (available since Node ${native.minNodeVersion}). No package needed.`,
|
|
35
|
+
warnings: [],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
15
38
|
const results = await search(intent, { limit, fetcher });
|
|
16
39
|
if (results.length === 0) {
|
|
17
40
|
return {
|
|
@@ -19,6 +42,7 @@ export async function shouldUse(intent, options = {}) {
|
|
|
19
42
|
action: 'write-from-scratch',
|
|
20
43
|
package: null,
|
|
21
44
|
score: null,
|
|
45
|
+
nativeAlternative: null,
|
|
22
46
|
alternatives: [],
|
|
23
47
|
reasoning: 'No packages found matching this intent',
|
|
24
48
|
warnings: [],
|
|
@@ -41,6 +65,7 @@ export async function shouldUse(intent, options = {}) {
|
|
|
41
65
|
action,
|
|
42
66
|
package: action !== 'write-from-scratch' ? best.name : null,
|
|
43
67
|
score: best.score,
|
|
68
|
+
nativeAlternative: null,
|
|
44
69
|
alternatives,
|
|
45
70
|
reasoning,
|
|
46
71
|
warnings: allWarnings,
|
package/dist/advisor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisor.js","sourceRoot":"","sources":["../src/advisor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"advisor.js","sourceRoot":"","sources":["../src/advisor.ts"],"names":[],"mappings":"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"}
|
package/dist/audit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAoD,MAAM,YAAY,CAAA;AAuExG;;;;GAIG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,MAAM,EACZ,aAAa,SAAQ,EACrB,OAAO,GAAE,OAA0B,GAClC,OAAO,CAAC,WAAW,CAAC,CAqHtB"}
|
package/dist/audit.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { fetchPackage, fetchDownloads, fetchAdvisories, fetchGitHubAdvisories } from './registry.js';
|
|
2
2
|
import { checkLicenseCompatibility } from './license.js';
|
|
3
3
|
import { analyzeScripts } from './script-analysis.js';
|
|
4
|
+
import { satisfiesRange } from './semver.js';
|
|
4
5
|
const INSTALL_SCRIPT_NAMES = ['preinstall', 'install', 'postinstall'];
|
|
5
6
|
/** Map GitHub severity to npm severity */
|
|
6
7
|
function mapGitHubSeverity(severity) {
|
|
@@ -16,10 +17,10 @@ function mapGitHubSeverity(severity) {
|
|
|
16
17
|
* Merge npm and GitHub advisories, deduplicating by URL.
|
|
17
18
|
* GitHub advisories are converted to NpmAdvisory format.
|
|
18
19
|
*/
|
|
19
|
-
function mergeAdvisories(npmAdvisories, ghAdvisories) {
|
|
20
|
+
function mergeAdvisories(npmAdvisories, ghAdvisories, currentVersion) {
|
|
20
21
|
const seen = new Set();
|
|
21
22
|
const merged = [];
|
|
22
|
-
// Add npm advisories first
|
|
23
|
+
// Add npm advisories first (npm bulk endpoint already filters by version)
|
|
23
24
|
for (const adv of npmAdvisories) {
|
|
24
25
|
seen.add(adv.url);
|
|
25
26
|
merged.push({ ...adv, source: 'npm' });
|
|
@@ -35,13 +36,18 @@ function mergeAdvisories(npmAdvisories, ghAdvisories) {
|
|
|
35
36
|
const ghsaInNpm = npmAdvisories.some(a => a.url.includes(gh.ghsa_id));
|
|
36
37
|
if (ghsaInNpm)
|
|
37
38
|
continue;
|
|
39
|
+
// Filter: only include if current version is actually affected
|
|
38
40
|
const vuln = gh.vulnerabilities?.[0];
|
|
41
|
+
const range = vuln?.vulnerable_version_range;
|
|
42
|
+
if (range && !satisfiesRange(currentVersion, range)) {
|
|
43
|
+
continue; // Current version is NOT in the vulnerable range — skip
|
|
44
|
+
}
|
|
39
45
|
merged.push({
|
|
40
46
|
id: parseInt(gh.ghsa_id.replace(/\D/g, '').slice(0, 8)) || 0,
|
|
41
47
|
title: gh.summary,
|
|
42
48
|
severity: mapGitHubSeverity(gh.severity),
|
|
43
49
|
url: gh.html_url,
|
|
44
|
-
vulnerable_versions:
|
|
50
|
+
vulnerable_versions: range ?? '*',
|
|
45
51
|
patched_versions: vuln?.first_patched_version ?? null,
|
|
46
52
|
cwe: gh.cwes?.map(c => c.cwe_id),
|
|
47
53
|
cvss: gh.cvss ? { score: gh.cvss.score, vectorString: gh.cvss.vector_string } : undefined,
|
|
@@ -72,6 +78,7 @@ export async function audit(name, targetLicense = 'MIT', fetcher = globalThis.fe
|
|
|
72
78
|
deprecated: false,
|
|
73
79
|
vulnerabilities: emptyVulnerabilities(),
|
|
74
80
|
scriptAnalysis: { suspicious: false, risks: [] },
|
|
81
|
+
fixSuggestions: [],
|
|
75
82
|
licenseCompatibility: checkLicenseCompatibility(null, targetLicense),
|
|
76
83
|
warnings: ['Could not fetch package data from npm registry'],
|
|
77
84
|
};
|
|
@@ -93,7 +100,7 @@ export async function audit(name, targetLicense = 'MIT', fetcher = globalThis.fe
|
|
|
93
100
|
return [];
|
|
94
101
|
}),
|
|
95
102
|
]);
|
|
96
|
-
const advisories = mergeAdvisories(npmAdvisories, ghAdvisories);
|
|
103
|
+
const advisories = mergeAdvisories(npmAdvisories, ghAdvisories, latestVersion);
|
|
97
104
|
const license = versionData?.license ?? pkg.license ?? null;
|
|
98
105
|
const deps = versionData?.dependencies ?? {};
|
|
99
106
|
const scripts = versionData?.scripts ?? {};
|
|
@@ -124,6 +131,14 @@ export async function audit(name, targetLicense = 'MIT', fetcher = globalThis.fe
|
|
|
124
131
|
low: advisories.filter(a => a.severity === 'low').length,
|
|
125
132
|
advisories,
|
|
126
133
|
};
|
|
134
|
+
// Generate fix suggestions from advisories
|
|
135
|
+
const fixSuggestions = advisories.map(adv => ({
|
|
136
|
+
vulnerability: adv.title,
|
|
137
|
+
severity: adv.severity,
|
|
138
|
+
currentVersion: latestVersion,
|
|
139
|
+
fixVersion: adv.patched_versions ?? null,
|
|
140
|
+
action: adv.patched_versions ? 'upgrade' : 'no-fix-available',
|
|
141
|
+
}));
|
|
127
142
|
const licenseCompat = checkLicenseCompatibility(license, targetLicense);
|
|
128
143
|
// Compute last publish date
|
|
129
144
|
const times = Object.entries(pkg.time)
|
|
@@ -144,6 +159,7 @@ export async function audit(name, targetLicense = 'MIT', fetcher = globalThis.fe
|
|
|
144
159
|
deprecated,
|
|
145
160
|
vulnerabilities,
|
|
146
161
|
scriptAnalysis: scriptResult,
|
|
162
|
+
fixSuggestions,
|
|
147
163
|
licenseCompatibility: licenseCompat,
|
|
148
164
|
warnings,
|
|
149
165
|
};
|
package/dist/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"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"}
|
package/dist/bulk.d.ts
CHANGED
|
@@ -24,4 +24,13 @@ export interface BulkAuditReport {
|
|
|
24
24
|
* Defaults to 5 concurrent requests to stay within rate limits.
|
|
25
25
|
*/
|
|
26
26
|
export declare function auditBulk(packages: string[], options?: BulkAuditOptions): Promise<BulkAuditReport>;
|
|
27
|
+
/** Options for project audit */
|
|
28
|
+
export interface ProjectAuditOptions extends BulkAuditOptions {
|
|
29
|
+
includeDevDependencies?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Audit all dependencies from a package.json file.
|
|
33
|
+
* Reads the file, extracts dependency names, and runs bulk audit.
|
|
34
|
+
*/
|
|
35
|
+
export declare function auditProject(packageJsonPath: string, options?: ProjectAuditOptions): Promise<BulkAuditReport>;
|
|
27
36
|
//# sourceMappingURL=bulk.d.ts.map
|
package/dist/bulk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGtD,6BAA6B;AAC7B,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAwB;AACxB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAiD1B;AAED,gCAAgC;AAChC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,eAAe,CAAC,CAoB1B"}
|
package/dist/bulk.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
1
2
|
import { audit } from './audit.js';
|
|
2
3
|
/**
|
|
3
4
|
* Audit multiple packages concurrently with controlled parallelism.
|
|
@@ -42,4 +43,21 @@ export async function auditBulk(packages, options = {}) {
|
|
|
42
43
|
summary,
|
|
43
44
|
};
|
|
44
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Audit all dependencies from a package.json file.
|
|
48
|
+
* Reads the file, extracts dependency names, and runs bulk audit.
|
|
49
|
+
*/
|
|
50
|
+
export async function auditProject(packageJsonPath, options = {}) {
|
|
51
|
+
const { includeDevDependencies = false, ...bulkOptions } = options;
|
|
52
|
+
const raw = readFileSync(packageJsonPath, 'utf-8');
|
|
53
|
+
const pkg = JSON.parse(raw);
|
|
54
|
+
const deps = Object.keys(pkg.dependencies ?? {});
|
|
55
|
+
const devDeps = includeDevDependencies ? Object.keys(pkg.devDependencies ?? {}) : [];
|
|
56
|
+
const allPackages = [...new Set([...deps, ...devDeps])];
|
|
57
|
+
// Use project license as target if not explicitly set
|
|
58
|
+
if (!bulkOptions.targetLicense && pkg.license) {
|
|
59
|
+
bulkOptions.targetLicense = pkg.license;
|
|
60
|
+
}
|
|
61
|
+
return auditBulk(allPackages, bulkOptions);
|
|
62
|
+
}
|
|
45
63
|
//# sourceMappingURL=bulk.js.map
|
package/dist/bulk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk.js","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bulk.js","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { audit } from './audit.js';
|
|
2
2
|
export { analyzeScripts } from './script-analysis.js';
|
|
3
|
-
export {
|
|
3
|
+
export { findNativeAlternative } from './native-alternatives.js';
|
|
4
|
+
export { auditBulk, auditProject } from './bulk.js';
|
|
4
5
|
export { search } from './search.js';
|
|
5
6
|
export { score } from './scorer.js';
|
|
6
7
|
export { shouldUse } from './advisor.js';
|
|
@@ -9,5 +10,5 @@ export { clearCache, fetchGitHubAdvisories } from './registry.js';
|
|
|
9
10
|
export { calculateSavings, estimateTokens } from './tokens.js';
|
|
10
11
|
export type { AdvisorOptions, AuditReport, CacheEntry, FetchFn, GitHubAdvisory, LicenseCompatibility, NpmAdvisory, ScriptAnalysis, ScriptRisk, NpmDownloadsResponse, NpmPackageData, NpmSearchResult, NpmVersionData, Recommendation, ScoreResult, ScoreWeights, SearchEntry, SearchOptions, VulnerabilitySummary, } from './types.js';
|
|
11
12
|
export type { TokenSavings } from './tokens.js';
|
|
12
|
-
export type { BulkAuditReport, BulkAuditOptions } from './bulk.js';
|
|
13
|
+
export type { BulkAuditReport, BulkAuditOptions, ProjectAuditOptions } from './bulk.js';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9D,YAAY,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { audit } from './audit.js';
|
|
2
2
|
export { analyzeScripts } from './script-analysis.js';
|
|
3
|
-
export {
|
|
3
|
+
export { findNativeAlternative } from './native-alternatives.js';
|
|
4
|
+
export { auditBulk, auditProject } from './bulk.js';
|
|
4
5
|
export { search } from './search.js';
|
|
5
6
|
export { score } from './scorer.js';
|
|
6
7
|
export { shouldUse } from './advisor.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/mcp.js
CHANGED
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { cleanupDiskCache } from './disk-cache.js';
|
|
11
11
|
import { audit } from './audit.js';
|
|
12
|
-
import { auditBulk } from './bulk.js';
|
|
12
|
+
import { auditBulk, auditProject } from './bulk.js';
|
|
13
13
|
import { search } from './search.js';
|
|
14
14
|
import { score } from './scorer.js';
|
|
15
15
|
import { shouldUse } from './advisor.js';
|
|
16
16
|
import { calculateSavings } from './tokens.js';
|
|
17
17
|
const SERVER_INFO = {
|
|
18
18
|
name: 'depguard',
|
|
19
|
-
version: '1.
|
|
19
|
+
version: '1.3.0',
|
|
20
20
|
};
|
|
21
21
|
const TOOLS = [
|
|
22
22
|
{
|
|
@@ -74,6 +74,19 @@ const TOOLS = [
|
|
|
74
74
|
required: ['packages'],
|
|
75
75
|
},
|
|
76
76
|
},
|
|
77
|
+
{
|
|
78
|
+
name: 'depguard_audit_project',
|
|
79
|
+
description: 'Audit all dependencies from a package.json file path. Reads the file, extracts all dependency names, and runs a bulk audit.',
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
properties: {
|
|
83
|
+
path: { type: 'string', description: 'Absolute path to package.json file' },
|
|
84
|
+
includeDevDependencies: { type: 'boolean', description: 'Include devDependencies in audit (default: false)' },
|
|
85
|
+
targetLicense: { type: 'string', description: 'Project license for compatibility check (auto-detected from package.json if not set)' },
|
|
86
|
+
},
|
|
87
|
+
required: ['path'],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
77
90
|
{
|
|
78
91
|
name: 'depguard_should_use',
|
|
79
92
|
description: 'Given an intent (e.g. "date formatting"), search packages, audit top candidates, and recommend install vs write-from-scratch.',
|
|
@@ -156,6 +169,26 @@ async function handleRequest(req) {
|
|
|
156
169
|
});
|
|
157
170
|
return success(req.id, toolResult('depguard_audit_bulk', result, packageNames.length));
|
|
158
171
|
}
|
|
172
|
+
case 'depguard_audit_project': {
|
|
173
|
+
const filePath = args.path;
|
|
174
|
+
if (!filePath) {
|
|
175
|
+
return error(req.id, -32602, 'path is required');
|
|
176
|
+
}
|
|
177
|
+
try {
|
|
178
|
+
const result = await auditProject(filePath, {
|
|
179
|
+
includeDevDependencies: args.includeDevDependencies ?? false,
|
|
180
|
+
targetLicense: args.targetLicense,
|
|
181
|
+
});
|
|
182
|
+
return success(req.id, toolResult('depguard_audit_bulk', result, result.total));
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
const msg = err instanceof Error ? err.message : 'Failed to read package.json';
|
|
186
|
+
return success(req.id, {
|
|
187
|
+
content: [{ type: 'text', text: `Error: ${msg}` }],
|
|
188
|
+
isError: true,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
159
192
|
case 'depguard_should_use': {
|
|
160
193
|
const limit = args.limit ?? 5;
|
|
161
194
|
const result = await shouldUse(args.intent, {
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps common development intents to native Node.js alternatives.
|
|
3
|
+
* Used by the advisor to recommend built-in solutions before npm packages.
|
|
4
|
+
*/
|
|
5
|
+
export interface NativeAlternative {
|
|
6
|
+
intent: string[];
|
|
7
|
+
api: string;
|
|
8
|
+
example: string;
|
|
9
|
+
minNodeVersion: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Find a native Node.js alternative for a given intent.
|
|
13
|
+
* Returns null if no native alternative exists.
|
|
14
|
+
*/
|
|
15
|
+
export declare function findNativeAlternative(intent: string): NativeAlternative | null;
|
|
16
|
+
//# sourceMappingURL=native-alternatives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-alternatives.d.ts","sourceRoot":"","sources":["../src/native-alternatives.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;CACvB;AA6HD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAY9E"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps common development intents to native Node.js alternatives.
|
|
3
|
+
* Used by the advisor to recommend built-in solutions before npm packages.
|
|
4
|
+
*/
|
|
5
|
+
const NATIVE_ALTERNATIVES = [
|
|
6
|
+
{
|
|
7
|
+
intent: ['http client', 'http request', 'fetch', 'api client', 'rest client'],
|
|
8
|
+
api: 'globalThis.fetch()',
|
|
9
|
+
example: 'const res = await fetch("https://api.example.com/data")',
|
|
10
|
+
minNodeVersion: '18.0.0',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
intent: ['uuid', 'unique id', 'random id', 'generate id'],
|
|
14
|
+
api: 'crypto.randomUUID()',
|
|
15
|
+
example: "import { randomUUID } from 'node:crypto'; const id = randomUUID()",
|
|
16
|
+
minNodeVersion: '19.0.0',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
intent: ['hash', 'md5', 'sha256', 'sha1', 'checksum', 'file hash'],
|
|
20
|
+
api: 'crypto.createHash()',
|
|
21
|
+
example: "import { createHash } from 'node:crypto'; createHash('sha256').update(data).digest('hex')",
|
|
22
|
+
minNodeVersion: '0.1.92',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
intent: ['deep clone', 'clone object', 'deep copy'],
|
|
26
|
+
api: 'structuredClone()',
|
|
27
|
+
example: 'const clone = structuredClone(originalObject)',
|
|
28
|
+
minNodeVersion: '17.0.0',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
intent: ['url parse', 'url parsing', 'query string', 'parse url'],
|
|
32
|
+
api: 'new URL() + URLSearchParams',
|
|
33
|
+
example: "const url = new URL('https://example.com?foo=bar'); url.searchParams.get('foo')",
|
|
34
|
+
minNodeVersion: '10.0.0',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
intent: ['path', 'path manipulation', 'path join', 'file path'],
|
|
38
|
+
api: 'node:path',
|
|
39
|
+
example: "import { join, resolve, basename } from 'node:path'",
|
|
40
|
+
minNodeVersion: '0.1.16',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
intent: ['read file', 'write file', 'file system', 'fs'],
|
|
44
|
+
api: 'node:fs/promises',
|
|
45
|
+
example: "import { readFile, writeFile } from 'node:fs/promises'",
|
|
46
|
+
minNodeVersion: '10.0.0',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
intent: ['environment variable', 'env var', 'dotenv', 'env config'],
|
|
50
|
+
api: 'process.loadEnvFile()',
|
|
51
|
+
example: "process.loadEnvFile('.env'); // loads into process.env",
|
|
52
|
+
minNodeVersion: '21.7.0',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
intent: ['glob', 'file glob', 'find files', 'file pattern'],
|
|
56
|
+
api: 'fs.glob()',
|
|
57
|
+
example: "import { glob } from 'node:fs'; for await (const f of glob('**/*.ts')) console.log(f)",
|
|
58
|
+
minNodeVersion: '22.0.0',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
intent: ['test', 'testing', 'unit test', 'test runner'],
|
|
62
|
+
api: 'node:test',
|
|
63
|
+
example: "import { describe, it } from 'node:test'; import assert from 'node:assert/strict'",
|
|
64
|
+
minNodeVersion: '18.0.0',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
intent: ['watch file', 'file watcher', 'watch changes'],
|
|
68
|
+
api: 'fs.watch()',
|
|
69
|
+
example: "import { watch } from 'node:fs'; watch('./src', { recursive: true }, (event, filename) => {})",
|
|
70
|
+
minNodeVersion: '19.1.0',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
intent: ['argument parsing', 'cli arguments', 'parse args', 'command line'],
|
|
74
|
+
api: 'util.parseArgs()',
|
|
75
|
+
example: "import { parseArgs } from 'node:util'; const { values } = parseArgs({ options: { name: { type: 'string' } } })",
|
|
76
|
+
minNodeVersion: '18.3.0',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
intent: ['stream', 'readable stream', 'writable stream', 'pipe'],
|
|
80
|
+
api: 'node:stream',
|
|
81
|
+
example: "import { Readable, pipeline } from 'node:stream'; import { pipeline as pipelineAsync } from 'node:stream/promises'",
|
|
82
|
+
minNodeVersion: '15.0.0',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
intent: ['event emitter', 'events', 'pub sub', 'event bus'],
|
|
86
|
+
api: 'node:events',
|
|
87
|
+
example: "import { EventEmitter } from 'node:events'; const emitter = new EventEmitter()",
|
|
88
|
+
minNodeVersion: '0.1.26',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
intent: ['compression', 'gzip', 'deflate', 'zip'],
|
|
92
|
+
api: 'node:zlib',
|
|
93
|
+
example: "import { gzip, gunzip } from 'node:zlib'; import { promisify } from 'node:util'",
|
|
94
|
+
minNodeVersion: '0.5.8',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
intent: ['worker', 'worker thread', 'multi thread', 'parallel'],
|
|
98
|
+
api: 'node:worker_threads',
|
|
99
|
+
example: "import { Worker, isMainThread } from 'node:worker_threads'",
|
|
100
|
+
minNodeVersion: '12.0.0',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
intent: ['abort', 'cancel request', 'timeout', 'abort controller'],
|
|
104
|
+
api: 'AbortController',
|
|
105
|
+
example: 'const controller = new AbortController(); fetch(url, { signal: controller.signal })',
|
|
106
|
+
minNodeVersion: '15.0.0',
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
intent: ['base64', 'base64 encode', 'base64 decode', 'encoding'],
|
|
110
|
+
api: 'Buffer.from() / btoa() / atob()',
|
|
111
|
+
example: "Buffer.from('hello').toString('base64'); Buffer.from(b64, 'base64').toString()",
|
|
112
|
+
minNodeVersion: '0.1.90',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
intent: ['typescript', 'type strip', 'run typescript'],
|
|
116
|
+
api: 'node --experimental-strip-types',
|
|
117
|
+
example: 'node --experimental-strip-types app.ts',
|
|
118
|
+
minNodeVersion: '22.6.0',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
intent: ['sqlite', 'database', 'embedded database', 'local database'],
|
|
122
|
+
api: 'node:sqlite',
|
|
123
|
+
example: "import { DatabaseSync } from 'node:sqlite'; const db = new DatabaseSync(':memory:')",
|
|
124
|
+
minNodeVersion: '22.5.0',
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
/**
|
|
128
|
+
* Find a native Node.js alternative for a given intent.
|
|
129
|
+
* Returns null if no native alternative exists.
|
|
130
|
+
*/
|
|
131
|
+
export function findNativeAlternative(intent) {
|
|
132
|
+
const lower = intent.toLowerCase();
|
|
133
|
+
for (const alt of NATIVE_ALTERNATIVES) {
|
|
134
|
+
for (const keyword of alt.intent) {
|
|
135
|
+
if (lower.includes(keyword)) {
|
|
136
|
+
return alt;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=native-alternatives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-alternatives.js","sourceRoot":"","sources":["../src/native-alternatives.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,OAAO,EACP,cAAc,EAEd,cAAc,EACd,eAAe,EACf,WAAW,EACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAoB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,OAAO,EACP,cAAc,EAEd,cAAc,EACd,eAAe,EACf,WAAW,EACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAoB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAyC3B,gCAAgC;AAChC,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,+CAA+C;AAC/C,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,OAA0B,GAClC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAgBhC;AAED,kCAAkC;AAClC,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,OAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,0BAA0B;AAC1B,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,EACV,OAAO,GAAE,OAA0B,GAClC,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAA0B,GAClC,OAAO,CAAC,WAAW,EAAE,CAAC,CAmBxB;AAMD,8DAA8D;AAC9D,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,OAA0B,GAClC,OAAO,CAAC,cAAc,EAAE,CAAC,CAyC3B"}
|
package/dist/registry.js
CHANGED
|
@@ -5,6 +5,15 @@ const DOWNLOADS_URL = 'https://api.npmjs.org/downloads/point/last-week';
|
|
|
5
5
|
const SEARCH_URL = 'https://registry.npmjs.org/-/v1/search';
|
|
6
6
|
const ADVISORIES_URL = 'https://registry.npmjs.org/-/npm/v1/security/advisories/bulk';
|
|
7
7
|
const GITHUB_ADVISORIES_URL = 'https://api.github.com/advisories';
|
|
8
|
+
/** Read GitHub token from environment (if available) for higher rate limits */
|
|
9
|
+
function getGitHubToken() {
|
|
10
|
+
try {
|
|
11
|
+
return process.env.GITHUB_TOKEN || process.env.DEPGUARD_GITHUB_TOKEN || null;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
8
17
|
const DEFAULT_TTL = 5 * 60 * 1000; // 5 minutes
|
|
9
18
|
const cache = new Map();
|
|
10
19
|
function getCached(key) {
|
|
@@ -134,9 +143,11 @@ export async function fetchGitHubAdvisories(name, fetcher = globalThis.fetch) {
|
|
|
134
143
|
affects: name,
|
|
135
144
|
per_page: '30',
|
|
136
145
|
});
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
146
|
+
const token = getGitHubToken();
|
|
147
|
+
const headers = { 'Accept': 'application/vnd.github+json' };
|
|
148
|
+
if (token)
|
|
149
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
150
|
+
const res = await fetcher(`${GITHUB_ADVISORIES_URL}?${params}`, { headers });
|
|
140
151
|
// Track rate limit from response headers
|
|
141
152
|
const remaining = res.headers?.get?.('x-ratelimit-remaining');
|
|
142
153
|
const reset = res.headers?.get?.('x-ratelimit-reset');
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEpE,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,MAAM,YAAY,GAAG,4BAA4B,CAAA;AACjD,MAAM,aAAa,GAAG,iDAAiD,CAAA;AACvE,MAAM,UAAU,GAAG,wCAAwC,CAAA;AAC3D,MAAM,cAAc,GAAG,8DAA8D,CAAA;AACrF,MAAM,qBAAqB,GAAG,mCAAmC,CAAA;AAEjE,+EAA+E;AAC/E,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAA;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,YAAY;AAE9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAA;AAEpD,SAAS,SAAS,CAAI,GAAW;IAC/B,wBAAwB;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAA8B,CAAA;IACzD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,IAAI,CAAA;QACnB,CAAC;IACH,CAAC;IACD,oCAAoC;IACpC,OAAO,OAAO,CAAI,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,QAAQ,CAAI,GAAW,EAAE,IAAO,EAAE,GAAG,GAAG,WAAW;IAC1D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;IACrD,+CAA+C;IAC/C,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACpB,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,UAAU;IACxB,KAAK,CAAC,KAAK,EAAE,CAAA;AACf,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,UAAmB,UAAU,CAAC,KAAK;IAEnC,MAAM,GAAG,GAAG,OAAO,IAAI,EAAE,CAAA;IACzB,MAAM,MAAM,GAAG,SAAS,CAAiB,GAAG,CAAC,CAAA;IAC7C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;YACvE,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;SAC1C,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAA;QACjD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,UAAmB,UAAU,CAAC,KAAK;IAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,SAAS,CAAS,GAAG,CAAC,CAAA;IACrC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IAElC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,aAAa,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;YACxE,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;SAC1C,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,CAAA;QACrB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAA;QACvD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAA;IACV,CAAC;AACH,CAAC;AAED,0BAA0B;AAC1B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,KAAK,GAAG,EAAE,EACV,UAAmB,UAAU,CAAC,KAAK;IAEnC,MAAM,GAAG,GAAG,UAAU,QAAQ,IAAI,KAAK,EAAE,CAAA;IACzC,MAAM,MAAM,GAAG,SAAS,CAAkB,GAAG,CAAC,CAAA;IAC9C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,MAAM,KAAK,GAAoB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,UAAU,IAAI,MAAM,EAAE,EAAE;YACnD,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;SAC1C,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAA;QACzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAA;QAClD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,OAAe,EACf,UAAmB,UAAU,CAAC,KAAK;IAEnC,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,OAAO,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,CAAgB,GAAG,CAAC,CAAA;IAC5C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkC,CAAA;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QACnC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QACzB,OAAO,UAAU,CAAA;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,IAAI,wBAAwB,GAAG,EAAE,CAAA;AACjC,IAAI,oBAAoB,GAAG,CAAC,CAAA;AAE5B,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAY,EACZ,UAAmB,UAAU,CAAC,KAAK;IAEnC,MAAM,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,SAAS,CAAmB,GAAG,CAAC,CAAA;IAC/C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,6DAA6D;IAC7D,IAAI,wBAAwB,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,oBAAoB,EAAE,CAAC;QAC9E,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,cAAc,EAAE,CAAA;QAC9B,MAAM,OAAO,GAA2B,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAA;QACnF,IAAI,KAAK;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;QAEvD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,qBAAqB,IAAI,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAE5E,yCAAyC;QACzC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAA;QAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAA;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,wBAAwB,GAAG,MAAM,CAAA;QACvD,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,oBAAoB,GAAG,MAAM,CAAA;QACnD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqB,CAAA;QACnD,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC"}
|
package/dist/semver.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal semver range checker — zero dependencies.
|
|
3
|
+
* Supports common version range patterns from GitHub advisories:
|
|
4
|
+
* "< 4.0.0", ">= 1.0.0, < 2.0.0", "<= 3.5.0", "= 1.2.3"
|
|
5
|
+
*
|
|
6
|
+
* Does NOT support: ||, ~, ^, *, x, pre-release tags, build metadata.
|
|
7
|
+
* This is intentional — advisory ranges use simple comparators.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Check if a version satisfies a vulnerability range string.
|
|
11
|
+
* Returns true if the version IS vulnerable (falls within the range).
|
|
12
|
+
*
|
|
13
|
+
* Examples:
|
|
14
|
+
* satisfiesRange("4.17.21", "< 4.17.20") → false (not vulnerable)
|
|
15
|
+
* satisfiesRange("4.17.19", "< 4.17.20") → true (vulnerable)
|
|
16
|
+
* satisfiesRange("1.5.0", ">= 1.0.0, < 2.0.0") → true (vulnerable)
|
|
17
|
+
*/
|
|
18
|
+
export declare function satisfiesRange(version: string, range: string): boolean;
|
|
19
|
+
//# sourceMappingURL=semver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwCH;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAuBtE"}
|
package/dist/semver.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal semver range checker — zero dependencies.
|
|
3
|
+
* Supports common version range patterns from GitHub advisories:
|
|
4
|
+
* "< 4.0.0", ">= 1.0.0, < 2.0.0", "<= 3.5.0", "= 1.2.3"
|
|
5
|
+
*
|
|
6
|
+
* Does NOT support: ||, ~, ^, *, x, pre-release tags, build metadata.
|
|
7
|
+
* This is intentional — advisory ranges use simple comparators.
|
|
8
|
+
*/
|
|
9
|
+
function parse(version) {
|
|
10
|
+
// Strip leading 'v' and any pre-release/build suffix
|
|
11
|
+
const clean = version.replace(/^v/, '').replace(/[-+].*$/, '').trim();
|
|
12
|
+
const parts = clean.split('.');
|
|
13
|
+
if (parts.length < 2)
|
|
14
|
+
return null;
|
|
15
|
+
const major = parseInt(parts[0], 10);
|
|
16
|
+
const minor = parseInt(parts[1], 10);
|
|
17
|
+
const patch = parts.length >= 3 ? parseInt(parts[2], 10) : 0;
|
|
18
|
+
if (isNaN(major) || isNaN(minor) || isNaN(patch))
|
|
19
|
+
return null;
|
|
20
|
+
return { major, minor, patch };
|
|
21
|
+
}
|
|
22
|
+
function compare(a, b) {
|
|
23
|
+
if (a.major !== b.major)
|
|
24
|
+
return a.major - b.major;
|
|
25
|
+
if (a.minor !== b.minor)
|
|
26
|
+
return a.minor - b.minor;
|
|
27
|
+
return a.patch - b.patch;
|
|
28
|
+
}
|
|
29
|
+
function matchComparator(version, op, target) {
|
|
30
|
+
const cmp = compare(version, target);
|
|
31
|
+
switch (op) {
|
|
32
|
+
case '<': return cmp < 0;
|
|
33
|
+
case '<=': return cmp <= 0;
|
|
34
|
+
case '>': return cmp > 0;
|
|
35
|
+
case '>=': return cmp >= 0;
|
|
36
|
+
case '=': return cmp === 0;
|
|
37
|
+
default: return cmp === 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Check if a version satisfies a vulnerability range string.
|
|
42
|
+
* Returns true if the version IS vulnerable (falls within the range).
|
|
43
|
+
*
|
|
44
|
+
* Examples:
|
|
45
|
+
* satisfiesRange("4.17.21", "< 4.17.20") → false (not vulnerable)
|
|
46
|
+
* satisfiesRange("4.17.19", "< 4.17.20") → true (vulnerable)
|
|
47
|
+
* satisfiesRange("1.5.0", ">= 1.0.0, < 2.0.0") → true (vulnerable)
|
|
48
|
+
*/
|
|
49
|
+
export function satisfiesRange(version, range) {
|
|
50
|
+
const ver = parse(version);
|
|
51
|
+
if (!ver)
|
|
52
|
+
return true; // If we can't parse, assume vulnerable (safe default)
|
|
53
|
+
if (!range || range === '*')
|
|
54
|
+
return true;
|
|
55
|
+
// Split by comma for compound ranges: ">= 1.0.0, < 2.0.0"
|
|
56
|
+
const parts = range.split(',').map(s => s.trim()).filter(Boolean);
|
|
57
|
+
for (const part of parts) {
|
|
58
|
+
const match = part.match(/^(>=|<=|>|<|=)\s*(.+)$/);
|
|
59
|
+
if (!match)
|
|
60
|
+
continue;
|
|
61
|
+
const op = match[1];
|
|
62
|
+
const target = parse(match[2]);
|
|
63
|
+
if (!target)
|
|
64
|
+
continue;
|
|
65
|
+
if (!matchComparator(ver, op, target)) {
|
|
66
|
+
return false; // One condition not met → not in vulnerable range
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=semver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../src/semver.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -114,6 +114,14 @@ export interface ScriptAnalysis {
|
|
|
114
114
|
suspicious: boolean;
|
|
115
115
|
risks: ScriptRisk[];
|
|
116
116
|
}
|
|
117
|
+
/** Fix suggestion for a vulnerability */
|
|
118
|
+
export interface FixSuggestion {
|
|
119
|
+
vulnerability: string;
|
|
120
|
+
severity: string;
|
|
121
|
+
currentVersion: string;
|
|
122
|
+
fixVersion: string | null;
|
|
123
|
+
action: 'upgrade' | 'no-fix-available';
|
|
124
|
+
}
|
|
117
125
|
/** Audit report for a package */
|
|
118
126
|
export interface AuditReport {
|
|
119
127
|
name: string;
|
|
@@ -128,6 +136,7 @@ export interface AuditReport {
|
|
|
128
136
|
deprecated: boolean;
|
|
129
137
|
vulnerabilities: VulnerabilitySummary;
|
|
130
138
|
scriptAnalysis: ScriptAnalysis;
|
|
139
|
+
fixSuggestions: FixSuggestion[];
|
|
131
140
|
licenseCompatibility: LicenseCompatibility;
|
|
132
141
|
warnings: string[];
|
|
133
142
|
}
|
|
@@ -182,12 +191,19 @@ export interface SearchOptions {
|
|
|
182
191
|
minScore?: number;
|
|
183
192
|
fetcher?: FetchFn;
|
|
184
193
|
}
|
|
194
|
+
/** Native Node.js alternative */
|
|
195
|
+
export interface NativeAlternativeInfo {
|
|
196
|
+
api: string;
|
|
197
|
+
example: string;
|
|
198
|
+
minNodeVersion: string;
|
|
199
|
+
}
|
|
185
200
|
/** Advisor recommendation */
|
|
186
201
|
export interface Recommendation {
|
|
187
202
|
intent: string;
|
|
188
|
-
action: 'install' | 'caution' | 'write-from-scratch';
|
|
203
|
+
action: 'install' | 'caution' | 'write-from-scratch' | 'use-native';
|
|
189
204
|
package: string | null;
|
|
190
205
|
score: number | null;
|
|
206
|
+
nativeAlternative: NativeAlternativeInfo | null;
|
|
191
207
|
alternatives: Array<{
|
|
192
208
|
name: string;
|
|
193
209
|
score: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,MAAM,OAAO,GAAG,OAAO,UAAU,CAAC,KAAK,CAAA;AAE7C,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE;gBAAE,GAAG,CAAC,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;YAC/D,SAAS,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAA;SAChC,CAAA;QACD,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,CAAA;YACb,MAAM,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAA;aAAE,CAAA;SACrE,CAAA;KACF,CAAC,CAAA;IACF,KAAK,EAAE,MAAM,CAAA;CACd;AAED,yBAAyB;AACzB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAA;IAC3D,GAAG,EAAE,MAAM,CAAA;IACX,mBAAmB,EAAE,MAAM,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;CAC1B;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,KAAK,CAAC;QACrB,OAAO,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;QAC5C,wBAAwB,EAAE,MAAM,CAAA;QAChC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAA;KACrC,CAAC,CAAA;IACF,IAAI,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/B,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACtD;AAED,6BAA6B;AAC7B,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,CAAA;IAC1C,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,6BAA6B;AAC7B,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,oBAAoB,CAAA;IACrC,cAAc,EAAE,cAAc,CAAA;IAC9B,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,WAAW,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,sBAAsB;AACtB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,0BAA0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qBAAqB;AACrB,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,6BAA6B;AAC7B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED