@shivaedev/quality 0.5.0 → 0.5.1
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 +10 -0
- package/README.md +2 -2
- package/dist/cli/args.d.ts +2 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +7 -5
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/fix.d.ts +1 -1
- package/dist/cli/fix.d.ts.map +1 -1
- package/dist/cli/fix.js +4 -2
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/rules/biome.d.ts.map +1 -1
- package/dist/rules/biome.js +1 -1
- package/dist/rules/biome.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/args.ts +8 -6
- package/src/cli/fix.ts +6 -2
- package/src/cli.ts +1 -1
- package/src/rules/biome.ts +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.1 - 2026-10-04
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- `quality fix` applies only changes that keep behavior: it sorts every `package.json` and applies Biome's formatting and assist actions, such as organized imports and sorted keys. Biome's safe lint fixes, which can change behavior (for example, `noProcessGlobal` adds `import process from "node:process"`, which a browser bundle cannot load), are applied only with the new `quality fix --lint`.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- `quality fix` no longer hangs. Biome 2.5.14 never finishes applying the safe fix of `noProcessGlobal` to `globalThis.process`, so `quality fix` ran without end on any repository with that code. It no longer applies lint fixes by default; `quality fix --lint` still runs into this Biome bug.
|
|
12
|
+
|
|
3
13
|
## 0.5.0 - 2026-10-04
|
|
4
14
|
|
|
5
15
|
### Added
|
package/README.md
CHANGED
|
@@ -358,7 +358,7 @@ An entry covers a rule's violations in one file, for good, and must say why. Wit
|
|
|
358
358
|
|
|
359
359
|
```text
|
|
360
360
|
quality lint [--config <file>] [--warnings summary|all]
|
|
361
|
-
quality fix [--config <file>]
|
|
361
|
+
quality fix [--config <file>] [--lint]
|
|
362
362
|
quality baseline write [--config <file>] [--rule <id>]...
|
|
363
363
|
quality baseline prune [--config <file>] [--against <ref>]
|
|
364
364
|
quality baseline tighten [--config <file>] [--staged]
|
|
@@ -397,7 +397,7 @@ The preset turns off `noUnusedVariables` and `noUnusedFunctionParameters`, becau
|
|
|
397
397
|
|
|
398
398
|
The `biome` rule runs `biome check` with the repository's config and reports each finding as `biome/<category>`, such as `biome/lint/style/useBlockStatements`, `biome/assist/source/useSortedKeys`, `biome/format` or `biome/plugin`, so Biome's findings go through the baseline like any other rule's. `adopt: ["biome"]` and `quality baseline write --rule biome` take in every Biome category at once. A finding below `error`, such as a rule a repository declared at `warn`, is not reported. The rule also asks for a root `biome.json` or `biome.jsonc` that extends the preset, and it takes no registry exceptions. A Biome config that Biome cannot load stops the run with Biome's message.
|
|
399
399
|
|
|
400
|
-
`quality fix` sorts every `package.json`, then applies Biome's
|
|
400
|
+
`quality fix` sorts every `package.json`, then applies Biome's formatting and assist actions, such as organized imports and sorted keys. None of these changes what the code does, so it is safe to run on a whole repository. `quality fix --lint` also applies Biome's safe lint fixes. Those can change behavior, such as `noProcessGlobal` adding `import process from "node:process"` to code that runs in a browser, so review what it changed. Biome 2.5.14 never finishes the `noProcessGlobal` fix on `globalThis.process`, so `--lint` hangs on such code until that line is changed by hand. An editor that runs Biome on save uses the same version when it resolves Biome from the root `node_modules`, so a repository that wants that installs `@biomejs/biome` at the version this package pins.
|
|
401
401
|
|
|
402
402
|
## Vitest projects
|
|
403
403
|
|
package/dist/cli/args.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type Command = {
|
|
|
6
6
|
} | {
|
|
7
7
|
readonly _tag: "Fix";
|
|
8
8
|
readonly config: string | undefined;
|
|
9
|
+
readonly lint: boolean;
|
|
9
10
|
} | {
|
|
10
11
|
readonly _tag: "BaselineWrite";
|
|
11
12
|
readonly config: string | undefined;
|
|
@@ -36,6 +37,6 @@ export type Parsed = {
|
|
|
36
37
|
readonly _tag: "Usage";
|
|
37
38
|
readonly problem: string;
|
|
38
39
|
};
|
|
39
|
-
export declare const USAGE = "Usage:\n quality lint [--config <file>] [--warnings summary|all]\n quality fix [--config <file>]\n quality baseline write [--config <file>] [--rule <id>]...\n quality baseline prune [--config <file>] [--against <ref>]\n quality baseline tighten [--config <file>] [--staged]\n quality baseline check [--config <file>] [--against <ref>]\n quality baseline migrate [--config <file>] [--from <file>]\n\nlint Run every rule. Exits 1 on an error-level violation, a file over its baseline, a stale registry entry\n or a baseline entry for a rule that is off or unknown.\nfix
|
|
40
|
+
export declare const USAGE = "Usage:\n quality lint [--config <file>] [--warnings summary|all]\n quality fix [--config <file>] [--lint]\n quality baseline write [--config <file>] [--rule <id>]...\n quality baseline prune [--config <file>] [--against <ref>]\n quality baseline tighten [--config <file>] [--staged]\n quality baseline check [--config <file>] [--against <ref>]\n quality baseline migrate [--config <file>] [--from <file>]\n\nlint Run every rule. Exits 1 on an error-level violation, a file over its baseline, a stale registry entry\n or a baseline entry for a rule that is off or unknown.\nfix Sort every package.json and apply Biome's formatting and assist actions, such as organized imports and sorted keys.\n With --lint, also apply Biome's safe lint fixes, which can change behavior.\nbaseline write Record current error-level violations. Creates the baseline, or records the named rules again, replacing their entries.\nbaseline prune Drop fixed debt, lower entries to what is left and carry entries to files git saw move. Never adds or raises an entry.\nbaseline tighten Prune only the entries of files changed since HEAD, or with --staged, in the index.\nbaseline check Compare the baseline with its version at the merge base. Exits 1 when it gained an entry or a higher count.\nbaseline migrate Move a baseline from the earlier JSON format (--from, quality/baseline.json by default) to the configured file.\n\n--config <file> Config file; its directory is the repository root. Defaults to ./quality.config.ts.\n--against <ref> The branch the work merges into. Defaults to origin/HEAD, then origin/main, then origin/master.\nExit codes: 0 passed, 1 failed the gate, 2 could not run.";
|
|
40
41
|
export declare const parseCommand: (args: readonly string[]) => Parsed;
|
|
41
42
|
//# sourceMappingURL=args.d.ts.map
|
package/dist/cli/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,OAAO,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,OAAO,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1G;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5G;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnI,eAAO,MAAM,KAAK,8tDAqBwC,CAAC;AAkE3D,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,MAAM,EAAE,KAAG,MAmBtD,CAAC"}
|
package/dist/cli/args.js
CHANGED
|
@@ -2,7 +2,7 @@ import { parseArgs } from "node:util";
|
|
|
2
2
|
import { Result } from "effect";
|
|
3
3
|
export const USAGE = `Usage:
|
|
4
4
|
quality lint [--config <file>] [--warnings summary|all]
|
|
5
|
-
quality fix [--config <file>]
|
|
5
|
+
quality fix [--config <file>] [--lint]
|
|
6
6
|
quality baseline write [--config <file>] [--rule <id>]...
|
|
7
7
|
quality baseline prune [--config <file>] [--against <ref>]
|
|
8
8
|
quality baseline tighten [--config <file>] [--staged]
|
|
@@ -11,7 +11,8 @@ export const USAGE = `Usage:
|
|
|
11
11
|
|
|
12
12
|
lint Run every rule. Exits 1 on an error-level violation, a file over its baseline, a stale registry entry
|
|
13
13
|
or a baseline entry for a rule that is off or unknown.
|
|
14
|
-
fix
|
|
14
|
+
fix Sort every package.json and apply Biome's formatting and assist actions, such as organized imports and sorted keys.
|
|
15
|
+
With --lint, also apply Biome's safe lint fixes, which can change behavior.
|
|
15
16
|
baseline write Record current error-level violations. Creates the baseline, or records the named rules again, replacing their entries.
|
|
16
17
|
baseline prune Drop fixed debt, lower entries to what is left and carry entries to files git saw move. Never adds or raises an entry.
|
|
17
18
|
baseline tighten Prune only the entries of files changed since HEAD, or with --staged, in the index.
|
|
@@ -26,20 +27,21 @@ const OPTIONS = {
|
|
|
26
27
|
config: { type: "string" },
|
|
27
28
|
from: { type: "string" },
|
|
28
29
|
help: { short: "h", type: "boolean" },
|
|
30
|
+
lint: { type: "boolean" },
|
|
29
31
|
rule: { multiple: true, type: "string" },
|
|
30
32
|
staged: { type: "boolean" },
|
|
31
33
|
warnings: { type: "string" },
|
|
32
34
|
};
|
|
33
35
|
const usage = (problem) => ({ _tag: "Usage", problem });
|
|
34
36
|
const parsed = (command) => ({ _tag: "Parsed", command });
|
|
35
|
-
const COMMAND_OPTIONS = ["against", "from", "rule", "staged", "warnings"];
|
|
37
|
+
const COMMAND_OPTIONS = ["against", "from", "lint", "rule", "staged", "warnings"];
|
|
36
38
|
const ACCEPTS = {
|
|
37
39
|
"baseline check": ["against"],
|
|
38
40
|
"baseline migrate": ["from"],
|
|
39
41
|
"baseline prune": ["against"],
|
|
40
42
|
"baseline tighten": ["staged"],
|
|
41
43
|
"baseline write": ["rule"],
|
|
42
|
-
fix: [],
|
|
44
|
+
fix: ["lint"],
|
|
43
45
|
lint: ["warnings"],
|
|
44
46
|
};
|
|
45
47
|
const misplaced = (name, values) => {
|
|
@@ -58,7 +60,7 @@ const commandFor = (name, values) => {
|
|
|
58
60
|
: usage(`--warnings takes summary or all, not "${warnings}".`);
|
|
59
61
|
}
|
|
60
62
|
case "fix":
|
|
61
|
-
return parsed({ _tag: "Fix", config });
|
|
63
|
+
return parsed({ _tag: "Fix", config, lint: values.lint === true });
|
|
62
64
|
case "baseline write":
|
|
63
65
|
return parsed({ _tag: "BaselineWrite", config, rules: values.rule ?? [] });
|
|
64
66
|
case "baseline prune":
|
package/dist/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAehC,MAAM,CAAC,MAAM,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/fix.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Effect, type FileSystem } from "effect";
|
|
2
2
|
import { SetupFailure } from "../failure.ts";
|
|
3
|
-
export declare function fix(cwd: string, config: string | undefined): Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
|
|
3
|
+
export declare function fix(cwd: string, config: string | undefined, lint: boolean): Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
|
|
4
4
|
//# sourceMappingURL=fix.d.ts.map
|
package/dist/cli/fix.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQ7C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAWpI"}
|
package/dist/cli/fix.js
CHANGED
|
@@ -4,14 +4,16 @@ import { loadConfig } from "../config/load.js";
|
|
|
4
4
|
import { SetupFailure } from "../failure.js";
|
|
5
5
|
import { sortManifests } from "../manifests/sorted.js";
|
|
6
6
|
import { plural } from "../report/plural.js";
|
|
7
|
-
|
|
7
|
+
const LANGUAGES = ["javascript", "json", "css", "graphql", "grit", "html"];
|
|
8
|
+
const WITHOUT_LINT = ["--linter-enabled=false", ...LANGUAGES.map((language) => `--${language}-linter-enabled=false`)];
|
|
9
|
+
export function fix(cwd, config, lint) {
|
|
8
10
|
return Effect.gen(function* () {
|
|
9
11
|
const { root } = yield* loadConfig(cwd, config);
|
|
10
12
|
const sorted = yield* Effect.mapError(sortManifests(root), (failure) => new SetupFailure({ message: failure.message }));
|
|
11
13
|
yield* Console.log(`quality: sort-package-json rewrote ${plural(sorted, "manifest")}.`);
|
|
12
14
|
const report = yield* Effect.tryPromise({
|
|
13
15
|
catch: (cause) => new SetupFailure({ message: cause instanceof Error ? cause.message : String(cause) }),
|
|
14
|
-
try: () => biomeReport(root, ["check", "--write"]),
|
|
16
|
+
try: () => biomeReport(root, ["check", "--write", ...(lint ? [] : WITHOUT_LINT)]),
|
|
15
17
|
});
|
|
16
18
|
yield* Console.log(`quality: Biome rewrote ${plural(report.summary.changed, "file")}.`);
|
|
17
19
|
});
|
package/dist/cli/fix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,MAA0B;
|
|
1
|
+
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,SAAS,GAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9F,MAAM,YAAY,GAAsB,CAAC,wBAAwB,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,uBAAuB,CAAC,CAAC,CAAC;AAEzI,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,MAA0B,EAAE,IAAa;IACzE,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxH,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACvC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACvG,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;SACjF,CAAC,CAAC;QACH,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -22,7 +22,7 @@ const program = Effect.gen(function* () {
|
|
|
22
22
|
case "Lint":
|
|
23
23
|
return yield* lint(process.cwd(), command.config, command.warnings);
|
|
24
24
|
case "Fix":
|
|
25
|
-
return yield* fix(process.cwd(), command.config);
|
|
25
|
+
return yield* fix(process.cwd(), command.config, command.lint);
|
|
26
26
|
case "BaselineWrite":
|
|
27
27
|
return yield* writeBaseline(process.cwd(), command.config, command.rules);
|
|
28
28
|
case "BaselinePrune":
|
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,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,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,KAAK;YACT,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
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,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,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,KAAK;YACT,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biome.d.ts","sourceRoot":"","sources":["../../src/rules/biome.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,IAAI,EAAmB,MAAM,YAAY,CAAC;AAGlF,eAAO,MAAM,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"biome.d.ts","sourceRoot":"","sources":["../../src/rules/biome.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,IAAI,EAAmB,MAAM,YAAY,CAAC;AAGlF,eAAO,MAAM,MAAM,6BAA6B,CAAC;AA2CjD,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAA+B,CAAC"}
|
package/dist/rules/biome.js
CHANGED
|
@@ -32,7 +32,7 @@ const bridge = defineRule({
|
|
|
32
32
|
const [preset, report] = await Promise.all([presetFinding(readText), biomeReport(root, ["check"])]);
|
|
33
33
|
return [...preset, ...report.diagnostics.filter((diagnostic) => FAILING.has(diagnostic.severity)).map(findingOf)];
|
|
34
34
|
},
|
|
35
|
-
description: "Biome's lint, format and assist findings under the shared preset. `quality fix` applies the
|
|
35
|
+
description: "Biome's lint, format and assist findings under the shared preset. `quality fix` applies the formatting and assist actions; `quality fix --lint` also applies the safe lint fixes.",
|
|
36
36
|
id: "biome",
|
|
37
37
|
registrable: false,
|
|
38
38
|
});
|
package/dist/rules/biome.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biome.js","sourceRoot":"","sources":["../../src/rules/biome.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"biome.js","sourceRoot":"","sources":["../../src/rules/biome.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/quality",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Repository quality gate with typed rules, a shrink-only baseline and a registry of reasoned exceptions",
|
|
5
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/quality#readme",
|
|
6
6
|
"bugs": {
|
package/src/cli/args.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { WarningDetail } from "../report/render.ts";
|
|
|
4
4
|
|
|
5
5
|
export type Command =
|
|
6
6
|
| { readonly _tag: "Lint"; readonly config: string | undefined; readonly warnings: WarningDetail }
|
|
7
|
-
| { readonly _tag: "Fix"; readonly config: string | undefined }
|
|
7
|
+
| { readonly _tag: "Fix"; readonly config: string | undefined; readonly lint: boolean }
|
|
8
8
|
| { readonly _tag: "BaselineWrite"; readonly config: string | undefined; readonly rules: readonly string[] }
|
|
9
9
|
| { readonly _tag: "BaselinePrune"; readonly config: string | undefined; readonly against: string | undefined }
|
|
10
10
|
| { readonly _tag: "BaselineCheck"; readonly config: string | undefined; readonly against: string | undefined }
|
|
@@ -16,7 +16,7 @@ export type Parsed = { readonly _tag: "Parsed"; readonly command: Command } | {
|
|
|
16
16
|
|
|
17
17
|
export const USAGE = `Usage:
|
|
18
18
|
quality lint [--config <file>] [--warnings summary|all]
|
|
19
|
-
quality fix [--config <file>]
|
|
19
|
+
quality fix [--config <file>] [--lint]
|
|
20
20
|
quality baseline write [--config <file>] [--rule <id>]...
|
|
21
21
|
quality baseline prune [--config <file>] [--against <ref>]
|
|
22
22
|
quality baseline tighten [--config <file>] [--staged]
|
|
@@ -25,7 +25,8 @@ export const USAGE = `Usage:
|
|
|
25
25
|
|
|
26
26
|
lint Run every rule. Exits 1 on an error-level violation, a file over its baseline, a stale registry entry
|
|
27
27
|
or a baseline entry for a rule that is off or unknown.
|
|
28
|
-
fix
|
|
28
|
+
fix Sort every package.json and apply Biome's formatting and assist actions, such as organized imports and sorted keys.
|
|
29
|
+
With --lint, also apply Biome's safe lint fixes, which can change behavior.
|
|
29
30
|
baseline write Record current error-level violations. Creates the baseline, or records the named rules again, replacing their entries.
|
|
30
31
|
baseline prune Drop fixed debt, lower entries to what is left and carry entries to files git saw move. Never adds or raises an entry.
|
|
31
32
|
baseline tighten Prune only the entries of files changed since HEAD, or with --staged, in the index.
|
|
@@ -41,6 +42,7 @@ const OPTIONS = {
|
|
|
41
42
|
config: { type: "string" },
|
|
42
43
|
from: { type: "string" },
|
|
43
44
|
help: { short: "h", type: "boolean" },
|
|
45
|
+
lint: { type: "boolean" },
|
|
44
46
|
rule: { multiple: true, type: "string" },
|
|
45
47
|
staged: { type: "boolean" },
|
|
46
48
|
warnings: { type: "string" },
|
|
@@ -54,7 +56,7 @@ type Values = ReturnType<typeof parseArgs<{ options: typeof OPTIONS; allowPositi
|
|
|
54
56
|
|
|
55
57
|
type Option = Exclude<keyof Values, "config" | "help">;
|
|
56
58
|
|
|
57
|
-
const COMMAND_OPTIONS: readonly Option[] = ["against", "from", "rule", "staged", "warnings"];
|
|
59
|
+
const COMMAND_OPTIONS: readonly Option[] = ["against", "from", "lint", "rule", "staged", "warnings"];
|
|
58
60
|
|
|
59
61
|
const ACCEPTS: Readonly<Record<string, readonly Option[]>> = {
|
|
60
62
|
"baseline check": ["against"],
|
|
@@ -62,7 +64,7 @@ const ACCEPTS: Readonly<Record<string, readonly Option[]>> = {
|
|
|
62
64
|
"baseline prune": ["against"],
|
|
63
65
|
"baseline tighten": ["staged"],
|
|
64
66
|
"baseline write": ["rule"],
|
|
65
|
-
fix: [],
|
|
67
|
+
fix: ["lint"],
|
|
66
68
|
lint: ["warnings"],
|
|
67
69
|
};
|
|
68
70
|
|
|
@@ -85,7 +87,7 @@ const commandFor = (name: string, values: Values): Parsed => {
|
|
|
85
87
|
: usage(`--warnings takes summary or all, not "${warnings}".`);
|
|
86
88
|
}
|
|
87
89
|
case "fix":
|
|
88
|
-
return parsed({ _tag: "Fix", config });
|
|
90
|
+
return parsed({ _tag: "Fix", config, lint: values.lint === true });
|
|
89
91
|
case "baseline write":
|
|
90
92
|
return parsed({ _tag: "BaselineWrite", config, rules: values.rule ?? [] });
|
|
91
93
|
case "baseline prune":
|
package/src/cli/fix.ts
CHANGED
|
@@ -5,14 +5,18 @@ import { SetupFailure } from "../failure.ts";
|
|
|
5
5
|
import { sortManifests } from "../manifests/sorted.ts";
|
|
6
6
|
import { plural } from "../report/plural.ts";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
const LANGUAGES: readonly string[] = ["javascript", "json", "css", "graphql", "grit", "html"];
|
|
9
|
+
|
|
10
|
+
const WITHOUT_LINT: readonly string[] = ["--linter-enabled=false", ...LANGUAGES.map((language) => `--${language}-linter-enabled=false`)];
|
|
11
|
+
|
|
12
|
+
export function fix(cwd: string, config: string | undefined, lint: boolean): Effect.Effect<void, SetupFailure, FileSystem.FileSystem> {
|
|
9
13
|
return Effect.gen(function* () {
|
|
10
14
|
const { root } = yield* loadConfig(cwd, config);
|
|
11
15
|
const sorted = yield* Effect.mapError(sortManifests(root), (failure) => new SetupFailure({ message: failure.message }));
|
|
12
16
|
yield* Console.log(`quality: sort-package-json rewrote ${plural(sorted, "manifest")}.`);
|
|
13
17
|
const report = yield* Effect.tryPromise({
|
|
14
18
|
catch: (cause) => new SetupFailure({ message: cause instanceof Error ? cause.message : String(cause) }),
|
|
15
|
-
try: () => biomeReport(root, ["check", "--write"]),
|
|
19
|
+
try: () => biomeReport(root, ["check", "--write", ...(lint ? [] : WITHOUT_LINT)]),
|
|
16
20
|
});
|
|
17
21
|
yield* Console.log(`quality: Biome rewrote ${plural(report.summary.changed, "file")}.`);
|
|
18
22
|
});
|
package/src/cli.ts
CHANGED
|
@@ -24,7 +24,7 @@ const program = Effect.gen(function* () {
|
|
|
24
24
|
case "Lint":
|
|
25
25
|
return yield* lint(process.cwd(), command.config, command.warnings);
|
|
26
26
|
case "Fix":
|
|
27
|
-
return yield* fix(process.cwd(), command.config);
|
|
27
|
+
return yield* fix(process.cwd(), command.config, command.lint);
|
|
28
28
|
case "BaselineWrite":
|
|
29
29
|
return yield* writeBaseline(process.cwd(), command.config, command.rules);
|
|
30
30
|
case "BaselinePrune":
|
package/src/rules/biome.ts
CHANGED
|
@@ -39,7 +39,8 @@ const bridge = defineRule({
|
|
|
39
39
|
const [preset, report] = await Promise.all([presetFinding(readText), biomeReport(root, ["check"])]);
|
|
40
40
|
return [...preset, ...report.diagnostics.filter((diagnostic) => FAILING.has(diagnostic.severity)).map(findingOf)];
|
|
41
41
|
},
|
|
42
|
-
description:
|
|
42
|
+
description:
|
|
43
|
+
"Biome's lint, format and assist findings under the shared preset. `quality fix` applies the formatting and assist actions; `quality fix --lint` also applies the safe lint fixes.",
|
|
43
44
|
id: "biome",
|
|
44
45
|
registrable: false,
|
|
45
46
|
});
|