sickbay 1.7.2 → 1.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{DiffApp-G6CSKRKY.js → DiffApp-DWCFKL76.js} +2 -2
- package/dist/{DoctorApp-VNX6BNDX.js → DoctorApp-34RJBDQH.js} +3 -3
- package/dist/{FixApp-DO75A35F.js → FixApp-ACKQX74B.js} +3 -3
- package/dist/{StatsApp-ZU3M6ZEU.js → StatsApp-LDJCOMRP.js} +3 -3
- package/dist/{TrendApp-RQTELT4G.js → TrendApp-VRS26KIZ.js} +3 -3
- package/dist/{TuiApp-Z5SKIJ6G.js → TuiApp-WFFTJDBN.js} +3 -3
- package/dist/{chunk-J2EJZWTP.js → chunk-62Y4OWZR.js} +1 -1
- package/dist/{chunk-GTNHWGY5.js → chunk-BJB73W54.js} +1 -1
- package/dist/{chunk-O26ERRN2.js → chunk-NNX7USXK.js} +1 -0
- package/dist/config.js +1 -1
- package/dist/{dist-COP53OQ4.js → dist-DMTJ2B5B.js} +1 -1
- package/dist/index.js +21 -21
- package/dist/{init-NAO4S7IP.js → init-FCS5OK4X.js} +1 -1
- package/dist/{resolve-package-PF56UGTP.js → resolve-package-7SU5DE36.js} +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Header
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-62Y4OWZR.js";
|
|
4
4
|
|
|
5
5
|
// src/components/DiffApp.tsx
|
|
6
6
|
import React, { useState, useEffect } from "react";
|
|
@@ -119,7 +119,7 @@ function DiffApp({ projectPath, branch, jsonOutput, checks, verbose }) {
|
|
|
119
119
|
useEffect(() => {
|
|
120
120
|
(async () => {
|
|
121
121
|
try {
|
|
122
|
-
const { runSickbay } = await import("./dist-
|
|
122
|
+
const { runSickbay } = await import("./dist-DMTJ2B5B.js");
|
|
123
123
|
const currentReport = await runSickbay({
|
|
124
124
|
projectPath,
|
|
125
125
|
checks,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
shortName
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BJB73W54.js";
|
|
4
4
|
import {
|
|
5
5
|
Header
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-62Y4OWZR.js";
|
|
7
7
|
import {
|
|
8
8
|
detectPackageManager,
|
|
9
9
|
detectProject
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-NNX7USXK.js";
|
|
11
11
|
|
|
12
12
|
// src/components/DoctorApp.tsx
|
|
13
13
|
import React, { useState, useEffect } from "react";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
shortName
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BJB73W54.js";
|
|
4
4
|
import {
|
|
5
5
|
ProgressList
|
|
6
6
|
} from "./chunk-MBVA75EM.js";
|
|
7
7
|
import {
|
|
8
8
|
Header
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-62Y4OWZR.js";
|
|
10
10
|
import {
|
|
11
11
|
runSickbay
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-NNX7USXK.js";
|
|
13
13
|
|
|
14
14
|
// src/components/FixApp.tsx
|
|
15
15
|
import React, { useState, useEffect, useCallback } from "react";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
shortName
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BJB73W54.js";
|
|
4
4
|
import {
|
|
5
5
|
Header
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-62Y4OWZR.js";
|
|
7
7
|
import {
|
|
8
8
|
detectProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NNX7USXK.js";
|
|
10
10
|
|
|
11
11
|
// src/components/StatsApp.tsx
|
|
12
12
|
import React, { useState, useEffect } from "react";
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
} from "./chunk-SHO3ZXTH.js";
|
|
5
5
|
import {
|
|
6
6
|
shortName
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BJB73W54.js";
|
|
8
8
|
import {
|
|
9
9
|
Header
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-62Y4OWZR.js";
|
|
11
|
+
import "./chunk-NNX7USXK.js";
|
|
12
12
|
import {
|
|
13
13
|
detectRegressions,
|
|
14
14
|
loadHistory
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
detectMonorepo,
|
|
15
15
|
runSickbay,
|
|
16
16
|
runSickbayMonorepo
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-NNX7USXK.js";
|
|
18
18
|
import {
|
|
19
19
|
loadHistory
|
|
20
20
|
} from "./chunk-3OR2GFVE.js";
|
|
@@ -689,7 +689,7 @@ function TuiApp({
|
|
|
689
689
|
return () => timers.forEach(clearTimeout);
|
|
690
690
|
}, []);
|
|
691
691
|
useEffect7(() => {
|
|
692
|
-
checkForUpdate("1.7.
|
|
692
|
+
checkForUpdate("1.7.2").then((info) => {
|
|
693
693
|
if (info) setUpdateInfo(info);
|
|
694
694
|
});
|
|
695
695
|
}, []);
|
|
@@ -715,7 +715,7 @@ function TuiApp({
|
|
|
715
715
|
} catch {
|
|
716
716
|
}
|
|
717
717
|
try {
|
|
718
|
-
const { getDependencyTree } = await import("./dist-
|
|
718
|
+
const { getDependencyTree } = await import("./dist-DMTJ2B5B.js");
|
|
719
719
|
const { saveDepTree } = await import("./history-XLNVZEDI.js");
|
|
720
720
|
const tree = await getDependencyTree(projectPath, result.projectInfo.packageManager);
|
|
721
721
|
saveDepTree(projectPath, tree);
|
|
@@ -11,7 +11,7 @@ var ASCII_ART = `
|
|
|
11
11
|
A vitals health check for your app
|
|
12
12
|
`.trim();
|
|
13
13
|
function Header({ projectName }) {
|
|
14
|
-
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { color: "green" }, ASCII_ART), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, " v", "1.7.
|
|
14
|
+
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", marginBottom: 1 }, /* @__PURE__ */ React.createElement(Text, { color: "green" }, ASCII_ART), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, " v", "1.7.2")), projectName && /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { dimColor: true }, " Analyzing "), /* @__PURE__ */ React.createElement(Text, { bold: true, color: "white" }, projectName)));
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export {
|
|
@@ -2127,6 +2127,7 @@ var KnipRunner = class extends BaseRunner {
|
|
|
2127
2127
|
for (const fileIssue of data.issues ?? []) {
|
|
2128
2128
|
(fileIssue.files ?? []).forEach((f) => {
|
|
2129
2129
|
const filePath = f.name || fileIssue.file;
|
|
2130
|
+
if (/^sickbay\.config\.[cm]?[jt]s$/.test(filePath)) return;
|
|
2130
2131
|
unusedFiles.push(filePath);
|
|
2131
2132
|
issues.push({
|
|
2132
2133
|
severity: "warning",
|
package/dist/config.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
} from "./chunk-TYG7ZQBP.js";
|
|
9
9
|
import {
|
|
10
10
|
Header
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-62Y4OWZR.js";
|
|
12
12
|
import {
|
|
13
13
|
getScoreEmoji,
|
|
14
14
|
runSickbay,
|
|
15
15
|
runSickbayMonorepo
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-NNX7USXK.js";
|
|
17
17
|
|
|
18
18
|
// src/index.ts
|
|
19
19
|
import { existsSync } from "fs";
|
|
@@ -176,7 +176,7 @@ function App({
|
|
|
176
176
|
setMonorepoReport(r);
|
|
177
177
|
setProjectName(`monorepo (${r.packages.length} packages)`);
|
|
178
178
|
try {
|
|
179
|
-
const { getDependencyTree } = await import("./dist-
|
|
179
|
+
const { getDependencyTree } = await import("./dist-DMTJ2B5B.js");
|
|
180
180
|
const { saveDepTree } = await import("./history-XLNVZEDI.js");
|
|
181
181
|
const packages = {};
|
|
182
182
|
for (const pkg of r.packages) {
|
|
@@ -245,7 +245,7 @@ function App({
|
|
|
245
245
|
} catch {
|
|
246
246
|
}
|
|
247
247
|
try {
|
|
248
|
-
const { getDependencyTree } = await import("./dist-
|
|
248
|
+
const { getDependencyTree } = await import("./dist-DMTJ2B5B.js");
|
|
249
249
|
const { saveDepTree } = await import("./history-XLNVZEDI.js");
|
|
250
250
|
const tree = await getDependencyTree(projectPath, r.projectInfo.packageManager);
|
|
251
251
|
saveDepTree(projectPath, tree);
|
|
@@ -303,7 +303,7 @@ if (existsSync(globalConfigPath)) {
|
|
|
303
303
|
}
|
|
304
304
|
config({ debug: false, quiet: true });
|
|
305
305
|
var program = new Command();
|
|
306
|
-
program.name("sickbay").description("React project health check CLI").version("1.7.
|
|
306
|
+
program.name("sickbay").description("React project health check CLI").version("1.7.2", "-v, --version").enablePositionalOptions().passThroughOptions().option("-p, --path <path>", "project path to analyze", process.cwd()).option("-c, --checks <checks>", "comma-separated list of checks to run").option("--package <name>", "scope to a single named package (monorepo only)").option("--json", "output raw JSON report").option("--web", "open web dashboard after scan").option("--no-ai", "disable AI features").option("--no-quotes", "suppress personality quotes in output").option("--verbose", "show verbose output").action(async (options) => {
|
|
307
307
|
if (options.path && options.path !== process.cwd()) {
|
|
308
308
|
const projectEnvPath = join(options.path, ".env");
|
|
309
309
|
if (existsSync(projectEnvPath)) {
|
|
@@ -313,13 +313,13 @@ program.name("sickbay").description("React project health check CLI").version("1
|
|
|
313
313
|
const updatePromise = (async () => {
|
|
314
314
|
try {
|
|
315
315
|
const { checkForUpdate } = await import("./update-check-M7IFOMLJ.js");
|
|
316
|
-
return await checkForUpdate("1.7.
|
|
316
|
+
return await checkForUpdate("1.7.2");
|
|
317
317
|
} catch {
|
|
318
318
|
return null;
|
|
319
319
|
}
|
|
320
320
|
})();
|
|
321
321
|
const checks = options.checks ? options.checks.split(",").map((s) => s.trim()) : void 0;
|
|
322
|
-
const { detectMonorepo, runSickbay: runSickbay2, runSickbayMonorepo: runSickbayMonorepo2 } = await import("./dist-
|
|
322
|
+
const { detectMonorepo, runSickbay: runSickbay2, runSickbayMonorepo: runSickbayMonorepo2 } = await import("./dist-DMTJ2B5B.js");
|
|
323
323
|
const monorepoInfo = await detectMonorepo(options.path);
|
|
324
324
|
if (options.package && monorepoInfo.isMonorepo) {
|
|
325
325
|
const { readFileSync } = await import("fs");
|
|
@@ -383,7 +383,7 @@ program.name("sickbay").description("React project health check CLI").version("1
|
|
|
383
383
|
} catch {
|
|
384
384
|
}
|
|
385
385
|
try {
|
|
386
|
-
const { getDependencyTree } = await import("./dist-
|
|
386
|
+
const { getDependencyTree } = await import("./dist-DMTJ2B5B.js");
|
|
387
387
|
const { saveDepTree } = await import("./history-XLNVZEDI.js");
|
|
388
388
|
const tree = await getDependencyTree(options.path, report.projectInfo.packageManager);
|
|
389
389
|
saveDepTree(options.path, tree);
|
|
@@ -406,7 +406,7 @@ program.name("sickbay").description("React project health check CLI").version("1
|
|
|
406
406
|
);
|
|
407
407
|
});
|
|
408
408
|
program.command("init").description("Initialize .sickbay/ folder and run an initial baseline scan").option("-p, --path <path>", "project path to initialize", process.cwd()).action(async (options) => {
|
|
409
|
-
const { initSickbay } = await import("./init-
|
|
409
|
+
const { initSickbay } = await import("./init-FCS5OK4X.js");
|
|
410
410
|
await initSickbay(options.path);
|
|
411
411
|
});
|
|
412
412
|
program.command("fix").description("Interactively fix issues found by sickbay scan").option("-p, --path <path>", "project path to analyze", process.cwd()).option("-c, --checks <checks>", "comma-separated list of checks to run").option("--package <name>", "scope to a single package (monorepo only)").option("--all", "apply all available fixes without prompting").option("--dry-run", "show what would be fixed without executing").option("--verbose", "show verbose output").action(async (options) => {
|
|
@@ -416,9 +416,9 @@ program.command("fix").description("Interactively fix issues found by sickbay sc
|
|
|
416
416
|
config({ path: projectEnvPath, override: true });
|
|
417
417
|
}
|
|
418
418
|
}
|
|
419
|
-
const { resolveProject } = await import("./resolve-package-
|
|
419
|
+
const { resolveProject } = await import("./resolve-package-7SU5DE36.js");
|
|
420
420
|
const resolution = await resolveProject(options.path, options.package);
|
|
421
|
-
const { FixApp } = await import("./FixApp-
|
|
421
|
+
const { FixApp } = await import("./FixApp-ACKQX74B.js");
|
|
422
422
|
const checks = options.checks ? options.checks.split(",").map((s) => s.trim()) : void 0;
|
|
423
423
|
const projectPath = resolution.isMonorepo ? resolution.targetPath ?? options.path : resolution.targetPath;
|
|
424
424
|
render(
|
|
@@ -441,10 +441,10 @@ program.command("trend").description("Show score history and trends over time").
|
|
|
441
441
|
config({ path: projectEnvPath, override: true });
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
|
-
const { resolveProject } = await import("./resolve-package-
|
|
444
|
+
const { resolveProject } = await import("./resolve-package-7SU5DE36.js");
|
|
445
445
|
const resolution = await resolveProject(options.path, options.package);
|
|
446
446
|
const projectPath = resolution.isMonorepo ? resolution.targetPath ?? options.path : resolution.targetPath;
|
|
447
|
-
const { TrendApp } = await import("./TrendApp-
|
|
447
|
+
const { TrendApp } = await import("./TrendApp-VRS26KIZ.js");
|
|
448
448
|
render(
|
|
449
449
|
React6.createElement(TrendApp, {
|
|
450
450
|
projectPath,
|
|
@@ -463,10 +463,10 @@ program.command("stats").description("Show a quick codebase overview and project
|
|
|
463
463
|
config({ path: projectEnvPath, override: true });
|
|
464
464
|
}
|
|
465
465
|
}
|
|
466
|
-
const { resolveProject } = await import("./resolve-package-
|
|
466
|
+
const { resolveProject } = await import("./resolve-package-7SU5DE36.js");
|
|
467
467
|
const resolution = await resolveProject(options.path, options.package);
|
|
468
468
|
const projectPath = resolution.isMonorepo ? resolution.targetPath ?? options.path : resolution.targetPath;
|
|
469
|
-
const { StatsApp } = await import("./StatsApp-
|
|
469
|
+
const { StatsApp } = await import("./StatsApp-LDJCOMRP.js");
|
|
470
470
|
render(
|
|
471
471
|
React6.createElement(StatsApp, {
|
|
472
472
|
projectPath,
|
|
@@ -478,7 +478,7 @@ program.command("stats").description("Show a quick codebase overview and project
|
|
|
478
478
|
);
|
|
479
479
|
});
|
|
480
480
|
program.command("tui").description("Launch the persistent developer dashboard").option("-p, --path <path>", "project path to monitor", process.cwd()).option("--no-watch", "disable file-watching auto-refresh").option("--no-quotes", "suppress personality quotes in output").option("--refresh <seconds>", "auto-refresh interval in seconds", "300").option("-c, --checks <checks>", "comma-separated list of checks to run").action(async (options) => {
|
|
481
|
-
const { TuiApp } = await import("./TuiApp-
|
|
481
|
+
const { TuiApp } = await import("./TuiApp-WFFTJDBN.js");
|
|
482
482
|
const checks = options.checks ? options.checks.split(",").map((s) => s.trim()) : void 0;
|
|
483
483
|
render(
|
|
484
484
|
React6.createElement(TuiApp, {
|
|
@@ -498,10 +498,10 @@ program.command("doctor").description("Diagnose project setup and configuration
|
|
|
498
498
|
config({ path: projectEnvPath, override: true });
|
|
499
499
|
}
|
|
500
500
|
}
|
|
501
|
-
const { resolveProject } = await import("./resolve-package-
|
|
501
|
+
const { resolveProject } = await import("./resolve-package-7SU5DE36.js");
|
|
502
502
|
const resolution = await resolveProject(options.path, options.package);
|
|
503
503
|
const projectPath = resolution.isMonorepo ? resolution.targetPath ?? options.path : resolution.targetPath;
|
|
504
|
-
const { DoctorApp } = await import("./DoctorApp-
|
|
504
|
+
const { DoctorApp } = await import("./DoctorApp-34RJBDQH.js");
|
|
505
505
|
render(
|
|
506
506
|
React6.createElement(DoctorApp, {
|
|
507
507
|
projectPath,
|
|
@@ -514,13 +514,13 @@ program.command("doctor").description("Diagnose project setup and configuration
|
|
|
514
514
|
);
|
|
515
515
|
});
|
|
516
516
|
program.command("badge").description("Generate a health score badge for your README").option("-p, --path <path>", "project path", process.cwd()).option("--package <name>", "scope to a single package (monorepo only)").option("--html", "output HTML <img> tag instead of markdown").option("--url", "output bare badge URL only").option("--label <text>", "custom badge label", "sickbay").option("--scan", "run a fresh scan instead of using last report").action(async (options) => {
|
|
517
|
-
const { resolveProject } = await import("./resolve-package-
|
|
517
|
+
const { resolveProject } = await import("./resolve-package-7SU5DE36.js");
|
|
518
518
|
const resolution = await resolveProject(options.path, options.package);
|
|
519
519
|
const projectPath = resolution.isMonorepo ? resolution.targetPath ?? options.path : resolution.targetPath;
|
|
520
520
|
const { loadScoreFromLastReport, badgeUrl, badgeMarkdown, badgeHtml } = await import("./badge-KQ73KEIN.js");
|
|
521
521
|
let score = options.scan ? null : loadScoreFromLastReport(projectPath);
|
|
522
522
|
if (score === null) {
|
|
523
|
-
const { runSickbay: runSickbay2 } = await import("./dist-
|
|
523
|
+
const { runSickbay: runSickbay2 } = await import("./dist-DMTJ2B5B.js");
|
|
524
524
|
const report = await runSickbay2({ projectPath, quotes: false });
|
|
525
525
|
try {
|
|
526
526
|
const { saveEntry, saveLastReport } = await import("./history-XLNVZEDI.js");
|
|
@@ -549,7 +549,7 @@ program.command("diff <branch>").description("Compare health score against anoth
|
|
|
549
549
|
}
|
|
550
550
|
}
|
|
551
551
|
const checks = options.checks ? options.checks.split(",").map((s) => s.trim()) : void 0;
|
|
552
|
-
const { DiffApp } = await import("./DiffApp-
|
|
552
|
+
const { DiffApp } = await import("./DiffApp-DWCFKL76.js");
|
|
553
553
|
render(
|
|
554
554
|
React6.createElement(DiffApp, {
|
|
555
555
|
projectPath: options.path,
|