@vyuhlabs/dxkit 2.4.4 → 2.4.6

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 (61) hide show
  1. package/CHANGELOG.md +339 -0
  2. package/README.md +33 -19
  3. package/dist/analyzers/tests/index.d.ts.map +1 -1
  4. package/dist/analyzers/tests/index.js +2 -0
  5. package/dist/analyzers/tests/index.js.map +1 -1
  6. package/dist/analyzers/tools/coverage.d.ts +1 -1
  7. package/dist/analyzers/tools/coverage.d.ts.map +1 -1
  8. package/dist/analyzers/tools/coverage.js.map +1 -1
  9. package/dist/analyzers/tools/jacoco.d.ts +76 -0
  10. package/dist/analyzers/tools/jacoco.d.ts.map +1 -0
  11. package/dist/analyzers/tools/jacoco.js +228 -0
  12. package/dist/analyzers/tools/jacoco.js.map +1 -0
  13. package/dist/analyzers/tools/osv-scanner-deps.d.ts +47 -0
  14. package/dist/analyzers/tools/osv-scanner-deps.d.ts.map +1 -0
  15. package/dist/analyzers/tools/osv-scanner-deps.js +175 -0
  16. package/dist/analyzers/tools/osv-scanner-deps.js.map +1 -0
  17. package/dist/analyzers/tools/osv-scanner-fix.d.ts +20 -0
  18. package/dist/analyzers/tools/osv-scanner-fix.d.ts.map +1 -1
  19. package/dist/analyzers/tools/osv-scanner-fix.js +45 -20
  20. package/dist/analyzers/tools/osv-scanner-fix.js.map +1 -1
  21. package/dist/analyzers/tools/runner.d.ts +47 -0
  22. package/dist/analyzers/tools/runner.d.ts.map +1 -1
  23. package/dist/analyzers/tools/runner.js +79 -0
  24. package/dist/analyzers/tools/runner.js.map +1 -1
  25. package/dist/analyzers/tools/tool-registry.d.ts +10 -0
  26. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  27. package/dist/analyzers/tools/tool-registry.js +131 -0
  28. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  29. package/dist/cli.d.ts.map +1 -1
  30. package/dist/cli.js +36 -2
  31. package/dist/cli.js.map +1 -1
  32. package/dist/constants.d.ts +2 -0
  33. package/dist/constants.d.ts.map +1 -1
  34. package/dist/languages/index.d.ts.map +1 -1
  35. package/dist/languages/index.js +12 -1
  36. package/dist/languages/index.js.map +1 -1
  37. package/dist/languages/java.d.ts +67 -0
  38. package/dist/languages/java.d.ts.map +1 -0
  39. package/dist/languages/java.js +421 -0
  40. package/dist/languages/java.js.map +1 -0
  41. package/dist/languages/kotlin.d.ts +1 -52
  42. package/dist/languages/kotlin.d.ts.map +1 -1
  43. package/dist/languages/kotlin.js +16 -286
  44. package/dist/languages/kotlin.js.map +1 -1
  45. package/dist/languages/ruby.d.ts +77 -0
  46. package/dist/languages/ruby.d.ts.map +1 -0
  47. package/dist/languages/ruby.js +531 -0
  48. package/dist/languages/ruby.js.map +1 -0
  49. package/dist/languages/types.d.ts +9 -1
  50. package/dist/languages/types.d.ts.map +1 -1
  51. package/dist/tools-cli.d.ts +16 -1
  52. package/dist/tools-cli.d.ts.map +1 -1
  53. package/dist/tools-cli.js +69 -6
  54. package/dist/tools-cli.js.map +1 -1
  55. package/dist/types.d.ts +1 -1
  56. package/dist/types.d.ts.map +1 -1
  57. package/package.json +2 -1
  58. package/templates/.claude/rules/java.md +11 -0
  59. package/templates/.claude/rules/ruby.md +11 -0
  60. package/templates/configs/java/README.md +6 -0
  61. package/templates/configs/ruby/README.md +6 -0
@@ -36,15 +36,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.kotlin = void 0;
37
37
  exports.mapDetektSeverity = mapDetektSeverity;
38
38
  exports.parseDetektCheckstyleXml = parseDetektCheckstyleXml;
39
- exports.parseJaCoCoXml = parseJaCoCoXml;
40
- exports.parseOsvScannerMavenFindings = parseOsvScannerMavenFindings;
41
39
  exports.extractKotlinImportsRaw = extractKotlinImportsRaw;
42
40
  const fs = __importStar(require("fs"));
43
41
  const os = __importStar(require("os"));
44
42
  const path = __importStar(require("path"));
45
- const coverage_1 = require("../analyzers/tools/coverage");
43
+ const jacoco_1 = require("../analyzers/tools/jacoco");
44
+ const osv_scanner_deps_1 = require("../analyzers/tools/osv-scanner-deps");
46
45
  const exclusions_1 = require("../analyzers/tools/exclusions");
47
- const osv_1 = require("../analyzers/tools/osv");
48
46
  const runner_1 = require("../analyzers/tools/runner");
49
47
  const tool_registry_1 = require("../analyzers/tools/tool-registry");
50
48
  // ─── Detection ──────────────────────────────────────────────────────────────
@@ -218,296 +216,28 @@ const kotlinLintProvider = {
218
216
  },
219
217
  };
220
218
  // ─── Coverage (JaCoCo XML) ──────────────────────────────────────────────────
221
- /**
222
- * Pure parser for JaCoCo's XML report (DTD: `report.dtd`). The structure:
223
- *
224
- * <report name="...">
225
- * <package name="com/example">
226
- * <class name="com/example/Foo" sourcefilename="Foo.kt">...</class>
227
- * <sourcefile name="Foo.kt">
228
- * <line nr="N" mi="..." ci="..." mb="..." cb="..."/>
229
- * <counter type="LINE" missed="X" covered="Y"/>
230
- * </sourcefile>
231
- * <counter type="LINE" missed="X" covered="Y"/>
232
- * </package>
233
- * <counter type="LINE" missed="X" covered="Y"/>
234
- * </report>
235
- *
236
- * Per-file coverage comes from `<sourcefile>` blocks: their LINE counter
237
- * holds the file's missed/covered totals. Project-level total comes from
238
- * the top-level `<counter type="LINE">` (last in the document).
239
- *
240
- * Path attribution joins `<package name>` (forward-slashed, JVM-style)
241
- * with `<sourcefile name>` to produce the canonical relative path the
242
- * downstream consumers expect (`com/example/Foo.kt`). JVM bytecode
243
- * namespacing isn't 1:1 with on-disk source paths in multi-module
244
- * projects — accepted limitation (matches C#'s cobertura attribution).
245
- *
246
- * Returns null when no `<counter type="LINE">` exists at the top level
247
- * — that's JaCoCo's "no coverage data" signal, distinct from "0%
248
- * coverage" (where the counter exists with covered=0).
249
- *
250
- * Exported for unit tests; consumed by `gatherKotlinCoverageResult`.
251
- */
252
- function parseJaCoCoXml(raw, sourceFile, _cwd) {
253
- const files = new Map();
254
- // Iterate <package> blocks. Each block contains <sourcefile> children
255
- // we tally and aggregate counters we can ignore (they're sums of the
256
- // children, redundant given we sum the children ourselves).
257
- const packageRe = /<package\s+name="([^"]+)">([\s\S]*?)<\/package>/g;
258
- let pm;
259
- while ((pm = packageRe.exec(raw)) !== null) {
260
- const pkgPath = pm[1].replace(/\\/g, '/'); // JVM uses forward-slashes already; defensive
261
- const pkgInner = pm[2];
262
- // Within a <package>, <sourcefile> blocks own per-file counters.
263
- const sourceFileRe = /<sourcefile\s+name="([^"]+)">([\s\S]*?)<\/sourcefile>/g;
264
- let sm;
265
- while ((sm = sourceFileRe.exec(pkgInner)) !== null) {
266
- const fileName = sm[1];
267
- const sourceInner = sm[2];
268
- // The LAST <counter type="LINE"> in <sourcefile> is the
269
- // file-level aggregate; earlier ones are per-method. We pick the
270
- // last to get the full-file roll-up.
271
- const counterRe = /<counter\s+type="LINE"\s+missed="(\d+)"\s+covered="(\d+)"\s*\/>/g;
272
- let lastMissed = 0;
273
- let lastCovered = 0;
274
- let cm;
275
- while ((cm = counterRe.exec(sourceInner)) !== null) {
276
- lastMissed = parseInt(cm[1], 10);
277
- lastCovered = parseInt(cm[2], 10);
278
- }
279
- const total = lastMissed + lastCovered;
280
- const rel = pkgPath ? `${pkgPath}/${fileName}` : fileName;
281
- files.set(rel, {
282
- path: rel,
283
- covered: lastCovered,
284
- total,
285
- pct: (0, coverage_1.round1)(total > 0 ? (lastCovered / total) * 100 : 0),
286
- });
287
- }
288
- }
289
- // Top-level project-wide LINE counter — JaCoCo emits it after the
290
- // last </package>. Use a non-greedy match against the document tail
291
- // to avoid grabbing per-package counters as project-level.
292
- const tailMatch = raw.match(/<\/package>\s*<counter\s+type="LINE"\s+missed="(\d+)"\s+covered="(\d+)"\s*\/>\s*<\/report>/);
293
- let totalMissed = 0;
294
- let totalCovered = 0;
295
- if (tailMatch) {
296
- totalMissed = parseInt(tailMatch[1], 10);
297
- totalCovered = parseInt(tailMatch[2], 10);
298
- }
299
- else {
300
- // No project-level counter (degenerate report — single package, no
301
- // explicit roll-up). Sum the per-file totals as the linePercent
302
- // basis.
303
- for (const f of files.values()) {
304
- totalCovered += f.covered;
305
- totalMissed += f.total - f.covered;
306
- }
307
- }
308
- const grandTotal = totalCovered + totalMissed;
309
- if (grandTotal === 0 && files.size === 0)
310
- return null;
311
- return {
312
- source: 'jacoco',
313
- sourceFile,
314
- linePercent: (0, coverage_1.round1)(grandTotal > 0 ? (totalCovered / grandTotal) * 100 : 0),
315
- files,
316
- };
317
- }
318
- /**
319
- * Standard JaCoCo report locations across project layouts:
320
- * - app/build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml
321
- * (Android default — `app` module, `jacocoTestReport` task)
322
- * - build/reports/jacoco/test/jacocoTestReport.xml
323
- * (plain JVM Kotlin via the `jacoco` plugin's default `test` task)
324
- * - build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml
325
- * (multi-module aggregate; many builds rename the task)
326
- * - jacocoTestReport.xml (top-level — fixture / direct path)
327
- *
328
- * Multi-module projects emit per-module reports under `<module>/build/...`;
329
- * the cross-ecosystem fixture in step 5 will calibrate which paths show
330
- * up reliably. Until then, the list above is conservative-priority: most
331
- * specific (app-module) first, root fallback last.
332
- */
333
- function findJaCoCoReport(cwd) {
334
- const candidates = [
335
- 'app/build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml',
336
- 'build/reports/jacoco/test/jacocoTestReport.xml',
337
- 'build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml',
338
- 'jacocoTestReport.xml',
339
- ];
340
- for (const rel of candidates) {
341
- const abs = path.join(cwd, rel);
342
- if (fs.existsSync(abs))
343
- return rel;
344
- }
345
- return null;
346
- }
347
- function gatherKotlinCoverageResult(cwd) {
348
- const reportRel = findJaCoCoReport(cwd);
349
- if (!reportRel)
350
- return null;
351
- let raw;
352
- try {
353
- raw = fs.readFileSync(path.join(cwd, reportRel), 'utf-8');
354
- }
355
- catch {
356
- return null;
357
- }
358
- const coverage = parseJaCoCoXml(raw, reportRel, cwd);
359
- if (!coverage)
360
- return null;
361
- return { schemaVersion: 1, tool: `coverage:${coverage.source}`, coverage };
362
- }
219
+ //
220
+ // Parser, finder, and gather glue all live in `src/analyzers/tools/jacoco.ts`
221
+ // — language-agnostic SSOT (CLAUDE.md rule #2). The kotlin pack just
222
+ // declares its provider and delegates. Java pack does the same.
363
223
  const kotlinCoverageProvider = {
364
224
  source: 'kotlin',
365
225
  async gather(cwd) {
366
- return gatherKotlinCoverageResult(cwd);
226
+ return (0, jacoco_1.gatherJaCoCoCoverageResult)(cwd);
367
227
  },
368
228
  };
369
- /**
370
- * Pure parser for osv-scanner v2.x JSON output, scoped to Maven
371
- * findings only. Other ecosystems (npm, PyPI, Go) are filtered out so
372
- * polyglot repos don't double-count: the typescript pack handles npm,
373
- * the python pack handles PyPI, etc. The kotlin pack owns Maven.
374
- *
375
- * Returns counts + findings + the raw OSV vuln records for downstream
376
- * CVSS resolution. Exported for unit tests.
377
- */
378
- function parseOsvScannerMavenFindings(raw) {
379
- const counts = { critical: 0, high: 0, medium: 0, low: 0 };
380
- const findings = [];
381
- const vulnsForCvss = [];
382
- let data;
383
- try {
384
- data = JSON.parse(raw);
385
- }
386
- catch {
387
- return { counts, findings, vulnsForCvss };
388
- }
389
- // Dedup at the source: osv-scanner can list the same advisory twice
390
- // when a transitive dep is reachable through multiple top-level deps.
391
- // Same (package, version, id) → same fingerprint, so collapse here.
392
- const seen = new Set();
393
- for (const result of data.results ?? []) {
394
- for (const pkg of result.packages ?? []) {
395
- if (pkg.package?.ecosystem !== 'Maven')
396
- continue;
397
- const pkgName = pkg.package.name ?? 'unknown';
398
- const pkgVersion = pkg.package.version;
399
- for (const vuln of pkg.vulnerabilities ?? []) {
400
- if (!vuln.id)
401
- continue;
402
- const dedupKey = `${pkgName}\0${pkgVersion ?? ''}\0${vuln.id}`;
403
- if (seen.has(dedupKey))
404
- continue;
405
- seen.add(dedupKey);
406
- const sev = (0, osv_1.classifyOsvSeverity)(vuln);
407
- const tier = sev === 'critical' || sev === 'high' || sev === 'medium' || sev === 'low'
408
- ? sev
409
- : 'medium';
410
- counts[tier]++;
411
- const cvss = (0, osv_1.extractOsvCvssScore)(vuln);
412
- const aliases = (vuln.aliases ?? []).filter((a) => a && a.length > 0);
413
- const finding = {
414
- id: vuln.id,
415
- package: pkgName,
416
- installedVersion: pkgVersion,
417
- tool: 'osv-scanner',
418
- severity: tier,
419
- };
420
- if (cvss !== null)
421
- finding.cvssScore = cvss;
422
- if (aliases.length > 0)
423
- finding.aliases = aliases;
424
- if (vuln.summary)
425
- finding.summary = vuln.summary;
426
- // OSV.dev hosts a canonical page per id — synthesize when the
427
- // record's `references[]` is empty, otherwise keep the
428
- // tool-supplied URLs.
429
- const refUrls = (vuln.references ?? []).map((r) => r.url).filter((u) => !!u);
430
- finding.references =
431
- refUrls.length > 0 ? refUrls : [`https://osv.dev/vulnerability/${vuln.id}`];
432
- findings.push(finding);
433
- vulnsForCvss.push({
434
- primaryId: vuln.id,
435
- embeddedCvss: cvss,
436
- aliases,
437
- });
438
- }
439
- }
440
- }
441
- return { counts, findings, vulnsForCvss };
442
- }
443
- /**
444
- * Single source of truth for the kotlin pack's dep-vuln gathering.
445
- * Consumed by `kotlinDepVulnsProvider` (capability dispatcher).
446
- *
447
- * Tool choice: osv-scanner is the established multi-ecosystem scanner;
448
- * no Tier-1 native equivalent exists for Maven/Gradle (CLAUDE.md rule
449
- * #5). osv-scanner-fix.ts in the typescript pack uses the `fix`
450
- * subcommand for upgrade planning — different mode, no shared logic.
451
- *
452
- * Manifest gating: osv-scanner reads `pom.xml`, `gradle.lockfile`,
453
- * `gradle/verification-metadata.xml`, and (limited) `build.gradle`. Bare
454
- * `build.gradle.kts` is NOT a reliable input — gradle.lockfile is
455
- * preferred. Without any of these, return `tool-missing` (matches
456
- * python/csharp's manifest-gating pattern).
457
- */
458
- async function gatherKotlinDepVulnsResult(cwd) {
459
- // Find the most reliable manifest. Order matters: lockfile > pom.xml
460
- // > verification-metadata. We pass it explicitly via --lockfile so
461
- // osv-scanner doesn't fall back to its (unreliable) build.gradle.kts
462
- // parser. Multi-module Android projects with per-module lockfiles
463
- // are not yet handled — first-module-found is the v1 behaviour;
464
- // future enhancement scoped to 10j.x recipe-gap.
465
- const manifestCandidates = ['gradle.lockfile', 'pom.xml', 'gradle/verification-metadata.xml'];
466
- let manifest = null;
467
- for (const rel of manifestCandidates) {
468
- if ((0, runner_1.fileExists)(cwd, rel)) {
469
- manifest = rel;
470
- break;
471
- }
472
- }
473
- if (!manifest)
474
- return { kind: 'tool-missing' };
475
- const scanner = (0, tool_registry_1.findTool)(tool_registry_1.TOOL_DEFS['osv-scanner'], cwd);
476
- if (!scanner.available || !scanner.path)
477
- return { kind: 'tool-missing' };
478
- // `scan source --lockfile <path>` is the v2.x form. JSON output to
479
- // stdout. Exit code is non-zero when findings exist — we ignore the
480
- // exit code and parse the JSON regardless (run() already swallows
481
- // non-zero exits cleanly via execSync's catch).
482
- const raw = (0, runner_1.run)(`${scanner.path} scan source --lockfile ${manifest} --format json 2>/dev/null`, cwd, 180000);
483
- if (!raw)
484
- return { kind: 'no-output' };
485
- const { counts, findings, vulnsForCvss } = parseOsvScannerMavenFindings(raw);
486
- // CVSS alias-fallback: osv-scanner ships CVSS vectors when present,
487
- // but Maven advisories are inconsistent — some carry only
488
- // database_specific.severity strings. resolveCvssScores looks up via
489
- // CVE alias when the primary record lacks a vector.
490
- if (findings.length > 0) {
491
- const resolved = await (0, osv_1.resolveCvssScores)(vulnsForCvss);
492
- for (const f of findings) {
493
- const score = resolved.get(f.id);
494
- if (score !== null && score !== undefined)
495
- f.cvssScore = score;
496
- }
497
- }
498
- const envelope = {
499
- schemaVersion: 1,
500
- tool: 'osv-scanner',
501
- enrichment: 'osv.dev',
502
- counts,
503
- findings,
504
- };
505
- return { kind: 'success', envelope };
506
- }
229
+ // ─── DepVulns (osv-scanner against Maven manifests) ─────────────────────────
230
+ //
231
+ // Parser + gather glue live in `src/analyzers/tools/osv-scanner-deps.ts`
232
+ // language-agnostic SSOT (CLAUDE.md rule #2). Kotlin/Java/Ruby packs
233
+ // all delegate to the same module, parameterized by ecosystem string +
234
+ // manifest candidate list. parseOsvScannerFindings is exported there
235
+ // for unit tests.
236
+ const KOTLIN_DEP_MANIFESTS = ['gradle.lockfile', 'pom.xml', 'gradle/verification-metadata.xml'];
507
237
  const kotlinDepVulnsProvider = {
508
238
  source: 'kotlin',
509
239
  async gather(cwd) {
510
- const outcome = await gatherKotlinDepVulnsResult(cwd);
240
+ const outcome = await (0, osv_scanner_deps_1.gatherOsvScannerDepVulnsResult)(cwd, 'kotlin', 'Maven', KOTLIN_DEP_MANIFESTS);
511
241
  return outcome.kind === 'success' ? outcome.envelope : null;
512
242
  },
513
243
  };
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../src/languages/kotlin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../src/languages/kotlin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { type Coverage } from '../analyzers/tools/coverage';
2
+ import type { SeverityCounts } from './capabilities/types';
3
+ import type { LanguageSupport, LintSeverity } from './types';
4
+ /**
5
+ * Capture Ruby require / require_relative / autoload specifiers from source
6
+ * text. Three forms recognised:
7
+ *
8
+ * require 'json' → 'json'
9
+ * require_relative '../foo/bar' → '../foo/bar'
10
+ * autoload :Sym, 'foo/bar' → 'foo/bar'
11
+ *
12
+ * Ruby's metaprogramming (`__send__`, `Object.const_missing`, Rails'
13
+ * Zeitwerk autoloader) makes static import analysis fundamentally
14
+ * best-effort — many "imports" in idiomatic Ruby never appear as
15
+ * literal `require` calls. This parser extracts the literal-string
16
+ * cases only; downstream consumers should treat the output as a lower
17
+ * bound. Future v4 candidate: explicit best-effort contract on the
18
+ * imports envelope so consumers can distinguish "exhaustive" (TS, Go)
19
+ * from "best-effort" (Ruby, kotlin/Java reflection paths).
20
+ *
21
+ * Comments are stripped (single-line `#`) before matching so a
22
+ * commented-out `# require 'foo'` does not false-match. Multi-line
23
+ * `=begin ... =end` blocks containing requires are not extracted
24
+ * (acceptable: comment-out-import is intentional non-use).
25
+ *
26
+ * Both single and double quotes are accepted; dynamic `require x` (no
27
+ * literal string) is skipped — there is no specifier to capture.
28
+ *
29
+ * Exported for unit tests; consumed by `gatherRubyImportsResult`.
30
+ */
31
+ export declare function extractRubyImportsRaw(content: string): string[];
32
+ /**
33
+ * Map RuboCop's severity strings to dxkit's four-tier scheme. RuboCop
34
+ * canonically emits 5 severities (see `RuboCop::Cop::Severity::CODES`
35
+ * in the upstream source — `lib/rubocop/cop/severity.rb`):
36
+ *
37
+ * - `convention` → low (style + naming — the bulk of findings)
38
+ * - `refactor` → low (complexity hints; Metrics/* cops)
39
+ * - `warning` → medium (Lint/* cops — actual code-quality risk)
40
+ * - `error` → high (real defects; rare in default config)
41
+ * - `fatal` → critical (rubocop-internal failure or syntax error)
42
+ *
43
+ * Defensive `'low'` default for unknown severities — matches the
44
+ * mapDetektSeverity / mapRuffSeverity contract: never silently drop a
45
+ * finding, even if rubocop adds a new tier we don't recognize yet.
46
+ *
47
+ * Exported for unit tests.
48
+ */
49
+ export declare function mapRubocopSeverity(severity: string | null | undefined): LintSeverity;
50
+ /**
51
+ * Pure parser for RuboCop's JSON output (rubocop --format json). The
52
+ * shape is fixed per the upstream `RuboCop::Formatter::JSONFormatter`
53
+ * contract — `metadata` + `files[*].offenses[*]` + `summary`. We only
54
+ * need the offenses; metadata + summary are surface for future
55
+ * enrichment (per-file attribution, top-N rules) but not needed for
56
+ * the dxkit lint envelope which carries SeverityCounts only.
57
+ *
58
+ * Returns zero counts on malformed input rather than throwing —
59
+ * matches mapDetektSeverity / parseEslintFinal conventions. The
60
+ * gather function distinguishes "rubocop ran fine, found nothing"
61
+ * from "rubocop missing / parse error" via LintGatherOutcome's
62
+ * kind field.
63
+ *
64
+ * Exported for unit tests; consumed by `gatherRubyLintResult`.
65
+ */
66
+ export declare function parseRubocopOutput(raw: string): SeverityCounts;
67
+ /**
68
+ * Pure parser for SimpleCov `.resultset.json`. Returns null when the
69
+ * input has no parseable suites (empty file, missing `coverage` key,
70
+ * or malformed JSON) — distinct from "0% coverage" (where suites
71
+ * exist with zero hits).
72
+ *
73
+ * Exported for unit tests; consumed by `gatherSimpleCovCoverageResult`.
74
+ */
75
+ export declare function parseSimpleCovResultset(raw: string, sourceFile: string, cwd: string): Coverage | null;
76
+ export declare const ruby: LanguageSupport;
77
+ //# sourceMappingURL=ruby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../src/languages/ruby.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,6BAA6B,CAAC;AAMnG,OAAO,KAAK,EAMV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAqC7D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB/D;AAwHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAepF;AAkBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAc9D;AAuED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,QAAQ,GAAG,IAAI,CAmEjB;AAiFD,eAAO,MAAM,IAAI,EAAE,eAsDlB,CAAC"}