Strict CSP breaks every competitor. We ship nonce-aware injection and a documented directive catalog per provider.
Evidence
Contract
- `load({ nonce: string })` applied to every `<script>` and injected `<style>` tag.
- `cspDirectives(provider)` helper that returns per-provider `Record<'script-src' | 'connect-src' | 'frame-src' | 'style-src' | 'img-src', string[]>` — merge-able into the app's policy.
- Documentation page `docs/csp.md` with exact directive set per provider including WSS endpoints (e.g. `wss://nexus-websocket-*.intercom.io`, `wss://client.relay.crisp.chat`, `wss://widget-mediator.zopim.com`, `wss:///cable`).
- Runtime dev-mode warning if we detect a CSP blocked message via `securitypolicyviolation` event.
Strict CSP breaks every competitor. We ship nonce-aware injection and a documented directive catalog per provider.
Evidence
Contract