{"version":3,"sources":["../../src/storage/indexedDB.ts"],"names":[],"mappings":"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","file":"indexedDB.cjs","sourcesContent":["import type { StorageAdapter } from \"./index\";\n\n/**\n * @deprecated Use repository implementations via `StorageConfig` instead.\n */\nexport class IndexedDBStorageAdapter implements StorageAdapter {\n    private dbName: string;\n    private version?: number;\n    private db: IDBDatabase | null = null;\n\n    // Without `version`, opens at the DB's current version: tracking the wallet\n    // schema's DB_VERSION would upgrade databases this adapter does not own.\n    constructor(dbName: string, version?: number) {\n        this.dbName = dbName;\n        this.version = version;\n    }\n\n    private async getDB(): Promise<IDBDatabase> {\n        if (this.db) return this.db;\n\n        const globalObject = typeof window === \"undefined\" ? self : window;\n\n        if (!(globalObject && \"indexedDB\" in globalObject)) {\n            throw new Error(\"IndexedDB is not available in this environment\");\n        }\n\n        return new Promise((resolve, reject) => {\n            const request = globalObject.indexedDB.open(this.dbName, this.version);\n\n            request.onerror = () => reject(request.error);\n            request.onsuccess = () => {\n                this.db = request.result;\n                resolve(this.db);\n            };\n\n            request.onupgradeneeded = () => {\n                const db = request.result;\n                if (!db.objectStoreNames.contains(\"storage\")) {\n                    db.createObjectStore(\"storage\");\n                }\n            };\n        });\n    }\n\n    async getItem(key: string): Promise<string | null> {\n        try {\n            const db = await this.getDB();\n            return new Promise((resolve, reject) => {\n                const transaction = db.transaction([\"storage\"], \"readonly\");\n                const store = transaction.objectStore(\"storage\");\n                const request = store.get(key);\n\n                request.onerror = () => reject(request.error);\n                request.onsuccess = () => {\n                    resolve(request.result || null);\n                };\n            });\n        } catch (error) {\n            console.error(`Failed to get item for key ${key}:`, error);\n            return null;\n        }\n    }\n\n    async setItem(key: string, value: string): Promise<void> {\n        try {\n            const db = await this.getDB();\n            return new Promise((resolve, reject) => {\n                const transaction = db.transaction([\"storage\"], \"readwrite\");\n                const store = transaction.objectStore(\"storage\");\n                const request = store.put(value, key);\n\n                request.onerror = () => reject(request.error);\n                request.onsuccess = () => resolve();\n            });\n        } catch (error) {\n            console.error(`Failed to set item for key ${key}:`, error);\n            throw error;\n        }\n    }\n\n    async removeItem(key: string): Promise<void> {\n        try {\n            const db = await this.getDB();\n            return new Promise((resolve, reject) => {\n                const transaction = db.transaction([\"storage\"], \"readwrite\");\n                const store = transaction.objectStore(\"storage\");\n                const request = store.delete(key);\n\n                request.onerror = () => reject(request.error);\n                request.onsuccess = () => resolve();\n            });\n        } catch (error) {\n            console.error(`Failed to remove item for key ${key}:`, error);\n        }\n    }\n\n    async clear(): Promise<void> {\n        try {\n            const db = await this.getDB();\n            return new Promise((resolve, reject) => {\n                const transaction = db.transaction([\"storage\"], \"readwrite\");\n                const store = transaction.objectStore(\"storage\");\n                const request = store.clear();\n\n                request.onerror = () => reject(request.error);\n                request.onsuccess = () => resolve();\n            });\n        } catch (error) {\n            console.error(\"Failed to clear storage:\", error);\n        }\n    }\n}\n"]}