v11y-check 0.14.2 → 0.15.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.
@@ -1,6 +1,6 @@
1
1
  /** @noformat — @generated. Do not edit. Compiled by rdy. */
2
2
  /* eslint-disable */
3
- export const __readyupVersion = "0.23.0";
3
+ export const __readyupVersion = "0.24.0";
4
4
 
5
5
 
6
6
  // .readyup/kits/default.ts
@@ -39,7 +39,7 @@ var default_default = defineRdyKit({
39
39
  {
40
40
  name: "audit-ci configs are under .config/audit-ci/",
41
41
  severity: "warn",
42
- skip: skipLegacyAuditCiCheck,
42
+ quiet: true,
43
43
  check: noLegacyAuditCiDirectory,
44
44
  fix: "Move audit-ci configs from .audit-ci/ to .config/audit-ci/ and update references"
45
45
  },
@@ -63,21 +63,17 @@ var default_default = defineRdyKit({
63
63
  ]
64
64
  });
65
65
  function getMinVersion() {
66
- const picked = { "version": "0.14.2" };
67
- if (typeof picked.version !== "string") {
66
+ const picked = { "version": "0.15.0" };
67
+ if (typeof picked["version"] !== "string") {
68
68
  throw new TypeError("v11y-check/package.json: 'version' must be a string");
69
69
  }
70
- return picked.version;
70
+ return picked["version"];
71
71
  }
72
72
  function noLegacyAuditCiDirectory() {
73
73
  return !existsSync(join(process.cwd(), ".audit-ci"));
74
74
  }
75
- function skipLegacyAuditCiCheck() {
76
- return !existsSync(join(process.cwd(), ".audit-ci")) ? "no legacy .audit-ci/ directory" : false;
77
- }
78
75
  export {
79
76
  AUDIT_WORKFLOW_HASH,
80
77
  default_default as default,
81
- noLegacyAuditCiDirectory,
82
- skipLegacyAuditCiCheck
78
+ noLegacyAuditCiDirectory
83
79
  };
@@ -7,10 +7,10 @@
7
7
  ],
8
8
  "name": "default",
9
9
  "path": "kits/default.js",
10
- "readyupVersion": "0.23.0",
10
+ "readyupVersion": "0.24.0",
11
11
  "source": "kits/default.ts",
12
- "sourceHash": "7bf5eedb",
13
- "targetHash": "951db62c"
12
+ "sourceHash": "52754bbb",
13
+ "targetHash": "37ddf3f5"
14
14
  }
15
15
  ]
16
16
  }
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 --><!-- /section:release-notes -->
5
+ <!-- section:release-notes -->
6
+ ## Release notes — v0.15.0 (2026-08-08)
7
+
8
+ ### 🎉 Features
9
+
10
+ - Stop reporting absence checks that pass (#610)
11
+
12
+ A ReadyUp check that checks for a problem (such as an unwanted file or a stale config reference) now stays silent unless it finds one. The `nmr`, `release-kit`, and `v11y-check` ReadyUp kits previously printed a line for every such check on every run.
13
+
14
+ ### 🐛 Bug fixes
15
+
16
+ - Publish build output atomically so a failed build cannot destroy it (#631)
17
+
18
+ Fixes an issue where a failed or still-running `nmr build` could leave a package with no build output at all, breaking the tooling that a subsequent build depends on. Separately, the error reported when a package's build output is missing now names the correct recovery command.
19
+ <!-- /section:release-notes -->
6
20
 
7
21
  ## Installation
8
22
 
package/bin/v11y.js CHANGED
@@ -3,7 +3,7 @@ try {
3
3
  await import('../dist/esm/bin/v11y.js');
4
4
  } catch (error) {
5
5
  if (error.code === 'ERR_MODULE_NOT_FOUND') {
6
- process.stderr.write('v11y: build output not found — run `pnpm run build` first\n');
6
+ process.stderr.write('v11y: build output not found — run `nmr build` first\n');
7
7
  } else {
8
8
  process.stderr.write(`v11y: failed to load: ${error.message}\n`);
9
9
  }
@@ -127,6 +127,6 @@ export function formatCheckJson(result, scopes) {
127
127
  for (const scope of scopes) {
128
128
  output[scope] = result[scope];
129
129
  }
130
- output.summary = deriveSummary(result, scopes);
130
+ output['summary'] = deriveSummary(result, scopes);
131
131
  return JSON.stringify(output, null, 2) + '\n';
132
132
  }
@@ -137,7 +137,7 @@ function wrapParagraph(paragraph, columns) {
137
137
  current = word;
138
138
  }
139
139
  else {
140
- current = `${current} ${word}`;
140
+ current += ` ${word}`;
141
141
  }
142
142
  }
143
143
  if (current !== '')
package/dist/esm/sync.js CHANGED
@@ -16,12 +16,10 @@ function serializeEntry(entry) {
16
16
  };
17
17
  }
18
18
  function serializeScopeConfig(scopeConfig) {
19
- const result = {};
20
- if (scopeConfig.severityThreshold !== undefined) {
21
- result.severityThreshold = scopeConfig.severityThreshold;
22
- }
23
- result.allowlist = scopeConfig.allowlist.map(serializeEntry);
24
- return result;
19
+ return {
20
+ ...(scopeConfig.severityThreshold !== undefined && { severityThreshold: scopeConfig.severityThreshold }),
21
+ allowlist: scopeConfig.allowlist.map(serializeEntry),
22
+ };
25
23
  }
26
24
  export function computeSyncDiff(currentAllowlist, auditResults, date) {
27
25
  const now = date ?? new Date();
@@ -64,12 +62,11 @@ export function buildUpdatedConfig(config, scope, newAllowlist) {
64
62
  };
65
63
  }
66
64
  export function serializeConfig(config) {
67
- const serializable = {};
68
- if (config.$schema !== undefined) {
69
- serializable.$schema = config.$schema;
70
- }
71
- serializable.dev = serializeScopeConfig(config.dev);
72
- serializable.prod = serializeScopeConfig(config.prod);
65
+ const serializable = {
66
+ ...(config.$schema !== undefined && { $schema: config.$schema }),
67
+ dev: serializeScopeConfig(config.dev),
68
+ prod: serializeScopeConfig(config.prod),
69
+ };
73
70
  return JSON.stringify(serializable, null, 2) + '\n';
74
71
  }
75
72
  export async function syncAllowlist(config, scope, auditResults, configFilePath, date) {
@@ -80,7 +77,7 @@ export async function syncAllowlist(config, scope, auditResults, configFilePath,
80
77
  }
81
78
  catch (error) {
82
79
  const message = error instanceof Error ? error.message : String(error);
83
- throw new Error(`Failed to write config file '${configFilePath}': ${message}`);
80
+ throw new Error(`Failed to write config file '${configFilePath}': ${message}`, { cause: error });
84
81
  }
85
82
  return {
86
83
  syncResult: { added, kept, removed, scope },
package/dist/esm/types.js CHANGED
@@ -30,8 +30,8 @@ export function isSeverityAtOrAbove(severity, threshold) {
30
30
  return true;
31
31
  const levels = SEVERITY_THRESHOLDS;
32
32
  const severityIndex = levels.indexOf(severity);
33
- const thresholdIndex = SEVERITY_THRESHOLDS.indexOf(threshold);
34
33
  if (severityIndex === -1)
35
34
  return true;
35
+ const thresholdIndex = SEVERITY_THRESHOLDS.indexOf(threshold);
36
36
  return severityIndex >= thresholdIndex;
37
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "v11y-check",
3
- "version": "0.14.2",
3
+ "version": "0.15.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": [
@@ -42,10 +42,10 @@
42
42
  "dependencies": {
43
43
  "audit-ci": "7.1.0",
44
44
  "zod": "4.4.3",
45
- "@williamthorsen/nmr-core": "0.9.2"
45
+ "@williamthorsen/nmr-core": "0.9.3"
46
46
  },
47
47
  "devDependencies": {
48
- "readyup": "0.23.0"
48
+ "readyup": "0.24.0"
49
49
  },
50
50
  "engines": {
51
51
  "node": ">=24"