Open source · Web & UX

Browser Support Budget

Compare browser support claims with APIs used by the shipped bundle.

v0.1.0 · Node.js 22+ · MIT

Browse the public repository · View releases

The first command exits 0; the second exits 1 and traces an unsupported feature to /features/0/usages/0 in @inventory. @matrix, @inventory, and @dataset are logical source roles, not host paths. The pointer resolves within the named input document. No source text or filesystem path is echoed in findings.

This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+.

Run the checked-in example

node bin/browser-support-budget.mjs --root examples/passing --matrix matrix.json --inventory inventory.json
node bin/browser-support-budget.mjs --root examples/failing --matrix matrix.json --inventory inventory.json

Read the result

The first command exits 0; the second exits 1 and traces an unsupported feature to /features/0/usages/0 in @inventory. @matrix, @inventory, and @dataset are logical source roles, not host paths. The pointer resolves within the named input document. No source text or filesystem path is echoed in findings.

Scope

Matrix 262,144 bytes; inventory 1,048,576 bytes; JSON depth 16; 20 browser targets; 1,000 feature records; 5,000 usage records; evaluation time 5,000 ms from an injected clock. Limits are inclusive; N+1 yields incomplete. Inputs are UTF-8 decoded strictly. CLI inputs are realpath-confined inside the declared root. The CLI writes no files and makes no network calls. No browser, source scanner, dependency resolver, telemetry, or auto-polyfill is included. The library exports TOOLID, LIMITS, RULES, and pure evaluateBudget(matrix, inventory, dataset, {now, deadline}).