@bounded-sh/client 0.0.53-next.1 → 0.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -4
- package/dist/builds/apps.d.ts +11 -4
- package/dist/builds/client.d.ts +5 -1
- package/dist/builds/types.d.ts +9 -0
- package/dist/{email-auth-provider-CR7B2pob.mjs → email-auth-provider-BGc8H93l.mjs} +2 -2
- package/dist/{email-auth-provider-CRFJd5Rp.mjs.map → email-auth-provider-BGc8H93l.mjs.map} +1 -1
- package/dist/{email-auth-provider-BQ-DTX3z.js → email-auth-provider-BZJ9EcnE.js} +2 -2
- package/dist/{email-auth-provider-BQ-DTX3z.js.map → email-auth-provider-BZJ9EcnE.js.map} +1 -1
- package/dist/{email-auth-provider-CRFJd5Rp.mjs → email-auth-provider-CD7YIGxe.mjs} +2 -2
- package/dist/{email-auth-provider-CR7B2pob.mjs.map → email-auth-provider-CD7YIGxe.mjs.map} +1 -1
- package/dist/{email-auth-provider-CyEhOnGQ.js → email-auth-provider-ChDGkDyY.js} +2 -2
- package/dist/{email-auth-provider-CyEhOnGQ.js.map → email-auth-provider-ChDGkDyY.js.map} +1 -1
- package/dist/{guest-auth-provider-3cWfAi5V.js → guest-auth-provider-B2CPHhym.js} +2 -2
- package/dist/{guest-auth-provider-3cWfAi5V.js.map → guest-auth-provider-B2CPHhym.js.map} +1 -1
- package/dist/{guest-auth-provider-1GGM1eWA.mjs → guest-auth-provider-BkkSRli_.mjs} +2 -2
- package/dist/{guest-auth-provider-BLzLLs7u.mjs.map → guest-auth-provider-BkkSRli_.mjs.map} +1 -1
- package/dist/{guest-auth-provider-DkUngKob.js → guest-auth-provider-C7u3RFEX.js} +2 -2
- package/dist/{guest-auth-provider-DkUngKob.js.map → guest-auth-provider-C7u3RFEX.js.map} +1 -1
- package/dist/{guest-auth-provider-BLzLLs7u.mjs → guest-auth-provider-DZQWJu59.mjs} +2 -2
- package/dist/{guest-auth-provider-1GGM1eWA.mjs.map → guest-auth-provider-DZQWJu59.mjs.map} +1 -1
- package/dist/{index-C6p_-77w.js → index-CK36YlGT.js} +13 -12
- package/dist/{index-C6p_-77w.js.map → index-CK36YlGT.js.map} +1 -1
- package/dist/{index-Co7IqxVo.mjs → index-DuaMs1q-.mjs} +13 -12
- package/dist/{index-Co7IqxVo.mjs.map → index-DuaMs1q-.mjs.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{index.native-BoKkzObx.mjs → index.native-C5SoJAZn.mjs} +13 -12
- package/dist/{index.native-BoKkzObx.mjs.map → index.native-C5SoJAZn.mjs.map} +1 -1
- package/dist/{index.native-BTPOnWux.js → index.native-DoWvYWaz.js} +13 -12
- package/dist/{index.native-BTPOnWux.js.map → index.native-DoWvYWaz.js.map} +1 -1
- package/dist/index.native.js +1 -1
- package/dist/index.native.mjs +1 -1
- package/dist/{injected-evm-wallet-provider-Cjs3K7fU.js → injected-evm-wallet-provider-9ephHduG.js} +2 -2
- package/dist/{injected-evm-wallet-provider-Cjs3K7fU.js.map → injected-evm-wallet-provider-9ephHduG.js.map} +1 -1
- package/dist/{injected-evm-wallet-provider-Bsh00akg.mjs → injected-evm-wallet-provider-CMZE-rJ7.mjs} +2 -2
- package/dist/{injected-evm-wallet-provider-Bsh00akg.mjs.map → injected-evm-wallet-provider-CMZE-rJ7.mjs.map} +1 -1
- package/dist/{injected-evm-wallet-provider-DCqeV702.js → injected-evm-wallet-provider-GANZNy2j.js} +2 -2
- package/dist/{injected-evm-wallet-provider-DCqeV702.js.map → injected-evm-wallet-provider-GANZNy2j.js.map} +1 -1
- package/dist/{injected-evm-wallet-provider-CA9ENSN4.mjs → injected-evm-wallet-provider-bbFMPrsJ.mjs} +2 -2
- package/dist/{injected-evm-wallet-provider-CA9ENSN4.mjs.map → injected-evm-wallet-provider-bbFMPrsJ.mjs.map} +1 -1
- package/dist/{injected-wallet-provider-BwHOxPAR.mjs → injected-wallet-provider-BHBiq-r2.mjs} +2 -2
- package/dist/{injected-wallet-provider-BwHOxPAR.mjs.map → injected-wallet-provider-BHBiq-r2.mjs.map} +1 -1
- package/dist/{injected-wallet-provider-CfzCTdM5.js → injected-wallet-provider-CABVyh7K.js} +2 -2
- package/dist/{injected-wallet-provider-CfzCTdM5.js.map → injected-wallet-provider-CABVyh7K.js.map} +1 -1
- package/dist/{injected-wallet-provider-CmhZtf9E.js → injected-wallet-provider-C_EmEki7.js} +2 -2
- package/dist/{injected-wallet-provider-CmhZtf9E.js.map → injected-wallet-provider-C_EmEki7.js.map} +1 -1
- package/dist/{injected-wallet-provider-uF4yZt8l.mjs → injected-wallet-provider-DGN0kuf_.mjs} +2 -2
- package/dist/{injected-wallet-provider-uF4yZt8l.mjs.map → injected-wallet-provider-DGN0kuf_.mjs.map} +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native-BoKkzObx.mjs","sources":["../.rollup-tmp/platform.js","../.rollup-tmp/auth/providers/offchain-auth-provider.js","../.rollup-tmp/auth/solana-rpc.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/index.js","../node_modules/safe-buffer/index.js","../node_modules/base-x/src/index.js","../node_modules/bs58/src/esm/index.js","../.rollup-tmp/auth/crossmint-signer-bridge.js","../.rollup-tmp/auth/oidc-auth.js","../.rollup-tmp/auth/index.js","../.rollup-tmp/global.js","../.rollup-tmp/auth/hooks/useAuth.js","../.rollup-tmp/utils.js","../.rollup-tmp/builds/client.js","../.rollup-tmp/builds/types.js","../.rollup-tmp/builds/watch.js","../.rollup-tmp/hooks/useBuildRun.js","../.rollup-tmp/builds/index.js","../.rollup-tmp/builds/apps.js","../.rollup-tmp/auth/providers/sol/sol-utils.js","../.rollup-tmp/auth/providers/transaction-utils.js","../.rollup-tmp/auth/providers/privy-expo-provider.js"],"sourcesContent":["/**\n * Platform abstraction layer for React Native compatibility.\n *\n * This module provides interfaces and default (web) implementations for\n * browser-specific APIs that are unavailable in React Native:\n * - Storage (localStorage / sessionStorage)\n * - TextEncoder\n * - Base-64 (btoa / atob)\n * - SubtleCrypto (crypto.subtle.digest)\n * - DOM helpers (document.*, requestAnimationFrame)\n * - Location (window.location.origin)\n * - UserAgent (navigator.userAgent)\n *\n * React Native consumers call `setPlatform(adapter)` once at startup to\n * supply their own implementations (e.g. AsyncStorage-backed storage,\n * expo-crypto, react-native-get-random-values, etc.).\n *\n * Web consumers don't need to do anything — the defaults use the browser APIs.\n */\n/** In-memory fallback when neither browser storage nor a custom adapter exist. */\nclass MemoryStorage {\n constructor() {\n this.store = new Map();\n }\n getItem(key) { var _a; return (_a = this.store.get(key)) !== null && _a !== void 0 ? _a : null; }\n setItem(key, value) { this.store.set(key, value); }\n removeItem(key) { this.store.delete(key); }\n}\n// ---------------------------------------------------------------------------\n// Default web implementation\n// ---------------------------------------------------------------------------\nfunction createWebPlatform() {\n const hasWindow = typeof window !== 'undefined';\n const hasDoc = typeof document !== 'undefined';\n return {\n storage: hasWindow && typeof localStorage !== 'undefined'\n ? localStorage\n : new MemoryStorage(),\n sessionStorage: hasWindow && typeof sessionStorage !== 'undefined'\n ? sessionStorage\n : new MemoryStorage(),\n textEncode(input) {\n return new TextEncoder().encode(input);\n },\n atob(input) {\n if (hasWindow)\n return window.atob(input);\n // Node / SSR fallback\n return Buffer.from(input, 'base64').toString('binary');\n },\n btoa(input) {\n if (hasWindow)\n return window.btoa(input);\n return Buffer.from(input, 'binary').toString('base64');\n },\n async sha256(data) {\n if (typeof crypto !== 'undefined' && crypto.subtle) {\n return crypto.subtle.digest('SHA-256', data);\n }\n // Node / SSR fallback. Keep the specifier indirect so browser\n // bundlers do not externalize or preload a Node-only module in the\n // email/guest graph; this branch is unreachable when WebCrypto is\n // available (all supported browsers and current Node releases).\n const nodeCryptoSpecifier = 'node:crypto';\n const { createHash } = await import(/* @vite-ignore */ nodeCryptoSpecifier);\n const hash = createHash('sha256').update(data).digest();\n return hash.buffer.slice(hash.byteOffset, hash.byteOffset + hash.byteLength);\n },\n getRandomBytes(length) {\n const out = new Uint8Array(length);\n const g = typeof globalThis !== 'undefined' ? globalThis : undefined;\n if (g && g.crypto && typeof g.crypto.getRandomValues === 'function') {\n g.crypto.getRandomValues(out);\n return out;\n }\n throw new Error('No secure random source available for PKCE. On React Native, either import ' +\n \"'react-native-get-random-values' once at your app entry, or pass getRandomBytes \" +\n 'via setPlatform({ getRandomBytes }) (e.g. expo-crypto getRandomBytes).');\n },\n getUserAgent() {\n if (hasWindow && typeof navigator !== 'undefined')\n return navigator.userAgent;\n return '';\n },\n getLocationOrigin() {\n if (hasWindow && window.location)\n return window.location.origin;\n return undefined;\n },\n hasDOM: hasDoc,\n };\n}\n// ---------------------------------------------------------------------------\n// Singleton & public API\n// ---------------------------------------------------------------------------\nlet _platform = createWebPlatform();\nlet _platformConfigured = false;\n/**\n * Override the platform adapter (call once at app startup in React Native).\n *\n * Must be called **before** `init()`. Can only be called once — subsequent\n * calls throw to prevent accidental mid-session storage swaps.\n *\n * ```ts\n * import { setPlatform } from '@bounded-sh/client';\n * import AsyncStorage from '@react-native-async-storage/async-storage';\n *\n * // Create a synchronous wrapper around AsyncStorage for the adapter\n * // (see docs for a full example).\n * setPlatform({ storage: myStorage, ... });\n * ```\n */\nexport function setPlatform(adapter) {\n if (_platformConfigured) {\n throw new Error('setPlatform() has already been called. It can only be invoked once at startup.');\n }\n _platformConfigured = true;\n _platform = Object.assign(Object.assign({}, _platform), adapter);\n}\n/** Get the current platform adapter. */\nexport function getPlatform() {\n return _platform;\n}\n// ---------------------------------------------------------------------------\n// Mobile / Android detection helpers\n// ---------------------------------------------------------------------------\n/**\n * Detect mobile device even when Chrome \"Request Desktop Site\" is active.\n *\n * Desktop mode on Android strips \"Android\" and \"Mobile\" from the UA, leaving\n * something like \"Linux x86_64 …\". The fallback detects this by looking for\n * touch capability + small viewport + a UA that doesn't belong to a known\n * desktop OS (ChromeOS, Windows, macOS).\n */\nexport function detectMobile() {\n const ua = _platform.getUserAgent();\n if (/Android|iPhone|iPad|iPod/i.test(ua))\n return true;\n if (typeof navigator !== 'undefined' && typeof window !== 'undefined') {\n const hasTouch = navigator.maxTouchPoints > 0;\n // Macs don't have touch screens, so \"Macintosh\" + touch = iOS desktop mode\n // (also catches iPadOS 13+ which always reports as Macintosh)\n if (/Macintosh/i.test(ua) && hasTouch)\n return true;\n // Android desktop mode: Linux UA + touch + small viewport, excluding\n // known desktop OSes (ChromeOS, Windows, macOS)\n const isSmallViewport = window.innerWidth <= 1024;\n const isDesktopOS = /CrOS|Windows|Macintosh/i.test(ua);\n if (hasTouch && isSmallViewport && !isDesktopOS)\n return true;\n }\n return false;\n}\n/**\n * Detect Android, including desktop-mode Chrome and Seeker/Saga in-app browsers.\n */\nexport function detectAndroid() {\n const ua = _platform.getUserAgent();\n if (/Android/i.test(ua))\n return true;\n if (/SolanaWallet|SeedVault/i.test(ua))\n return true;\n // Desktop-mode fallback: detected as mobile + Linux UA + not another OS\n if (detectMobile() && /Linux/i.test(ua) && !/CrOS|Macintosh|iPhone|iPad/i.test(ua))\n return true;\n return false;\n}\n/**\n * Reset the platform to web defaults and clear the configured flag.\n * **For testing only** — not exported from the public API.\n * @internal\n */\nexport function _resetPlatformForTesting() {\n _platform = createWebPlatform();\n _platformConfigured = false;\n}\n","import { getPlatform } from \"../../platform\";\n/**\n * OffchainAuthProvider wraps a real auth provider (e.g., Phantom) for the poofnet environment.\n *\n * signMessage shows a custom confirmation modal and then delegates to the wrapped\n * provider for a real detached signature over the exact offchain transaction message.\n */\nexport class OffchainAuthProvider {\n constructor(wrappedProvider, config = {}) {\n this.modalContainer = null;\n this.wrappedProvider = wrappedProvider;\n this.config = config;\n }\n // ============ Delegated Methods ============\n async login() {\n const user = await this.wrappedProvider.login();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n // Forward per-call login overrides (theme/title/subtitle and the `method`\n // directive) to the wrapped provider. Without this, the top-level login()\n // forwarder (which duck-types `setLoginOverrides` on the active provider)\n // skips the wrapper and the override — including `method` — is dropped on\n // offchain/Poofnet builds.\n setLoginOverrides(opts) {\n var _a, _b;\n (_b = (_a = this.wrappedProvider).setLoginOverrides) === null || _b === void 0 ? void 0 : _b.call(_a, opts);\n }\n async logout() {\n await this.wrappedProvider.logout();\n }\n async restoreSession() {\n const user = await this.wrappedProvider.restoreSession();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n async runTransaction(evmTransactionData, solTransactionData, options) {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n async signTransaction(tx) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n async getNativeMethods() {\n return this.wrappedProvider.getNativeMethods();\n }\n // Forward wallet export to the wrapped provider (only Privy embedded wallets\n // implement it). Duck-typed so wrappers around non-embedded providers throw\n // a clear error rather than a \"not a function\" crash.\n async exportWallet(address) {\n if (typeof this.wrappedProvider.exportWallet !== 'function') {\n throw new Error('Wallet export is not available for this wallet.');\n }\n await this.wrappedProvider.exportWallet(address);\n }\n // ============ signMessage delegates to wrapped provider ============\n async signMessage(message) {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = this.config).onSigningStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n try {\n // On RN (no DOM), auto-confirm — there's no modal to show.\n // On web, show the confirmation modal.\n if (getPlatform().hasDOM) {\n const confirmed = await this.showTransactionModal(message);\n if (!confirmed) {\n throw new Error(\"Transaction rejected by user\");\n }\n }\n const signature = await this.wrappedProvider.signMessage(message);\n // Callback: signing complete\n (_d = (_c = this.config).onSigningComplete) === null || _d === void 0 ? void 0 : _d.call(_c, signature);\n return signature;\n }\n catch (error) {\n (_f = (_e = this.config).onSigningError) === null || _f === void 0 ? void 0 : _f.call(_e, error);\n throw error;\n }\n }\n // ============ Modal Implementation ============\n async showUnsupportedTransactionModal() {\n return new Promise((resolve) => {\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-unsupported-modal\";\n this.modalContainer.appendChild(this.buildUnsupportedModalContent());\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle cancel button\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve();\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve();\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n async showTransactionModal(message) {\n return new Promise((resolve) => {\n // Parse the transaction message for display\n let parsed = {};\n try {\n parsed = JSON.parse(message);\n }\n catch (_a) {\n // If not JSON, just show raw message\n }\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-tx-modal\";\n this.modalContainer.appendChild(this.buildTransactionModalContent(parsed, message));\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert to disable focus traps from other modals\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle confirm\n const confirmBtn = this.modalContainer.querySelector(\"#poofnet-confirm-btn\");\n confirmBtn === null || confirmBtn === void 0 ? void 0 : confirmBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(true);\n });\n // Handle cancel\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve(false);\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve(false);\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n closeModal() {\n if (this.modalContainer) {\n // Remove inert attribute from all elements\n document.body.querySelectorAll(\"[inert]\").forEach((el) => {\n el.removeAttribute(\"inert\");\n });\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n const content = this.modalContainer.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"0\";\n if (content) {\n content.style.opacity = \"0\";\n content.style.transform = \"translateY(20px)\";\n }\n setTimeout(() => {\n var _a;\n (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.remove();\n this.modalContainer = null;\n }, 200);\n }\n }\n createElement(tag, className, text) {\n const el = document.createElement(tag);\n if (className)\n el.className = className;\n if (text !== undefined)\n el.textContent = text;\n return el;\n }\n appendTextElement(parent, tag, className, text) {\n const el = this.createElement(tag, className, text);\n parent.appendChild(el);\n return el;\n }\n buildModalShell(icon, title) {\n const overlay = this.createElement(\"div\", \"poofnet-modal-overlay\");\n const content = this.createElement(\"div\", \"poofnet-modal-content\");\n overlay.appendChild(content);\n const close = this.createElement(\"button\", \"poofnet-close-btn\", \"×\");\n close.id = \"poofnet-close-btn\";\n close.setAttribute(\"aria-label\", \"Close\");\n close.type = \"button\";\n content.appendChild(close);\n const header = this.createElement(\"div\", \"poofnet-modal-header\");\n this.appendTextElement(header, \"div\", \"poofnet-modal-icon\", icon);\n this.appendTextElement(header, \"h2\", \"poofnet-modal-title\", title);\n this.appendTextElement(header, \"p\", \"poofnet-modal-subtitle\", \"Poofnet Simulated Blockchain\");\n content.appendChild(header);\n const body = this.createElement(\"div\", \"poofnet-modal-body\");\n content.appendChild(body);\n const footer = this.createElement(\"div\", \"poofnet-modal-footer\");\n content.appendChild(footer);\n return { overlay, body, footer };\n }\n buildInfoBox(text, warning = false) {\n const info = this.createElement(\"div\", \"poofnet-info-box\");\n if (warning)\n info.style.background = \"#fef3c7\";\n this.appendTextElement(info, \"span\", \"poofnet-info-icon\", \"ℹ️\");\n const infoText = this.createElement(\"span\", \"poofnet-info-text\", text);\n if (warning)\n infoText.style.color = \"#92400e\";\n info.appendChild(infoText);\n return info;\n }\n buildUnsupportedModalContent() {\n const { overlay, body, footer } = this.buildModalShell(\"⚠️\", \"Transaction Not Supported\");\n body.appendChild(this.buildInfoBox(\"Poofnet is a simulated blockchain and does not support real Solana transactions. Deploy your project to mainnet to test real transactions.\", true));\n const close = this.createElement(\"button\", \"poofnet-btn poofnet-btn-cancel\", \"Close\");\n close.id = \"poofnet-cancel-btn\";\n close.type = \"button\";\n close.style.flex = \"1\";\n footer.appendChild(close);\n return overlay;\n }\n formatPath(path) {\n const parts = path.split(\"/\").filter(Boolean);\n if (parts.length >= 2) {\n return {\n collection: parts[0],\n documentId: parts[parts.length - 1],\n };\n }\n return { collection: parts[0] || path, documentId: null };\n }\n formatFieldValue(value) {\n if (value === null || value === undefined)\n return \"null\";\n if (typeof value === \"string\") {\n return value.length > 30\n ? `\"${value.slice(0, 30)}...\"`\n : `\"${value}\"`;\n }\n if (typeof value === \"number\" || typeof value === \"boolean\")\n return String(value);\n if (Array.isArray(value))\n return `[${value.length} items]`;\n if (typeof value === \"object\")\n return `{${Object.keys(value).length} fields}`;\n return String(value);\n }\n getActionDescription(type, collection, isNew) {\n if (type === \"delete\")\n return `Delete from ${collection}`;\n return isNew ? `Create in ${collection}` : `Update ${collection}`;\n }\n buildTransactionModalContent(parsed, rawMessage) {\n const instructions = parsed.instructions || [];\n // Group instructions by type for summary\n const sets = instructions.filter((i) => i.type === \"set\");\n const deletes = instructions.filter((i) => i.type === \"delete\");\n // Create summary text\n let summaryText = \"\";\n if (sets.length > 0 && deletes.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}, ${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n else if (sets.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}`;\n }\n else if (deletes.length > 0) {\n summaryText = `${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n const { overlay, body, footer } = this.buildModalShell(\"🔐\", \"Confirm Transaction\");\n if (instructions.length > 0) {\n if (summaryText) {\n this.appendTextElement(body, \"div\", \"poofnet-summary\", summaryText);\n }\n const list = this.createElement(\"div\", \"poofnet-instructions-list\");\n for (const inst of instructions) {\n list.appendChild(this.buildInstructionElement(inst));\n }\n body.appendChild(list);\n }\n else {\n const section = this.createElement(\"div\", \"poofnet-section\");\n this.appendTextElement(section, \"h3\", \"poofnet-section-title\", \"Message\");\n const raw = this.createElement(\"pre\", \"poofnet-raw-message\", rawMessage.slice(0, 200) + (rawMessage.length > 200 ? \"...\" : \"\"));\n section.appendChild(raw);\n body.appendChild(section);\n }\n body.appendChild(this.buildInfoBox(\"This is a simulated transaction. No real fees will be charged.\"));\n const cancel = this.createElement(\"button\", \"poofnet-btn poofnet-btn-cancel\", \"Cancel\");\n cancel.id = \"poofnet-cancel-btn\";\n cancel.type = \"button\";\n footer.appendChild(cancel);\n const confirm = this.createElement(\"button\", \"poofnet-btn poofnet-btn-confirm\", \"Confirm\");\n confirm.id = \"poofnet-confirm-btn\";\n confirm.type = \"button\";\n footer.appendChild(confirm);\n return overlay;\n }\n buildInstructionElement(inst) {\n const { collection, documentId } = this.formatPath(inst.path);\n const isDelete = inst.type === \"delete\";\n const card = this.createElement(\"div\", `poofnet-instruction ${isDelete ? \"poofnet-action-delete\" : \"poofnet-action-set\"}`);\n const header = this.createElement(\"div\", \"poofnet-instruction-header\");\n this.appendTextElement(header, \"span\", \"poofnet-instruction-icon\", isDelete ? \"🗑️\" : \"✏️\");\n this.appendTextElement(header, \"span\", \"poofnet-instruction-action\", isDelete ? \"Delete\" : \"Save\");\n this.appendTextElement(header, \"span\", \"poofnet-instruction-collection\", collection);\n card.appendChild(header);\n if (documentId) {\n this.appendTextElement(card, \"div\", \"poofnet-instruction-id\", `ID: ${documentId}`);\n }\n if (inst.data && !isDelete) {\n const fieldKeys = Object.keys(inst.data).filter((key) => !key.startsWith(\"_\"));\n const visibleFields = fieldKeys.slice(0, 4);\n if (visibleFields.length > 0) {\n const fields = this.createElement(\"div\", \"poofnet-fields\");\n for (const key of visibleFields) {\n const row = this.createElement(\"div\", \"poofnet-field\");\n this.appendTextElement(row, \"span\", \"poofnet-field-key\", `${key}:`);\n this.appendTextElement(row, \"span\", \"poofnet-field-value\", this.formatFieldValue(inst.data[key]));\n fields.appendChild(row);\n }\n if (fieldKeys.length > 4) {\n this.appendTextElement(fields, \"div\", \"poofnet-field-more\", `+${fieldKeys.length - 4} more fields`);\n }\n card.appendChild(fields);\n }\n }\n return card;\n }\n getModalStyles() {\n return `\n /* Ensure inert elements remain visible while being non-interactive */\n [inert] {\n visibility: visible !important;\n opacity: 1 !important;\n display: unset !important;\n }\n\n .poofnet-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 999999;\n opacity: 0;\n transition: opacity 0.2s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .poofnet-modal-content {\n background: white;\n border-radius: 16px;\n width: 90%;\n max-width: 420px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n opacity: 0;\n transform: translateY(20px);\n transition: all 0.2s ease;\n max-height: 90vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n }\n\n .poofnet-close-btn {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 28px;\n height: 28px;\n border: none;\n background: #f3f4f6;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.15s ease;\n z-index: 1;\n }\n\n .poofnet-close-btn:hover {\n background: #e5e7eb;\n color: #374151;\n }\n\n .poofnet-modal-header {\n padding: 24px 24px 16px;\n text-align: center;\n border-bottom: 1px solid #f0f0f0;\n flex-shrink: 0;\n }\n\n .poofnet-modal-icon {\n font-size: 40px;\n margin-bottom: 8px;\n }\n\n .poofnet-modal-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1a1a1a;\n }\n\n .poofnet-modal-subtitle {\n margin: 4px 0 0;\n font-size: 13px;\n color: #8b5cf6;\n font-weight: 500;\n }\n\n .poofnet-modal-body {\n padding: 16px 20px;\n overflow-y: auto;\n flex: 1;\n }\n\n .poofnet-summary {\n font-size: 13px;\n color: #6b7280;\n margin-bottom: 12px;\n text-align: center;\n }\n\n .poofnet-section {\n margin-bottom: 16px;\n }\n\n .poofnet-section-title {\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 8px;\n }\n\n .poofnet-instructions-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .poofnet-instruction {\n background: #f9fafb;\n border-radius: 10px;\n padding: 12px;\n border-left: 3px solid #8b5cf6;\n }\n\n .poofnet-instruction.poofnet-action-delete {\n border-left-color: #ef4444;\n }\n\n .poofnet-instruction-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .poofnet-instruction-icon {\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .poofnet-instruction-action {\n font-size: 13px;\n font-weight: 600;\n color: #8b5cf6;\n }\n\n .poofnet-action-delete .poofnet-instruction-action {\n color: #ef4444;\n }\n\n .poofnet-instruction-collection {\n font-size: 13px;\n font-weight: 500;\n color: #374151;\n }\n\n .poofnet-instruction-id {\n font-size: 11px;\n color: #9ca3af;\n font-family: monospace;\n margin-bottom: 8px;\n word-break: break-all;\n }\n\n .poofnet-fields {\n background: white;\n border-radius: 6px;\n padding: 8px 10px;\n margin-top: 8px;\n }\n\n .poofnet-field {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n border-bottom: 1px solid #f3f4f6;\n }\n\n .poofnet-field:last-child {\n border-bottom: none;\n }\n\n .poofnet-field-key {\n color: #6b7280;\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .poofnet-field-value {\n color: #374151;\n word-break: break-all;\n }\n\n .poofnet-field-more {\n font-size: 11px;\n color: #9ca3af;\n padding-top: 4px;\n font-style: italic;\n }\n\n .poofnet-raw-message {\n background: #f9fafb;\n border-radius: 8px;\n padding: 12px;\n font-size: 11px;\n font-family: monospace;\n color: #4b5563;\n white-space: pre-wrap;\n word-break: break-all;\n margin: 0;\n max-height: 120px;\n overflow-y: auto;\n }\n\n .poofnet-info-box {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #faf5ff;\n border-radius: 8px;\n padding: 10px 12px;\n margin-top: 12px;\n }\n\n .poofnet-info-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .poofnet-info-text {\n font-size: 11px;\n color: #7c3aed;\n line-height: 1.4;\n }\n\n .poofnet-modal-footer {\n padding: 16px 20px 20px;\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n border-top: 1px solid #f0f0f0;\n }\n\n .poofnet-btn {\n flex: 1;\n padding: 12px 16px;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n border: none;\n }\n\n .poofnet-btn-cancel {\n background: #f3f4f6;\n color: #4b5563;\n }\n\n .poofnet-btn-cancel:hover {\n background: #e5e7eb;\n }\n\n .poofnet-btn-confirm {\n background: #8b5cf6;\n color: white;\n }\n\n .poofnet-btn-confirm:hover {\n background: #7c3aed;\n }\n `;\n }\n}\n","export const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nconst SUPPORTED_SOLANA_NETWORKS = new Set([\n \"solana_devnet\",\n \"solana_mainnet\",\n]);\nexport function normalizeSolanaRpcUrl(rpcUrl) {\n if (typeof rpcUrl !== \"string\")\n return null;\n const trimmed = rpcUrl.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\nexport function isSupportedSolanaRpcNetwork(network) {\n return typeof network === \"string\" && SUPPORTED_SOLANA_NETWORKS.has(network);\n}\nexport function resolveSolanaWalletStandardChain(network, context) {\n switch (network) {\n case \"solana_devnet\":\n return \"solana:devnet\";\n case \"solana_mainnet\":\n return \"solana:mainnet\";\n case undefined:\n case null:\n case \"\":\n throw new Error(`${context} requires an explicit Solana network. ` +\n `Provide one of: solana_devnet, solana_mainnet.`);\n default:\n throw new Error(`${context} does not support Solana network \"${network}\". ` +\n `Expected one of: solana_devnet, solana_mainnet.`);\n }\n}\nexport function resolveSolanaRpcUrl(explicitRpcUrl, network, context) {\n if (network != null && network !== \"\" && !isSupportedSolanaRpcNetwork(network)) {\n throw new Error(`${context} does not support Solana network \"${network}\". ` +\n `Expected one of: solana_devnet, solana_mainnet.`);\n }\n const rpcUrl = normalizeSolanaRpcUrl(explicitRpcUrl);\n if (rpcUrl)\n return rpcUrl;\n throw new Error(`${context} requires an explicit Solana RPC URL. Pass config.rpcUrl before signing or submitting onchain transactions.`);\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Find code of next character\n var charCode = source.charCodeAt(psz)\n // Base map can not be indexed using char code\n if (charCode > 255) { return }\n // Decode character\n var carry = BASE_MAP[charCode]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","import basex from 'base-x';\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport default basex(ALPHABET);\n","// crossmint-signer-bridge.ts — routes embedded-wallet signing through the\n// Bounded-owned signer popup (auth.bounded.sh/wallet/signer).\n//\n// Slice-1 attached a non-custodial Crossmint smart wallet to email logins and\n// populated `@user.address`. This bridge is the slice-2 counterpart: a user\n// whose address came from `auth.wallets` can APPROVE transactions with that\n// wallet from ANY app, non-custodially, by having the Crossmint client SDK run\n// ONLY on the Bounded signer page (one whitelisted origin) and talking to it via\n// postMessage.\n//\n// SEMANTICS (Crossmint Solana smart wallets): these wallets cannot produce raw\n// detached signatures — there is no signMessage and no sign-without-submit. The\n// only honest primitive is EXECUTION (sign + submit) via the wallet's email-OTP\n// authorization. So this bridge implements `signAndSubmitTransaction` and a\n// token-send; `signMessage` / `signTransaction` throw a clear unsupported error.\nimport { assertCanonicalBoundedRuntimeWriteCalldata, getConfig, getActiveSessionManager, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport bs58 from 'bs58';\nexport const EMBEDDED_WALLET_UNSUPPORTED = 'Unsupported for embedded smart wallets — Crossmint Solana smart wallets sign ' +\n 'and submit atomically. Use signAndSubmitTransaction() (or bounded.sendWalletToken) ' +\n 'instead of signMessage/signTransaction.';\nconst NO_EMBEDDED_WALLET = 'This login has no embedded wallet. Enable `\"auth\": { \"wallets\": true }` in ' +\n 'the app policy so email logins get a non-custodial wallet (@user.address), ' +\n 'then sign from a user gesture.';\nfunction hasDOM() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction decodeJwt(token) {\n try {\n let b64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return JSON.parse(Buffer.from(b64, 'base64').toString('utf8'));\n }\n catch (_a) {\n return {};\n }\n}\n// Pull the embedded-wallet identity out of the active session's id token.\n// Returns null when this session has no wallet (so callers can throw the\n// informative NO_EMBEDDED_WALLET error).\nfunction walletClaimsFromSession(chain = 'solana') {\n let idToken = null;\n try {\n idToken = getActiveSessionManager().getIdToken();\n }\n catch (_a) {\n idToken = null;\n }\n if (!idToken)\n return null;\n const c = decodeJwt(idToken);\n const address = c['custom:walletAddress'];\n const evmAddress = c['custom:evmWalletAddress'];\n const email = c['email'];\n if (typeof email !== 'string' || !email)\n return null;\n if (chain === 'solana' && (typeof address !== 'string' || !address))\n return null;\n if (chain === 'evm' && (typeof evmAddress !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(evmAddress)))\n return null;\n const envClaim = c['custom:walletEnvironment'];\n const environment = envClaim === 'staging' || envClaim === 'production' ? envClaim : undefined;\n return Object.assign(Object.assign(Object.assign({ email }, (typeof address === 'string' && address ? { address } : {})), (typeof evmAddress === 'string' ? { evmAddress: evmAddress.toLowerCase() } : {})), { environment });\n}\nasync function signerPageUrl() {\n const cfg = await getConfig();\n const base = (cfg.humanAuthApiUrl || 'https://auth.bounded.sh').replace(/\\/$/, '');\n return { url: `${base}/wallet/signer`, origin: new URL(base).origin };\n}\nlet requestSeq = 0;\n/**\n * Open the Bounded signer popup, send `action` to it, and resolve with the\n * submitted transaction result. Must be called from a USER GESTURE (click/tap) or\n * the browser will block the popup — in which case this rejects with a clear\n * \"Popup blocked\" error telling the app to call from a user gesture.\n *\n * Non-custodial: the popup gates signing behind an email OTP delivered to the\n * wallet's owner, and validates that the wallet address matches the account.\n */\nexport async function signViaSignerPopup(action) {\n if (!hasDOM()) {\n throw new Error('Embedded-wallet signing is only available in the browser (popup-based).');\n }\n const isEvm = action.kind === 'evmTransaction';\n const claims = walletClaimsFromSession(isEvm ? 'evm' : 'solana');\n if (!claims)\n throw new Error(NO_EMBEDDED_WALLET);\n const { url, origin: signerOrigin } = await signerPageUrl();\n const requestId = `bsign_${Date.now()}_${++requestSeq}`;\n // Centered popup, sized for the OTP form (matches the OIDC login popup shape).\n const w = 420, h = 600;\n const left = window.screenX + Math.max(0, (window.outerWidth - w) / 2);\n const top = window.screenY + Math.max(0, (window.outerHeight - h) / 2);\n const popup = window.open(url, 'bounded-wallet-signer', `width=${w},height=${h},left=${left},top=${top}`);\n if (!popup) {\n throw new Error('Popup blocked — call signAndSubmitTransaction() from a user gesture (e.g. a click handler) so the wallet approval window can open.');\n }\n const request = {\n type: 'bounded:sign',\n requestId,\n environment: claims.environment, // may be undefined → page auto-detects\n email: claims.email,\n address: isEvm ? claims.evmAddress : claims.address,\n action,\n };\n return await new Promise((resolve, reject) => {\n let settled = false;\n let closeTimer;\n let sentRequest = false;\n const cleanup = () => {\n settled = true;\n window.removeEventListener('message', onMsg);\n if (closeTimer)\n clearInterval(closeTimer);\n };\n const sendRequest = () => {\n if (sentRequest)\n return;\n sentRequest = true;\n try {\n popup.postMessage(request, signerOrigin);\n }\n catch ( /* popup gone */_a) { /* popup gone */ }\n };\n const onMsg = (ev) => {\n if (ev.origin !== signerOrigin)\n return; // only trust the signer page origin\n if (ev.source !== popup)\n return; // only trust this signer popup window\n const d = ev.data;\n if (!d || typeof d !== 'object')\n return;\n if (d.type === 'bounded:signer:ready') {\n sendRequest();\n return;\n }\n if (d.type === 'bounded:signer:result' && d.requestId === requestId) {\n cleanup();\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n if (d.ok)\n resolve({ hash: d.hash, explorerLink: d.explorerLink, transactionId: d.transactionId });\n else\n reject(new Error(String(d.error || 'Wallet signing failed')));\n }\n };\n window.addEventListener('message', onMsg);\n // Fallback: if the ready ping was missed (fast load / focus race), push the\n // request shortly after opening. The page ignores it until a bounded:sign\n // arrives and only acts on the first one, so a duplicate is harmless.\n setTimeout(sendRequest, 1200);\n // If the user closes the popup before completing, reject (unless a result\n // just arrived — give any in-flight message a beat to settle first).\n closeTimer = setInterval(() => {\n if (popup.closed) {\n clearInterval(closeTimer);\n setTimeout(() => { if (!settled) {\n cleanup();\n reject(new Error('Wallet approval window was closed before signing completed.'));\n } }, 400);\n }\n }, 500);\n // Overall safety timeout (OTP + signing). Generous — the user may take a\n // while to fetch the code from their email.\n setTimeout(() => { if (!settled) {\n cleanup();\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n reject(new Error('Wallet approval timed out.'));\n } }, 5 * 60 * 1000);\n });\n}\n// Serialize a legacy or versioned Solana transaction to BASE58 for the signer\n// page. Crossmint's smart-wallet createTransaction endpoint requires the\n// `serializedTransaction` string to be base58 — it rejects base64 with\n// \"Invalid base58 string\" (verified against Crossmint staging 2026-07-07). The\n// `wallets-sdk` object path bs58-encodes internally, so base58 is the contract.\n//\n// We do NOT require existing signatures (the smart wallet signs on the page);\n// Crossmint extracts the instructions, overrides the fee payer to its sponsor,\n// and re-wraps them for the smart wallet.\nfunction serializeTransaction(transaction) {\n const isLegacy = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n const bytes = isLegacy\n ? transaction.serialize({ requireAllSignatures: false, verifySignatures: false })\n : transaction.serialize();\n return bs58.encode(bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes));\n}\n/**\n * Whether the active session carries an embedded wallet (so the provider should\n * route signing through the popup rather than throw \"no wallet\").\n */\nexport function hasEmbeddedWallet() {\n return walletClaimsFromSession() != null;\n}\n/** Whether the active email/social session carries an embedded Crossmint EVM wallet. */\nexport function hasEmbeddedEvmWallet() {\n return walletClaimsFromSession('evm') != null;\n}\n/** signAndSubmitTransaction for embedded wallets: serialize + route through the\n * signer popup, resolve with the on-chain transaction signature/hash. */\nexport async function embeddedSignAndSubmit(transaction) {\n const serializedTransaction = serializeTransaction(transaction);\n const result = await signViaSignerPopup({ kind: 'transaction', serializedTransaction });\n const hash = result.hash || result.transactionId;\n if (!hash)\n throw new Error('Signer returned no transaction hash.');\n return hash;\n}\n/** Send a token from the embedded wallet (Crossmint `wallet.send`). Convenience\n * primitive for the common \"send crypto\" case; returns the tx result. */\nexport async function embeddedSendToken(recipient, token, amount) {\n return await signViaSignerPopup({ kind: 'sendToken', recipient, token, amount });\n}\n/** Submit a validated BoundedRuntime EVM write through the user's email signer. */\nexport async function embeddedRunEvmTransaction(transaction) {\n var _a, _b;\n if (!transaction.to || !transaction.data || !transaction.chainId)\n throw new Error('Incomplete embedded EVM transaction');\n if (!/^0x[0-9a-fA-F]{40}$/.test(transaction.to))\n throw new Error('Invalid embedded EVM runtime address');\n assertCanonicalBoundedRuntimeWriteCalldata(transaction.data);\n if (!Number.isSafeInteger(transaction.chainId) || transaction.chainId <= 0)\n throw new Error('Invalid embedded EVM chain id');\n if (transaction.nonce !== undefined)\n throw new Error('Server-supplied EVM nonces are not accepted');\n try {\n if (BigInt((_a = transaction.value) !== null && _a !== void 0 ? _a : '0') !== BigInt(0))\n throw new Error('Bounded EVM writes cannot transfer native value');\n }\n catch (error) {\n if (error instanceof Error && error.message.includes('cannot transfer'))\n throw error;\n throw new Error('Invalid embedded EVM transaction value');\n }\n const result = await signViaSignerPopup({\n kind: 'evmTransaction',\n transaction: { to: transaction.to, data: transaction.data, value: (_b = transaction.value) !== null && _b !== void 0 ? _b : '0', chainId: transaction.chainId },\n });\n const hash = result.hash || result.transactionId;\n if (!hash)\n throw new Error('Signer returned no EVM transaction hash.');\n return { transactionSignature: hash, blockNumber: 0, gasUsed: '0', data: result };\n}\n","import { getConfig, getActiveSessionManager } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading, setAuthProviderInstance } from '../global';\nimport { getPlatform } from '../platform';\nimport { hasEmbeddedWallet, hasEmbeddedEvmWallet, embeddedSignAndSubmit, embeddedRunEvmTransaction, EMBEDDED_WALLET_UNSUPPORTED, } from './crossmint-signer-bridge';\n// Same message the email provider uses when a hosted (OIDC) login has no\n// embedded wallet — enable `auth.wallets` in policy to get one.\nconst OIDC_NO_WALLET = 'This login has no embedded wallet. Enable `\"auth\": { \"wallets\": true }` in ' +\n 'the app policy so logins get a non-custodial Crossmint wallet (@user.address), ' +\n 'then sign from a user gesture.';\nconst PKCE_STORE_KEY = 'bounded.oidc.pkce';\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\n// Active session store (Web on web, RN on React Native) — selected by config,\n// not by `typeof window` (truthy on RN). OIDC redirect/popup is web-only, but the\n// session it mints is read back through this same selector everywhere.\nconst sessionManager = getActiveSessionManager;\nfunction hasDOM() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction decodeJwt(token) {\n try {\n let b64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return JSON.parse(getPlatform().atob(b64));\n }\n catch (_a) {\n return {};\n }\n}\n// A minimal AuthProvider so getSession()/logout() work for OIDC sessions, mirroring email.\n// Signing surface (slice 2): a hosted login on a wallets-enabled app carries an\n// embedded Crossmint wallet (@user.address). signAndSubmitTransaction routes\n// through the Bounded signer popup; signMessage/signTransaction are structurally\n// unsupported for Crossmint smart wallets (sign+submit atomically, no raw sig).\nconst oidcProviderSingleton = {\n async login() {\n const idToken = sessionManager().getIdToken();\n return idToken ? userFromIdToken(idToken) : null;\n },\n async getUser() {\n const idToken = sessionManager().getIdToken();\n return idToken ? userFromIdToken(idToken) : null;\n },\n async logout() { sessionManager().clearSession(); },\n async signMessage(_message) {\n throw new Error(hasEmbeddedWallet() ? EMBEDDED_WALLET_UNSUPPORTED : OIDC_NO_WALLET);\n },\n async signTransaction(_t) {\n throw new Error(hasEmbeddedWallet() ? EMBEDDED_WALLET_UNSUPPORTED : OIDC_NO_WALLET);\n },\n async runTransaction(evm, sol, options) {\n if (evm && sol)\n throw new Error('A transaction cannot target EVM and Solana at the same time.');\n if (!evm)\n throw new Error(OIDC_NO_WALLET);\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false)\n throw new Error('Embedded EVM wallets sign and submit atomically; shouldSubmitTx:false is unsupported.');\n if (!hasEmbeddedEvmWallet())\n throw new Error('This login has no embedded EVM wallet. Enable auth.wallets on an app with an EVM collection and sign in again.');\n return embeddedRunEvmTransaction(evm);\n },\n async signAndSubmitTransaction(transaction, _feePayer) {\n if (!hasEmbeddedWallet())\n throw new Error(OIDC_NO_WALLET);\n return embeddedSignAndSubmit(transaction);\n },\n};\nfunction userFromIdToken(idToken) {\n const c = decodeJwt(idToken);\n const id = c['custom:userId'] || c.sub || c['custom:walletAddress'] || '';\n return {\n id, address: (c['custom:walletAddress'] || null),\n evmAddress: typeof c['custom:evmWalletAddress'] === 'string' && /^0x[0-9a-fA-F]{40}$/.test(c['custom:evmWalletAddress'])\n ? c['custom:evmWalletAddress'].toLowerCase()\n : null,\n email: (c.email || null), provider: oidcProviderSingleton,\n };\n}\nfunction tokenField(data, snake, camel) {\n var _a;\n const value = (_a = data === null || data === void 0 ? void 0 : data[snake]) !== null && _a !== void 0 ? _a : data === null || data === void 0 ? void 0 : data[camel];\n return typeof value === 'string' ? value : '';\n}\nfunction boundedRefreshTokenField(data) {\n for (const key of ['bounded_refresh_token', 'boundedRefreshToken', 'refreshToken']) {\n const value = data === null || data === void 0 ? void 0 : data[key];\n if (typeof value === 'string' && value.length > 0)\n return value;\n }\n return '';\n}\nasync function issuerBase() {\n const cfg = await getConfig();\n return (cfg.humanAuthApiUrl || 'https://auth.bounded.sh').replace(/\\/$/, '');\n}\n// Base64url-encode raw bytes via the platform abstraction (web: window.btoa;\n// RN/Node: the polyfilled/Buffer btoa supplied by getPlatform()). On web this is\n// byte-identical to the previous direct `btoa(...)` call.\nfunction b64url(buf) {\n let s = '';\n const bytes = buf instanceof Uint8Array ? buf : new Uint8Array(buf);\n for (let i = 0; i < bytes.length; i++)\n s += String.fromCharCode(bytes[i]);\n return getPlatform().btoa(s).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n// PKCE verifier + S256 challenge, fully platform-neutral: random bytes and the\n// SHA-256 digest both come from getPlatform() (web → WebCrypto, RN → polyfill/\n// expo-crypto). Web output is identical to the previous raw-crypto path.\nasync function makePkce() {\n const rnd = getPlatform().getRandomBytes(32);\n const verifier = b64url(rnd);\n const digest = await getPlatform().sha256(getPlatform().textEncode(verifier));\n return { verifier, challenge: b64url(digest) };\n}\nfunction randomState() {\n return b64url(getPlatform().getRandomBytes(16));\n}\nfunction normalizeMethod(value) {\n const normalized = String(value || '').trim().toLowerCase();\n return /^[a-z0-9_-]{1,40}$/.test(normalized) ? normalized : null;\n}\nfunction appendHostedLoginHints(params, opts) {\n const methods = (opts.methods || [])\n .map((method) => normalizeMethod(method))\n .filter((method) => !!method);\n if (methods.length > 0) {\n params.set('bounded_methods', Array.from(new Set(methods)).join(','));\n }\n const provider = normalizeMethod(opts.provider);\n if (provider)\n params.set('bounded_provider', provider);\n // Standard OIDC prompt (e.g. 'login' to force a fresh sign-in / account choice).\n const prompt = normalizeMethod(opts.prompt);\n if (prompt)\n params.set('prompt', prompt);\n}\n// Build the authorize URL + the PKCE state that pairs with it. PURE: no storage,\n// no navigation — so it's shared verbatim by the web redirect/popup paths and the\n// native (expo-web-browser) path. The caller decides where the PkceState lives\n// (web → sessionStorage across the full-page redirect; native → in-memory across\n// the awaited browser session).\nasync function buildAuthorize(opts) {\n const cfg = await getConfig();\n if (!cfg.appId)\n throw new Error('appId is not configured (init the SDK with your appId)');\n // Web: default to the current page so callers don't have to pass redirectUri. Native has no\n // window — it MUST pass an https universal link (the system auth session needs a real URL).\n const redirectUri = opts.redirectUri || (hasDOM() ? window.location.origin + window.location.pathname : undefined);\n if (!redirectUri)\n throw new Error('redirectUri is required on React Native — pass the https universal link the app owner registered.');\n const { verifier, challenge } = await makePkce();\n const state = randomState();\n const base = await issuerBase();\n const params = new URLSearchParams({\n client_id: cfg.appId, redirect_uri: redirectUri, response_type: 'code', scope: 'openid profile email',\n code_challenge: challenge, code_challenge_method: 'S256', state,\n });\n appendHostedLoginHints(params, opts);\n return { url: `${base}/api/auth/oauth2/authorize?${params.toString()}`, pkce: { verifier, state, redirectUri } };\n}\n// Are we on React Native (no DOM)? OIDC dispatch uses this to choose the native\n// expo-web-browser driver vs. the web full-page-redirect/popup driver.\nfunction isNative() {\n return !getPlatform().hasDOM;\n}\n// ---------------------------------------------------------------------------\n// Native (React Native / Expo) redirect driver\n// ---------------------------------------------------------------------------\n// Lazily load expo-web-browser. It's an OPTIONAL peer dep — imported dynamically\n// so the web/Node bundle never requires it. Throws an actionable error if a native\n// app calls hosted login without installing it.\nasync function loadExpoWebBrowser() {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n return await import('expo-web-browser');\n }\n catch (_a) {\n throw new Error('React Native hosted login requires the optional peer dependency \"expo-web-browser\". ' +\n 'Install it with `npx expo install expo-web-browser` (and `expo-crypto`), then retry.');\n }\n}\n// Parse code/state out of the universal-link callback URL. Hand-rolled (no `new URL()`)\n// because React Native's URL implementation is non-spec-compliant for query parsing.\nfunction parseCallbackParams(callbackUrl) {\n var _a, _b;\n const qIndex = callbackUrl.indexOf('?');\n if (qIndex < 0)\n return { code: null, state: null };\n const query = callbackUrl.slice(qIndex + 1).split('#')[0];\n const out = {};\n for (const part of query.split('&')) {\n if (!part)\n continue;\n const eq = part.indexOf('=');\n const k = eq < 0 ? part : part.slice(0, eq);\n const v = eq < 0 ? '' : part.slice(eq + 1);\n try {\n out[decodeURIComponent(k)] = decodeURIComponent(v.replace(/\\+/g, ' '));\n }\n catch (_c) {\n out[k] = v;\n }\n }\n return { code: (_a = out['code']) !== null && _a !== void 0 ? _a : null, state: (_b = out['state']) !== null && _b !== void 0 ? _b : null };\n}\n// Full native login: open the hosted page in the system auth session, await the\n// universal-link callback, verify state, and run the SAME PKCE code→token exchange\n// as web. Returns the signed-in User (native completes inline — there's no separate\n// completeLoginFromRedirect() round-trip the way the web full-page redirect needs).\nasync function runNativeLogin(opts) {\n var _a, _b;\n const { url, pkce } = await buildAuthorize(opts);\n const WebBrowser = await loadExpoWebBrowser();\n const openAuthSession = WebBrowser.openAuthSessionAsync || ((_a = WebBrowser.default) === null || _a === void 0 ? void 0 : _a.openAuthSessionAsync);\n if (typeof openAuthSession !== 'function') {\n throw new Error('expo-web-browser.openAuthSessionAsync is unavailable — update expo-web-browser.');\n }\n setAuthLoading(true);\n try {\n // openAuthSessionAsync keeps JS alive while the system browser is shown, then\n // resolves with the callback URL once the universal link fires — so `pkce`\n // stays in scope and never needs to be persisted.\n const result = await openAuthSession(url, opts.redirectUri);\n if (!result || result.type === 'cancel' || result.type === 'dismiss') {\n throw new Error('Login cancelled');\n }\n if (result.type !== 'success' || typeof result.url !== 'string') {\n throw new Error(`Hosted login did not complete (result: ${(_b = result === null || result === void 0 ? void 0 : result.type) !== null && _b !== void 0 ? _b : 'unknown'})`);\n }\n const { code, state: returnedState } = parseCallbackParams(result.url);\n if (!code)\n throw new Error('No authorization code in the callback URL');\n if (!returnedState || returnedState !== pkce.state) {\n throw new Error('OAuth state mismatch — possible CSRF; aborting');\n }\n return await exchangeCode(code, pkce.verifier, pkce.redirectUri);\n }\n finally {\n setAuthLoading(false);\n }\n}\n/** Start hosted login (Google / Apple / email / hosted phone). Works on WEB and REACT NATIVE.\n *\n * WEB: navigates the whole page to the hosted Bounded login and resolves (void) as the page\n * unloads; on return to `redirectUri?code=...` you call completeLoginFromRedirect().\n *\n * REACT NATIVE: opens the hosted page via expo-web-browser, awaits the https universal-link\n * callback, runs the PKCE exchange INLINE, and resolves with the signed-in User. No\n * completeLoginFromRedirect() call is needed on native. Requires `redirectUri` to be an\n * https UNIVERSAL LINK whose origin the app owner registered in the app's allowedOrigins\n * (custom `myapp://` schemes are rejected by the issuer). Needs the optional peer deps\n * expo-web-browser + (expo-crypto or react-native-get-random-values). */\nexport async function loginWithRedirect(opts) {\n if (isNative())\n return runNativeLogin(opts);\n if (!hasDOM())\n throw new Error('loginWithRedirect requires a browser or a configured React Native platform');\n const { url, pkce } = await buildAuthorize(opts);\n // Stash the verifier + state so the redirect_uri page can finish the exchange. sessionStorage\n // is per-tab and cleared on close — appropriate for a short-lived auth handshake.\n sessionStorage.setItem(PKCE_STORE_KEY, JSON.stringify(pkce));\n setAuthLoading(true); // reflect \"signing in…\" right up to navigation; the return page's\n window.location.href = url; // completeLoginFromRedirect() keeps it true until the user resolves.\n}\n/** Finish login on the redirect_uri page (WEB ONLY): exchange ?code= for a token (PKCE-verified),\n * store the session, and return the User. Idempotent: returns null if there's no ?code= in the URL.\n *\n * On REACT NATIVE this returns null and is a no-op: native login completes INLINE inside\n * loginWithRedirect() (which resolves with the User), so there is no separate redirect\n * page to finish from. Calling it on RN is harmless. */\nexport async function completeLoginFromRedirect() {\n if (!hasDOM())\n return null;\n const url = new URL(window.location.href);\n const code = url.searchParams.get('code');\n const returnedState = url.searchParams.get('state');\n if (!code)\n return null;\n // POPUP path: if we're the redirect_uri page running INSIDE the loginWithPopup() window,\n // hand the code to the opener and close — no separate completeLoginInPopup() call needed.\n // The opener is the same app/origin, so post to our own origin (the opener's message\n // handler checks ev.origin === redirect_uri origin). One call now finishes BOTH flows.\n if (window.opener && window.opener !== window) {\n try {\n window.opener.postMessage({ type: 'bounded-oidc-code', code, state: returnedState }, window.location.origin);\n }\n catch ( /* ignore */_a) { /* ignore */ }\n try {\n window.close();\n }\n catch ( /* ignore */_b) { /* ignore */ }\n return null;\n }\n setAuthLoading(true);\n try {\n const raw = sessionStorage.getItem(PKCE_STORE_KEY);\n if (!raw)\n throw new Error('Missing PKCE state — start login with loginWithRedirect()');\n const pkce = JSON.parse(raw);\n if (!returnedState || returnedState !== pkce.state)\n throw new Error('OAuth state mismatch — possible CSRF; aborting');\n const user = await exchangeCode(code, pkce.verifier, pkce.redirectUri);\n sessionStorage.removeItem(PKCE_STORE_KEY);\n // Strip code/state from the URL so a reload doesn't re-exchange (codes are single-use anyway).\n url.searchParams.delete('code');\n url.searchParams.delete('state');\n window.history.replaceState({}, document.title, url.pathname + url.search + url.hash);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n}\n/** Popup variant: open the hosted login in a popup; resolves with the User once the popup's\n * redirect_uri page posts the code back. The redirect_uri page just calls the usual\n * completeLoginFromRedirect() (which auto-detects the popup) — no separate call needed. */\nexport async function loginWithPopup(opts) {\n if (!hasDOM())\n throw new Error('loginWithPopup is web-only — on React Native use loginWithRedirect()');\n // Open synchronously, before PKCE/config awaits consume the click's user-\n // activation window. Opening only after buildAuthorize() intermittently\n // left Chrome with a real named window stranded at about:blank (or blocked\n // it entirely), while callers waited forever for an OAuth message.\n const w = opts.width || 480, h = opts.height || 720;\n const left = window.screenX + (window.outerWidth - w) / 2;\n const top = window.screenY + (window.outerHeight - h) / 2;\n const popup = window.open('', 'bounded-oidc', `width=${w},height=${h},left=${left},top=${top}`);\n if (!popup)\n throw new Error('Popup blocked — use loginWithRedirect() instead');\n let authorization;\n try {\n authorization = await buildAuthorize(opts);\n }\n catch (error) {\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n throw error;\n }\n const { url, pkce } = authorization;\n // Validate every remaining synchronous setup step before navigating. Both\n // URL parsing and sessionStorage can throw (malformed caller input, blocked\n // storage, quota/privacy mode); because the popup is already open to retain\n // user activation, close it on either failure instead of orphaning a blank\n // window with no listener or watchdog attached.\n let expectedOrigin;\n try {\n expectedOrigin = new URL(pkce.redirectUri).origin;\n sessionStorage.setItem(PKCE_STORE_KEY, JSON.stringify(pkce));\n }\n catch (error) {\n try {\n popup.close();\n }\n catch ( /* ignore */_b) { /* ignore */ }\n throw error;\n }\n try {\n popup.location.replace(url);\n }\n catch (_c) {\n try {\n popup.location.href = url;\n }\n catch (_d) {\n try {\n popup.close();\n }\n catch ( /* ignore */_e) { /* ignore */ }\n throw new Error('Popup failed to navigate — use loginWithRedirect() instead');\n }\n }\n // expectedOrigin came from the RESOLVED redirect_uri (buildAuthorize defaulted it to the\n // current page on web), not opts.redirectUri which may be undefined.\n setAuthLoading(true); // reflect \"signing in…\" while the popup is open\n try {\n return await new Promise((resolve, reject) => {\n let settled = false;\n let timer;\n let navigationTimer;\n const cleanup = () => {\n settled = true;\n clearInterval(timer);\n clearTimeout(navigationTimer);\n window.removeEventListener('message', onMsg);\n };\n const onMsg = async (ev) => {\n if (ev.origin !== expectedOrigin)\n return; // only trust the redirect_uri origin\n const d = ev.data;\n if (!d || d.type !== 'bounded-oidc-code' || typeof d.code !== 'string')\n return;\n cleanup();\n try {\n const raw = sessionStorage.getItem(PKCE_STORE_KEY);\n if (!raw)\n throw new Error('Missing PKCE state');\n const pkce = JSON.parse(raw);\n if (d.state !== pkce.state)\n throw new Error('OAuth state mismatch');\n const user = await exchangeCode(d.code, pkce.verifier, pkce.redirectUri);\n sessionStorage.removeItem(PKCE_STORE_KEY);\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n resolve(user);\n }\n catch (e) {\n reject(e);\n }\n };\n window.addEventListener('message', onMsg);\n // Some browser/extension combinations can return a real popup handle but\n // strand the window at about:blank instead of navigating to the hosted\n // authorize URL. The old code then waited forever because the popup was\n // open and no message could ever arrive. Once the popup becomes\n // cross-origin, reading location throws — that is positive evidence that\n // navigation succeeded, so only a still-readable about:blank is rejected.\n navigationTimer = setTimeout(() => {\n if (settled || popup.closed)\n return;\n try {\n if (popup.location.href === 'about:blank') {\n cleanup();\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n reject(new Error('Popup stalled at about:blank — use loginWithRedirect() instead'));\n }\n }\n catch ( /* cross-origin hosted auth loaded normally */_b) { /* cross-origin hosted auth loaded normally */ }\n }, 4000);\n // The popup posts its code and then closes ITSELF, so a naive \"popup.closed -> reject\"\n // races the just-posted message and would report a spurious \"Login window closed\" on a\n // SUCCESSFUL login. When we see it closed, wait a beat for that pending message to settle\n // before declaring the window closed.\n timer = setInterval(() => {\n if (popup.closed) {\n clearInterval(timer);\n setTimeout(() => { if (!settled) {\n cleanup();\n reject(new Error('Login window closed'));\n } }, 500);\n }\n }, 500);\n });\n }\n finally {\n setAuthLoading(false);\n }\n}\n/** Call this on the redirect_uri page when login was opened via loginWithPopup(): posts the\n * code back to the opener and closes. (For the redirect variant use completeLoginFromRedirect.) */\nexport function completeLoginInPopup(openerOrigin) {\n if (!hasDOM() || !window.opener)\n return;\n const url = new URL(window.location.href);\n const code = url.searchParams.get('code');\n const state = url.searchParams.get('state');\n if (!code)\n return;\n try {\n window.opener.postMessage({ type: 'bounded-oidc-code', code, state }, openerOrigin);\n }\n catch ( /* ignore */_a) { /* ignore */ }\n try {\n window.close();\n }\n catch ( /* ignore */_b) { /* ignore */ }\n}\nasync function exchangeCode(code, verifier, redirectUri) {\n const cfg = await getConfig();\n const base = await issuerBase();\n // OIDC token endpoint: application/x-www-form-urlencoded (the standard). Public client (no\n // secret) authenticated by PKCE. The code is single-use + short-TTL on the server.\n const body = new URLSearchParams({\n grant_type: 'authorization_code', code, redirect_uri: redirectUri,\n client_id: cfg.appId, code_verifier: verifier,\n });\n let res;\n try {\n res = await fetch(`${base}/api/auth/oauth2/token`, {\n method: 'POST', headers: { 'content-type': 'application/x-www-form-urlencoded' }, body: body.toString(),\n });\n }\n catch (err) {\n throw new Error(`Bounded token exchange failed: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);\n }\n let data = null;\n try {\n data = await res.json();\n }\n catch ( /* non-JSON */_a) { /* non-JSON */ }\n if (!res.ok)\n throw new Error(String((data && (data.error_description || data.error || data.message)) || `token HTTP ${res.status}`));\n const idToken = (data === null || data === void 0 ? void 0 : data.id_token) || (data === null || data === void 0 ? void 0 : data.idToken);\n if (!idToken)\n throw new Error('No id_token returned from the token endpoint');\n const accessToken = tokenField(data, 'access_token', 'accessToken') || idToken;\n const refreshToken = boundedRefreshTokenField(data);\n const user = userFromIdToken(idToken);\n await sessionManager().storeSession(String(user.address || ''), accessToken, idToken, refreshToken, base);\n try {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, 'email');\n }\n catch ( /* storage unavailable */_b) { /* storage unavailable */ }\n setCurrentUser(user);\n setAuthProviderInstance(oidcProviderSingleton);\n return user;\n}\n","// NOTE: Provider class re-exports have been moved to index.ts (web) and\n// index.native.ts (RN) to avoid eager resolution of web-only dependencies\n// (react-dom) when this module is imported on RN.\nimport { getConfig, WebSessionManager, ReactNativeSessionManager, getActiveSessionManager, revokeSession } from \"@bounded-sh/core\";\nimport { OffchainAuthProvider } from \"./providers/offchain-auth-provider\";\nimport { getAuthProviderInstance, getCurrentUser, setAuthProviderInstance, setAuthLoading, setCurrentUser, } from \"../global\";\nimport { getPlatform } from \"../platform\";\nimport { normalizeSolanaRpcUrl, resolveSolanaWalletStandardChain, } from \"./solana-rpc\";\nlet currentAuthProvider = null;\nlet currentAuthMethod = null;\nlet currentAuthProviderConfigKey = null;\nlet initConfig = null;\nconst objectIdentityKeys = new WeakMap();\nlet nextObjectIdentityKey = 1;\n// --- localStorage helpers: track which auth method created the active session ---\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\nfunction getStoredAuthMethod() {\n try {\n return getPlatform().storage.getItem(STORED_AUTH_METHOD_KEY);\n }\n catch (_a) {\n return null;\n }\n}\nfunction setStoredAuthMethod(method) {\n try {\n if (method) {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, method);\n }\n else {\n getPlatform().storage.removeItem(STORED_AUTH_METHOD_KEY);\n }\n }\n catch (_a) {\n // storage might not be available\n }\n}\nfunction getStoredIdToken() {\n try {\n return getActiveSessionManager().getIdToken();\n }\n catch (_a) {\n return null;\n }\n}\nfunction idTokenIsGuest(idToken, expectedAddress) {\n var _a;\n try {\n if (!idToken)\n return false;\n let b64 = (_a = idToken.split('.')[1]) === null || _a === void 0 ? void 0 : _a.replace(/-/g, '+').replace(/_/g, '/');\n if (!b64)\n return false;\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n const claims = JSON.parse(getPlatform().atob(b64));\n if ((claims === null || claims === void 0 ? void 0 : claims.is_anonymous) !== true)\n return false;\n if (expectedAddress && (claims === null || claims === void 0 ? void 0 : claims['custom:walletAddress']) !== expectedAddress)\n return false;\n return true;\n }\n catch (_b) {\n return false;\n }\n}\nfunction storedSessionIsGuest() {\n return idTokenIsGuest(getStoredIdToken());\n}\n/**\n * Pick the provider used for an ordinary `init({ appId })` restore.\n *\n * Hosted email remains the default and explicit config always wins. The only\n * implicit alternative is a guest session this SDK previously created on this\n * origin. Never accept a stored wallet/provider method as app configuration.\n */\nfunction authMethodForInit(config) {\n if (config.authMethod != null)\n return config.authMethod;\n if (getStoredAuthMethod() !== 'guest')\n return 'email';\n if (storedSessionIsGuest())\n return 'guest';\n // A marker is only a restore hint; the bearer is authoritative. Repair a\n // stale marker (for example, a crash/failed switch while a human session was\n // still active) instead of relabelling that human bearer as a guest.\n const hasSession = !!getStoredIdToken();\n setStoredAuthMethod(hasSession ? 'email' : null);\n return 'email';\n}\nfunction objectIdentityKey(value) {\n if (!value || (typeof value !== 'object' && typeof value !== 'function'))\n return null;\n const obj = value;\n let id = objectIdentityKeys.get(obj);\n if (!id) {\n id = nextObjectIdentityKey++;\n objectIdentityKeys.set(obj, id);\n }\n return `object:${id}`;\n}\nfunction stableConfigValue(value, seen = new WeakSet()) {\n if (value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')\n return value;\n if (typeof value === 'function')\n return '[function]';\n if (Array.isArray(value))\n return value.map((item) => stableConfigValue(item, seen));\n if (typeof value === 'object') {\n if (seen.has(value))\n return '[circular]';\n seen.add(value);\n const out = {};\n for (const key of Object.keys(value).sort()) {\n out[key] = stableConfigValue(value[key], seen);\n }\n seen.delete(value);\n return out;\n }\n return String(value);\n}\nfunction authProviderConfigKey(config) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n return JSON.stringify({\n authMethod: (_a = config.authMethod) !== null && _a !== void 0 ? _a : null,\n chain: (_b = config.chain) !== null && _b !== void 0 ? _b : null,\n rpcUrl: normalizeSolanaRpcUrl(config.rpcUrl),\n name: (_c = config.name) !== null && _c !== void 0 ? _c : null,\n logoUrl: (_d = config.logoUrl) !== null && _d !== void 0 ? _d : null,\n phantomConfig: stableConfigValue((_e = config.phantomConfig) !== null && _e !== void 0 ? _e : null),\n walletLogin: stableConfigValue((_f = config.walletLogin) !== null && _f !== void 0 ? _f : null),\n injectedWalletConfig: stableConfigValue((_g = config.injectedWalletConfig) !== null && _g !== void 0 ? _g : null),\n evmWalletConfig: stableConfigValue((_h = config.evmWalletConfig) !== null && _h !== void 0 ? _h : null),\n privyConfig: stableConfigValue((_j = config.privyConfig) !== null && _j !== void 0 ? _j : null),\n mobileWalletConfig: stableConfigValue((_k = config.mobileWalletConfig) !== null && _k !== void 0 ? _k : null),\n privyExpoProvider: objectIdentityKey((_l = config.privyExpoProvider) !== null && _l !== void 0 ? _l : null),\n });\n}\n/**\n * Clears the session if it was created by a different auth method.\n * Returns true if the session was cleared, false if the session is compatible.\n *\n * Dispatches to the correct session manager based on the current auth method\n * so both web (WebSessionManager) and RN (ReactNativeSessionManager) sessions\n * are properly cleared.\n */\nexport function clearIncompatibleSession() {\n if (getStoredAuthMethod() === currentAuthMethod) {\n return false;\n }\n // Clear both managers: on web the RN manager is a no-op (not configured),\n // and on RN the web manager is a no-op (no localStorage).\n WebSessionManager.clearSession();\n try {\n ReactNativeSessionManager.clearSession();\n }\n catch ( /* not configured on web */_a) { /* not configured on web */ }\n setStoredAuthMethod(null);\n return true;\n}\nfunction requireWebPrivyConfig(config) {\n if (!config.privyConfig || typeof config.privyConfig.appId !== 'string' || config.privyConfig.appId.trim() === '') {\n throw new Error('Privy auth requires config.privyConfig.appId; no default Privy app is used.');\n }\n if (!config.privyConfig.config || typeof config.privyConfig.config !== 'object') {\n throw new Error('Privy auth requires config.privyConfig.config for the app-scoped Privy provider.');\n }\n return config.privyConfig;\n}\nfunction getConfiguredSolanaNetwork(config) {\n if (typeof config.chain !== 'string')\n return null;\n const chain = config.chain.trim();\n if (chain === '' || chain === 'offchain')\n return null;\n return chain;\n}\nfunction mobileWalletClusterFromNetwork(network) {\n switch (network) {\n case \"solana_devnet\":\n return \"devnet\";\n case \"solana_mainnet\":\n return \"mainnet-beta\";\n case null:\n return null;\n default:\n resolveSolanaWalletStandardChain(network, \"Mobile wallet auth\");\n return null;\n }\n}\nfunction requireMobileWalletConfig(config) {\n var _a, _b, _c;\n const configuredNetwork = getConfiguredSolanaNetwork(config);\n const cluster = (_b = (_a = config.mobileWalletConfig) === null || _a === void 0 ? void 0 : _a.cluster) !== null && _b !== void 0 ? _b : mobileWalletClusterFromNetwork(configuredNetwork);\n if (!cluster) {\n throw new Error(\"Mobile wallet auth requires an explicit Solana network. \" +\n \"Pass config.chain as solana_devnet or solana_mainnet, \" +\n \"or pass mobileWalletConfig.cluster.\");\n }\n return Object.assign(Object.assign({}, ((_c = config.mobileWalletConfig) !== null && _c !== void 0 ? _c : {})), { cluster });\n}\nasync function hotSwapToMWAProvider(config) {\n void config;\n throw optionalProviderError(\"mobile-wallet-adapter\");\n}\n// Error thrown when an app tries wallet login WITHOUT opting in at init().\n// Wallet login is OFF by default — most apps never support wallets, so the\n// wallet choice is only usable when the developer explicitly asked for it.\nfunction walletLoginNotEnabledError(method) {\n return new Error(`Bounded: Solana wallet login (authMethod:\"${method}\") is OFF by default and not enabled for this app. ` +\n `Wallet login is opt-in — pass \\`walletLogin: true\\` (or a \\`walletLogin\\` / \\`injectedWalletConfig\\` object) ` +\n `to init() to enable the \"connect wallet\" choice. Most apps don't need it; use hosted login ` +\n `loginWithRedirect(...) for email/social, or signInAnonymously() for zero-friction guests.`);\n}\n/**\n * Whether the app opted into Solana WALLET LOGIN at init(). OPT-IN, default OFF:\n * enabled only when the developer explicitly passes `walletLogin: true` (or a\n * `walletLogin` / `injectedWalletConfig` object). This gate is what keeps wallet\n * login from being usable (or advertised) by the vast majority of apps that\n * never want it — existing apps that don't opt in see ZERO behavior change.\n */\nexport function isWalletLoginEnabled(config) {\n const wl = config.walletLogin;\n if (wl === true)\n return true;\n if (wl && typeof wl === 'object')\n return true;\n if (config.injectedWalletConfig && typeof config.injectedWalletConfig === 'object')\n return true;\n return false;\n}\n/**\n * Resolve the injected-wallet-config the provider should use, merging the\n * `walletLogin` object form (if the app passed one) over `injectedWalletConfig`.\n * `walletLogin: true` (bare boolean) enables login with default provider\n * discovery (Phantom-first) and no RPC override.\n */\nfunction resolveInjectedWalletConfig(config) {\n const base = (config.injectedWalletConfig && typeof config.injectedWalletConfig === 'object')\n ? config.injectedWalletConfig\n : {};\n const wl = config.walletLogin;\n if (wl && typeof wl === 'object')\n return Object.assign(Object.assign({}, base), wl);\n return base;\n}\nfunction optionalProviderError(method) {\n return new Error(`Bounded authMethod \"${method}\" uses an optional wallet/provider SDK that is no longer ` +\n `pulled into the default @bounded-sh/client entry. Use hosted login ` +\n `loginWithRedirect(...) for Bounded Auth, signInAnonymously() for guests, ` +\n `or install/import an explicit wallet-provider entry once your app opts into \"${method}\".`);\n}\nexport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, } from \"./solana-rpc\";\nexport async function getAuthProvider(config) {\n var _a;\n const nextProviderConfigKey = config ? authProviderConfigKey(config) : null;\n if (currentAuthProvider && (!config || currentAuthProviderConfigKey === nextProviderConfigKey)) {\n return currentAuthProvider;\n }\n if (!config) {\n throw new Error(\"Config is required to initialize auth provider\");\n }\n if (currentAuthProvider && currentAuthProviderConfigKey !== nextProviderConfigKey) {\n currentAuthProvider = null;\n currentAuthMethod = null;\n currentAuthProviderConfigKey = null;\n }\n initConfig = config;\n const authMethod = authMethodForInit(config);\n const rpcUrl = normalizeSolanaRpcUrl(config.rpcUrl);\n const configuredNetwork = getConfiguredSolanaNetwork(config);\n currentAuthMethod = authMethod;\n // Clear, actionable error when the BROWSER build (`bounded-sh`) is loaded in a\n // non-browser (Node) runtime. The wallet providers below need `window`; without\n // it they throw a cryptic \"PhantomWalletProvider can only be instantiated in a\n // browser environment\" deep in init(). The server build (`bounded-sh/server`)\n // never resolves these methods (it signs with a keypair), so this can't fire for\n // it — it only converts the cryptic browser-in-Node crash into a useful message.\n const browserWalletMethods = ['phantom', 'wallet', 'evm-wallet', 'rainbowkit', 'coinbase-smart-wallet', 'onboard', 'mobile-wallet-adapter', 'privy'];\n if (typeof window === 'undefined' && browserWalletMethods.includes(authMethod)) {\n throw new Error(`bounded-sh: '${authMethod}' auth requires a browser, but no \\`window\\` was found ` +\n `(you're likely running in Node). In server/Node code, import from 'bounded-sh/server' ` +\n `instead of 'bounded-sh' — it signs with an explicit keypair passed to createWalletClient({ keypair }) ` +\n `and needs no browser.`);\n }\n switch (authMethod) {\n case \"email\":\n // Hosted Bounded Auth sessions restore through the same session\n // manager as legacy email sessions. Human login should be started\n // with loginWithRedirect(); this provider is kept as the restore and\n // logout surface for those sessions.\n currentAuthProvider = new (await import(\"./providers/email-auth-provider\")).EmailAuthProvider();\n break;\n case \"wallet\":\n case \"phantom\": {\n // First-class Solana WALLET LOGIN (the poof/TaroBase-style \"connect\n // wallet\" choice). Slim path: rides the injected Solana provider a\n // browser wallet exposes (Phantom's window.phantom.solana, or any\n // Wallet-Standard window.solana). The user's REAL wallet becomes\n // @user.address; login = SIWS; full local signing surface. No React\n // and no heavy wallet-SDK peer dep. 'wallet' is an alias for the same\n // path.\n //\n // OPT-IN, DEFAULT OFF: only usable when the app explicitly enabled it\n // at init() (walletLogin: true). Otherwise throw a clear, actionable\n // error — most apps never support wallets, so we never construct the\n // provider (or pay its lazy chunk) for them.\n if (!isWalletLoginEnabled(config)) {\n throw walletLoginNotEnabledError(authMethod);\n }\n const { InjectedWalletProvider } = await import(\"./providers/injected-wallet-provider\");\n currentAuthProvider = new InjectedWalletProvider(resolveInjectedWalletConfig(config), rpcUrl, configuredNetwork);\n break;\n }\n case \"evm-wallet\": {\n // First-class EVM WALLET LOGIN (BYO Ethereum wallet via SIWE). Slim\n // path: rides the EIP-1193 injected provider a browser wallet exposes\n // (MetaMask / Rabby / Coinbase Wallet / any window.ethereum), discovered\n // via EIP-6963. The user's REAL EVM wallet becomes @user.evmAddress;\n // login = SIWE (EIP-4361 personal_sign). No viem/ethers and no React.\n // Selecting authMethod:'evm-wallet' IS the opt-in — pass evmWalletConfig\n // to point at a specific wallet or set chainId/domain.\n const evmWalletConfig = ((_a = config.evmWalletConfig) !== null && _a !== void 0 ? _a : {});\n const { InjectedEvmWalletProvider } = await import(\"./providers/injected-evm-wallet-provider\");\n currentAuthProvider = new InjectedEvmWalletProvider(evmWalletConfig);\n break;\n }\n case \"rainbowkit\":\n console.warn(\"Rainbow Kit auth is not yet supported.\");\n break;\n case \"privy\": {\n throw optionalProviderError(\"privy\");\n }\n case \"privy-expo\":\n // React Native Privy: @privy-io/expo is hook-based, so the host app must\n // create a PrivyExpoProvider, bridge the Privy hooks via setPrivyMethods()\n // from inside its <PrivyProvider> tree, and pass it as config.privyExpoProvider.\n if (!config.privyExpoProvider) {\n throw new Error('authMethod \"privy-expo\" requires a PrivyExpoProvider instance passed as config.privyExpoProvider. ' +\n 'Create the provider, call setPrivyMethods() from your React Native component tree, then pass it to init().');\n }\n currentAuthProvider = config.privyExpoProvider;\n break;\n case \"mobile-wallet-adapter\": {\n throw optionalProviderError(\"mobile-wallet-adapter\");\n }\n case \"onboard\":\n console.warn(\"Onboard auth is not yet supported.\");\n break;\n case \"guest\":\n // Anonymous auth: a device-local ed25519 keypair signs the challenge.\n currentAuthProvider = new (await import(\"./providers/guest-auth-provider\")).GuestAuthProvider();\n break;\n default:\n break;\n }\n if (!currentAuthProvider) {\n throw new Error(\"No auth provider was selected. Does your app have a supported auth method or chain configured?\");\n }\n // Wrap with OffchainAuthProvider for offchain/poofnet chain\n if (config.chain === \"offchain\") {\n console.log(\"[Offchain] Wrapping auth provider for Poofnet transaction tracking\");\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n currentAuthProviderConfigKey = nextProviderConfigKey;\n return currentAuthProvider;\n}\n/**\n * Browser/React-Native-only auth flows (guest, email) persist their session via\n * WebSessionManager, which is gated to environments that have `window` /\n * `localStorage`. In Node those stores no-op, so the session is minted on the\n * server but never saved locally — the caller looks logged in yet every request\n * 403s. Fail fast with actionable guidance instead of that silent footgun.\n */\nfunction assertBrowserAuthEnv(method) {\n if (typeof window === 'undefined') {\n throw new Error(`bounded-sh: '${method}' is a browser/React-Native auth flow — it needs \\`window\\`/\\`localStorage\\` ` +\n `to persist the session, which Node doesn't have (the session would be silently dropped, then every ` +\n `request 403s). In Node/server code import from 'bounded-sh/server' and sign with a keypair ` +\n `by using createWalletClient({ keypair }).`);\n }\n}\n/**\n * Anonymous (\"guest\") sign-in: zero-friction auth backed by a device-local\n * ed25519 keypair (no email, no wallet, no popup). The keypair is generated +\n * persisted on the device; its public key becomes `@user.address`. Durable\n * across reloads. Upgrade later by linking an email; transfer accounts via the\n * ownership-as-data pattern. `init()` must have run first. Browser/RN only.\n */\nexport async function signInAnonymously() {\n var _a;\n assertBrowserAuthEnv('signInAnonymously');\n // Resolve configuration before taking the transaction snapshot. Although\n // getConfig is normally already resolved after init(), it is asynchronous;\n // another login that finishes during that await must be part of the prior\n // state we preserve, not accidentally split across old/new snapshots.\n const coreConfig = await getConfig();\n const previousAuthProvider = currentAuthProvider;\n const previousAuthMethod = currentAuthMethod;\n const previousProviderConfigKey = currentAuthProviderConfigKey;\n const previousStoredAuthMethod = getStoredAuthMethod();\n const previousGlobalProvider = getAuthProviderInstance();\n const previousUser = getCurrentUser();\n const previousCoreProvider = coreConfig.authProvider;\n const previousCoreAuthMethod = coreConfig.authMethod;\n const previousIdToken = getStoredIdToken();\n // Lazy-load the guest provider so its ed25519/web3 dependencies stay out of\n // the main bundle for data-only apps. Specifier is a static string literal\n // so bundle-splitting can see it.\n const provider = new (await import(\"./providers/guest-auth-provider\")).GuestAuthProvider();\n setAuthLoading(true); // reflect \"signing in…\" while the guest keypair session is minted\n const commit = (user) => {\n // No await/interleaving inside this block: provider/method/config/marker\n // become guest before the user notification fires, so listeners and\n // concurrent imperative calls can never observe a mixed identity.\n currentAuthProvider = provider;\n currentAuthMethod = 'guest';\n currentAuthProviderConfigKey = 'direct:guest';\n coreConfig.authProvider = provider;\n coreConfig.authMethod = 'guest';\n setAuthProviderInstance(provider);\n setStoredAuthMethod('guest');\n setCurrentUser(user);\n };\n try {\n // Mint/store first while every shared provider surface remains on the\n // previous identity. The provider also withholds setCurrentUser here.\n const user = await provider.loginForProviderSwitch();\n if (!user)\n return null;\n // A human login may have completed after the guest request persisted but\n // before its promise resumed here. Re-check the live bearer immediately\n // before commit so a late guest result cannot overwrite that newer user.\n if (!user.address || !idTokenIsGuest(getStoredIdToken(), user.address)) {\n throw new Error('Anonymous sign-in was superseded by another session.');\n }\n commit(user);\n return user;\n }\n catch (error) {\n const currentIdToken = getStoredIdToken();\n if (currentIdToken !== previousIdToken && idTokenIsGuest(currentIdToken)) {\n // Defensive applied-yet-error reconciliation: if storage contains a\n // valid guest bearer/key despite the thrown write, commit that truth\n // instead of restoring a human UI over a guest token.\n let recovered = null;\n try {\n recovered = await provider.restoreSessionForProviderSwitch();\n }\n catch (_b) {\n try {\n getActiveSessionManager().clearSession();\n }\n catch ( /* fail closed below */_c) { /* fail closed below */ }\n }\n if (recovered) {\n commit(recovered);\n return recovered;\n }\n // restoreSessionForProviderSwitch fails closed and clears a split\n // bearer. Do not resurrect a user object that no longer has its token.\n setCurrentUser(null);\n }\n else if (currentIdToken === previousIdToken) {\n // The staged attempt never changed the bearer; every shared provider\n // surface stayed untouched, so restore the exact prior user/marker.\n currentAuthProvider = previousAuthProvider;\n currentAuthMethod = previousAuthMethod;\n currentAuthProviderConfigKey = previousProviderConfigKey;\n coreConfig.authProvider = previousCoreProvider;\n coreConfig.authMethod = previousCoreAuthMethod;\n setAuthProviderInstance(previousGlobalProvider);\n setStoredAuthMethod(previousStoredAuthMethod);\n if (getCurrentUser() !== previousUser)\n setCurrentUser(previousUser);\n }\n else {\n // A different non-guest token won while this staged guest mint was in\n // flight (another tab/popup/login). The guest attempt never mutated\n // shared provider state, so preserve that winner exactly. Align only\n // this module's private registry to the provider the winner installed;\n // never overwrite its core/global provider, marker, or user snapshot.\n const concurrentProvider = (_a = getAuthProviderInstance()) !== null && _a !== void 0 ? _a : coreConfig.authProvider;\n if (concurrentProvider)\n currentAuthProvider = concurrentProvider;\n const concurrentStoredMethod = getStoredAuthMethod();\n currentAuthMethod = concurrentStoredMethod && concurrentStoredMethod !== 'guest'\n ? concurrentStoredMethod\n : (previousAuthMethod && previousAuthMethod !== 'guest' ? previousAuthMethod : 'email');\n currentAuthProviderConfigKey = previousProviderConfigKey;\n }\n throw error;\n }\n finally {\n setAuthLoading(false);\n }\n}\n/**\n * Log in with Privy as a co-equal route — selectable at runtime alongside\n * `login()` (email/wallet) and `signInAnonymously()`, without re-`init()`.\n *\n * On REACT NATIVE the host must have created a PrivyExpoProvider and bridged the\n * Privy hooks via setPrivyMethods() (pass it as `config.privyExpoProvider` to\n * init()) — RN can't construct it here because the Privy hooks live in the app's\n * component tree. Web Privy is no longer loaded through the default client entry;\n * opt into a dedicated provider entry when your app needs it.\n *\n * Either way the Privy Solana wallet signs the SIWS challenge, so the session is\n * minted via the same wallet path as Phantom and shares the unified session store\n * (web localStorage / RN storage) and identity model. `init()` must have run first.\n */\nexport async function loginWithPrivy(options) {\n assertBrowserAuthEnv('loginWithPrivy');\n const coreConfig = await getConfig();\n let provider;\n if (getPlatform().hasDOM) {\n throw optionalProviderError(\"privy\");\n }\n if (!coreConfig.privyExpoProvider) {\n throw new Error('loginWithPrivy() on React Native requires a PrivyExpoProvider bridged from your app: ' +\n 'create it, call setPrivyMethods() inside <PrivyProvider>, and pass it as config.privyExpoProvider to init().');\n }\n provider = coreConfig.privyExpoProvider;\n currentAuthMethod = 'privy-expo';\n if (coreConfig.chain === 'offchain') {\n provider = new OffchainAuthProvider(provider);\n }\n currentAuthProvider = provider;\n currentAuthProviderConfigKey = authProviderConfigKey(Object.assign(Object.assign({}, coreConfig), { authMethod: currentAuthMethod }));\n coreConfig.authProvider = provider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(provider);\n setStoredAuthMethod(currentAuthMethod);\n if (typeof provider.setLoginOverrides === 'function') {\n provider.setLoginOverrides(options !== null && options !== void 0 ? options : null);\n }\n const result = await provider.login();\n return result ? Object.assign(Object.assign({}, result), { provider }) : null;\n}\nexport async function login(options) {\n // Re-initialize provider if it was cleared by logout\n if (!currentAuthProvider && initConfig) {\n currentAuthProvider = await getAuthProvider(initConfig);\n const coreConfig = await getConfig();\n coreConfig.authProvider = currentAuthProvider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(currentAuthProvider);\n }\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n // Forward per-call overrides to providers that support them (duck-typed to stay\n // lazy-load safe — no direct import of PhantomWalletProvider here).\n // Always call (even with null) so previous overrides are cleared when this\n // login() is invoked without options — early-return paths inside the provider\n // bypass the .finally() cleanup, so we reset here too.\n if (typeof currentAuthProvider.setLoginOverrides === 'function') {\n currentAuthProvider.setLoginOverrides(options !== null && options !== void 0 ? options : null);\n }\n const loginResult = await currentAuthProvider.login();\n if (loginResult) {\n // Store which auth method was used so we restore the right provider on reload\n setStoredAuthMethod(currentAuthMethod);\n // If this top-level tab was opened solely to perform the wallet connect for\n // an embedded preview (?poofConnect — see openTopLevelForConnect in the\n // phantom provider), close it now that the session is established. The\n // session reflects back into the preview's iframe via same-origin storage.\n try {\n if (typeof window !== 'undefined'\n && window.top === window.self\n && new URLSearchParams(window.location.search).get('poofConnect') === '1') {\n setTimeout(() => { try {\n window.close();\n }\n catch ( /* noop */_a) { /* noop */ } }, 400);\n }\n }\n catch ( /* noop */_a) { /* noop */ }\n return Object.assign(Object.assign({}, loginResult), { provider: currentAuthProvider });\n }\n return null;\n}\nexport function getCurrentAuthMethod() {\n return currentAuthMethod;\n}\n// The hosted issuer keeps its OWN browser session (the Better Auth cookie on\n// auth.bounded.sh) — clearing the app-local session alone leaves it alive, so\n// the next loginWithRedirect() silently re-signs the user in as the SAME\n// account: \"sign out\" that never lets you re-choose. The issuer ships\n// GET /logout for exactly this — it expires the session cookies and bounces\n// back — but it only redirects to https origins it trusts. Mirror that\n// allowlist here: on a trusted origin we end the issuer session with a\n// top-level bounce; anywhere else (custom domains, http dev) we keep the\n// local-only logout instead of stranding the user on the issuer origin.\nfunction issuerLogoutBounceUrl(issuerBase) {\n if (typeof window === 'undefined' || typeof document === 'undefined')\n return null; // RN/Node: no shared cookie jar to clear this way\n try {\n if (window.top !== window.self)\n return null; // framed: SameSite=Lax cookies don't ride iframe navigations\n }\n catch (_a) {\n return null;\n }\n try {\n const here = new URL(window.location.href);\n const host = here.hostname;\n const isLocalhost = host === 'localhost' || host === '127.0.0.1' || host.endsWith('.localhost');\n const trusted = here.protocol === 'https:' &&\n (host === 'bounded.sh' ||\n host.endsWith('.bounded.sh') ||\n host.endsWith('.bounded.page') ||\n host.endsWith('.oapps.fun') ||\n isLocalhost);\n if (!trusted)\n return null;\n const base = issuerBase.replace(/\\/$/, '');\n return `${base}/logout?redirect_uri=${encodeURIComponent(here.href)}`;\n }\n catch (_b) {\n return null;\n }\n}\nexport async function logout(options) {\n // Re-initialize the provider if it was cleared by a prior logout — the exact mirror\n // of login()'s self-heal above. A hosted popup/redirect login (loginWithPopup /\n // completeLoginFromRedirect) establishes a session WITHOUT touching the provider\n // singleton, so after a logout → hosted re-login cycle the provider is still null\n // and logging out the NEW session would otherwise throw \"not initialized\" at the\n // user. Rebuilding from initConfig is idempotent and cheap (same config key).\n if (!currentAuthProvider && initConfig) {\n currentAuthProvider = await getAuthProvider(initConfig);\n const coreConfig = await getConfig();\n coreConfig.authProvider = currentAuthProvider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(currentAuthProvider);\n }\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n // Revoke the refresh-token family server-side BEFORE the provider clears the\n // local session (so we still have the token + issuer to revoke). If revoke\n // fails, surface the error and leave local state intact so callers do not\n // mistake a local-only logout for server revocation.\n const sm = getActiveSessionManager();\n const refreshToken = sm.getRefreshToken();\n const sessionIssuer = sm.getIssuer();\n if (refreshToken)\n await revokeSession(refreshToken, sessionIssuer !== null && sessionIssuer !== void 0 ? sessionIssuer : undefined);\n // Hosted sessions ('email' covers the whole hosted surface: email OTP +\n // social + the OIDC redirect/popup flows) are the ones with an issuer\n // cookie; wallet and guest sessions have nothing hosted to end.\n // Check the STORED marker as well as the in-memory method: the hosted\n // OIDC flows (loginWithPopup / completeLoginFromRedirect) write the\n // 'email' marker via exchangeCode() but never touch currentAuthMethod,\n // which stays 'guest'/explicit even after a hosted upgrade. Worst case of\n // a false positive is a harmless idempotent issuer bounce.\n const wasHosted = currentAuthMethod === 'email' || getStoredAuthMethod() === 'email';\n await currentAuthProvider.logout();\n setStoredAuthMethod(null);\n currentAuthProvider = null;\n currentAuthMethod = null;\n currentAuthProviderConfigKey = null;\n if (wasHosted && !(options === null || options === void 0 ? void 0 : options.keepIssuerSession)) {\n const issuerBase = sessionIssuer\n || (await getConfig()).humanAuthApiUrl\n || 'https://auth.bounded.sh';\n const bounce = issuerLogoutBounceUrl(issuerBase);\n // Local state is already cleared, so even if the navigation is stopped\n // (tab close, extension) the app-side logout has fully happened.\n if (bounce)\n window.location.href = bounce;\n }\n}\n// OIDC Authorization Code + PKCE login (the secure multi-tenant redirect flow).\nexport { loginWithRedirect, completeLoginFromRedirect, loginWithPopup, completeLoginInPopup } from './oidc-auth';\n","import { reconnectWithNewAuth, getConfig, deriveUserIdentityFromIdToken, getActiveSessionManager } from '@bounded-sh/core';\nimport { getAuthProvider, login as authLogin, logout as authLogout, clearIncompatibleSession, getCurrentAuthMethod } from './auth';\nimport { init as configInit } from '@bounded-sh/core';\n/**\n * Read the active session's idToken synchronously from whichever store is live\n * for this runtime (WebSessionManager on web, ReactNativeSessionManager on RN —\n * selected by getActiveSessionManager, the same selector the core request path\n * uses). Returns null when there's no session — the caller leaves the user as-is.\n */\nfunction getCurrentIdToken() {\n try {\n return getActiveSessionManager().getIdToken();\n }\n catch ( /* no session / store unavailable */_a) { /* no session / store unavailable */ }\n return null;\n}\n/**\n * Enrich a freshly-produced User with the universal identity fields\n * ({ id, email }) derived from the active session's idToken. ADDITIVE +\n * backwards-compatible: `address` is left exactly as the provider set it, and\n * id/email are only populated when not already present. For wallet logins\n * id === address; for email-only (Bounded) logins address may be null and id\n * is the account identity. Mirrors the realtime-worker auth.ts resolution so\n * the client `user` matches what the backend authenticates as (@user.id / .email).\n */\nfunction withUserIdentity(user) {\n var _a, _b, _c, _d;\n if (!user)\n return user;\n const { id, email } = deriveUserIdentityFromIdToken(getCurrentIdToken());\n return Object.assign(Object.assign({}, user), { \n // Prefer an id the provider already set; otherwise fall back to the\n // token-derived identity, then to the wallet address (wallet === id).\n id: (_c = (_b = (_a = user.id) !== null && _a !== void 0 ? _a : id) !== null && _b !== void 0 ? _b : user.address) !== null && _c !== void 0 ? _c : undefined, \n // Email comes only from email-login tokens; keep any provider-set value.\n email: user.email !== undefined ? user.email : email, \n // Guest/anonymous flag (Firebase `isAnonymous` parity): authoritative\n // source is the active auth method, so it's correct on fresh login AND\n // after a session restore (the stored method is rehydrated before the\n // user is set). A provider may also set it explicitly; honor that first.\n isAnonymous: (_d = user.isAnonymous) !== null && _d !== void 0 ? _d : (getCurrentAuthMethod() === 'guest') });\n}\nlet authProviderInstance = null;\nlet currentUser = null;\nlet authStateListeners = [];\nlet authLoadingListeners = [];\nlet initCompleted = false;\nlet isAuthLoading = false;\n// This file acts as a middleware for the global state of the SDK\n// This mostly involves setting up the AuthProvider and managing the current user\nexport async function init(newConfig) {\n // Mark auth as loading for the ENTIRE init/restore window so consumers render\n // a neutral/loading state instead of the signed-out UI while we rehydrate the\n // session — otherwise getCurrentUser() is null + loading is false during the\n // async restore, which paints \"logged out\" and then flips to \"logged in\" (an\n // auth flash). The React useAuth hook seeds loading=true itself, but the\n // imperative API (onAuthLoadingChanged/getAuthLoading) relies on this flag, so\n // setting it here makes \"no flash\" the SDK's default behavior for every consumer.\n setAuthLoading(true);\n try {\n // Get auth provider first\n authProviderInstance = await getAuthProvider(newConfig);\n // Initialize config with auth provider\n await configInit(Object.assign(Object.assign({}, newConfig), { authProvider: authProviderInstance }));\n // Now that core is initialized, update the auth method on the config\n const authMethod = getCurrentAuthMethod();\n if (authMethod) {\n const coreConfig = await getConfig();\n coreConfig.authMethod = authMethod;\n }\n // Wait for restoreSession to complete\n // The appId check is done in SessionManager.getSession which is called by restoreSession\n // If there's an appId mismatch, the session will be cleared and restoreSession will return null\n let user = await authProviderInstance.restoreSession();\n // If a session exists but was created before auth method tracking (legacy session),\n // clear it to avoid mismatches when the app switches auth methods (e.g. email → phantom)\n if (user && clearIncompatibleSession()) {\n user = null;\n }\n setCurrentUser(user);\n // Mark init as completed\n initCompleted = true;\n }\n finally {\n // Resolve loading once the user is known (or restore failed) — listeners\n // registered mid-init still get the correct final state via the immediate\n // callback in onAuthLoadingChanged.\n setAuthLoading(false);\n }\n}\nexport function onAuthStateChanged(callback) {\n authStateListeners.push(callback);\n if (initCompleted || hasRunFirstTime) {\n // Call the callback immediately with the current user.\n // We check hasRunFirstTime in addition to initCompleted to handle the race\n // where the Phantom auto-login effect calls setCurrentUser() before init()\n // finishes. Without this, listeners registered between auto-login's\n // setCurrentUser and init()'s initCompleted would never fire (init's\n // setCurrentUser is a no-op for same-address and initCompleted is still false).\n callback(currentUser);\n }\n return () => {\n authStateListeners = authStateListeners.filter((listener) => listener !== callback);\n };\n}\nexport function onAuthLoadingChanged(callback) {\n authLoadingListeners.push(callback);\n // Call immediately with current loading state\n callback(isAuthLoading);\n return () => {\n authLoadingListeners = authLoadingListeners.filter((listener) => listener !== callback);\n };\n}\nexport function setAuthLoading(loading) {\n if (isAuthLoading !== loading) {\n isAuthLoading = loading;\n authLoadingListeners.forEach((callback) => callback(loading));\n }\n}\nexport function getAuthLoading() {\n return isAuthLoading;\n}\nexport async function login(options) {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n const loggedInUser = await authLogin(options);\n setCurrentUser(loggedInUser);\n return currentUser;\n}\nexport async function logout(options) {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n await authLogout(options);\n setCurrentUser(null);\n}\nvar hasRunFirstTime = false;\nfunction userPrincipalKey(user) {\n var _a, _b, _c;\n if (!user)\n return null;\n return (_c = (_b = (_a = user.id) !== null && _a !== void 0 ? _a : user.address) !== null && _b !== void 0 ? _b : user.email) !== null && _c !== void 0 ? _c : null;\n}\n// Update the currentUser and notify listeners\nexport function setCurrentUser(user) {\n // Enrich with the universal identity fields (id/email) derived from the\n // active session's idToken — central chokepoint so every provider's user\n // object gains { id, address, email } without each construction site\n // having to set them.\n user = withUserIdentity(user);\n const lastUser = currentUser;\n const wasInitializedBefore = hasRunFirstTime;\n const lastPrincipal = userPrincipalKey(currentUser);\n const nextPrincipal = userPrincipalKey(user);\n const shouldRunListeners = !hasRunFirstTime || lastPrincipal !== nextPrincipal;\n hasRunFirstTime = true;\n currentUser = user;\n if (shouldRunListeners) {\n authStateListeners.forEach((callback) => callback(user));\n // Reconnect WebSocket connections with new auth when user changes.\n // Skip on the first setCurrentUser call during init() — there are no\n // existing connections to reconnect at that point.\n if (wasInitializedBefore && userPrincipalKey(lastUser) !== nextPrincipal) {\n reconnectWithNewAuth().catch((error) => {\n console.error('Error reconnecting WebSocket after auth change:', error);\n });\n }\n }\n}\nexport function getCurrentUser() {\n return currentUser;\n}\n/** @internal Snapshot/restore surface for transactional auth-provider switches. */\nexport function getAuthProviderInstance() {\n return authProviderInstance;\n}\nexport function setAuthProviderInstance(provider) {\n authProviderInstance = provider;\n}\n","var _a;\nimport * as React from 'react';\nimport { login as sdkLogin, logout as sdkLogout } from '../../global';\nimport { onAuthStateChanged, onAuthLoadingChanged } from '../../global';\n// Whether we're in a server-side rendering context (no hooks allowed).\n// React Native has no `window` but DOES support hooks.\n// We detect Node SSR specifically via process.versions.node to avoid\n// false positives from Node 21+ which defines `navigator` globally.\nconst isSSR = typeof window === 'undefined'\n && typeof process !== 'undefined'\n && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);\nexport function useAuth() {\n // Provide a fallback so server render doesn't break\n if (isSSR) {\n return {\n login: async (_options) => undefined,\n logout: async () => undefined,\n loading: true,\n user: null,\n };\n }\n const [user, setUser] = React.useState(null);\n const [loading, setLoading] = React.useState(true);\n const [sdkLoading, setSdkLoading] = React.useState(false);\n React.useEffect(() => {\n const stopAuth = onAuthStateChanged((user) => {\n setUser(user);\n setLoading(false);\n });\n const stopLoading = onAuthLoadingChanged((loading) => {\n setSdkLoading(loading);\n });\n return () => {\n stopAuth();\n stopLoading();\n };\n }, []);\n const login = async (options) => {\n try {\n setLoading(true);\n const user = await sdkLogin(options);\n setUser(user);\n }\n catch (error) {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Error logging in:', error);\n }\n setUser(null);\n }\n finally {\n setLoading(false);\n }\n };\n const logout = async () => {\n try {\n setLoading(true);\n await sdkLogout();\n setUser(null);\n }\n catch (error) {\n console.error('Error logging out:', error);\n }\n finally {\n setLoading(false);\n }\n };\n return {\n login,\n logout,\n loading: loading || sdkLoading,\n user,\n };\n}\n","import { getIdToken as getIdTokenCore } from '@bounded-sh/core';\n// Wrapper for getIdToken - passes isServer=false for client-side usage\nexport async function getIdToken() {\n return getIdTokenCore(false);\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { getConfig } from '@bounded-sh/core';\nimport { getIdToken } from '../utils';\n/** A structured non-2xx response from the developer API. */\nexport class BuildsApiError extends Error {\n constructor(init) {\n super(init.message);\n this.name = 'BuildsApiError';\n this.code = init.code;\n this.retryable = init.retryable;\n this.status = init.status;\n this.details = init.details;\n this.retryAfterMs = init.retryAfterMs;\n }\n}\nconst memoryIdempotencyKeys = new Map();\nconst IDEMPOTENCY_STORAGE_PREFIX = 'bounded:build:idempotency:';\nfunction retryAfterMs(response) {\n var _a, _b;\n const value = (_b = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get) === null || _b === void 0 ? void 0 : _b.call(_a, 'Retry-After');\n if (!value)\n return undefined;\n const seconds = Number(value);\n if (Number.isFinite(seconds) && seconds >= 0)\n return Math.ceil(seconds * 1000);\n const at = Date.parse(value);\n if (!Number.isFinite(at))\n return undefined;\n return Math.max(0, at - Date.now());\n}\nasync function responseBody(response) {\n const text = await response.text();\n if (!text)\n return {};\n try {\n return JSON.parse(text);\n }\n catch (_a) {\n return { raw: text };\n }\n}\nfunction apiError(response, body) {\n const envelope = body;\n const nested = (envelope === null || envelope === void 0 ? void 0 : envelope.error) && typeof envelope.error === 'object'\n ? envelope.error\n : undefined;\n const hasNestedDetails = !!nested && Object.prototype.hasOwnProperty.call(nested, 'details');\n const hasTopLevelDetails = !!body\n && typeof body === 'object'\n && Object.prototype.hasOwnProperty.call(body, 'details');\n const legacyCode = typeof (body === null || body === void 0 ? void 0 : body.error) === 'string' ? body.error : undefined;\n const code = typeof (nested === null || nested === void 0 ? void 0 : nested.code) === 'string'\n ? nested.code\n : legacyCode !== null && legacyCode !== void 0 ? legacyCode : `http_${response.status}`;\n const message = typeof (nested === null || nested === void 0 ? void 0 : nested.message) === 'string'\n ? nested.message\n : typeof (body === null || body === void 0 ? void 0 : body.message) === 'string'\n ? body.message\n : `Developer API request failed with HTTP ${response.status}`;\n const retryable = typeof (nested === null || nested === void 0 ? void 0 : nested.retryable) === 'boolean'\n ? nested.retryable\n : response.status === 429 || response.status >= 500;\n return new BuildsApiError(Object.assign(Object.assign({ code,\n message,\n retryable, status: response.status }, (hasNestedDetails\n ? { details: nested === null || nested === void 0 ? void 0 : nested.details }\n : hasTopLevelDetails\n ? { details: body.details }\n : {})), (response.status === 429 ? { retryAfterMs: retryAfterMs(response) } : {})));\n}\n/** @internal Shared authenticated developer-api transport for builds and apps. */\nexport async function requestDevApi(path, request = {}) {\n var _a, _b;\n const config = await getConfig();\n const base = (_a = config.devApiUrl) === null || _a === void 0 ? void 0 : _a.replace(/\\/$/, '');\n if (!base) {\n throw new Error('Bounded developer API is not configured. Pass devApiUrl or a Bounded network to init().');\n }\n // Reuse the exact accessor exposed publicly as getIdToken().\n const token = await getIdToken();\n if (!token) {\n throw new BuildsApiError({\n code: 'auth_required',\n message: 'Sign in before calling the Bounded developer API.',\n retryable: false,\n status: 401,\n });\n }\n const hasBody = request.body !== undefined;\n const response = await fetch(`${base}${path}`, Object.assign({ method: (_b = request.method) !== null && _b !== void 0 ? _b : 'GET', headers: Object.assign({ Authorization: `Bearer ${token}` }, (hasBody ? { 'Content-Type': 'application/json' } : {})) }, (hasBody ? { body: JSON.stringify(request.body) } : {})));\n const body = await responseBody(response);\n if (!response.ok)\n throw apiError(response, body);\n return body;\n}\nfunction intentStorageKey(intentKey) {\n return `${IDEMPOTENCY_STORAGE_PREFIX}${intentKey}`;\n}\nfunction isValidIdempotencyKey(value) {\n return typeof value === 'string' && value.length > 0 && value.length <= 256;\n}\nfunction readPersistedIdempotencyKey(intentKey) {\n var _a;\n const storageKey = intentStorageKey(intentKey);\n try {\n const stored = (_a = globalThis.sessionStorage) === null || _a === void 0 ? void 0 : _a.getItem(storageKey);\n if (isValidIdempotencyKey(stored))\n return stored;\n }\n catch (_b) {\n // Storage can be disabled by browser privacy policy; use module memory.\n }\n const inMemory = memoryIdempotencyKeys.get(storageKey);\n return isValidIdempotencyKey(inMemory) ? inMemory : undefined;\n}\nfunction persistIdempotencyKey(intentKey, idempotencyKey) {\n var _a;\n const storageKey = intentStorageKey(intentKey);\n memoryIdempotencyKeys.set(storageKey, idempotencyKey);\n try {\n (_a = globalThis.sessionStorage) === null || _a === void 0 ? void 0 : _a.setItem(storageKey, idempotencyKey);\n }\n catch (_b) {\n // The in-memory write above is the React Native / disabled-storage fallback.\n }\n}\nfunction randomHex(bytes) {\n const cryptoObject = globalThis.crypto;\n if (cryptoObject === null || cryptoObject === void 0 ? void 0 : cryptoObject.getRandomValues) {\n const values = new Uint8Array(bytes);\n cryptoObject.getRandomValues(values);\n return Array.from(values, (value) => value.toString(16).padStart(2, '0')).join('');\n }\n let value = '';\n for (let index = 0; index < bytes; index += 1) {\n value += Math.floor(Math.random() * 256).toString(16).padStart(2, '0');\n }\n return value;\n}\nfunction mintIdempotencyKey() {\n const cryptoObject = globalThis.crypto;\n if (typeof (cryptoObject === null || cryptoObject === void 0 ? void 0 : cryptoObject.randomUUID) === 'function') {\n return `build_${cryptoObject.randomUUID()}`;\n }\n return `build_${Date.now().toString(36)}_${randomHex(16)}`;\n}\nfunction actionIdempotencyKey(options, action) {\n const supplied = options.idempotencyKey;\n if (supplied !== undefined) {\n if (!isValidIdempotencyKey(supplied)) {\n throw new TypeError('idempotencyKey must be between 1 and 256 characters.');\n }\n if (options.intentKey)\n persistIdempotencyKey(options.intentKey, supplied);\n return supplied;\n }\n if (!options.intentKey) {\n throw new TypeError(`intentKey is required when ${action} auto-mints an idempotency key.`);\n }\n const existing = readPersistedIdempotencyKey(options.intentKey);\n if (existing)\n return existing;\n const minted = mintIdempotencyKey();\n // This is deliberately synchronous and happens before requestDevApi can fetch.\n persistIdempotencyKey(options.intentKey, minted);\n return minted;\n}\nfunction appPath(appId) {\n return `/app/${encodeURIComponent(appId)}/builds`;\n}\nexport async function submit(appId, options) {\n const idempotencyKey = actionIdempotencyKey(options, 'submit()');\n const { intentKey: _intentKey, idempotencyKey: _suppliedKey } = options, submission = __rest(options, [\"intentKey\", \"idempotencyKey\"]);\n return requestDevApi(appPath(appId), {\n method: 'POST',\n body: Object.assign(Object.assign({}, submission), { idempotencyKey }),\n });\n}\nexport async function get(appId, runId) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}`);\n}\nexport async function events(appId, runId, after = 0) {\n const cursor = Number.isFinite(after) ? Math.max(0, Math.floor(after)) : 0;\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/events?after=${cursor}`);\n}\nexport async function cancel(appId, runId) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/cancel`, { method: 'POST' });\n}\nexport async function decideGate(appId, runId, gateId, options) {\n const idempotencyKey = actionIdempotencyKey(options, 'decideGate()');\n const { intentKey: _intentKey, idempotencyKey: _suppliedKey } = options, decision = __rest(options, [\"intentKey\", \"idempotencyKey\"]);\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/gates/${encodeURIComponent(gateId)}/decision`, { method: 'POST', body: Object.assign(Object.assign({}, decision), { idempotencyKey }) });\n}\nexport async function refreshReviewCapability(appId, runId, gateId, options) {\n const idempotencyKey = actionIdempotencyKey(options, 'refreshReviewCapability()');\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/gates/${encodeURIComponent(gateId)}/review-capability/refresh`, {\n method: 'POST',\n body: {\n expectedGeneration: options.expectedGeneration,\n expectedExpiresAtMs: options.expectedExpiresAtMs,\n expectedRecoveryUntilMs: options.expectedRecoveryUntilMs,\n expectedAudience: options.expectedAudience,\n expectedReviewerBindingHash: options.expectedReviewerBindingHash,\n idempotencyKey,\n },\n });\n}\n/**\n * Read one exact delegated-review capability and its narrow lifecycle result.\n * This does not refresh or extend the window and exposes no generic run-view\n * authority.\n */\nexport async function getReviewCapability(appId, runId, gateId, options) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/gates/${encodeURIComponent(gateId)}/review-capability`, {\n method: 'POST',\n body: { expectedPreviewUrl: options.expectedPreviewUrl },\n });\n}\nexport async function topup(appId, runId, options) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/topup`, { method: 'POST', body: options });\n}\nexport async function list(appId, limit = 20) {\n const requestedLimit = Number.isFinite(limit) ? Math.max(1, Math.floor(limit)) : 20;\n return requestDevApi(`${appPath(appId)}?limit=${requestedLimit}`);\n}\n","// Source of truth for these strings:\n// packages/cdk/cloudflare/bounded-build/src/types.ts. Keep them string-pinned;\n// wire:1 remains additive and callers must tolerate unknown response strings.\nexport const NON_TERMINAL_STATES = [\n 'queued',\n 'admitted',\n 'executing',\n 'preview_ready',\n 'parked',\n 'resuming',\n 'promoting',\n 'quarantined',\n];\nexport const TERMINAL_STATES = [\n 'promoted',\n 'failed',\n 'canceled',\n 'rejected',\n 'expired',\n 'rebase_required',\n 'reported',\n];\nexport const RUN_STATES = [\n ...NON_TERMINAL_STATES,\n ...TERMINAL_STATES,\n];\nexport const PARK_REASONS = ['gate', 'funding'];\nexport const FAILURE_REASONS = [\n 'admission_rejected',\n 'dispatch_timeout',\n 'auth_revoked',\n 'owner_changed',\n 'policy_changed',\n 'quarantine_forced',\n 'bind_failed',\n 'internal_error',\n];\nexport const BUILD_REVIEW_CAPABILITY_SCHEMA = 'bounded.build-review-capability.v1';\nexport const BUILD_REVIEW_CAPABILITY_REFRESH_SCHEMA = 'bounded.build-review-capability-refresh.v1';\nexport const BUILD_DELEGATED_REVIEW_CAPABILITY_SCHEMA = 'bounded.build-delegated-review-capability.v1';\n","import { BuildsApiError, events as getEvents, get as getRun, } from './client';\nimport { TERMINAL_STATES } from './types';\nconst NORMAL_POLL_MS = 2000;\nconst PARKED_POLL_MS = 5000;\nconst LONG_RUNNING_POLL_MS = 10000;\nconst TWO_MINUTES_MS = 2 * 60000;\nconst TEN_MINUTES_MS = 10 * 60000;\nconst terminalStates = new Set(TERMINAL_STATES);\nfunction pollCadence(state, elapsedMs) {\n if (elapsedMs >= TEN_MINUTES_MS)\n return LONG_RUNNING_POLL_MS;\n if ((state === null || state === void 0 ? void 0 : state.startsWith('parked')) || elapsedMs >= TWO_MINUTES_MS)\n return PARKED_POLL_MS;\n return NORMAL_POLL_MS;\n}\nfunction retryCadence(error, state, elapsedMs) {\n const cadence = pollCadence(state, elapsedMs);\n if (error instanceof BuildsApiError && error.status === 429 && error.retryAfterMs !== undefined) {\n return Math.max(cadence, error.retryAfterMs);\n }\n return cadence;\n}\nfunction hasRetryAfter(error) {\n return error instanceof BuildsApiError\n && error.status === 429\n && error.retryAfterMs !== undefined;\n}\n// A permanent API refusal (expired session, revoked access, unknown run) will\n// never heal by re-polling; the loop must stop and surface it instead of\n// retrying forever. 429 stays retryable regardless of the server envelope.\nfunction isPermanentError(error) {\n return error instanceof BuildsApiError\n && error.status !== 429\n && error.retryable === false;\n}\nfunction newEvents(rows, lastSeq, seen) {\n const cursorBeforePoll = lastSeq;\n const fresh = [];\n let nextCursor = lastSeq;\n for (const event of rows) {\n if (!Number.isFinite(event === null || event === void 0 ? void 0 : event.seq))\n continue;\n nextCursor = Math.max(nextCursor, event.seq);\n if (event.seq <= cursorBeforePoll || seen.has(event.seq))\n continue;\n seen.add(event.seq);\n fresh.push(event);\n }\n return { events: fresh, lastSeq: nextCursor };\n}\n/**\n * Poll a build view and its event cursor until stopped or the run reaches a\n * known terminal state. Unknown state strings remain untouched and nonterminal.\n */\nexport function watch(appId, runId, onUpdate, options = {}) {\n const startedAt = Date.now();\n const seenSeqs = new Set();\n let lastSeq = Number.isFinite(options.after)\n ? Math.max(0, Math.floor(options.after))\n : 0;\n let timer;\n let active = true;\n let lastState;\n const stop = () => {\n active = false;\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n };\n const schedule = (delayMs) => {\n if (!active)\n return;\n timer = setTimeout(() => {\n timer = undefined;\n void poll();\n }, delayMs);\n };\n const reportError = (error) => {\n var _a;\n try {\n (_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, error);\n }\n catch (_b) {\n // A consumer error callback must not break the transport loop.\n }\n };\n const publish = (run, events) => {\n try {\n onUpdate({ run, events });\n }\n catch (_a) {\n // Polling is transport state; consumer render errors must not strand it.\n }\n };\n const poll = async () => {\n if (!active)\n return;\n let run;\n try {\n const view = await getRun(appId, runId);\n if (!active)\n return;\n run = view.run;\n lastState = run.state;\n }\n catch (error) {\n if (!active)\n return;\n reportError(error);\n if (isPermanentError(error)) {\n stop();\n return;\n }\n schedule(retryCadence(error, lastState, Date.now() - startedAt));\n return;\n }\n try {\n const response = await getEvents(appId, runId, lastSeq);\n if (!active)\n return;\n const deduped = newEvents(Array.isArray(response.events) ? response.events : [], lastSeq, seenSeqs);\n lastSeq = deduped.lastSeq;\n publish(run, deduped.events);\n }\n catch (error) {\n if (!active)\n return;\n // The view still advances UI state even when event replay is rate-limited.\n publish(run, []);\n reportError(error);\n if (terminalStates.has(run.state)) {\n // The run itself is done, but a rate-limited final event replay still\n // owes the caller its unseen seq rows. Honor Retry-After, retry the\n // piggyback once the limiter permits it, then stop after a successful\n // replay. Other terminal replay failures stop normally.\n if (hasRetryAfter(error)) {\n schedule(retryCadence(error, run.state, Date.now() - startedAt));\n return;\n }\n stop();\n return;\n }\n if (isPermanentError(error)) {\n stop();\n return;\n }\n schedule(retryCadence(error, run.state, Date.now() - startedAt));\n return;\n }\n if (!active)\n return;\n if (terminalStates.has(run.state)) {\n // Drain the remaining event pages before stopping: a resumed terminal\n // watch may owe the caller more rows than one page returns. Each page\n // advances the cursor, so the loop terminates; the cap is a backstop.\n for (let page = 0; page < 50 && active; page += 1) {\n let drained;\n try {\n const response = await getEvents(appId, runId, lastSeq);\n if (!active)\n return;\n drained = newEvents(Array.isArray(response.events) ? response.events : [], lastSeq, seenSeqs);\n }\n catch (error) {\n reportError(error);\n break;\n }\n if (drained.events.length === 0)\n break;\n lastSeq = drained.lastSeq;\n publish(run, drained.events);\n }\n stop();\n return;\n }\n schedule(pollCadence(run.state, Date.now() - startedAt));\n };\n void poll();\n return { stop };\n}\n","var _a;\nimport * as React from 'react';\nimport { watch } from '../builds/watch';\n// SSR guard (mirrors useAuth): no hooks/subscriptions during Node server render.\n// React Native has no `window` but DOES support hooks, so detect Node SSR\n// specifically via process.versions.node.\nconst isSSR = typeof window === 'undefined'\n && typeof process !== 'undefined'\n && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);\nexport function useBuildRun(appId, runId, options) {\n if (isSSR) {\n return { run: null, events: [], loading: true, error: null };\n }\n const [run, setRun] = React.useState(null);\n const [events, setEvents] = React.useState([]);\n const [loading, setLoading] = React.useState(true);\n const [error, setError] = React.useState(null);\n const optionsKey = options ? JSON.stringify(options) : '';\n React.useEffect(() => {\n setRun(null);\n setEvents([]);\n setError(null);\n if (!appId || !runId) {\n setLoading(false);\n return;\n }\n let active = true;\n setLoading(true);\n const handle = watch(appId, runId, ({ run: nextRun, events: nextEvents }) => {\n if (!active)\n return;\n setRun(nextRun);\n if (nextEvents.length > 0) {\n setEvents((current) => {\n const seen = new Set(current.map((event) => event.seq));\n return [...current, ...nextEvents.filter((event) => !seen.has(event.seq))];\n });\n }\n setError(null);\n setLoading(false);\n }, Object.assign(Object.assign({}, options), { onError: (value) => {\n if (!active)\n return;\n setError(value instanceof Error ? value : new Error(String(value)));\n setLoading(false);\n } }));\n return () => {\n active = false;\n handle.stop();\n };\n // optionsKey captures the option object's contents; ids are the other inputs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appId, runId, optionsKey]);\n return { run, events, loading, error };\n}\n","import { cancel, decideGate, events, get, getReviewCapability, list, refreshReviewCapability, submit, topup, } from './client';\nimport { watch } from './watch';\n/**\n * Platform first-party surfaces only (bounded.sh, oapps.fun, localhost), with\n * one exact Drafted exception for delegated review/decision routes. Other\n * generated-app origins remain blocked; server-side callers are unaffected.\n */\nexport const builds = {\n submit,\n get,\n getReviewCapability,\n events,\n cancel,\n decideGate,\n refreshReviewCapability,\n topup,\n list,\n watch,\n};\nexport { BuildsApiError } from './client';\nexport * from './types';\n","import { requestDevApi } from './client';\nexport async function create(options = {}) {\n const body = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (options.name !== undefined ? { name: options.name } : {})), (options.prompt !== undefined ? { prompt: options.prompt } : {})), (options.clientToken !== undefined ? { clientToken: options.clientToken } : {})), (options.intent !== undefined ? { intent: options.intent } : {})), (options.oapp === true ? { oapp: true } : {}));\n const app = await requestDevApi('/apps/new', {\n method: 'POST',\n body,\n });\n return Object.assign(Object.assign({ appId: app.appId }, (typeof app.slug === 'string' && app.slug ? { slug: app.slug } : {})), { url: app.url, \n // Fail closed against an older server response that omitted this field.\n policySeeded: app.policySeeded === true });\n}\nexport async function list() {\n // This legacy-compatible action shape is also used by oapps.fun listMyApps.\n const response = await requestDevApi('/', {\n method: 'POST',\n body: { action: 'listApps' },\n });\n const rows = Array.isArray(response.apps) ? response.apps : [];\n return rows\n .map((value) => {\n var _a, _b, _c, _d;\n const row = value && typeof value === 'object'\n ? value\n : {};\n const appId = String((_c = (_b = (_a = row._id) !== null && _a !== void 0 ? _a : row.id) !== null && _b !== void 0 ? _b : row.appId) !== null && _c !== void 0 ? _c : '');\n if (!/^[a-f0-9]{24}$/i.test(appId))\n return null;\n const name = String((_d = row.name) !== null && _d !== void 0 ? _d : '').trim() || '(unnamed app)';\n const slug = typeof row.slug === 'string' && row.slug ? row.slug : undefined;\n const url = typeof row.url === 'string' && row.url.trim() ? row.url.trim() : undefined;\n return Object.assign(Object.assign({ appId,\n name }, (slug ? { slug } : {})), (url ? { url } : {}));\n })\n .filter((app) => app !== null);\n}\n/**\n * Platform first-party surfaces only (bounded.sh, oapps.fun, localhost) —\n * dev-api CORS blocks calls from generated-app origins. Server-side callers unaffected.\n */\nexport const apps = { create, list };\n","export async function deserializeTransaction(tx) {\n // Literal specifier so bundlers can code-split the lazy chunk.\n const { Transaction, VersionedTransaction } = await import(\"@solana/web3.js\");\n const buf = Buffer.isBuffer(tx) ? tx : Buffer.from(tx, 'base64');\n if ((buf[0] & 0x80) !== 0) {\n return VersionedTransaction.deserialize(buf);\n }\n else {\n return Transaction.from(buf);\n }\n}\n","/**\n * Extracts a human-readable error message from Solana transaction logs.\n */\nexport function extractTransactionError(err, logMessages) {\n if (logMessages) {\n return JSON.stringify(logMessages);\n }\n if (err) {\n try {\n return JSON.stringify(err);\n }\n catch (_a) {\n return String(err);\n }\n }\n return 'Unknown transaction error';\n}\n/**\n * Polls getSignatureStatuses until the transaction is confirmed, then checks for errors.\n * Throws if the transaction failed on-chain. Returns parsed transaction info on success.\n */\nexport async function confirmAndCheckTransaction(connection, signature) {\n var _a;\n const maxAttempts = 15;\n for (let i = 0; i < maxAttempts; i++) {\n const { value } = await connection.getSignatureStatuses([signature]);\n const status = value[0];\n if (status) {\n if (status.err) {\n const txInfo = await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const errorMessage = extractTransactionError(status.err, (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.logMessages);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (status.confirmationStatus === 'confirmed' || status.confirmationStatus === 'finalized') {\n return await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n }\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n throw new Error('Transaction confirmation timeout');\n}\n","/**\n * Privy Expo Auth Provider — React Native implementation of AuthProvider.\n *\n * Uses @privy-io/expo instead of @privy-io/react-auth.\n * Persists the session through getActiveSessionManager() (the RN store on React\n * Native), and mints it via the SIWS wallet-signature path — identical to\n * Phantom/MWA — so no Privy-specific backend verification is required.\n *\n * IMPORTANT — Expo/RN consumers must:\n * 1. Install polyfills: fast-text-encoding, react-native-get-random-values\n * 2. Install @privy-io/expo, @privy-io/expo-native-extensions\n * 3. Call ReactNativeSessionManager.configure({ storage, atob }) at startup\n * 4. Call setPlatform({ ... }) from @bounded-sh/client at startup\n * 5. Wrap their app tree with PrivyProvider from @privy-io/expo\n * 6. Create this provider and pass the Privy hooks/methods via setPrivyMethods()\n *\n * Unlike the web PrivyWalletProvider which renders a hidden React DOM tree\n * to host Privy's React context, this provider expects the RN app itself\n * to render <PrivyProvider> and then bridge the hooks via setPrivyMethods().\n */\nimport { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport { setCurrentUser } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { normalizeSolanaRpcUrl, resolveSolanaRpcUrl } from '../solana-rpc';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport bs58 from 'bs58';\n// -----------------------------------------------------------------------\n// Provider implementation\n// -----------------------------------------------------------------------\nexport class PrivyExpoProvider {\n constructor(appId, networkUrl = null) {\n this.privyMethods = null;\n this.appId = appId;\n this.networkUrl = normalizeSolanaRpcUrl(networkUrl);\n }\n /**\n * Bridge Privy hooks from the app's React tree into this provider.\n *\n * Call this from a component rendered inside <PrivyProvider>:\n * ```tsx\n * const privy = usePrivy();\n * const wallet = useEmbeddedSolanaWallet();\n * const { getAccessToken } = usePrivy();\n * const { getIdentityToken } = useIdentityToken();\n *\n * useEffect(() => {\n * provider.setPrivyMethods({\n * isReady: privy.isReady,\n * isAuthenticated: !!privy.user,\n * user: privy.user,\n * login: privy.login,\n * logout: privy.logout,\n * getAccessToken,\n * getIdentityToken,\n * getWalletProvider: async () => {\n * if (!wallet.wallets[0]) return null;\n * const provider = await wallet.wallets[0].getProvider();\n * return {\n * address: wallet.wallets[0].address,\n * signMessage: provider.signMessage,\n * signTransaction: provider.signTransaction,\n * signAndSendTransaction: provider.signAndSendTransaction,\n * };\n * },\n * });\n * }, [privy.isReady, privy.user, wallet.wallets]);\n * ```\n */\n setPrivyMethods(methods) {\n this.privyMethods = methods;\n }\n // -------------------------------------------------------------------\n // AuthProvider interface\n // -------------------------------------------------------------------\n async login() {\n var _a;\n await this.ensureReady();\n // Check for existing session — verify the stored address matches the\n // currently authenticated Privy wallet (guards against account switches\n // without an explicit logout).\n const session = await SessionManager().getSession();\n if (session && ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated)) {\n const wallet = await this.privyMethods.getWalletProvider();\n if (wallet && wallet.address === session.address) {\n return { provider: this, address: session.address };\n }\n // Stale session — clear and continue to fresh login flow\n SessionManager().clearSession();\n }\n // Trigger Privy login\n const privyUser = await this.privyMethods.login();\n if (!privyUser)\n return null;\n // Get the wallet\n const wallet = await this.privyMethods.getWalletProvider();\n if (!wallet) {\n throw new Error('No embedded Solana wallet found after login. Ensure embeddedWallets.solana.createOnLogin is configured.');\n }\n // Mint a Bounded session by having the Privy Solana wallet sign the\n // standard SIWS challenge — identical to Phantom/MWA, so the backend mints\n // the session via the proven wallet-signature path (no Privy-specific\n // token verification needed).\n await this.createSession(wallet.address, wallet);\n const user = { provider: this, address: wallet.address };\n setCurrentUser(user);\n return user;\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a;\n await this.ensureReady();\n const [{ Connection, PublicKey }, programSdk] = await Promise.all([\n import(\"@solana/web3.js\"),\n import(\"@coral-xyz/anchor\"),\n ]);\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required');\n }\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n const app_id = solTransactionData.appId;\n if (!app_id) {\n throw new Error('App ID is required');\n }\n // Create a mock wallet adapter for Anchor (only publicKey needed for building TX)\n const walletPublicKey = new PublicKey(wallet.address);\n const walletAdapter = {\n publicKey: walletPublicKey,\n signTransaction: async (tx) => tx,\n signAllTransactions: async (txs) => txs,\n };\n const ProviderClass = programSdk[['Anch', 'orProvider'].join('')];\n const programProvider = new ProviderClass(connection, walletAdapter, ProviderClass.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n const { tx, blockhash, lastValidBlockHeight } = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, programProvider, walletPublicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData,\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n // Set blockhash\n const isLegacyTx = 'recentBlockhash' in tx &&\n !('message' in tx && 'staticAccountKeys' in tx.message);\n if (isLegacyTx) {\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n }\n else {\n tx.message.recentBlockhash = blockhash;\n }\n try {\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Sign only — don't submit\n const signed = await wallet.signTransaction(tx);\n return {\n signedTransaction: signed.signedTransaction,\n blockNumber: 0,\n gasUsed: '0',\n data: '',\n };\n }\n // Sign and submit\n const { signature, txInfo } = await this.signAndSubmitInternal(tx, wallet, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n }\n async signMessage(message) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n const messageBytes = getPlatform().textEncode(message);\n const result = await wallet.signMessage(messageBytes);\n return bs58.encode(result.signature);\n }\n async signTransaction(transaction) {\n await this.ensureReady();\n const { Connection, PublicKey, Transaction, VersionedTransaction } = await import(\"@solana/web3.js\");\n const wallet = await this.getWalletOrThrow();\n // Ensure blockhash is set\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = new PublicKey(wallet.address);\n }\n }\n else {\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n const result = await wallet.signTransaction(transaction);\n // Deserialize the signed transaction\n const signedBytes = result.signedTransaction;\n try {\n return VersionedTransaction.deserialize(signedBytes);\n }\n catch (_a) {\n return Transaction.from(signedBytes);\n }\n }\n async signAndSubmitTransaction(transaction, feePayer) {\n await this.ensureReady();\n const { Connection, PublicKey } = await import(\"@solana/web3.js\");\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Ensure blockhash\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n legacyTx.feePayer = feePayer || new PublicKey(wallet.address);\n }\n else {\n const versionedTx = transaction;\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n const { signature } = await this.signAndSubmitInternal(transaction, wallet, connection);\n return signature;\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n return null;\n }\n async logout() {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated) {\n await this.privyMethods.logout();\n }\n SessionManager().clearSession();\n }\n async getNativeMethods() {\n return this.privyMethods;\n }\n // -------------------------------------------------------------------\n // Private helpers\n // -------------------------------------------------------------------\n /**\n * Mint a Bounded session from a Privy Solana wallet by signing the canonical\n * SIWS challenge (nonce -> genSolanaMessage -> wallet.signMessage). This reuses\n * createSessionWithSignature — the exact path Phantom, the mobile wallet\n * adapter, and the guest device-key use — so the bounded /session issuer mints\n * the session with no Privy-specific verification (it arrives as a Solana\n * wallet signature, defaulting to authMethod 'phantom' server-side).\n */\n async createSession(address, wallet) {\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n const messageBytes = getPlatform().textEncode(message);\n const signResult = await wallet.signMessage(messageBytes);\n // createSessionWithSignature expects a base64-encoded detached signature\n // (matches the Phantom + guest providers).\n const signature = Buffer.from(signResult.signature).toString('base64');\n const result = await createSessionWithSignature(address, message, signature);\n if (result) {\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n }\n }\n async getWalletOrThrow() {\n var _a;\n const wallet = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.getWalletProvider());\n if (!wallet) {\n throw new Error('No Privy wallet available. Ensure the user is logged in and an embedded Solana wallet exists.');\n }\n return wallet;\n }\n async signAndSubmitInternal(transaction, wallet, connection) {\n // Use Privy's combined sign+send\n const result = await wallet.signAndSendTransaction(transaction, connection);\n const signature = result.signature;\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return { signature, txInfo };\n }\n getRpcUrl(network) {\n return resolveSolanaRpcUrl(this.networkUrl, network, \"Privy Expo Solana transaction\");\n }\n async ensureReady(timeoutMs = 15000) {\n if (!this.privyMethods) {\n throw new Error('PrivyExpoProvider.setPrivyMethods() must be called before using auth. ' +\n 'Bridge the Privy hooks from your React Native component tree.');\n }\n if (this.privyMethods.isReady)\n return;\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n const check = () => {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isReady) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Privy Expo SDK failed to initialize within timeout.'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n}\n"],"names":["require$$0","require$$1","exports","hasDOM","decodeJwt","Buffer","STORED_AUTH_METHOD_KEY","login","logout","configInit","authLogin","authLogout","_a","isSSR","sdkLogin","sdkLogout","getIdTokenCore","this","list","getRun","getEvents","SessionManager"],"mappings":"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ACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ;;ACnrBA,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;AAC1C,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,CAAC,CAAC;AACK,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AAClC,QAAQ,OAAO,IAAI;AACnB,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAA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","x_google_ignoreList":[3,4,5,6,7,8]}
|
|
1
|
+
{"version":3,"file":"index.native-C5SoJAZn.mjs","sources":["../.rollup-tmp/platform.js","../.rollup-tmp/auth/providers/offchain-auth-provider.js","../.rollup-tmp/auth/solana-rpc.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/index.js","../node_modules/safe-buffer/index.js","../node_modules/base-x/src/index.js","../node_modules/bs58/src/esm/index.js","../.rollup-tmp/auth/crossmint-signer-bridge.js","../.rollup-tmp/auth/oidc-auth.js","../.rollup-tmp/auth/index.js","../.rollup-tmp/global.js","../.rollup-tmp/auth/hooks/useAuth.js","../.rollup-tmp/utils.js","../.rollup-tmp/builds/client.js","../.rollup-tmp/builds/types.js","../.rollup-tmp/builds/watch.js","../.rollup-tmp/hooks/useBuildRun.js","../.rollup-tmp/builds/index.js","../.rollup-tmp/builds/apps.js","../.rollup-tmp/auth/providers/sol/sol-utils.js","../.rollup-tmp/auth/providers/transaction-utils.js","../.rollup-tmp/auth/providers/privy-expo-provider.js"],"sourcesContent":["/**\n * Platform abstraction layer for React Native compatibility.\n *\n * This module provides interfaces and default (web) implementations for\n * browser-specific APIs that are unavailable in React Native:\n * - Storage (localStorage / sessionStorage)\n * - TextEncoder\n * - Base-64 (btoa / atob)\n * - SubtleCrypto (crypto.subtle.digest)\n * - DOM helpers (document.*, requestAnimationFrame)\n * - Location (window.location.origin)\n * - UserAgent (navigator.userAgent)\n *\n * React Native consumers call `setPlatform(adapter)` once at startup to\n * supply their own implementations (e.g. AsyncStorage-backed storage,\n * expo-crypto, react-native-get-random-values, etc.).\n *\n * Web consumers don't need to do anything — the defaults use the browser APIs.\n */\n/** In-memory fallback when neither browser storage nor a custom adapter exist. */\nclass MemoryStorage {\n constructor() {\n this.store = new Map();\n }\n getItem(key) { var _a; return (_a = this.store.get(key)) !== null && _a !== void 0 ? _a : null; }\n setItem(key, value) { this.store.set(key, value); }\n removeItem(key) { this.store.delete(key); }\n}\n// ---------------------------------------------------------------------------\n// Default web implementation\n// ---------------------------------------------------------------------------\nfunction createWebPlatform() {\n const hasWindow = typeof window !== 'undefined';\n const hasDoc = typeof document !== 'undefined';\n return {\n storage: hasWindow && typeof localStorage !== 'undefined'\n ? localStorage\n : new MemoryStorage(),\n sessionStorage: hasWindow && typeof sessionStorage !== 'undefined'\n ? sessionStorage\n : new MemoryStorage(),\n textEncode(input) {\n return new TextEncoder().encode(input);\n },\n atob(input) {\n if (hasWindow)\n return window.atob(input);\n // Node / SSR fallback\n return Buffer.from(input, 'base64').toString('binary');\n },\n btoa(input) {\n if (hasWindow)\n return window.btoa(input);\n return Buffer.from(input, 'binary').toString('base64');\n },\n async sha256(data) {\n if (typeof crypto !== 'undefined' && crypto.subtle) {\n return crypto.subtle.digest('SHA-256', data);\n }\n // Node / SSR fallback. Keep the specifier indirect so browser\n // bundlers do not externalize or preload a Node-only module in the\n // email/guest graph; this branch is unreachable when WebCrypto is\n // available (all supported browsers and current Node releases).\n const nodeCryptoSpecifier = 'node:crypto';\n const { createHash } = await import(/* @vite-ignore */ nodeCryptoSpecifier);\n const hash = createHash('sha256').update(data).digest();\n return hash.buffer.slice(hash.byteOffset, hash.byteOffset + hash.byteLength);\n },\n getRandomBytes(length) {\n const out = new Uint8Array(length);\n const g = typeof globalThis !== 'undefined' ? globalThis : undefined;\n if (g && g.crypto && typeof g.crypto.getRandomValues === 'function') {\n g.crypto.getRandomValues(out);\n return out;\n }\n throw new Error('No secure random source available for PKCE. On React Native, either import ' +\n \"'react-native-get-random-values' once at your app entry, or pass getRandomBytes \" +\n 'via setPlatform({ getRandomBytes }) (e.g. expo-crypto getRandomBytes).');\n },\n getUserAgent() {\n if (hasWindow && typeof navigator !== 'undefined')\n return navigator.userAgent;\n return '';\n },\n getLocationOrigin() {\n if (hasWindow && window.location)\n return window.location.origin;\n return undefined;\n },\n hasDOM: hasDoc,\n };\n}\n// ---------------------------------------------------------------------------\n// Singleton & public API\n// ---------------------------------------------------------------------------\nlet _platform = createWebPlatform();\nlet _platformConfigured = false;\n/**\n * Override the platform adapter (call once at app startup in React Native).\n *\n * Must be called **before** `init()`. Can only be called once — subsequent\n * calls throw to prevent accidental mid-session storage swaps.\n *\n * ```ts\n * import { setPlatform } from '@bounded-sh/client';\n * import AsyncStorage from '@react-native-async-storage/async-storage';\n *\n * // Create a synchronous wrapper around AsyncStorage for the adapter\n * // (see docs for a full example).\n * setPlatform({ storage: myStorage, ... });\n * ```\n */\nexport function setPlatform(adapter) {\n if (_platformConfigured) {\n throw new Error('setPlatform() has already been called. It can only be invoked once at startup.');\n }\n _platformConfigured = true;\n _platform = Object.assign(Object.assign({}, _platform), adapter);\n}\n/** Get the current platform adapter. */\nexport function getPlatform() {\n return _platform;\n}\n// ---------------------------------------------------------------------------\n// Mobile / Android detection helpers\n// ---------------------------------------------------------------------------\n/**\n * Detect mobile device even when Chrome \"Request Desktop Site\" is active.\n *\n * Desktop mode on Android strips \"Android\" and \"Mobile\" from the UA, leaving\n * something like \"Linux x86_64 …\". The fallback detects this by looking for\n * touch capability + small viewport + a UA that doesn't belong to a known\n * desktop OS (ChromeOS, Windows, macOS).\n */\nexport function detectMobile() {\n const ua = _platform.getUserAgent();\n if (/Android|iPhone|iPad|iPod/i.test(ua))\n return true;\n if (typeof navigator !== 'undefined' && typeof window !== 'undefined') {\n const hasTouch = navigator.maxTouchPoints > 0;\n // Macs don't have touch screens, so \"Macintosh\" + touch = iOS desktop mode\n // (also catches iPadOS 13+ which always reports as Macintosh)\n if (/Macintosh/i.test(ua) && hasTouch)\n return true;\n // Android desktop mode: Linux UA + touch + small viewport, excluding\n // known desktop OSes (ChromeOS, Windows, macOS)\n const isSmallViewport = window.innerWidth <= 1024;\n const isDesktopOS = /CrOS|Windows|Macintosh/i.test(ua);\n if (hasTouch && isSmallViewport && !isDesktopOS)\n return true;\n }\n return false;\n}\n/**\n * Detect Android, including desktop-mode Chrome and Seeker/Saga in-app browsers.\n */\nexport function detectAndroid() {\n const ua = _platform.getUserAgent();\n if (/Android/i.test(ua))\n return true;\n if (/SolanaWallet|SeedVault/i.test(ua))\n return true;\n // Desktop-mode fallback: detected as mobile + Linux UA + not another OS\n if (detectMobile() && /Linux/i.test(ua) && !/CrOS|Macintosh|iPhone|iPad/i.test(ua))\n return true;\n return false;\n}\n/**\n * Reset the platform to web defaults and clear the configured flag.\n * **For testing only** — not exported from the public API.\n * @internal\n */\nexport function _resetPlatformForTesting() {\n _platform = createWebPlatform();\n _platformConfigured = false;\n}\n","import { getPlatform } from \"../../platform\";\n/**\n * OffchainAuthProvider wraps a real auth provider (e.g., Phantom) for the poofnet environment.\n *\n * signMessage shows a custom confirmation modal and then delegates to the wrapped\n * provider for a real detached signature over the exact offchain transaction message.\n */\nexport class OffchainAuthProvider {\n constructor(wrappedProvider, config = {}) {\n this.modalContainer = null;\n this.wrappedProvider = wrappedProvider;\n this.config = config;\n }\n // ============ Delegated Methods ============\n async login() {\n const user = await this.wrappedProvider.login();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n // Forward per-call login overrides (theme/title/subtitle and the `method`\n // directive) to the wrapped provider. Without this, the top-level login()\n // forwarder (which duck-types `setLoginOverrides` on the active provider)\n // skips the wrapper and the override — including `method` — is dropped on\n // offchain/Poofnet builds.\n setLoginOverrides(opts) {\n var _a, _b;\n (_b = (_a = this.wrappedProvider).setLoginOverrides) === null || _b === void 0 ? void 0 : _b.call(_a, opts);\n }\n async logout() {\n await this.wrappedProvider.logout();\n }\n async restoreSession() {\n const user = await this.wrappedProvider.restoreSession();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n async runTransaction(evmTransactionData, solTransactionData, options) {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n async signTransaction(tx) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n async getNativeMethods() {\n return this.wrappedProvider.getNativeMethods();\n }\n // Forward wallet export to the wrapped provider (only Privy embedded wallets\n // implement it). Duck-typed so wrappers around non-embedded providers throw\n // a clear error rather than a \"not a function\" crash.\n async exportWallet(address) {\n if (typeof this.wrappedProvider.exportWallet !== 'function') {\n throw new Error('Wallet export is not available for this wallet.');\n }\n await this.wrappedProvider.exportWallet(address);\n }\n // ============ signMessage delegates to wrapped provider ============\n async signMessage(message) {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = this.config).onSigningStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n try {\n // On RN (no DOM), auto-confirm — there's no modal to show.\n // On web, show the confirmation modal.\n if (getPlatform().hasDOM) {\n const confirmed = await this.showTransactionModal(message);\n if (!confirmed) {\n throw new Error(\"Transaction rejected by user\");\n }\n }\n const signature = await this.wrappedProvider.signMessage(message);\n // Callback: signing complete\n (_d = (_c = this.config).onSigningComplete) === null || _d === void 0 ? void 0 : _d.call(_c, signature);\n return signature;\n }\n catch (error) {\n (_f = (_e = this.config).onSigningError) === null || _f === void 0 ? void 0 : _f.call(_e, error);\n throw error;\n }\n }\n // ============ Modal Implementation ============\n async showUnsupportedTransactionModal() {\n return new Promise((resolve) => {\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-unsupported-modal\";\n this.modalContainer.appendChild(this.buildUnsupportedModalContent());\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle cancel button\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve();\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve();\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n async showTransactionModal(message) {\n return new Promise((resolve) => {\n // Parse the transaction message for display\n let parsed = {};\n try {\n parsed = JSON.parse(message);\n }\n catch (_a) {\n // If not JSON, just show raw message\n }\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-tx-modal\";\n this.modalContainer.appendChild(this.buildTransactionModalContent(parsed, message));\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert to disable focus traps from other modals\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle confirm\n const confirmBtn = this.modalContainer.querySelector(\"#poofnet-confirm-btn\");\n confirmBtn === null || confirmBtn === void 0 ? void 0 : confirmBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(true);\n });\n // Handle cancel\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve(false);\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve(false);\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n closeModal() {\n if (this.modalContainer) {\n // Remove inert attribute from all elements\n document.body.querySelectorAll(\"[inert]\").forEach((el) => {\n el.removeAttribute(\"inert\");\n });\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n const content = this.modalContainer.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"0\";\n if (content) {\n content.style.opacity = \"0\";\n content.style.transform = \"translateY(20px)\";\n }\n setTimeout(() => {\n var _a;\n (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.remove();\n this.modalContainer = null;\n }, 200);\n }\n }\n createElement(tag, className, text) {\n const el = document.createElement(tag);\n if (className)\n el.className = className;\n if (text !== undefined)\n el.textContent = text;\n return el;\n }\n appendTextElement(parent, tag, className, text) {\n const el = this.createElement(tag, className, text);\n parent.appendChild(el);\n return el;\n }\n buildModalShell(icon, title) {\n const overlay = this.createElement(\"div\", \"poofnet-modal-overlay\");\n const content = this.createElement(\"div\", \"poofnet-modal-content\");\n overlay.appendChild(content);\n const close = this.createElement(\"button\", \"poofnet-close-btn\", \"×\");\n close.id = \"poofnet-close-btn\";\n close.setAttribute(\"aria-label\", \"Close\");\n close.type = \"button\";\n content.appendChild(close);\n const header = this.createElement(\"div\", \"poofnet-modal-header\");\n this.appendTextElement(header, \"div\", \"poofnet-modal-icon\", icon);\n this.appendTextElement(header, \"h2\", \"poofnet-modal-title\", title);\n this.appendTextElement(header, \"p\", \"poofnet-modal-subtitle\", \"Poofnet Simulated Blockchain\");\n content.appendChild(header);\n const body = this.createElement(\"div\", \"poofnet-modal-body\");\n content.appendChild(body);\n const footer = this.createElement(\"div\", \"poofnet-modal-footer\");\n content.appendChild(footer);\n return { overlay, body, footer };\n }\n buildInfoBox(text, warning = false) {\n const info = this.createElement(\"div\", \"poofnet-info-box\");\n if (warning)\n info.style.background = \"#fef3c7\";\n this.appendTextElement(info, \"span\", \"poofnet-info-icon\", \"ℹ️\");\n const infoText = this.createElement(\"span\", \"poofnet-info-text\", text);\n if (warning)\n infoText.style.color = \"#92400e\";\n info.appendChild(infoText);\n return info;\n }\n buildUnsupportedModalContent() {\n const { overlay, body, footer } = this.buildModalShell(\"⚠️\", \"Transaction Not Supported\");\n body.appendChild(this.buildInfoBox(\"Poofnet is a simulated blockchain and does not support real Solana transactions. Deploy your project to mainnet to test real transactions.\", true));\n const close = this.createElement(\"button\", \"poofnet-btn poofnet-btn-cancel\", \"Close\");\n close.id = \"poofnet-cancel-btn\";\n close.type = \"button\";\n close.style.flex = \"1\";\n footer.appendChild(close);\n return overlay;\n }\n formatPath(path) {\n const parts = path.split(\"/\").filter(Boolean);\n if (parts.length >= 2) {\n return {\n collection: parts[0],\n documentId: parts[parts.length - 1],\n };\n }\n return { collection: parts[0] || path, documentId: null };\n }\n formatFieldValue(value) {\n if (value === null || value === undefined)\n return \"null\";\n if (typeof value === \"string\") {\n return value.length > 30\n ? `\"${value.slice(0, 30)}...\"`\n : `\"${value}\"`;\n }\n if (typeof value === \"number\" || typeof value === \"boolean\")\n return String(value);\n if (Array.isArray(value))\n return `[${value.length} items]`;\n if (typeof value === \"object\")\n return `{${Object.keys(value).length} fields}`;\n return String(value);\n }\n getActionDescription(type, collection, isNew) {\n if (type === \"delete\")\n return `Delete from ${collection}`;\n return isNew ? `Create in ${collection}` : `Update ${collection}`;\n }\n buildTransactionModalContent(parsed, rawMessage) {\n const instructions = parsed.instructions || [];\n // Group instructions by type for summary\n const sets = instructions.filter((i) => i.type === \"set\");\n const deletes = instructions.filter((i) => i.type === \"delete\");\n // Create summary text\n let summaryText = \"\";\n if (sets.length > 0 && deletes.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}, ${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n else if (sets.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}`;\n }\n else if (deletes.length > 0) {\n summaryText = `${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n const { overlay, body, footer } = this.buildModalShell(\"🔐\", \"Confirm Transaction\");\n if (instructions.length > 0) {\n if (summaryText) {\n this.appendTextElement(body, \"div\", \"poofnet-summary\", summaryText);\n }\n const list = this.createElement(\"div\", \"poofnet-instructions-list\");\n for (const inst of instructions) {\n list.appendChild(this.buildInstructionElement(inst));\n }\n body.appendChild(list);\n }\n else {\n const section = this.createElement(\"div\", \"poofnet-section\");\n this.appendTextElement(section, \"h3\", \"poofnet-section-title\", \"Message\");\n const raw = this.createElement(\"pre\", \"poofnet-raw-message\", rawMessage.slice(0, 200) + (rawMessage.length > 200 ? \"...\" : \"\"));\n section.appendChild(raw);\n body.appendChild(section);\n }\n body.appendChild(this.buildInfoBox(\"This is a simulated transaction. No real fees will be charged.\"));\n const cancel = this.createElement(\"button\", \"poofnet-btn poofnet-btn-cancel\", \"Cancel\");\n cancel.id = \"poofnet-cancel-btn\";\n cancel.type = \"button\";\n footer.appendChild(cancel);\n const confirm = this.createElement(\"button\", \"poofnet-btn poofnet-btn-confirm\", \"Confirm\");\n confirm.id = \"poofnet-confirm-btn\";\n confirm.type = \"button\";\n footer.appendChild(confirm);\n return overlay;\n }\n buildInstructionElement(inst) {\n const { collection, documentId } = this.formatPath(inst.path);\n const isDelete = inst.type === \"delete\";\n const card = this.createElement(\"div\", `poofnet-instruction ${isDelete ? \"poofnet-action-delete\" : \"poofnet-action-set\"}`);\n const header = this.createElement(\"div\", \"poofnet-instruction-header\");\n this.appendTextElement(header, \"span\", \"poofnet-instruction-icon\", isDelete ? \"🗑️\" : \"✏️\");\n this.appendTextElement(header, \"span\", \"poofnet-instruction-action\", isDelete ? \"Delete\" : \"Save\");\n this.appendTextElement(header, \"span\", \"poofnet-instruction-collection\", collection);\n card.appendChild(header);\n if (documentId) {\n this.appendTextElement(card, \"div\", \"poofnet-instruction-id\", `ID: ${documentId}`);\n }\n if (inst.data && !isDelete) {\n const fieldKeys = Object.keys(inst.data).filter((key) => !key.startsWith(\"_\"));\n const visibleFields = fieldKeys.slice(0, 4);\n if (visibleFields.length > 0) {\n const fields = this.createElement(\"div\", \"poofnet-fields\");\n for (const key of visibleFields) {\n const row = this.createElement(\"div\", \"poofnet-field\");\n this.appendTextElement(row, \"span\", \"poofnet-field-key\", `${key}:`);\n this.appendTextElement(row, \"span\", \"poofnet-field-value\", this.formatFieldValue(inst.data[key]));\n fields.appendChild(row);\n }\n if (fieldKeys.length > 4) {\n this.appendTextElement(fields, \"div\", \"poofnet-field-more\", `+${fieldKeys.length - 4} more fields`);\n }\n card.appendChild(fields);\n }\n }\n return card;\n }\n getModalStyles() {\n return `\n /* Ensure inert elements remain visible while being non-interactive */\n [inert] {\n visibility: visible !important;\n opacity: 1 !important;\n display: unset !important;\n }\n\n .poofnet-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 999999;\n opacity: 0;\n transition: opacity 0.2s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .poofnet-modal-content {\n background: white;\n border-radius: 16px;\n width: 90%;\n max-width: 420px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n opacity: 0;\n transform: translateY(20px);\n transition: all 0.2s ease;\n max-height: 90vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n }\n\n .poofnet-close-btn {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 28px;\n height: 28px;\n border: none;\n background: #f3f4f6;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.15s ease;\n z-index: 1;\n }\n\n .poofnet-close-btn:hover {\n background: #e5e7eb;\n color: #374151;\n }\n\n .poofnet-modal-header {\n padding: 24px 24px 16px;\n text-align: center;\n border-bottom: 1px solid #f0f0f0;\n flex-shrink: 0;\n }\n\n .poofnet-modal-icon {\n font-size: 40px;\n margin-bottom: 8px;\n }\n\n .poofnet-modal-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1a1a1a;\n }\n\n .poofnet-modal-subtitle {\n margin: 4px 0 0;\n font-size: 13px;\n color: #8b5cf6;\n font-weight: 500;\n }\n\n .poofnet-modal-body {\n padding: 16px 20px;\n overflow-y: auto;\n flex: 1;\n }\n\n .poofnet-summary {\n font-size: 13px;\n color: #6b7280;\n margin-bottom: 12px;\n text-align: center;\n }\n\n .poofnet-section {\n margin-bottom: 16px;\n }\n\n .poofnet-section-title {\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 8px;\n }\n\n .poofnet-instructions-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .poofnet-instruction {\n background: #f9fafb;\n border-radius: 10px;\n padding: 12px;\n border-left: 3px solid #8b5cf6;\n }\n\n .poofnet-instruction.poofnet-action-delete {\n border-left-color: #ef4444;\n }\n\n .poofnet-instruction-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .poofnet-instruction-icon {\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .poofnet-instruction-action {\n font-size: 13px;\n font-weight: 600;\n color: #8b5cf6;\n }\n\n .poofnet-action-delete .poofnet-instruction-action {\n color: #ef4444;\n }\n\n .poofnet-instruction-collection {\n font-size: 13px;\n font-weight: 500;\n color: #374151;\n }\n\n .poofnet-instruction-id {\n font-size: 11px;\n color: #9ca3af;\n font-family: monospace;\n margin-bottom: 8px;\n word-break: break-all;\n }\n\n .poofnet-fields {\n background: white;\n border-radius: 6px;\n padding: 8px 10px;\n margin-top: 8px;\n }\n\n .poofnet-field {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n border-bottom: 1px solid #f3f4f6;\n }\n\n .poofnet-field:last-child {\n border-bottom: none;\n }\n\n .poofnet-field-key {\n color: #6b7280;\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .poofnet-field-value {\n color: #374151;\n word-break: break-all;\n }\n\n .poofnet-field-more {\n font-size: 11px;\n color: #9ca3af;\n padding-top: 4px;\n font-style: italic;\n }\n\n .poofnet-raw-message {\n background: #f9fafb;\n border-radius: 8px;\n padding: 12px;\n font-size: 11px;\n font-family: monospace;\n color: #4b5563;\n white-space: pre-wrap;\n word-break: break-all;\n margin: 0;\n max-height: 120px;\n overflow-y: auto;\n }\n\n .poofnet-info-box {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #faf5ff;\n border-radius: 8px;\n padding: 10px 12px;\n margin-top: 12px;\n }\n\n .poofnet-info-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .poofnet-info-text {\n font-size: 11px;\n color: #7c3aed;\n line-height: 1.4;\n }\n\n .poofnet-modal-footer {\n padding: 16px 20px 20px;\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n border-top: 1px solid #f0f0f0;\n }\n\n .poofnet-btn {\n flex: 1;\n padding: 12px 16px;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n border: none;\n }\n\n .poofnet-btn-cancel {\n background: #f3f4f6;\n color: #4b5563;\n }\n\n .poofnet-btn-cancel:hover {\n background: #e5e7eb;\n }\n\n .poofnet-btn-confirm {\n background: #8b5cf6;\n color: white;\n }\n\n .poofnet-btn-confirm:hover {\n background: #7c3aed;\n }\n `;\n }\n}\n","export const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nconst SUPPORTED_SOLANA_NETWORKS = new Set([\n \"solana_devnet\",\n \"solana_mainnet\",\n]);\nexport function normalizeSolanaRpcUrl(rpcUrl) {\n if (typeof rpcUrl !== \"string\")\n return null;\n const trimmed = rpcUrl.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\nexport function isSupportedSolanaRpcNetwork(network) {\n return typeof network === \"string\" && SUPPORTED_SOLANA_NETWORKS.has(network);\n}\nexport function resolveSolanaWalletStandardChain(network, context) {\n switch (network) {\n case \"solana_devnet\":\n return \"solana:devnet\";\n case \"solana_mainnet\":\n return \"solana:mainnet\";\n case undefined:\n case null:\n case \"\":\n throw new Error(`${context} requires an explicit Solana network. ` +\n `Provide one of: solana_devnet, solana_mainnet.`);\n default:\n throw new Error(`${context} does not support Solana network \"${network}\". ` +\n `Expected one of: solana_devnet, solana_mainnet.`);\n }\n}\nexport function resolveSolanaRpcUrl(explicitRpcUrl, network, context) {\n if (network != null && network !== \"\" && !isSupportedSolanaRpcNetwork(network)) {\n throw new Error(`${context} does not support Solana network \"${network}\". ` +\n `Expected one of: solana_devnet, solana_mainnet.`);\n }\n const rpcUrl = normalizeSolanaRpcUrl(explicitRpcUrl);\n if (rpcUrl)\n return rpcUrl;\n throw new Error(`${context} requires an explicit Solana RPC URL. Pass config.rpcUrl before signing or submitting onchain transactions.`);\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Find code of next character\n var charCode = source.charCodeAt(psz)\n // Base map can not be indexed using char code\n if (charCode > 255) { return }\n // Decode character\n var carry = BASE_MAP[charCode]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","import basex from 'base-x';\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport default basex(ALPHABET);\n","// crossmint-signer-bridge.ts — routes embedded-wallet signing through the\n// Bounded-owned signer popup (auth.bounded.sh/wallet/signer).\n//\n// Slice-1 attached a non-custodial Crossmint smart wallet to email logins and\n// populated `@user.address`. This bridge is the slice-2 counterpart: a user\n// whose address came from `auth.wallets` can APPROVE transactions with that\n// wallet from ANY app, non-custodially, by having the Crossmint client SDK run\n// ONLY on the Bounded signer page (one whitelisted origin) and talking to it via\n// postMessage.\n//\n// SEMANTICS (Crossmint Solana smart wallets): these wallets cannot produce raw\n// detached signatures — there is no signMessage and no sign-without-submit. The\n// only honest primitive is EXECUTION (sign + submit) via the wallet's email-OTP\n// authorization. So this bridge implements `signAndSubmitTransaction` and a\n// token-send; `signMessage` / `signTransaction` throw a clear unsupported error.\nimport { assertCanonicalBoundedRuntimeWriteCalldata, getConfig, getActiveSessionManager, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport bs58 from 'bs58';\nexport const EMBEDDED_WALLET_UNSUPPORTED = 'Unsupported for embedded smart wallets — Crossmint Solana smart wallets sign ' +\n 'and submit atomically. Use signAndSubmitTransaction() (or bounded.sendWalletToken) ' +\n 'instead of signMessage/signTransaction.';\nconst NO_EMBEDDED_WALLET = 'This login has no embedded wallet. Enable `\"auth\": { \"wallets\": true }` in ' +\n 'the app policy so email logins get a non-custodial wallet (@user.address), ' +\n 'then sign from a user gesture.';\nfunction hasDOM() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction decodeJwt(token) {\n try {\n let b64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return JSON.parse(Buffer.from(b64, 'base64').toString('utf8'));\n }\n catch (_a) {\n return {};\n }\n}\n// Pull the embedded-wallet identity out of the active session's id token.\n// Returns null when this session has no wallet (so callers can throw the\n// informative NO_EMBEDDED_WALLET error).\nfunction walletClaimsFromSession(chain = 'solana') {\n let idToken = null;\n try {\n idToken = getActiveSessionManager().getIdToken();\n }\n catch (_a) {\n idToken = null;\n }\n if (!idToken)\n return null;\n const c = decodeJwt(idToken);\n const address = c['custom:walletAddress'];\n const evmAddress = c['custom:evmWalletAddress'];\n const email = c['email'];\n if (typeof email !== 'string' || !email)\n return null;\n if (chain === 'solana' && (typeof address !== 'string' || !address))\n return null;\n if (chain === 'evm' && (typeof evmAddress !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(evmAddress)))\n return null;\n const envClaim = c['custom:walletEnvironment'];\n const environment = envClaim === 'staging' || envClaim === 'production' ? envClaim : undefined;\n return Object.assign(Object.assign(Object.assign({ email }, (typeof address === 'string' && address ? { address } : {})), (typeof evmAddress === 'string' ? { evmAddress: evmAddress.toLowerCase() } : {})), { environment });\n}\nasync function signerPageUrl() {\n const cfg = await getConfig();\n const base = (cfg.humanAuthApiUrl || 'https://auth.bounded.sh').replace(/\\/$/, '');\n return { url: `${base}/wallet/signer`, origin: new URL(base).origin };\n}\nlet requestSeq = 0;\n/**\n * Open the Bounded signer popup, send `action` to it, and resolve with the\n * submitted transaction result. Must be called from a USER GESTURE (click/tap) or\n * the browser will block the popup — in which case this rejects with a clear\n * \"Popup blocked\" error telling the app to call from a user gesture.\n *\n * Non-custodial: the popup gates signing behind an email OTP delivered to the\n * wallet's owner, and validates that the wallet address matches the account.\n */\nexport async function signViaSignerPopup(action) {\n if (!hasDOM()) {\n throw new Error('Embedded-wallet signing is only available in the browser (popup-based).');\n }\n const isEvm = action.kind === 'evmTransaction';\n const claims = walletClaimsFromSession(isEvm ? 'evm' : 'solana');\n if (!claims)\n throw new Error(NO_EMBEDDED_WALLET);\n const { url, origin: signerOrigin } = await signerPageUrl();\n const requestId = `bsign_${Date.now()}_${++requestSeq}`;\n // Centered popup, sized for the OTP form (matches the OIDC login popup shape).\n const w = 420, h = 600;\n const left = window.screenX + Math.max(0, (window.outerWidth - w) / 2);\n const top = window.screenY + Math.max(0, (window.outerHeight - h) / 2);\n const popup = window.open(url, 'bounded-wallet-signer', `width=${w},height=${h},left=${left},top=${top}`);\n if (!popup) {\n throw new Error('Popup blocked — call signAndSubmitTransaction() from a user gesture (e.g. a click handler) so the wallet approval window can open.');\n }\n const request = {\n type: 'bounded:sign',\n requestId,\n environment: claims.environment, // may be undefined → page auto-detects\n email: claims.email,\n address: isEvm ? claims.evmAddress : claims.address,\n action,\n };\n return await new Promise((resolve, reject) => {\n let settled = false;\n let closeTimer;\n let sentRequest = false;\n const cleanup = () => {\n settled = true;\n window.removeEventListener('message', onMsg);\n if (closeTimer)\n clearInterval(closeTimer);\n };\n const sendRequest = () => {\n if (sentRequest)\n return;\n sentRequest = true;\n try {\n popup.postMessage(request, signerOrigin);\n }\n catch ( /* popup gone */_a) { /* popup gone */ }\n };\n const onMsg = (ev) => {\n if (ev.origin !== signerOrigin)\n return; // only trust the signer page origin\n if (ev.source !== popup)\n return; // only trust this signer popup window\n const d = ev.data;\n if (!d || typeof d !== 'object')\n return;\n if (d.type === 'bounded:signer:ready') {\n sendRequest();\n return;\n }\n if (d.type === 'bounded:signer:result' && d.requestId === requestId) {\n cleanup();\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n if (d.ok)\n resolve({ hash: d.hash, explorerLink: d.explorerLink, transactionId: d.transactionId });\n else\n reject(new Error(String(d.error || 'Wallet signing failed')));\n }\n };\n window.addEventListener('message', onMsg);\n // Fallback: if the ready ping was missed (fast load / focus race), push the\n // request shortly after opening. The page ignores it until a bounded:sign\n // arrives and only acts on the first one, so a duplicate is harmless.\n setTimeout(sendRequest, 1200);\n // If the user closes the popup before completing, reject (unless a result\n // just arrived — give any in-flight message a beat to settle first).\n closeTimer = setInterval(() => {\n if (popup.closed) {\n clearInterval(closeTimer);\n setTimeout(() => { if (!settled) {\n cleanup();\n reject(new Error('Wallet approval window was closed before signing completed.'));\n } }, 400);\n }\n }, 500);\n // Overall safety timeout (OTP + signing). Generous — the user may take a\n // while to fetch the code from their email.\n setTimeout(() => { if (!settled) {\n cleanup();\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n reject(new Error('Wallet approval timed out.'));\n } }, 5 * 60 * 1000);\n });\n}\n// Serialize a legacy or versioned Solana transaction to BASE58 for the signer\n// page. Crossmint's smart-wallet createTransaction endpoint requires the\n// `serializedTransaction` string to be base58 — it rejects base64 with\n// \"Invalid base58 string\" (verified against Crossmint staging 2026-07-07). The\n// `wallets-sdk` object path bs58-encodes internally, so base58 is the contract.\n//\n// We do NOT require existing signatures (the smart wallet signs on the page);\n// Crossmint extracts the instructions, overrides the fee payer to its sponsor,\n// and re-wraps them for the smart wallet.\nfunction serializeTransaction(transaction) {\n const isLegacy = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n const bytes = isLegacy\n ? transaction.serialize({ requireAllSignatures: false, verifySignatures: false })\n : transaction.serialize();\n return bs58.encode(bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes));\n}\n/**\n * Whether the active session carries an embedded wallet (so the provider should\n * route signing through the popup rather than throw \"no wallet\").\n */\nexport function hasEmbeddedWallet() {\n return walletClaimsFromSession() != null;\n}\n/** Whether the active email/social session carries an embedded Crossmint EVM wallet. */\nexport function hasEmbeddedEvmWallet() {\n return walletClaimsFromSession('evm') != null;\n}\n/** signAndSubmitTransaction for embedded wallets: serialize + route through the\n * signer popup, resolve with the on-chain transaction signature/hash. */\nexport async function embeddedSignAndSubmit(transaction) {\n const serializedTransaction = serializeTransaction(transaction);\n const result = await signViaSignerPopup({ kind: 'transaction', serializedTransaction });\n const hash = result.hash || result.transactionId;\n if (!hash)\n throw new Error('Signer returned no transaction hash.');\n return hash;\n}\n/** Send a token from the embedded wallet (Crossmint `wallet.send`). Convenience\n * primitive for the common \"send crypto\" case; returns the tx result. */\nexport async function embeddedSendToken(recipient, token, amount) {\n return await signViaSignerPopup({ kind: 'sendToken', recipient, token, amount });\n}\n/** Submit a validated BoundedRuntime EVM write through the user's email signer. */\nexport async function embeddedRunEvmTransaction(transaction) {\n var _a, _b;\n if (!transaction.to || !transaction.data || !transaction.chainId)\n throw new Error('Incomplete embedded EVM transaction');\n if (!/^0x[0-9a-fA-F]{40}$/.test(transaction.to))\n throw new Error('Invalid embedded EVM runtime address');\n assertCanonicalBoundedRuntimeWriteCalldata(transaction.data);\n if (!Number.isSafeInteger(transaction.chainId) || transaction.chainId <= 0)\n throw new Error('Invalid embedded EVM chain id');\n if (transaction.nonce !== undefined)\n throw new Error('Server-supplied EVM nonces are not accepted');\n try {\n if (BigInt((_a = transaction.value) !== null && _a !== void 0 ? _a : '0') !== BigInt(0))\n throw new Error('Bounded EVM writes cannot transfer native value');\n }\n catch (error) {\n if (error instanceof Error && error.message.includes('cannot transfer'))\n throw error;\n throw new Error('Invalid embedded EVM transaction value');\n }\n const result = await signViaSignerPopup({\n kind: 'evmTransaction',\n transaction: { to: transaction.to, data: transaction.data, value: (_b = transaction.value) !== null && _b !== void 0 ? _b : '0', chainId: transaction.chainId },\n });\n const hash = result.hash || result.transactionId;\n if (!hash)\n throw new Error('Signer returned no EVM transaction hash.');\n return { transactionSignature: hash, blockNumber: 0, gasUsed: '0', data: result };\n}\n","import { getConfig, getActiveSessionManager } from '@bounded-sh/core';\nimport { setCurrentUser, setAuthLoading, setAuthProviderInstance } from '../global';\nimport { getPlatform } from '../platform';\nimport { hasEmbeddedWallet, hasEmbeddedEvmWallet, embeddedSignAndSubmit, embeddedRunEvmTransaction, EMBEDDED_WALLET_UNSUPPORTED, } from './crossmint-signer-bridge';\n// Same message the email provider uses when a hosted (OIDC) login has no\n// embedded wallet — enable `auth.wallets` in policy to get one.\nconst OIDC_NO_WALLET = 'This login has no embedded wallet. Enable `\"auth\": { \"wallets\": true }` in ' +\n 'the app policy so logins get a non-custodial Crossmint wallet (@user.address), ' +\n 'then sign from a user gesture.';\nconst PKCE_STORE_KEY = 'bounded.oidc.pkce';\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\n// Active session store (Web on web, RN on React Native) — selected by config,\n// not by `typeof window` (truthy on RN). OIDC redirect/popup is web-only, but the\n// session it mints is read back through this same selector everywhere.\nconst sessionManager = getActiveSessionManager;\nfunction hasDOM() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction decodeJwt(token) {\n try {\n let b64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return JSON.parse(getPlatform().atob(b64));\n }\n catch (_a) {\n return {};\n }\n}\n// A minimal AuthProvider so getSession()/logout() work for OIDC sessions, mirroring email.\n// Signing surface (slice 2): a hosted login on a wallets-enabled app carries an\n// embedded Crossmint wallet (@user.address). signAndSubmitTransaction routes\n// through the Bounded signer popup; signMessage/signTransaction are structurally\n// unsupported for Crossmint smart wallets (sign+submit atomically, no raw sig).\nconst oidcProviderSingleton = {\n async login() {\n const idToken = sessionManager().getIdToken();\n return idToken ? userFromIdToken(idToken) : null;\n },\n async getUser() {\n const idToken = sessionManager().getIdToken();\n return idToken ? userFromIdToken(idToken) : null;\n },\n async logout() { sessionManager().clearSession(); },\n async signMessage(_message) {\n throw new Error(hasEmbeddedWallet() ? EMBEDDED_WALLET_UNSUPPORTED : OIDC_NO_WALLET);\n },\n async signTransaction(_t) {\n throw new Error(hasEmbeddedWallet() ? EMBEDDED_WALLET_UNSUPPORTED : OIDC_NO_WALLET);\n },\n async runTransaction(evm, sol, options) {\n if (evm && sol)\n throw new Error('A transaction cannot target EVM and Solana at the same time.');\n if (!evm)\n throw new Error(OIDC_NO_WALLET);\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false)\n throw new Error('Embedded EVM wallets sign and submit atomically; shouldSubmitTx:false is unsupported.');\n if (!hasEmbeddedEvmWallet())\n throw new Error('This login has no embedded EVM wallet. Enable auth.wallets on an app with an EVM collection and sign in again.');\n return embeddedRunEvmTransaction(evm);\n },\n async signAndSubmitTransaction(transaction, _feePayer) {\n if (!hasEmbeddedWallet())\n throw new Error(OIDC_NO_WALLET);\n return embeddedSignAndSubmit(transaction);\n },\n};\nfunction userFromIdToken(idToken) {\n const c = decodeJwt(idToken);\n const id = c['custom:userId'] || c.sub || c['custom:walletAddress'] || '';\n return {\n id, address: (c['custom:walletAddress'] || null),\n evmAddress: typeof c['custom:evmWalletAddress'] === 'string' && /^0x[0-9a-fA-F]{40}$/.test(c['custom:evmWalletAddress'])\n ? c['custom:evmWalletAddress'].toLowerCase()\n : null,\n email: (c.email || null), provider: oidcProviderSingleton,\n };\n}\nfunction tokenField(data, snake, camel) {\n var _a;\n const value = (_a = data === null || data === void 0 ? void 0 : data[snake]) !== null && _a !== void 0 ? _a : data === null || data === void 0 ? void 0 : data[camel];\n return typeof value === 'string' ? value : '';\n}\nfunction boundedRefreshTokenField(data) {\n for (const key of ['bounded_refresh_token', 'boundedRefreshToken', 'refreshToken']) {\n const value = data === null || data === void 0 ? void 0 : data[key];\n if (typeof value === 'string' && value.length > 0)\n return value;\n }\n return '';\n}\nasync function issuerBase() {\n const cfg = await getConfig();\n return (cfg.humanAuthApiUrl || 'https://auth.bounded.sh').replace(/\\/$/, '');\n}\n// Base64url-encode raw bytes via the platform abstraction (web: window.btoa;\n// RN/Node: the polyfilled/Buffer btoa supplied by getPlatform()). On web this is\n// byte-identical to the previous direct `btoa(...)` call.\nfunction b64url(buf) {\n let s = '';\n const bytes = buf instanceof Uint8Array ? buf : new Uint8Array(buf);\n for (let i = 0; i < bytes.length; i++)\n s += String.fromCharCode(bytes[i]);\n return getPlatform().btoa(s).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n// PKCE verifier + S256 challenge, fully platform-neutral: random bytes and the\n// SHA-256 digest both come from getPlatform() (web → WebCrypto, RN → polyfill/\n// expo-crypto). Web output is identical to the previous raw-crypto path.\nasync function makePkce() {\n const rnd = getPlatform().getRandomBytes(32);\n const verifier = b64url(rnd);\n const digest = await getPlatform().sha256(getPlatform().textEncode(verifier));\n return { verifier, challenge: b64url(digest) };\n}\nfunction randomState() {\n return b64url(getPlatform().getRandomBytes(16));\n}\nfunction normalizeMethod(value) {\n const normalized = String(value || '').trim().toLowerCase();\n return /^[a-z0-9_-]{1,40}$/.test(normalized) ? normalized : null;\n}\nfunction appendHostedLoginHints(params, opts) {\n const methods = (opts.methods || [])\n .map((method) => normalizeMethod(method))\n .filter((method) => !!method);\n if (methods.length > 0) {\n params.set('bounded_methods', Array.from(new Set(methods)).join(','));\n }\n const provider = normalizeMethod(opts.provider);\n if (provider)\n params.set('bounded_provider', provider);\n // Standard OIDC prompt (e.g. 'login' to force a fresh sign-in / account choice).\n const prompt = normalizeMethod(opts.prompt);\n if (prompt)\n params.set('prompt', prompt);\n}\n// Build the authorize URL + the PKCE state that pairs with it. PURE: no storage,\n// no navigation — so it's shared verbatim by the web redirect/popup paths and the\n// native (expo-web-browser) path. The caller decides where the PkceState lives\n// (web → sessionStorage across the full-page redirect; native → in-memory across\n// the awaited browser session).\nasync function buildAuthorize(opts) {\n const cfg = await getConfig();\n if (!cfg.appId)\n throw new Error('appId is not configured (init the SDK with your appId)');\n // Web: default to the current page so callers don't have to pass redirectUri. Native has no\n // window — it MUST pass an https universal link (the system auth session needs a real URL).\n const redirectUri = opts.redirectUri || (hasDOM() ? window.location.origin + window.location.pathname : undefined);\n if (!redirectUri)\n throw new Error('redirectUri is required on React Native — pass the https universal link the app owner registered.');\n const { verifier, challenge } = await makePkce();\n const state = randomState();\n const base = await issuerBase();\n const params = new URLSearchParams({\n client_id: cfg.appId, redirect_uri: redirectUri, response_type: 'code', scope: 'openid profile email',\n code_challenge: challenge, code_challenge_method: 'S256', state,\n });\n appendHostedLoginHints(params, opts);\n return { url: `${base}/api/auth/oauth2/authorize?${params.toString()}`, pkce: { verifier, state, redirectUri } };\n}\n// Are we on React Native (no DOM)? OIDC dispatch uses this to choose the native\n// expo-web-browser driver vs. the web full-page-redirect/popup driver.\nfunction isNative() {\n return !getPlatform().hasDOM;\n}\n// ---------------------------------------------------------------------------\n// Native (React Native / Expo) redirect driver\n// ---------------------------------------------------------------------------\n// Lazily load expo-web-browser. It's an OPTIONAL peer dep — imported dynamically\n// so the web/Node bundle never requires it. Throws an actionable error if a native\n// app calls hosted login without installing it.\nasync function loadExpoWebBrowser() {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n return await import('expo-web-browser');\n }\n catch (_a) {\n throw new Error('React Native hosted login requires the optional peer dependency \"expo-web-browser\". ' +\n 'Install it with `npx expo install expo-web-browser` (and `expo-crypto`), then retry.');\n }\n}\n// Parse code/state out of the universal-link callback URL. Hand-rolled (no `new URL()`)\n// because React Native's URL implementation is non-spec-compliant for query parsing.\nfunction parseCallbackParams(callbackUrl) {\n var _a, _b;\n const qIndex = callbackUrl.indexOf('?');\n if (qIndex < 0)\n return { code: null, state: null };\n const query = callbackUrl.slice(qIndex + 1).split('#')[0];\n const out = {};\n for (const part of query.split('&')) {\n if (!part)\n continue;\n const eq = part.indexOf('=');\n const k = eq < 0 ? part : part.slice(0, eq);\n const v = eq < 0 ? '' : part.slice(eq + 1);\n try {\n out[decodeURIComponent(k)] = decodeURIComponent(v.replace(/\\+/g, ' '));\n }\n catch (_c) {\n out[k] = v;\n }\n }\n return { code: (_a = out['code']) !== null && _a !== void 0 ? _a : null, state: (_b = out['state']) !== null && _b !== void 0 ? _b : null };\n}\n// Full native login: open the hosted page in the system auth session, await the\n// universal-link callback, verify state, and run the SAME PKCE code→token exchange\n// as web. Returns the signed-in User (native completes inline — there's no separate\n// completeLoginFromRedirect() round-trip the way the web full-page redirect needs).\nasync function runNativeLogin(opts) {\n var _a, _b;\n const { url, pkce } = await buildAuthorize(opts);\n const WebBrowser = await loadExpoWebBrowser();\n const openAuthSession = WebBrowser.openAuthSessionAsync || ((_a = WebBrowser.default) === null || _a === void 0 ? void 0 : _a.openAuthSessionAsync);\n if (typeof openAuthSession !== 'function') {\n throw new Error('expo-web-browser.openAuthSessionAsync is unavailable — update expo-web-browser.');\n }\n setAuthLoading(true);\n try {\n // openAuthSessionAsync keeps JS alive while the system browser is shown, then\n // resolves with the callback URL once the universal link fires — so `pkce`\n // stays in scope and never needs to be persisted.\n const result = await openAuthSession(url, opts.redirectUri);\n if (!result || result.type === 'cancel' || result.type === 'dismiss') {\n throw new Error('Login cancelled');\n }\n if (result.type !== 'success' || typeof result.url !== 'string') {\n throw new Error(`Hosted login did not complete (result: ${(_b = result === null || result === void 0 ? void 0 : result.type) !== null && _b !== void 0 ? _b : 'unknown'})`);\n }\n const { code, state: returnedState } = parseCallbackParams(result.url);\n if (!code)\n throw new Error('No authorization code in the callback URL');\n if (!returnedState || returnedState !== pkce.state) {\n throw new Error('OAuth state mismatch — possible CSRF; aborting');\n }\n return await exchangeCode(code, pkce.verifier, pkce.redirectUri);\n }\n finally {\n setAuthLoading(false);\n }\n}\n/** Start hosted login (Google / Apple / email / hosted phone). Works on WEB and REACT NATIVE.\n *\n * WEB: navigates the whole page to the hosted Bounded login and resolves (void) as the page\n * unloads; on return to `redirectUri?code=...` you call completeLoginFromRedirect().\n *\n * REACT NATIVE: opens the hosted page via expo-web-browser, awaits the https universal-link\n * callback, runs the PKCE exchange INLINE, and resolves with the signed-in User. No\n * completeLoginFromRedirect() call is needed on native. Requires `redirectUri` to be an\n * https UNIVERSAL LINK whose origin the app owner registered in the app's allowedOrigins\n * (custom `myapp://` schemes are rejected by the issuer). Needs the optional peer deps\n * expo-web-browser + (expo-crypto or react-native-get-random-values). */\nexport async function loginWithRedirect(opts) {\n if (isNative())\n return runNativeLogin(opts);\n if (!hasDOM())\n throw new Error('loginWithRedirect requires a browser or a configured React Native platform');\n const { url, pkce } = await buildAuthorize(opts);\n // Stash the verifier + state so the redirect_uri page can finish the exchange. sessionStorage\n // is per-tab and cleared on close — appropriate for a short-lived auth handshake.\n sessionStorage.setItem(PKCE_STORE_KEY, JSON.stringify(pkce));\n setAuthLoading(true); // reflect \"signing in…\" right up to navigation; the return page's\n window.location.href = url; // completeLoginFromRedirect() keeps it true until the user resolves.\n}\n/** Finish login on the redirect_uri page (WEB ONLY): exchange ?code= for a token (PKCE-verified),\n * store the session, and return the User. Idempotent: returns null if there's no ?code= in the URL.\n *\n * On REACT NATIVE this returns null and is a no-op: native login completes INLINE inside\n * loginWithRedirect() (which resolves with the User), so there is no separate redirect\n * page to finish from. Calling it on RN is harmless. */\nexport async function completeLoginFromRedirect() {\n if (!hasDOM())\n return null;\n const url = new URL(window.location.href);\n const code = url.searchParams.get('code');\n const returnedState = url.searchParams.get('state');\n if (!code)\n return null;\n // POPUP path: if we're the redirect_uri page running INSIDE the loginWithPopup() window,\n // hand the code to the opener and close — no separate completeLoginInPopup() call needed.\n // The opener is the same app/origin, so post to our own origin (the opener's message\n // handler checks ev.origin === redirect_uri origin). One call now finishes BOTH flows.\n if (window.opener && window.opener !== window) {\n try {\n window.opener.postMessage({ type: 'bounded-oidc-code', code, state: returnedState }, window.location.origin);\n }\n catch ( /* ignore */_a) { /* ignore */ }\n try {\n window.close();\n }\n catch ( /* ignore */_b) { /* ignore */ }\n return null;\n }\n setAuthLoading(true);\n try {\n const raw = sessionStorage.getItem(PKCE_STORE_KEY);\n if (!raw)\n throw new Error('Missing PKCE state — start login with loginWithRedirect()');\n const pkce = JSON.parse(raw);\n if (!returnedState || returnedState !== pkce.state)\n throw new Error('OAuth state mismatch — possible CSRF; aborting');\n const user = await exchangeCode(code, pkce.verifier, pkce.redirectUri);\n sessionStorage.removeItem(PKCE_STORE_KEY);\n // Strip code/state from the URL so a reload doesn't re-exchange (codes are single-use anyway).\n url.searchParams.delete('code');\n url.searchParams.delete('state');\n window.history.replaceState({}, document.title, url.pathname + url.search + url.hash);\n return user;\n }\n finally {\n setAuthLoading(false);\n }\n}\n/** Popup variant: open the hosted login in a popup; resolves with the User once the popup's\n * redirect_uri page posts the code back. The redirect_uri page just calls the usual\n * completeLoginFromRedirect() (which auto-detects the popup) — no separate call needed. */\nexport async function loginWithPopup(opts) {\n if (!hasDOM())\n throw new Error('loginWithPopup is web-only — on React Native use loginWithRedirect()');\n // Open synchronously, before PKCE/config awaits consume the click's user-\n // activation window. Opening only after buildAuthorize() intermittently\n // left Chrome with a real named window stranded at about:blank (or blocked\n // it entirely), while callers waited forever for an OAuth message.\n const w = opts.width || 480, h = opts.height || 720;\n const left = window.screenX + (window.outerWidth - w) / 2;\n const top = window.screenY + (window.outerHeight - h) / 2;\n const popup = window.open('', 'bounded-oidc', `width=${w},height=${h},left=${left},top=${top}`);\n if (!popup)\n throw new Error('Popup blocked — use loginWithRedirect() instead');\n let authorization;\n try {\n authorization = await buildAuthorize(opts);\n }\n catch (error) {\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n throw error;\n }\n const { url, pkce } = authorization;\n // Validate every remaining synchronous setup step before navigating. Both\n // URL parsing and sessionStorage can throw (malformed caller input, blocked\n // storage, quota/privacy mode); because the popup is already open to retain\n // user activation, close it on either failure instead of orphaning a blank\n // window with no listener or watchdog attached.\n let expectedOrigin;\n try {\n expectedOrigin = new URL(pkce.redirectUri).origin;\n sessionStorage.setItem(PKCE_STORE_KEY, JSON.stringify(pkce));\n }\n catch (error) {\n try {\n popup.close();\n }\n catch ( /* ignore */_b) { /* ignore */ }\n throw error;\n }\n try {\n popup.location.replace(url);\n }\n catch (_c) {\n try {\n popup.location.href = url;\n }\n catch (_d) {\n try {\n popup.close();\n }\n catch ( /* ignore */_e) { /* ignore */ }\n throw new Error('Popup failed to navigate — use loginWithRedirect() instead');\n }\n }\n // expectedOrigin came from the RESOLVED redirect_uri (buildAuthorize defaulted it to the\n // current page on web), not opts.redirectUri which may be undefined.\n setAuthLoading(true); // reflect \"signing in…\" while the popup is open\n try {\n return await new Promise((resolve, reject) => {\n let settled = false;\n let timer;\n let navigationTimer;\n const cleanup = () => {\n settled = true;\n clearInterval(timer);\n clearTimeout(navigationTimer);\n window.removeEventListener('message', onMsg);\n };\n const onMsg = async (ev) => {\n if (ev.origin !== expectedOrigin)\n return; // only trust the redirect_uri origin\n const d = ev.data;\n if (!d || d.type !== 'bounded-oidc-code' || typeof d.code !== 'string')\n return;\n cleanup();\n try {\n const raw = sessionStorage.getItem(PKCE_STORE_KEY);\n if (!raw)\n throw new Error('Missing PKCE state');\n const pkce = JSON.parse(raw);\n if (d.state !== pkce.state)\n throw new Error('OAuth state mismatch');\n const user = await exchangeCode(d.code, pkce.verifier, pkce.redirectUri);\n sessionStorage.removeItem(PKCE_STORE_KEY);\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n resolve(user);\n }\n catch (e) {\n reject(e);\n }\n };\n window.addEventListener('message', onMsg);\n // Some browser/extension combinations can return a real popup handle but\n // strand the window at about:blank instead of navigating to the hosted\n // authorize URL. The old code then waited forever because the popup was\n // open and no message could ever arrive. Once the popup becomes\n // cross-origin, reading location throws — that is positive evidence that\n // navigation succeeded, so only a still-readable about:blank is rejected.\n navigationTimer = setTimeout(() => {\n if (settled || popup.closed)\n return;\n try {\n if (popup.location.href === 'about:blank') {\n cleanup();\n try {\n popup.close();\n }\n catch ( /* ignore */_a) { /* ignore */ }\n reject(new Error('Popup stalled at about:blank — use loginWithRedirect() instead'));\n }\n }\n catch ( /* cross-origin hosted auth loaded normally */_b) { /* cross-origin hosted auth loaded normally */ }\n }, 4000);\n // The popup posts its code and then closes ITSELF, so a naive \"popup.closed -> reject\"\n // races the just-posted message and would report a spurious \"Login window closed\" on a\n // SUCCESSFUL login. When we see it closed, wait a beat for that pending message to settle\n // before declaring the window closed.\n timer = setInterval(() => {\n if (popup.closed) {\n clearInterval(timer);\n setTimeout(() => { if (!settled) {\n cleanup();\n reject(new Error('Login window closed'));\n } }, 500);\n }\n }, 500);\n });\n }\n finally {\n setAuthLoading(false);\n }\n}\n/** Call this on the redirect_uri page when login was opened via loginWithPopup(): posts the\n * code back to the opener and closes. (For the redirect variant use completeLoginFromRedirect.) */\nexport function completeLoginInPopup(openerOrigin) {\n if (!hasDOM() || !window.opener)\n return;\n const url = new URL(window.location.href);\n const code = url.searchParams.get('code');\n const state = url.searchParams.get('state');\n if (!code)\n return;\n try {\n window.opener.postMessage({ type: 'bounded-oidc-code', code, state }, openerOrigin);\n }\n catch ( /* ignore */_a) { /* ignore */ }\n try {\n window.close();\n }\n catch ( /* ignore */_b) { /* ignore */ }\n}\nasync function exchangeCode(code, verifier, redirectUri) {\n const cfg = await getConfig();\n const base = await issuerBase();\n // OIDC token endpoint: application/x-www-form-urlencoded (the standard). Public client (no\n // secret) authenticated by PKCE. The code is single-use + short-TTL on the server.\n const body = new URLSearchParams({\n grant_type: 'authorization_code', code, redirect_uri: redirectUri,\n client_id: cfg.appId, code_verifier: verifier,\n });\n let res;\n try {\n res = await fetch(`${base}/api/auth/oauth2/token`, {\n method: 'POST', headers: { 'content-type': 'application/x-www-form-urlencoded' }, body: body.toString(),\n });\n }\n catch (err) {\n throw new Error(`Bounded token exchange failed: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);\n }\n let data = null;\n try {\n data = await res.json();\n }\n catch ( /* non-JSON */_a) { /* non-JSON */ }\n if (!res.ok)\n throw new Error(String((data && (data.error_description || data.error || data.message)) || `token HTTP ${res.status}`));\n const idToken = (data === null || data === void 0 ? void 0 : data.id_token) || (data === null || data === void 0 ? void 0 : data.idToken);\n if (!idToken)\n throw new Error('No id_token returned from the token endpoint');\n const accessToken = tokenField(data, 'access_token', 'accessToken') || idToken;\n const refreshToken = boundedRefreshTokenField(data);\n const user = userFromIdToken(idToken);\n await sessionManager().storeSession(String(user.address || ''), accessToken, idToken, refreshToken, base);\n try {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, 'email');\n }\n catch ( /* storage unavailable */_b) { /* storage unavailable */ }\n setCurrentUser(user);\n setAuthProviderInstance(oidcProviderSingleton);\n return user;\n}\n","// NOTE: Provider class re-exports have been moved to index.ts (web) and\n// index.native.ts (RN) to avoid eager resolution of web-only dependencies\n// (react-dom) when this module is imported on RN.\nimport { getConfig, WebSessionManager, ReactNativeSessionManager, getActiveSessionManager, revokeSession } from \"@bounded-sh/core\";\nimport { OffchainAuthProvider } from \"./providers/offchain-auth-provider\";\nimport { getAuthProviderInstance, getCurrentUser, setAuthProviderInstance, setAuthLoading, setCurrentUser, } from \"../global\";\nimport { getPlatform } from \"../platform\";\nimport { normalizeSolanaRpcUrl, resolveSolanaWalletStandardChain, } from \"./solana-rpc\";\nlet currentAuthProvider = null;\nlet currentAuthMethod = null;\nlet currentAuthProviderConfigKey = null;\nlet initConfig = null;\nconst objectIdentityKeys = new WeakMap();\nlet nextObjectIdentityKey = 1;\n// --- localStorage helpers: track which auth method created the active session ---\nconst STORED_AUTH_METHOD_KEY = 'bounded_last_auth_method';\nfunction getStoredAuthMethod() {\n try {\n return getPlatform().storage.getItem(STORED_AUTH_METHOD_KEY);\n }\n catch (_a) {\n return null;\n }\n}\nfunction setStoredAuthMethod(method) {\n try {\n if (method) {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, method);\n }\n else {\n getPlatform().storage.removeItem(STORED_AUTH_METHOD_KEY);\n }\n }\n catch (_a) {\n // storage might not be available\n }\n}\nfunction getStoredIdToken() {\n try {\n return getActiveSessionManager().getIdToken();\n }\n catch (_a) {\n return null;\n }\n}\nfunction idTokenIsGuest(idToken, expectedAddress) {\n var _a;\n try {\n if (!idToken)\n return false;\n let b64 = (_a = idToken.split('.')[1]) === null || _a === void 0 ? void 0 : _a.replace(/-/g, '+').replace(/_/g, '/');\n if (!b64)\n return false;\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n const claims = JSON.parse(getPlatform().atob(b64));\n if ((claims === null || claims === void 0 ? void 0 : claims.is_anonymous) !== true)\n return false;\n if (expectedAddress && (claims === null || claims === void 0 ? void 0 : claims['custom:walletAddress']) !== expectedAddress)\n return false;\n return true;\n }\n catch (_b) {\n return false;\n }\n}\nfunction storedSessionIsGuest() {\n return idTokenIsGuest(getStoredIdToken());\n}\n/**\n * Pick the provider used for an ordinary `init({ appId })` restore.\n *\n * Hosted email remains the default and explicit config always wins. The only\n * implicit alternative is a guest session this SDK previously created on this\n * origin. Never accept a stored wallet/provider method as app configuration.\n */\nfunction authMethodForInit(config) {\n if (config.authMethod != null)\n return config.authMethod;\n if (getStoredAuthMethod() !== 'guest')\n return 'email';\n if (storedSessionIsGuest())\n return 'guest';\n // A marker is only a restore hint; the bearer is authoritative. Repair a\n // stale marker (for example, a crash/failed switch while a human session was\n // still active) instead of relabelling that human bearer as a guest.\n const hasSession = !!getStoredIdToken();\n setStoredAuthMethod(hasSession ? 'email' : null);\n return 'email';\n}\nfunction objectIdentityKey(value) {\n if (!value || (typeof value !== 'object' && typeof value !== 'function'))\n return null;\n const obj = value;\n let id = objectIdentityKeys.get(obj);\n if (!id) {\n id = nextObjectIdentityKey++;\n objectIdentityKeys.set(obj, id);\n }\n return `object:${id}`;\n}\nfunction stableConfigValue(value, seen = new WeakSet()) {\n if (value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')\n return value;\n if (typeof value === 'function')\n return '[function]';\n if (Array.isArray(value))\n return value.map((item) => stableConfigValue(item, seen));\n if (typeof value === 'object') {\n if (seen.has(value))\n return '[circular]';\n seen.add(value);\n const out = {};\n for (const key of Object.keys(value).sort()) {\n out[key] = stableConfigValue(value[key], seen);\n }\n seen.delete(value);\n return out;\n }\n return String(value);\n}\nfunction authProviderConfigKey(config) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n return JSON.stringify({\n authMethod: (_a = config.authMethod) !== null && _a !== void 0 ? _a : null,\n chain: (_b = config.chain) !== null && _b !== void 0 ? _b : null,\n rpcUrl: normalizeSolanaRpcUrl(config.rpcUrl),\n name: (_c = config.name) !== null && _c !== void 0 ? _c : null,\n logoUrl: (_d = config.logoUrl) !== null && _d !== void 0 ? _d : null,\n phantomConfig: stableConfigValue((_e = config.phantomConfig) !== null && _e !== void 0 ? _e : null),\n walletLogin: stableConfigValue((_f = config.walletLogin) !== null && _f !== void 0 ? _f : null),\n injectedWalletConfig: stableConfigValue((_g = config.injectedWalletConfig) !== null && _g !== void 0 ? _g : null),\n evmWalletConfig: stableConfigValue((_h = config.evmWalletConfig) !== null && _h !== void 0 ? _h : null),\n privyConfig: stableConfigValue((_j = config.privyConfig) !== null && _j !== void 0 ? _j : null),\n mobileWalletConfig: stableConfigValue((_k = config.mobileWalletConfig) !== null && _k !== void 0 ? _k : null),\n privyExpoProvider: objectIdentityKey((_l = config.privyExpoProvider) !== null && _l !== void 0 ? _l : null),\n });\n}\n/**\n * Clears the session if it was created by a different auth method.\n * Returns true if the session was cleared, false if the session is compatible.\n *\n * Dispatches to the correct session manager based on the current auth method\n * so both web (WebSessionManager) and RN (ReactNativeSessionManager) sessions\n * are properly cleared.\n */\nexport function clearIncompatibleSession() {\n if (getStoredAuthMethod() === currentAuthMethod) {\n return false;\n }\n // Clear both managers: on web the RN manager is a no-op (not configured),\n // and on RN the web manager is a no-op (no localStorage).\n WebSessionManager.clearSession();\n try {\n ReactNativeSessionManager.clearSession();\n }\n catch ( /* not configured on web */_a) { /* not configured on web */ }\n setStoredAuthMethod(null);\n return true;\n}\nfunction requireWebPrivyConfig(config) {\n if (!config.privyConfig || typeof config.privyConfig.appId !== 'string' || config.privyConfig.appId.trim() === '') {\n throw new Error('Privy auth requires config.privyConfig.appId; no default Privy app is used.');\n }\n if (!config.privyConfig.config || typeof config.privyConfig.config !== 'object') {\n throw new Error('Privy auth requires config.privyConfig.config for the app-scoped Privy provider.');\n }\n return config.privyConfig;\n}\nfunction getConfiguredSolanaNetwork(config) {\n if (typeof config.chain !== 'string')\n return null;\n const chain = config.chain.trim();\n if (chain === '' || chain === 'offchain')\n return null;\n return chain;\n}\nfunction mobileWalletClusterFromNetwork(network) {\n switch (network) {\n case \"solana_devnet\":\n return \"devnet\";\n case \"solana_mainnet\":\n return \"mainnet-beta\";\n case null:\n return null;\n default:\n resolveSolanaWalletStandardChain(network, \"Mobile wallet auth\");\n return null;\n }\n}\nfunction requireMobileWalletConfig(config) {\n var _a, _b, _c;\n const configuredNetwork = getConfiguredSolanaNetwork(config);\n const cluster = (_b = (_a = config.mobileWalletConfig) === null || _a === void 0 ? void 0 : _a.cluster) !== null && _b !== void 0 ? _b : mobileWalletClusterFromNetwork(configuredNetwork);\n if (!cluster) {\n throw new Error(\"Mobile wallet auth requires an explicit Solana network. \" +\n \"Pass config.chain as solana_devnet or solana_mainnet, \" +\n \"or pass mobileWalletConfig.cluster.\");\n }\n return Object.assign(Object.assign({}, ((_c = config.mobileWalletConfig) !== null && _c !== void 0 ? _c : {})), { cluster });\n}\nasync function hotSwapToMWAProvider(config) {\n void config;\n throw optionalProviderError(\"mobile-wallet-adapter\");\n}\n// Error thrown when an app tries wallet login WITHOUT opting in at init().\n// Wallet login is OFF by default — most apps never support wallets, so the\n// wallet choice is only usable when the developer explicitly asked for it.\nfunction walletLoginNotEnabledError(method) {\n return new Error(`Bounded: Solana wallet login (authMethod:\"${method}\") is OFF by default and not enabled for this app. ` +\n `Wallet login is opt-in — pass \\`walletLogin: true\\` (or a \\`walletLogin\\` / \\`injectedWalletConfig\\` object) ` +\n `to init() to enable the \"connect wallet\" choice. Most apps don't need it; use hosted login ` +\n `loginWithRedirect(...) for email/social, or signInAnonymously() for zero-friction guests.`);\n}\n/**\n * Whether the app opted into Solana WALLET LOGIN at init(). OPT-IN, default OFF:\n * enabled only when the developer explicitly passes `walletLogin: true` (or a\n * `walletLogin` / `injectedWalletConfig` object). This gate is what keeps wallet\n * login from being usable (or advertised) by the vast majority of apps that\n * never want it — existing apps that don't opt in see ZERO behavior change.\n */\nexport function isWalletLoginEnabled(config) {\n const wl = config.walletLogin;\n if (wl === true)\n return true;\n if (wl && typeof wl === 'object')\n return true;\n if (config.injectedWalletConfig && typeof config.injectedWalletConfig === 'object')\n return true;\n return false;\n}\n/**\n * Resolve the injected-wallet-config the provider should use, merging the\n * `walletLogin` object form (if the app passed one) over `injectedWalletConfig`.\n * `walletLogin: true` (bare boolean) enables login with default provider\n * discovery (Phantom-first) and no RPC override.\n */\nfunction resolveInjectedWalletConfig(config) {\n const base = (config.injectedWalletConfig && typeof config.injectedWalletConfig === 'object')\n ? config.injectedWalletConfig\n : {};\n const wl = config.walletLogin;\n if (wl && typeof wl === 'object')\n return Object.assign(Object.assign({}, base), wl);\n return base;\n}\nfunction optionalProviderError(method) {\n return new Error(`Bounded authMethod \"${method}\" uses an optional wallet/provider SDK that is no longer ` +\n `pulled into the default @bounded-sh/client entry. Use hosted login ` +\n `loginWithRedirect(...) for Bounded Auth, signInAnonymously() for guests, ` +\n `or install/import an explicit wallet-provider entry once your app opts into \"${method}\".`);\n}\nexport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, } from \"./solana-rpc\";\nexport async function getAuthProvider(config) {\n var _a;\n const nextProviderConfigKey = config ? authProviderConfigKey(config) : null;\n if (currentAuthProvider && (!config || currentAuthProviderConfigKey === nextProviderConfigKey)) {\n return currentAuthProvider;\n }\n if (!config) {\n throw new Error(\"Config is required to initialize auth provider\");\n }\n if (currentAuthProvider && currentAuthProviderConfigKey !== nextProviderConfigKey) {\n currentAuthProvider = null;\n currentAuthMethod = null;\n currentAuthProviderConfigKey = null;\n }\n initConfig = config;\n const authMethod = authMethodForInit(config);\n const rpcUrl = normalizeSolanaRpcUrl(config.rpcUrl);\n const configuredNetwork = getConfiguredSolanaNetwork(config);\n currentAuthMethod = authMethod;\n // Clear, actionable error when the BROWSER build (`bounded-sh`) is loaded in a\n // non-browser (Node) runtime. The wallet providers below need `window`; without\n // it they throw a cryptic \"PhantomWalletProvider can only be instantiated in a\n // browser environment\" deep in init(). The server build (`bounded-sh/server`)\n // never resolves these methods (it signs with a keypair), so this can't fire for\n // it — it only converts the cryptic browser-in-Node crash into a useful message.\n const browserWalletMethods = ['phantom', 'wallet', 'evm-wallet', 'rainbowkit', 'coinbase-smart-wallet', 'onboard', 'mobile-wallet-adapter', 'privy'];\n if (typeof window === 'undefined' && browserWalletMethods.includes(authMethod)) {\n throw new Error(`bounded-sh: '${authMethod}' auth requires a browser, but no \\`window\\` was found ` +\n `(you're likely running in Node). In server/Node code, import from 'bounded-sh/server' ` +\n `instead of 'bounded-sh' — it signs with an explicit keypair passed to createWalletClient({ keypair }) ` +\n `and needs no browser.`);\n }\n switch (authMethod) {\n case \"email\":\n // Hosted Bounded Auth sessions restore through the same session\n // manager as legacy email sessions. Human login should be started\n // with loginWithRedirect(); this provider is kept as the restore and\n // logout surface for those sessions.\n currentAuthProvider = new (await import(\"./providers/email-auth-provider\")).EmailAuthProvider();\n break;\n case \"wallet\":\n case \"phantom\": {\n // First-class Solana WALLET LOGIN (the poof/TaroBase-style \"connect\n // wallet\" choice). Slim path: rides the injected Solana provider a\n // browser wallet exposes (Phantom's window.phantom.solana, or any\n // Wallet-Standard window.solana). The user's REAL wallet becomes\n // @user.address; login = SIWS; full local signing surface. No React\n // and no heavy wallet-SDK peer dep. 'wallet' is an alias for the same\n // path.\n //\n // OPT-IN, DEFAULT OFF: only usable when the app explicitly enabled it\n // at init() (walletLogin: true). Otherwise throw a clear, actionable\n // error — most apps never support wallets, so we never construct the\n // provider (or pay its lazy chunk) for them.\n if (!isWalletLoginEnabled(config)) {\n throw walletLoginNotEnabledError(authMethod);\n }\n const { InjectedWalletProvider } = await import(\"./providers/injected-wallet-provider\");\n currentAuthProvider = new InjectedWalletProvider(resolveInjectedWalletConfig(config), rpcUrl, configuredNetwork);\n break;\n }\n case \"evm-wallet\": {\n // First-class EVM WALLET LOGIN (BYO Ethereum wallet via SIWE). Slim\n // path: rides the EIP-1193 injected provider a browser wallet exposes\n // (MetaMask / Rabby / Coinbase Wallet / any window.ethereum), discovered\n // via EIP-6963. The user's REAL EVM wallet becomes @user.evmAddress;\n // login = SIWE (EIP-4361 personal_sign). No viem/ethers and no React.\n // Selecting authMethod:'evm-wallet' IS the opt-in — pass evmWalletConfig\n // to point at a specific wallet or set chainId/domain.\n const evmWalletConfig = ((_a = config.evmWalletConfig) !== null && _a !== void 0 ? _a : {});\n const { InjectedEvmWalletProvider } = await import(\"./providers/injected-evm-wallet-provider\");\n currentAuthProvider = new InjectedEvmWalletProvider(evmWalletConfig);\n break;\n }\n case \"rainbowkit\":\n console.warn(\"Rainbow Kit auth is not yet supported.\");\n break;\n case \"privy\": {\n throw optionalProviderError(\"privy\");\n }\n case \"privy-expo\":\n // React Native Privy: @privy-io/expo is hook-based, so the host app must\n // create a PrivyExpoProvider, bridge the Privy hooks via setPrivyMethods()\n // from inside its <PrivyProvider> tree, and pass it as config.privyExpoProvider.\n if (!config.privyExpoProvider) {\n throw new Error('authMethod \"privy-expo\" requires a PrivyExpoProvider instance passed as config.privyExpoProvider. ' +\n 'Create the provider, call setPrivyMethods() from your React Native component tree, then pass it to init().');\n }\n currentAuthProvider = config.privyExpoProvider;\n break;\n case \"mobile-wallet-adapter\": {\n throw optionalProviderError(\"mobile-wallet-adapter\");\n }\n case \"onboard\":\n console.warn(\"Onboard auth is not yet supported.\");\n break;\n case \"guest\":\n // Anonymous auth: a device-local ed25519 keypair signs the challenge.\n currentAuthProvider = new (await import(\"./providers/guest-auth-provider\")).GuestAuthProvider();\n break;\n default:\n break;\n }\n if (!currentAuthProvider) {\n throw new Error(\"No auth provider was selected. Does your app have a supported auth method or chain configured?\");\n }\n // Wrap with OffchainAuthProvider for offchain/poofnet chain\n if (config.chain === \"offchain\") {\n console.log(\"[Offchain] Wrapping auth provider for Poofnet transaction tracking\");\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n currentAuthProviderConfigKey = nextProviderConfigKey;\n return currentAuthProvider;\n}\n/**\n * Browser/React-Native-only auth flows (guest, email) persist their session via\n * WebSessionManager, which is gated to environments that have `window` /\n * `localStorage`. In Node those stores no-op, so the session is minted on the\n * server but never saved locally — the caller looks logged in yet every request\n * 403s. Fail fast with actionable guidance instead of that silent footgun.\n */\nfunction assertBrowserAuthEnv(method) {\n if (typeof window === 'undefined') {\n throw new Error(`bounded-sh: '${method}' is a browser/React-Native auth flow — it needs \\`window\\`/\\`localStorage\\` ` +\n `to persist the session, which Node doesn't have (the session would be silently dropped, then every ` +\n `request 403s). In Node/server code import from 'bounded-sh/server' and sign with a keypair ` +\n `by using createWalletClient({ keypair }).`);\n }\n}\n/**\n * Anonymous (\"guest\") sign-in: zero-friction auth backed by a device-local\n * ed25519 keypair (no email, no wallet, no popup). The keypair is generated +\n * persisted on the device; its public key becomes `@user.address`. Durable\n * across reloads. Upgrade later by linking an email; transfer accounts via the\n * ownership-as-data pattern. `init()` must have run first. Browser/RN only.\n */\nexport async function signInAnonymously() {\n var _a;\n assertBrowserAuthEnv('signInAnonymously');\n // Resolve configuration before taking the transaction snapshot. Although\n // getConfig is normally already resolved after init(), it is asynchronous;\n // another login that finishes during that await must be part of the prior\n // state we preserve, not accidentally split across old/new snapshots.\n const coreConfig = await getConfig();\n const previousAuthProvider = currentAuthProvider;\n const previousAuthMethod = currentAuthMethod;\n const previousProviderConfigKey = currentAuthProviderConfigKey;\n const previousStoredAuthMethod = getStoredAuthMethod();\n const previousGlobalProvider = getAuthProviderInstance();\n const previousUser = getCurrentUser();\n const previousCoreProvider = coreConfig.authProvider;\n const previousCoreAuthMethod = coreConfig.authMethod;\n const previousIdToken = getStoredIdToken();\n // Lazy-load the guest provider so its ed25519/web3 dependencies stay out of\n // the main bundle for data-only apps. Specifier is a static string literal\n // so bundle-splitting can see it.\n const provider = new (await import(\"./providers/guest-auth-provider\")).GuestAuthProvider();\n setAuthLoading(true); // reflect \"signing in…\" while the guest keypair session is minted\n const commit = (user) => {\n // No await/interleaving inside this block: provider/method/config/marker\n // become guest before the user notification fires, so listeners and\n // concurrent imperative calls can never observe a mixed identity.\n currentAuthProvider = provider;\n currentAuthMethod = 'guest';\n currentAuthProviderConfigKey = 'direct:guest';\n coreConfig.authProvider = provider;\n coreConfig.authMethod = 'guest';\n setAuthProviderInstance(provider);\n setStoredAuthMethod('guest');\n setCurrentUser(user);\n };\n try {\n // Mint/store first while every shared provider surface remains on the\n // previous identity. The provider also withholds setCurrentUser here.\n const user = await provider.loginForProviderSwitch();\n if (!user)\n return null;\n // A human login may have completed after the guest request persisted but\n // before its promise resumed here. Re-check the live bearer immediately\n // before commit so a late guest result cannot overwrite that newer user.\n if (!user.address || !idTokenIsGuest(getStoredIdToken(), user.address)) {\n throw new Error('Anonymous sign-in was superseded by another session.');\n }\n commit(user);\n return user;\n }\n catch (error) {\n const currentIdToken = getStoredIdToken();\n if (currentIdToken !== previousIdToken && idTokenIsGuest(currentIdToken)) {\n // Defensive applied-yet-error reconciliation: if storage contains a\n // valid guest bearer/key despite the thrown write, commit that truth\n // instead of restoring a human UI over a guest token.\n let recovered = null;\n try {\n recovered = await provider.restoreSessionForProviderSwitch();\n }\n catch (_b) {\n try {\n getActiveSessionManager().clearSession();\n }\n catch ( /* fail closed below */_c) { /* fail closed below */ }\n }\n if (recovered) {\n commit(recovered);\n return recovered;\n }\n // restoreSessionForProviderSwitch fails closed and clears a split\n // bearer. Do not resurrect a user object that no longer has its token.\n setCurrentUser(null);\n }\n else if (currentIdToken === previousIdToken) {\n // The staged attempt never changed the bearer; every shared provider\n // surface stayed untouched, so restore the exact prior user/marker.\n currentAuthProvider = previousAuthProvider;\n currentAuthMethod = previousAuthMethod;\n currentAuthProviderConfigKey = previousProviderConfigKey;\n coreConfig.authProvider = previousCoreProvider;\n coreConfig.authMethod = previousCoreAuthMethod;\n setAuthProviderInstance(previousGlobalProvider);\n setStoredAuthMethod(previousStoredAuthMethod);\n if (getCurrentUser() !== previousUser)\n setCurrentUser(previousUser);\n }\n else {\n // A different non-guest token won while this staged guest mint was in\n // flight (another tab/popup/login). The guest attempt never mutated\n // shared provider state, so preserve that winner exactly. Align only\n // this module's private registry to the provider the winner installed;\n // never overwrite its core/global provider, marker, or user snapshot.\n const concurrentProvider = (_a = getAuthProviderInstance()) !== null && _a !== void 0 ? _a : coreConfig.authProvider;\n if (concurrentProvider)\n currentAuthProvider = concurrentProvider;\n const concurrentStoredMethod = getStoredAuthMethod();\n currentAuthMethod = concurrentStoredMethod && concurrentStoredMethod !== 'guest'\n ? concurrentStoredMethod\n : (previousAuthMethod && previousAuthMethod !== 'guest' ? previousAuthMethod : 'email');\n currentAuthProviderConfigKey = previousProviderConfigKey;\n }\n throw error;\n }\n finally {\n setAuthLoading(false);\n }\n}\n/**\n * Log in with Privy as a co-equal route — selectable at runtime alongside\n * `login()` (email/wallet) and `signInAnonymously()`, without re-`init()`.\n *\n * On REACT NATIVE the host must have created a PrivyExpoProvider and bridged the\n * Privy hooks via setPrivyMethods() (pass it as `config.privyExpoProvider` to\n * init()) — RN can't construct it here because the Privy hooks live in the app's\n * component tree. Web Privy is no longer loaded through the default client entry;\n * opt into a dedicated provider entry when your app needs it.\n *\n * Either way the Privy Solana wallet signs the SIWS challenge, so the session is\n * minted via the same wallet path as Phantom and shares the unified session store\n * (web localStorage / RN storage) and identity model. `init()` must have run first.\n */\nexport async function loginWithPrivy(options) {\n assertBrowserAuthEnv('loginWithPrivy');\n const coreConfig = await getConfig();\n let provider;\n if (getPlatform().hasDOM) {\n throw optionalProviderError(\"privy\");\n }\n if (!coreConfig.privyExpoProvider) {\n throw new Error('loginWithPrivy() on React Native requires a PrivyExpoProvider bridged from your app: ' +\n 'create it, call setPrivyMethods() inside <PrivyProvider>, and pass it as config.privyExpoProvider to init().');\n }\n provider = coreConfig.privyExpoProvider;\n currentAuthMethod = 'privy-expo';\n if (coreConfig.chain === 'offchain') {\n provider = new OffchainAuthProvider(provider);\n }\n currentAuthProvider = provider;\n currentAuthProviderConfigKey = authProviderConfigKey(Object.assign(Object.assign({}, coreConfig), { authMethod: currentAuthMethod }));\n coreConfig.authProvider = provider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(provider);\n setStoredAuthMethod(currentAuthMethod);\n if (typeof provider.setLoginOverrides === 'function') {\n provider.setLoginOverrides(options !== null && options !== void 0 ? options : null);\n }\n const result = await provider.login();\n return result ? Object.assign(Object.assign({}, result), { provider }) : null;\n}\nexport async function login(options) {\n // Re-initialize provider if it was cleared by logout\n if (!currentAuthProvider && initConfig) {\n currentAuthProvider = await getAuthProvider(initConfig);\n const coreConfig = await getConfig();\n coreConfig.authProvider = currentAuthProvider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(currentAuthProvider);\n }\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n // Forward per-call overrides to providers that support them (duck-typed to stay\n // lazy-load safe — no direct import of PhantomWalletProvider here).\n // Always call (even with null) so previous overrides are cleared when this\n // login() is invoked without options — early-return paths inside the provider\n // bypass the .finally() cleanup, so we reset here too.\n if (typeof currentAuthProvider.setLoginOverrides === 'function') {\n currentAuthProvider.setLoginOverrides(options !== null && options !== void 0 ? options : null);\n }\n const loginResult = await currentAuthProvider.login();\n if (loginResult) {\n // Store which auth method was used so we restore the right provider on reload\n setStoredAuthMethod(currentAuthMethod);\n // If this top-level tab was opened solely to perform the wallet connect for\n // an embedded preview (?poofConnect — see openTopLevelForConnect in the\n // phantom provider), close it now that the session is established. The\n // session reflects back into the preview's iframe via same-origin storage.\n try {\n if (typeof window !== 'undefined'\n && window.top === window.self\n && new URLSearchParams(window.location.search).get('poofConnect') === '1') {\n setTimeout(() => { try {\n window.close();\n }\n catch ( /* noop */_a) { /* noop */ } }, 400);\n }\n }\n catch ( /* noop */_a) { /* noop */ }\n return Object.assign(Object.assign({}, loginResult), { provider: currentAuthProvider });\n }\n return null;\n}\nexport function getCurrentAuthMethod() {\n return currentAuthMethod;\n}\n// The hosted issuer keeps its OWN browser session (the Better Auth cookie on\n// auth.bounded.sh) — clearing the app-local session alone leaves it alive, so\n// the next loginWithRedirect() silently re-signs the user in as the SAME\n// account: \"sign out\" that never lets you re-choose. The issuer ships\n// GET /logout for exactly this — it expires the session cookies and bounces\n// back — but it only redirects to https origins it trusts. Mirror that\n// allowlist here: on a trusted origin we end the issuer session with a\n// top-level bounce; anywhere else (custom domains, http dev) we keep the\n// local-only logout instead of stranding the user on the issuer origin.\nfunction issuerLogoutBounceUrl(issuerBase) {\n if (typeof window === 'undefined' || typeof document === 'undefined')\n return null; // RN/Node: no shared cookie jar to clear this way\n try {\n if (window.top !== window.self)\n return null; // framed: SameSite=Lax cookies don't ride iframe navigations\n }\n catch (_a) {\n return null;\n }\n try {\n const here = new URL(window.location.href);\n const host = here.hostname;\n const isLocalhost = host === 'localhost' || host === '127.0.0.1' || host.endsWith('.localhost');\n const trusted = here.protocol === 'https:' &&\n (host === 'bounded.sh' ||\n host.endsWith('.bounded.sh') ||\n host.endsWith('.bounded.page') ||\n host.endsWith('.oapps.fun') ||\n isLocalhost);\n if (!trusted)\n return null;\n const base = issuerBase.replace(/\\/$/, '');\n return `${base}/logout?redirect_uri=${encodeURIComponent(here.href)}`;\n }\n catch (_b) {\n return null;\n }\n}\nexport async function logout(options) {\n // Re-initialize the provider if it was cleared by a prior logout — the exact mirror\n // of login()'s self-heal above. A hosted popup/redirect login (loginWithPopup /\n // completeLoginFromRedirect) establishes a session WITHOUT touching the provider\n // singleton, so after a logout → hosted re-login cycle the provider is still null\n // and logging out the NEW session would otherwise throw \"not initialized\" at the\n // user. Rebuilding from initConfig is idempotent and cheap (same config key).\n if (!currentAuthProvider && initConfig) {\n currentAuthProvider = await getAuthProvider(initConfig);\n const coreConfig = await getConfig();\n coreConfig.authProvider = currentAuthProvider;\n coreConfig.authMethod = currentAuthMethod;\n setAuthProviderInstance(currentAuthProvider);\n }\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n // Revoke the refresh-token family server-side BEFORE the provider clears the\n // local session (so we still have the token + issuer to revoke). If revoke\n // fails, surface the error and leave local state intact so callers do not\n // mistake a local-only logout for server revocation.\n const sm = getActiveSessionManager();\n const refreshToken = sm.getRefreshToken();\n const sessionIssuer = sm.getIssuer();\n if (refreshToken)\n await revokeSession(refreshToken, sessionIssuer !== null && sessionIssuer !== void 0 ? sessionIssuer : undefined);\n // Hosted sessions ('email' covers the whole hosted surface: email OTP +\n // social + the OIDC redirect/popup flows) are the ones with an issuer\n // cookie; wallet and guest sessions have nothing hosted to end.\n // Check the STORED marker as well as the in-memory method: the hosted\n // OIDC flows (loginWithPopup / completeLoginFromRedirect) write the\n // 'email' marker via exchangeCode() but never touch currentAuthMethod,\n // which stays 'guest'/explicit even after a hosted upgrade. Worst case of\n // a false positive is a harmless idempotent issuer bounce.\n const wasHosted = currentAuthMethod === 'email' || getStoredAuthMethod() === 'email';\n await currentAuthProvider.logout();\n setStoredAuthMethod(null);\n currentAuthProvider = null;\n currentAuthMethod = null;\n currentAuthProviderConfigKey = null;\n if (wasHosted && !(options === null || options === void 0 ? void 0 : options.keepIssuerSession)) {\n const issuerBase = sessionIssuer\n || (await getConfig()).humanAuthApiUrl\n || 'https://auth.bounded.sh';\n const bounce = issuerLogoutBounceUrl(issuerBase);\n // Local state is already cleared, so even if the navigation is stopped\n // (tab close, extension) the app-side logout has fully happened.\n if (bounce)\n window.location.href = bounce;\n }\n}\n// OIDC Authorization Code + PKCE login (the secure multi-tenant redirect flow).\nexport { loginWithRedirect, completeLoginFromRedirect, loginWithPopup, completeLoginInPopup } from './oidc-auth';\n","import { reconnectWithNewAuth, getConfig, deriveUserIdentityFromIdToken, getActiveSessionManager } from '@bounded-sh/core';\nimport { getAuthProvider, login as authLogin, logout as authLogout, clearIncompatibleSession, getCurrentAuthMethod } from './auth';\nimport { init as configInit } from '@bounded-sh/core';\n/**\n * Read the active session's idToken synchronously from whichever store is live\n * for this runtime (WebSessionManager on web, ReactNativeSessionManager on RN —\n * selected by getActiveSessionManager, the same selector the core request path\n * uses). Returns null when there's no session — the caller leaves the user as-is.\n */\nfunction getCurrentIdToken() {\n try {\n return getActiveSessionManager().getIdToken();\n }\n catch ( /* no session / store unavailable */_a) { /* no session / store unavailable */ }\n return null;\n}\n/**\n * Enrich a freshly-produced User with the universal identity fields\n * ({ id, email }) derived from the active session's idToken. ADDITIVE +\n * backwards-compatible: `address` is left exactly as the provider set it, and\n * id/email are only populated when not already present. For wallet logins\n * id === address; for email-only (Bounded) logins address may be null and id\n * is the account identity. Mirrors the realtime-worker auth.ts resolution so\n * the client `user` matches what the backend authenticates as (@user.id / .email).\n */\nfunction withUserIdentity(user) {\n var _a, _b, _c, _d;\n if (!user)\n return user;\n const { id, email } = deriveUserIdentityFromIdToken(getCurrentIdToken());\n return Object.assign(Object.assign({}, user), { \n // Prefer an id the provider already set; otherwise fall back to the\n // token-derived identity, then to the wallet address (wallet === id).\n id: (_c = (_b = (_a = user.id) !== null && _a !== void 0 ? _a : id) !== null && _b !== void 0 ? _b : user.address) !== null && _c !== void 0 ? _c : undefined, \n // Email comes only from email-login tokens; keep any provider-set value.\n email: user.email !== undefined ? user.email : email, \n // Guest/anonymous flag (Firebase `isAnonymous` parity): authoritative\n // source is the active auth method, so it's correct on fresh login AND\n // after a session restore (the stored method is rehydrated before the\n // user is set). A provider may also set it explicitly; honor that first.\n isAnonymous: (_d = user.isAnonymous) !== null && _d !== void 0 ? _d : (getCurrentAuthMethod() === 'guest') });\n}\nlet authProviderInstance = null;\nlet currentUser = null;\nlet authStateListeners = [];\nlet authLoadingListeners = [];\nlet initCompleted = false;\nlet isAuthLoading = false;\n// This file acts as a middleware for the global state of the SDK\n// This mostly involves setting up the AuthProvider and managing the current user\nexport async function init(newConfig) {\n // Mark auth as loading for the ENTIRE init/restore window so consumers render\n // a neutral/loading state instead of the signed-out UI while we rehydrate the\n // session — otherwise getCurrentUser() is null + loading is false during the\n // async restore, which paints \"logged out\" and then flips to \"logged in\" (an\n // auth flash). The React useAuth hook seeds loading=true itself, but the\n // imperative API (onAuthLoadingChanged/getAuthLoading) relies on this flag, so\n // setting it here makes \"no flash\" the SDK's default behavior for every consumer.\n setAuthLoading(true);\n try {\n // Get auth provider first\n authProviderInstance = await getAuthProvider(newConfig);\n // Initialize config with auth provider\n await configInit(Object.assign(Object.assign({}, newConfig), { authProvider: authProviderInstance }));\n // Now that core is initialized, update the auth method on the config\n const authMethod = getCurrentAuthMethod();\n if (authMethod) {\n const coreConfig = await getConfig();\n coreConfig.authMethod = authMethod;\n }\n // Wait for restoreSession to complete\n // The appId check is done in SessionManager.getSession which is called by restoreSession\n // If there's an appId mismatch, the session will be cleared and restoreSession will return null\n let user = await authProviderInstance.restoreSession();\n // If a session exists but was created before auth method tracking (legacy session),\n // clear it to avoid mismatches when the app switches auth methods (e.g. email → phantom)\n if (user && clearIncompatibleSession()) {\n user = null;\n }\n setCurrentUser(user);\n // Mark init as completed\n initCompleted = true;\n }\n finally {\n // Resolve loading once the user is known (or restore failed) — listeners\n // registered mid-init still get the correct final state via the immediate\n // callback in onAuthLoadingChanged.\n setAuthLoading(false);\n }\n}\nexport function onAuthStateChanged(callback) {\n authStateListeners.push(callback);\n if (initCompleted || hasRunFirstTime) {\n // Call the callback immediately with the current user.\n // We check hasRunFirstTime in addition to initCompleted to handle the race\n // where the Phantom auto-login effect calls setCurrentUser() before init()\n // finishes. Without this, listeners registered between auto-login's\n // setCurrentUser and init()'s initCompleted would never fire (init's\n // setCurrentUser is a no-op for same-address and initCompleted is still false).\n callback(currentUser);\n }\n return () => {\n authStateListeners = authStateListeners.filter((listener) => listener !== callback);\n };\n}\nexport function onAuthLoadingChanged(callback) {\n authLoadingListeners.push(callback);\n // Call immediately with current loading state\n callback(isAuthLoading);\n return () => {\n authLoadingListeners = authLoadingListeners.filter((listener) => listener !== callback);\n };\n}\nexport function setAuthLoading(loading) {\n if (isAuthLoading !== loading) {\n isAuthLoading = loading;\n authLoadingListeners.forEach((callback) => callback(loading));\n }\n}\nexport function getAuthLoading() {\n return isAuthLoading;\n}\nexport async function login(options) {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n const loggedInUser = await authLogin(options);\n setCurrentUser(loggedInUser);\n return currentUser;\n}\nexport async function logout(options) {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n await authLogout(options);\n setCurrentUser(null);\n}\nvar hasRunFirstTime = false;\nfunction userPrincipalKey(user) {\n var _a, _b, _c;\n if (!user)\n return null;\n return (_c = (_b = (_a = user.id) !== null && _a !== void 0 ? _a : user.address) !== null && _b !== void 0 ? _b : user.email) !== null && _c !== void 0 ? _c : null;\n}\n// Update the currentUser and notify listeners\nexport function setCurrentUser(user) {\n // Enrich with the universal identity fields (id/email) derived from the\n // active session's idToken — central chokepoint so every provider's user\n // object gains { id, address, email } without each construction site\n // having to set them.\n user = withUserIdentity(user);\n const lastUser = currentUser;\n const wasInitializedBefore = hasRunFirstTime;\n const lastPrincipal = userPrincipalKey(currentUser);\n const nextPrincipal = userPrincipalKey(user);\n const shouldRunListeners = !hasRunFirstTime || lastPrincipal !== nextPrincipal;\n hasRunFirstTime = true;\n currentUser = user;\n if (shouldRunListeners) {\n authStateListeners.forEach((callback) => callback(user));\n // Reconnect WebSocket connections with new auth when user changes.\n // Skip on the first setCurrentUser call during init() — there are no\n // existing connections to reconnect at that point.\n if (wasInitializedBefore && userPrincipalKey(lastUser) !== nextPrincipal) {\n reconnectWithNewAuth().catch((error) => {\n console.error('Error reconnecting WebSocket after auth change:', error);\n });\n }\n }\n}\nexport function getCurrentUser() {\n return currentUser;\n}\n/** @internal Snapshot/restore surface for transactional auth-provider switches. */\nexport function getAuthProviderInstance() {\n return authProviderInstance;\n}\nexport function setAuthProviderInstance(provider) {\n authProviderInstance = provider;\n}\n","var _a;\nimport * as React from 'react';\nimport { login as sdkLogin, logout as sdkLogout } from '../../global';\nimport { onAuthStateChanged, onAuthLoadingChanged } from '../../global';\n// Whether we're in a server-side rendering context (no hooks allowed).\n// React Native has no `window` but DOES support hooks.\n// We detect Node SSR specifically via process.versions.node to avoid\n// false positives from Node 21+ which defines `navigator` globally.\nconst isSSR = typeof window === 'undefined'\n && typeof process !== 'undefined'\n && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);\nexport function useAuth() {\n // Provide a fallback so server render doesn't break\n if (isSSR) {\n return {\n login: async (_options) => undefined,\n logout: async () => undefined,\n loading: true,\n user: null,\n };\n }\n const [user, setUser] = React.useState(null);\n const [loading, setLoading] = React.useState(true);\n const [sdkLoading, setSdkLoading] = React.useState(false);\n React.useEffect(() => {\n const stopAuth = onAuthStateChanged((user) => {\n setUser(user);\n setLoading(false);\n });\n const stopLoading = onAuthLoadingChanged((loading) => {\n setSdkLoading(loading);\n });\n return () => {\n stopAuth();\n stopLoading();\n };\n }, []);\n const login = async (options) => {\n try {\n setLoading(true);\n const user = await sdkLogin(options);\n setUser(user);\n }\n catch (error) {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Error logging in:', error);\n }\n setUser(null);\n }\n finally {\n setLoading(false);\n }\n };\n const logout = async () => {\n try {\n setLoading(true);\n await sdkLogout();\n setUser(null);\n }\n catch (error) {\n console.error('Error logging out:', error);\n }\n finally {\n setLoading(false);\n }\n };\n return {\n login,\n logout,\n loading: loading || sdkLoading,\n user,\n };\n}\n","import { getIdToken as getIdTokenCore } from '@bounded-sh/core';\n// Wrapper for getIdToken - passes isServer=false for client-side usage\nexport async function getIdToken() {\n return getIdTokenCore(false);\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { getConfig } from '@bounded-sh/core';\nimport { getIdToken } from '../utils';\n/** A structured non-2xx response from the developer API. */\nexport class BuildsApiError extends Error {\n constructor(init) {\n super(init.message);\n this.name = 'BuildsApiError';\n this.code = init.code;\n this.retryable = init.retryable;\n this.status = init.status;\n this.details = init.details;\n this.retryAfterMs = init.retryAfterMs;\n }\n}\nconst memoryIdempotencyKeys = new Map();\nconst IDEMPOTENCY_STORAGE_PREFIX = 'bounded:build:idempotency:';\nfunction retryAfterMs(response) {\n var _a, _b;\n const value = (_b = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get) === null || _b === void 0 ? void 0 : _b.call(_a, 'Retry-After');\n if (!value)\n return undefined;\n const seconds = Number(value);\n if (Number.isFinite(seconds) && seconds >= 0)\n return Math.ceil(seconds * 1000);\n const at = Date.parse(value);\n if (!Number.isFinite(at))\n return undefined;\n return Math.max(0, at - Date.now());\n}\nasync function responseBody(response) {\n const text = await response.text();\n if (!text)\n return {};\n try {\n return JSON.parse(text);\n }\n catch (_a) {\n return { raw: text };\n }\n}\nfunction apiError(response, body) {\n const envelope = body;\n const nested = (envelope === null || envelope === void 0 ? void 0 : envelope.error) && typeof envelope.error === 'object'\n ? envelope.error\n : undefined;\n const hasNestedDetails = !!nested && Object.prototype.hasOwnProperty.call(nested, 'details');\n const hasTopLevelDetails = !!body\n && typeof body === 'object'\n && Object.prototype.hasOwnProperty.call(body, 'details');\n const legacyCode = typeof (body === null || body === void 0 ? void 0 : body.error) === 'string' ? body.error : undefined;\n const code = typeof (nested === null || nested === void 0 ? void 0 : nested.code) === 'string'\n ? nested.code\n : legacyCode !== null && legacyCode !== void 0 ? legacyCode : `http_${response.status}`;\n const message = typeof (nested === null || nested === void 0 ? void 0 : nested.message) === 'string'\n ? nested.message\n : typeof (body === null || body === void 0 ? void 0 : body.message) === 'string'\n ? body.message\n : `Developer API request failed with HTTP ${response.status}`;\n const retryable = typeof (nested === null || nested === void 0 ? void 0 : nested.retryable) === 'boolean'\n ? nested.retryable\n : response.status === 429 || response.status >= 500;\n return new BuildsApiError(Object.assign(Object.assign({ code,\n message,\n retryable, status: response.status }, (hasNestedDetails\n ? { details: nested === null || nested === void 0 ? void 0 : nested.details }\n : hasTopLevelDetails\n ? { details: body.details }\n : {})), (response.status === 429 ? { retryAfterMs: retryAfterMs(response) } : {})));\n}\n/** @internal Shared authenticated developer-api transport for builds and apps. */\nexport async function requestDevApi(path, request = {}) {\n var _a, _b;\n const config = await getConfig();\n const base = (_a = config.devApiUrl) === null || _a === void 0 ? void 0 : _a.replace(/\\/$/, '');\n if (!base) {\n throw new Error('Bounded developer API is not configured. Pass devApiUrl or a Bounded network to init().');\n }\n // Reuse the exact accessor exposed publicly as getIdToken().\n const token = await getIdToken();\n if (!token) {\n throw new BuildsApiError({\n code: 'auth_required',\n message: 'Sign in before calling the Bounded developer API.',\n retryable: false,\n status: 401,\n });\n }\n const hasBody = request.body !== undefined;\n const response = await fetch(`${base}${path}`, Object.assign({ method: (_b = request.method) !== null && _b !== void 0 ? _b : 'GET', headers: Object.assign({ Authorization: `Bearer ${token}` }, (hasBody ? { 'Content-Type': 'application/json' } : {})) }, (hasBody ? { body: JSON.stringify(request.body) } : {})));\n const body = await responseBody(response);\n if (!response.ok)\n throw apiError(response, body);\n return body;\n}\nfunction intentStorageKey(intentKey) {\n return `${IDEMPOTENCY_STORAGE_PREFIX}${intentKey}`;\n}\nfunction isValidIdempotencyKey(value) {\n return typeof value === 'string' && value.length > 0 && value.length <= 256;\n}\nfunction readPersistedIdempotencyKey(intentKey) {\n var _a;\n const storageKey = intentStorageKey(intentKey);\n try {\n const stored = (_a = globalThis.sessionStorage) === null || _a === void 0 ? void 0 : _a.getItem(storageKey);\n if (isValidIdempotencyKey(stored))\n return stored;\n }\n catch (_b) {\n // Storage can be disabled by browser privacy policy; use module memory.\n }\n const inMemory = memoryIdempotencyKeys.get(storageKey);\n return isValidIdempotencyKey(inMemory) ? inMemory : undefined;\n}\nfunction persistIdempotencyKey(intentKey, idempotencyKey) {\n var _a;\n const storageKey = intentStorageKey(intentKey);\n memoryIdempotencyKeys.set(storageKey, idempotencyKey);\n try {\n (_a = globalThis.sessionStorage) === null || _a === void 0 ? void 0 : _a.setItem(storageKey, idempotencyKey);\n }\n catch (_b) {\n // The in-memory write above is the React Native / disabled-storage fallback.\n }\n}\nfunction randomHex(bytes) {\n const cryptoObject = globalThis.crypto;\n if (cryptoObject === null || cryptoObject === void 0 ? void 0 : cryptoObject.getRandomValues) {\n const values = new Uint8Array(bytes);\n cryptoObject.getRandomValues(values);\n return Array.from(values, (value) => value.toString(16).padStart(2, '0')).join('');\n }\n let value = '';\n for (let index = 0; index < bytes; index += 1) {\n value += Math.floor(Math.random() * 256).toString(16).padStart(2, '0');\n }\n return value;\n}\nfunction mintIdempotencyKey() {\n const cryptoObject = globalThis.crypto;\n if (typeof (cryptoObject === null || cryptoObject === void 0 ? void 0 : cryptoObject.randomUUID) === 'function') {\n return `build_${cryptoObject.randomUUID()}`;\n }\n return `build_${Date.now().toString(36)}_${randomHex(16)}`;\n}\nfunction actionIdempotencyKey(options, action) {\n const supplied = options.idempotencyKey;\n if (supplied !== undefined) {\n if (!isValidIdempotencyKey(supplied)) {\n throw new TypeError('idempotencyKey must be between 1 and 256 characters.');\n }\n if (options.intentKey)\n persistIdempotencyKey(options.intentKey, supplied);\n return supplied;\n }\n if (!options.intentKey) {\n throw new TypeError(`intentKey is required when ${action} auto-mints an idempotency key.`);\n }\n const existing = readPersistedIdempotencyKey(options.intentKey);\n if (existing)\n return existing;\n const minted = mintIdempotencyKey();\n // This is deliberately synchronous and happens before requestDevApi can fetch.\n persistIdempotencyKey(options.intentKey, minted);\n return minted;\n}\nfunction appPath(appId) {\n return `/app/${encodeURIComponent(appId)}/builds`;\n}\nexport async function submit(appId, options) {\n const idempotencyKey = actionIdempotencyKey(options, 'submit()');\n const { intentKey: _intentKey, idempotencyKey: _suppliedKey } = options, submission = __rest(options, [\"intentKey\", \"idempotencyKey\"]);\n return requestDevApi(appPath(appId), {\n method: 'POST',\n body: Object.assign(Object.assign({}, submission), { idempotencyKey }),\n });\n}\nexport async function get(appId, runId) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}`);\n}\nexport async function events(appId, runId, after = 0) {\n const cursor = Number.isFinite(after) ? Math.max(0, Math.floor(after)) : 0;\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/events?after=${cursor}`);\n}\nexport async function cancel(appId, runId) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/cancel`, { method: 'POST' });\n}\nexport async function decideGate(appId, runId, gateId, options) {\n const idempotencyKey = actionIdempotencyKey(options, 'decideGate()');\n const { intentKey: _intentKey, idempotencyKey: _suppliedKey } = options, decision = __rest(options, [\"intentKey\", \"idempotencyKey\"]);\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/gates/${encodeURIComponent(gateId)}/decision`, { method: 'POST', body: Object.assign(Object.assign({}, decision), { idempotencyKey }) });\n}\nexport async function refreshReviewCapability(appId, runId, gateId, options) {\n const idempotencyKey = actionIdempotencyKey(options, 'refreshReviewCapability()');\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/gates/${encodeURIComponent(gateId)}/review-capability/refresh`, {\n method: 'POST',\n body: {\n expectedGeneration: options.expectedGeneration,\n expectedExpiresAtMs: options.expectedExpiresAtMs,\n expectedRecoveryUntilMs: options.expectedRecoveryUntilMs,\n expectedAudience: options.expectedAudience,\n expectedReviewerBindingHash: options.expectedReviewerBindingHash,\n idempotencyKey,\n },\n });\n}\n/**\n * Read one exact delegated-review capability and its narrow lifecycle result.\n * This does not refresh or extend the window and exposes no generic run-view\n * authority.\n */\nexport async function getReviewCapability(appId, runId, gateId, options) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/gates/${encodeURIComponent(gateId)}/review-capability`, {\n method: 'POST',\n body: { expectedPreviewUrl: options.expectedPreviewUrl },\n });\n}\nexport async function topup(appId, runId, options) {\n return requestDevApi(`${appPath(appId)}/${encodeURIComponent(runId)}/topup`, { method: 'POST', body: options });\n}\nexport async function list(appId, limit = 20) {\n const requestedLimit = Number.isFinite(limit) ? Math.max(1, Math.floor(limit)) : 20;\n return requestDevApi(`${appPath(appId)}?limit=${requestedLimit}`);\n}\n","// Source of truth for these strings:\n// packages/cdk/cloudflare/bounded-build/src/types.ts. Keep them string-pinned;\n// wire:1 remains additive and callers must tolerate unknown response strings.\nexport const NON_TERMINAL_STATES = [\n 'queued',\n 'admitted',\n 'executing',\n 'preview_ready',\n 'parked',\n 'resuming',\n 'promoting',\n 'quarantined',\n];\nexport const TERMINAL_STATES = [\n 'promoted',\n 'failed',\n 'canceled',\n 'rejected',\n 'expired',\n 'rebase_required',\n 'reported',\n];\nexport const RUN_STATES = [\n ...NON_TERMINAL_STATES,\n ...TERMINAL_STATES,\n];\nexport const PARK_REASONS = ['gate', 'funding'];\nexport const FAILURE_REASONS = [\n 'admission_rejected',\n 'dispatch_timeout',\n 'auth_revoked',\n 'owner_changed',\n 'policy_changed',\n 'quarantine_forced',\n 'bind_failed',\n 'internal_error',\n];\nexport const BUILD_REVIEW_CAPABILITY_SCHEMA = 'bounded.build-review-capability.v1';\nexport const BUILD_REVIEW_CAPABILITY_REFRESH_SCHEMA = 'bounded.build-review-capability-refresh.v1';\nexport const BUILD_DELEGATED_REVIEW_CAPABILITY_SCHEMA = 'bounded.build-delegated-review-capability.v1';\n","import { BuildsApiError, events as getEvents, get as getRun, } from './client';\nimport { TERMINAL_STATES } from './types';\nconst NORMAL_POLL_MS = 2000;\nconst PARKED_POLL_MS = 5000;\nconst LONG_RUNNING_POLL_MS = 10000;\nconst TWO_MINUTES_MS = 2 * 60000;\nconst TEN_MINUTES_MS = 10 * 60000;\nconst terminalStates = new Set(TERMINAL_STATES);\nfunction pollCadence(state, elapsedMs) {\n if (elapsedMs >= TEN_MINUTES_MS)\n return LONG_RUNNING_POLL_MS;\n if ((state === null || state === void 0 ? void 0 : state.startsWith('parked')) || elapsedMs >= TWO_MINUTES_MS)\n return PARKED_POLL_MS;\n return NORMAL_POLL_MS;\n}\nfunction retryCadence(error, state, elapsedMs) {\n const cadence = pollCadence(state, elapsedMs);\n if (error instanceof BuildsApiError && error.status === 429 && error.retryAfterMs !== undefined) {\n return Math.max(cadence, error.retryAfterMs);\n }\n return cadence;\n}\nfunction hasRetryAfter(error) {\n return error instanceof BuildsApiError\n && error.status === 429\n && error.retryAfterMs !== undefined;\n}\n// A permanent API refusal (expired session, revoked access, unknown run) will\n// never heal by re-polling; the loop must stop and surface it instead of\n// retrying forever. 429 stays retryable regardless of the server envelope.\nfunction isPermanentError(error) {\n return error instanceof BuildsApiError\n && error.status !== 429\n && error.retryable === false;\n}\nfunction newEvents(rows, lastSeq, seen) {\n const cursorBeforePoll = lastSeq;\n const fresh = [];\n let nextCursor = lastSeq;\n for (const event of rows) {\n if (!Number.isFinite(event === null || event === void 0 ? void 0 : event.seq))\n continue;\n nextCursor = Math.max(nextCursor, event.seq);\n if (event.seq <= cursorBeforePoll || seen.has(event.seq))\n continue;\n seen.add(event.seq);\n fresh.push(event);\n }\n return { events: fresh, lastSeq: nextCursor };\n}\n/**\n * Poll a build view and its event cursor until stopped or the run reaches a\n * known terminal state. Unknown state strings remain untouched and nonterminal.\n */\nexport function watch(appId, runId, onUpdate, options = {}) {\n const startedAt = Date.now();\n const seenSeqs = new Set();\n let lastSeq = Number.isFinite(options.after)\n ? Math.max(0, Math.floor(options.after))\n : 0;\n let timer;\n let active = true;\n let lastState;\n const stop = () => {\n active = false;\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n };\n const schedule = (delayMs) => {\n if (!active)\n return;\n timer = setTimeout(() => {\n timer = undefined;\n void poll();\n }, delayMs);\n };\n const reportError = (error) => {\n var _a;\n try {\n (_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, error);\n }\n catch (_b) {\n // A consumer error callback must not break the transport loop.\n }\n };\n const publish = (run, events) => {\n try {\n onUpdate({ run, events });\n }\n catch (_a) {\n // Polling is transport state; consumer render errors must not strand it.\n }\n };\n const poll = async () => {\n if (!active)\n return;\n let run;\n try {\n const view = await getRun(appId, runId);\n if (!active)\n return;\n run = view.run;\n lastState = run.state;\n }\n catch (error) {\n if (!active)\n return;\n reportError(error);\n if (isPermanentError(error)) {\n stop();\n return;\n }\n schedule(retryCadence(error, lastState, Date.now() - startedAt));\n return;\n }\n try {\n const response = await getEvents(appId, runId, lastSeq);\n if (!active)\n return;\n const deduped = newEvents(Array.isArray(response.events) ? response.events : [], lastSeq, seenSeqs);\n lastSeq = deduped.lastSeq;\n publish(run, deduped.events);\n }\n catch (error) {\n if (!active)\n return;\n // The view still advances UI state even when event replay is rate-limited.\n publish(run, []);\n reportError(error);\n if (terminalStates.has(run.state)) {\n // The run itself is done, but a rate-limited final event replay still\n // owes the caller its unseen seq rows. Honor Retry-After, retry the\n // piggyback once the limiter permits it, then stop after a successful\n // replay. Other terminal replay failures stop normally.\n if (hasRetryAfter(error)) {\n schedule(retryCadence(error, run.state, Date.now() - startedAt));\n return;\n }\n stop();\n return;\n }\n if (isPermanentError(error)) {\n stop();\n return;\n }\n schedule(retryCadence(error, run.state, Date.now() - startedAt));\n return;\n }\n if (!active)\n return;\n if (terminalStates.has(run.state)) {\n // Drain the remaining event pages before stopping: a resumed terminal\n // watch may owe the caller more rows than one page returns. Each page\n // advances the cursor, so the loop terminates; the cap is a backstop.\n for (let page = 0; page < 50 && active; page += 1) {\n let drained;\n try {\n const response = await getEvents(appId, runId, lastSeq);\n if (!active)\n return;\n drained = newEvents(Array.isArray(response.events) ? response.events : [], lastSeq, seenSeqs);\n }\n catch (error) {\n reportError(error);\n break;\n }\n if (drained.events.length === 0)\n break;\n lastSeq = drained.lastSeq;\n publish(run, drained.events);\n }\n stop();\n return;\n }\n schedule(pollCadence(run.state, Date.now() - startedAt));\n };\n void poll();\n return { stop };\n}\n","var _a;\nimport * as React from 'react';\nimport { watch } from '../builds/watch';\n// SSR guard (mirrors useAuth): no hooks/subscriptions during Node server render.\n// React Native has no `window` but DOES support hooks, so detect Node SSR\n// specifically via process.versions.node.\nconst isSSR = typeof window === 'undefined'\n && typeof process !== 'undefined'\n && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);\nexport function useBuildRun(appId, runId, options) {\n if (isSSR) {\n return { run: null, events: [], loading: true, error: null };\n }\n const [run, setRun] = React.useState(null);\n const [events, setEvents] = React.useState([]);\n const [loading, setLoading] = React.useState(true);\n const [error, setError] = React.useState(null);\n const optionsKey = options ? JSON.stringify(options) : '';\n React.useEffect(() => {\n setRun(null);\n setEvents([]);\n setError(null);\n if (!appId || !runId) {\n setLoading(false);\n return;\n }\n let active = true;\n setLoading(true);\n const handle = watch(appId, runId, ({ run: nextRun, events: nextEvents }) => {\n if (!active)\n return;\n setRun(nextRun);\n if (nextEvents.length > 0) {\n setEvents((current) => {\n const seen = new Set(current.map((event) => event.seq));\n return [...current, ...nextEvents.filter((event) => !seen.has(event.seq))];\n });\n }\n setError(null);\n setLoading(false);\n }, Object.assign(Object.assign({}, options), { onError: (value) => {\n if (!active)\n return;\n setError(value instanceof Error ? value : new Error(String(value)));\n setLoading(false);\n } }));\n return () => {\n active = false;\n handle.stop();\n };\n // optionsKey captures the option object's contents; ids are the other inputs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [appId, runId, optionsKey]);\n return { run, events, loading, error };\n}\n","import { cancel, decideGate, events, get, getReviewCapability, list, refreshReviewCapability, submit, topup, } from './client';\nimport { watch } from './watch';\n/**\n * Platform first-party surfaces only (bounded.sh, oapps.fun, localhost), with\n * one exact Drafted exception for delegated review/decision routes. Other\n * generated-app origins remain blocked; server-side callers are unaffected.\n */\nexport const builds = {\n submit,\n get,\n getReviewCapability,\n events,\n cancel,\n decideGate,\n refreshReviewCapability,\n topup,\n list,\n watch,\n};\nexport { BuildsApiError } from './client';\nexport * from './types';\n","import { requestDevApi } from './client';\nexport async function create(options = {}) {\n const body = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (options.name !== undefined ? { name: options.name } : {})), (options.prompt !== undefined ? { prompt: options.prompt } : {})), (options.idempotencyKey !== undefined ? { idempotencyKey: options.idempotencyKey } : {})), (options.intent !== undefined ? { intent: options.intent } : {})), (options.oapp === true ? { oapp: true } : {}));\n const app = await requestDevApi('/apps/new', {\n method: 'POST',\n body,\n });\n return Object.assign(Object.assign({ appId: app.appId }, (typeof app.slug === 'string' && app.slug ? { slug: app.slug } : {})), { url: app.url });\n}\nexport async function list() {\n // This legacy-compatible action shape is also used by oapps.fun listMyApps.\n const response = await requestDevApi('/', {\n method: 'POST',\n body: { action: 'listApps' },\n });\n const rows = Array.isArray(response.apps) ? response.apps : [];\n return rows\n .map((value) => {\n var _a, _b, _c, _d;\n const row = value && typeof value === 'object'\n ? value\n : {};\n const appId = String((_c = (_b = (_a = row._id) !== null && _a !== void 0 ? _a : row.id) !== null && _b !== void 0 ? _b : row.appId) !== null && _c !== void 0 ? _c : '');\n if (!/^[a-f0-9]{24}$/i.test(appId))\n return null;\n const name = String((_d = row.name) !== null && _d !== void 0 ? _d : '').trim() || '(unnamed app)';\n const slug = typeof row.slug === 'string' && row.slug ? row.slug : undefined;\n const url = typeof row.url === 'string' && row.url.trim() ? row.url.trim() : undefined;\n const buildStatus = row.buildStatus === 'building' || row.buildStatus === 'build_failed'\n ? row.buildStatus\n : undefined;\n return Object.assign(Object.assign(Object.assign({ appId,\n name }, (slug ? { slug } : {})), (url ? { url } : {})), (buildStatus ? { buildStatus } : {}));\n })\n .filter((app) => app !== null);\n}\n/**\n * Platform first-party surfaces only (bounded.sh, oapps.fun, localhost) —\n * dev-api CORS blocks calls from generated-app origins. Server-side callers unaffected.\n */\nexport const apps = { create, list };\n","export async function deserializeTransaction(tx) {\n // Literal specifier so bundlers can code-split the lazy chunk.\n const { Transaction, VersionedTransaction } = await import(\"@solana/web3.js\");\n const buf = Buffer.isBuffer(tx) ? tx : Buffer.from(tx, 'base64');\n if ((buf[0] & 0x80) !== 0) {\n return VersionedTransaction.deserialize(buf);\n }\n else {\n return Transaction.from(buf);\n }\n}\n","/**\n * Extracts a human-readable error message from Solana transaction logs.\n */\nexport function extractTransactionError(err, logMessages) {\n if (logMessages) {\n return JSON.stringify(logMessages);\n }\n if (err) {\n try {\n return JSON.stringify(err);\n }\n catch (_a) {\n return String(err);\n }\n }\n return 'Unknown transaction error';\n}\n/**\n * Polls getSignatureStatuses until the transaction is confirmed, then checks for errors.\n * Throws if the transaction failed on-chain. Returns parsed transaction info on success.\n */\nexport async function confirmAndCheckTransaction(connection, signature) {\n var _a;\n const maxAttempts = 15;\n for (let i = 0; i < maxAttempts; i++) {\n const { value } = await connection.getSignatureStatuses([signature]);\n const status = value[0];\n if (status) {\n if (status.err) {\n const txInfo = await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const errorMessage = extractTransactionError(status.err, (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.logMessages);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (status.confirmationStatus === 'confirmed' || status.confirmationStatus === 'finalized') {\n return await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n }\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n throw new Error('Transaction confirmation timeout');\n}\n","/**\n * Privy Expo Auth Provider — React Native implementation of AuthProvider.\n *\n * Uses @privy-io/expo instead of @privy-io/react-auth.\n * Persists the session through getActiveSessionManager() (the RN store on React\n * Native), and mints it via the SIWS wallet-signature path — identical to\n * Phantom/MWA — so no Privy-specific backend verification is required.\n *\n * IMPORTANT — Expo/RN consumers must:\n * 1. Install polyfills: fast-text-encoding, react-native-get-random-values\n * 2. Install @privy-io/expo, @privy-io/expo-native-extensions\n * 3. Call ReactNativeSessionManager.configure({ storage, atob }) at startup\n * 4. Call setPlatform({ ... }) from @bounded-sh/client at startup\n * 5. Wrap their app tree with PrivyProvider from @privy-io/expo\n * 6. Create this provider and pass the Privy hooks/methods via setPrivyMethods()\n *\n * Unlike the web PrivyWalletProvider which renders a hidden React DOM tree\n * to host Privy's React context, this provider expects the RN app itself\n * to render <PrivyProvider> and then bridge the hooks via setPrivyMethods().\n */\nimport { getActiveSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts, } from '@bounded-sh/core';\nimport { Buffer } from 'buffer';\nimport { setCurrentUser } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { normalizeSolanaRpcUrl, resolveSolanaRpcUrl } from '../solana-rpc';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport bs58 from 'bs58';\n// -----------------------------------------------------------------------\n// Provider implementation\n// -----------------------------------------------------------------------\nexport class PrivyExpoProvider {\n constructor(appId, networkUrl = null) {\n this.privyMethods = null;\n this.appId = appId;\n this.networkUrl = normalizeSolanaRpcUrl(networkUrl);\n }\n /**\n * Bridge Privy hooks from the app's React tree into this provider.\n *\n * Call this from a component rendered inside <PrivyProvider>:\n * ```tsx\n * const privy = usePrivy();\n * const wallet = useEmbeddedSolanaWallet();\n * const { getAccessToken } = usePrivy();\n * const { getIdentityToken } = useIdentityToken();\n *\n * useEffect(() => {\n * provider.setPrivyMethods({\n * isReady: privy.isReady,\n * isAuthenticated: !!privy.user,\n * user: privy.user,\n * login: privy.login,\n * logout: privy.logout,\n * getAccessToken,\n * getIdentityToken,\n * getWalletProvider: async () => {\n * if (!wallet.wallets[0]) return null;\n * const provider = await wallet.wallets[0].getProvider();\n * return {\n * address: wallet.wallets[0].address,\n * signMessage: provider.signMessage,\n * signTransaction: provider.signTransaction,\n * signAndSendTransaction: provider.signAndSendTransaction,\n * };\n * },\n * });\n * }, [privy.isReady, privy.user, wallet.wallets]);\n * ```\n */\n setPrivyMethods(methods) {\n this.privyMethods = methods;\n }\n // -------------------------------------------------------------------\n // AuthProvider interface\n // -------------------------------------------------------------------\n async login() {\n var _a;\n await this.ensureReady();\n // Check for existing session — verify the stored address matches the\n // currently authenticated Privy wallet (guards against account switches\n // without an explicit logout).\n const session = await SessionManager().getSession();\n if (session && ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated)) {\n const wallet = await this.privyMethods.getWalletProvider();\n if (wallet && wallet.address === session.address) {\n return { provider: this, address: session.address };\n }\n // Stale session — clear and continue to fresh login flow\n SessionManager().clearSession();\n }\n // Trigger Privy login\n const privyUser = await this.privyMethods.login();\n if (!privyUser)\n return null;\n // Get the wallet\n const wallet = await this.privyMethods.getWalletProvider();\n if (!wallet) {\n throw new Error('No embedded Solana wallet found after login. Ensure embeddedWallets.solana.createOnLogin is configured.');\n }\n // Mint a Bounded session by having the Privy Solana wallet sign the\n // standard SIWS challenge — identical to Phantom/MWA, so the backend mints\n // the session via the proven wallet-signature path (no Privy-specific\n // token verification needed).\n await this.createSession(wallet.address, wallet);\n const user = { provider: this, address: wallet.address };\n setCurrentUser(user);\n return user;\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a;\n await this.ensureReady();\n const [{ Connection, PublicKey }, programSdk] = await Promise.all([\n import(\"@solana/web3.js\"),\n import(\"@coral-xyz/anchor\"),\n ]);\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required');\n }\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n const app_id = solTransactionData.appId;\n if (!app_id) {\n throw new Error('App ID is required');\n }\n // Create a mock wallet adapter for Anchor (only publicKey needed for building TX)\n const walletPublicKey = new PublicKey(wallet.address);\n const walletAdapter = {\n publicKey: walletPublicKey,\n signTransaction: async (tx) => tx,\n signAllTransactions: async (txs) => txs,\n };\n const ProviderClass = programSdk[['Anch', 'orProvider'].join('')];\n const programProvider = new ProviderClass(connection, walletAdapter, ProviderClass.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n const { tx, blockhash, lastValidBlockHeight } = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, programProvider, walletPublicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData,\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n // Set blockhash\n const isLegacyTx = 'recentBlockhash' in tx &&\n !('message' in tx && 'staticAccountKeys' in tx.message);\n if (isLegacyTx) {\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n }\n else {\n tx.message.recentBlockhash = blockhash;\n }\n try {\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Sign only — don't submit\n const signed = await wallet.signTransaction(tx);\n return {\n signedTransaction: signed.signedTransaction,\n blockNumber: 0,\n gasUsed: '0',\n data: '',\n };\n }\n // Sign and submit\n const { signature, txInfo } = await this.signAndSubmitInternal(tx, wallet, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n }\n async signMessage(message) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n const messageBytes = getPlatform().textEncode(message);\n const result = await wallet.signMessage(messageBytes);\n return bs58.encode(result.signature);\n }\n async signTransaction(transaction) {\n await this.ensureReady();\n const { Connection, PublicKey, Transaction, VersionedTransaction } = await import(\"@solana/web3.js\");\n const wallet = await this.getWalletOrThrow();\n // Ensure blockhash is set\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = new PublicKey(wallet.address);\n }\n }\n else {\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n const result = await wallet.signTransaction(transaction);\n // Deserialize the signed transaction\n const signedBytes = result.signedTransaction;\n try {\n return VersionedTransaction.deserialize(signedBytes);\n }\n catch (_a) {\n return Transaction.from(signedBytes);\n }\n }\n async signAndSubmitTransaction(transaction, feePayer) {\n await this.ensureReady();\n const { Connection, PublicKey } = await import(\"@solana/web3.js\");\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Ensure blockhash\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n legacyTx.feePayer = feePayer || new PublicKey(wallet.address);\n }\n else {\n const versionedTx = transaction;\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n const { signature } = await this.signAndSubmitInternal(transaction, wallet, connection);\n return signature;\n }\n async restoreSession() {\n const session = await SessionManager().getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n return null;\n }\n async logout() {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated) {\n await this.privyMethods.logout();\n }\n SessionManager().clearSession();\n }\n async getNativeMethods() {\n return this.privyMethods;\n }\n // -------------------------------------------------------------------\n // Private helpers\n // -------------------------------------------------------------------\n /**\n * Mint a Bounded session from a Privy Solana wallet by signing the canonical\n * SIWS challenge (nonce -> genSolanaMessage -> wallet.signMessage). This reuses\n * createSessionWithSignature — the exact path Phantom, the mobile wallet\n * adapter, and the guest device-key use — so the bounded /session issuer mints\n * the session with no Privy-specific verification (it arrives as a Solana\n * wallet signature, defaulting to authMethod 'phantom' server-side).\n */\n async createSession(address, wallet) {\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n const messageBytes = getPlatform().textEncode(message);\n const signResult = await wallet.signMessage(messageBytes);\n // createSessionWithSignature expects a base64-encoded detached signature\n // (matches the Phantom + guest providers).\n const signature = Buffer.from(signResult.signature).toString('base64');\n const result = await createSessionWithSignature(address, message, signature);\n if (result) {\n await SessionManager().storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n }\n }\n async getWalletOrThrow() {\n var _a;\n const wallet = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.getWalletProvider());\n if (!wallet) {\n throw new Error('No Privy wallet available. Ensure the user is logged in and an embedded Solana wallet exists.');\n }\n return wallet;\n }\n async signAndSubmitInternal(transaction, wallet, connection) {\n // Use Privy's combined sign+send\n const result = await wallet.signAndSendTransaction(transaction, connection);\n const signature = result.signature;\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return { signature, txInfo };\n }\n getRpcUrl(network) {\n return resolveSolanaRpcUrl(this.networkUrl, network, \"Privy Expo Solana transaction\");\n }\n async ensureReady(timeoutMs = 15000) {\n if (!this.privyMethods) {\n throw new Error('PrivyExpoProvider.setPrivyMethods() must be called before using auth. ' +\n 'Bridge the Privy hooks from your React Native component tree.');\n }\n if (this.privyMethods.isReady)\n return;\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n const check = () => {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isReady) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Privy Expo SDK failed to initialize within timeout.'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n}\n"],"names":["require$$0","require$$1","exports","hasDOM","decodeJwt","Buffer","STORED_AUTH_METHOD_KEY","login","logout","configInit","authLogin","authLogout","_a","isSSR","sdkLogin","sdkLogout","getIdTokenCore","this","list","getRun","getEvents","SessionManager"],"mappings":"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ACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ;;ACnrBA,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;AAC1C,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,CAAC,CAAC;AACK,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AAClC,QAAQ,OAAO,IAAI;AACnB,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAA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","x_google_ignoreList":[3,4,5,6,7,8]}
|