{"mappings":";AAAA,OAAS,KAAKA,EAAM,KAAKC,MAAoB,6BAC7C,OAAc,KAALC,EAAkB,KAALC,MAAiB,6BASvC,SAASC,EAAOC,EAAMC,EAAS,CAAE,QAAAC,EAAS,QAAAC,EAAS,SAAAC,EAAU,WAAAC,CAAW,EAAI,CAAC,EAAG,CAC5E,IAAMC,EAAU,UAAU,KAAKN,EAAMC,CAAO,EACtCM,EAAcZ,EAAKW,CAAO,EAChC,OAAIH,GACAG,EAAQ,iBAAiB,gBAAkBE,GAAU,CACjDL,EAAQR,EAAKW,EAAQ,MAAM,EAAGE,EAAM,WAAYA,EAAM,WAAYb,EAAKW,EAAQ,WAAW,EAAGE,CAAK,CACtG,CAAC,EAEDN,GACAI,EAAQ,iBAAiB,UAAYE,GAAUN,EAE/CM,EAAM,WAAYA,EAAM,WAAYA,CAAK,CAAC,EAE9CD,EACK,KAAME,GAAO,CACVJ,GACAI,EAAG,iBAAiB,QAAS,IAAMJ,EAAW,CAAC,EAC/CD,GACAK,EAAG,iBAAiB,gBAAkBD,GAAUJ,EAASI,EAAM,WAAYA,EAAM,WAAYA,CAAK,CAAC,CAE3G,CAAC,EACI,MAAM,IAAM,CAAE,CAAC,EACbD,CACX,CAMA,SAASG,EAASV,EAAM,CAAE,QAAAE,CAAQ,EAAI,CAAC,EAAG,CACtC,IAAMI,EAAU,UAAU,eAAeN,CAAI,EAC7C,OAAIE,GACAI,EAAQ,iBAAiB,UAAYE,GAAUN,EAE/CM,EAAM,WAAYA,CAAK,CAAC,EAErBb,EAAKW,CAAO,EAAE,KAAK,IAAG,EAAY,CAC7C,CAEA,IAAMK,EAAc,CAAC,MAAO,SAAU,SAAU,aAAc,OAAO,EAC/DC,EAAe,CAAC,MAAO,MAAO,SAAU,OAAO,EAC/CC,EAAgB,IAAI,IAC1B,SAASC,EAAUC,EAAQC,EAAM,CAC7B,GAAI,EAAED,aAAkB,aACpB,EAAEC,KAAQD,IACV,OAAOC,GAAS,UAChB,OAEJ,GAAIH,EAAc,IAAIG,CAAI,EACtB,OAAOH,EAAc,IAAIG,CAAI,EACjC,IAAMC,EAAiBD,EAAK,QAAQ,aAAc,EAAE,EAC9CE,EAAWF,IAASC,EACpBE,EAAUP,EAAa,SAASK,CAAc,EACpD,GAEA,EAAEA,KAAmBC,EAAW,SAAW,gBAAgB,YACvD,EAAEC,GAAWR,EAAY,SAASM,CAAc,GAChD,OAEJ,IAAMG,EAAS,eAAgBC,KAAcC,EAAM,CAE/C,IAAMC,EAAK,KAAK,YAAYF,EAAWF,EAAU,YAAc,UAAU,EACrEJ,EAASQ,EAAG,MAChB,OAAIL,IACAH,EAASA,EAAO,MAAMO,EAAK,MAAM,CAAC,IAM9B,MAAM,QAAQ,IAAI,CACtBP,EAAOE,CAAc,EAAE,GAAGK,CAAI,EAC9BH,GAAWI,EAAG,IAClB,CAAC,GAAG,CAAC,CACT,EACA,OAAAV,EAAc,IAAIG,EAAMI,CAAM,EACvBA,CACX,CACAxB,EAAc4B,IAAc,CACxB,GAAGA,EACH,IAAK,CAACT,EAAQC,EAAMS,IAAaX,EAAUC,EAAQC,CAAI,GAAKQ,EAAS,IAAIT,EAAQC,EAAMS,CAAQ,EAC/F,IAAK,CAACV,EAAQC,IAAS,CAAC,CAACF,EAAUC,EAAQC,CAAI,GAAKQ,EAAS,IAAIT,EAAQC,CAAI,CACjF,EAAE","names":["wrap","replaceTraps","u","w","openDB","name","version","blocked","upgrade","blocking","terminated","request","openPromise","event","db","deleteDB","readMethods","writeMethods","cachedMethods","getMethod","target","prop","targetFuncName","useIndex","isWrite","method","storeName","args","tx","oldTraps","receiver"],"sources":["../Users/x/.repos/esm-dev/esm.sh/.esmd/npm/idb@7.1.1/node_modules/idb/build/index.js"],"sourcesContent":["import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n    const request = indexedDB.open(name, version);\n    const openPromise = wrap(request);\n    if (upgrade) {\n        request.addEventListener('upgradeneeded', (event) =\u003e {\n            upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n        });\n    }\n    if (blocked) {\n        request.addEventListener('blocked', (event) =\u003e blocked(\n        // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n        event.oldVersion, event.newVersion, event));\n    }\n    openPromise\n        .then((db) =\u003e {\n        if (terminated)\n            db.addEventListener('close', () =\u003e terminated());\n        if (blocking) {\n            db.addEventListener('versionchange', (event) =\u003e blocking(event.oldVersion, event.newVersion, event));\n        }\n    })\n        .catch(() =\u003e { });\n    return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n    const request = indexedDB.deleteDatabase(name);\n    if (blocked) {\n        request.addEventListener('blocked', (event) =\u003e blocked(\n        // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n        event.oldVersion, event));\n    }\n    return wrap(request).then(() =\u003e undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n    if (!(target instanceof IDBDatabase \u0026\u0026\n        !(prop in target) \u0026\u0026\n        typeof prop === 'string')) {\n        return;\n    }\n    if (cachedMethods.get(prop))\n        return cachedMethods.get(prop);\n    const targetFuncName = prop.replace(/FromIndex$/, '');\n    const useIndex = prop !== targetFuncName;\n    const isWrite = writeMethods.includes(targetFuncName);\n    if (\n    // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n    !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n        !(isWrite || readMethods.includes(targetFuncName))) {\n        return;\n    }\n    const method = async function (storeName, ...args) {\n        // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n        const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n        let target = tx.store;\n        if (useIndex)\n            target = target.index(args.shift());\n        // Must reject if op rejects.\n        // If it's a write operation, must reject if tx.done rejects.\n        // Must reject with op rejection first.\n        // Must resolve with op value.\n        // Must handle both promises (no unhandled rejections)\n        return (await Promise.all([\n            target[targetFuncName](...args),\n            isWrite \u0026\u0026 tx.done,\n        ]))[0];\n    };\n    cachedMethods.set(prop, method);\n    return method;\n}\nreplaceTraps((oldTraps) =\u003e ({\n    ...oldTraps,\n    get: (target, prop, receiver) =\u003e getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n    has: (target, prop) =\u003e !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n"],"version":3}
