@vyuhlabs/dxkit 2.0.1 → 2.2.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.
Files changed (103) hide show
  1. package/CHANGELOG.md +223 -0
  2. package/README.md +21 -15
  3. package/dist/analyzers/bom/detailed.d.ts +26 -0
  4. package/dist/analyzers/bom/detailed.d.ts.map +1 -0
  5. package/dist/analyzers/bom/detailed.js +227 -0
  6. package/dist/analyzers/bom/detailed.js.map +1 -0
  7. package/dist/analyzers/bom/gather.d.ts +63 -0
  8. package/dist/analyzers/bom/gather.d.ts.map +1 -0
  9. package/dist/analyzers/bom/gather.js +229 -0
  10. package/dist/analyzers/bom/gather.js.map +1 -0
  11. package/dist/analyzers/bom/index.d.ts +23 -0
  12. package/dist/analyzers/bom/index.d.ts.map +1 -0
  13. package/dist/analyzers/bom/index.js +220 -0
  14. package/dist/analyzers/bom/index.js.map +1 -0
  15. package/dist/analyzers/bom/types.d.ts +91 -0
  16. package/dist/analyzers/bom/types.d.ts.map +1 -0
  17. package/dist/analyzers/bom/types.js +3 -0
  18. package/dist/analyzers/bom/types.js.map +1 -0
  19. package/dist/analyzers/licenses/detailed.d.ts +30 -0
  20. package/dist/analyzers/licenses/detailed.d.ts.map +1 -0
  21. package/dist/analyzers/licenses/detailed.js +194 -0
  22. package/dist/analyzers/licenses/detailed.js.map +1 -0
  23. package/dist/analyzers/licenses/gather.d.ts +15 -0
  24. package/dist/analyzers/licenses/gather.d.ts.map +1 -0
  25. package/dist/analyzers/licenses/gather.js +24 -0
  26. package/dist/analyzers/licenses/gather.js.map +1 -0
  27. package/dist/analyzers/licenses/index.d.ts +21 -0
  28. package/dist/analyzers/licenses/index.d.ts.map +1 -0
  29. package/dist/analyzers/licenses/index.js +146 -0
  30. package/dist/analyzers/licenses/index.js.map +1 -0
  31. package/dist/analyzers/licenses/types.d.ts +30 -0
  32. package/dist/analyzers/licenses/types.d.ts.map +1 -0
  33. package/dist/analyzers/licenses/types.js +13 -0
  34. package/dist/analyzers/licenses/types.js.map +1 -0
  35. package/dist/analyzers/security/detailed.d.ts +0 -3
  36. package/dist/analyzers/security/detailed.d.ts.map +1 -1
  37. package/dist/analyzers/security/detailed.js +37 -6
  38. package/dist/analyzers/security/detailed.js.map +1 -1
  39. package/dist/analyzers/security/gather.d.ts.map +1 -1
  40. package/dist/analyzers/security/gather.js +2 -0
  41. package/dist/analyzers/security/gather.js.map +1 -1
  42. package/dist/analyzers/security/index.d.ts.map +1 -1
  43. package/dist/analyzers/security/index.js +53 -14
  44. package/dist/analyzers/security/index.js.map +1 -1
  45. package/dist/analyzers/security/types.d.ts +5 -0
  46. package/dist/analyzers/security/types.d.ts.map +1 -1
  47. package/dist/analyzers/security/types.js +0 -3
  48. package/dist/analyzers/security/types.js.map +1 -1
  49. package/dist/analyzers/tools/osv.d.ts +49 -5
  50. package/dist/analyzers/tools/osv.d.ts.map +1 -1
  51. package/dist/analyzers/tools/osv.js +99 -17
  52. package/dist/analyzers/tools/osv.js.map +1 -1
  53. package/dist/analyzers/tools/runner.d.ts +11 -0
  54. package/dist/analyzers/tools/runner.d.ts.map +1 -1
  55. package/dist/analyzers/tools/runner.js +54 -0
  56. package/dist/analyzers/tools/runner.js.map +1 -1
  57. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  58. package/dist/analyzers/tools/tool-registry.js +77 -0
  59. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  60. package/dist/analyzers/xlsx/bom.d.ts +27 -0
  61. package/dist/analyzers/xlsx/bom.d.ts.map +1 -0
  62. package/dist/analyzers/xlsx/bom.js +141 -0
  63. package/dist/analyzers/xlsx/bom.js.map +1 -0
  64. package/dist/analyzers/xlsx/index.d.ts +27 -0
  65. package/dist/analyzers/xlsx/index.d.ts.map +1 -0
  66. package/dist/analyzers/xlsx/index.js +92 -0
  67. package/dist/analyzers/xlsx/index.js.map +1 -0
  68. package/dist/analyzers/xlsx/licenses.d.ts +40 -0
  69. package/dist/analyzers/xlsx/licenses.d.ts.map +1 -0
  70. package/dist/analyzers/xlsx/licenses.js +140 -0
  71. package/dist/analyzers/xlsx/licenses.js.map +1 -0
  72. package/dist/cli.d.ts.map +1 -1
  73. package/dist/cli.js +178 -1
  74. package/dist/cli.js.map +1 -1
  75. package/dist/languages/capabilities/descriptors.d.ts +4 -1
  76. package/dist/languages/capabilities/descriptors.d.ts.map +1 -1
  77. package/dist/languages/capabilities/descriptors.js +20 -1
  78. package/dist/languages/capabilities/descriptors.js.map +1 -1
  79. package/dist/languages/capabilities/types.d.ts +60 -3
  80. package/dist/languages/capabilities/types.d.ts.map +1 -1
  81. package/dist/languages/csharp.d.ts +48 -0
  82. package/dist/languages/csharp.d.ts.map +1 -1
  83. package/dist/languages/csharp.js +418 -33
  84. package/dist/languages/csharp.js.map +1 -1
  85. package/dist/languages/go.d.ts +35 -0
  86. package/dist/languages/go.d.ts.map +1 -1
  87. package/dist/languages/go.js +367 -26
  88. package/dist/languages/go.js.map +1 -1
  89. package/dist/languages/python.d.ts +49 -0
  90. package/dist/languages/python.d.ts.map +1 -1
  91. package/dist/languages/python.js +372 -11
  92. package/dist/languages/python.js.map +1 -1
  93. package/dist/languages/rust.d.ts +28 -0
  94. package/dist/languages/rust.d.ts.map +1 -1
  95. package/dist/languages/rust.js +287 -28
  96. package/dist/languages/rust.js.map +1 -1
  97. package/dist/languages/types.d.ts +2 -1
  98. package/dist/languages/types.d.ts.map +1 -1
  99. package/dist/languages/typescript.d.ts +17 -0
  100. package/dist/languages/typescript.d.ts.map +1 -1
  101. package/dist/languages/typescript.js +358 -1
  102. package/dist/languages/typescript.js.map +1 -1
  103. package/package.json +7 -2
@@ -34,8 +34,11 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.python = void 0;
37
+ exports.parsePipShowOutput = parsePipShowOutput;
38
+ exports.buildPyTopLevelDepIndex = buildPyTopLevelDepIndex;
37
39
  exports.extractPyImportsRaw = extractPyImportsRaw;
38
40
  exports.resolvePyImportRaw = resolvePyImportRaw;
41
+ exports.findPyProjectVenvPython = findPyProjectVenvPython;
39
42
  const fs = __importStar(require("fs"));
40
43
  const path = __importStar(require("path"));
41
44
  const coverage_1 = require("../analyzers/tools/coverage");
@@ -82,6 +85,147 @@ function hasPyFileWithinDepth(cwd, maxDepth = 2) {
82
85
  }
83
86
  return search(cwd, 0);
84
87
  }
88
+ /**
89
+ * Build the pip-audit invocation for the project at `cwd`. Returns null
90
+ * when no supported manifest is present — without one, pip-audit would
91
+ * silently fall back to scanning its own python environment (the
92
+ * dxkit-installed graphify-venv), reporting irrelevant vulnerabilities
93
+ * against tools rather than against the project's declared dependencies.
94
+ *
95
+ * Manifest precedence:
96
+ * - pyproject.toml / setup.py → `pip-audit .` (project mode reads the
97
+ * declared dependencies)
98
+ * - requirements.txt → `pip-audit -r requirements.txt`
99
+ * - Pipfile → unsupported by pip-audit natively; we
100
+ * return null rather than scan the wrong environment.
101
+ */
102
+ function buildPipAuditCommand(cwd, pipAuditPath) {
103
+ if ((0, runner_1.fileExists)(cwd, 'pyproject.toml') || (0, runner_1.fileExists)(cwd, 'setup.py')) {
104
+ return `${pipAuditPath} . --format json 2>/dev/null`;
105
+ }
106
+ if ((0, runner_1.fileExists)(cwd, 'requirements.txt')) {
107
+ return `${pipAuditPath} -r requirements.txt --format json 2>/dev/null`;
108
+ }
109
+ return null;
110
+ }
111
+ /**
112
+ * Pure parser for `pip show pkg1 pkg2 ...` output. pip-show returns
113
+ * RFC-822-ish blocks separated by `---` with `Key: Value` lines. The
114
+ * fields we need:
115
+ *
116
+ * Name: foo
117
+ * Requires: a, b, c
118
+ * Required-by: x, y
119
+ *
120
+ * Empty `Required-by` identifies a package that nothing else in the
121
+ * env depends on — conventionally a directly-installed (top-level)
122
+ * package. Extracted so the builder below can be unit-tested without
123
+ * a live pip invocation.
124
+ */
125
+ function parsePipShowOutput(raw) {
126
+ const graph = new Map();
127
+ // pip separates blocks with a line containing exactly '---'.
128
+ const blocks = raw.split(/^---\s*$/m);
129
+ for (const block of blocks) {
130
+ let name = null;
131
+ let requires = [];
132
+ let requiredBy = [];
133
+ for (const line of block.split('\n')) {
134
+ const m = line.match(/^(Name|Requires|Required-by):\s*(.*)$/i);
135
+ if (!m)
136
+ continue;
137
+ const key = m[1].toLowerCase();
138
+ const val = m[2].trim();
139
+ if (key === 'name')
140
+ name = val;
141
+ else if (key === 'requires') {
142
+ requires = val
143
+ .split(',')
144
+ .map((s) => s.trim())
145
+ .filter(Boolean);
146
+ }
147
+ else if (key === 'required-by') {
148
+ requiredBy = val
149
+ .split(',')
150
+ .map((s) => s.trim())
151
+ .filter(Boolean);
152
+ }
153
+ }
154
+ if (name)
155
+ graph.set(name, { requires, requiredBy });
156
+ }
157
+ return graph;
158
+ }
159
+ /**
160
+ * BFS the parsed pip-show graph to produce a per-package-name index of
161
+ * its top-level ancestors. Top-levels are packages with empty
162
+ * `Required-by` — nothing else in the environment depends on them, so
163
+ * they were installed as direct deps.
164
+ *
165
+ * Pure function; testable with fabricated graphs.
166
+ */
167
+ function buildPyTopLevelDepIndex(graph) {
168
+ const topLevels = [];
169
+ for (const [name, meta] of graph) {
170
+ if (meta.requiredBy.length === 0)
171
+ topLevels.push(name);
172
+ }
173
+ const result = new Map();
174
+ for (const top of topLevels) {
175
+ const visited = new Set();
176
+ const queue = [top];
177
+ while (queue.length > 0) {
178
+ const name = queue.shift();
179
+ if (visited.has(name))
180
+ continue;
181
+ visited.add(name);
182
+ const bucket = result.get(name) ?? new Set();
183
+ bucket.add(top);
184
+ result.set(name, bucket);
185
+ const meta = graph.get(name);
186
+ if (!meta)
187
+ continue;
188
+ for (const child of meta.requires) {
189
+ if (!visited.has(child))
190
+ queue.push(child);
191
+ }
192
+ }
193
+ }
194
+ const sorted = new Map();
195
+ for (const [k, v] of result)
196
+ sorted.set(k, [...v].sort());
197
+ return sorted;
198
+ }
199
+ /**
200
+ * Invoke `pip list` + `pip show --all` against the project's venv and
201
+ * build the top-level attribution index. Returns an empty map when no
202
+ * venv is present or either pip command fails — attribution stays
203
+ * unset, mirroring the TS pack's lockfile-missing case.
204
+ */
205
+ function loadPyTopLevelDepIndex(cwd) {
206
+ const venvPython = findPyProjectVenvPython(cwd);
207
+ if (!venvPython)
208
+ return new Map();
209
+ const listRaw = (0, runner_1.run)(`${venvPython} -m pip list --format=json 2>/dev/null`, cwd, 60000);
210
+ if (!listRaw)
211
+ return new Map();
212
+ let list;
213
+ try {
214
+ list = JSON.parse(listRaw);
215
+ }
216
+ catch {
217
+ return new Map();
218
+ }
219
+ const names = list.map((x) => x.name).filter((n) => !!n);
220
+ if (names.length === 0)
221
+ return new Map();
222
+ // pip show accepts multiple package names in one call; stays well
223
+ // under shell arg-length limits for realistic envs (O(100) pkgs).
224
+ const showRaw = (0, runner_1.run)(`${venvPython} -m pip show ${names.join(' ')} 2>/dev/null`, cwd, 60000);
225
+ if (!showRaw)
226
+ return new Map();
227
+ return buildPyTopLevelDepIndex(parsePipShowOutput(showRaw));
228
+ }
85
229
  /**
86
230
  * Single source of truth for the python pack's dep-vuln gathering.
87
231
  * Consumed by `pyDepVulnsProvider` (capability dispatcher).
@@ -90,7 +234,10 @@ async function gatherPyDepVulnsResult(cwd) {
90
234
  const pipAudit = (0, tool_registry_1.findTool)(tool_registry_1.TOOL_DEFS['pip-audit'], cwd);
91
235
  if (!pipAudit.available || !pipAudit.path)
92
236
  return { kind: 'tool-missing' };
93
- const raw = (0, runner_1.run)(`${pipAudit.path} --format json 2>/dev/null`, cwd, 120000);
237
+ const cmd = buildPipAuditCommand(cwd, pipAudit.path);
238
+ if (!cmd)
239
+ return { kind: 'tool-missing' };
240
+ const raw = (0, runner_1.run)(cmd, cwd, 120000);
94
241
  if (!raw)
95
242
  return { kind: 'no-output' };
96
243
  try {
@@ -102,29 +249,103 @@ async function gatherPyDepVulnsResult(cwd) {
102
249
  vulnIds.push(v.id);
103
250
  }
104
251
  }
105
- // pip-audit doesn't carry severity per vuln — look up via OSV.dev.
106
- // Unknown/unreachable IDs fall back to medium (pip-audit's legacy default).
107
- const severities = await (0, osv_1.enrichSeverities)(vulnIds);
252
+ // pip-audit doesn't carry severity or CVSS per vuln — look up via
253
+ // OSV.dev. Unknown/unreachable IDs fall back to medium (pip-audit's
254
+ // legacy default). cvssScore is attached to findings when available.
255
+ const enriched = await (0, osv_1.enrichOsv)(vulnIds);
108
256
  let critical = 0;
109
257
  let high = 0;
110
258
  let medium = 0;
111
259
  let low = 0;
112
260
  let enrichedCount = 0;
113
- for (const id of vulnIds) {
114
- const sev = severities.get(id);
261
+ const resolveSeverity = (id) => {
262
+ const detail = enriched.get(id);
263
+ const sev = detail?.severity;
115
264
  if (sev && sev !== 'unknown') {
116
265
  enrichedCount++;
117
266
  if (sev === 'critical')
267
+ return 'critical';
268
+ if (sev === 'high')
269
+ return 'high';
270
+ if (sev === 'medium')
271
+ return 'medium';
272
+ return 'low';
273
+ }
274
+ return 'medium';
275
+ };
276
+ // Lazy-built: only load the top-level index when we have at least
277
+ // one finding. Saves a pip list + pip show invocation on clean
278
+ // projects. The index is built once even if multiple findings
279
+ // reference the same package.
280
+ let topLevelIndex = null;
281
+ const getTopLevel = (pkg) => {
282
+ if (topLevelIndex === null)
283
+ topLevelIndex = loadPyTopLevelDepIndex(cwd);
284
+ const parents = topLevelIndex.get(pkg);
285
+ return parents && parents.length > 0 ? parents : undefined;
286
+ };
287
+ const findings = [];
288
+ for (const dep of data.dependencies || []) {
289
+ for (const v of dep.vulns || []) {
290
+ if (!v.id)
291
+ continue;
292
+ const severity = resolveSeverity(v.id);
293
+ if (severity === 'critical')
118
294
  critical++;
119
- else if (sev === 'high')
295
+ else if (severity === 'high')
120
296
  high++;
121
- else if (sev === 'medium')
297
+ else if (severity === 'medium')
122
298
  medium++;
123
299
  else
124
300
  low++;
301
+ const finding = {
302
+ id: v.id,
303
+ package: dep.name ?? 'unknown',
304
+ installedVersion: dep.version,
305
+ tool: 'pip-audit',
306
+ severity,
307
+ };
308
+ // Embedded score from the primary enrichment pass; alias-fallback
309
+ // happens in the batched resolveCvssScores call after this loop.
310
+ const primaryCvss = enriched.get(v.id)?.cvssScore;
311
+ if (primaryCvss !== null && primaryCvss !== undefined)
312
+ finding.cvssScore = primaryCvss;
313
+ // pip-audit returns sorted fix versions ascending; the first is the
314
+ // minimal upgrade that resolves the issue.
315
+ if (v.fix_versions && v.fix_versions.length > 0) {
316
+ finding.fixedVersion = v.fix_versions[0];
317
+ }
318
+ // Filter empty alias entries — ECHO advisories occasionally emit [].
319
+ const aliases = (v.aliases ?? []).filter((a) => a && a.length > 0);
320
+ if (aliases.length > 0)
321
+ finding.aliases = aliases;
322
+ if (v.description)
323
+ finding.summary = v.description;
324
+ // pip-audit doesn't carry advisory URLs; OSV.dev hosts a canonical
325
+ // page per vulnerability id, so synthesize the reference. Render
326
+ // layer can override if a tool-supplied URL becomes available later.
327
+ finding.references = [`https://osv.dev/vulnerability/${v.id}`];
328
+ const parents = getTopLevel(finding.package);
329
+ if (parents)
330
+ finding.topLevelDep = parents;
331
+ findings.push(finding);
125
332
  }
126
- else {
127
- medium++;
333
+ }
334
+ // Alias-fallback CVSS pass: PYSEC-* records on OSV.dev frequently
335
+ // lack CVSS vectors that the corresponding CVE alias carries (the
336
+ // pip ecosystem assigns PYSEC ids before CVEs land). When primary
337
+ // lookup misses, we re-query each alias to fill the score.
338
+ if (findings.length > 0) {
339
+ const cvssInputs = findings.map((f) => ({
340
+ primaryId: f.id,
341
+ embeddedCvss: f.cvssScore ?? null,
342
+ aliases: f.aliases ?? [],
343
+ }));
344
+ const resolved = await (0, osv_1.resolveCvssScores)(cvssInputs);
345
+ for (const f of findings) {
346
+ const score = resolved.get(f.id);
347
+ if (score !== null && score !== undefined)
348
+ f.cvssScore = score;
128
349
  }
129
350
  }
130
351
  const envelope = {
@@ -132,6 +353,7 @@ async function gatherPyDepVulnsResult(cwd) {
132
353
  tool: 'pip-audit',
133
354
  enrichment: enrichedCount > 0 ? 'osv.dev' : null,
134
355
  counts: { critical, high, medium, low },
356
+ findings,
135
357
  };
136
358
  return { kind: 'success', envelope };
137
359
  }
@@ -364,6 +586,144 @@ const pyTestFrameworkProvider = {
364
586
  return gatherPyTestFrameworkResult(cwd);
365
587
  },
366
588
  };
589
+ /**
590
+ * Check whether an absolute path points at a runnable Python
591
+ * interpreter (a file; Windows `python.exe` not yet supported —
592
+ * matches the pre-10h.4.4 behavior).
593
+ */
594
+ function isPyExecutable(abs) {
595
+ try {
596
+ return fs.statSync(abs).isFile();
597
+ }
598
+ catch {
599
+ return false;
600
+ }
601
+ }
602
+ /**
603
+ * Given a candidate venv root directory, return the path to its
604
+ * `bin/python[3]` binary if present, or null otherwise. Extracted so
605
+ * the fallback chain below can reuse it across detection strategies.
606
+ */
607
+ function venvRootToPython(venvRoot) {
608
+ for (const exe of ['python', 'python3']) {
609
+ const candidate = path.join(venvRoot, 'bin', exe);
610
+ if (isPyExecutable(candidate))
611
+ return candidate;
612
+ }
613
+ return null;
614
+ }
615
+ /**
616
+ * Locate the project's own Python interpreter.
617
+ *
618
+ * Detection order (fail-cheap first, subprocess last):
619
+ * 1. `./.venv` or `./venv` under cwd — uv default, in-project
620
+ * poetry (`virtualenvs.in-project = true`), hand-rolled venvs.
621
+ * Zero-cost stat() checks.
622
+ * 2. `$VIRTUAL_ENV` env var — set by `source .venv/bin/activate`
623
+ * and poetry shell. Catches externally-activated envs.
624
+ * 3. `poetry env info --path` — external poetry venvs
625
+ * (default `virtualenvs.in-project = false` on most installs;
626
+ * env lives in `~/.cache/pypoetry/virtualenvs/<hash>`).
627
+ * 4. `pipenv --venv` — pipenv default stores elsewhere too.
628
+ *
629
+ * Returns null if no venv is resolvable — the provider then skips
630
+ * cleanly rather than falling through to pip-licenses's install env
631
+ * (which would report dxkit's own packages, not the project's).
632
+ */
633
+ function findPyProjectVenvPython(cwd) {
634
+ // 1. Conventional in-project venv roots (fast path).
635
+ for (const dir of ['.venv', 'venv']) {
636
+ const p = venvRootToPython(path.join(cwd, dir));
637
+ if (p)
638
+ return p;
639
+ }
640
+ // 2. Caller-activated env (poetry shell, source activate, etc.).
641
+ const active = process.env.VIRTUAL_ENV;
642
+ if (active) {
643
+ const p = venvRootToPython(active);
644
+ if (p)
645
+ return p;
646
+ }
647
+ // 3. External poetry venv. `poetry env info --path` returns the
648
+ // active env's root directory on stdout or nothing if no env.
649
+ const poetryPath = (0, runner_1.run)('poetry env info --path 2>/dev/null', cwd, 10000).trim();
650
+ if (poetryPath) {
651
+ const p = venvRootToPython(poetryPath);
652
+ if (p)
653
+ return p;
654
+ }
655
+ // 4. External pipenv venv.
656
+ const pipenvPath = (0, runner_1.run)('pipenv --venv 2>/dev/null', cwd, 10000).trim();
657
+ if (pipenvPath) {
658
+ const p = venvRootToPython(pipenvPath);
659
+ if (p)
660
+ return p;
661
+ }
662
+ return null;
663
+ }
664
+ /**
665
+ * Single source of truth for the python pack's license gathering.
666
+ * Consumed by `pyLicensesProvider` (capability dispatcher).
667
+ *
668
+ * Gating is strict — both a Python manifest AND a project venv are
669
+ * required. Reason: pip-licenses operates on the active Python
670
+ * environment, so invoking it without `--python <project-venv>` would
671
+ * report whatever packages are installed in dxkit's graphify-venv
672
+ * (i.e. garbage). Returns null when either prerequisite is missing so
673
+ * the dispatcher drops the pack cleanly.
674
+ */
675
+ function gatherPyLicensesResult(cwd) {
676
+ const hasManifest = (0, runner_1.fileExists)(cwd, 'pyproject.toml') ||
677
+ (0, runner_1.fileExists)(cwd, 'setup.py') ||
678
+ (0, runner_1.fileExists)(cwd, 'requirements.txt') ||
679
+ (0, runner_1.fileExists)(cwd, 'Pipfile');
680
+ if (!hasManifest)
681
+ return null;
682
+ const venvPython = findPyProjectVenvPython(cwd);
683
+ if (!venvPython)
684
+ return null;
685
+ const status = (0, tool_registry_1.findTool)(tool_registry_1.TOOL_DEFS['pip-licenses'], cwd);
686
+ if (!status.available || !status.path)
687
+ return null;
688
+ const raw = (0, runner_1.run)(`${status.path} --python ${venvPython} --format=json --with-license-file --no-license-path --with-description --with-urls --with-authors 2>/dev/null`, cwd, 120000);
689
+ if (!raw)
690
+ return null;
691
+ let data;
692
+ try {
693
+ data = JSON.parse(raw);
694
+ }
695
+ catch {
696
+ return null;
697
+ }
698
+ if (!Array.isArray(data))
699
+ return null;
700
+ const findings = [];
701
+ for (const entry of data) {
702
+ if (!entry.Name || !entry.Version)
703
+ continue;
704
+ const licenseType = entry.License && entry.License !== 'UNKNOWN' ? entry.License : 'UNKNOWN';
705
+ findings.push({
706
+ package: entry.Name,
707
+ version: entry.Version,
708
+ licenseType,
709
+ licenseText: entry.LicenseText && entry.LicenseText !== 'UNKNOWN' ? entry.LicenseText : undefined,
710
+ sourceUrl: entry.URL && entry.URL !== 'UNKNOWN' ? entry.URL : undefined,
711
+ description: entry.Description && entry.Description !== 'UNKNOWN' ? entry.Description : undefined,
712
+ supplier: entry.Author && entry.Author !== 'UNKNOWN' ? entry.Author : undefined,
713
+ });
714
+ }
715
+ return {
716
+ schemaVersion: 1,
717
+ tool: 'pip-licenses',
718
+ findings,
719
+ };
720
+ }
721
+ const pyLicensesProvider = {
722
+ source: 'python',
723
+ async gather(cwd) {
724
+ return gatherPyLicensesResult(cwd);
725
+ },
726
+ };
367
727
  exports.python = {
368
728
  id: 'python',
369
729
  displayName: 'Python',
@@ -377,7 +737,7 @@ exports.python = {
377
737
  (0, runner_1.fileExists)(cwd, 'Pipfile') ||
378
738
  hasPyFileWithinDepth(cwd, 2));
379
739
  },
380
- tools: ['ruff', 'pip-audit', 'coverage-py'],
740
+ tools: ['ruff', 'pip-audit', 'coverage-py', 'pip-licenses'],
381
741
  semgrepRulesets: ['p/python'],
382
742
  capabilities: {
383
743
  depVulns: pyDepVulnsProvider,
@@ -385,6 +745,7 @@ exports.python = {
385
745
  coverage: pyCoverageProvider,
386
746
  imports: pyImportsProvider,
387
747
  testFramework: pyTestFrameworkProvider,
748
+ licenses: pyLicensesProvider,
388
749
  },
389
750
  mapLintSeverity: mapRuffSeverity,
390
751
  };
@@ -1 +1 @@
1
- {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/languages/python.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/languages/python.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Coverage } from '../analyzers/tools/coverage';
2
+ import type { DepVulnFinding, SeverityCounts } from './capabilities/types';
2
3
  import type { LanguageSupport, LintSeverity } from './types';
3
4
  /**
4
5
  * Tier a clippy or rustc lint by its code name.
@@ -12,6 +13,33 @@ import type { LanguageSupport, LintSeverity } from './types';
12
13
  * `deprecated` are meaningful but rarely critical.
13
14
  */
14
15
  export declare function mapClippyLintSeverity(code: string | undefined): LintSeverity;
16
+ /**
17
+ * Pure parser for `cargo-audit --json` output. Extracted from the gather
18
+ * function so it can be exhaustively unit-tested without a real Cargo
19
+ * toolchain on the dev machine (10h.5 release-time validation runs the
20
+ * full pipeline). Returns null when the input is malformed or contains
21
+ * no vulnerabilities object; otherwise returns counts + findings ready
22
+ * for downstream alias-fallback enrichment.
23
+ */
24
+ export declare function parseCargoAuditOutput(raw: string): {
25
+ counts: SeverityCounts;
26
+ findings: DepVulnFinding[];
27
+ } | null;
28
+ /**
29
+ * Pure parser for `cargo metadata --format-version 1`, returning a
30
+ * per-crate-name index of the top-level manifest deps that transitively
31
+ * pull that crate. Mirrors the TS pack's `buildTsTopLevelDepIndex`
32
+ * shape so bom + HTML renders can use identical grouping logic.
33
+ *
34
+ * Cargo's resolve graph uses opaque package ids (e.g.
35
+ * `openssl 0.10.50 (registry+...)`). We map id→name via `packages[]`
36
+ * and then BFS starting from each direct dep of `resolve.root`
37
+ * (derived from the workspace root's `resolve.nodes[i].dependencies`).
38
+ *
39
+ * Returns an empty map on malformed input rather than throwing — the
40
+ * caller keeps attribution unset so dep-vuln gather still succeeds.
41
+ */
42
+ export declare function buildRustTopLevelDepIndex(raw: string): Map<string, string[]>;
15
43
  /**
16
44
  * Capture Rust `use` path specifiers from source text. Handles simple
17
45
  * paths (`use std::io;`) and grouped (`use std::{io, fs};`). Rust has
@@ -1 +1 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../src/languages/rust.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,6BAA6B,CAAC;AAgB1E,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAyE7D;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAM5E;AAuJD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ/D;AAkED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAyCvF;AAED,eAAO,MAAM,IAAI,EAAE,eA0BlB,CAAC"}
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../src/languages/rust.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,6BAA6B,CAAC;AAO1E,OAAO,KAAK,EAEV,cAAc,EAQd,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAyE7D;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAM5E;AA+DD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG,IAAI,CAmE/D;AAiBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAoD5E;AA2KD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ/D;AAuID,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAyCvF;AAED,eAAO,MAAM,IAAI,EAAE,eA2BlB,CAAC"}