{
  "version": 3,
  "sources": ["../../restate@original/src/index.js", "../../restate@original/src/core.js", "../../restate@original/src/react.js", "../../restate@original/src/registry.js", "../../restate@original/src/external-store-hook.js", "../../restate@original/src/persist.js", "../../restate@original/src/storage/indexeddb.js", "../../restate@original/src/storage/mmkv.js"],
  "sourcesContent": ["import { createPersistedRestate } from './persist.js';\nimport { restate } from './react.js';\nimport { restateManager } from './registry.js';\nimport { createIndexedDBStorage } from './storage/indexeddb.js';\nimport { createMMKVStorage } from './storage/mmkv.js';\n\nexport { createIndexedDBStorage, createMMKVStorage, restate, restateManager };\n\nexport function persistedRestate(initialValue, options) {\n    return createPersistedRestate(initialValue, options, createIndexedDBStorage);\n}\n", "const sameValue = Object.is ?? ((left, right) =>\n    left === right ? left !== 0 || 1 / left === 1 / right : left !== left && right !== right\n);\n\nlet nextStoreId = 1;\n\nfunction callListeners(listeners, args) {\n    let firstError;\n\n    for (const listener of Array.from(listeners)) {\n        if (!listeners.has(listener)) continue;\n        try {\n            listener(...args);\n        } catch (error) {\n            firstError ??= error;\n        }\n    }\n\n    if (firstError) throw firstError;\n}\n\nexport function createStore(initialValue, updater) {\n    if (updater != null && typeof updater !== 'function') {\n        throw new TypeError('The updater must be a function when provided.');\n    }\n\n    const subscribers = new Set();\n    const eventListeners = new Map();\n    const destroyListeners = new Set();\n    const notificationQueue = [];\n    const id = `restate:${nextStoreId++}`;\n\n    let stateValue = initialValue;\n    let revision = 0;\n    let destroyed = false;\n    let updaterRunning = false;\n    let updaterCleanup;\n    let manuallyStarted = false;\n    let eventTarget;\n    let flushingNotifications = false;\n\n    function assertActive() {\n        if (destroyed) throw new Error(`Restate store \"${id}\" has been destroyed.`);\n    }\n\n    function getEventListeners(type) {\n        let listeners = eventListeners.get(type);\n        if (!listeners) {\n            listeners = new Set();\n            eventListeners.set(type, listeners);\n        }\n        return listeners;\n    }\n\n    function emit(type, details = {}) {\n        const event = Object.freeze({\n            type,\n            store: eventTarget ?? publicStore,\n            value: stateValue,\n            previousValue: stateValue,\n            timestamp: Date.now(),\n            ...details,\n        });\n        const listeners = eventListeners.get(type);\n        const wildcardListeners = eventListeners.get('*');\n        let firstError;\n\n        if (listeners) {\n            try {\n                callListeners(listeners, [event]);\n            } catch (error) {\n                firstError ??= error;\n            }\n        }\n        if (wildcardListeners) {\n            try {\n                callListeners(wildcardListeners, [event]);\n            } catch (error) {\n                firstError ??= error;\n            }\n        }\n\n        if (firstError) throw firstError;\n        return event;\n    }\n\n    function publishState(previousValue, nextValue, action, details) {\n        const event = Object.freeze({\n            type: 'change',\n            action,\n            store: eventTarget ?? publicStore,\n            value: nextValue,\n            previousValue,\n            revision,\n            timestamp: Date.now(),\n            ...details,\n        });\n        notificationQueue.push(event);\n        if (flushingNotifications) return;\n\n        flushingNotifications = true;\n        let firstError;\n        let queueIndex = 0;\n\n        try {\n            while (queueIndex < notificationQueue.length) {\n                const queuedEvent = notificationQueue[queueIndex++];\n                try {\n                    callListeners(subscribers, [\n                        queuedEvent.value,\n                        queuedEvent.previousValue,\n                        queuedEvent,\n                    ]);\n                } catch (error) {\n                    firstError ??= error;\n                }\n\n                const changeListeners = eventListeners.get('change');\n                if (changeListeners) {\n                    try {\n                        callListeners(changeListeners, [queuedEvent]);\n                    } catch (error) {\n                        firstError ??= error;\n                    }\n                }\n\n                const wildcardListeners = eventListeners.get('*');\n                if (wildcardListeners) {\n                    try {\n                        callListeners(wildcardListeners, [queuedEvent]);\n                    } catch (error) {\n                        firstError ??= error;\n                    }\n                }\n            }\n        } finally {\n            notificationQueue.length = 0;\n            flushingNotifications = false;\n        }\n\n        if (firstError) throw firstError;\n    }\n\n    function replace(update, action = 'set', details = {}) {\n        assertActive();\n        const previousValue = stateValue;\n        const nextValue = typeof update === 'function' ? update(previousValue) : update;\n        const changed = !sameValue(previousValue, nextValue);\n\n        if (changed) {\n            stateValue = nextValue;\n            revision += 1;\n            publishState(previousValue, nextValue, action, details);\n        }\n\n        if (action !== 'set') {\n            emit(action, {\n                value: stateValue,\n                previousValue,\n                changed,\n                revision,\n                ...details,\n            });\n        }\n\n        return stateValue;\n    }\n\n    function set(update) {\n        replace(update, 'set');\n    }\n\n    function reset() {\n        return replace(initialValue, 'reset');\n    }\n\n    function shouldRunUpdater() {\n        return manuallyStarted || subscribers.size > 0;\n    }\n\n    function startUpdaterIfNeeded() {\n        if (\n            updaterRunning ||\n            !shouldRunUpdater() ||\n            typeof updater !== 'function' ||\n            destroyed\n        ) return;\n\n        updaterRunning = true;\n        try {\n            const cleanup = updater({\n                getState: () => stateValue,\n                setState: set,\n                value: stateValue,\n            });\n            updaterCleanup = typeof cleanup === 'function' ? cleanup : undefined;\n            emit('start');\n        } catch (error) {\n            updaterRunning = false;\n            updaterCleanup = undefined;\n            throw error;\n        }\n    }\n\n    function stopUpdaterIfNeeded(force = false) {\n        if (!updaterRunning || (!force && shouldRunUpdater())) return;\n\n        updaterRunning = false;\n        const cleanup = updaterCleanup;\n        updaterCleanup = undefined;\n        cleanup?.();\n        if (!destroyed) emit('stop');\n    }\n\n    function subscribe(listener) {\n        assertActive();\n        if (typeof listener !== 'function') {\n            throw new TypeError('The subscriber must be a function.');\n        }\n\n        subscribers.add(listener);\n        try {\n            startUpdaterIfNeeded();\n        } catch (error) {\n            subscribers.delete(listener);\n            throw error;\n        }\n\n        let active = true;\n        return () => {\n            if (!active) return;\n            active = false;\n            subscribers.delete(listener);\n            stopUpdaterIfNeeded();\n        };\n    }\n\n    function on(type, listener) {\n        assertActive();\n        if (typeof type !== 'string' || type.length === 0) {\n            throw new TypeError('The event type must be a non-empty string.');\n        }\n        if (typeof listener !== 'function') {\n            throw new TypeError('The event listener must be a function.');\n        }\n\n        const listeners = getEventListeners(type);\n        listeners.add(listener);\n        let active = true;\n        return () => {\n            if (!active) return;\n            active = false;\n            listeners.delete(listener);\n            if (listeners.size === 0) eventListeners.delete(type);\n        };\n    }\n\n    function start() {\n        assertActive();\n        manuallyStarted = true;\n        startUpdaterIfNeeded();\n    }\n\n    function stop() {\n        if (destroyed) return;\n        manuallyStarted = false;\n        stopUpdaterIfNeeded();\n    }\n\n    function destroy() {\n        if (destroyed) return;\n        destroyed = true;\n        manuallyStarted = false;\n        stopUpdaterIfNeeded(true);\n        subscribers.clear();\n        eventListeners.clear();\n        for (const listener of Array.from(destroyListeners)) listener();\n        destroyListeners.clear();\n    }\n\n    const publicStore = {\n        id,\n        get: () => stateValue,\n        getInitial: () => initialValue,\n        getRevision: () => revision,\n        isDestroyed: () => destroyed,\n        isRunning: () => updaterRunning,\n        listenerCount: (type) => type == null\n            ? subscribers.size\n            : (eventListeners.get(type)?.size ?? 0),\n        set,\n        reset,\n        replace,\n        subscribe,\n        on,\n        emit,\n        start,\n        stop,\n        destroy,\n        addDestroyListener(listener) {\n            destroyListeners.add(listener);\n            return () => destroyListeners.delete(listener);\n        },\n        setEventTarget(target) {\n            eventTarget = target;\n        },\n    };\n\n    return publicStore;\n}\n", "import * as React from 'react';\nimport { createStore } from './core.js';\nimport { registerStore } from './registry.js';\nimport { useSyncExternalStore } from './external-store-hook.js';\n\nexport function createRestateApi(store, kind = 'memory') {\n    function useRestate() {\n        const snapshot = useSyncExternalStore(\n            store.subscribe,\n            store.get,\n            store.get\n        );\n        React.useDebugValue(snapshot);\n        return snapshot;\n    }\n\n    Object.assign(useRestate, {\n        id: store.id,\n        kind,\n        get: store.get,\n        getInitial: store.getInitial,\n        set: store.set,\n        reset: store.reset,\n        subscribe: store.subscribe,\n        on: store.on,\n        listenerCount: store.listenerCount,\n        isRunning: store.isRunning,\n        start: store.start,\n        stop: store.stop,\n        destroy() {\n            try {\n                useRestate.__removeFromRegistry?.();\n            } finally {\n                store.destroy();\n            }\n        },\n        __store: store,\n    });\n\n    store.setEventTarget(useRestate);\n\n    return useRestate;\n}\n\nexport function restate(initialValue, updater) {\n    const store = createStore(initialValue, updater);\n    return registerStore(createRestateApi(store));\n}\n", "const stores = new Set();\nconst listeners = new Set();\n\nfunction emit(type, details = {}) {\n    const event = Object.freeze({ type, timestamp: Date.now(), ...details });\n    let firstError;\n\n    for (const listener of Array.from(listeners)) {\n        if (!listeners.has(listener)) continue;\n        try {\n            listener(event);\n        } catch (error) {\n            firstError ??= error;\n        }\n    }\n\n    if (firstError) throw firstError;\n}\n\nexport function registerStore(store) {\n    stores.add(store);\n    store.__removeFromRegistry = () => {\n        if (!stores.delete(store)) return;\n        emit('unregister', { store });\n    };\n    try {\n        emit('register', { store });\n    } catch (error) {\n        stores.delete(store);\n        delete store.__removeFromRegistry;\n        throw error;\n    }\n    return store;\n}\n\nfunction persistentStores() {\n    return Array.from(stores).filter((store) => store.kind === 'persistent');\n}\n\nasync function runAll(type, selectedStores, operation) {\n    emit(`${type}:start`, { stores: selectedStores });\n    try {\n        const results = await Promise.all(selectedStores.map(operation));\n        emit(`${type}:complete`, { stores: selectedStores, results });\n        return results;\n    } catch (error) {\n        emit(`${type}:error`, { stores: selectedStores, error });\n        throw error;\n    }\n}\n\nexport const restateManager = Object.freeze({\n    list() {\n        return Array.from(stores);\n    },\n\n    get(id) {\n        return Array.from(stores).find((store) => store.id === id || store.key === id);\n    },\n\n    size() {\n        return stores.size;\n    },\n\n    subscribe(listener) {\n        if (typeof listener !== 'function') {\n            throw new TypeError('The manager listener must be a function.');\n        }\n        listeners.add(listener);\n        let active = true;\n        return () => {\n            if (!active) return;\n            active = false;\n            listeners.delete(listener);\n        };\n    },\n\n    resetAll() {\n        const selectedStores = Array.from(stores);\n        const values = selectedStores.map((store) => store.reset());\n        emit('resetAll', { stores: selectedStores, values });\n        return values;\n    },\n\n    saveAll() {\n        const selectedStores = persistentStores();\n        return runAll('saveAll', selectedStores, (store) => store.save());\n    },\n\n    restoreAll() {\n        const selectedStores = persistentStores();\n        return runAll('restoreAll', selectedStores, (store) => store.restore());\n    },\n\n    clearStorageAll() {\n        const selectedStores = persistentStores();\n        return runAll('clearStorageAll', selectedStores, (store) => store.clearStorage());\n    },\n\n    resetAllAndClearStorage() {\n        const selectedStores = Array.from(stores);\n        return runAll('resetAllAndClearStorage', selectedStores, (store) =>\n            store.kind === 'persistent' ? store.resetAll() : Promise.resolve(store.reset())\n        );\n    },\n\n    destroyAll() {\n        const selectedStores = Array.from(stores);\n        selectedStores.forEach((store) => store.destroy());\n        emit('destroyAll', { stores: selectedStores });\n    },\n});\n", "import * as React from 'react';\n\nconst sameValue = Object.is ?? ((left, right) =>\n    left === right ? left !== 0 || 1 / left === 1 / right : left !== left && right !== right\n);\nconst isReactNative =\n    typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nconst canUseLayoutEffect = typeof window !== 'undefined' || isReactNative;\nconst useIsomorphicLayoutEffect = canUseLayoutEffect\n    ? React.useLayoutEffect\n    : React.useEffect;\n\nfunction snapshotChanged(instance) {\n    try {\n        return !sameValue(instance.value, instance.getSnapshot());\n    } catch {\n        return true;\n    }\n}\n\nfunction useSyncExternalStoreFallback(subscribe, getSnapshot, getServerSnapshot) {\n    const isServer = typeof window === 'undefined' && !isReactNative;\n    const value = isServer && typeof getServerSnapshot === 'function'\n        ? getServerSnapshot()\n        : getSnapshot();\n    const [{ instance }, forceUpdate] = React.useState(() => ({\n        instance: { value, getSnapshot },\n    }));\n\n    useIsomorphicLayoutEffect(() => {\n        instance.value = value;\n        instance.getSnapshot = getSnapshot;\n        if (snapshotChanged(instance)) forceUpdate({ instance });\n    }, [getSnapshot, value]);\n\n    React.useEffect(() => {\n        if (snapshotChanged(instance)) forceUpdate({ instance });\n        return subscribe(() => {\n            if (snapshotChanged(instance)) forceUpdate({ instance });\n        });\n    }, [subscribe]);\n\n    React.useDebugValue(value);\n    return value;\n}\n\nexport function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n    const nativeHook = React.useSyncExternalStore;\n    if (typeof nativeHook === 'function') {\n        return nativeHook(subscribe, getSnapshot, getServerSnapshot);\n    }\n    return useSyncExternalStoreFallback(subscribe, getSnapshot, getServerSnapshot);\n}\n", "import { createStore } from './core.js';\nimport { createRestateApi } from './react.js';\nimport { registerStore } from './registry.js';\n\nconst defaultSerializer = Object.freeze({\n    serialize(value) {\n        const serialized = JSON.stringify(value);\n        if (serialized === undefined) {\n            throw new TypeError('The current Restate value is not JSON-serializable.');\n        }\n        return serialized;\n    },\n    deserialize(value) {\n        return JSON.parse(value);\n    },\n});\n\nfunction validateStorage(storage) {\n    for (const method of ['getItem', 'setItem', 'removeItem']) {\n        if (typeof storage?.[method] !== 'function') {\n            throw new TypeError(`The storage adapter must implement ${method}().`);\n        }\n    }\n    return storage;\n}\n\nfunction createCodec(options) {\n    const serializer = options.serializer ?? defaultSerializer;\n    if (\n        typeof serializer.serialize !== 'function' ||\n        typeof serializer.deserialize !== 'function'\n    ) {\n        throw new TypeError('serializer must implement serialize() and deserialize().');\n    }\n\n    const currentVersion = options.version ?? 1;\n    if (!Number.isInteger(currentVersion) || currentVersion < 1) {\n        throw new TypeError('version must be a positive integer.');\n    }\n\n    return {\n        encode(value) {\n            const data = serializer.serialize(value);\n            if (typeof data !== 'string') {\n                throw new TypeError('serializer.serialize() must return a string.');\n            }\n            return JSON.stringify({ __restate: 1, version: currentVersion, data });\n        },\n        decode(serialized) {\n            const record = JSON.parse(serialized);\n            let storedVersion = 0;\n            let value;\n\n            if (\n                record &&\n                record.__restate === 1 &&\n                typeof record.data === 'string'\n            ) {\n                storedVersion = Number.isInteger(record.version) ? record.version : 0;\n                value = serializer.deserialize(record.data);\n            } else {\n                value = serializer.deserialize(serialized);\n            }\n\n            if (storedVersion !== currentVersion && typeof options.migrate === 'function') {\n                value = options.migrate(value, storedVersion, currentVersion);\n            }\n            return { value, storedVersion };\n        },\n    };\n}\n\nexport function createPersistedRestate(initialValue, options, defaultStorageFactory) {\n    if (!options || typeof options !== 'object') {\n        throw new TypeError('persistedRestate requires an options object with a storage key.');\n    }\n    if (typeof options.key !== 'string' || options.key.trim().length === 0) {\n        throw new TypeError('persistedRestate requires a non-empty key.');\n    }\n\n    const logicalKey = options.key.trim();\n    const namespace = options.namespace ?? '@ryujaewan/restate';\n    const storageKey = namespace ? `${namespace}:${logicalKey}` : logicalKey;\n    const storage = validateStorage(\n        options.storage ?? defaultStorageFactory(options.storageOptions)\n    );\n    const codec = createCodec(options);\n    const store = createStore(initialValue, options.updater);\n    const api = createRestateApi(store, 'persistent');\n\n    let ready = false;\n    let initializationPromise;\n    let operationChain = Promise.resolve();\n    let currentOperation = null;\n    let lastError = null;\n    let lastSavedAt = null;\n    let lastRestoredAt = null;\n\n    function storageIsAvailable() {\n        return typeof storage.isAvailable === 'function' ? storage.isAvailable() : true;\n    }\n\n    function emit(type, details = {}) {\n        store.emit(type, { key: logicalKey, storageKey, store: api, ...details });\n    }\n\n    function reportError(error, operation) {\n        lastError = error;\n        try {\n            emit('error', { error, operation });\n        } catch {\n            // Preserve the operation error when an error observer also throws.\n        }\n    }\n\n    function enqueue(operation, task) {\n        const promise = operationChain\n            .catch(() => undefined)\n            .then(async () => {\n                if (store.isDestroyed()) {\n                    throw new Error(`Restate store \"${api.id}\" has been destroyed.`);\n                }\n                currentOperation = operation;\n                try {\n                    return await task();\n                } catch (error) {\n                    reportError(error, operation);\n                    throw error;\n                } finally {\n                    currentOperation = null;\n                }\n            });\n        operationChain = promise;\n        return promise;\n    }\n\n    async function readSavedValue() {\n        const serialized = await storage.getItem(storageKey);\n        if (serialized == null) return { found: false };\n        if (typeof serialized !== 'string') {\n            throw new TypeError('The storage adapter returned a non-string value.');\n        }\n        return { found: true, ...codec.decode(serialized) };\n    }\n\n    function initialize() {\n        if (initializationPromise) return initializationPromise;\n\n        const startingRevision = store.getRevision();\n        initializationPromise = enqueue('initialize', async () => {\n            emit('initialize');\n            if (!storageIsAvailable()) {\n                ready = true;\n                emit('ready', { available: false, restored: false });\n                return store.get();\n            }\n\n            const saved = await readSavedValue();\n            let restored = false;\n            let skipped = false;\n            if (saved.found) {\n                if (store.getRevision() === startingRevision) {\n                    store.replace(saved.value, 'restore', {\n                        automatic: true,\n                        storedVersion: saved.storedVersion,\n                    });\n                    lastRestoredAt = Date.now();\n                    restored = true;\n                } else {\n                    skipped = true;\n                }\n            }\n            ready = true;\n            emit('ready', { available: true, restored, skipped });\n            return store.get();\n        }).catch((error) => {\n            ready = true;\n            emit('ready', { available: storageIsAvailable(), restored: false, error });\n            return store.get();\n        });\n\n        return initializationPromise;\n    }\n\n    function save() {\n        const value = store.get();\n        let serialized;\n        try {\n            serialized = codec.encode(value);\n        } catch (error) {\n            reportError(error, 'save');\n            return Promise.reject(error);\n        }\n\n        return enqueue('save', async () => {\n            if (!storageIsAvailable()) {\n                throw new Error('Persistent storage is unavailable in this environment.');\n            }\n            await storage.setItem(storageKey, serialized);\n            lastSavedAt = Date.now();\n            emit('save', { savedValue: value });\n            return value;\n        });\n    }\n\n    function restore() {\n        return enqueue('restore', async () => {\n            if (!storageIsAvailable()) {\n                throw new Error('Persistent storage is unavailable in this environment.');\n            }\n            const saved = await readSavedValue();\n            const value = saved.found ? saved.value : store.getInitial();\n            store.replace(value, 'restore', {\n                automatic: false,\n                found: saved.found,\n                storedVersion: saved.storedVersion,\n            });\n            lastRestoredAt = Date.now();\n            return store.get();\n        });\n    }\n\n    function hasSaved() {\n        return enqueue('hasSaved', async () => {\n            if (!storageIsAvailable()) return false;\n            return (await storage.getItem(storageKey)) != null;\n        });\n    }\n\n    function clearStorage() {\n        return enqueue('clearStorage', async () => {\n            if (!storageIsAvailable()) return false;\n            await storage.removeItem(storageKey);\n            emit('clearStorage');\n            return true;\n        });\n    }\n\n    function resetAll() {\n        const value = api.reset();\n        return clearStorage().then(() => value);\n    }\n\n    Object.assign(api, {\n        key: logicalKey,\n        storageKey,\n        storage,\n        initialize,\n        save,\n        restore,\n        hasSaved,\n        clearStorage,\n        remove: clearStorage,\n        resetAll,\n        status() {\n            return Object.freeze({\n                ready,\n                operation: currentOperation,\n                available: storageIsAvailable(),\n                error: lastError,\n                lastSavedAt,\n                lastRestoredAt,\n            });\n        },\n    });\n\n    api.ready = initialize();\n    return registerStore(api);\n}\n", "const databaseCaches = new WeakMap();\n\nfunction getDefaultFactory() {\n    return typeof indexedDB === 'undefined' ? undefined : indexedDB;\n}\n\nfunction getDatabaseCache(factory) {\n    let cache = databaseCaches.get(factory);\n    if (!cache) {\n        cache = new Map();\n        databaseCaches.set(factory, cache);\n    }\n    return cache;\n}\n\nfunction openDatabase(factory, databaseName, storeName, version) {\n    const cache = getDatabaseCache(factory);\n    const cacheKey = `${databaseName}:${version}`;\n    if (cache.has(cacheKey)) return cache.get(cacheKey);\n\n    const promise = new Promise((resolve, reject) => {\n        const request = factory.open(databaseName, version);\n\n        request.onupgradeneeded = () => {\n            const database = request.result;\n            if (!database.objectStoreNames.contains(storeName)) {\n                database.createObjectStore(storeName);\n            }\n        };\n        request.onsuccess = () => {\n            const database = request.result;\n            if (!database.objectStoreNames.contains(storeName)) {\n                database.close();\n                reject(new Error(\n                    `IndexedDB store \"${storeName}\" is missing. Increase the database version to create it.`\n                ));\n                return;\n            }\n            database.onversionchange = () => {\n                database.close();\n                cache.delete(cacheKey);\n            };\n            resolve(database);\n        };\n        request.onerror = () => reject(request.error ?? new Error('Failed to open IndexedDB.'));\n        request.onblocked = () => reject(new Error(\n            `IndexedDB database \"${databaseName}\" is blocked by another open connection.`\n        ));\n    }).catch((error) => {\n        cache.delete(cacheKey);\n        throw error;\n    });\n\n    cache.set(cacheKey, promise);\n    return promise;\n}\n\nfunction runTransaction(database, storeName, mode, operation) {\n    return new Promise((resolve, reject) => {\n        const transaction = database.transaction(storeName, mode);\n        const objectStore = transaction.objectStore(storeName);\n        let result;\n        let request;\n\n        try {\n            request = operation(objectStore);\n        } catch (error) {\n            transaction.abort();\n            reject(error);\n            return;\n        }\n\n        if (request) {\n            request.onsuccess = () => {\n                result = request.result;\n            };\n            request.onerror = () => reject(\n                request.error ?? new Error('IndexedDB request failed.')\n            );\n        }\n        transaction.oncomplete = () => resolve(result);\n        transaction.onerror = () => reject(\n            transaction.error ?? new Error('IndexedDB transaction failed.')\n        );\n        transaction.onabort = () => reject(\n            transaction.error ?? new Error('IndexedDB transaction was aborted.')\n        );\n    });\n}\n\nexport function createIndexedDBStorage(options = {}) {\n    const databaseName = options.databaseName ?? '@ryujaewan/restate';\n    const storeName = options.storeName ?? 'states';\n    const version = options.version ?? 1;\n    const configuredFactory = options.indexedDB;\n\n    function getFactory() {\n        return configuredFactory ?? getDefaultFactory();\n    }\n\n    async function getDatabase() {\n        const factory = getFactory();\n        if (!factory) {\n            throw new Error('IndexedDB is unavailable in this environment.');\n        }\n        return openDatabase(factory, databaseName, storeName, version);\n    }\n\n    return Object.freeze({\n        kind: 'indexeddb',\n        isAvailable: () => Boolean(getFactory()),\n        async getItem(key) {\n            const database = await getDatabase();\n            const value = await runTransaction(\n                database,\n                storeName,\n                'readonly',\n                (store) => store.get(key)\n            );\n            return value === undefined ? null : value;\n        },\n        async setItem(key, value) {\n            const database = await getDatabase();\n            await runTransaction(\n                database,\n                storeName,\n                'readwrite',\n                (store) => store.put(value, key)\n            );\n        },\n        async removeItem(key) {\n            const database = await getDatabase();\n            await runTransaction(\n                database,\n                storeName,\n                'readwrite',\n                (store) => store.delete(key)\n            );\n        },\n        async clear() {\n            const database = await getDatabase();\n            await runTransaction(\n                database,\n                storeName,\n                'readwrite',\n                (store) => store.clear()\n            );\n        },\n    });\n}\n", "function loadMMKVModule() {\n    try {\n        return require('react-native-mmkv');\n    } catch (error) {\n        const missingModuleError = new Error(\n            'persistedRestate on React Native requires react-native-mmkv. ' +\n            'Install the native module and complete its platform build setup.'\n        );\n        missingModuleError.cause = error;\n        throw missingModuleError;\n    }\n}\n\nfunction createMMKVInstance(options) {\n    if (options.mmkv) return options.mmkv;\n\n    const mmkvModule = options.mmkvModule ?? loadMMKVModule();\n    const configuration = options.configuration ?? (\n        options.id == null ? undefined : { id: options.id }\n    );\n\n    if (typeof mmkvModule.createMMKV === 'function') {\n        return mmkvModule.createMMKV(configuration);\n    }\n    if (typeof mmkvModule.MMKV === 'function') {\n        return new mmkvModule.MMKV(configuration);\n    }\n    throw new TypeError('The installed react-native-mmkv package has no supported factory.');\n}\n\nexport function createMMKVStorage(options = {}) {\n    const mmkv = createMMKVInstance(options);\n\n    return Object.freeze({\n        kind: 'mmkv',\n        isAvailable: () => true,\n        getItem(key) {\n            return mmkv.getString(key) ?? null;\n        },\n        setItem(key, value) {\n            mmkv.set(key, value);\n        },\n        removeItem(key) {\n            if (typeof mmkv.remove === 'function') {\n                mmkv.remove(key);\n                return;\n            }\n            if (typeof mmkv.delete === 'function') {\n                mmkv.delete(key);\n                return;\n            }\n            throw new TypeError('The installed MMKV instance cannot remove values.');\n        },\n        clear() {\n            mmkv.clearAll();\n        },\n    });\n}\n"],
  "mappings": "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",
  "names": ["listeners", "emit", "_a", "React", "_a", "sameValue", "useSyncExternalStore", "useSyncExternalStore", "_a", "_a", "emit", "_a", "_a"]
}
