styleproof 3.12.0 → 3.13.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 +12 -0
- package/bin/styleproof-diff.mjs +20 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.13.0] - 2026-07-05
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`styleproof-diff --json` now carries the inventory verdict.** The structured output
|
|
15
|
+
gained an `inventory` field alongside `coverage` and `determinism` — so all three
|
|
16
|
+
source-of-truth axes are machine-readable, matching the report's certification block.
|
|
17
|
+
Shape: `{ removed, added, unacknowledged, staleAcknowledgements }` (arrays of keys),
|
|
18
|
+
or `null` when no capture carried inventory. Previously the inventory removals were
|
|
19
|
+
printed to stdout but absent from `--json`, forcing a CI that wanted to hard-gate on a
|
|
20
|
+
dropped nav item to grep human prose. Now it can read `inventory.unacknowledged.length`.
|
|
21
|
+
|
|
10
22
|
## [3.12.0] - 2026-07-05
|
|
11
23
|
|
|
12
24
|
### Changed
|
package/bin/styleproof-diff.mjs
CHANGED
|
@@ -306,7 +306,26 @@ const determinismFails = printDeterminismVerdict(determinismVerdict);
|
|
|
306
306
|
if (jsonOut)
|
|
307
307
|
fs.writeFileSync(
|
|
308
308
|
jsonOut,
|
|
309
|
-
JSON.stringify(
|
|
309
|
+
JSON.stringify(
|
|
310
|
+
{
|
|
311
|
+
counts,
|
|
312
|
+
surfaces,
|
|
313
|
+
compared,
|
|
314
|
+
coverage: coverageVerdict,
|
|
315
|
+
determinism: determinismVerdict,
|
|
316
|
+
// The inventory verdict, machine-readable — parallel to coverage/determinism and
|
|
317
|
+
// to the report's certification block. `null` when no capture carried inventory.
|
|
318
|
+
// `unacknowledged` is the gating set: a CI can hard-fail on `unacknowledged.length`.
|
|
319
|
+
inventory: inventoryAudit && {
|
|
320
|
+
removed: inventoryAudit.delta.removed.map((i) => i.key),
|
|
321
|
+
added: inventoryAudit.delta.added.map((i) => i.key),
|
|
322
|
+
unacknowledged: inventoryAudit.unexplained.map((i) => i.key),
|
|
323
|
+
staleAcknowledgements: inventoryAudit.staleAllowances,
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
null,
|
|
327
|
+
2,
|
|
328
|
+
),
|
|
310
329
|
);
|
|
311
330
|
|
|
312
331
|
const total = counts.dom + counts.style + counts.state;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "styleproof",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.13.0",
|
|
4
4
|
"description": "Catch every CSS change before it ships — review PRs and certify refactors by the browser's computed styles, not pixels. Works with any styling system.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"playwright",
|