v11y-check 0.7.1 → 0.9.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/README.md +15 -1
- package/dist/esm/.cache +1 -1
- package/dist/esm/bin/route.js +6 -12
- package/dist/esm/bin/v11y.js +1 -1
- package/dist/esm/cli.js +8 -14
- package/package.json +3 -8
package/README.md
CHANGED
|
@@ -2,7 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Wraps [audit-ci](https://github.com/IBM/audit-ci) with a richer config model, typed JSON source of truth, and a sync workflow that automates allowlist management.
|
|
4
4
|
|
|
5
|
-
<!-- section:release-notes
|
|
5
|
+
<!-- section:release-notes -->
|
|
6
|
+
## Release notes — v0.9.0 (2026-06-30)
|
|
7
|
+
|
|
8
|
+
### 🎉 Features
|
|
9
|
+
|
|
10
|
+
- 🚨 **Breaking:** Auto-activate integration test variant from config presence (#448)
|
|
11
|
+
|
|
12
|
+
A package can now separate its integration tests from its standalone suite simply by including a `vitest.integration.config.ts` (alongside a `vitest.standalone.config.ts`). The `--int-test` flag that previously enabled this is removed — that config-file pairing is now the only way to activate the separation. In such a package, `test` and `test:coverage` run only the standalone suite and skip integration tests, while a new `test:all` runs both suites together. The separation now holds even when tests run across every package at once, so a full-workspace `test` run still keeps integration tests out of the default suite. Packages that previously hand-copied these test scripts no longer need to.
|
|
13
|
+
|
|
14
|
+
### 🐛 Bug fixes
|
|
15
|
+
|
|
16
|
+
- Prevent CLI output truncation when piped before exit (#446)
|
|
17
|
+
|
|
18
|
+
Fixes an issue where large output from the `nmr` and `v11y` commands could be truncated when captured through a pipe — for example, by a CI job.
|
|
19
|
+
<!-- /section:release-notes -->
|
|
6
20
|
|
|
7
21
|
## Installation
|
|
8
22
|
|
package/dist/esm/.cache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3212b9610d8d35e990af90c896cc18411959dd3c5885a72d641764a6d054b814
|
package/dist/esm/bin/route.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { parseArgs, readPackageVersion, translateParseError } from "@williamthorsen/nmr-core";
|
|
1
|
+
import { parseArgs, readPackageVersion, reportError } from "@williamthorsen/nmr-core";
|
|
3
2
|
import { auditCommand, checkCommand, extractMessage, syncCommand } from "../cli.js";
|
|
4
3
|
import { initCommand } from "../init/initCommand.js";
|
|
5
4
|
const VERSION = readPackageVersion(import.meta.url);
|
|
@@ -111,12 +110,10 @@ async function routeCommand(args) {
|
|
|
111
110
|
if (command !== void 0 && !command.startsWith("-")) {
|
|
112
111
|
const typoMatch = findTypoMatch(command);
|
|
113
112
|
if (typoMatch !== void 0) {
|
|
114
|
-
|
|
115
|
-
`);
|
|
113
|
+
reportError(`Unknown command '${command}'. Did you mean 'v11y ${typoMatch}'?`);
|
|
116
114
|
return 1;
|
|
117
115
|
}
|
|
118
|
-
|
|
119
|
-
`);
|
|
116
|
+
reportError(`Unknown command '${command}'.`);
|
|
120
117
|
return 1;
|
|
121
118
|
}
|
|
122
119
|
if (args.includes("--raw")) {
|
|
@@ -134,15 +131,13 @@ async function handleSubcommand(flags, handler, helpFn = showHelp) {
|
|
|
134
131
|
try {
|
|
135
132
|
options = parseSharedFlags(flags);
|
|
136
133
|
} catch (error) {
|
|
137
|
-
|
|
138
|
-
`);
|
|
134
|
+
reportError(extractMessage(error));
|
|
139
135
|
return 1;
|
|
140
136
|
}
|
|
141
137
|
try {
|
|
142
138
|
return await handler(options);
|
|
143
139
|
} catch (error) {
|
|
144
|
-
|
|
145
|
-
`);
|
|
140
|
+
reportError(extractMessage(error));
|
|
146
141
|
return 1;
|
|
147
142
|
}
|
|
148
143
|
}
|
|
@@ -159,8 +154,7 @@ function handleInit(flags) {
|
|
|
159
154
|
try {
|
|
160
155
|
parsed = parseArgs(flags, initFlagSchema);
|
|
161
156
|
} catch (error) {
|
|
162
|
-
|
|
163
|
-
`);
|
|
157
|
+
reportError(extractMessage(error));
|
|
164
158
|
return 1;
|
|
165
159
|
}
|
|
166
160
|
return initCommand({ dryRun: parsed.flags.dryRun, force: parsed.flags.force });
|
package/dist/esm/bin/v11y.js
CHANGED
package/dist/esm/cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import process from "node:process";
|
|
2
|
+
import { reportError } from "@williamthorsen/nmr-core";
|
|
2
3
|
import { loadConfig } from "./config.js";
|
|
3
4
|
import { formatCheckJson, formatCheckText } from "./format-check.js";
|
|
4
5
|
import { formatCheckVerboseText } from "./format-verbose.js";
|
|
@@ -16,8 +17,7 @@ async function auditCommand(options) {
|
|
|
16
17
|
try {
|
|
17
18
|
loaded = await loadConfig(options.configPath);
|
|
18
19
|
} catch (error) {
|
|
19
|
-
|
|
20
|
-
`);
|
|
20
|
+
reportError(extractMessage(error));
|
|
21
21
|
return 1;
|
|
22
22
|
}
|
|
23
23
|
const { config } = loaded;
|
|
@@ -66,8 +66,7 @@ async function auditCommand(options) {
|
|
|
66
66
|
return exitCode;
|
|
67
67
|
});
|
|
68
68
|
} catch (error) {
|
|
69
|
-
|
|
70
|
-
`);
|
|
69
|
+
reportError(extractMessage(error));
|
|
71
70
|
return 1;
|
|
72
71
|
}
|
|
73
72
|
}
|
|
@@ -77,8 +76,7 @@ async function checkCommand(options) {
|
|
|
77
76
|
try {
|
|
78
77
|
loaded = await loadConfig(options.configPath);
|
|
79
78
|
} catch (error) {
|
|
80
|
-
|
|
81
|
-
`);
|
|
79
|
+
reportError(extractMessage(error));
|
|
82
80
|
return 1;
|
|
83
81
|
}
|
|
84
82
|
const { config } = loaded;
|
|
@@ -141,8 +139,7 @@ async function checkCommand(options) {
|
|
|
141
139
|
return hasUnallowed ? 1 : 0;
|
|
142
140
|
});
|
|
143
141
|
} catch (error) {
|
|
144
|
-
|
|
145
|
-
`);
|
|
142
|
+
reportError(extractMessage(error));
|
|
146
143
|
return 1;
|
|
147
144
|
}
|
|
148
145
|
}
|
|
@@ -151,16 +148,14 @@ async function syncCommand(options) {
|
|
|
151
148
|
try {
|
|
152
149
|
loaded = await loadConfig(options.configPath);
|
|
153
150
|
} catch (error) {
|
|
154
|
-
|
|
155
|
-
`);
|
|
151
|
+
reportError(extractMessage(error));
|
|
156
152
|
return 1;
|
|
157
153
|
}
|
|
158
154
|
const { configSource } = loaded;
|
|
159
155
|
if (configSource === "defaults") {
|
|
160
156
|
const { configResult } = scaffoldConfig({ dryRun: false, force: false });
|
|
161
157
|
if (configResult.outcome === "failed") {
|
|
162
|
-
|
|
163
|
-
`);
|
|
158
|
+
reportError("Failed to create config file");
|
|
164
159
|
return 1;
|
|
165
160
|
}
|
|
166
161
|
loaded = await loadConfig(options.configPath);
|
|
@@ -202,8 +197,7 @@ async function syncCommand(options) {
|
|
|
202
197
|
return 0;
|
|
203
198
|
});
|
|
204
199
|
} catch (error) {
|
|
205
|
-
|
|
206
|
-
`);
|
|
200
|
+
reportError(extractMessage(error));
|
|
207
201
|
return 1;
|
|
208
202
|
}
|
|
209
203
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "v11y-check",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Wrap audit-ci with a richer config model, typed JSON source of truth, and sync workflow",
|
|
6
6
|
"keywords": [
|
|
@@ -40,15 +40,10 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"audit-ci": "7.1.0",
|
|
42
42
|
"zod": "4.4.3",
|
|
43
|
-
"@williamthorsen/nmr-core": "0.
|
|
43
|
+
"@williamthorsen/nmr-core": "0.5.0"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=18.17.0"
|
|
47
47
|
},
|
|
48
|
-
"scripts": {
|
|
49
|
-
"test": "pnpm exec vitest --config=vitest.standalone.config.ts",
|
|
50
|
-
"test:coverage": "pnpm exec vitest --config=vitest.standalone.config.ts --coverage",
|
|
51
|
-
"test:integration": "pnpm exec vitest --config=vitest.integration.config.ts",
|
|
52
|
-
"test:watch": "pnpm exec vitest --config=vitest.standalone.config.ts --watch"
|
|
53
|
-
}
|
|
48
|
+
"scripts": {}
|
|
54
49
|
}
|