svelte-vitals 0.45.1 → 0.46.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/dist/bin.js +33 -25
- package/dist/{chunk-4O5F7EUJ.js → chunk-2RQRPUCR.js} +1 -1
- package/dist/{chunk-O2CQPUSP.js → chunk-4ZE7NBVE.js} +3 -8
- package/dist/{chunk-ACQ5HB32.js → chunk-6BUOZU6F.js} +1 -1
- package/dist/{chunk-F5P3REI7.js → chunk-CTMKTFST.js} +3 -2
- package/dist/{chunk-VNVRHWO3.js → chunk-FVN7R2YK.js} +31 -41
- package/dist/{chunk-MBOONBC4.js → chunk-X7BU4DLG.js} +1 -3
- package/dist/{chunk-P4YNVJUO.js → chunk-Z2DBOC5X.js} +1 -1
- package/dist/{ci-CLKU3TR6.js → ci-TFTS5QAU.js} +2 -2
- package/dist/{complete-HGLO72TI.js → complete-7TW5PTE6.js} +16 -8
- package/dist/{docs-CRZC47P7.js → docs-WRZT4ZJN.js} +1 -1
- package/dist/{explain-52QDQUOY.js → explain-W3BU3CYJ.js} +1 -1
- package/dist/gunshi-registry.js +4 -4
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/{install-3FI7M5BM.js → install-EP364SRT.js} +2 -2
- package/package.json +2 -2
package/dist/bin.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runAnalyzeCliGunshi
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-Z2DBOC5X.js";
|
|
5
|
+
import "./chunk-FVN7R2YK.js";
|
|
6
6
|
import "./chunk-MUIOPL5F.js";
|
|
7
7
|
import "./chunk-M5KM5SV7.js";
|
|
8
8
|
import {
|
|
@@ -18,29 +18,34 @@ import {
|
|
|
18
18
|
|
|
19
19
|
// src/cli.ts
|
|
20
20
|
async function runCli(argv, io = consoleIO, env = process.env) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
try {
|
|
22
|
+
const locale = resolveLocale(env);
|
|
23
|
+
if (argv[0] === "complete") {
|
|
24
|
+
const { runCompleteCliGunshi } = await import("./complete-7TW5PTE6.js");
|
|
25
|
+
return { code: await runCompleteCliGunshi(argv, io), exit: "natural" };
|
|
26
|
+
}
|
|
27
|
+
if (argv[0] === "docs") {
|
|
28
|
+
const { runDocsCliGunshi } = await import("./docs-WRZT4ZJN.js");
|
|
29
|
+
return { code: await runDocsCliGunshi(argv.slice(1), io, locale), exit: "natural" };
|
|
30
|
+
}
|
|
31
|
+
if (argv[0] === "explain") {
|
|
32
|
+
const { runExplainCliGunshi } = await import("./explain-W3BU3CYJ.js");
|
|
33
|
+
return { code: await runExplainCliGunshi(argv.slice(1), io, locale), exit: "natural" };
|
|
34
|
+
}
|
|
35
|
+
if (argv[0] === "install") {
|
|
36
|
+
const { runInstallCliGunshi } = await import("./install-EP364SRT.js");
|
|
37
|
+
return { code: await runInstallCliGunshi(argv.slice(1), io, locale), exit: "immediate" };
|
|
38
|
+
}
|
|
39
|
+
if (argv[0] === "ci") {
|
|
40
|
+
const { runCiCliGunshi } = await import("./ci-TFTS5QAU.js");
|
|
41
|
+
const code = await runCiCliGunshi(argv.slice(1), { ...realIO(), log: io.log, errorLog: io.errorLog }, locale);
|
|
42
|
+
return { code, exit: "immediate" };
|
|
43
|
+
}
|
|
44
|
+
return await runAnalyzeCliGunshi(argv, io, locale);
|
|
45
|
+
} catch (err) {
|
|
46
|
+
io.errorLog(`svelte-vitals: ${err instanceof Error ? err.message : String(err)}`);
|
|
47
|
+
return { code: 2, exit: "natural" };
|
|
25
48
|
}
|
|
26
|
-
if (argv[0] === "docs") {
|
|
27
|
-
const { runDocsCliGunshi } = await import("./docs-CRZC47P7.js");
|
|
28
|
-
return { code: await runDocsCliGunshi(argv.slice(1), io, locale), exit: "natural" };
|
|
29
|
-
}
|
|
30
|
-
if (argv[0] === "explain") {
|
|
31
|
-
const { runExplainCliGunshi } = await import("./explain-52QDQUOY.js");
|
|
32
|
-
return { code: await runExplainCliGunshi(argv.slice(1), io, locale), exit: "natural" };
|
|
33
|
-
}
|
|
34
|
-
if (argv[0] === "install") {
|
|
35
|
-
const { runInstallCliGunshi } = await import("./install-3FI7M5BM.js");
|
|
36
|
-
return { code: await runInstallCliGunshi(argv.slice(1), io, locale), exit: "immediate" };
|
|
37
|
-
}
|
|
38
|
-
if (argv[0] === "ci") {
|
|
39
|
-
const { runCiCliGunshi } = await import("./ci-CLKU3TR6.js");
|
|
40
|
-
const code = await runCiCliGunshi(argv.slice(1), { ...realIO(), log: io.log, errorLog: io.errorLog }, locale);
|
|
41
|
-
return { code, exit: "immediate" };
|
|
42
|
-
}
|
|
43
|
-
return runAnalyzeCliGunshi(argv, io, locale);
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
// src/bin.ts
|
|
@@ -52,4 +57,7 @@ async function main() {
|
|
|
52
57
|
process.exitCode = code;
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
|
-
|
|
60
|
+
main().catch((err) => {
|
|
61
|
+
console.error(`svelte-vitals: ${err instanceof Error ? err.message : String(err)}`);
|
|
62
|
+
process.exit(2);
|
|
63
|
+
});
|
|
@@ -17,10 +17,7 @@ import {
|
|
|
17
17
|
import { cli } from "gunshi/bone";
|
|
18
18
|
import { define } from "gunshi/definition";
|
|
19
19
|
import "gunshi/generator";
|
|
20
|
-
import { explainRule
|
|
21
|
-
|
|
22
|
-
// src/explain.ts
|
|
23
|
-
import { allRules, CATEGORIES } from "@svelte-vitals/core";
|
|
20
|
+
import { explainRule, allRules, CATEGORIES } from "@svelte-vitals/core";
|
|
24
21
|
function describeOptions(id, options) {
|
|
25
22
|
const MERGE = {
|
|
26
23
|
integer: "replaces the default",
|
|
@@ -56,8 +53,6 @@ function renderRuleList() {
|
|
|
56
53
|
"\n\n"
|
|
57
54
|
);
|
|
58
55
|
}
|
|
59
|
-
|
|
60
|
-
// src/gunshi/explain.ts
|
|
61
56
|
var BOOLEAN_FLAGS = ["json", "list", "help"];
|
|
62
57
|
var KNOWN_LONG_FLAGS = new Set(BOOLEAN_FLAGS);
|
|
63
58
|
var KNOWN_SHORT_FLAGS = /* @__PURE__ */ new Set(["h"]);
|
|
@@ -113,7 +108,7 @@ async function runExplainCliGunshi(args, io = consoleIO, locale = "en") {
|
|
|
113
108
|
}
|
|
114
109
|
io.log(
|
|
115
110
|
ctx.values.json ? JSON.stringify(
|
|
116
|
-
|
|
111
|
+
allRules.map((r) => ({ id: r.id, category: r.category, severity: r.severity, title: r.title })),
|
|
117
112
|
null,
|
|
118
113
|
2
|
|
119
114
|
) : renderRuleList()
|
|
@@ -130,7 +125,7 @@ async function runExplainCliGunshi(args, io = consoleIO, locale = "en") {
|
|
|
130
125
|
exitCode = 2;
|
|
131
126
|
return;
|
|
132
127
|
}
|
|
133
|
-
const info =
|
|
128
|
+
const info = explainRule(id);
|
|
134
129
|
if (!info) {
|
|
135
130
|
io.errorLog(`svelte-vitals: unknown rule id '${id}'.`);
|
|
136
131
|
const hint = suggestClosest(id, knownRuleIds());
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/ci/workflow.ts
|
|
2
2
|
var WORKFLOW_PATH = ".github/workflows/svelte-vitals.yml";
|
|
3
|
-
var CHECKOUT_SHA = "
|
|
4
|
-
var CHECKOUT_VERSION = "v7.0.
|
|
3
|
+
var CHECKOUT_SHA = "3d3c42e5aac5ba805825da76410c181273ba90b1";
|
|
4
|
+
var CHECKOUT_VERSION = "v7.0.1";
|
|
5
5
|
function planWorkflowWrite(existing, force) {
|
|
6
6
|
if (existing === void 0) return { status: "created" };
|
|
7
7
|
if (!force) return { status: "exists" };
|
|
@@ -28,6 +28,7 @@ function buildWorkflowYaml(opts) {
|
|
|
28
28
|
` - uses: actions/checkout@${CHECKOUT_SHA} # ${CHECKOUT_VERSION}`,
|
|
29
29
|
" with:",
|
|
30
30
|
" fetch-depth: 0",
|
|
31
|
+
" persist-credentials: false",
|
|
31
32
|
` - uses: oekazuma/svelte-vitals-action@${actionSha} # v${actionVersion}`,
|
|
32
33
|
" with:",
|
|
33
34
|
" diff: origin/${{ github.base_ref }}",
|
|
@@ -32,7 +32,9 @@ import {
|
|
|
32
32
|
applyRuleSeverities,
|
|
33
33
|
applyOverrides,
|
|
34
34
|
settingSeverity,
|
|
35
|
-
withFailedRulesOff
|
|
35
|
+
withFailedRulesOff,
|
|
36
|
+
formatFailedRuleWarning,
|
|
37
|
+
terminalSafe
|
|
36
38
|
} from "@svelte-vitals/core";
|
|
37
39
|
|
|
38
40
|
// src/runtime/node.ts
|
|
@@ -1002,15 +1004,16 @@ function applySuppressions(results, entries, config, allResults) {
|
|
|
1002
1004
|
}
|
|
1003
1005
|
|
|
1004
1006
|
// src/color.ts
|
|
1007
|
+
import { styleText } from "util";
|
|
1005
1008
|
import { noColorPalette } from "@svelte-vitals/core";
|
|
1006
|
-
var wrap = (
|
|
1009
|
+
var wrap = (format) => (s) => styleText(format, s, { validateStream: false });
|
|
1007
1010
|
var ansiPalette = {
|
|
1008
|
-
bold: wrap(
|
|
1009
|
-
dim: wrap(
|
|
1010
|
-
red: wrap(
|
|
1011
|
-
yellow: wrap(
|
|
1012
|
-
green: wrap(
|
|
1013
|
-
cyan: wrap(
|
|
1011
|
+
bold: wrap("bold"),
|
|
1012
|
+
dim: wrap("dim"),
|
|
1013
|
+
red: wrap("red"),
|
|
1014
|
+
yellow: wrap("yellow"),
|
|
1015
|
+
green: wrap("green"),
|
|
1016
|
+
cyan: wrap("cyan")
|
|
1014
1017
|
};
|
|
1015
1018
|
function colorEnabled(opts) {
|
|
1016
1019
|
if (opts.noColorFlag) return false;
|
|
@@ -1021,28 +1024,6 @@ function colorEnabled(opts) {
|
|
|
1021
1024
|
}
|
|
1022
1025
|
var paletteFor = (enabled) => enabled ? ansiPalette : noColorPalette;
|
|
1023
1026
|
|
|
1024
|
-
// src/spinner.ts
|
|
1025
|
-
var FRAMES = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
|
|
1026
|
-
function startSpinner(text, opts) {
|
|
1027
|
-
const stream = opts.stream ?? process.stderr;
|
|
1028
|
-
if (!opts.enabled) return { stop() {
|
|
1029
|
-
} };
|
|
1030
|
-
let i = 0;
|
|
1031
|
-
const tick = () => {
|
|
1032
|
-
stream.write(`\r${FRAMES[i % FRAMES.length]} ${text}`);
|
|
1033
|
-
i++;
|
|
1034
|
-
};
|
|
1035
|
-
tick();
|
|
1036
|
-
const timer = setInterval(tick, 80);
|
|
1037
|
-
if (typeof timer.unref === "function") timer.unref();
|
|
1038
|
-
return {
|
|
1039
|
-
stop() {
|
|
1040
|
-
clearInterval(timer);
|
|
1041
|
-
stream.write("\r\x1B[K");
|
|
1042
|
-
}
|
|
1043
|
-
};
|
|
1044
|
-
}
|
|
1045
|
-
|
|
1046
1027
|
// src/mascot.ts
|
|
1047
1028
|
import { createLogUpdate } from "log-update";
|
|
1048
1029
|
function mascotStateFor(score) {
|
|
@@ -1119,24 +1100,28 @@ function renderConfettiFrame(offset, mascotBlock) {
|
|
|
1119
1100
|
return [confettiRow(offset), mascotBlock, confettiRow(offset + 2)].join("\n");
|
|
1120
1101
|
}
|
|
1121
1102
|
var IDLE_TICK_MS = 160;
|
|
1103
|
+
var PLAIN_FRAMES = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
|
|
1104
|
+
var PLAIN_TICK_MS = 80;
|
|
1122
1105
|
function startMascotSpinner(text, opts) {
|
|
1123
1106
|
if (!opts.enabled) return { stop() {
|
|
1124
1107
|
} };
|
|
1125
1108
|
const stream = opts.stream ?? process.stderr;
|
|
1109
|
+
const mascot = opts.mascot ?? true;
|
|
1126
1110
|
const render = createLogUpdate(stream);
|
|
1127
1111
|
let i = 0;
|
|
1128
1112
|
const tick = () => {
|
|
1129
|
-
render(`${renderMascotIdleFrame(i)}
|
|
1130
|
-
${text}`);
|
|
1113
|
+
render(mascot ? `${renderMascotIdleFrame(i)}
|
|
1114
|
+
${text}` : `${PLAIN_FRAMES[i % PLAIN_FRAMES.length]} ${text}`);
|
|
1131
1115
|
i++;
|
|
1132
1116
|
};
|
|
1133
1117
|
tick();
|
|
1134
|
-
const timer = setInterval(tick, IDLE_TICK_MS);
|
|
1118
|
+
const timer = setInterval(tick, mascot ? IDLE_TICK_MS : PLAIN_TICK_MS);
|
|
1135
1119
|
if (typeof timer.unref === "function") timer.unref();
|
|
1136
1120
|
return {
|
|
1137
1121
|
stop() {
|
|
1138
1122
|
clearInterval(timer);
|
|
1139
1123
|
render.clear();
|
|
1124
|
+
render.done();
|
|
1140
1125
|
}
|
|
1141
1126
|
};
|
|
1142
1127
|
}
|
|
@@ -1307,7 +1292,7 @@ function skippedFileWarnings(facts) {
|
|
|
1307
1292
|
];
|
|
1308
1293
|
}
|
|
1309
1294
|
function failedRuleWarnings(failedRules) {
|
|
1310
|
-
return failedRules.map(
|
|
1295
|
+
return failedRules.map(formatFailedRuleWarning);
|
|
1311
1296
|
}
|
|
1312
1297
|
async function analyzeProject(opts = {}) {
|
|
1313
1298
|
const cwd = opts.cwd ?? process.cwd();
|
|
@@ -1355,22 +1340,22 @@ async function analyzeProject(opts = {}) {
|
|
|
1355
1340
|
sourceFiles
|
|
1356
1341
|
});
|
|
1357
1342
|
const results = applyOverrides(applyRuleSeverities(rawResults, config), config);
|
|
1358
|
-
const
|
|
1359
|
-
|
|
1360
|
-
failedRules.map((f) => f.id)
|
|
1361
|
-
);
|
|
1343
|
+
const failedRuleIds = failedRules.map((f) => f.id);
|
|
1344
|
+
const scoringConfig = withFailedRulesOff(config, failedRuleIds);
|
|
1362
1345
|
return {
|
|
1363
1346
|
results,
|
|
1364
1347
|
config: scoringConfig,
|
|
1365
1348
|
version: readPackageVersion(),
|
|
1366
1349
|
ruleIds: rules.map((r) => r.id),
|
|
1367
1350
|
examined,
|
|
1351
|
+
failedRuleIds,
|
|
1368
1352
|
warnings: [...warnings, ...skippedFileWarnings([...components, ...kitModules]), ...failedRuleWarnings(failedRules)],
|
|
1369
1353
|
loadedConfig: loaded
|
|
1370
1354
|
};
|
|
1371
1355
|
}
|
|
1372
1356
|
async function applyScope(results, opts) {
|
|
1373
|
-
const
|
|
1357
|
+
const rawErrorLog = opts.errorLog ?? ((line) => console.error(line));
|
|
1358
|
+
const errorLog = (line) => rawErrorLog(terminalSafe(line));
|
|
1374
1359
|
let scoped = results;
|
|
1375
1360
|
if (opts.staged || opts.diffBase !== void 0) {
|
|
1376
1361
|
const changed = opts.staged ? getChangedFiles(opts.cwd, { staged: true }) : getChangedFiles(opts.cwd, { base: opts.diffBase });
|
|
@@ -1433,7 +1418,8 @@ function runAnalyzeOptions(opts) {
|
|
|
1433
1418
|
}
|
|
1434
1419
|
async function run(opts = {}) {
|
|
1435
1420
|
const log = opts.log ?? ((line) => console.log(line));
|
|
1436
|
-
const
|
|
1421
|
+
const rawErrorLog = opts.errorLog ?? ((line) => console.error(line));
|
|
1422
|
+
const errorLog = (line) => rawErrorLog(terminalSafe(line));
|
|
1437
1423
|
if (opts.minHealth != null && (!Number.isFinite(opts.minHealth) || opts.minHealth < 0 || opts.minHealth > 100)) {
|
|
1438
1424
|
errorLog(`svelte-vitals: invalid minHealth '${opts.minHealth}'; expected a number 0-100.`);
|
|
1439
1425
|
return 2;
|
|
@@ -1452,7 +1438,11 @@ async function run(opts = {}) {
|
|
|
1452
1438
|
if (useMascotSpinner && bubbleFitsWidth(stderrStream.columns)) {
|
|
1453
1439
|
await playMascotGreeting({ enabled: true, stream: stderrStream, holdMs: opts.animationFrameDelayMs });
|
|
1454
1440
|
}
|
|
1455
|
-
const spinner =
|
|
1441
|
+
const spinner = startMascotSpinner("Analyzing\u2026", {
|
|
1442
|
+
enabled: spinnerBaseEnabled,
|
|
1443
|
+
stream: stderrStream,
|
|
1444
|
+
mascot: useMascotSpinner
|
|
1445
|
+
});
|
|
1456
1446
|
let cwd = opts.cwd ?? process.cwd();
|
|
1457
1447
|
let analysis;
|
|
1458
1448
|
try {
|
|
@@ -53,7 +53,7 @@ var EMBEDDED_DOCS = [
|
|
|
53
53
|
}
|
|
54
54
|
];
|
|
55
55
|
|
|
56
|
-
// src/docs
|
|
56
|
+
// src/gunshi/docs.ts
|
|
57
57
|
var DOCS_HELP = `svelte-vitals docs \u2014 read the bundled guides without leaving the terminal
|
|
58
58
|
|
|
59
59
|
Usage:
|
|
@@ -83,8 +83,6 @@ function renderList() {
|
|
|
83
83
|
"Rule-level detail is a separate command: `svelte-vitals explain --list`."
|
|
84
84
|
].join("\n");
|
|
85
85
|
}
|
|
86
|
-
|
|
87
|
-
// src/gunshi/docs.ts
|
|
88
86
|
var BOOLEAN_FLAGS = ["json", "help"];
|
|
89
87
|
var HELP_ARG = { help: { type: "boolean", short: "h", description: "Show this help" } };
|
|
90
88
|
var JSON_ARG = { json: { type: "boolean", description: "Machine-readable output (list only)" } };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ROOT_ARGS
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-Z2DBOC5X.js";
|
|
4
|
+
import "./chunk-FVN7R2YK.js";
|
|
5
5
|
import {
|
|
6
6
|
DOCS_LIST_ARGS,
|
|
7
7
|
DOCS_ROOT_ARGS,
|
|
8
8
|
DOCS_SHOW_ARGS
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-X7BU4DLG.js";
|
|
10
10
|
import {
|
|
11
11
|
EXPLAIN_ARGS
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-4ZE7NBVE.js";
|
|
13
13
|
import {
|
|
14
14
|
INSTALL_ARGS
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2RQRPUCR.js";
|
|
16
16
|
import {
|
|
17
17
|
CATEGORIES,
|
|
18
18
|
FAIL_ON_VALUES,
|
|
@@ -28,8 +28,8 @@ import "./chunk-TFBLQUAC.js";
|
|
|
28
28
|
import {
|
|
29
29
|
CI_ARGS,
|
|
30
30
|
CI_UPGRADE_ARGS
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
} from "./chunk-6BUOZU6F.js";
|
|
32
|
+
import "./chunk-CTMKTFST.js";
|
|
33
33
|
import "./chunk-GE7TKVTX.js";
|
|
34
34
|
import "./chunk-NMVBVKLX.js";
|
|
35
35
|
|
|
@@ -43,7 +43,15 @@ function forCompletion(args) {
|
|
|
43
43
|
const out = {};
|
|
44
44
|
for (const [key, schema] of Object.entries(args)) {
|
|
45
45
|
if (schema.hidden) continue;
|
|
46
|
-
|
|
46
|
+
const outKey = schema.type === "positional" || !schema.toKebab ? key : kebabnize(key);
|
|
47
|
+
const description = schema.description?.replace(/\s*\n\s*/g, " ");
|
|
48
|
+
out[outKey] = description === schema.description ? schema : { ...schema, description };
|
|
49
|
+
}
|
|
50
|
+
for (const [key, schema] of Object.entries(out)) {
|
|
51
|
+
const stripped = key.startsWith("no-") ? key.slice(3) : void 0;
|
|
52
|
+
if (stripped && !(stripped in out)) {
|
|
53
|
+
out[stripped] = { type: "positional", required: false, description: schema.description };
|
|
54
|
+
}
|
|
47
55
|
}
|
|
48
56
|
return out;
|
|
49
57
|
}
|
package/dist/gunshi-registry.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ROOT_ARGS
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-Z2DBOC5X.js";
|
|
4
|
+
import "./chunk-FVN7R2YK.js";
|
|
5
5
|
import {
|
|
6
6
|
JA_ARG_DESCRIPTIONS
|
|
7
7
|
} from "./chunk-MHRO4GU7.js";
|
|
8
8
|
import {
|
|
9
9
|
INSTALL_ARGS
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-2RQRPUCR.js";
|
|
11
11
|
import "./chunk-MUIOPL5F.js";
|
|
12
12
|
import "./chunk-M5KM5SV7.js";
|
|
13
13
|
import "./chunk-SLUMRYUD.js";
|
|
14
14
|
import "./chunk-TFBLQUAC.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-CTMKTFST.js";
|
|
16
16
|
import "./chunk-GE7TKVTX.js";
|
|
17
17
|
import "./chunk-NMVBVKLX.js";
|
|
18
18
|
export {
|
package/dist/index.d.ts
CHANGED
|
@@ -231,6 +231,8 @@ interface AnalyzeResult {
|
|
|
231
231
|
ruleIds: string[];
|
|
232
232
|
/** Per-rule, per-declaration counts of places examined, unfiltered by `--diff`/`--baseline`/suppressions. */
|
|
233
233
|
examined: Record<string, Record<string, number>>;
|
|
234
|
+
/** Ids of rules `runRules` caught throwing — already folded into `config` via `withFailedRulesOff`; exposed separately so a caller with its own base config (the vite dev dashboard) can apply the same correction without adopting this call's `config`. */
|
|
235
|
+
failedRuleIds: string[];
|
|
234
236
|
/** Non-fatal issues surfaced during analysis: config-file problems (unknown top-level keys, invalid enum values), version-floor notices, `--rules`/overrides conflicts, and skipped-file notices. Empty when none apply. */
|
|
235
237
|
warnings: string[];
|
|
236
238
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
INSTALL_ARGS,
|
|
3
3
|
runInstallCliGunshi
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2RQRPUCR.js";
|
|
5
5
|
import "./chunk-MUIOPL5F.js";
|
|
6
6
|
import "./chunk-M5KM5SV7.js";
|
|
7
7
|
import "./chunk-SLUMRYUD.js";
|
|
8
8
|
import "./chunk-TFBLQUAC.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-CTMKTFST.js";
|
|
10
10
|
import "./chunk-GE7TKVTX.js";
|
|
11
11
|
import "./chunk-NMVBVKLX.js";
|
|
12
12
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svelte-vitals",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.0",
|
|
4
4
|
"description": "A deterministic SvelteKit code-health scanner (SEO, performance, correctness, security, architecture) — not a runtime Web Vitals reporter.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"magicast": "^0.5.4",
|
|
53
53
|
"svelte": "^5.56.8",
|
|
54
54
|
"tinyglobby": "^0.2.17",
|
|
55
|
-
"@svelte-vitals/core": "0.
|
|
55
|
+
"@svelte-vitals/core": "0.42.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@gunshi/docs": "0.37.1",
|