1.2 KiB
WRNexusJS public API policy
The package root and every declared package export subpath are public API. During
the 0.8.x release line, exported names are additive: removal or renaming needs
a deprecation cycle and a major/minor compatibility decision, not an incidental
refactor.
bun run check:public-api resolves TypeScript re-exports and compares all
publishable package/subpaths with docs/public-api-0.8.json. It is read-only and
runs in the production gate. When an intentional, reviewed API addition or
approved compatibility change occurs, update the baseline with:
bun run generate:public-api
The baseline guards exported names, while package tarball consumer tests guard conditional export targets, declarations, runtime imports, browser bundling, assets, and the CLI binary. Behavioral compatibility remains covered by package tests and migration tests; the API baseline does not replace those contracts.
Browser runtime growth is also a reviewed compatibility concern. The read-only security/performance gate caps source payloads at 150 kB for reactive hydration, 25 kB for navigation, and 15 kB for realtime. Production delivery additionally uses Brotli; a budget increase requires an explicit performance review.