{"version":3,"file":"utils.cjs","names":[],"sources":["../../src/push/utils.ts"],"sourcesContent":["/**\n * Convert a base64url-encoded VAPID public key into the `Uint8Array` format\n * required by `PushManager.subscribe({ applicationServerKey })`.\n *\n * Calls `atob` as a bare global rather than `window.atob` because this runs in a\n * **service worker** too: re-subscribing from a `pushsubscriptionchange` handler\n * needs the same conversion, and there is no `window` in a worker scope — the\n * qualified call threw `ReferenceError` there while working fine on the page.\n *\n * @param base64String - VAPID public key (URL-safe base64).\n * @returns The decoded key as bytes.\n */\nexport function urlBase64ToUint8Array(base64String: string): Uint8Array<ArrayBuffer> {\n    const padding = \"=\".repeat((4 - (base64String.length % 4)) % 4);\n    const base64 = (base64String + padding).replace(/-/g, \"+\").replace(/_/g, \"/\");\n    const rawData = atob(base64);\n    const buffer = new ArrayBuffer(rawData.length);\n    const output = new Uint8Array(buffer);\n    for (let i = 0; i < rawData.length; i++) {\n        output[i] = rawData.charCodeAt(i);\n    }\n    return output;\n}\n\n/**\n * Convenience check for environments where the Push API is unavailable\n * (Safari iOS without PWA install, older browsers, SSR, etc.).\n */\nexport function isPushSupported(): boolean {\n    return (\n        typeof window !== \"undefined\" &&\n        \"serviceWorker\" in navigator &&\n        \"PushManager\" in window &&\n        \"Notification\" in window\n    );\n}\n"],"mappings":"AAYA,SAAgB,EAAsB,EAA+C,CAEjF,IAAM,GAAU,EADA,IAAI,QAAQ,EAAK,EAAa,OAAS,GAAM,CAC9B,EAAA,CAAS,QAAQ,KAAM,GAAG,CAAC,CAAC,QAAQ,KAAM,GAAG,EACtE,EAAU,KAAK,CAAM,EACrB,EAAS,IAAI,YAAY,EAAQ,MAAM,EACvC,EAAS,IAAI,WAAW,CAAM,EACpC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,OAAQ,IAChC,EAAO,GAAK,EAAQ,WAAW,CAAC,EAEpC,OAAO,CACX,CAMA,SAAgB,GAA2B,CACvC,OACI,OAAO,OAAW,KAClB,kBAAmB,WACnB,gBAAiB,QACjB,iBAAkB,MAE1B"}