ahize must import cleanly in any SSR environment (Next.js App Router, Nuxt 3, Remix, SvelteKit, Astro) without touching `window`/`document` at module scope. Every public method is a no-op when non-browser.
Evidence
Contract
- No `window`/`document` references at module scope. Always behind `isBrowser()` guard.
- `delete` only through `Reflect.deleteProperty` on a narrowed reference.
- Build with `verbatimModuleSyntax: true` + `isolatedModules: true` — already configured.
- CI matrix must include: Next.js 14 + App Router, Next.js 15, Nuxt 3, Remix, SvelteKit, Astro, Cloudflare Workers.
- Add `ahize/server` stub entry so SSR bundles never tree-pull any DOM code.
ahizemust import cleanly in any SSR environment (Next.js App Router, Nuxt 3, Remix, SvelteKit, Astro) without touching `window`/`document` at module scope. Every public method is a no-op when non-browser.Evidence
Contract