@shivaedev/quality 0.2.0 → 0.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/CHANGELOG.md +105 -0
- package/README.md +207 -35
- package/dist/baseline/compare.d.ts +3 -8
- package/dist/baseline/compare.d.ts.map +1 -1
- package/dist/baseline/compare.js +13 -23
- package/dist/baseline/compare.js.map +1 -1
- package/dist/baseline/format.d.ts +7 -5
- package/dist/baseline/format.d.ts.map +1 -1
- package/dist/baseline/format.js +31 -23
- package/dist/baseline/format.js.map +1 -1
- package/dist/baseline/guard.d.ts +23 -0
- package/dist/baseline/guard.d.ts.map +1 -0
- package/dist/baseline/guard.js +31 -0
- package/dist/baseline/guard.js.map +1 -0
- package/dist/baseline/legacy.d.ts +11 -0
- package/dist/baseline/legacy.d.ts.map +1 -0
- package/dist/baseline/legacy.js +33 -0
- package/dist/baseline/legacy.js.map +1 -0
- package/dist/baseline/rewrite.d.ts +3 -0
- package/dist/baseline/rewrite.d.ts.map +1 -0
- package/dist/baseline/rewrite.js +19 -0
- package/dist/baseline/rewrite.js.map +1 -0
- package/dist/baseline/update.d.ts +7 -6
- package/dist/baseline/update.d.ts.map +1 -1
- package/dist/baseline/update.js +28 -28
- package/dist/baseline/update.js.map +1 -1
- package/dist/cli/args.d.ts +14 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +54 -29
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/baseline.d.ts +3 -1
- package/dist/cli/baseline.d.ts.map +1 -1
- package/dist/cli/baseline.js +19 -10
- package/dist/cli/baseline.js.map +1 -1
- package/dist/cli/check.d.ts +5 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/check.js +39 -0
- package/dist/cli/check.js.map +1 -0
- package/dist/cli/lint.js +1 -1
- package/dist/cli/lint.js.map +1 -1
- package/dist/cli/migrate.d.ts +4 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +31 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/run-main.d.ts +2 -1
- package/dist/cli/run-main.d.ts.map +1 -1
- package/dist/cli/run-main.js +5 -2
- package/dist/cli/run-main.js.map +1 -1
- package/dist/cli/shrink.d.ts +6 -0
- package/dist/cli/shrink.d.ts.map +1 -0
- package/dist/cli/shrink.js +8 -0
- package/dist/cli/shrink.js.map +1 -0
- package/dist/cli.js +11 -2
- package/dist/cli.js.map +1 -1
- package/dist/config/decode.d.ts +1 -0
- package/dist/config/decode.d.ts.map +1 -1
- package/dist/config/decode.js +1 -0
- package/dist/config/decode.js.map +1 -1
- package/dist/config/file.d.ts +2 -0
- package/dist/config/file.d.ts.map +1 -0
- package/dist/config/file.js +2 -0
- package/dist/config/file.js.map +1 -0
- package/dist/config/load.d.ts +1 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +3 -2
- package/dist/config/load.js.map +1 -1
- package/dist/config/resolve.d.ts +1 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +6 -4
- package/dist/config/resolve.js.map +1 -1
- package/dist/config.d.ts +2 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/engine/baseline-file.d.ts +11 -0
- package/dist/engine/baseline-file.d.ts.map +1 -0
- package/dist/engine/baseline-file.js +18 -0
- package/dist/engine/baseline-file.js.map +1 -0
- package/dist/engine/evaluate.d.ts +2 -2
- package/dist/engine/evaluate.d.ts.map +1 -1
- package/dist/engine/evaluate.js +3 -3
- package/dist/engine/evaluate.js.map +1 -1
- package/dist/engine/session.d.ts +3 -5
- package/dist/engine/session.d.ts.map +1 -1
- package/dist/engine/session.js +12 -10
- package/dist/engine/session.js.map +1 -1
- package/dist/exceptions/registry.d.ts +1 -1
- package/dist/exceptions/registry.d.ts.map +1 -1
- package/dist/exceptions/registry.js +8 -3
- package/dist/exceptions/registry.js.map +1 -1
- package/dist/failure.d.ts +0 -2
- package/dist/failure.d.ts.map +1 -1
- package/dist/failure.js +0 -2
- package/dist/failure.js.map +1 -1
- package/dist/git/base.d.ts +9 -0
- package/dist/git/base.d.ts.map +1 -0
- package/dist/git/base.js +34 -0
- package/dist/git/base.js.map +1 -0
- package/dist/git/command.d.ts +12 -0
- package/dist/git/command.d.ts.map +1 -0
- package/dist/git/command.js +13 -0
- package/dist/git/command.js.map +1 -0
- package/dist/git/history.d.ts +10 -0
- package/dist/git/history.d.ts.map +1 -0
- package/dist/git/history.js +28 -0
- package/dist/git/history.js.map +1 -0
- package/dist/inventory/ignore-scope.d.ts.map +1 -1
- package/dist/inventory/ignore-scope.js +0 -1
- package/dist/inventory/ignore-scope.js.map +1 -1
- package/dist/inventory/walk.d.ts +0 -1
- package/dist/inventory/walk.d.ts.map +1 -1
- package/dist/inventory/walk.js +1 -1
- package/dist/inventory/walk.js.map +1 -1
- package/dist/report/guard.d.ts +9 -0
- package/dist/report/guard.d.ts.map +1 -0
- package/dist/report/guard.js +34 -0
- package/dist/report/guard.js.map +1 -0
- package/dist/report/render.js +1 -2
- package/dist/report/render.js.map +1 -1
- package/dist/report/stale.d.ts.map +1 -1
- package/dist/report/stale.js +4 -3
- package/dist/report/stale.js.map +1 -1
- package/dist/rule.d.ts +4 -7
- package/dist/rule.d.ts.map +1 -1
- package/dist/rule.js +1 -1
- package/dist/rule.js.map +1 -1
- package/dist/rules/built-in.d.ts +17 -0
- package/dist/rules/built-in.d.ts.map +1 -1
- package/dist/rules/built-in.js +21 -1
- package/dist/rules/built-in.js.map +1 -1
- package/dist/rules/comments/kinds.d.ts +9 -0
- package/dist/rules/comments/kinds.d.ts.map +1 -0
- package/dist/rules/comments/kinds.js +34 -0
- package/dist/rules/comments/kinds.js.map +1 -0
- package/dist/rules/comments/max-per-file.d.ts +5 -0
- package/dist/rules/comments/max-per-file.d.ts.map +1 -0
- package/dist/rules/comments/max-per-file.js +39 -0
- package/dist/rules/comments/max-per-file.js.map +1 -0
- package/dist/rules/comments/no-banner.d.ts +2 -0
- package/dist/rules/comments/no-banner.d.ts.map +1 -0
- package/dist/rules/comments/no-banner.js +9 -0
- package/dist/rules/comments/no-banner.js.map +1 -0
- package/dist/rules/comments/no-jsdoc.d.ts +4 -0
- package/dist/rules/comments/no-jsdoc.d.ts.map +1 -0
- package/dist/rules/comments/no-jsdoc.js +14 -0
- package/dist/rules/comments/no-jsdoc.js.map +1 -0
- package/dist/rules/comments/no-line-reference.d.ts +2 -0
- package/dist/rules/comments/no-line-reference.d.ts.map +1 -0
- package/dist/rules/comments/no-line-reference.js +9 -0
- package/dist/rules/comments/no-line-reference.js.map +1 -0
- package/dist/rules/comments/no-pr-reference.d.ts +2 -0
- package/dist/rules/comments/no-pr-reference.d.ts.map +1 -0
- package/dist/rules/comments/no-pr-reference.js +13 -0
- package/dist/rules/comments/no-pr-reference.js.map +1 -0
- package/dist/rules/comments/no-todo.d.ts +2 -0
- package/dist/rules/comments/no-todo.d.ts.map +1 -0
- package/dist/rules/comments/no-todo.js +8 -0
- package/dist/rules/comments/no-todo.js.map +1 -0
- package/dist/rules/comments/pattern-rule.d.ts +10 -0
- package/dist/rules/comments/pattern-rule.d.ts.map +1 -0
- package/dist/rules/comments/pattern-rule.js +16 -0
- package/dist/rules/comments/pattern-rule.js.map +1 -0
- package/dist/rules/comments/scan.d.ts +13 -0
- package/dist/rules/comments/scan.d.ts.map +1 -0
- package/dist/rules/comments/scan.js +62 -0
- package/dist/rules/comments/scan.js.map +1 -0
- package/dist/rules/max-lines.d.ts.map +1 -1
- package/dist/rules/max-lines.js +8 -1
- package/dist/rules/max-lines.js.map +1 -1
- package/dist/rules/suppressions/biome/configs.d.ts +14 -0
- package/dist/rules/suppressions/biome/configs.d.ts.map +1 -0
- package/dist/rules/suppressions/biome/configs.js +39 -0
- package/dist/rules/suppressions/biome/configs.js.map +1 -0
- package/dist/rules/suppressions/biome/json.d.ts +27 -0
- package/dist/rules/suppressions/biome/json.d.ts.map +1 -0
- package/dist/rules/suppressions/biome/json.js +37 -0
- package/dist/rules/suppressions/biome/json.js.map +1 -0
- package/dist/rules/suppressions/biome/weakenings.d.ts +9 -0
- package/dist/rules/suppressions/biome/weakenings.d.ts.map +1 -0
- package/dist/rules/suppressions/biome/weakenings.js +68 -0
- package/dist/rules/suppressions/biome/weakenings.js.map +1 -0
- package/dist/rules/suppressions/biome-overrides.d.ts +8 -0
- package/dist/rules/suppressions/biome-overrides.d.ts.map +1 -0
- package/dist/rules/suppressions/biome-overrides.js +47 -0
- package/dist/rules/suppressions/biome-overrides.js.map +1 -0
- package/dist/rules/suppressions/directives.d.ts +4 -0
- package/dist/rules/suppressions/directives.d.ts.map +1 -0
- package/dist/rules/suppressions/directives.js +19 -0
- package/dist/rules/suppressions/directives.js.map +1 -0
- package/dist/rules/suppressions/no-double-cast.d.ts +2 -0
- package/dist/rules/suppressions/no-double-cast.d.ts.map +1 -0
- package/dist/rules/suppressions/no-double-cast.js +38 -0
- package/dist/rules/suppressions/no-double-cast.js.map +1 -0
- package/dist/rules/suppressions/no-inline.d.ts +8 -0
- package/dist/rules/suppressions/no-inline.d.ts.map +1 -0
- package/dist/rules/suppressions/no-inline.js +48 -0
- package/dist/rules/suppressions/no-inline.js.map +1 -0
- package/dist/rules/suppressions/stylesheet-comments.d.ts +4 -0
- package/dist/rules/suppressions/stylesheet-comments.d.ts.map +1 -0
- package/dist/rules/suppressions/stylesheet-comments.js +20 -0
- package/dist/rules/suppressions/stylesheet-comments.js.map +1 -0
- package/dist/rules/syntax.d.ts +4 -0
- package/dist/rules/syntax.d.ts.map +1 -0
- package/dist/rules/syntax.js +12 -0
- package/dist/rules/syntax.js.map +1 -0
- package/package.json +4 -5
- package/src/baseline/compare.ts +15 -39
- package/src/baseline/format.ts +35 -32
- package/src/baseline/guard.ts +47 -0
- package/src/baseline/legacy.ts +46 -0
- package/src/baseline/rewrite.ts +24 -0
- package/src/baseline/update.ts +47 -30
- package/src/cli/args.ts +64 -30
- package/src/cli/baseline.ts +27 -13
- package/src/cli/check.ts +51 -0
- package/src/cli/lint.ts +1 -1
- package/src/cli/migrate.ts +36 -0
- package/src/cli/run-main.ts +8 -3
- package/src/cli/shrink.ts +31 -0
- package/src/cli.ts +11 -2
- package/src/config/decode.ts +1 -0
- package/src/config/file.ts +1 -0
- package/src/config/load.ts +4 -3
- package/src/config/resolve.ts +7 -4
- package/src/config.ts +3 -7
- package/src/engine/baseline-file.ts +27 -0
- package/src/engine/evaluate.ts +4 -2
- package/src/engine/session.ts +14 -12
- package/src/exceptions/registry.ts +9 -2
- package/src/failure.ts +0 -2
- package/src/git/base.ts +54 -0
- package/src/git/command.ts +31 -0
- package/src/git/history.ts +41 -0
- package/src/inventory/ignore-scope.ts +0 -1
- package/src/inventory/walk.ts +1 -1
- package/src/report/guard.ts +46 -0
- package/src/report/render.ts +2 -2
- package/src/report/stale.ts +11 -3
- package/src/rule.ts +5 -8
- package/src/rules/built-in.ts +21 -1
- package/src/rules/comments/kinds.ts +45 -0
- package/src/rules/comments/max-per-file.ts +46 -0
- package/src/rules/comments/no-banner.ts +10 -0
- package/src/rules/comments/no-jsdoc.ts +18 -0
- package/src/rules/comments/no-line-reference.ts +11 -0
- package/src/rules/comments/no-pr-reference.ts +13 -0
- package/src/rules/comments/no-todo.ts +8 -0
- package/src/rules/comments/pattern-rule.ts +28 -0
- package/src/rules/comments/scan.ts +80 -0
- package/src/rules/max-lines.ts +8 -1
- package/src/rules/suppressions/biome/configs.ts +50 -0
- package/src/rules/suppressions/biome/json.ts +55 -0
- package/src/rules/suppressions/biome/weakenings.ts +102 -0
- package/src/rules/suppressions/biome-overrides.ts +61 -0
- package/src/rules/suppressions/directives.ts +25 -0
- package/src/rules/suppressions/no-double-cast.ts +47 -0
- package/src/rules/suppressions/no-inline.ts +63 -0
- package/src/rules/suppressions/stylesheet-comments.ts +27 -0
- package/src/rules/syntax.ts +14 -0
package/dist/cli/baseline.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import { Console, Effect } from "effect";
|
|
3
|
-
import {
|
|
3
|
+
import { rewriteBaseline } from "../baseline/rewrite.js";
|
|
4
4
|
import { adopt, prune } from "../baseline/update.js";
|
|
5
5
|
import { openSession } from "../engine/session.js";
|
|
6
6
|
import { applyRegistry } from "../exceptions/registry.js";
|
|
7
7
|
import { SetupFailure } from "../failure.js";
|
|
8
8
|
import { writeText } from "../inventory/filesystem.js";
|
|
9
9
|
import { plural } from "../report/plural.js";
|
|
10
|
-
const save = (session, entries) => Effect.mapError(writeText(join(session.config.root, session.config.baseline),
|
|
11
|
-
const unregistered = (session) => applyRegistry(session.violations, session.registry, session.config.levels).kept;
|
|
10
|
+
const save = (session, entries) => Effect.mapError(writeText(join(session.config.root, session.config.baseline), rewriteBaseline(session.baseline.raw, session.baseline.entries, entries)), (failure) => new SetupFailure({ message: failure.message }));
|
|
11
|
+
const unregistered = (session) => applyRegistry(session.violations, session.registry, session.config.levels, session.config.unregistrable).kept;
|
|
12
12
|
export const writeBaseline = (cwd, config, rules) => Effect.gen(function* () {
|
|
13
13
|
const session = yield* openSession(cwd, config);
|
|
14
14
|
const existing = session.baseline.raw === undefined ? undefined : session.baseline.entries;
|
|
@@ -16,22 +16,31 @@ export const writeBaseline = (cwd, config, rules) => Effect.gen(function* () {
|
|
|
16
16
|
if (adoption._tag === "Refused") {
|
|
17
17
|
return yield* new SetupFailure({ message: `baseline write refused:\n${adoption.reasons.map((reason) => ` - ${reason}`).join("\n")}` });
|
|
18
18
|
}
|
|
19
|
-
if (adoption.added === 0) {
|
|
19
|
+
if (adoption.added === 0 && adoption.replaced === 0) {
|
|
20
20
|
return yield* Console.log(`quality: no error-level violations to record; ${session.config.baseline} is unchanged.`);
|
|
21
21
|
}
|
|
22
22
|
yield* save(session, adoption.entries);
|
|
23
|
-
|
|
23
|
+
const replaced = adoption.replaced > 0 ? `, replacing ${plural(adoption.replaced, "entry", "entries")}` : "";
|
|
24
|
+
yield* Console.log(`quality: recorded ${plural(adoption.added, "entry", "entries")} in ${session.config.baseline}${replaced}.`);
|
|
24
25
|
});
|
|
25
|
-
|
|
26
|
+
const changes = (pruned) => {
|
|
27
|
+
const parts = [
|
|
28
|
+
`removed ${plural(pruned.removed, "entry", "entries")}`,
|
|
29
|
+
`lowered ${plural(pruned.lowered, "entry", "entries")}`,
|
|
30
|
+
...(pruned.moved > 0 ? [`carried ${plural(pruned.moved, "entry", "entries")} to moved files`] : []),
|
|
31
|
+
];
|
|
32
|
+
return `${parts.slice(0, -1).join(", ")} and ${parts.at(-1)}`;
|
|
33
|
+
};
|
|
34
|
+
export const shrinkBaseline = (cwd, config, scopeOf) => Effect.gen(function* () {
|
|
26
35
|
const session = yield* openSession(cwd, config);
|
|
27
36
|
if (session.baseline.raw === undefined) {
|
|
28
|
-
return yield* Console.log(`quality: no baseline at ${session.config.baseline}; nothing to
|
|
37
|
+
return yield* Console.log(`quality: no baseline at ${session.config.baseline}; nothing to lower.`);
|
|
29
38
|
}
|
|
30
|
-
const pruned = prune(session.baseline.entries, unregistered(session), session.config.levels);
|
|
31
|
-
if (pruned.removed === 0 && pruned.lowered === 0) {
|
|
39
|
+
const pruned = prune(session.baseline.entries, unregistered(session), session.config.levels, yield* scopeOf(session));
|
|
40
|
+
if (pruned.removed === 0 && pruned.lowered === 0 && pruned.moved === 0) {
|
|
32
41
|
return yield* Console.log(`quality: ${session.config.baseline} is current.`);
|
|
33
42
|
}
|
|
34
43
|
yield* save(session, pruned.entries);
|
|
35
|
-
yield* Console.log(`quality:
|
|
44
|
+
yield* Console.log(`quality: ${changes(pruned)} in ${session.config.baseline}.`);
|
|
36
45
|
});
|
|
37
46
|
//# sourceMappingURL=baseline.js.map
|
package/dist/cli/baseline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Effect, type FileSystem } from "effect";
|
|
2
|
+
import { GateFailed, type SetupFailure } from "../failure.ts";
|
|
3
|
+
import type { Git } from "../git/command.ts";
|
|
4
|
+
export declare const checkBaseline: (cwd: string, configPath: string | undefined, against: string | undefined) => Effect.Effect<void, SetupFailure | GateFailed, FileSystem.FileSystem | Git>;
|
|
5
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAQ1D,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAsB7C,eAAO,MAAM,aAAa,GACzB,KAAK,MAAM,EACX,YAAY,MAAM,GAAG,SAAS,EAC9B,SAAS,MAAM,GAAG,SAAS,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAa1E,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { relative } from "node:path";
|
|
2
|
+
import { Console, Effect } from "effect";
|
|
3
|
+
import { decodeBaseline } from "../baseline/format.js";
|
|
4
|
+
import { guardBaseline } from "../baseline/guard.js";
|
|
5
|
+
import { convertLegacy, decodeLegacyBaseline, LEGACY_BASELINE, measured } from "../baseline/legacy.js";
|
|
6
|
+
import { loadConfig } from "../config/load.js";
|
|
7
|
+
import { validOrFail } from "../decoded.js";
|
|
8
|
+
import { readBaseline } from "../engine/baseline-file.js";
|
|
9
|
+
import { scan } from "../engine/session.js";
|
|
10
|
+
import { GateFailed } from "../failure.js";
|
|
11
|
+
import { resolveBase } from "../git/base.js";
|
|
12
|
+
import { changesSince, readAt } from "../git/history.js";
|
|
13
|
+
import { renderGuard } from "../report/guard.js";
|
|
14
|
+
const baseEntries = (config, base, path) => Effect.gen(function* () {
|
|
15
|
+
const raw = yield* readAt(config.root, base.commit, path);
|
|
16
|
+
if (raw !== undefined) {
|
|
17
|
+
return yield* validOrFail(`${path} at ${base.ref}`, yield* Effect.promise(() => decodeBaseline(raw)));
|
|
18
|
+
}
|
|
19
|
+
const legacyRaw = yield* readAt(config.root, base.commit, LEGACY_BASELINE);
|
|
20
|
+
if (legacyRaw === undefined) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
const legacy = yield* validOrFail(`${LEGACY_BASELINE} at ${base.ref}`, yield* Effect.promise(() => decodeLegacyBaseline(legacyRaw)));
|
|
24
|
+
return measured(legacy) ? convertLegacy(legacy, (yield* scan(config)).violations) : legacy;
|
|
25
|
+
});
|
|
26
|
+
export const checkBaseline = (cwd, configPath, against) => Effect.gen(function* () {
|
|
27
|
+
const config = yield* loadConfig(cwd, configPath);
|
|
28
|
+
const working = yield* readBaseline(config);
|
|
29
|
+
const base = yield* resolveBase(config.root, against);
|
|
30
|
+
const { moves } = yield* changesSince(config.root, [base.commit]);
|
|
31
|
+
const renames = new Map([...moves].map(([from, to]) => [to, from]));
|
|
32
|
+
const before = yield* baseEntries(config, base, renames.get(config.baseline) ?? config.baseline);
|
|
33
|
+
const result = guardBaseline(before, working.entries, renames, config.adopt);
|
|
34
|
+
yield* Console.log(renderGuard(result, { base, baseline: config.baseline, config: relative(config.root, config.file) }));
|
|
35
|
+
if (result.problems.length > 0) {
|
|
36
|
+
return yield* new GateFailed();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/cli/check.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lint.js
CHANGED
|
@@ -5,7 +5,7 @@ import { GateFailed } from "../failure.js";
|
|
|
5
5
|
import { render } from "../report/render.js";
|
|
6
6
|
export const lint = (cwd, config, warnings) => Effect.gen(function* () {
|
|
7
7
|
const session = yield* openSession(cwd, config);
|
|
8
|
-
const outcome = evaluate(session.violations, session.registry, session.baseline.entries, session.config.levels);
|
|
8
|
+
const outcome = evaluate(session.violations, session.registry, session.baseline.entries, session.config.levels, session.config.unregistrable);
|
|
9
9
|
yield* Console.log(render(outcome, {
|
|
10
10
|
baseline: session.config.baseline,
|
|
11
11
|
checked: session.inventory.sources.length,
|
package/dist/cli/lint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/cli/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAqB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAsB,MAAM,qBAAqB,CAAC;AAEjE,MAAM,CAAC,MAAM,IAAI,GAAG,CACnB,GAAW,EACX,MAA0B,EAC1B,QAAuB,EACiD,EAAE,CAC1E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/cli/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAqB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAsB,MAAM,qBAAqB,CAAC;AAEjE,MAAM,CAAC,MAAM,IAAI,GAAG,CACnB,GAAW,EACX,MAA0B,EAC1B,QAAuB,EACiD,EAAE,CAC1E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9I,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CACjB,MAAM,CAAC,OAAO,EAAE;QACf,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;QACjC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM;QACzC,YAAY,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvF,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;QACjC,QAAQ;KACR,CAAC,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IAChC,CAAC;AACF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Effect, FileSystem } from "effect";
|
|
2
|
+
import { SetupFailure } from "../failure.ts";
|
|
3
|
+
export declare const migrateBaseline: (cwd: string, configPath: string | undefined, from: string | undefined) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
|
|
4
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAOrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI7C,eAAO,MAAM,eAAe,GAC3B,KAAK,MAAM,EACX,YAAY,MAAM,GAAG,SAAS,EAC9B,MAAM,MAAM,GAAG,SAAS,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAmBvD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { Console, Effect, FileSystem } from "effect";
|
|
3
|
+
import { encodeBaseline } from "../baseline/format.js";
|
|
4
|
+
import { convertLegacy, decodeLegacyBaseline, LEGACY_BASELINE } from "../baseline/legacy.js";
|
|
5
|
+
import { loadConfig } from "../config/load.js";
|
|
6
|
+
import { validOrFail } from "../decoded.js";
|
|
7
|
+
import { readInput } from "../engine/baseline-file.js";
|
|
8
|
+
import { scan } from "../engine/session.js";
|
|
9
|
+
import { SetupFailure } from "../failure.js";
|
|
10
|
+
import { writeText } from "../inventory/filesystem.js";
|
|
11
|
+
import { plural } from "../report/plural.js";
|
|
12
|
+
export const migrateBaseline = (cwd, configPath, from) => Effect.gen(function* () {
|
|
13
|
+
const config = yield* loadConfig(cwd, configPath);
|
|
14
|
+
const source = from ?? LEGACY_BASELINE;
|
|
15
|
+
if (source === config.baseline || (yield* readInput(config.root, config.baseline)) !== undefined) {
|
|
16
|
+
return yield* new SetupFailure({ message: `${config.baseline} already exists. Migrate into a baseline file that does not exist yet.` });
|
|
17
|
+
}
|
|
18
|
+
const raw = yield* readInput(config.root, source);
|
|
19
|
+
if (raw === undefined) {
|
|
20
|
+
return yield* new SetupFailure({ message: `no baseline at ${source} to migrate. Name it with --from <file>.` });
|
|
21
|
+
}
|
|
22
|
+
const legacy = yield* validOrFail(source, yield* Effect.promise(() => decodeLegacyBaseline(raw)));
|
|
23
|
+
const entries = convertLegacy(legacy, (yield* scan(config)).violations);
|
|
24
|
+
const fs = yield* FileSystem.FileSystem;
|
|
25
|
+
const written = Effect.andThen(writeText(join(config.root, config.baseline), encodeBaseline(entries)), fs.remove(join(config.root, source)));
|
|
26
|
+
yield* Effect.mapError(written, (failure) => new SetupFailure({ message: failure.message }));
|
|
27
|
+
const fixed = legacy.length - entries.length;
|
|
28
|
+
const dropped = fixed > 0 ? `, dropping ${plural(fixed, "fixed entry", "fixed entries")}` : "";
|
|
29
|
+
yield* Console.log(`quality: moved ${plural(entries.length, "entry", "entries")} from ${source} to ${config.baseline}${dropped}.`);
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run-main.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { Effect, type FileSystem } from "effect";
|
|
2
|
-
|
|
2
|
+
import type { Git } from "../git/command.ts";
|
|
3
|
+
export declare const runMain: <Value, Error>(program: Effect.Effect<Value, Error, FileSystem.FileSystem | Git>) => void;
|
|
3
4
|
//# sourceMappingURL=run-main.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-main.d.ts","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-main.d.ts","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,MAAM,EAAQ,KAAK,UAAU,EAAkB,MAAM,QAAQ,CAAC;AAEvF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAyB7C,eAAO,MAAM,OAAO,GAAI,KAAK,EAAE,KAAK,EAAE,SAAS,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,KAAG,IAGzG,CAAC"}
|
package/dist/cli/run-main.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import * as NodeChildProcessSpawner from "@effect/platform-node/NodeChildProcessSpawner";
|
|
1
2
|
import * as NodeFileSystem from "@effect/platform-node/NodeFileSystem";
|
|
3
|
+
import * as NodePath from "@effect/platform-node/NodePath";
|
|
2
4
|
import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
|
|
3
|
-
import { Cause, Console, Effect, Exit, Runtime } from "effect";
|
|
5
|
+
import { Cause, Console, Effect, Exit, Layer, Runtime } from "effect";
|
|
4
6
|
import { SetupFailure } from "../failure.js";
|
|
5
7
|
const INTERRUPTED = 130;
|
|
6
8
|
const COULD_NOT_RUN = 2;
|
|
@@ -18,8 +20,9 @@ const teardown = (exit, onExit) => {
|
|
|
18
20
|
}
|
|
19
21
|
return onExit(Cause.hasInterruptsOnly(exit.cause) ? INTERRUPTED : exitCodeOf(Cause.squash(exit.cause)));
|
|
20
22
|
};
|
|
23
|
+
const services = NodeChildProcessSpawner.layer.pipe(Layer.provideMerge(Layer.mergeAll(NodeFileSystem.layer, NodePath.layer)));
|
|
21
24
|
export const runMain = (program) => {
|
|
22
25
|
const explained = Effect.tapCause(program, (cause) => (Cause.hasInterruptsOnly(cause) ? Effect.void : explain(cause)));
|
|
23
|
-
NodeRuntime.runMain(Effect.provide(explained,
|
|
26
|
+
NodeRuntime.runMain(Effect.provide(explained, services), { disableErrorReporting: true, teardown });
|
|
24
27
|
};
|
|
25
28
|
//# sourceMappingURL=run-main.js.map
|
package/dist/cli/run-main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-main.js","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAmB,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"run-main.js","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,uBAAuB,MAAM,+CAA+C,CAAC;AACzF,OAAO,KAAK,cAAc,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,QAAQ,MAAM,gCAAgC,CAAC;AAC3D,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAmB,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,OAAO,GAAG,CAAC,KAA2B,EAAuB,EAAE;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACzH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAU,EAAE,CAC7C,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AAEjI,MAAM,QAAQ,GAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;IACnD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzG,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE9H,MAAM,CAAC,MAAM,OAAO,GAAG,CAAe,OAAiE,EAAQ,EAAE;IAChH,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvH,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrG,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Effect, type FileSystem } from "effect";
|
|
2
|
+
import type { SetupFailure } from "../failure.ts";
|
|
3
|
+
import type { Git } from "../git/command.ts";
|
|
4
|
+
export declare const pruneBaseline: (cwd: string, config: string | undefined, against: string | undefined) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem | Git>;
|
|
5
|
+
export declare const tightenBaseline: (cwd: string, config: string | undefined, staged: boolean) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem | Git>;
|
|
6
|
+
//# sourceMappingURL=shrink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../src/cli/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAc7C,eAAO,MAAM,aAAa,GACzB,KAAK,MAAM,EACX,QAAQ,MAAM,GAAG,SAAS,EAC1B,SAAS,MAAM,GAAG,SAAS,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CACsB,CAAC;AAEvF,eAAO,MAAM,eAAe,GAC3B,KAAK,MAAM,EACX,QAAQ,MAAM,GAAG,SAAS,EAC1B,QAAQ,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAC8C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Console, Effect } from "effect";
|
|
2
|
+
import { resolveBase } from "../git/base.js";
|
|
3
|
+
import { changesSince } from "../git/history.js";
|
|
4
|
+
import { shrinkBaseline } from "./baseline.js";
|
|
5
|
+
const followedMoves = (root, against) => resolveBase(root, against).pipe(Effect.flatMap((base) => changesSince(root, [base.commit])), Effect.map((changes) => ({ moves: changes.moves })), Effect.catchIf(() => against === undefined, (failure) => Effect.as(Console.error(`quality: moved files are not followed: ${failure.message}`), { moves: new Map() })));
|
|
6
|
+
export const pruneBaseline = (cwd, config, against) => shrinkBaseline(cwd, config, (session) => followedMoves(session.config.root, against));
|
|
7
|
+
export const tightenBaseline = (cwd, config, staged) => shrinkBaseline(cwd, config, (session) => changesSince(session.config.root, staged ? ["--cached"] : ["HEAD"]));
|
|
8
|
+
//# sourceMappingURL=shrink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shrink.js","sourceRoot":"","sources":["../../src/cli/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAA2B,EAA2C,EAAE,CAC5G,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAC1D,MAAM,CAAC,OAAO,CACb,GAAG,EAAE,CAAC,OAAO,KAAK,SAAS,EAC3B,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CACxH,CACD,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,GAAW,EACX,MAA0B,EAC1B,OAA2B,EACsC,EAAE,CACnE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,GAAW,EACX,MAA0B,EAC1B,MAAe,EACkD,EAAE,CACnE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
import { Console, Effect } from "effect";
|
|
4
4
|
import { parseCommand, USAGE } from "./cli/args.js";
|
|
5
|
-
import {
|
|
5
|
+
import { writeBaseline } from "./cli/baseline.js";
|
|
6
|
+
import { checkBaseline } from "./cli/check.js";
|
|
6
7
|
import { lint } from "./cli/lint.js";
|
|
8
|
+
import { migrateBaseline } from "./cli/migrate.js";
|
|
7
9
|
import { runMain } from "./cli/run-main.js";
|
|
10
|
+
import { pruneBaseline, tightenBaseline } from "./cli/shrink.js";
|
|
8
11
|
import { SetupFailure } from "./failure.js";
|
|
9
12
|
const parsed = parseCommand(process.argv.slice(2));
|
|
10
13
|
const program = Effect.gen(function* () {
|
|
@@ -20,7 +23,13 @@ const program = Effect.gen(function* () {
|
|
|
20
23
|
case "BaselineWrite":
|
|
21
24
|
return yield* writeBaseline(process.cwd(), command.config, command.rules);
|
|
22
25
|
case "BaselinePrune":
|
|
23
|
-
return yield* pruneBaseline(process.cwd(), command.config);
|
|
26
|
+
return yield* pruneBaseline(process.cwd(), command.config, command.against);
|
|
27
|
+
case "BaselineTighten":
|
|
28
|
+
return yield* tightenBaseline(process.cwd(), command.config, command.staged);
|
|
29
|
+
case "BaselineCheck":
|
|
30
|
+
return yield* checkBaseline(process.cwd(), command.config, command.against);
|
|
31
|
+
case "BaselineMigrate":
|
|
32
|
+
return yield* migrateBaseline(process.cwd(), command.config, command.from);
|
|
24
33
|
}
|
|
25
34
|
});
|
|
26
35
|
runMain(program);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,MAAM;YACV,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrE,KAAK,eAAe;YACnB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3E,KAAK,eAAe;YACnB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,KAAK,iBAAiB;YACrB,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9E,KAAK,eAAe;YACnB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,KAAK,iBAAiB;YACrB,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/config/decode.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ declare const ConfigInput: Schema.Struct<{
|
|
|
7
7
|
readonly extensions: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
8
8
|
readonly registry: Schema.optionalKey<Schema.String>;
|
|
9
9
|
readonly baseline: Schema.optionalKey<Schema.String>;
|
|
10
|
+
readonly adopt: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
10
11
|
readonly local: Schema.optionalKey<Schema.$Array<Schema.declare<Rule<string, unknown>, Rule<string, unknown>>>>;
|
|
11
12
|
readonly rules: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.Literals<readonly ["error", "warn", "off"]>, Schema.Struct<{
|
|
12
13
|
readonly level: Schema.optionalKey<Schema.Literals<readonly ["error", "warn", "off"]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAkBvC,QAAA,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAkBvC,QAAA,MAAM,WAAW;;;;;;;;;;;;EASf,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAIlD,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAgC,CAAC"}
|
package/dist/config/decode.js
CHANGED
|
@@ -17,6 +17,7 @@ const ConfigInput = Schema.Struct({
|
|
|
17
17
|
extensions: Schema.optionalKey(Schema.Array(Schema.String)),
|
|
18
18
|
registry: Schema.optionalKey(Schema.String),
|
|
19
19
|
baseline: Schema.optionalKey(Schema.String),
|
|
20
|
+
adopt: Schema.optionalKey(Schema.Array(Schema.String)),
|
|
20
21
|
local: Schema.optionalKey(Schema.Array(LocalRule)),
|
|
21
22
|
rules: Schema.optionalKey(Schema.Record(Schema.String, Setting)),
|
|
22
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AAGzD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,IAAI,IAAI,KAAK;IACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;IAC5B,aAAa,IAAI,KAAK;IACtB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;IACrC,WAAW,IAAI,KAAK;IACpB,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC;AAEvC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAExD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAExI,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC,CAAC;AAEtF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChE,CAAC,CAAC;AAIH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAExH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AAGzD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,IAAI,IAAI,KAAK;IACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;IAC5B,aAAa,IAAI,KAAK;IACtB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;IACrC,WAAW,IAAI,KAAK;IACpB,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC;AAEvC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAExD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAExI,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC,CAAC;AAEtF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChE,CAAC,CAAC;AAIH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAExH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/config/file.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/config/file.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC"}
|
package/dist/config/load.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import { Effect, FileSystem } from "effect";
|
|
|
2
2
|
import { SetupFailure } from "../failure.ts";
|
|
3
3
|
import type { InventoryScope } from "../inventory/collect.ts";
|
|
4
4
|
import { type ResolvedRules } from "./resolve.ts";
|
|
5
|
-
export declare const CONFIG_FILE = "quality.config.ts";
|
|
6
5
|
export interface ResolvedConfig extends ResolvedRules, InventoryScope {
|
|
7
6
|
readonly root: string;
|
|
8
7
|
readonly file: string;
|
|
9
8
|
readonly registry: string;
|
|
10
9
|
readonly baseline: string;
|
|
10
|
+
readonly adopt: ReadonlyArray<string>;
|
|
11
11
|
}
|
|
12
12
|
export declare const loadConfig: (cwd: string, path: string | undefined) => Effect.Effect<ResolvedConfig, SetupFailure, FileSystem.FileSystem>;
|
|
13
13
|
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,cAAc,CAAC;AAIhE,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,cAAc;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACtC;AA4BD,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAYjI,CAAC"}
|
package/dist/config/load.js
CHANGED
|
@@ -12,8 +12,8 @@ import { Effect, FileSystem } from "effect";
|
|
|
12
12
|
import { validOrFail } from "../decoded.js";
|
|
13
13
|
import { SetupFailure } from "../failure.js";
|
|
14
14
|
import { decodeConfig } from "./decode.js";
|
|
15
|
+
import { CONFIG_FILE } from "./file.js";
|
|
15
16
|
import { resolveRules } from "./resolve.js";
|
|
16
|
-
export const CONFIG_FILE = "quality.config.ts";
|
|
17
17
|
const DEFAULT_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs"];
|
|
18
18
|
const messageOf = (cause) => (cause instanceof Error ? cause.message : String(cause));
|
|
19
19
|
const importDefault = (file) => Effect.flatMap(Effect.tryPromise({
|
|
@@ -24,7 +24,8 @@ const importDefault = (file) => Effect.flatMap(Effect.tryPromise({
|
|
|
24
24
|
: Effect.fail(new SetupFailure({ message: `${file} has no default export. Export defineConfig({ ... }) as the default.` })));
|
|
25
25
|
const resolved = (root, file, config, rules) => ({
|
|
26
26
|
...rules,
|
|
27
|
-
|
|
27
|
+
adopt: config.adopt ?? [],
|
|
28
|
+
baseline: config.baseline ?? "quality/baseline.jsonl",
|
|
28
29
|
exclude: config.exclude ?? [],
|
|
29
30
|
extensions: config.extensions ?? DEFAULT_EXTENSIONS,
|
|
30
31
|
file,
|
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAoB,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
package/dist/config/resolve.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { ConfigInput } from "./decode.ts";
|
|
|
6
6
|
export interface ResolvedRules {
|
|
7
7
|
readonly active: ReadonlyArray<ActiveRule>;
|
|
8
8
|
readonly levels: ReadonlyMap<string, Level>;
|
|
9
|
+
readonly unregistrable: ReadonlySet<string>;
|
|
9
10
|
}
|
|
10
11
|
export declare const resolveRules: (config: ConfigInput) => Effect.Effect<Decoded<ResolvedRules>>;
|
|
11
12
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC5C;AAiCD,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C;AAiCD,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAiBpF,CAAC"}
|
package/dist/config/resolve.js
CHANGED
|
@@ -17,15 +17,17 @@ export const resolveRules = (config) => Effect.gen(function* () {
|
|
|
17
17
|
const rules = [...builtInRules, ...(config.local ?? [])];
|
|
18
18
|
const settings = config.rules ?? {};
|
|
19
19
|
const known = new Set(rules.map((rule) => rule.id));
|
|
20
|
-
const unknown = Object.keys(settings)
|
|
21
|
-
.filter((
|
|
22
|
-
.map((
|
|
20
|
+
const unknown = [...Object.keys(settings).map((id) => `rules.${id}`), ...(config.adopt ?? []).map((id) => `adopt.${id}`)]
|
|
21
|
+
.filter((path) => !known.has(path.slice(path.indexOf(".") + 1)))
|
|
22
|
+
.map((path) => `${path}: no built-in or local rule has this id`);
|
|
23
23
|
const activated = yield* Effect.forEach(rules, (rule) => activate(rule, settings[rule.id]));
|
|
24
24
|
const issues = [...duplicateIssues(rules), ...unknown, ...activated.flatMap((result) => (result._tag === "Invalid" ? result.issues : []))];
|
|
25
25
|
if (issues.length > 0) {
|
|
26
26
|
return { _tag: "Invalid", issues };
|
|
27
27
|
}
|
|
28
28
|
const active = activated.flatMap((result) => (result._tag === "Valid" && result.value !== undefined ? [result.value] : []));
|
|
29
|
-
|
|
29
|
+
const levels = new Map(rules.map((rule) => [rule.id, levelOf(settings[rule.id])]));
|
|
30
|
+
const unregistrable = new Set(rules.filter((rule) => rule.registrable === false).map((rule) => rule.id));
|
|
31
|
+
return { _tag: "Valid", value: { active, levels, unregistrable } };
|
|
30
32
|
});
|
|
31
33
|
//# sourceMappingURL=resolve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Rule } from "./rule.ts";
|
|
2
2
|
import type { builtInRules } from "./rules/built-in.ts";
|
|
3
|
-
/** Every rule defaults to `error`. `warn` is for the transition to a rule and is meant to be temporary. */
|
|
4
3
|
export type Level = "error" | "warn" | "off";
|
|
5
4
|
export type RuleSetting<Input> = Level | {
|
|
6
5
|
readonly level?: Level;
|
|
@@ -11,18 +10,14 @@ export type RuleSettings<Rules extends ReadonlyArray<Rule>> = {
|
|
|
11
10
|
readonly [Candidate in Rules[number] as Candidate["id"]]?: RuleSetting<InputOf<Candidate>>;
|
|
12
11
|
};
|
|
13
12
|
export type BuiltInRules = typeof builtInRules;
|
|
13
|
+
type IdOf<Rules extends ReadonlyArray<Rule>> = Rules[number]["id"];
|
|
14
14
|
export interface QualityConfig<Local extends ReadonlyArray<Rule> = ReadonlyArray<Rule>> {
|
|
15
|
-
/** Directories or files to check, relative to the config file. Defaults to the whole repository. */
|
|
16
15
|
readonly sources?: ReadonlyArray<string>;
|
|
17
|
-
/** Paths never checked, in .gitignore syntax. Ignored files are always skipped. */
|
|
18
16
|
readonly exclude?: ReadonlyArray<string>;
|
|
19
|
-
/** Extensions of the source files rules read. Defaults to TypeScript and JavaScript modules. */
|
|
20
17
|
readonly extensions?: ReadonlyArray<string>;
|
|
21
|
-
/** Permanent exceptions, each with a reason. Defaults to `quality/registry.json`. */
|
|
22
18
|
readonly registry?: string;
|
|
23
|
-
/** Existing violations that may only shrink. Defaults to `quality/baseline.json`. */
|
|
24
19
|
readonly baseline?: string;
|
|
25
|
-
|
|
20
|
+
readonly adopt?: ReadonlyArray<IdOf<readonly [...BuiltInRules, ...Local]>>;
|
|
26
21
|
readonly local?: Local;
|
|
27
22
|
readonly rules?: RuleSettings<readonly [...BuiltInRules, ...Local]>;
|
|
28
23
|
}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,KAAK,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9F,KAAK,OAAO,CAAC,SAAS,IAAI,SAAS,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtF,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,IAAI;IAC7D,QAAQ,EAAE,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1F,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,KAAK,IAAI,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAEnE,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;IACrF,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;CACpE;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,EAAE,QAAQ,aAAa,CAAC,KAAK,CAAC,KAAG,aAAa,CAAC,KAAK,CAAW,CAAC"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAwD,MAA4B,EAAwB,EAAE,CAAC,MAAM,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Effect, type FileSystem } from "effect";
|
|
2
|
+
import { type BaselineEntry } from "../baseline/format.ts";
|
|
3
|
+
import type { ResolvedConfig } from "../config/load.ts";
|
|
4
|
+
import { SetupFailure } from "../failure.ts";
|
|
5
|
+
export interface BaselineFile {
|
|
6
|
+
readonly raw: string | undefined;
|
|
7
|
+
readonly entries: ReadonlyArray<BaselineEntry>;
|
|
8
|
+
}
|
|
9
|
+
export declare const readInput: (root: string, path: string) => Effect.Effect<string | undefined, SetupFailure, FileSystem.FileSystem>;
|
|
10
|
+
export declare const readBaseline: (config: ResolvedConfig) => Effect.Effect<BaselineFile, SetupFailure, FileSystem.FileSystem>;
|
|
11
|
+
//# sourceMappingURL=baseline-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-file.d.ts","sourceRoot":"","sources":["../../src/engine/baseline-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CACX,CAAC;AAElH,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CASlH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { Effect } from "effect";
|
|
3
|
+
import { decodeBaseline } from "../baseline/format.js";
|
|
4
|
+
import { LEGACY_BASELINE } from "../baseline/legacy.js";
|
|
5
|
+
import { validOrFail } from "../decoded.js";
|
|
6
|
+
import { SetupFailure } from "../failure.js";
|
|
7
|
+
import { readOptionalText } from "../inventory/filesystem.js";
|
|
8
|
+
export const readInput = (root, path) => Effect.mapError(readOptionalText(join(root, path)), (failure) => new SetupFailure({ message: failure.message }));
|
|
9
|
+
export const readBaseline = (config) => Effect.gen(function* () {
|
|
10
|
+
const raw = yield* readInput(config.root, config.baseline);
|
|
11
|
+
if (raw === undefined && config.baseline !== LEGACY_BASELINE && (yield* readInput(config.root, LEGACY_BASELINE)) !== undefined) {
|
|
12
|
+
return yield* new SetupFailure({
|
|
13
|
+
message: `${LEGACY_BASELINE} holds a baseline in the earlier JSON format. Run \`quality baseline migrate\` to move it to ${config.baseline}.`,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return { entries: yield* validOrFail(config.baseline, yield* Effect.promise(() => decodeBaseline(raw))), raw };
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=baseline-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-file.js","sourceRoot":"","sources":["../../src/engine/baseline-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAsB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAO9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAAY,EAA0E,EAAE,CAC/H,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAElH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAoE,EAAE,CACxH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,eAAe,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChI,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC;YAC9B,OAAO,EAAE,GAAG,eAAe,gGAAgG,MAAM,CAAC,QAAQ,GAAG;SAC7I,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAChH,CAAC,CAAC,CAAC"}
|