@archipelagolab/lobi 1.0.0 → 1.0.5
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/LICENSE +13 -17
- package/README.md +136 -0
- package/dist/APEv2Parser-6EMKXRZS.js +15 -0
- package/dist/APEv2Parser-6EMKXRZS.js.map +7 -0
- package/dist/AiffParser-E6XWRTXM.js +194 -0
- package/dist/AiffParser-E6XWRTXM.js.map +7 -0
- package/dist/AsfParser-WSOH2JQY.js +620 -0
- package/dist/AsfParser-WSOH2JQY.js.map +7 -0
- package/dist/DsdiffParser-EUWJ4YAR.js +192 -0
- package/dist/DsdiffParser-EUWJ4YAR.js.map +7 -0
- package/dist/DsfParser-R6TPBJIY.js +114 -0
- package/dist/DsfParser-R6TPBJIY.js.map +7 -0
- package/dist/FlacParser-VDASGZ3E.js +16 -0
- package/dist/FlacParser-VDASGZ3E.js.map +7 -0
- package/dist/MP4Parser-64RGJLUM.js +1145 -0
- package/dist/MP4Parser-64RGJLUM.js.map +7 -0
- package/dist/MatroskaParser-O6RXAKYA.js +662 -0
- package/dist/MatroskaParser-O6RXAKYA.js.map +7 -0
- package/dist/MpegParser-B6NX6DS3.js +652 -0
- package/dist/MpegParser-B6NX6DS3.js.map +7 -0
- package/dist/MusepackParser-WUBT63DS.js +331 -0
- package/dist/MusepackParser-WUBT63DS.js.map +7 -0
- package/dist/OggParser-ZY6E5C2P.js +448 -0
- package/dist/OggParser-ZY6E5C2P.js.map +7 -0
- package/dist/WavPackParser-5KTCSQEU.js +209 -0
- package/dist/WavPackParser-5KTCSQEU.js.map +7 -0
- package/dist/WaveParser-RZSHVQPZ.js +300 -0
- package/dist/WaveParser-RZSHVQPZ.js.map +7 -0
- package/dist/auth-presence.js +46 -0
- package/dist/auth-presence.js.map +7 -0
- package/dist/channel-plugin-api.js +79 -0
- package/dist/channel-plugin-api.js.map +7 -0
- package/dist/chunk-22WAAZ6I.js +114 -0
- package/dist/chunk-22WAAZ6I.js.map +7 -0
- package/dist/chunk-2A6HEFSO.js +676 -0
- package/dist/chunk-2A6HEFSO.js.map +7 -0
- package/dist/chunk-2KGHUHKU.js +169 -0
- package/dist/chunk-2KGHUHKU.js.map +7 -0
- package/dist/chunk-2NEQI4K6.js +171 -0
- package/dist/chunk-2NEQI4K6.js.map +7 -0
- package/dist/chunk-2OSJ3MTW.js +175 -0
- package/dist/chunk-2OSJ3MTW.js.map +7 -0
- package/dist/chunk-2Q626TDO.js +27 -0
- package/dist/chunk-2Q626TDO.js.map +7 -0
- package/dist/chunk-2U6OZ7N2.js +155 -0
- package/dist/chunk-2U6OZ7N2.js.map +7 -0
- package/dist/chunk-2Z4IOUDZ.js +129 -0
- package/dist/chunk-2Z4IOUDZ.js.map +7 -0
- package/dist/chunk-2ZEPAW7U.js +154 -0
- package/dist/chunk-2ZEPAW7U.js.map +7 -0
- package/dist/chunk-2ZI6JK5O.js +63 -0
- package/dist/chunk-2ZI6JK5O.js.map +7 -0
- package/dist/chunk-34UY6D6X.js +36 -0
- package/dist/chunk-34UY6D6X.js.map +7 -0
- package/dist/chunk-3JD6JSJD.js +111 -0
- package/dist/chunk-3JD6JSJD.js.map +7 -0
- package/dist/chunk-3TOEIHG5.js +314 -0
- package/dist/chunk-3TOEIHG5.js.map +7 -0
- package/dist/chunk-3TRKKAVT.js +130 -0
- package/dist/chunk-3TRKKAVT.js.map +7 -0
- package/dist/chunk-3UFTTK7C.js +418 -0
- package/dist/chunk-3UFTTK7C.js.map +7 -0
- package/dist/chunk-3XO6AAIC.js +25 -0
- package/dist/chunk-3XO6AAIC.js.map +7 -0
- package/dist/chunk-427SAQME.js +321 -0
- package/dist/chunk-427SAQME.js.map +7 -0
- package/dist/chunk-4JVNTZAI.js +80 -0
- package/dist/chunk-4JVNTZAI.js.map +7 -0
- package/dist/chunk-4O3BEYYM.js +187 -0
- package/dist/chunk-4O3BEYYM.js.map +7 -0
- package/dist/chunk-4Z2N4GW6.js +247 -0
- package/dist/chunk-4Z2N4GW6.js.map +7 -0
- package/dist/chunk-56HN4SH6.js +46 -0
- package/dist/chunk-56HN4SH6.js.map +7 -0
- package/dist/chunk-5APBBTGW.js +7 -0
- package/dist/chunk-5APBBTGW.js.map +7 -0
- package/dist/chunk-5LNGMBWW.js +93 -0
- package/dist/chunk-5LNGMBWW.js.map +7 -0
- package/dist/chunk-5XFQSYZ4.js +52 -0
- package/dist/chunk-5XFQSYZ4.js.map +7 -0
- package/dist/chunk-62N5N4AC.js +241 -0
- package/dist/chunk-62N5N4AC.js.map +7 -0
- package/dist/chunk-6HX3DEXK.js +178 -0
- package/dist/chunk-6HX3DEXK.js.map +7 -0
- package/dist/chunk-6NO5VEVV.js +18 -0
- package/dist/chunk-6NO5VEVV.js.map +7 -0
- package/dist/chunk-6PZGDVLR.js +465 -0
- package/dist/chunk-6PZGDVLR.js.map +7 -0
- package/dist/chunk-6SOGH3TW.js +163 -0
- package/dist/chunk-6SOGH3TW.js.map +7 -0
- package/dist/chunk-72TGY3LX.js +104 -0
- package/dist/chunk-72TGY3LX.js.map +7 -0
- package/dist/chunk-76IE55K7.js +392 -0
- package/dist/chunk-76IE55K7.js.map +7 -0
- package/dist/chunk-7F3242AO.js +86 -0
- package/dist/chunk-7F3242AO.js.map +7 -0
- package/dist/chunk-7FLQSTPG.js +57 -0
- package/dist/chunk-7FLQSTPG.js.map +7 -0
- package/dist/chunk-7MP46JBP.js +177 -0
- package/dist/chunk-7MP46JBP.js.map +7 -0
- package/dist/chunk-7MVZYR2T.js +87 -0
- package/dist/chunk-7MVZYR2T.js.map +7 -0
- package/dist/chunk-7N7ISMPG.js +50 -0
- package/dist/chunk-7N7ISMPG.js.map +7 -0
- package/dist/chunk-7S7LQQPX.js +127 -0
- package/dist/chunk-7S7LQQPX.js.map +7 -0
- package/dist/chunk-7TTNY5FK.js +21 -0
- package/dist/chunk-7TTNY5FK.js.map +7 -0
- package/dist/chunk-7W73QCTR.js +244 -0
- package/dist/chunk-7W73QCTR.js.map +7 -0
- package/dist/chunk-7XXLU33Y.js +76 -0
- package/dist/chunk-7XXLU33Y.js.map +7 -0
- package/dist/chunk-AAO7BQEV.js +258 -0
- package/dist/chunk-AAO7BQEV.js.map +7 -0
- package/dist/chunk-AH4MLRYT.js +91 -0
- package/dist/chunk-AH4MLRYT.js.map +7 -0
- package/dist/chunk-AHKR32FH.js +7 -0
- package/dist/chunk-AHKR32FH.js.map +7 -0
- package/dist/chunk-ALKRFDAW.js +94 -0
- package/dist/chunk-ALKRFDAW.js.map +7 -0
- package/dist/chunk-AQQGAE7N.js +12 -0
- package/dist/chunk-AQQGAE7N.js.map +7 -0
- package/dist/chunk-AWW3YUGJ.js +193 -0
- package/dist/chunk-AWW3YUGJ.js.map +7 -0
- package/dist/chunk-AX7VEEWJ.js +158 -0
- package/dist/chunk-AX7VEEWJ.js.map +7 -0
- package/dist/chunk-BAX7Q6GR.js +55 -0
- package/dist/chunk-BAX7Q6GR.js.map +7 -0
- package/dist/chunk-BBM6BR3Z.js +28 -0
- package/dist/chunk-BBM6BR3Z.js.map +7 -0
- package/dist/chunk-BHXZMHSX.js +109 -0
- package/dist/chunk-BHXZMHSX.js.map +7 -0
- package/dist/chunk-BIUXDLVY.js +62 -0
- package/dist/chunk-BIUXDLVY.js.map +7 -0
- package/dist/chunk-BMFZL2P4.js +97 -0
- package/dist/chunk-BMFZL2P4.js.map +7 -0
- package/dist/chunk-BQXEXK4H.js +114 -0
- package/dist/chunk-BQXEXK4H.js.map +7 -0
- package/dist/chunk-BU2CTWBG.js +30 -0
- package/dist/chunk-BU2CTWBG.js.map +7 -0
- package/dist/chunk-BVKSCLF7.js +195 -0
- package/dist/chunk-BVKSCLF7.js.map +7 -0
- package/dist/chunk-BWA3D22L.js +88 -0
- package/dist/chunk-BWA3D22L.js.map +7 -0
- package/dist/chunk-CE24RSPL.js +506 -0
- package/dist/chunk-CE24RSPL.js.map +7 -0
- package/dist/chunk-CETZGSCP.js +71 -0
- package/dist/chunk-CETZGSCP.js.map +7 -0
- package/dist/chunk-CGBWMONK.js +412 -0
- package/dist/chunk-CGBWMONK.js.map +7 -0
- package/dist/chunk-CPNIXMGX.js +127 -0
- package/dist/chunk-CPNIXMGX.js.map +7 -0
- package/dist/chunk-CSJO73LD.js +84 -0
- package/dist/chunk-CSJO73LD.js.map +7 -0
- package/dist/chunk-CTKBDSL6.js +81 -0
- package/dist/chunk-CTKBDSL6.js.map +7 -0
- package/dist/chunk-CY6WHUCW.js +54 -0
- package/dist/chunk-CY6WHUCW.js.map +7 -0
- package/dist/chunk-D7Q6Z74D.js +123 -0
- package/dist/chunk-D7Q6Z74D.js.map +7 -0
- package/dist/chunk-DZIM4OWK.js +17 -0
- package/dist/chunk-DZIM4OWK.js.map +7 -0
- package/dist/chunk-E3GC4V5V.js +30 -0
- package/dist/chunk-E3GC4V5V.js.map +7 -0
- package/dist/chunk-E5HPDHCW.js +34 -0
- package/dist/chunk-E5HPDHCW.js.map +7 -0
- package/dist/chunk-E75BJJZ2.js +635 -0
- package/dist/chunk-E75BJJZ2.js.map +7 -0
- package/dist/chunk-EE4DHUUZ.js +472 -0
- package/dist/chunk-EE4DHUUZ.js.map +7 -0
- package/dist/chunk-EHELTAAD.js +198 -0
- package/dist/chunk-EHELTAAD.js.map +7 -0
- package/dist/chunk-EKXPSI7Z.js +135 -0
- package/dist/chunk-EKXPSI7Z.js.map +7 -0
- package/dist/chunk-ERCH75SH.js +292 -0
- package/dist/chunk-ERCH75SH.js.map +7 -0
- package/dist/chunk-EVFWZGFL.js +235 -0
- package/dist/chunk-EVFWZGFL.js.map +7 -0
- package/dist/chunk-EVPBRKMZ.js +45 -0
- package/dist/chunk-EVPBRKMZ.js.map +7 -0
- package/dist/chunk-F6AFJHWV.js +45 -0
- package/dist/chunk-F6AFJHWV.js.map +7 -0
- package/dist/chunk-FG4NVFKM.js +455 -0
- package/dist/chunk-FG4NVFKM.js.map +7 -0
- package/dist/chunk-FHNEN6IR.js +14 -0
- package/dist/chunk-FHNEN6IR.js.map +7 -0
- package/dist/chunk-FQ4R7IOX.js +32 -0
- package/dist/chunk-FQ4R7IOX.js.map +7 -0
- package/dist/chunk-FQPYAPJJ.js +124 -0
- package/dist/chunk-FQPYAPJJ.js.map +7 -0
- package/dist/chunk-FQTLJO4W.js +335 -0
- package/dist/chunk-FQTLJO4W.js.map +7 -0
- package/dist/chunk-FVLJSB2W.js +124 -0
- package/dist/chunk-FVLJSB2W.js.map +7 -0
- package/dist/chunk-FYRKBNTI.js +18 -0
- package/dist/chunk-FYRKBNTI.js.map +7 -0
- package/dist/chunk-GD6L3SLC.js +30 -0
- package/dist/chunk-GD6L3SLC.js.map +7 -0
- package/dist/chunk-GI2ZANRY.js +24 -0
- package/dist/chunk-GI2ZANRY.js.map +7 -0
- package/dist/chunk-GK3XVKXT.js +737 -0
- package/dist/chunk-GK3XVKXT.js.map +7 -0
- package/dist/chunk-GKOWCDQV.js +699 -0
- package/dist/chunk-GKOWCDQV.js.map +7 -0
- package/dist/chunk-GLLRCKKE.js +26 -0
- package/dist/chunk-GLLRCKKE.js.map +7 -0
- package/dist/chunk-GNYG6I36.js +175 -0
- package/dist/chunk-GNYG6I36.js.map +7 -0
- package/dist/chunk-GVYGUH2V.js +7 -0
- package/dist/chunk-GVYGUH2V.js.map +7 -0
- package/dist/chunk-GZAGAWSU.js +28 -0
- package/dist/chunk-GZAGAWSU.js.map +7 -0
- package/dist/chunk-H23E72SB.js +163 -0
- package/dist/chunk-H23E72SB.js.map +7 -0
- package/dist/chunk-H6YVV7GE.js +22 -0
- package/dist/chunk-H6YVV7GE.js.map +7 -0
- package/dist/chunk-HDPICD3P.js +4890 -0
- package/dist/chunk-HDPICD3P.js.map +7 -0
- package/dist/chunk-HP5HMWOM.js +123 -0
- package/dist/chunk-HP5HMWOM.js.map +7 -0
- package/dist/chunk-HQSHS6IB.js +88 -0
- package/dist/chunk-HQSHS6IB.js.map +7 -0
- package/dist/chunk-HTV3R73W.js +51 -0
- package/dist/chunk-HTV3R73W.js.map +7 -0
- package/dist/chunk-IJCMYMZB.js +239 -0
- package/dist/chunk-IJCMYMZB.js.map +7 -0
- package/dist/chunk-INNENDEE.js +472 -0
- package/dist/chunk-INNENDEE.js.map +7 -0
- package/dist/chunk-IOTLSMEQ.js +177 -0
- package/dist/chunk-IOTLSMEQ.js.map +7 -0
- package/dist/chunk-IQYYEHSM.js +300 -0
- package/dist/chunk-IQYYEHSM.js.map +7 -0
- package/dist/chunk-IRA5NJ4Q.js +21 -0
- package/dist/chunk-IRA5NJ4Q.js.map +7 -0
- package/dist/chunk-IU7EXXK7.js +1662 -0
- package/dist/chunk-IU7EXXK7.js.map +7 -0
- package/dist/chunk-IUXAKDAY.js +102 -0
- package/dist/chunk-IUXAKDAY.js.map +7 -0
- package/dist/chunk-JMYIFYY5.js +233 -0
- package/dist/chunk-JMYIFYY5.js.map +7 -0
- package/dist/chunk-JSZBX2TA.js +5853 -0
- package/dist/chunk-JSZBX2TA.js.map +7 -0
- package/dist/chunk-KHFWQ334.js +138 -0
- package/dist/chunk-KHFWQ334.js.map +7 -0
- package/dist/chunk-KJW6JLM6.js +95 -0
- package/dist/chunk-KJW6JLM6.js.map +7 -0
- package/dist/chunk-KSEANSJE.js +40 -0
- package/dist/chunk-KSEANSJE.js.map +7 -0
- package/dist/chunk-KVU54E6W.js +63 -0
- package/dist/chunk-KVU54E6W.js.map +7 -0
- package/dist/chunk-L5OUVMHK.js +174 -0
- package/dist/chunk-L5OUVMHK.js.map +7 -0
- package/dist/chunk-LIVQ7GIO.js +86 -0
- package/dist/chunk-LIVQ7GIO.js.map +7 -0
- package/dist/chunk-LO4F6E3N.js +163 -0
- package/dist/chunk-LO4F6E3N.js.map +7 -0
- package/dist/chunk-LSVKDUNM.js +151 -0
- package/dist/chunk-LSVKDUNM.js.map +7 -0
- package/dist/chunk-LVMK2GPM.js +18 -0
- package/dist/chunk-LVMK2GPM.js.map +7 -0
- package/dist/chunk-LXVPETLK.js +1405 -0
- package/dist/chunk-LXVPETLK.js.map +7 -0
- package/dist/chunk-LZNW24OB.js +78 -0
- package/dist/chunk-LZNW24OB.js.map +7 -0
- package/dist/chunk-MAF6PSCJ.js +44 -0
- package/dist/chunk-MAF6PSCJ.js.map +7 -0
- package/dist/chunk-MBIX6Z7U.js +80 -0
- package/dist/chunk-MBIX6Z7U.js.map +7 -0
- package/dist/chunk-MDLLXMC3.js +183 -0
- package/dist/chunk-MDLLXMC3.js.map +7 -0
- package/dist/chunk-MEI5HTWV.js +127 -0
- package/dist/chunk-MEI5HTWV.js.map +7 -0
- package/dist/chunk-MH74AJ3A.js +82 -0
- package/dist/chunk-MH74AJ3A.js.map +7 -0
- package/dist/chunk-MIFIM4PI.js +163 -0
- package/dist/chunk-MIFIM4PI.js.map +7 -0
- package/dist/chunk-MISZB5QJ.js +22 -0
- package/dist/chunk-MISZB5QJ.js.map +7 -0
- package/dist/chunk-MJ27XQYG.js +125 -0
- package/dist/chunk-MJ27XQYG.js.map +7 -0
- package/dist/chunk-MLQY5SKR.js +52 -0
- package/dist/chunk-MLQY5SKR.js.map +7 -0
- package/dist/chunk-MTMHGC3G.js +39 -0
- package/dist/chunk-MTMHGC3G.js.map +7 -0
- package/dist/chunk-MWBAW3YV.js +244 -0
- package/dist/chunk-MWBAW3YV.js.map +7 -0
- package/dist/chunk-MZGGB2YT.js +50 -0
- package/dist/chunk-MZGGB2YT.js.map +7 -0
- package/dist/chunk-N5SNGZJV.js +217 -0
- package/dist/chunk-N5SNGZJV.js.map +7 -0
- package/dist/chunk-NGCTBYQ3.js +181 -0
- package/dist/chunk-NGCTBYQ3.js.map +7 -0
- package/dist/chunk-NMUX7SGU.js +676 -0
- package/dist/chunk-NMUX7SGU.js.map +7 -0
- package/dist/chunk-NO7GMLNU.js +292 -0
- package/dist/chunk-NO7GMLNU.js.map +7 -0
- package/dist/chunk-NTOGVX2Y.js +92 -0
- package/dist/chunk-NTOGVX2Y.js.map +7 -0
- package/dist/chunk-O5IVKDX7.js +30 -0
- package/dist/chunk-O5IVKDX7.js.map +7 -0
- package/dist/chunk-OFWMLQMU.js +7287 -0
- package/dist/chunk-OFWMLQMU.js.map +7 -0
- package/dist/chunk-OJ3ZUKBI.js +73 -0
- package/dist/chunk-OJ3ZUKBI.js.map +7 -0
- package/dist/chunk-OJTHE4B7.js +50 -0
- package/dist/chunk-OJTHE4B7.js.map +7 -0
- package/dist/chunk-OOYPYBTA.js +446 -0
- package/dist/chunk-OOYPYBTA.js.map +7 -0
- package/dist/chunk-OQP4W4AR.js +105 -0
- package/dist/chunk-OQP4W4AR.js.map +7 -0
- package/dist/chunk-OVTT2EKA.js +516 -0
- package/dist/chunk-OVTT2EKA.js.map +7 -0
- package/dist/chunk-P5N63LBS.js +94 -0
- package/dist/chunk-P5N63LBS.js.map +7 -0
- package/dist/chunk-PARITZ7F.js +28 -0
- package/dist/chunk-PARITZ7F.js.map +7 -0
- package/dist/chunk-PBQK4KY4.js +195 -0
- package/dist/chunk-PBQK4KY4.js.map +7 -0
- package/dist/chunk-PSL2AHIA.js +27 -0
- package/dist/chunk-PSL2AHIA.js.map +7 -0
- package/dist/chunk-Q5QT7JBM.js +92 -0
- package/dist/chunk-Q5QT7JBM.js.map +7 -0
- package/dist/chunk-Q7WA5DCR.js +62 -0
- package/dist/chunk-Q7WA5DCR.js.map +7 -0
- package/dist/chunk-QATEENP2.js +7 -0
- package/dist/chunk-QATEENP2.js.map +7 -0
- package/dist/chunk-QDT24CIA.js +485 -0
- package/dist/chunk-QDT24CIA.js.map +7 -0
- package/dist/chunk-QI3NB7D5.js +455 -0
- package/dist/chunk-QI3NB7D5.js.map +7 -0
- package/dist/chunk-QIDAVXSX.js +106 -0
- package/dist/chunk-QIDAVXSX.js.map +7 -0
- package/dist/chunk-QKIGQVP2.js +104 -0
- package/dist/chunk-QKIGQVP2.js.map +7 -0
- package/dist/chunk-QNJENPK2.js +81 -0
- package/dist/chunk-QNJENPK2.js.map +7 -0
- package/dist/chunk-REVXXWAS.js +31 -0
- package/dist/chunk-REVXXWAS.js.map +7 -0
- package/dist/chunk-RFH4HRZP.js +94 -0
- package/dist/chunk-RFH4HRZP.js.map +7 -0
- package/dist/chunk-RNGAGYCL.js +49 -0
- package/dist/chunk-RNGAGYCL.js.map +7 -0
- package/dist/chunk-RPCVN3JA.js +261 -0
- package/dist/chunk-RPCVN3JA.js.map +7 -0
- package/dist/chunk-RQQE5DDT.js +193 -0
- package/dist/chunk-RQQE5DDT.js.map +7 -0
- package/dist/chunk-RVOD3ESA.js +38 -0
- package/dist/chunk-RVOD3ESA.js.map +7 -0
- package/dist/chunk-SAOUP24A.js +70 -0
- package/dist/chunk-SAOUP24A.js.map +7 -0
- package/dist/chunk-SFZL2TCV.js +55 -0
- package/dist/chunk-SFZL2TCV.js.map +7 -0
- package/dist/chunk-SJPFUXBV.js +45 -0
- package/dist/chunk-SJPFUXBV.js.map +7 -0
- package/dist/chunk-SLIUQWAR.js +58 -0
- package/dist/chunk-SLIUQWAR.js.map +7 -0
- package/dist/chunk-SSEX66OL.js +39 -0
- package/dist/chunk-SSEX66OL.js.map +7 -0
- package/dist/chunk-SX2LOHOX.js +251 -0
- package/dist/chunk-SX2LOHOX.js.map +7 -0
- package/dist/chunk-T72EMFTX.js +74 -0
- package/dist/chunk-T72EMFTX.js.map +7 -0
- package/dist/chunk-TA2QJPPG.js +169 -0
- package/dist/chunk-TA2QJPPG.js.map +7 -0
- package/dist/chunk-TFEETDNY.js +78 -0
- package/dist/chunk-TFEETDNY.js.map +7 -0
- package/dist/chunk-THM2QV25.js +108 -0
- package/dist/chunk-THM2QV25.js.map +7 -0
- package/dist/chunk-TRWT2N6Z.js +15 -0
- package/dist/chunk-TRWT2N6Z.js.map +7 -0
- package/dist/chunk-TTXEM54Y.js +76 -0
- package/dist/chunk-TTXEM54Y.js.map +7 -0
- package/dist/chunk-U4LVIY5F.js +1405 -0
- package/dist/chunk-U4LVIY5F.js.map +7 -0
- package/dist/chunk-U767LCSG.js +78 -0
- package/dist/chunk-U767LCSG.js.map +7 -0
- package/dist/chunk-U7GKLHU6.js +120 -0
- package/dist/chunk-U7GKLHU6.js.map +7 -0
- package/dist/chunk-UAB5P5QO.js +60 -0
- package/dist/chunk-UAB5P5QO.js.map +7 -0
- package/dist/chunk-UEHPJQBL.js +38 -0
- package/dist/chunk-UEHPJQBL.js.map +7 -0
- package/dist/chunk-UIBV6IGR.js +31 -0
- package/dist/chunk-UIBV6IGR.js.map +7 -0
- package/dist/chunk-UIYFRUET.js +16352 -0
- package/dist/chunk-UIYFRUET.js.map +7 -0
- package/dist/chunk-UJS3TIVS.js +52 -0
- package/dist/chunk-UJS3TIVS.js.map +7 -0
- package/dist/chunk-UU5PSBSI.js +176 -0
- package/dist/chunk-UU5PSBSI.js.map +7 -0
- package/dist/chunk-UV63XYFU.js +173 -0
- package/dist/chunk-UV63XYFU.js.map +7 -0
- package/dist/chunk-UWPHOAOC.js +29 -0
- package/dist/chunk-UWPHOAOC.js.map +7 -0
- package/dist/chunk-UXDDOSJC.js +52 -0
- package/dist/chunk-UXDDOSJC.js.map +7 -0
- package/dist/chunk-V3VAOMCO.js +465 -0
- package/dist/chunk-V3VAOMCO.js.map +7 -0
- package/dist/chunk-VA7ENH2S.js +38 -0
- package/dist/chunk-VA7ENH2S.js.map +7 -0
- package/dist/chunk-VFPDFLVE.js +516 -0
- package/dist/chunk-VFPDFLVE.js.map +7 -0
- package/dist/chunk-VHG4FNIJ.js +93 -0
- package/dist/chunk-VHG4FNIJ.js.map +7 -0
- package/dist/chunk-VKOO6MIZ.js +51 -0
- package/dist/chunk-VKOO6MIZ.js.map +7 -0
- package/dist/chunk-VKXKRZG7.js +62 -0
- package/dist/chunk-VKXKRZG7.js.map +7 -0
- package/dist/chunk-VUOLPEUZ.js +7 -0
- package/dist/chunk-VUOLPEUZ.js.map +7 -0
- package/dist/chunk-W6SOBS7M.js +138 -0
- package/dist/chunk-W6SOBS7M.js.map +7 -0
- package/dist/chunk-WDOKKRTE.js +7 -0
- package/dist/chunk-WDOKKRTE.js.map +7 -0
- package/dist/chunk-WGXXKFN5.js +7 -0
- package/dist/chunk-WGXXKFN5.js.map +7 -0
- package/dist/chunk-WHPUUP3J.js +25 -0
- package/dist/chunk-WHPUUP3J.js.map +7 -0
- package/dist/chunk-XF7LD6VV.js +122 -0
- package/dist/chunk-XF7LD6VV.js.map +7 -0
- package/dist/chunk-XFTXM3RE.js +64 -0
- package/dist/chunk-XFTXM3RE.js.map +7 -0
- package/dist/chunk-XJABPO2T.js +235 -0
- package/dist/chunk-XJABPO2T.js.map +7 -0
- package/dist/chunk-XK6VF3H7.js +3586 -0
- package/dist/chunk-XK6VF3H7.js.map +7 -0
- package/dist/chunk-XQYIIPOJ.js +266 -0
- package/dist/chunk-XQYIIPOJ.js.map +7 -0
- package/dist/chunk-XZSAN55E.js +58 -0
- package/dist/chunk-XZSAN55E.js.map +7 -0
- package/dist/chunk-Y3KJR4OG.js +64 -0
- package/dist/chunk-Y3KJR4OG.js.map +7 -0
- package/dist/chunk-Y4JKH7FF.js +45 -0
- package/dist/chunk-Y4JKH7FF.js.map +7 -0
- package/dist/chunk-Y6CJN4ID.js +31 -0
- package/dist/chunk-Y6CJN4ID.js.map +7 -0
- package/dist/chunk-YABGJU5M.js +271 -0
- package/dist/chunk-YABGJU5M.js.map +7 -0
- package/dist/chunk-YEJH7ZC2.js +34 -0
- package/dist/chunk-YEJH7ZC2.js.map +7 -0
- package/dist/chunk-YFTE4H54.js +44117 -0
- package/dist/chunk-YFTE4H54.js.map +7 -0
- package/dist/chunk-YNJYMD43.js +392 -0
- package/dist/chunk-YNJYMD43.js.map +7 -0
- package/dist/chunk-YNYEQGVN.js +251 -0
- package/dist/chunk-YNYEQGVN.js.map +7 -0
- package/dist/chunk-YUPBD27Z.js +70 -0
- package/dist/chunk-YUPBD27Z.js.map +7 -0
- package/dist/chunk-YXJ52FD5.js +271 -0
- package/dist/chunk-YXJ52FD5.js.map +7 -0
- package/dist/chunk-YZGORRQN.js +3101 -0
- package/dist/chunk-YZGORRQN.js.map +7 -0
- package/dist/chunk-Z6IVJ6ZW.js +30 -0
- package/dist/chunk-Z6IVJ6ZW.js.map +7 -0
- package/dist/chunk-ZFC44XJJ.js +86 -0
- package/dist/chunk-ZFC44XJJ.js.map +7 -0
- package/dist/chunk-ZJDJC5TP.js +82 -0
- package/dist/chunk-ZJDJC5TP.js.map +7 -0
- package/dist/chunk-ZJGZNPDK.js +171 -0
- package/dist/chunk-ZJGZNPDK.js.map +7 -0
- package/dist/chunk-ZJHBJWZX.js +699 -0
- package/dist/chunk-ZJHBJWZX.js.map +7 -0
- package/dist/chunk-ZNOTD65D.js +95 -0
- package/dist/chunk-ZNOTD65D.js.map +7 -0
- package/dist/chunk-ZQ2QIFXW.js +122 -0
- package/dist/chunk-ZQ2QIFXW.js.map +7 -0
- package/dist/chunk-ZRMXPQGY.js +241 -0
- package/dist/chunk-ZRMXPQGY.js.map +7 -0
- package/dist/chunk-ZVEE5IDC.js +3101 -0
- package/dist/chunk-ZVEE5IDC.js.map +7 -0
- package/dist/cli-metadata.js +12 -0
- package/dist/cli-metadata.js.map +7 -0
- package/dist/contract-api.js +104 -0
- package/dist/contract-api.js.map +7 -0
- package/dist/dist-F3K7S5SS.js +549 -0
- package/dist/dist-F3K7S5SS.js.map +7 -0
- package/dist/helper-api.js +51 -0
- package/dist/helper-api.js.map +7 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +7 -0
- package/dist/magic-string.es-V5NOGTUV.js +1315 -0
- package/dist/magic-string.es-V5NOGTUV.js.map +7 -0
- package/dist/openclaw.plugin.json +23 -0
- package/dist/package.json +59 -0
- package/dist/plugin-entry.handlers.runtime-POD4CSHM.js +20 -0
- package/dist/plugin-entry.handlers.runtime-POD4CSHM.js.map +7 -0
- package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js +20 -0
- package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js.map +7 -0
- package/dist/runtime-api.js +104 -0
- package/dist/runtime-api.js.map +7 -0
- package/dist/rust-crypto-H35BXWUU.js +5323 -0
- package/dist/rust-crypto-H35BXWUU.js.map +7 -0
- package/dist/secret-contract-api.js +18 -0
- package/dist/secret-contract-api.js.map +7 -0
- package/dist/setup-entry.js +23 -0
- package/dist/setup-entry.js.map +7 -0
- package/dist/src/account-selection.js +19 -0
- package/dist/src/account-selection.js.map +7 -0
- package/dist/src/actions.js +24 -0
- package/dist/src/actions.js.map +7 -0
- package/dist/src/approval-auth.js +27 -0
- package/dist/src/approval-auth.js.map +7 -0
- package/dist/src/approval-handler.runtime.js +378 -0
- package/dist/src/approval-handler.runtime.js.map +7 -0
- package/dist/src/approval-ids.js +9 -0
- package/dist/src/approval-ids.js.map +7 -0
- package/dist/src/approval-native.js +28 -0
- package/dist/src/approval-native.js.map +7 -0
- package/dist/src/approval-reactions.js +20 -0
- package/dist/src/approval-reactions.js.map +7 -0
- package/dist/src/auth-precedence.js +8 -0
- package/dist/src/auth-precedence.js.map +7 -0
- package/dist/src/channel-account-paths.js +11 -0
- package/dist/src/channel-account-paths.js.map +7 -0
- package/dist/src/channel.js +74 -0
- package/dist/src/channel.js.map +7 -0
- package/dist/src/channel.runtime.js +82 -0
- package/dist/src/channel.runtime.js.map +7 -0
- package/dist/src/cli-metadata.js +8 -0
- package/dist/src/cli-metadata.js.map +7 -0
- package/dist/src/cli.js +936 -0
- package/dist/src/cli.js.map +7 -0
- package/dist/src/config-adapter.js +26 -0
- package/dist/src/config-adapter.js.map +7 -0
- package/dist/src/config-schema.js +8 -0
- package/dist/src/config-schema.js.map +7 -0
- package/dist/src/directory-live.js +35 -0
- package/dist/src/directory-live.js.map +7 -0
- package/dist/src/doctor-contract.js +11 -0
- package/dist/src/doctor-contract.js.map +7 -0
- package/dist/src/doctor.js +42 -0
- package/dist/src/doctor.js.map +7 -0
- package/dist/src/env-vars.js +12 -0
- package/dist/src/env-vars.js.map +7 -0
- package/dist/src/exec-approval-resolver.js +10 -0
- package/dist/src/exec-approval-resolver.js.map +7 -0
- package/dist/src/exec-approvals.js +51 -0
- package/dist/src/exec-approvals.js.map +7 -0
- package/dist/src/group-mentions.js +28 -0
- package/dist/src/group-mentions.js.map +7 -0
- package/dist/src/legacy-crypto-inspector-availability.js +8 -0
- package/dist/src/legacy-crypto-inspector-availability.js.map +7 -0
- package/dist/src/legacy-crypto.js +26 -0
- package/dist/src/legacy-crypto.js.map +7 -0
- package/dist/src/legacy-state.js +24 -0
- package/dist/src/legacy-state.js.map +7 -0
- package/dist/src/matrix/account-config.js +16 -0
- package/dist/src/matrix/account-config.js.map +7 -0
- package/dist/src/matrix/accounts.js +31 -0
- package/dist/src/matrix/accounts.js.map +7 -0
- package/dist/src/matrix/actions/client.js +40 -0
- package/dist/src/matrix/actions/client.js.map +7 -0
- package/dist/src/matrix/actions/devices.js +42 -0
- package/dist/src/matrix/actions/devices.js.map +7 -0
- package/dist/src/matrix/actions/limits.js +8 -0
- package/dist/src/matrix/actions/limits.js.map +7 -0
- package/dist/src/matrix/actions/messages.js +49 -0
- package/dist/src/matrix/actions/messages.js.map +7 -0
- package/dist/src/matrix/actions/pins.js +46 -0
- package/dist/src/matrix/actions/pins.js.map +7 -0
- package/dist/src/matrix/actions/polls.js +37 -0
- package/dist/src/matrix/actions/polls.js.map +7 -0
- package/dist/src/matrix/actions/profile.js +38 -0
- package/dist/src/matrix/actions/profile.js.map +7 -0
- package/dist/src/matrix/actions/reactions.js +40 -0
- package/dist/src/matrix/actions/reactions.js.map +7 -0
- package/dist/src/matrix/actions/room.js +40 -0
- package/dist/src/matrix/actions/room.js.map +7 -0
- package/dist/src/matrix/actions/summary.js +19 -0
- package/dist/src/matrix/actions/summary.js.map +7 -0
- package/dist/src/matrix/actions/types.js +13 -0
- package/dist/src/matrix/actions/types.js.map +7 -0
- package/dist/src/matrix/actions/verification.js +77 -0
- package/dist/src/matrix/actions/verification.js.map +7 -0
- package/dist/src/matrix/actions.js +126 -0
- package/dist/src/matrix/actions.js.map +7 -0
- package/dist/src/matrix/active-client.js +10 -0
- package/dist/src/matrix/active-client.js.map +7 -0
- package/dist/src/matrix/async-lock.js +8 -0
- package/dist/src/matrix/async-lock.js.map +7 -0
- package/dist/src/matrix/backup-health.js +10 -0
- package/dist/src/matrix/backup-health.js.map +7 -0
- package/dist/src/matrix/client/config-runtime-api.js +24 -0
- package/dist/src/matrix/client/config-runtime-api.js.map +7 -0
- package/dist/src/matrix/client/config-secret-input.runtime.js +11 -0
- package/dist/src/matrix/client/config-secret-input.runtime.js.map +7 -0
- package/dist/src/matrix/client/config.js +42 -0
- package/dist/src/matrix/client/config.js.map +7 -0
- package/dist/src/matrix/client/create-client.js +20 -0
- package/dist/src/matrix/client/create-client.js.map +7 -0
- package/dist/src/matrix/client/env-auth.js +26 -0
- package/dist/src/matrix/client/env-auth.js.map +7 -0
- package/dist/src/matrix/client/file-sync-store.js +23 -0
- package/dist/src/matrix/client/file-sync-store.js.map +7 -0
- package/dist/src/matrix/client/logging.js +17 -0
- package/dist/src/matrix/client/logging.js.map +7 -0
- package/dist/src/matrix/client/migration-snapshot.runtime.js +13 -0
- package/dist/src/matrix/client/migration-snapshot.runtime.js.map +7 -0
- package/dist/src/matrix/client/private-network-host.js +8 -0
- package/dist/src/matrix/client/private-network-host.js.map +7 -0
- package/dist/src/matrix/client/runtime.js +8 -0
- package/dist/src/matrix/client/runtime.js.map +7 -0
- package/dist/src/matrix/client/shared.js +34 -0
- package/dist/src/matrix/client/shared.js.map +7 -0
- package/dist/src/matrix/client/storage.js +26 -0
- package/dist/src/matrix/client/storage.js.map +7 -0
- package/dist/src/matrix/client/types.js +7 -0
- package/dist/src/matrix/client/types.js.map +7 -0
- package/dist/src/matrix/client-bootstrap.js +15 -0
- package/dist/src/matrix/client-bootstrap.js.map +7 -0
- package/dist/src/matrix/client-resolver.test-helpers.js +122 -0
- package/dist/src/matrix/client-resolver.test-helpers.js.map +7 -0
- package/dist/src/matrix/client.js +63 -0
- package/dist/src/matrix/client.js.map +7 -0
- package/dist/src/matrix/config-paths.js +12 -0
- package/dist/src/matrix/config-paths.js.map +7 -0
- package/dist/src/matrix/config-update.js +17 -0
- package/dist/src/matrix/config-update.js.map +7 -0
- package/dist/src/matrix/credentials-read.js +22 -0
- package/dist/src/matrix/credentials-read.js.map +7 -0
- package/dist/src/matrix/credentials-write.runtime.js +24 -0
- package/dist/src/matrix/credentials-write.runtime.js.map +7 -0
- package/dist/src/matrix/credentials.js +90 -0
- package/dist/src/matrix/credentials.js.map +7 -0
- package/dist/src/matrix/deps.js +12 -0
- package/dist/src/matrix/deps.js.map +7 -0
- package/dist/src/matrix/device-health.js +10 -0
- package/dist/src/matrix/device-health.js.map +7 -0
- package/dist/src/matrix/direct-management.js +18 -0
- package/dist/src/matrix/direct-management.js.map +7 -0
- package/dist/src/matrix/direct-room.js +18 -0
- package/dist/src/matrix/direct-room.js.map +7 -0
- package/dist/src/matrix/draft-stream.js +33 -0
- package/dist/src/matrix/draft-stream.js.map +7 -0
- package/dist/src/matrix/encryption-guidance.js +17 -0
- package/dist/src/matrix/encryption-guidance.js.map +7 -0
- package/dist/src/matrix/errors.js +12 -0
- package/dist/src/matrix/errors.js.map +7 -0
- package/dist/src/matrix/format.js +13 -0
- package/dist/src/matrix/format.js.map +7 -0
- package/dist/src/matrix/legacy-crypto-inspector.js +73 -0
- package/dist/src/matrix/legacy-crypto-inspector.js.map +7 -0
- package/dist/src/matrix/media-errors.js +12 -0
- package/dist/src/matrix/media-errors.js.map +7 -0
- package/dist/src/matrix/media-text.js +22 -0
- package/dist/src/matrix/media-text.js.map +7 -0
- package/dist/src/matrix/monitor/access-state.js +9 -0
- package/dist/src/matrix/monitor/access-state.js.map +7 -0
- package/dist/src/matrix/monitor/ack-config.js +10 -0
- package/dist/src/matrix/monitor/ack-config.js.map +7 -0
- package/dist/src/matrix/monitor/allowlist.js +12 -0
- package/dist/src/matrix/monitor/allowlist.js.map +7 -0
- package/dist/src/matrix/monitor/auto-join.js +9 -0
- package/dist/src/matrix/monitor/auto-join.js.map +7 -0
- package/dist/src/matrix/monitor/config.js +37 -0
- package/dist/src/matrix/monitor/config.js.map +7 -0
- package/dist/src/matrix/monitor/context-summary.js +13 -0
- package/dist/src/matrix/monitor/context-summary.js.map +7 -0
- package/dist/src/matrix/monitor/direct.js +13 -0
- package/dist/src/matrix/monitor/direct.js.map +7 -0
- package/dist/src/matrix/monitor/events.js +20 -0
- package/dist/src/matrix/monitor/events.js.map +7 -0
- package/dist/src/matrix/monitor/handler.js +76 -0
- package/dist/src/matrix/monitor/handler.js.map +7 -0
- package/dist/src/matrix/monitor/handler.test-helpers.js +268 -0
- package/dist/src/matrix/monitor/handler.test-helpers.js.map +7 -0
- package/dist/src/matrix/monitor/inbound-dedupe.js +17 -0
- package/dist/src/matrix/monitor/inbound-dedupe.js.map +7 -0
- package/dist/src/matrix/monitor/index.js +502 -0
- package/dist/src/matrix/monitor/index.js.map +7 -0
- package/dist/src/matrix/monitor/legacy-crypto-restore.js +99 -0
- package/dist/src/matrix/monitor/legacy-crypto-restore.js.map +7 -0
- package/dist/src/matrix/monitor/location.js +11 -0
- package/dist/src/matrix/monitor/location.js.map +7 -0
- package/dist/src/matrix/monitor/media.js +10 -0
- package/dist/src/matrix/monitor/media.js.map +7 -0
- package/dist/src/matrix/monitor/mentions.js +9 -0
- package/dist/src/matrix/monitor/mentions.js.map +7 -0
- package/dist/src/matrix/monitor/reaction-events.js +38 -0
- package/dist/src/matrix/monitor/reaction-events.js.map +7 -0
- package/dist/src/matrix/monitor/recent-invite.js +10 -0
- package/dist/src/matrix/monitor/recent-invite.js.map +7 -0
- package/dist/src/matrix/monitor/replies.js +33 -0
- package/dist/src/matrix/monitor/replies.js.map +7 -0
- package/dist/src/matrix/monitor/reply-context.js +14 -0
- package/dist/src/matrix/monitor/reply-context.js.map +7 -0
- package/dist/src/matrix/monitor/room-history.js +10 -0
- package/dist/src/matrix/monitor/room-history.js.map +7 -0
- package/dist/src/matrix/monitor/room-info.js +9 -0
- package/dist/src/matrix/monitor/room-info.js.map +7 -0
- package/dist/src/matrix/monitor/rooms.js +9 -0
- package/dist/src/matrix/monitor/rooms.js.map +7 -0
- package/dist/src/matrix/monitor/route.js +12 -0
- package/dist/src/matrix/monitor/route.js.map +7 -0
- package/dist/src/matrix/monitor/runtime-api.js +40 -0
- package/dist/src/matrix/monitor/runtime-api.js.map +7 -0
- package/dist/src/matrix/monitor/startup-verification.js +174 -0
- package/dist/src/matrix/monitor/startup-verification.js.map +7 -0
- package/dist/src/matrix/monitor/startup.js +9 -0
- package/dist/src/matrix/monitor/startup.js.map +7 -0
- package/dist/src/matrix/monitor/status.js +10 -0
- package/dist/src/matrix/monitor/status.js.map +7 -0
- package/dist/src/matrix/monitor/sync-lifecycle.js +9 -0
- package/dist/src/matrix/monitor/sync-lifecycle.js.map +7 -0
- package/dist/src/matrix/monitor/task-runner.js +8 -0
- package/dist/src/matrix/monitor/task-runner.js.map +7 -0
- package/dist/src/matrix/monitor/thread-context.js +14 -0
- package/dist/src/matrix/monitor/thread-context.js.map +7 -0
- package/dist/src/matrix/monitor/threads.js +16 -0
- package/dist/src/matrix/monitor/threads.js.map +7 -0
- package/dist/src/matrix/monitor/types.js +11 -0
- package/dist/src/matrix/monitor/types.js.map +7 -0
- package/dist/src/matrix/monitor/verification-events.js +13 -0
- package/dist/src/matrix/monitor/verification-events.js.map +7 -0
- package/dist/src/matrix/monitor/verification-utils.js +16 -0
- package/dist/src/matrix/monitor/verification-utils.js.map +7 -0
- package/dist/src/matrix/outbound-media-runtime.js +9 -0
- package/dist/src/matrix/outbound-media-runtime.js.map +7 -0
- package/dist/src/matrix/poll-summary.js +14 -0
- package/dist/src/matrix/poll-summary.js.map +7 -0
- package/dist/src/matrix/poll-types.js +55 -0
- package/dist/src/matrix/poll-types.js.map +7 -0
- package/dist/src/matrix/probe.js +9 -0
- package/dist/src/matrix/probe.js.map +7 -0
- package/dist/src/matrix/probe.runtime.js +30 -0
- package/dist/src/matrix/probe.runtime.js.map +7 -0
- package/dist/src/matrix/profile.js +16 -0
- package/dist/src/matrix/profile.js.map +7 -0
- package/dist/src/matrix/reaction-common.js +26 -0
- package/dist/src/matrix/reaction-common.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-bootstrap.js +15 -0
- package/dist/src/matrix/sdk/crypto-bootstrap.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-facade.js +8 -0
- package/dist/src/matrix/sdk/crypto-facade.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-node.runtime.js +15 -0
- package/dist/src/matrix/sdk/crypto-node.runtime.js.map +7 -0
- package/dist/src/matrix/sdk/crypto-runtime.js +84 -0
- package/dist/src/matrix/sdk/crypto-runtime.js.map +7 -0
- package/dist/src/matrix/sdk/decrypt-bridge.js +11 -0
- package/dist/src/matrix/sdk/decrypt-bridge.js.map +7 -0
- package/dist/src/matrix/sdk/event-helpers.js +12 -0
- package/dist/src/matrix/sdk/event-helpers.js.map +7 -0
- package/dist/src/matrix/sdk/http-client.js +13 -0
- package/dist/src/matrix/sdk/http-client.js.map +7 -0
- package/dist/src/matrix/sdk/idb-persistence-lock.js +12 -0
- package/dist/src/matrix/sdk/idb-persistence-lock.js.map +7 -0
- package/dist/src/matrix/sdk/idb-persistence.js +13 -0
- package/dist/src/matrix/sdk/idb-persistence.js.map +7 -0
- package/dist/src/matrix/sdk/idb-persistence.test-helpers.js +83 -0
- package/dist/src/matrix/sdk/idb-persistence.test-helpers.js.map +7 -0
- package/dist/src/matrix/sdk/logger.js +15 -0
- package/dist/src/matrix/sdk/logger.js.map +7 -0
- package/dist/src/matrix/sdk/read-response-with-limit.js +8 -0
- package/dist/src/matrix/sdk/read-response-with-limit.js.map +7 -0
- package/dist/src/matrix/sdk/recovery-key-store.js +14 -0
- package/dist/src/matrix/sdk/recovery-key-store.js.map +7 -0
- package/dist/src/matrix/sdk/transport.js +13 -0
- package/dist/src/matrix/sdk/transport.js.map +7 -0
- package/dist/src/matrix/sdk/types.js +7 -0
- package/dist/src/matrix/sdk/types.js.map +7 -0
- package/dist/src/matrix/sdk/verification-manager.js +11 -0
- package/dist/src/matrix/sdk/verification-manager.js.map +7 -0
- package/dist/src/matrix/sdk/verification-status.js +12 -0
- package/dist/src/matrix/sdk/verification-status.js.map +7 -0
- package/dist/src/matrix/sdk.js +1375 -0
- package/dist/src/matrix/sdk.js.map +7 -0
- package/dist/src/matrix/send/client.js +14 -0
- package/dist/src/matrix/send/client.js.map +7 -0
- package/dist/src/matrix/send/formatting.js +29 -0
- package/dist/src/matrix/send/formatting.js.map +7 -0
- package/dist/src/matrix/send/media.js +26 -0
- package/dist/src/matrix/send/media.js.map +7 -0
- package/dist/src/matrix/send/targets.js +15 -0
- package/dist/src/matrix/send/targets.js.map +7 -0
- package/dist/src/matrix/send/types.js +17 -0
- package/dist/src/matrix/send/types.js.map +7 -0
- package/dist/src/matrix/send.js +51 -0
- package/dist/src/matrix/send.js.map +7 -0
- package/dist/src/matrix/session-store-metadata.js +15 -0
- package/dist/src/matrix/session-store-metadata.js.map +7 -0
- package/dist/src/matrix/startup-abort.js +14 -0
- package/dist/src/matrix/startup-abort.js.map +7 -0
- package/dist/src/matrix/sync-state.js +12 -0
- package/dist/src/matrix/sync-state.js.map +7 -0
- package/dist/src/matrix/target-ids.js +20 -0
- package/dist/src/matrix/target-ids.js.map +7 -0
- package/dist/src/matrix/thread-bindings-shared.js +34 -0
- package/dist/src/matrix/thread-bindings-shared.js.map +7 -0
- package/dist/src/matrix/thread-bindings.js +49 -0
- package/dist/src/matrix/thread-bindings.js.map +7 -0
- package/dist/src/matrix-migration.runtime.js +45 -0
- package/dist/src/matrix-migration.runtime.js.map +7 -0
- package/dist/src/migration-config.js +29 -0
- package/dist/src/migration-config.js.map +7 -0
- package/dist/src/migration-snapshot-backup.js +12 -0
- package/dist/src/migration-snapshot-backup.js.map +7 -0
- package/dist/src/migration-snapshot.js +38 -0
- package/dist/src/migration-snapshot.js.map +7 -0
- package/dist/src/onboarding.js +43 -0
- package/dist/src/onboarding.js.map +7 -0
- package/dist/src/onboarding.test-harness.js +124 -0
- package/dist/src/onboarding.test-harness.js.map +7 -0
- package/dist/src/outbound.js +33 -0
- package/dist/src/outbound.js.map +7 -0
- package/dist/src/plugin-entry.runtime.js +15 -0
- package/dist/src/plugin-entry.runtime.js.map +7 -0
- package/dist/src/profile-update.js +41 -0
- package/dist/src/profile-update.js.map +7 -0
- package/dist/src/record-shared.js +8 -0
- package/dist/src/record-shared.js.map +7 -0
- package/dist/src/resolve-targets.js +34 -0
- package/dist/src/resolve-targets.js.map +7 -0
- package/dist/src/resolver.js +8 -0
- package/dist/src/resolver.js.map +7 -0
- package/dist/src/runtime-api.js +120 -0
- package/dist/src/runtime-api.js.map +7 -0
- package/dist/src/runtime.js +10 -0
- package/dist/src/runtime.js.map +7 -0
- package/dist/src/secret-contract.js +13 -0
- package/dist/src/secret-contract.js.map +7 -0
- package/dist/src/session-route.js +25 -0
- package/dist/src/session-route.js.map +7 -0
- package/dist/src/setup-bootstrap.js +124 -0
- package/dist/src/setup-bootstrap.js.map +7 -0
- package/dist/src/setup-config.js +28 -0
- package/dist/src/setup-config.js.map +7 -0
- package/dist/src/setup-contract.js +16 -0
- package/dist/src/setup-contract.js.map +7 -0
- package/dist/src/setup-core.js +25 -0
- package/dist/src/setup-core.js.map +7 -0
- package/dist/src/setup-surface.js +45 -0
- package/dist/src/setup-surface.js.map +7 -0
- package/dist/src/startup-maintenance.js +29 -0
- package/dist/src/startup-maintenance.js.map +7 -0
- package/dist/src/storage-paths.js +24 -0
- package/dist/src/storage-paths.js.map +7 -0
- package/dist/src/test-helpers.js +49 -0
- package/dist/src/test-helpers.js.map +7 -0
- package/dist/src/test-mocks.js +40 -0
- package/dist/src/test-mocks.js.map +7 -0
- package/dist/src/test-runtime.js +65 -0
- package/dist/src/test-runtime.js.map +7 -0
- package/dist/src/tool-actions.js +68 -0
- package/dist/src/tool-actions.js.map +7 -0
- package/dist/src/tool-actions.runtime.js +73 -0
- package/dist/src/tool-actions.runtime.js.map +7 -0
- package/dist/src/types.js +7 -0
- package/dist/src/types.js.map +7 -0
- package/dist/test-api.js +82 -0
- package/dist/test-api.js.map +7 -0
- package/dist/thread-bindings-runtime.js +15 -0
- package/dist/thread-bindings-runtime.js.map +7 -0
- package/package.json +12 -6
- package/CHANGELOG.md +0 -164
- package/ENDOFFILE +0 -0
- package/EOF +0 -0
- package/SPEC-SUPPORT.md +0 -116
- package/YAMLEND +0 -0
- package/api.ts +0 -18
- package/archipelagolab-lobi-1.0.0.tgz +0 -0
- package/auth-presence.ts +0 -56
- package/channel-plugin-api.ts +0 -3
- package/cli-metadata.ts +0 -11
- package/contract-api.ts +0 -17
- package/docs/CHECKLIST.md +0 -83
- package/docs/FORK_SDK_GUIDE.md +0 -279
- package/helper-api.ts +0 -3
- package/index.test.ts +0 -61
- package/index.ts +0 -65
- package/plugin-entry.handlers.runtime.ts +0 -1
- package/runtime-api.ts +0 -54
- package/runtime-heavy-api.ts +0 -1
- package/scripts/migrate-to-lobi.sh +0 -72
- package/secret-contract-api.ts +0 -5
- package/setup-entry.ts +0 -13
- package/src/account-selection.test.ts +0 -124
- package/src/account-selection.ts +0 -226
- package/src/actions.account-propagation.test.ts +0 -251
- package/src/actions.test.ts +0 -251
- package/src/actions.ts +0 -336
- package/src/approval-auth.test.ts +0 -23
- package/src/approval-auth.ts +0 -25
- package/src/approval-handler.runtime.test.ts +0 -46
- package/src/approval-handler.runtime.ts +0 -400
- package/src/approval-ids.ts +0 -6
- package/src/approval-native.test.ts +0 -329
- package/src/approval-native.ts +0 -336
- package/src/approval-reactions.test.ts +0 -107
- package/src/approval-reactions.ts +0 -158
- package/src/auth-precedence.ts +0 -61
- package/src/channel-account-paths.ts +0 -92
- package/src/channel.account-paths.test.ts +0 -102
- package/src/channel.directory.test.ts +0 -601
- package/src/channel.resolve.test.ts +0 -38
- package/src/channel.runtime.ts +0 -16
- package/src/channel.setup.test.ts +0 -269
- package/src/channel.ts +0 -570
- package/src/cli-metadata.ts +0 -19
- package/src/cli.test.ts +0 -1015
- package/src/cli.ts +0 -1198
- package/src/config-adapter.ts +0 -41
- package/src/config-schema.test.ts +0 -90
- package/src/config-schema.ts +0 -114
- package/src/directory-live.test.ts +0 -200
- package/src/directory-live.ts +0 -238
- package/src/doctor-contract.ts +0 -287
- package/src/doctor.test.ts +0 -440
- package/src/doctor.ts +0 -262
- package/src/env-vars.ts +0 -92
- package/src/exec-approval-resolver.test.ts +0 -68
- package/src/exec-approval-resolver.ts +0 -23
- package/src/exec-approvals.test.ts +0 -483
- package/src/exec-approvals.ts +0 -290
- package/src/group-mentions.ts +0 -41
- package/src/legacy-crypto-inspector-availability.test.ts +0 -81
- package/src/legacy-crypto-inspector-availability.ts +0 -60
- package/src/legacy-crypto.test.ts +0 -234
- package/src/legacy-crypto.ts +0 -549
- package/src/legacy-state.test.ts +0 -86
- package/src/legacy-state.ts +0 -156
- package/src/matrix/account-config.ts +0 -150
- package/src/matrix/accounts.readiness.test.ts +0 -27
- package/src/matrix/accounts.test.ts +0 -757
- package/src/matrix/accounts.ts +0 -194
- package/src/matrix/actions/client.test.ts +0 -215
- package/src/matrix/actions/client.ts +0 -31
- package/src/matrix/actions/devices.test.ts +0 -114
- package/src/matrix/actions/devices.ts +0 -34
- package/src/matrix/actions/limits.test.ts +0 -15
- package/src/matrix/actions/limits.ts +0 -6
- package/src/matrix/actions/messages.test.ts +0 -289
- package/src/matrix/actions/messages.ts +0 -123
- package/src/matrix/actions/pins.test.ts +0 -74
- package/src/matrix/actions/pins.ts +0 -64
- package/src/matrix/actions/polls.test.ts +0 -71
- package/src/matrix/actions/polls.ts +0 -109
- package/src/matrix/actions/profile.test.ts +0 -109
- package/src/matrix/actions/profile.ts +0 -37
- package/src/matrix/actions/reactions.test.ts +0 -135
- package/src/matrix/actions/reactions.ts +0 -59
- package/src/matrix/actions/room.test.ts +0 -79
- package/src/matrix/actions/room.ts +0 -71
- package/src/matrix/actions/summary.test.ts +0 -87
- package/src/matrix/actions/summary.ts +0 -88
- package/src/matrix/actions/types.ts +0 -82
- package/src/matrix/actions/verification.test.ts +0 -105
- package/src/matrix/actions/verification.ts +0 -237
- package/src/matrix/actions.ts +0 -37
- package/src/matrix/active-client.ts +0 -26
- package/src/matrix/async-lock.ts +0 -18
- package/src/matrix/backup-health.ts +0 -115
- package/src/matrix/client/config-runtime-api.ts +0 -14
- package/src/matrix/client/config-secret-input.runtime.ts +0 -1
- package/src/matrix/client/config.ts +0 -982
- package/src/matrix/client/create-client.test.ts +0 -115
- package/src/matrix/client/create-client.ts +0 -101
- package/src/matrix/client/env-auth.ts +0 -6
- package/src/matrix/client/file-sync-store.test.ts +0 -265
- package/src/matrix/client/file-sync-store.ts +0 -289
- package/src/matrix/client/logging.ts +0 -123
- package/src/matrix/client/migration-snapshot.runtime.ts +0 -1
- package/src/matrix/client/private-network-host.ts +0 -56
- package/src/matrix/client/runtime.ts +0 -4
- package/src/matrix/client/shared.test.ts +0 -344
- package/src/matrix/client/shared.ts +0 -306
- package/src/matrix/client/storage.test.ts +0 -634
- package/src/matrix/client/storage.ts +0 -544
- package/src/matrix/client/types.ts +0 -50
- package/src/matrix/client-bootstrap.test.ts +0 -84
- package/src/matrix/client-bootstrap.ts +0 -164
- package/src/matrix/client-resolver.test-helpers.ts +0 -147
- package/src/matrix/client.test.ts +0 -1521
- package/src/matrix/client.ts +0 -23
- package/src/matrix/config-paths.ts +0 -31
- package/src/matrix/config-update.test.ts +0 -237
- package/src/matrix/config-update.ts +0 -291
- package/src/matrix/credentials-read.ts +0 -206
- package/src/matrix/credentials-write.runtime.ts +0 -26
- package/src/matrix/credentials.test.ts +0 -501
- package/src/matrix/credentials.ts +0 -95
- package/src/matrix/deps.test.ts +0 -74
- package/src/matrix/deps.ts +0 -225
- package/src/matrix/device-health.test.ts +0 -45
- package/src/matrix/device-health.ts +0 -31
- package/src/matrix/direct-management.test.ts +0 -350
- package/src/matrix/direct-management.ts +0 -347
- package/src/matrix/direct-room.test.ts +0 -61
- package/src/matrix/direct-room.ts +0 -128
- package/src/matrix/draft-stream.test.ts +0 -406
- package/src/matrix/draft-stream.ts +0 -216
- package/src/matrix/encryption-guidance.ts +0 -27
- package/src/matrix/errors.ts +0 -21
- package/src/matrix/format.test.ts +0 -340
- package/src/matrix/format.ts +0 -428
- package/src/matrix/legacy-crypto-inspector.ts +0 -95
- package/src/matrix/media-errors.ts +0 -20
- package/src/matrix/media-text.ts +0 -169
- package/src/matrix/monitor/access-state.test.ts +0 -45
- package/src/matrix/monitor/access-state.ts +0 -77
- package/src/matrix/monitor/ack-config.test.ts +0 -57
- package/src/matrix/monitor/ack-config.ts +0 -26
- package/src/matrix/monitor/allowlist.test.ts +0 -45
- package/src/matrix/monitor/allowlist.ts +0 -94
- package/src/matrix/monitor/auto-join.test.ts +0 -203
- package/src/matrix/monitor/auto-join.ts +0 -86
- package/src/matrix/monitor/config.test.ts +0 -197
- package/src/matrix/monitor/config.ts +0 -303
- package/src/matrix/monitor/context-summary.ts +0 -43
- package/src/matrix/monitor/direct.test.ts +0 -529
- package/src/matrix/monitor/direct.ts +0 -270
- package/src/matrix/monitor/events.test.ts +0 -1524
- package/src/matrix/monitor/events.ts +0 -213
- package/src/matrix/monitor/handler.body-for-agent.test.ts +0 -396
- package/src/matrix/monitor/handler.group-history.test.ts +0 -648
- package/src/matrix/monitor/handler.media-failure.test.ts +0 -267
- package/src/matrix/monitor/handler.test-helpers.ts +0 -308
- package/src/matrix/monitor/handler.test.ts +0 -2952
- package/src/matrix/monitor/handler.thread-root-media.test.ts +0 -82
- package/src/matrix/monitor/handler.ts +0 -1679
- package/src/matrix/monitor/inbound-dedupe.test.ts +0 -146
- package/src/matrix/monitor/inbound-dedupe.ts +0 -267
- package/src/matrix/monitor/index.test.ts +0 -920
- package/src/matrix/monitor/index.ts +0 -434
- package/src/matrix/monitor/legacy-crypto-restore.test.ts +0 -206
- package/src/matrix/monitor/legacy-crypto-restore.ts +0 -139
- package/src/matrix/monitor/location.ts +0 -100
- package/src/matrix/monitor/media.test.ts +0 -159
- package/src/matrix/monitor/media.ts +0 -119
- package/src/matrix/monitor/mentions.test.ts +0 -289
- package/src/matrix/monitor/mentions.ts +0 -177
- package/src/matrix/monitor/reaction-events.test.ts +0 -326
- package/src/matrix/monitor/reaction-events.ts +0 -187
- package/src/matrix/monitor/recent-invite.test.ts +0 -92
- package/src/matrix/monitor/recent-invite.ts +0 -30
- package/src/matrix/monitor/replies.test.ts +0 -265
- package/src/matrix/monitor/replies.ts +0 -136
- package/src/matrix/monitor/reply-context.test.ts +0 -276
- package/src/matrix/monitor/reply-context.ts +0 -92
- package/src/matrix/monitor/room-history.test.ts +0 -258
- package/src/matrix/monitor/room-history.ts +0 -301
- package/src/matrix/monitor/room-info.test.ts +0 -201
- package/src/matrix/monitor/room-info.ts +0 -126
- package/src/matrix/monitor/rooms.test.ts +0 -121
- package/src/matrix/monitor/rooms.ts +0 -52
- package/src/matrix/monitor/route.test.ts +0 -255
- package/src/matrix/monitor/route.ts +0 -178
- package/src/matrix/monitor/runtime-api.ts +0 -31
- package/src/matrix/monitor/startup-verification.test.ts +0 -294
- package/src/matrix/monitor/startup-verification.ts +0 -237
- package/src/matrix/monitor/startup.test.ts +0 -257
- package/src/matrix/monitor/startup.ts +0 -218
- package/src/matrix/monitor/status.ts +0 -111
- package/src/matrix/monitor/sync-lifecycle.test.ts +0 -224
- package/src/matrix/monitor/sync-lifecycle.ts +0 -91
- package/src/matrix/monitor/task-runner.ts +0 -38
- package/src/matrix/monitor/thread-context.test.ts +0 -149
- package/src/matrix/monitor/thread-context.ts +0 -108
- package/src/matrix/monitor/threads.test.ts +0 -68
- package/src/matrix/monitor/threads.ts +0 -85
- package/src/matrix/monitor/types.ts +0 -30
- package/src/matrix/monitor/verification-events.ts +0 -627
- package/src/matrix/monitor/verification-utils.test.ts +0 -47
- package/src/matrix/monitor/verification-utils.ts +0 -46
- package/src/matrix/outbound-media-runtime.ts +0 -1
- package/src/matrix/poll-summary.ts +0 -110
- package/src/matrix/poll-types.test.ts +0 -205
- package/src/matrix/poll-types.ts +0 -433
- package/src/matrix/probe.runtime.ts +0 -4
- package/src/matrix/probe.test.ts +0 -154
- package/src/matrix/probe.ts +0 -96
- package/src/matrix/profile.test.ts +0 -154
- package/src/matrix/profile.ts +0 -184
- package/src/matrix/reaction-common.test.ts +0 -96
- package/src/matrix/reaction-common.ts +0 -147
- package/src/matrix/sdk/crypto-bootstrap.test.ts +0 -505
- package/src/matrix/sdk/crypto-bootstrap.ts +0 -341
- package/src/matrix/sdk/crypto-facade.test.ts +0 -197
- package/src/matrix/sdk/crypto-facade.ts +0 -207
- package/src/matrix/sdk/crypto-node.runtime.test.ts +0 -27
- package/src/matrix/sdk/crypto-node.runtime.ts +0 -9
- package/src/matrix/sdk/crypto-runtime.ts +0 -11
- package/src/matrix/sdk/decrypt-bridge.ts +0 -356
- package/src/matrix/sdk/event-helpers.test.ts +0 -60
- package/src/matrix/sdk/event-helpers.ts +0 -71
- package/src/matrix/sdk/http-client.test.ts +0 -134
- package/src/matrix/sdk/http-client.ts +0 -87
- package/src/matrix/sdk/idb-persistence-lock.ts +0 -51
- package/src/matrix/sdk/idb-persistence.lock-order.test.ts +0 -108
- package/src/matrix/sdk/idb-persistence.test-helpers.ts +0 -88
- package/src/matrix/sdk/idb-persistence.test.ts +0 -149
- package/src/matrix/sdk/idb-persistence.ts +0 -283
- package/src/matrix/sdk/logger.test.ts +0 -25
- package/src/matrix/sdk/logger.ts +0 -108
- package/src/matrix/sdk/read-response-with-limit.ts +0 -19
- package/src/matrix/sdk/recovery-key-store.test.ts +0 -385
- package/src/matrix/sdk/recovery-key-store.ts +0 -430
- package/src/matrix/sdk/transport.test.ts +0 -161
- package/src/matrix/sdk/transport.ts +0 -344
- package/src/matrix/sdk/types.ts +0 -236
- package/src/matrix/sdk/verification-manager.test.ts +0 -509
- package/src/matrix/sdk/verification-manager.ts +0 -694
- package/src/matrix/sdk/verification-status.ts +0 -23
- package/src/matrix/sdk.test.ts +0 -2568
- package/src/matrix/sdk.ts +0 -1789
- package/src/matrix/send/client.test.ts +0 -174
- package/src/matrix/send/client.ts +0 -90
- package/src/matrix/send/formatting.ts +0 -189
- package/src/matrix/send/media.ts +0 -244
- package/src/matrix/send/targets.test.ts +0 -254
- package/src/matrix/send/targets.ts +0 -104
- package/src/matrix/send/types.ts +0 -134
- package/src/matrix/send.test.ts +0 -958
- package/src/matrix/send.ts +0 -609
- package/src/matrix/session-store-metadata.ts +0 -108
- package/src/matrix/startup-abort.ts +0 -44
- package/src/matrix/sync-state.ts +0 -27
- package/src/matrix/target-ids.ts +0 -102
- package/src/matrix/thread-bindings-shared.ts +0 -201
- package/src/matrix/thread-bindings.test.ts +0 -673
- package/src/matrix/thread-bindings.ts +0 -577
- package/src/matrix-migration.runtime.ts +0 -9
- package/src/migration-config.test.ts +0 -228
- package/src/migration-config.ts +0 -243
- package/src/migration-snapshot-backup.ts +0 -117
- package/src/migration-snapshot.test.ts +0 -184
- package/src/migration-snapshot.ts +0 -55
- package/src/onboarding.resolve.test.ts +0 -55
- package/src/onboarding.test-harness.ts +0 -158
- package/src/onboarding.test.ts +0 -665
- package/src/onboarding.ts +0 -773
- package/src/outbound.test.ts +0 -173
- package/src/outbound.ts +0 -78
- package/src/plugin-entry.runtime.js +0 -159
- package/src/plugin-entry.runtime.test.ts +0 -108
- package/src/plugin-entry.runtime.ts +0 -68
- package/src/profile-update.ts +0 -68
- package/src/record-shared.ts +0 -3
- package/src/resolve-targets.test.ts +0 -178
- package/src/resolve-targets.ts +0 -175
- package/src/resolver.ts +0 -21
- package/src/runtime-api.ts +0 -144
- package/src/runtime.ts +0 -7
- package/src/secret-contract.ts +0 -174
- package/src/session-route.test.ts +0 -315
- package/src/session-route.ts +0 -113
- package/src/setup-bootstrap.ts +0 -94
- package/src/setup-config.ts +0 -222
- package/src/setup-contract.ts +0 -89
- package/src/setup-core.test.ts +0 -326
- package/src/setup-core.ts +0 -50
- package/src/setup-surface.ts +0 -4
- package/src/startup-maintenance.test.ts +0 -227
- package/src/startup-maintenance.ts +0 -114
- package/src/storage-paths.ts +0 -92
- package/src/test-helpers.ts +0 -42
- package/src/test-mocks.ts +0 -55
- package/src/test-runtime.ts +0 -72
- package/src/test-support/monitor-route-test-support.ts +0 -8
- package/src/tool-actions.runtime.ts +0 -1
- package/src/tool-actions.test.ts +0 -422
- package/src/tool-actions.ts +0 -498
- package/src/types.ts +0 -230
- package/test-api.ts +0 -2
- package/thread-bindings-runtime.ts +0 -4
- package/tsconfig.json +0 -16
|
@@ -0,0 +1,3586 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS
|
|
3
|
+
} from "./chunk-CY6WHUCW.js";
|
|
4
|
+
import {
|
|
5
|
+
LogService
|
|
6
|
+
} from "./chunk-BMFZL2P4.js";
|
|
7
|
+
import {
|
|
8
|
+
init_shims
|
|
9
|
+
} from "./chunk-7FLQSTPG.js";
|
|
10
|
+
|
|
11
|
+
// src/matrix/sdk/idb-persistence.ts
|
|
12
|
+
init_shims();
|
|
13
|
+
import fs from "node:fs";
|
|
14
|
+
import path from "node:path";
|
|
15
|
+
|
|
16
|
+
// ../../node_modules/fake-indexeddb/build/esm/index.js
|
|
17
|
+
init_shims();
|
|
18
|
+
|
|
19
|
+
// ../../node_modules/fake-indexeddb/build/esm/fakeIndexedDB.js
|
|
20
|
+
init_shims();
|
|
21
|
+
|
|
22
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBFactory.js
|
|
23
|
+
init_shims();
|
|
24
|
+
|
|
25
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBDatabase.js
|
|
26
|
+
init_shims();
|
|
27
|
+
|
|
28
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBTransaction.js
|
|
29
|
+
init_shims();
|
|
30
|
+
|
|
31
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBObjectStore.js
|
|
32
|
+
init_shims();
|
|
33
|
+
|
|
34
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBCursor.js
|
|
35
|
+
init_shims();
|
|
36
|
+
|
|
37
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBKeyRange.js
|
|
38
|
+
init_shims();
|
|
39
|
+
|
|
40
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/cmp.js
|
|
41
|
+
init_shims();
|
|
42
|
+
|
|
43
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/errors.js
|
|
44
|
+
init_shims();
|
|
45
|
+
var messages = {
|
|
46
|
+
AbortError: "A request was aborted, for example through a call to IDBTransaction.abort.",
|
|
47
|
+
ConstraintError: "A mutation operation in the transaction failed because a constraint was not satisfied. For example, an object such as an object store or index already exists and a request attempted to create a new one.",
|
|
48
|
+
DataCloneError: "The data being stored could not be cloned by the internal structured cloning algorithm.",
|
|
49
|
+
DataError: "Data provided to an operation does not meet requirements.",
|
|
50
|
+
InvalidAccessError: "An invalid operation was performed on an object. For example transaction creation attempt was made, but an empty scope was provided.",
|
|
51
|
+
InvalidStateError: "An operation was called on an object on which it is not allowed or at a time when it is not allowed. Also occurs if a request is made on a source object that has been deleted or removed. Use TransactionInactiveError or ReadOnlyError when possible, as they are more specific variations of InvalidStateError.",
|
|
52
|
+
NotFoundError: "The operation failed because the requested database object could not be found. For example, an object store did not exist but was being opened.",
|
|
53
|
+
ReadOnlyError: 'The mutating operation was attempted in a "readonly" transaction.',
|
|
54
|
+
TransactionInactiveError: "A request was placed against a transaction which is currently not active, or which is finished.",
|
|
55
|
+
SyntaxError: "The keypath argument contains an invalid key path",
|
|
56
|
+
VersionError: "An attempt was made to open a database using a lower version than the existing version."
|
|
57
|
+
};
|
|
58
|
+
var setErrorCode = (error, value) => {
|
|
59
|
+
Object.defineProperty(error, "code", {
|
|
60
|
+
value,
|
|
61
|
+
writable: false,
|
|
62
|
+
enumerable: true,
|
|
63
|
+
configurable: false
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
var AbortError = class extends DOMException {
|
|
67
|
+
constructor(message = messages.AbortError) {
|
|
68
|
+
super(message, "AbortError");
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var ConstraintError = class extends DOMException {
|
|
72
|
+
constructor(message = messages.ConstraintError) {
|
|
73
|
+
super(message, "ConstraintError");
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
var DataError = class extends DOMException {
|
|
77
|
+
constructor(message = messages.DataError) {
|
|
78
|
+
super(message, "DataError");
|
|
79
|
+
setErrorCode(this, 0);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
var InvalidAccessError = class extends DOMException {
|
|
83
|
+
constructor(message = messages.InvalidAccessError) {
|
|
84
|
+
super(message, "InvalidAccessError");
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
var InvalidStateError = class extends DOMException {
|
|
88
|
+
constructor(message = messages.InvalidStateError) {
|
|
89
|
+
super(message, "InvalidStateError");
|
|
90
|
+
setErrorCode(this, 11);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
var NotFoundError = class extends DOMException {
|
|
94
|
+
constructor(message = messages.NotFoundError) {
|
|
95
|
+
super(message, "NotFoundError");
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
var ReadOnlyError = class extends DOMException {
|
|
99
|
+
constructor(message = messages.ReadOnlyError) {
|
|
100
|
+
super(message, "ReadOnlyError");
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
var SyntaxError = class extends DOMException {
|
|
104
|
+
constructor(message = messages.VersionError) {
|
|
105
|
+
super(message, "SyntaxError");
|
|
106
|
+
setErrorCode(this, 12);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
var TransactionInactiveError = class extends DOMException {
|
|
110
|
+
constructor(message = messages.TransactionInactiveError) {
|
|
111
|
+
super(message, "TransactionInactiveError");
|
|
112
|
+
setErrorCode(this, 0);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
var VersionError = class extends DOMException {
|
|
116
|
+
constructor(message = messages.VersionError) {
|
|
117
|
+
super(message, "VersionError");
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/valueToKey.js
|
|
122
|
+
init_shims();
|
|
123
|
+
|
|
124
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/valueToKeyWithoutThrowing.js
|
|
125
|
+
init_shims();
|
|
126
|
+
|
|
127
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/isSharedArrayBuffer.js
|
|
128
|
+
init_shims();
|
|
129
|
+
function isSharedArrayBuffer(input) {
|
|
130
|
+
return typeof SharedArrayBuffer !== "undefined" && input instanceof SharedArrayBuffer;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/valueToKeyWithoutThrowing.js
|
|
134
|
+
var INVALID_TYPE = /* @__PURE__ */ Symbol("INVALID_TYPE");
|
|
135
|
+
var INVALID_VALUE = /* @__PURE__ */ Symbol("INVALID_VALUE");
|
|
136
|
+
var valueToKeyWithoutThrowing = (input, seen) => {
|
|
137
|
+
if (typeof input === "number") {
|
|
138
|
+
if (isNaN(input)) {
|
|
139
|
+
return INVALID_VALUE;
|
|
140
|
+
}
|
|
141
|
+
return input;
|
|
142
|
+
} else if (Object.prototype.toString.call(input) === "[object Date]") {
|
|
143
|
+
const ms = input.valueOf();
|
|
144
|
+
if (isNaN(ms)) {
|
|
145
|
+
return INVALID_VALUE;
|
|
146
|
+
}
|
|
147
|
+
return new Date(ms);
|
|
148
|
+
} else if (typeof input === "string") {
|
|
149
|
+
return input;
|
|
150
|
+
} else if (
|
|
151
|
+
// https://w3c.github.io/IndexedDB/#ref-for-dfn-buffer-source-type
|
|
152
|
+
input instanceof ArrayBuffer || isSharedArrayBuffer(input) || typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView && ArrayBuffer.isView(input)
|
|
153
|
+
) {
|
|
154
|
+
if ("detached" in input ? input.detached : input.byteLength === 0) {
|
|
155
|
+
return INVALID_VALUE;
|
|
156
|
+
}
|
|
157
|
+
let arrayBuffer;
|
|
158
|
+
let offset = 0;
|
|
159
|
+
let length = 0;
|
|
160
|
+
if (input instanceof ArrayBuffer || isSharedArrayBuffer(input)) {
|
|
161
|
+
arrayBuffer = input;
|
|
162
|
+
length = input.byteLength;
|
|
163
|
+
} else {
|
|
164
|
+
arrayBuffer = input.buffer;
|
|
165
|
+
offset = input.byteOffset;
|
|
166
|
+
length = input.byteLength;
|
|
167
|
+
}
|
|
168
|
+
return arrayBuffer.slice(offset, offset + length);
|
|
169
|
+
} else if (Array.isArray(input)) {
|
|
170
|
+
if (seen === void 0) {
|
|
171
|
+
seen = /* @__PURE__ */ new Set();
|
|
172
|
+
} else if (seen.has(input)) {
|
|
173
|
+
return INVALID_VALUE;
|
|
174
|
+
}
|
|
175
|
+
seen.add(input);
|
|
176
|
+
let hasInvalid = false;
|
|
177
|
+
const keys = Array.from({
|
|
178
|
+
length: input.length
|
|
179
|
+
}, (_, i) => {
|
|
180
|
+
if (hasInvalid) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const hop = Object.hasOwn(input, i);
|
|
184
|
+
if (!hop) {
|
|
185
|
+
hasInvalid = true;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
const entry = input[i];
|
|
189
|
+
const key = valueToKeyWithoutThrowing(entry, seen);
|
|
190
|
+
if (key === INVALID_VALUE || key === INVALID_TYPE) {
|
|
191
|
+
hasInvalid = true;
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
return key;
|
|
195
|
+
});
|
|
196
|
+
if (hasInvalid) {
|
|
197
|
+
return INVALID_VALUE;
|
|
198
|
+
}
|
|
199
|
+
return keys;
|
|
200
|
+
} else {
|
|
201
|
+
return INVALID_TYPE;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
var valueToKeyWithoutThrowing_default = valueToKeyWithoutThrowing;
|
|
205
|
+
|
|
206
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/valueToKey.js
|
|
207
|
+
var valueToKey = (input, seen) => {
|
|
208
|
+
const result = valueToKeyWithoutThrowing_default(input, seen);
|
|
209
|
+
if (result === INVALID_VALUE || result === INVALID_TYPE) {
|
|
210
|
+
throw new DataError();
|
|
211
|
+
}
|
|
212
|
+
return result;
|
|
213
|
+
};
|
|
214
|
+
var valueToKey_default = valueToKey;
|
|
215
|
+
|
|
216
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/cmp.js
|
|
217
|
+
var getType = (x) => {
|
|
218
|
+
if (typeof x === "number") {
|
|
219
|
+
return "Number";
|
|
220
|
+
}
|
|
221
|
+
if (Object.prototype.toString.call(x) === "[object Date]") {
|
|
222
|
+
return "Date";
|
|
223
|
+
}
|
|
224
|
+
if (Array.isArray(x)) {
|
|
225
|
+
return "Array";
|
|
226
|
+
}
|
|
227
|
+
if (typeof x === "string") {
|
|
228
|
+
return "String";
|
|
229
|
+
}
|
|
230
|
+
if (x instanceof ArrayBuffer) {
|
|
231
|
+
return "Binary";
|
|
232
|
+
}
|
|
233
|
+
throw new DataError();
|
|
234
|
+
};
|
|
235
|
+
var cmp = (first, second) => {
|
|
236
|
+
if (second === void 0) {
|
|
237
|
+
throw new TypeError();
|
|
238
|
+
}
|
|
239
|
+
first = valueToKey_default(first);
|
|
240
|
+
second = valueToKey_default(second);
|
|
241
|
+
const t1 = getType(first);
|
|
242
|
+
const t2 = getType(second);
|
|
243
|
+
if (t1 !== t2) {
|
|
244
|
+
if (t1 === "Array") {
|
|
245
|
+
return 1;
|
|
246
|
+
}
|
|
247
|
+
if (t1 === "Binary" && (t2 === "String" || t2 === "Date" || t2 === "Number")) {
|
|
248
|
+
return 1;
|
|
249
|
+
}
|
|
250
|
+
if (t1 === "String" && (t2 === "Date" || t2 === "Number")) {
|
|
251
|
+
return 1;
|
|
252
|
+
}
|
|
253
|
+
if (t1 === "Date" && t2 === "Number") {
|
|
254
|
+
return 1;
|
|
255
|
+
}
|
|
256
|
+
return -1;
|
|
257
|
+
}
|
|
258
|
+
if (t1 === "Binary") {
|
|
259
|
+
first = new Uint8Array(first);
|
|
260
|
+
second = new Uint8Array(second);
|
|
261
|
+
}
|
|
262
|
+
if (t1 === "Array" || t1 === "Binary") {
|
|
263
|
+
const length = Math.min(first.length, second.length);
|
|
264
|
+
for (let i = 0; i < length; i++) {
|
|
265
|
+
const result = cmp(first[i], second[i]);
|
|
266
|
+
if (result !== 0) {
|
|
267
|
+
return result;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
if (first.length > second.length) {
|
|
271
|
+
return 1;
|
|
272
|
+
}
|
|
273
|
+
if (first.length < second.length) {
|
|
274
|
+
return -1;
|
|
275
|
+
}
|
|
276
|
+
return 0;
|
|
277
|
+
}
|
|
278
|
+
if (t1 === "Date") {
|
|
279
|
+
if (first.getTime() === second.getTime()) {
|
|
280
|
+
return 0;
|
|
281
|
+
}
|
|
282
|
+
} else {
|
|
283
|
+
if (first === second) {
|
|
284
|
+
return 0;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return first > second ? 1 : -1;
|
|
288
|
+
};
|
|
289
|
+
var cmp_default = cmp;
|
|
290
|
+
|
|
291
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBKeyRange.js
|
|
292
|
+
var FDBKeyRange = class _FDBKeyRange {
|
|
293
|
+
static only(value) {
|
|
294
|
+
if (arguments.length === 0) {
|
|
295
|
+
throw new TypeError();
|
|
296
|
+
}
|
|
297
|
+
value = valueToKey_default(value);
|
|
298
|
+
return new _FDBKeyRange(value, value, false, false);
|
|
299
|
+
}
|
|
300
|
+
static lowerBound(lower, open = false) {
|
|
301
|
+
if (arguments.length === 0) {
|
|
302
|
+
throw new TypeError();
|
|
303
|
+
}
|
|
304
|
+
lower = valueToKey_default(lower);
|
|
305
|
+
return new _FDBKeyRange(lower, void 0, open, true);
|
|
306
|
+
}
|
|
307
|
+
static upperBound(upper, open = false) {
|
|
308
|
+
if (arguments.length === 0) {
|
|
309
|
+
throw new TypeError();
|
|
310
|
+
}
|
|
311
|
+
upper = valueToKey_default(upper);
|
|
312
|
+
return new _FDBKeyRange(void 0, upper, true, open);
|
|
313
|
+
}
|
|
314
|
+
static bound(lower, upper, lowerOpen = false, upperOpen = false) {
|
|
315
|
+
if (arguments.length < 2) {
|
|
316
|
+
throw new TypeError();
|
|
317
|
+
}
|
|
318
|
+
const cmpResult = cmp_default(lower, upper);
|
|
319
|
+
if (cmpResult === 1 || cmpResult === 0 && (lowerOpen || upperOpen)) {
|
|
320
|
+
throw new DataError();
|
|
321
|
+
}
|
|
322
|
+
lower = valueToKey_default(lower);
|
|
323
|
+
upper = valueToKey_default(upper);
|
|
324
|
+
return new _FDBKeyRange(lower, upper, lowerOpen, upperOpen);
|
|
325
|
+
}
|
|
326
|
+
constructor(lower, upper, lowerOpen, upperOpen) {
|
|
327
|
+
this.lower = lower;
|
|
328
|
+
this.upper = upper;
|
|
329
|
+
this.lowerOpen = lowerOpen;
|
|
330
|
+
this.upperOpen = upperOpen;
|
|
331
|
+
}
|
|
332
|
+
// https://w3c.github.io/IndexedDB/#dom-idbkeyrange-includes
|
|
333
|
+
includes(key) {
|
|
334
|
+
if (arguments.length === 0) {
|
|
335
|
+
throw new TypeError();
|
|
336
|
+
}
|
|
337
|
+
key = valueToKey_default(key);
|
|
338
|
+
if (this.lower !== void 0) {
|
|
339
|
+
const cmpResult = cmp_default(this.lower, key);
|
|
340
|
+
if (cmpResult === 1 || cmpResult === 0 && this.lowerOpen) {
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if (this.upper !== void 0) {
|
|
345
|
+
const cmpResult = cmp_default(this.upper, key);
|
|
346
|
+
if (cmpResult === -1 || cmpResult === 0 && this.upperOpen) {
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return true;
|
|
351
|
+
}
|
|
352
|
+
get [Symbol.toStringTag]() {
|
|
353
|
+
return "IDBKeyRange";
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
var FDBKeyRange_default = FDBKeyRange;
|
|
357
|
+
|
|
358
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/extractKey.js
|
|
359
|
+
init_shims();
|
|
360
|
+
var extractKey = (keyPath, value) => {
|
|
361
|
+
if (Array.isArray(keyPath)) {
|
|
362
|
+
const result = [];
|
|
363
|
+
for (let item of keyPath) {
|
|
364
|
+
if (item !== void 0 && item !== null && typeof item !== "string" && item.toString) {
|
|
365
|
+
item = item.toString();
|
|
366
|
+
}
|
|
367
|
+
const key = extractKey(item, value).key;
|
|
368
|
+
result.push(valueToKey_default(key));
|
|
369
|
+
}
|
|
370
|
+
return {
|
|
371
|
+
type: "found",
|
|
372
|
+
key: result
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
if (keyPath === "") {
|
|
376
|
+
return {
|
|
377
|
+
type: "found",
|
|
378
|
+
key: value
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
let remainingKeyPath = keyPath;
|
|
382
|
+
let object = value;
|
|
383
|
+
while (remainingKeyPath !== null) {
|
|
384
|
+
let identifier;
|
|
385
|
+
const i = remainingKeyPath.indexOf(".");
|
|
386
|
+
if (i >= 0) {
|
|
387
|
+
identifier = remainingKeyPath.slice(0, i);
|
|
388
|
+
remainingKeyPath = remainingKeyPath.slice(i + 1);
|
|
389
|
+
} else {
|
|
390
|
+
identifier = remainingKeyPath;
|
|
391
|
+
remainingKeyPath = null;
|
|
392
|
+
}
|
|
393
|
+
const isSpecialIdentifier = identifier === "length" && (typeof object === "string" || Array.isArray(object)) || (identifier === "size" || identifier === "type") && typeof Blob !== "undefined" && object instanceof Blob || (identifier === "name" || identifier === "lastModified") && typeof File !== "undefined" && object instanceof File;
|
|
394
|
+
if (!isSpecialIdentifier && (typeof object !== "object" || object === null || !Object.hasOwn(object, identifier))) {
|
|
395
|
+
return {
|
|
396
|
+
type: "notFound"
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
object = object[identifier];
|
|
400
|
+
}
|
|
401
|
+
return {
|
|
402
|
+
type: "found",
|
|
403
|
+
key: object
|
|
404
|
+
};
|
|
405
|
+
};
|
|
406
|
+
var extractKey_default = extractKey;
|
|
407
|
+
|
|
408
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/cloneValueForInsertion.js
|
|
409
|
+
init_shims();
|
|
410
|
+
function cloneValueForInsertion(value, transaction) {
|
|
411
|
+
if (transaction._state !== "active") {
|
|
412
|
+
throw new Error("Assert: transaction state is active");
|
|
413
|
+
}
|
|
414
|
+
transaction._state = "inactive";
|
|
415
|
+
try {
|
|
416
|
+
return structuredClone(value);
|
|
417
|
+
} finally {
|
|
418
|
+
transaction._state = "active";
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBCursor.js
|
|
423
|
+
var getEffectiveObjectStore = (cursor) => {
|
|
424
|
+
if (cursor.source instanceof FDBObjectStore_default) {
|
|
425
|
+
return cursor.source;
|
|
426
|
+
}
|
|
427
|
+
return cursor.source.objectStore;
|
|
428
|
+
};
|
|
429
|
+
var makeKeyRange = (range, lowers, uppers) => {
|
|
430
|
+
let lower = range !== void 0 ? range.lower : void 0;
|
|
431
|
+
let upper = range !== void 0 ? range.upper : void 0;
|
|
432
|
+
for (const lowerTemp of lowers) {
|
|
433
|
+
if (lowerTemp === void 0) {
|
|
434
|
+
continue;
|
|
435
|
+
}
|
|
436
|
+
if (lower === void 0 || cmp_default(lower, lowerTemp) === 1) {
|
|
437
|
+
lower = lowerTemp;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
for (const upperTemp of uppers) {
|
|
441
|
+
if (upperTemp === void 0) {
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
if (upper === void 0 || cmp_default(upper, upperTemp) === -1) {
|
|
445
|
+
upper = upperTemp;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
if (lower !== void 0 && upper !== void 0) {
|
|
449
|
+
return FDBKeyRange_default.bound(lower, upper);
|
|
450
|
+
}
|
|
451
|
+
if (lower !== void 0) {
|
|
452
|
+
return FDBKeyRange_default.lowerBound(lower);
|
|
453
|
+
}
|
|
454
|
+
if (upper !== void 0) {
|
|
455
|
+
return FDBKeyRange_default.upperBound(upper);
|
|
456
|
+
}
|
|
457
|
+
};
|
|
458
|
+
var FDBCursor = class {
|
|
459
|
+
_gotValue = false;
|
|
460
|
+
_position = void 0;
|
|
461
|
+
// Key of previously returned record
|
|
462
|
+
_objectStorePosition = void 0;
|
|
463
|
+
_keyOnly = false;
|
|
464
|
+
_key = void 0;
|
|
465
|
+
_primaryKey = void 0;
|
|
466
|
+
constructor(source, range, direction = "next", request, keyOnly = false) {
|
|
467
|
+
this._range = range;
|
|
468
|
+
this._source = source;
|
|
469
|
+
this._direction = direction;
|
|
470
|
+
this._request = request;
|
|
471
|
+
this._keyOnly = keyOnly;
|
|
472
|
+
}
|
|
473
|
+
// Read only properties
|
|
474
|
+
get source() {
|
|
475
|
+
return this._source;
|
|
476
|
+
}
|
|
477
|
+
set source(val) {
|
|
478
|
+
}
|
|
479
|
+
get request() {
|
|
480
|
+
return this._request;
|
|
481
|
+
}
|
|
482
|
+
set request(val) {
|
|
483
|
+
}
|
|
484
|
+
get direction() {
|
|
485
|
+
return this._direction;
|
|
486
|
+
}
|
|
487
|
+
set direction(val) {
|
|
488
|
+
}
|
|
489
|
+
get key() {
|
|
490
|
+
return this._key;
|
|
491
|
+
}
|
|
492
|
+
set key(val) {
|
|
493
|
+
}
|
|
494
|
+
get primaryKey() {
|
|
495
|
+
return this._primaryKey;
|
|
496
|
+
}
|
|
497
|
+
set primaryKey(val) {
|
|
498
|
+
}
|
|
499
|
+
// https://w3c.github.io/IndexedDB/#iterate-a-cursor
|
|
500
|
+
_iterate(key, primaryKey) {
|
|
501
|
+
const sourceIsObjectStore = this.source instanceof FDBObjectStore_default;
|
|
502
|
+
const records = this.source instanceof FDBObjectStore_default ? this.source._rawObjectStore.records : this.source._rawIndex.records;
|
|
503
|
+
let foundRecord;
|
|
504
|
+
if (this.direction === "next") {
|
|
505
|
+
const range = makeKeyRange(this._range, [key, this._position], []);
|
|
506
|
+
for (const record of records.values(range)) {
|
|
507
|
+
const cmpResultKey = key !== void 0 ? cmp_default(record.key, key) : void 0;
|
|
508
|
+
const cmpResultPosition = this._position !== void 0 ? cmp_default(record.key, this._position) : void 0;
|
|
509
|
+
if (key !== void 0) {
|
|
510
|
+
if (cmpResultKey === -1) {
|
|
511
|
+
continue;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
if (primaryKey !== void 0) {
|
|
515
|
+
if (cmpResultKey === -1) {
|
|
516
|
+
continue;
|
|
517
|
+
}
|
|
518
|
+
const cmpResultPrimaryKey = cmp_default(record.value, primaryKey);
|
|
519
|
+
if (cmpResultKey === 0 && cmpResultPrimaryKey === -1) {
|
|
520
|
+
continue;
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
if (this._position !== void 0 && sourceIsObjectStore) {
|
|
524
|
+
if (cmpResultPosition !== 1) {
|
|
525
|
+
continue;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
if (this._position !== void 0 && !sourceIsObjectStore) {
|
|
529
|
+
if (cmpResultPosition === -1) {
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
if (cmpResultPosition === 0 && cmp_default(record.value, this._objectStorePosition) !== 1) {
|
|
533
|
+
continue;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
if (this._range !== void 0) {
|
|
537
|
+
if (!this._range.includes(record.key)) {
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
foundRecord = record;
|
|
542
|
+
break;
|
|
543
|
+
}
|
|
544
|
+
} else if (this.direction === "nextunique") {
|
|
545
|
+
const range = makeKeyRange(this._range, [key, this._position], []);
|
|
546
|
+
for (const record of records.values(range)) {
|
|
547
|
+
if (key !== void 0) {
|
|
548
|
+
if (cmp_default(record.key, key) === -1) {
|
|
549
|
+
continue;
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
if (this._position !== void 0) {
|
|
553
|
+
if (cmp_default(record.key, this._position) !== 1) {
|
|
554
|
+
continue;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
if (this._range !== void 0) {
|
|
558
|
+
if (!this._range.includes(record.key)) {
|
|
559
|
+
continue;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
foundRecord = record;
|
|
563
|
+
break;
|
|
564
|
+
}
|
|
565
|
+
} else if (this.direction === "prev") {
|
|
566
|
+
const range = makeKeyRange(this._range, [], [key, this._position]);
|
|
567
|
+
for (const record of records.values(range, "prev")) {
|
|
568
|
+
const cmpResultKey = key !== void 0 ? cmp_default(record.key, key) : void 0;
|
|
569
|
+
const cmpResultPosition = this._position !== void 0 ? cmp_default(record.key, this._position) : void 0;
|
|
570
|
+
if (key !== void 0) {
|
|
571
|
+
if (cmpResultKey === 1) {
|
|
572
|
+
continue;
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
if (primaryKey !== void 0) {
|
|
576
|
+
if (cmpResultKey === 1) {
|
|
577
|
+
continue;
|
|
578
|
+
}
|
|
579
|
+
const cmpResultPrimaryKey = cmp_default(record.value, primaryKey);
|
|
580
|
+
if (cmpResultKey === 0 && cmpResultPrimaryKey === 1) {
|
|
581
|
+
continue;
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
if (this._position !== void 0 && sourceIsObjectStore) {
|
|
585
|
+
if (cmpResultPosition !== -1) {
|
|
586
|
+
continue;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
if (this._position !== void 0 && !sourceIsObjectStore) {
|
|
590
|
+
if (cmpResultPosition === 1) {
|
|
591
|
+
continue;
|
|
592
|
+
}
|
|
593
|
+
if (cmpResultPosition === 0 && cmp_default(record.value, this._objectStorePosition) !== -1) {
|
|
594
|
+
continue;
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
if (this._range !== void 0) {
|
|
598
|
+
if (!this._range.includes(record.key)) {
|
|
599
|
+
continue;
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
foundRecord = record;
|
|
603
|
+
break;
|
|
604
|
+
}
|
|
605
|
+
} else if (this.direction === "prevunique") {
|
|
606
|
+
let tempRecord;
|
|
607
|
+
const range = makeKeyRange(this._range, [], [key, this._position]);
|
|
608
|
+
for (const record of records.values(range, "prev")) {
|
|
609
|
+
if (key !== void 0) {
|
|
610
|
+
if (cmp_default(record.key, key) === 1) {
|
|
611
|
+
continue;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
if (this._position !== void 0) {
|
|
615
|
+
if (cmp_default(record.key, this._position) !== -1) {
|
|
616
|
+
continue;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
if (this._range !== void 0) {
|
|
620
|
+
if (!this._range.includes(record.key)) {
|
|
621
|
+
continue;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
tempRecord = record;
|
|
625
|
+
break;
|
|
626
|
+
}
|
|
627
|
+
if (tempRecord) {
|
|
628
|
+
foundRecord = records.get(tempRecord.key);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
let result;
|
|
632
|
+
if (!foundRecord) {
|
|
633
|
+
this._key = void 0;
|
|
634
|
+
if (!sourceIsObjectStore) {
|
|
635
|
+
this._objectStorePosition = void 0;
|
|
636
|
+
}
|
|
637
|
+
if (!this._keyOnly && this.toString() === "[object IDBCursorWithValue]") {
|
|
638
|
+
this.value = void 0;
|
|
639
|
+
}
|
|
640
|
+
result = null;
|
|
641
|
+
} else {
|
|
642
|
+
this._position = foundRecord.key;
|
|
643
|
+
if (!sourceIsObjectStore) {
|
|
644
|
+
this._objectStorePosition = foundRecord.value;
|
|
645
|
+
}
|
|
646
|
+
this._key = foundRecord.key;
|
|
647
|
+
if (sourceIsObjectStore) {
|
|
648
|
+
this._primaryKey = structuredClone(foundRecord.key);
|
|
649
|
+
if (!this._keyOnly && this.toString() === "[object IDBCursorWithValue]") {
|
|
650
|
+
this.value = structuredClone(foundRecord.value);
|
|
651
|
+
}
|
|
652
|
+
} else {
|
|
653
|
+
this._primaryKey = structuredClone(foundRecord.value);
|
|
654
|
+
if (!this._keyOnly && this.toString() === "[object IDBCursorWithValue]") {
|
|
655
|
+
if (this.source instanceof FDBObjectStore_default) {
|
|
656
|
+
throw new Error("This should never happen");
|
|
657
|
+
}
|
|
658
|
+
const value = this.source.objectStore._rawObjectStore.getValue(foundRecord.value);
|
|
659
|
+
this.value = structuredClone(value);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
this._gotValue = true;
|
|
663
|
+
result = this;
|
|
664
|
+
}
|
|
665
|
+
return result;
|
|
666
|
+
}
|
|
667
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBCursor-update-IDBRequest-any-value
|
|
668
|
+
update(value) {
|
|
669
|
+
if (value === void 0) {
|
|
670
|
+
throw new TypeError();
|
|
671
|
+
}
|
|
672
|
+
const effectiveObjectStore = getEffectiveObjectStore(this);
|
|
673
|
+
const effectiveKey = Object.hasOwn(this.source, "_rawIndex") ? this.primaryKey : this._position;
|
|
674
|
+
const transaction = effectiveObjectStore.transaction;
|
|
675
|
+
if (transaction._state !== "active") {
|
|
676
|
+
throw new TransactionInactiveError();
|
|
677
|
+
}
|
|
678
|
+
if (transaction.mode === "readonly") {
|
|
679
|
+
throw new ReadOnlyError();
|
|
680
|
+
}
|
|
681
|
+
if (effectiveObjectStore._rawObjectStore.deleted) {
|
|
682
|
+
throw new InvalidStateError();
|
|
683
|
+
}
|
|
684
|
+
if (!(this.source instanceof FDBObjectStore_default) && this.source._rawIndex.deleted) {
|
|
685
|
+
throw new InvalidStateError();
|
|
686
|
+
}
|
|
687
|
+
if (!this._gotValue || !Object.hasOwn(this, "value")) {
|
|
688
|
+
throw new InvalidStateError();
|
|
689
|
+
}
|
|
690
|
+
const clone = cloneValueForInsertion(value, transaction);
|
|
691
|
+
if (effectiveObjectStore.keyPath !== null) {
|
|
692
|
+
let tempKey;
|
|
693
|
+
try {
|
|
694
|
+
tempKey = extractKey_default(effectiveObjectStore.keyPath, clone).key;
|
|
695
|
+
} catch (err) {
|
|
696
|
+
}
|
|
697
|
+
if (cmp_default(tempKey, effectiveKey) !== 0) {
|
|
698
|
+
throw new DataError();
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
const record = {
|
|
702
|
+
key: effectiveKey,
|
|
703
|
+
value: clone
|
|
704
|
+
};
|
|
705
|
+
return transaction._execRequestAsync({
|
|
706
|
+
operation: effectiveObjectStore._rawObjectStore.storeRecord.bind(effectiveObjectStore._rawObjectStore, record, false, transaction._rollbackLog),
|
|
707
|
+
source: this
|
|
708
|
+
});
|
|
709
|
+
}
|
|
710
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBCursor-advance-void-unsigned-long-count
|
|
711
|
+
advance(count) {
|
|
712
|
+
if (!Number.isInteger(count) || count <= 0) {
|
|
713
|
+
throw new TypeError();
|
|
714
|
+
}
|
|
715
|
+
const effectiveObjectStore = getEffectiveObjectStore(this);
|
|
716
|
+
const transaction = effectiveObjectStore.transaction;
|
|
717
|
+
if (transaction._state !== "active") {
|
|
718
|
+
throw new TransactionInactiveError();
|
|
719
|
+
}
|
|
720
|
+
if (effectiveObjectStore._rawObjectStore.deleted) {
|
|
721
|
+
throw new InvalidStateError();
|
|
722
|
+
}
|
|
723
|
+
if (!(this.source instanceof FDBObjectStore_default) && this.source._rawIndex.deleted) {
|
|
724
|
+
throw new InvalidStateError();
|
|
725
|
+
}
|
|
726
|
+
if (!this._gotValue) {
|
|
727
|
+
throw new InvalidStateError();
|
|
728
|
+
}
|
|
729
|
+
if (this._request) {
|
|
730
|
+
this._request.readyState = "pending";
|
|
731
|
+
}
|
|
732
|
+
transaction._execRequestAsync({
|
|
733
|
+
operation: () => {
|
|
734
|
+
let result;
|
|
735
|
+
for (let i = 0; i < count; i++) {
|
|
736
|
+
result = this._iterate();
|
|
737
|
+
if (!result) {
|
|
738
|
+
break;
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
return result;
|
|
742
|
+
},
|
|
743
|
+
request: this._request,
|
|
744
|
+
source: this.source
|
|
745
|
+
});
|
|
746
|
+
this._gotValue = false;
|
|
747
|
+
}
|
|
748
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBCursor-continue-void-any-key
|
|
749
|
+
continue(key) {
|
|
750
|
+
const effectiveObjectStore = getEffectiveObjectStore(this);
|
|
751
|
+
const transaction = effectiveObjectStore.transaction;
|
|
752
|
+
if (transaction._state !== "active") {
|
|
753
|
+
throw new TransactionInactiveError();
|
|
754
|
+
}
|
|
755
|
+
if (effectiveObjectStore._rawObjectStore.deleted) {
|
|
756
|
+
throw new InvalidStateError();
|
|
757
|
+
}
|
|
758
|
+
if (!(this.source instanceof FDBObjectStore_default) && this.source._rawIndex.deleted) {
|
|
759
|
+
throw new InvalidStateError();
|
|
760
|
+
}
|
|
761
|
+
if (!this._gotValue) {
|
|
762
|
+
throw new InvalidStateError();
|
|
763
|
+
}
|
|
764
|
+
if (key !== void 0) {
|
|
765
|
+
key = valueToKey_default(key);
|
|
766
|
+
const cmpResult = cmp_default(key, this._position);
|
|
767
|
+
if (cmpResult <= 0 && (this.direction === "next" || this.direction === "nextunique") || cmpResult >= 0 && (this.direction === "prev" || this.direction === "prevunique")) {
|
|
768
|
+
throw new DataError();
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
if (this._request) {
|
|
772
|
+
this._request.readyState = "pending";
|
|
773
|
+
}
|
|
774
|
+
transaction._execRequestAsync({
|
|
775
|
+
operation: this._iterate.bind(this, key),
|
|
776
|
+
request: this._request,
|
|
777
|
+
source: this.source
|
|
778
|
+
});
|
|
779
|
+
this._gotValue = false;
|
|
780
|
+
}
|
|
781
|
+
// hthttps://w3c.github.io/IndexedDB/#dom-idbcursor-continueprimarykey
|
|
782
|
+
continuePrimaryKey(key, primaryKey) {
|
|
783
|
+
const effectiveObjectStore = getEffectiveObjectStore(this);
|
|
784
|
+
const transaction = effectiveObjectStore.transaction;
|
|
785
|
+
if (transaction._state !== "active") {
|
|
786
|
+
throw new TransactionInactiveError();
|
|
787
|
+
}
|
|
788
|
+
if (effectiveObjectStore._rawObjectStore.deleted) {
|
|
789
|
+
throw new InvalidStateError();
|
|
790
|
+
}
|
|
791
|
+
if (!(this.source instanceof FDBObjectStore_default) && this.source._rawIndex.deleted) {
|
|
792
|
+
throw new InvalidStateError();
|
|
793
|
+
}
|
|
794
|
+
if (this.source instanceof FDBObjectStore_default || this.direction !== "next" && this.direction !== "prev") {
|
|
795
|
+
throw new InvalidAccessError();
|
|
796
|
+
}
|
|
797
|
+
if (!this._gotValue) {
|
|
798
|
+
throw new InvalidStateError();
|
|
799
|
+
}
|
|
800
|
+
if (key === void 0 || primaryKey === void 0) {
|
|
801
|
+
throw new DataError();
|
|
802
|
+
}
|
|
803
|
+
key = valueToKey_default(key);
|
|
804
|
+
const cmpResult = cmp_default(key, this._position);
|
|
805
|
+
if (cmpResult === -1 && this.direction === "next" || cmpResult === 1 && this.direction === "prev") {
|
|
806
|
+
throw new DataError();
|
|
807
|
+
}
|
|
808
|
+
const cmpResult2 = cmp_default(primaryKey, this._objectStorePosition);
|
|
809
|
+
if (cmpResult === 0) {
|
|
810
|
+
if (cmpResult2 <= 0 && this.direction === "next" || cmpResult2 >= 0 && this.direction === "prev") {
|
|
811
|
+
throw new DataError();
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
if (this._request) {
|
|
815
|
+
this._request.readyState = "pending";
|
|
816
|
+
}
|
|
817
|
+
transaction._execRequestAsync({
|
|
818
|
+
operation: this._iterate.bind(this, key, primaryKey),
|
|
819
|
+
request: this._request,
|
|
820
|
+
source: this.source
|
|
821
|
+
});
|
|
822
|
+
this._gotValue = false;
|
|
823
|
+
}
|
|
824
|
+
delete() {
|
|
825
|
+
const effectiveObjectStore = getEffectiveObjectStore(this);
|
|
826
|
+
const effectiveKey = Object.hasOwn(this.source, "_rawIndex") ? this.primaryKey : this._position;
|
|
827
|
+
const transaction = effectiveObjectStore.transaction;
|
|
828
|
+
if (transaction._state !== "active") {
|
|
829
|
+
throw new TransactionInactiveError();
|
|
830
|
+
}
|
|
831
|
+
if (transaction.mode === "readonly") {
|
|
832
|
+
throw new ReadOnlyError();
|
|
833
|
+
}
|
|
834
|
+
if (effectiveObjectStore._rawObjectStore.deleted) {
|
|
835
|
+
throw new InvalidStateError();
|
|
836
|
+
}
|
|
837
|
+
if (!(this.source instanceof FDBObjectStore_default) && this.source._rawIndex.deleted) {
|
|
838
|
+
throw new InvalidStateError();
|
|
839
|
+
}
|
|
840
|
+
if (!this._gotValue || !Object.hasOwn(this, "value")) {
|
|
841
|
+
throw new InvalidStateError();
|
|
842
|
+
}
|
|
843
|
+
return transaction._execRequestAsync({
|
|
844
|
+
operation: effectiveObjectStore._rawObjectStore.deleteRecord.bind(effectiveObjectStore._rawObjectStore, effectiveKey, transaction._rollbackLog),
|
|
845
|
+
source: this
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
get [Symbol.toStringTag]() {
|
|
849
|
+
return "IDBCursor";
|
|
850
|
+
}
|
|
851
|
+
};
|
|
852
|
+
var FDBCursor_default = FDBCursor;
|
|
853
|
+
|
|
854
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBCursorWithValue.js
|
|
855
|
+
init_shims();
|
|
856
|
+
var FDBCursorWithValue = class extends FDBCursor_default {
|
|
857
|
+
value = void 0;
|
|
858
|
+
constructor(source, range, direction, request) {
|
|
859
|
+
super(source, range, direction, request);
|
|
860
|
+
}
|
|
861
|
+
get [Symbol.toStringTag]() {
|
|
862
|
+
return "IDBCursorWithValue";
|
|
863
|
+
}
|
|
864
|
+
};
|
|
865
|
+
var FDBCursorWithValue_default = FDBCursorWithValue;
|
|
866
|
+
|
|
867
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBIndex.js
|
|
868
|
+
init_shims();
|
|
869
|
+
|
|
870
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBRequest.js
|
|
871
|
+
init_shims();
|
|
872
|
+
|
|
873
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/FakeEventTarget.js
|
|
874
|
+
init_shims();
|
|
875
|
+
var stopped = (event, listener) => {
|
|
876
|
+
return event.immediatePropagationStopped || event.eventPhase === event.CAPTURING_PHASE && listener.capture === false || event.eventPhase === event.BUBBLING_PHASE && listener.capture === true;
|
|
877
|
+
};
|
|
878
|
+
var invokeEventListeners = (event, obj) => {
|
|
879
|
+
event.currentTarget = obj;
|
|
880
|
+
const errors = [];
|
|
881
|
+
const invoke = (callbackOrObject) => {
|
|
882
|
+
try {
|
|
883
|
+
const callback2 = typeof callbackOrObject === "function" ? callbackOrObject : callbackOrObject.handleEvent;
|
|
884
|
+
callback2.call(event.currentTarget, event);
|
|
885
|
+
} catch (err) {
|
|
886
|
+
errors.push(err);
|
|
887
|
+
}
|
|
888
|
+
};
|
|
889
|
+
for (const listener of obj.listeners.slice()) {
|
|
890
|
+
if (event.type !== listener.type || stopped(event, listener)) {
|
|
891
|
+
continue;
|
|
892
|
+
}
|
|
893
|
+
invoke(listener.callback);
|
|
894
|
+
}
|
|
895
|
+
const typeToProp = {
|
|
896
|
+
abort: "onabort",
|
|
897
|
+
blocked: "onblocked",
|
|
898
|
+
close: "onclose",
|
|
899
|
+
complete: "oncomplete",
|
|
900
|
+
error: "onerror",
|
|
901
|
+
success: "onsuccess",
|
|
902
|
+
upgradeneeded: "onupgradeneeded",
|
|
903
|
+
versionchange: "onversionchange"
|
|
904
|
+
};
|
|
905
|
+
const prop = typeToProp[event.type];
|
|
906
|
+
if (prop === void 0) {
|
|
907
|
+
throw new Error(`Unknown event type: "${event.type}"`);
|
|
908
|
+
}
|
|
909
|
+
const callback = event.currentTarget[prop];
|
|
910
|
+
if (callback) {
|
|
911
|
+
const listener = {
|
|
912
|
+
callback,
|
|
913
|
+
capture: false,
|
|
914
|
+
type: event.type
|
|
915
|
+
};
|
|
916
|
+
if (!stopped(event, listener)) {
|
|
917
|
+
invoke(listener.callback);
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
if (errors.length) {
|
|
921
|
+
throw new AggregateError(errors);
|
|
922
|
+
}
|
|
923
|
+
};
|
|
924
|
+
var FakeEventTarget = class {
|
|
925
|
+
listeners = [];
|
|
926
|
+
// These will be overridden in individual subclasses and made not readonly
|
|
927
|
+
addEventListener(type, callback, options) {
|
|
928
|
+
const capture = !!(typeof options === "object" && options ? options.capture : options);
|
|
929
|
+
this.listeners.push({
|
|
930
|
+
callback,
|
|
931
|
+
capture,
|
|
932
|
+
type
|
|
933
|
+
});
|
|
934
|
+
}
|
|
935
|
+
removeEventListener(type, callback, options) {
|
|
936
|
+
const capture = !!(typeof options === "object" && options ? options.capture : options);
|
|
937
|
+
const i = this.listeners.findIndex((listener) => {
|
|
938
|
+
return listener.type === type && listener.callback === callback && listener.capture === capture;
|
|
939
|
+
});
|
|
940
|
+
this.listeners.splice(i, 1);
|
|
941
|
+
}
|
|
942
|
+
// http://www.w3.org/TR/dom/#dispatching-events
|
|
943
|
+
dispatchEvent(event) {
|
|
944
|
+
if (event.dispatched || !event.initialized) {
|
|
945
|
+
throw new InvalidStateError("The object is in an invalid state.");
|
|
946
|
+
}
|
|
947
|
+
event.isTrusted = false;
|
|
948
|
+
event.dispatched = true;
|
|
949
|
+
event.target = this;
|
|
950
|
+
event.eventPhase = event.CAPTURING_PHASE;
|
|
951
|
+
for (const obj of event.eventPath) {
|
|
952
|
+
if (!event.propagationStopped) {
|
|
953
|
+
invokeEventListeners(event, obj);
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
event.eventPhase = event.AT_TARGET;
|
|
957
|
+
if (!event.propagationStopped) {
|
|
958
|
+
invokeEventListeners(event, event.target);
|
|
959
|
+
}
|
|
960
|
+
if (event.bubbles) {
|
|
961
|
+
event.eventPath.reverse();
|
|
962
|
+
event.eventPhase = event.BUBBLING_PHASE;
|
|
963
|
+
for (const obj of event.eventPath) {
|
|
964
|
+
if (!event.propagationStopped) {
|
|
965
|
+
invokeEventListeners(event, obj);
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
event.dispatched = false;
|
|
970
|
+
event.eventPhase = event.NONE;
|
|
971
|
+
event.currentTarget = null;
|
|
972
|
+
if (event.canceled) {
|
|
973
|
+
return false;
|
|
974
|
+
}
|
|
975
|
+
return true;
|
|
976
|
+
}
|
|
977
|
+
};
|
|
978
|
+
var FakeEventTarget_default = FakeEventTarget;
|
|
979
|
+
|
|
980
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBRequest.js
|
|
981
|
+
var FDBRequest = class extends FakeEventTarget_default {
|
|
982
|
+
_result = null;
|
|
983
|
+
_error = null;
|
|
984
|
+
source = null;
|
|
985
|
+
transaction = null;
|
|
986
|
+
readyState = "pending";
|
|
987
|
+
onsuccess = null;
|
|
988
|
+
onerror = null;
|
|
989
|
+
get error() {
|
|
990
|
+
if (this.readyState === "pending") {
|
|
991
|
+
throw new InvalidStateError();
|
|
992
|
+
}
|
|
993
|
+
return this._error;
|
|
994
|
+
}
|
|
995
|
+
set error(value) {
|
|
996
|
+
this._error = value;
|
|
997
|
+
}
|
|
998
|
+
get result() {
|
|
999
|
+
if (this.readyState === "pending") {
|
|
1000
|
+
throw new InvalidStateError();
|
|
1001
|
+
}
|
|
1002
|
+
return this._result;
|
|
1003
|
+
}
|
|
1004
|
+
set result(value) {
|
|
1005
|
+
this._result = value;
|
|
1006
|
+
}
|
|
1007
|
+
get [Symbol.toStringTag]() {
|
|
1008
|
+
return "IDBRequest";
|
|
1009
|
+
}
|
|
1010
|
+
};
|
|
1011
|
+
var FDBRequest_default = FDBRequest;
|
|
1012
|
+
|
|
1013
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/FakeDOMStringList.js
|
|
1014
|
+
init_shims();
|
|
1015
|
+
var FakeDOMStringList = class {
|
|
1016
|
+
constructor(...values) {
|
|
1017
|
+
this._values = values;
|
|
1018
|
+
for (let i = 0; i < values.length; i++) {
|
|
1019
|
+
this[i] = values[i];
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
contains(value) {
|
|
1023
|
+
return this._values.includes(value);
|
|
1024
|
+
}
|
|
1025
|
+
item(i) {
|
|
1026
|
+
if (i < 0 || i >= this._values.length) {
|
|
1027
|
+
return null;
|
|
1028
|
+
}
|
|
1029
|
+
return this._values[i];
|
|
1030
|
+
}
|
|
1031
|
+
get length() {
|
|
1032
|
+
return this._values.length;
|
|
1033
|
+
}
|
|
1034
|
+
[Symbol.iterator]() {
|
|
1035
|
+
return this._values[Symbol.iterator]();
|
|
1036
|
+
}
|
|
1037
|
+
// Handled by proxy
|
|
1038
|
+
// Used internally, should not be used by others. I could maybe get rid of these and replace rather than mutate, but too lazy to check the spec.
|
|
1039
|
+
_push(...values) {
|
|
1040
|
+
for (let i = 0; i < values.length; i++) {
|
|
1041
|
+
this[this._values.length + i] = values[i];
|
|
1042
|
+
}
|
|
1043
|
+
this._values.push(...values);
|
|
1044
|
+
}
|
|
1045
|
+
_sort(...values) {
|
|
1046
|
+
this._values.sort(...values);
|
|
1047
|
+
for (let i = 0; i < this._values.length; i++) {
|
|
1048
|
+
this[i] = this._values[i];
|
|
1049
|
+
}
|
|
1050
|
+
return this;
|
|
1051
|
+
}
|
|
1052
|
+
};
|
|
1053
|
+
var FakeDOMStringList_default = FakeDOMStringList;
|
|
1054
|
+
|
|
1055
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/valueToKeyRange.js
|
|
1056
|
+
init_shims();
|
|
1057
|
+
var valueToKeyRange = (value, nullDisallowedFlag = false) => {
|
|
1058
|
+
if (value instanceof FDBKeyRange_default) {
|
|
1059
|
+
return value;
|
|
1060
|
+
}
|
|
1061
|
+
if (value === null || value === void 0) {
|
|
1062
|
+
if (nullDisallowedFlag) {
|
|
1063
|
+
throw new DataError();
|
|
1064
|
+
}
|
|
1065
|
+
return new FDBKeyRange_default(void 0, void 0, false, false);
|
|
1066
|
+
}
|
|
1067
|
+
const key = valueToKey_default(value);
|
|
1068
|
+
return FDBKeyRange_default.only(key);
|
|
1069
|
+
};
|
|
1070
|
+
var valueToKeyRange_default = valueToKeyRange;
|
|
1071
|
+
|
|
1072
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/getKeyPath.js
|
|
1073
|
+
init_shims();
|
|
1074
|
+
var convertKey = (key) => typeof key === "object" && key ? key + "" : key;
|
|
1075
|
+
function getKeyPath(keyPath) {
|
|
1076
|
+
return Array.isArray(keyPath) ? keyPath.map(convertKey) : convertKey(keyPath);
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/extractGetAllOptions.js
|
|
1080
|
+
init_shims();
|
|
1081
|
+
|
|
1082
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/isPotentiallyValidKeyRange.js
|
|
1083
|
+
init_shims();
|
|
1084
|
+
var isPotentiallyValidKeyRange = (value) => {
|
|
1085
|
+
if (value instanceof FDBKeyRange_default) {
|
|
1086
|
+
return true;
|
|
1087
|
+
}
|
|
1088
|
+
const key = valueToKeyWithoutThrowing_default(value);
|
|
1089
|
+
return key !== INVALID_TYPE;
|
|
1090
|
+
};
|
|
1091
|
+
var isPotentiallyValidKeyRange_default = isPotentiallyValidKeyRange;
|
|
1092
|
+
|
|
1093
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/enforceRange.js
|
|
1094
|
+
init_shims();
|
|
1095
|
+
var enforceRange = (num, type) => {
|
|
1096
|
+
const min = 0;
|
|
1097
|
+
const max = type === "unsigned long" ? 4294967295 : 9007199254740991;
|
|
1098
|
+
if (isNaN(num) || num < min || num > max) {
|
|
1099
|
+
throw new TypeError();
|
|
1100
|
+
}
|
|
1101
|
+
if (num >= 0) {
|
|
1102
|
+
return Math.floor(num);
|
|
1103
|
+
}
|
|
1104
|
+
};
|
|
1105
|
+
var enforceRange_default = enforceRange;
|
|
1106
|
+
|
|
1107
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/extractGetAllOptions.js
|
|
1108
|
+
var extractGetAllOptions = (queryOrOptions, count, numArguments) => {
|
|
1109
|
+
let query;
|
|
1110
|
+
let direction;
|
|
1111
|
+
if (queryOrOptions === void 0 || queryOrOptions === null || isPotentiallyValidKeyRange_default(queryOrOptions)) {
|
|
1112
|
+
query = queryOrOptions;
|
|
1113
|
+
if (numArguments > 1 && count !== void 0) {
|
|
1114
|
+
count = enforceRange_default(count, "unsigned long");
|
|
1115
|
+
}
|
|
1116
|
+
} else {
|
|
1117
|
+
const getAllOptions = queryOrOptions;
|
|
1118
|
+
if (getAllOptions.query !== void 0) {
|
|
1119
|
+
query = getAllOptions.query;
|
|
1120
|
+
}
|
|
1121
|
+
if (getAllOptions.count !== void 0) {
|
|
1122
|
+
count = enforceRange_default(getAllOptions.count, "unsigned long");
|
|
1123
|
+
}
|
|
1124
|
+
if (getAllOptions.direction !== void 0) {
|
|
1125
|
+
direction = getAllOptions.direction;
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
return {
|
|
1129
|
+
query,
|
|
1130
|
+
count,
|
|
1131
|
+
direction
|
|
1132
|
+
};
|
|
1133
|
+
};
|
|
1134
|
+
var extractGetAllOptions_default = extractGetAllOptions;
|
|
1135
|
+
|
|
1136
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBIndex.js
|
|
1137
|
+
var confirmActiveTransaction = (index) => {
|
|
1138
|
+
if (index._rawIndex.deleted || index.objectStore._rawObjectStore.deleted) {
|
|
1139
|
+
throw new InvalidStateError();
|
|
1140
|
+
}
|
|
1141
|
+
if (index.objectStore.transaction._state !== "active") {
|
|
1142
|
+
throw new TransactionInactiveError();
|
|
1143
|
+
}
|
|
1144
|
+
};
|
|
1145
|
+
var FDBIndex = class {
|
|
1146
|
+
constructor(objectStore, rawIndex) {
|
|
1147
|
+
this._rawIndex = rawIndex;
|
|
1148
|
+
this._name = rawIndex.name;
|
|
1149
|
+
this.objectStore = objectStore;
|
|
1150
|
+
this.keyPath = getKeyPath(rawIndex.keyPath);
|
|
1151
|
+
this.multiEntry = rawIndex.multiEntry;
|
|
1152
|
+
this.unique = rawIndex.unique;
|
|
1153
|
+
}
|
|
1154
|
+
get name() {
|
|
1155
|
+
return this._name;
|
|
1156
|
+
}
|
|
1157
|
+
// https://w3c.github.io/IndexedDB/#dom-idbindex-name
|
|
1158
|
+
set name(name) {
|
|
1159
|
+
const transaction = this.objectStore.transaction;
|
|
1160
|
+
if (!transaction.db._runningVersionchangeTransaction) {
|
|
1161
|
+
throw transaction._state === "active" ? new InvalidStateError() : new TransactionInactiveError();
|
|
1162
|
+
}
|
|
1163
|
+
if (transaction._state !== "active") {
|
|
1164
|
+
throw new TransactionInactiveError();
|
|
1165
|
+
}
|
|
1166
|
+
if (this._rawIndex.deleted || this.objectStore._rawObjectStore.deleted) {
|
|
1167
|
+
throw new InvalidStateError();
|
|
1168
|
+
}
|
|
1169
|
+
name = String(name);
|
|
1170
|
+
if (name === this._name) {
|
|
1171
|
+
return;
|
|
1172
|
+
}
|
|
1173
|
+
if (this.objectStore.indexNames.contains(name)) {
|
|
1174
|
+
throw new ConstraintError();
|
|
1175
|
+
}
|
|
1176
|
+
const oldName = this._name;
|
|
1177
|
+
const oldIndexNames = [...this.objectStore.indexNames];
|
|
1178
|
+
this._name = name;
|
|
1179
|
+
this._rawIndex.name = name;
|
|
1180
|
+
this.objectStore._indexesCache.delete(oldName);
|
|
1181
|
+
this.objectStore._indexesCache.set(name, this);
|
|
1182
|
+
this.objectStore._rawObjectStore.rawIndexes.delete(oldName);
|
|
1183
|
+
this.objectStore._rawObjectStore.rawIndexes.set(name, this._rawIndex);
|
|
1184
|
+
this.objectStore.indexNames = new FakeDOMStringList_default(...Array.from(this.objectStore._rawObjectStore.rawIndexes.keys()).filter((indexName) => {
|
|
1185
|
+
const index = this.objectStore._rawObjectStore.rawIndexes.get(indexName);
|
|
1186
|
+
return index && !index.deleted;
|
|
1187
|
+
}).sort());
|
|
1188
|
+
if (!this.objectStore.transaction._createdIndexes.has(this._rawIndex)) {
|
|
1189
|
+
transaction._rollbackLog.push(() => {
|
|
1190
|
+
this._name = oldName;
|
|
1191
|
+
this._rawIndex.name = oldName;
|
|
1192
|
+
this.objectStore._indexesCache.delete(name);
|
|
1193
|
+
this.objectStore._indexesCache.set(oldName, this);
|
|
1194
|
+
this.objectStore._rawObjectStore.rawIndexes.delete(name);
|
|
1195
|
+
this.objectStore._rawObjectStore.rawIndexes.set(oldName, this._rawIndex);
|
|
1196
|
+
this.objectStore.indexNames = new FakeDOMStringList_default(...oldIndexNames);
|
|
1197
|
+
});
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-openCursor-IDBRequest-any-range-IDBCursorDirection-direction
|
|
1201
|
+
openCursor(range, direction) {
|
|
1202
|
+
confirmActiveTransaction(this);
|
|
1203
|
+
if (range === null) {
|
|
1204
|
+
range = void 0;
|
|
1205
|
+
}
|
|
1206
|
+
if (range !== void 0 && !(range instanceof FDBKeyRange_default)) {
|
|
1207
|
+
range = FDBKeyRange_default.only(valueToKey_default(range));
|
|
1208
|
+
}
|
|
1209
|
+
const request = new FDBRequest_default();
|
|
1210
|
+
request.source = this;
|
|
1211
|
+
request.transaction = this.objectStore.transaction;
|
|
1212
|
+
const cursor = new FDBCursorWithValue_default(this, range, direction, request);
|
|
1213
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1214
|
+
operation: cursor._iterate.bind(cursor),
|
|
1215
|
+
request,
|
|
1216
|
+
source: this
|
|
1217
|
+
});
|
|
1218
|
+
}
|
|
1219
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-openKeyCursor-IDBRequest-any-range-IDBCursorDirection-direction
|
|
1220
|
+
openKeyCursor(range, direction) {
|
|
1221
|
+
confirmActiveTransaction(this);
|
|
1222
|
+
if (range === null) {
|
|
1223
|
+
range = void 0;
|
|
1224
|
+
}
|
|
1225
|
+
if (range !== void 0 && !(range instanceof FDBKeyRange_default)) {
|
|
1226
|
+
range = FDBKeyRange_default.only(valueToKey_default(range));
|
|
1227
|
+
}
|
|
1228
|
+
const request = new FDBRequest_default();
|
|
1229
|
+
request.source = this;
|
|
1230
|
+
request.transaction = this.objectStore.transaction;
|
|
1231
|
+
const cursor = new FDBCursor_default(this, range, direction, request, true);
|
|
1232
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1233
|
+
operation: cursor._iterate.bind(cursor),
|
|
1234
|
+
request,
|
|
1235
|
+
source: this
|
|
1236
|
+
});
|
|
1237
|
+
}
|
|
1238
|
+
get(key) {
|
|
1239
|
+
confirmActiveTransaction(this);
|
|
1240
|
+
if (!(key instanceof FDBKeyRange_default)) {
|
|
1241
|
+
key = valueToKey_default(key);
|
|
1242
|
+
}
|
|
1243
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1244
|
+
operation: this._rawIndex.getValue.bind(this._rawIndex, key),
|
|
1245
|
+
source: this
|
|
1246
|
+
});
|
|
1247
|
+
}
|
|
1248
|
+
// http://w3c.github.io/IndexedDB/#dom-idbindex-getall
|
|
1249
|
+
getAll(queryOrOptions, count) {
|
|
1250
|
+
const options = extractGetAllOptions_default(queryOrOptions, count, arguments.length);
|
|
1251
|
+
confirmActiveTransaction(this);
|
|
1252
|
+
const range = valueToKeyRange_default(options.query);
|
|
1253
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1254
|
+
operation: this._rawIndex.getAllValues.bind(this._rawIndex, range, options.count, options.direction),
|
|
1255
|
+
source: this
|
|
1256
|
+
});
|
|
1257
|
+
}
|
|
1258
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-getKey-IDBRequest-any-key
|
|
1259
|
+
getKey(key) {
|
|
1260
|
+
confirmActiveTransaction(this);
|
|
1261
|
+
if (!(key instanceof FDBKeyRange_default)) {
|
|
1262
|
+
key = valueToKey_default(key);
|
|
1263
|
+
}
|
|
1264
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1265
|
+
operation: this._rawIndex.getKey.bind(this._rawIndex, key),
|
|
1266
|
+
source: this
|
|
1267
|
+
});
|
|
1268
|
+
}
|
|
1269
|
+
// http://w3c.github.io/IndexedDB/#dom-idbindex-getallkeys
|
|
1270
|
+
getAllKeys(queryOrOptions, count) {
|
|
1271
|
+
const options = extractGetAllOptions_default(queryOrOptions, count, arguments.length);
|
|
1272
|
+
confirmActiveTransaction(this);
|
|
1273
|
+
const range = valueToKeyRange_default(options.query);
|
|
1274
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1275
|
+
operation: this._rawIndex.getAllKeys.bind(this._rawIndex, range, options.count, options.direction),
|
|
1276
|
+
source: this
|
|
1277
|
+
});
|
|
1278
|
+
}
|
|
1279
|
+
// https://www.w3.org/TR/IndexedDB/#dom-idbobjectstore-getallrecords
|
|
1280
|
+
getAllRecords(options) {
|
|
1281
|
+
let query;
|
|
1282
|
+
let count;
|
|
1283
|
+
let direction;
|
|
1284
|
+
if (options !== void 0) {
|
|
1285
|
+
if (options.query !== void 0) {
|
|
1286
|
+
query = options.query;
|
|
1287
|
+
}
|
|
1288
|
+
if (options.count !== void 0) {
|
|
1289
|
+
count = enforceRange_default(options.count, "unsigned long");
|
|
1290
|
+
}
|
|
1291
|
+
if (options.direction !== void 0) {
|
|
1292
|
+
direction = options.direction;
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
confirmActiveTransaction(this);
|
|
1296
|
+
const range = valueToKeyRange_default(query);
|
|
1297
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1298
|
+
operation: this._rawIndex.getAllRecords.bind(this._rawIndex, range, count, direction),
|
|
1299
|
+
source: this
|
|
1300
|
+
});
|
|
1301
|
+
}
|
|
1302
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-count-IDBRequest-any-key
|
|
1303
|
+
count(key) {
|
|
1304
|
+
confirmActiveTransaction(this);
|
|
1305
|
+
if (key === null) {
|
|
1306
|
+
key = void 0;
|
|
1307
|
+
}
|
|
1308
|
+
if (key !== void 0 && !(key instanceof FDBKeyRange_default)) {
|
|
1309
|
+
key = FDBKeyRange_default.only(valueToKey_default(key));
|
|
1310
|
+
}
|
|
1311
|
+
return this.objectStore.transaction._execRequestAsync({
|
|
1312
|
+
operation: () => {
|
|
1313
|
+
return this._rawIndex.count(key);
|
|
1314
|
+
},
|
|
1315
|
+
source: this
|
|
1316
|
+
});
|
|
1317
|
+
}
|
|
1318
|
+
get [Symbol.toStringTag]() {
|
|
1319
|
+
return "IDBIndex";
|
|
1320
|
+
}
|
|
1321
|
+
};
|
|
1322
|
+
var FDBIndex_default = FDBIndex;
|
|
1323
|
+
|
|
1324
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/canInjectKey.js
|
|
1325
|
+
init_shims();
|
|
1326
|
+
var canInjectKey = (keyPath, value) => {
|
|
1327
|
+
if (Array.isArray(keyPath)) {
|
|
1328
|
+
throw new Error("The key paths used in this section are always strings and never sequences, since it is not possible to create a object store which has a key generator and also has a key path that is a sequence.");
|
|
1329
|
+
}
|
|
1330
|
+
const identifiers = keyPath.split(".");
|
|
1331
|
+
if (identifiers.length === 0) {
|
|
1332
|
+
throw new Error("Assert: identifiers is not empty");
|
|
1333
|
+
}
|
|
1334
|
+
identifiers.pop();
|
|
1335
|
+
for (const identifier of identifiers) {
|
|
1336
|
+
if (typeof value !== "object" && !Array.isArray(value)) {
|
|
1337
|
+
return false;
|
|
1338
|
+
}
|
|
1339
|
+
const hop = Object.hasOwn(value, identifier);
|
|
1340
|
+
if (!hop) {
|
|
1341
|
+
return true;
|
|
1342
|
+
}
|
|
1343
|
+
value = value[identifier];
|
|
1344
|
+
}
|
|
1345
|
+
return typeof value === "object" || Array.isArray(value);
|
|
1346
|
+
};
|
|
1347
|
+
var canInjectKey_default = canInjectKey;
|
|
1348
|
+
|
|
1349
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/Index.js
|
|
1350
|
+
init_shims();
|
|
1351
|
+
|
|
1352
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBRecord.js
|
|
1353
|
+
init_shims();
|
|
1354
|
+
var FDBRecord = class {
|
|
1355
|
+
constructor(key, primaryKey, value) {
|
|
1356
|
+
this._key = key;
|
|
1357
|
+
this._primaryKey = primaryKey;
|
|
1358
|
+
this._value = value;
|
|
1359
|
+
}
|
|
1360
|
+
get key() {
|
|
1361
|
+
return this._key;
|
|
1362
|
+
}
|
|
1363
|
+
set key(_) {
|
|
1364
|
+
}
|
|
1365
|
+
get primaryKey() {
|
|
1366
|
+
return this._primaryKey;
|
|
1367
|
+
}
|
|
1368
|
+
set primaryKey(_) {
|
|
1369
|
+
}
|
|
1370
|
+
get value() {
|
|
1371
|
+
return this._value;
|
|
1372
|
+
}
|
|
1373
|
+
set value(_) {
|
|
1374
|
+
}
|
|
1375
|
+
get [Symbol.toStringTag]() {
|
|
1376
|
+
return "IDBRecord";
|
|
1377
|
+
}
|
|
1378
|
+
};
|
|
1379
|
+
var FDBRecord_default = FDBRecord;
|
|
1380
|
+
|
|
1381
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/RecordStore.js
|
|
1382
|
+
init_shims();
|
|
1383
|
+
|
|
1384
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/binarySearchTree.js
|
|
1385
|
+
init_shims();
|
|
1386
|
+
var MAX_TOMBSTONE_FACTOR = 2 / 3;
|
|
1387
|
+
var EVERYTHING_KEY_RANGE = new FDBKeyRange_default(void 0, void 0, false, false);
|
|
1388
|
+
var BinarySearchTree = class {
|
|
1389
|
+
_numTombstones = 0;
|
|
1390
|
+
_numNodes = 0;
|
|
1391
|
+
/**
|
|
1392
|
+
*
|
|
1393
|
+
* @param keysAreUnique - whether keys can be unique, and thus whether we cn skip checking `record.value` when
|
|
1394
|
+
* comparing. This is basically used to distinguish ObjectStores (where the value is the entire object, not used
|
|
1395
|
+
* as a key) from non-unique Indexes (where both the key and the value are meaningful keys used for sorting)
|
|
1396
|
+
*/
|
|
1397
|
+
constructor(keysAreUnique) {
|
|
1398
|
+
this._keysAreUnique = !!keysAreUnique;
|
|
1399
|
+
}
|
|
1400
|
+
size() {
|
|
1401
|
+
return this._numNodes - this._numTombstones;
|
|
1402
|
+
}
|
|
1403
|
+
get(record) {
|
|
1404
|
+
return this._getByComparator(this._root, (otherRecord) => this._compare(record, otherRecord));
|
|
1405
|
+
}
|
|
1406
|
+
contains(record) {
|
|
1407
|
+
return !!this.get(record);
|
|
1408
|
+
}
|
|
1409
|
+
_compare(a, b) {
|
|
1410
|
+
const keyComparison = cmp_default(a.key, b.key);
|
|
1411
|
+
if (keyComparison !== 0) {
|
|
1412
|
+
return keyComparison;
|
|
1413
|
+
}
|
|
1414
|
+
return this._keysAreUnique ? 0 : cmp_default(a.value, b.value);
|
|
1415
|
+
}
|
|
1416
|
+
_getByComparator(node, comparator) {
|
|
1417
|
+
let current = node;
|
|
1418
|
+
while (current) {
|
|
1419
|
+
const comparison = comparator(current.record);
|
|
1420
|
+
if (comparison < 0) {
|
|
1421
|
+
current = current.left;
|
|
1422
|
+
} else if (comparison > 0) {
|
|
1423
|
+
current = current.right;
|
|
1424
|
+
} else {
|
|
1425
|
+
return current.record;
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
/**
|
|
1430
|
+
* Put a new record, and return the overwritten record if an overwrite occurred.
|
|
1431
|
+
* @param record
|
|
1432
|
+
* @param noOverwrite - throw a ConstraintError in case of overwrite
|
|
1433
|
+
*/
|
|
1434
|
+
put(record, noOverwrite = false) {
|
|
1435
|
+
if (!this._root) {
|
|
1436
|
+
this._root = {
|
|
1437
|
+
record,
|
|
1438
|
+
left: void 0,
|
|
1439
|
+
right: void 0,
|
|
1440
|
+
parent: void 0,
|
|
1441
|
+
deleted: false,
|
|
1442
|
+
// the root is always black in a red-black tree
|
|
1443
|
+
red: false
|
|
1444
|
+
};
|
|
1445
|
+
this._numNodes++;
|
|
1446
|
+
return;
|
|
1447
|
+
}
|
|
1448
|
+
return this._put(this._root, record, noOverwrite);
|
|
1449
|
+
}
|
|
1450
|
+
_put(node, record, noOverwrite) {
|
|
1451
|
+
const comparison = this._compare(record, node.record);
|
|
1452
|
+
if (comparison < 0) {
|
|
1453
|
+
if (node.left) {
|
|
1454
|
+
return this._put(node.left, record, noOverwrite);
|
|
1455
|
+
} else {
|
|
1456
|
+
node.left = {
|
|
1457
|
+
record,
|
|
1458
|
+
left: void 0,
|
|
1459
|
+
right: void 0,
|
|
1460
|
+
parent: node,
|
|
1461
|
+
deleted: false,
|
|
1462
|
+
red: true
|
|
1463
|
+
};
|
|
1464
|
+
this._onNewNodeInserted(node.left);
|
|
1465
|
+
}
|
|
1466
|
+
} else if (comparison > 0) {
|
|
1467
|
+
if (node.right) {
|
|
1468
|
+
return this._put(node.right, record, noOverwrite);
|
|
1469
|
+
} else {
|
|
1470
|
+
node.right = {
|
|
1471
|
+
record,
|
|
1472
|
+
left: void 0,
|
|
1473
|
+
right: void 0,
|
|
1474
|
+
parent: node,
|
|
1475
|
+
deleted: false,
|
|
1476
|
+
red: true
|
|
1477
|
+
};
|
|
1478
|
+
this._onNewNodeInserted(node.right);
|
|
1479
|
+
}
|
|
1480
|
+
} else if (node.deleted) {
|
|
1481
|
+
node.deleted = false;
|
|
1482
|
+
node.record = record;
|
|
1483
|
+
this._numTombstones--;
|
|
1484
|
+
} else if (noOverwrite) {
|
|
1485
|
+
throw new ConstraintError();
|
|
1486
|
+
} else {
|
|
1487
|
+
const overwrittenRecord = node.record;
|
|
1488
|
+
node.record = record;
|
|
1489
|
+
return overwrittenRecord;
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
delete(record) {
|
|
1493
|
+
if (!this._root) {
|
|
1494
|
+
return;
|
|
1495
|
+
}
|
|
1496
|
+
this._delete(this._root, record);
|
|
1497
|
+
if (this._numTombstones > this._numNodes * MAX_TOMBSTONE_FACTOR) {
|
|
1498
|
+
const records = [...this.getAllRecords()];
|
|
1499
|
+
this._root = this._rebuild(records, void 0, false);
|
|
1500
|
+
this._numNodes = records.length;
|
|
1501
|
+
this._numTombstones = 0;
|
|
1502
|
+
}
|
|
1503
|
+
}
|
|
1504
|
+
_delete(node, record) {
|
|
1505
|
+
if (!node) {
|
|
1506
|
+
return;
|
|
1507
|
+
}
|
|
1508
|
+
const comparison = this._compare(record, node.record);
|
|
1509
|
+
if (comparison < 0) {
|
|
1510
|
+
this._delete(node.left, record);
|
|
1511
|
+
} else if (comparison > 0) {
|
|
1512
|
+
this._delete(node.right, record);
|
|
1513
|
+
} else if (!node.deleted) {
|
|
1514
|
+
this._numTombstones++;
|
|
1515
|
+
node.deleted = true;
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
*getAllRecords(descending = false) {
|
|
1519
|
+
yield* this.getRecords(EVERYTHING_KEY_RANGE, descending);
|
|
1520
|
+
}
|
|
1521
|
+
*getRecords(keyRange, descending = false) {
|
|
1522
|
+
yield* this._getRecordsForNode(this._root, keyRange, descending);
|
|
1523
|
+
}
|
|
1524
|
+
*_getRecordsForNode(node, keyRange, descending = false) {
|
|
1525
|
+
if (!node) {
|
|
1526
|
+
return;
|
|
1527
|
+
}
|
|
1528
|
+
yield* this._findRecords(node, keyRange, descending);
|
|
1529
|
+
}
|
|
1530
|
+
*_findRecords(node, keyRange, descending = false) {
|
|
1531
|
+
const {
|
|
1532
|
+
lower,
|
|
1533
|
+
upper,
|
|
1534
|
+
lowerOpen,
|
|
1535
|
+
upperOpen
|
|
1536
|
+
} = keyRange;
|
|
1537
|
+
const {
|
|
1538
|
+
record: {
|
|
1539
|
+
key
|
|
1540
|
+
}
|
|
1541
|
+
} = node;
|
|
1542
|
+
const lowerComparison = lower === void 0 ? -1 : cmp_default(lower, key);
|
|
1543
|
+
const upperComparison = upper === void 0 ? 1 : cmp_default(upper, key);
|
|
1544
|
+
const moreLeft = this._keysAreUnique ? lowerComparison < 0 : lowerComparison <= 0;
|
|
1545
|
+
const moreRight = this._keysAreUnique ? upperComparison > 0 : upperComparison >= 0;
|
|
1546
|
+
const moreStart = descending ? moreRight : moreLeft;
|
|
1547
|
+
const moreEnd = descending ? moreLeft : moreRight;
|
|
1548
|
+
const start = descending ? "right" : "left";
|
|
1549
|
+
const end = descending ? "left" : "right";
|
|
1550
|
+
const lowerMatches = lowerOpen ? lowerComparison < 0 : lowerComparison <= 0;
|
|
1551
|
+
const upperMatches = upperOpen ? upperComparison > 0 : upperComparison >= 0;
|
|
1552
|
+
if (moreStart && node[start]) {
|
|
1553
|
+
yield* this._findRecords(node[start], keyRange, descending);
|
|
1554
|
+
}
|
|
1555
|
+
if (lowerMatches && upperMatches && !node.deleted) {
|
|
1556
|
+
yield node.record;
|
|
1557
|
+
}
|
|
1558
|
+
if (moreEnd && node[end]) {
|
|
1559
|
+
yield* this._findRecords(node[end], keyRange, descending);
|
|
1560
|
+
}
|
|
1561
|
+
}
|
|
1562
|
+
_onNewNodeInserted(newNode) {
|
|
1563
|
+
this._numNodes++;
|
|
1564
|
+
this._rebalanceTree(newNode);
|
|
1565
|
+
}
|
|
1566
|
+
// based on https://en.wikipedia.org/wiki/Red%E2%80%93black_tree#Insertion
|
|
1567
|
+
_rebalanceTree(node) {
|
|
1568
|
+
let parent = node.parent;
|
|
1569
|
+
do {
|
|
1570
|
+
if (!parent.red) {
|
|
1571
|
+
return;
|
|
1572
|
+
}
|
|
1573
|
+
const grandparent = parent.parent;
|
|
1574
|
+
if (!grandparent) {
|
|
1575
|
+
parent.red = false;
|
|
1576
|
+
return;
|
|
1577
|
+
}
|
|
1578
|
+
const parentIsRightChild = parent === grandparent.right;
|
|
1579
|
+
const uncle = parentIsRightChild ? grandparent.left : grandparent.right;
|
|
1580
|
+
if (!uncle || !uncle.red) {
|
|
1581
|
+
if (node === (parentIsRightChild ? parent.left : parent.right)) {
|
|
1582
|
+
this._rotateSubtree(parent, parentIsRightChild);
|
|
1583
|
+
node = parent;
|
|
1584
|
+
parent = parentIsRightChild ? grandparent.right : grandparent.left;
|
|
1585
|
+
}
|
|
1586
|
+
this._rotateSubtree(grandparent, !parentIsRightChild);
|
|
1587
|
+
parent.red = false;
|
|
1588
|
+
grandparent.red = true;
|
|
1589
|
+
return;
|
|
1590
|
+
}
|
|
1591
|
+
parent.red = false;
|
|
1592
|
+
uncle.red = false;
|
|
1593
|
+
grandparent.red = true;
|
|
1594
|
+
node = grandparent;
|
|
1595
|
+
} while (node.parent ? parent = node.parent : false);
|
|
1596
|
+
}
|
|
1597
|
+
// based on https://en.wikipedia.org/wiki/Red%E2%80%93black_tree#Implementation
|
|
1598
|
+
_rotateSubtree(node, right) {
|
|
1599
|
+
const parent = node.parent;
|
|
1600
|
+
const newRoot = right ? node.left : node.right;
|
|
1601
|
+
const newChild = right ? newRoot.right : newRoot.left;
|
|
1602
|
+
node[right ? "left" : "right"] = newChild;
|
|
1603
|
+
if (newChild) {
|
|
1604
|
+
newChild.parent = node;
|
|
1605
|
+
}
|
|
1606
|
+
newRoot[right ? "right" : "left"] = node;
|
|
1607
|
+
newRoot.parent = parent;
|
|
1608
|
+
node.parent = newRoot;
|
|
1609
|
+
if (parent) {
|
|
1610
|
+
parent[node === parent.right ? "right" : "left"] = newRoot;
|
|
1611
|
+
} else {
|
|
1612
|
+
this._root = newRoot;
|
|
1613
|
+
}
|
|
1614
|
+
return newRoot;
|
|
1615
|
+
}
|
|
1616
|
+
// rebuild the whole tree from scratch, used to avoid too many deletion tombstones accumulating
|
|
1617
|
+
_rebuild(records, parent, red) {
|
|
1618
|
+
const {
|
|
1619
|
+
length
|
|
1620
|
+
} = records;
|
|
1621
|
+
if (!length) {
|
|
1622
|
+
return void 0;
|
|
1623
|
+
}
|
|
1624
|
+
const mid = length >>> 1;
|
|
1625
|
+
const node = {
|
|
1626
|
+
record: records[mid],
|
|
1627
|
+
left: void 0,
|
|
1628
|
+
right: void 0,
|
|
1629
|
+
parent,
|
|
1630
|
+
deleted: false,
|
|
1631
|
+
red
|
|
1632
|
+
};
|
|
1633
|
+
const left = this._rebuild(records.slice(0, mid), node, !red);
|
|
1634
|
+
const right = this._rebuild(records.slice(mid + 1), node, !red);
|
|
1635
|
+
node.left = left;
|
|
1636
|
+
node.right = right;
|
|
1637
|
+
return node;
|
|
1638
|
+
}
|
|
1639
|
+
};
|
|
1640
|
+
|
|
1641
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/RecordStore.js
|
|
1642
|
+
var RecordStore = class {
|
|
1643
|
+
constructor(keysAreUnique) {
|
|
1644
|
+
this.keysAreUnique = keysAreUnique;
|
|
1645
|
+
this.records = new BinarySearchTree(this.keysAreUnique);
|
|
1646
|
+
}
|
|
1647
|
+
get(key) {
|
|
1648
|
+
const range = key instanceof FDBKeyRange_default ? key : FDBKeyRange_default.only(key);
|
|
1649
|
+
return this.records.getRecords(range).next().value;
|
|
1650
|
+
}
|
|
1651
|
+
/**
|
|
1652
|
+
* Put a new record, and return the overwritten record if an overwrite occurred.
|
|
1653
|
+
* @param newRecord
|
|
1654
|
+
* @param noOverwrite - throw a ConstraintError in case of overwrite
|
|
1655
|
+
*/
|
|
1656
|
+
put(newRecord, noOverwrite = false) {
|
|
1657
|
+
return this.records.put(newRecord, noOverwrite);
|
|
1658
|
+
}
|
|
1659
|
+
delete(key) {
|
|
1660
|
+
const range = key instanceof FDBKeyRange_default ? key : FDBKeyRange_default.only(key);
|
|
1661
|
+
const deletedRecords = [...this.records.getRecords(range)];
|
|
1662
|
+
for (const record of deletedRecords) {
|
|
1663
|
+
this.records.delete(record);
|
|
1664
|
+
}
|
|
1665
|
+
return deletedRecords;
|
|
1666
|
+
}
|
|
1667
|
+
deleteByValue(key) {
|
|
1668
|
+
const range = key instanceof FDBKeyRange_default ? key : FDBKeyRange_default.only(key);
|
|
1669
|
+
const deletedRecords = [];
|
|
1670
|
+
for (const record of this.records.getAllRecords()) {
|
|
1671
|
+
if (range.includes(record.value)) {
|
|
1672
|
+
this.records.delete(record);
|
|
1673
|
+
deletedRecords.push(record);
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1676
|
+
return deletedRecords;
|
|
1677
|
+
}
|
|
1678
|
+
clear() {
|
|
1679
|
+
const deletedRecords = [...this.records.getAllRecords()];
|
|
1680
|
+
this.records = new BinarySearchTree(this.keysAreUnique);
|
|
1681
|
+
return deletedRecords;
|
|
1682
|
+
}
|
|
1683
|
+
values(range, direction = "next") {
|
|
1684
|
+
const descending = direction === "prev" || direction === "prevunique";
|
|
1685
|
+
const records = range ? this.records.getRecords(range, descending) : this.records.getAllRecords(descending);
|
|
1686
|
+
return {
|
|
1687
|
+
[Symbol.iterator]: () => {
|
|
1688
|
+
const next = () => {
|
|
1689
|
+
return records.next();
|
|
1690
|
+
};
|
|
1691
|
+
if (direction === "next" || direction === "prev") {
|
|
1692
|
+
return {
|
|
1693
|
+
next
|
|
1694
|
+
};
|
|
1695
|
+
}
|
|
1696
|
+
if (direction === "nextunique") {
|
|
1697
|
+
let previousValue = void 0;
|
|
1698
|
+
return {
|
|
1699
|
+
next: () => {
|
|
1700
|
+
let current2 = next();
|
|
1701
|
+
while (!current2.done && previousValue !== void 0 && cmp_default(previousValue.key, current2.value.key) === 0) {
|
|
1702
|
+
current2 = next();
|
|
1703
|
+
}
|
|
1704
|
+
previousValue = current2.value;
|
|
1705
|
+
return current2;
|
|
1706
|
+
}
|
|
1707
|
+
};
|
|
1708
|
+
}
|
|
1709
|
+
let current = next();
|
|
1710
|
+
let nextResult = next();
|
|
1711
|
+
return {
|
|
1712
|
+
next: () => {
|
|
1713
|
+
while (!nextResult.done && cmp_default(current.value.key, nextResult.value.key) === 0) {
|
|
1714
|
+
current = nextResult;
|
|
1715
|
+
nextResult = next();
|
|
1716
|
+
}
|
|
1717
|
+
const result = current;
|
|
1718
|
+
current = nextResult;
|
|
1719
|
+
nextResult = next();
|
|
1720
|
+
return result;
|
|
1721
|
+
}
|
|
1722
|
+
};
|
|
1723
|
+
}
|
|
1724
|
+
};
|
|
1725
|
+
}
|
|
1726
|
+
size() {
|
|
1727
|
+
return this.records.size();
|
|
1728
|
+
}
|
|
1729
|
+
};
|
|
1730
|
+
var RecordStore_default = RecordStore;
|
|
1731
|
+
|
|
1732
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/Index.js
|
|
1733
|
+
var Index = class {
|
|
1734
|
+
deleted = false;
|
|
1735
|
+
// Initialized should be used to decide whether to throw an error or abort the versionchange transaction when there is a
|
|
1736
|
+
// constraint
|
|
1737
|
+
initialized = false;
|
|
1738
|
+
constructor(rawObjectStore, name, keyPath, multiEntry, unique) {
|
|
1739
|
+
this.rawObjectStore = rawObjectStore;
|
|
1740
|
+
this.name = name;
|
|
1741
|
+
this.keyPath = keyPath;
|
|
1742
|
+
this.multiEntry = multiEntry;
|
|
1743
|
+
this.unique = unique;
|
|
1744
|
+
this.records = new RecordStore_default(unique);
|
|
1745
|
+
}
|
|
1746
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-retrieving-a-value-from-an-index
|
|
1747
|
+
getKey(key) {
|
|
1748
|
+
const record = this.records.get(key);
|
|
1749
|
+
return record !== void 0 ? record.value : void 0;
|
|
1750
|
+
}
|
|
1751
|
+
// http://w3c.github.io/IndexedDB/#retrieve-multiple-referenced-values-from-an-index
|
|
1752
|
+
getAllKeys(range, count, direction) {
|
|
1753
|
+
if (count === void 0 || count === 0) {
|
|
1754
|
+
count = Infinity;
|
|
1755
|
+
}
|
|
1756
|
+
const records = [];
|
|
1757
|
+
for (const record of this.records.values(range, direction)) {
|
|
1758
|
+
records.push(structuredClone(record.value));
|
|
1759
|
+
if (records.length >= count) {
|
|
1760
|
+
break;
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
return records;
|
|
1764
|
+
}
|
|
1765
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#index-referenced-value-retrieval-operation
|
|
1766
|
+
getValue(key) {
|
|
1767
|
+
const record = this.records.get(key);
|
|
1768
|
+
return record !== void 0 ? this.rawObjectStore.getValue(record.value) : void 0;
|
|
1769
|
+
}
|
|
1770
|
+
// http://w3c.github.io/IndexedDB/#retrieve-multiple-referenced-values-from-an-index
|
|
1771
|
+
getAllValues(range, count, direction) {
|
|
1772
|
+
if (count === void 0 || count === 0) {
|
|
1773
|
+
count = Infinity;
|
|
1774
|
+
}
|
|
1775
|
+
const records = [];
|
|
1776
|
+
for (const record of this.records.values(range, direction)) {
|
|
1777
|
+
records.push(this.rawObjectStore.getValue(record.value));
|
|
1778
|
+
if (records.length >= count) {
|
|
1779
|
+
break;
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1782
|
+
return records;
|
|
1783
|
+
}
|
|
1784
|
+
// https://www.w3.org/TR/IndexedDB/#dom-idbindex-getallrecords
|
|
1785
|
+
getAllRecords(range, count, direction) {
|
|
1786
|
+
if (count === void 0 || count === 0) {
|
|
1787
|
+
count = Infinity;
|
|
1788
|
+
}
|
|
1789
|
+
const records = [];
|
|
1790
|
+
for (const record of this.records.values(range, direction)) {
|
|
1791
|
+
records.push(new FDBRecord_default(structuredClone(record.key), structuredClone(this.rawObjectStore.getKey(record.value)), this.rawObjectStore.getValue(record.value)));
|
|
1792
|
+
if (records.length >= count) {
|
|
1793
|
+
break;
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
return records;
|
|
1797
|
+
}
|
|
1798
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-storing-a-record-into-an-object-store (step 7)
|
|
1799
|
+
storeRecord(newRecord) {
|
|
1800
|
+
let indexKey;
|
|
1801
|
+
try {
|
|
1802
|
+
indexKey = extractKey_default(this.keyPath, newRecord.value).key;
|
|
1803
|
+
} catch (err) {
|
|
1804
|
+
if (err.name === "DataError") {
|
|
1805
|
+
return;
|
|
1806
|
+
}
|
|
1807
|
+
throw err;
|
|
1808
|
+
}
|
|
1809
|
+
if (!this.multiEntry || !Array.isArray(indexKey)) {
|
|
1810
|
+
try {
|
|
1811
|
+
valueToKey_default(indexKey);
|
|
1812
|
+
} catch (e) {
|
|
1813
|
+
return;
|
|
1814
|
+
}
|
|
1815
|
+
} else {
|
|
1816
|
+
const keep = [];
|
|
1817
|
+
for (const part of indexKey) {
|
|
1818
|
+
if (keep.indexOf(part) < 0) {
|
|
1819
|
+
try {
|
|
1820
|
+
keep.push(valueToKey_default(part));
|
|
1821
|
+
} catch (err) {
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1824
|
+
}
|
|
1825
|
+
indexKey = keep;
|
|
1826
|
+
}
|
|
1827
|
+
if (!this.multiEntry || !Array.isArray(indexKey)) {
|
|
1828
|
+
if (this.unique) {
|
|
1829
|
+
const existingRecord = this.records.get(indexKey);
|
|
1830
|
+
if (existingRecord) {
|
|
1831
|
+
throw new ConstraintError();
|
|
1832
|
+
}
|
|
1833
|
+
}
|
|
1834
|
+
} else {
|
|
1835
|
+
if (this.unique) {
|
|
1836
|
+
for (const individualIndexKey of indexKey) {
|
|
1837
|
+
const existingRecord = this.records.get(individualIndexKey);
|
|
1838
|
+
if (existingRecord) {
|
|
1839
|
+
throw new ConstraintError();
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
if (!this.multiEntry || !Array.isArray(indexKey)) {
|
|
1845
|
+
this.records.put({
|
|
1846
|
+
key: indexKey,
|
|
1847
|
+
value: newRecord.key
|
|
1848
|
+
});
|
|
1849
|
+
} else {
|
|
1850
|
+
for (const individualIndexKey of indexKey) {
|
|
1851
|
+
this.records.put({
|
|
1852
|
+
key: individualIndexKey,
|
|
1853
|
+
value: newRecord.key
|
|
1854
|
+
});
|
|
1855
|
+
}
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
initialize(transaction) {
|
|
1859
|
+
if (this.initialized) {
|
|
1860
|
+
throw new Error("Index already initialized");
|
|
1861
|
+
}
|
|
1862
|
+
transaction._execRequestAsync({
|
|
1863
|
+
operation: () => {
|
|
1864
|
+
try {
|
|
1865
|
+
for (const record of this.rawObjectStore.records.values()) {
|
|
1866
|
+
this.storeRecord(record);
|
|
1867
|
+
}
|
|
1868
|
+
this.initialized = true;
|
|
1869
|
+
} catch (err) {
|
|
1870
|
+
transaction._abort(err.name);
|
|
1871
|
+
}
|
|
1872
|
+
},
|
|
1873
|
+
source: null
|
|
1874
|
+
});
|
|
1875
|
+
}
|
|
1876
|
+
count(range) {
|
|
1877
|
+
let count = 0;
|
|
1878
|
+
for (const record of this.records.values(range)) {
|
|
1879
|
+
count += 1;
|
|
1880
|
+
}
|
|
1881
|
+
return count;
|
|
1882
|
+
}
|
|
1883
|
+
};
|
|
1884
|
+
var Index_default = Index;
|
|
1885
|
+
|
|
1886
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/validateKeyPath.js
|
|
1887
|
+
init_shims();
|
|
1888
|
+
var validateKeyPath = (keyPath, parent) => {
|
|
1889
|
+
if (keyPath !== void 0 && keyPath !== null && typeof keyPath !== "string" && keyPath.toString && (parent === "array" || !Array.isArray(keyPath))) {
|
|
1890
|
+
keyPath = keyPath.toString();
|
|
1891
|
+
}
|
|
1892
|
+
if (typeof keyPath === "string") {
|
|
1893
|
+
if (keyPath === "" && parent !== "string") {
|
|
1894
|
+
return;
|
|
1895
|
+
}
|
|
1896
|
+
try {
|
|
1897
|
+
const validIdentifierRegex = (
|
|
1898
|
+
// eslint-disable-next-line no-misleading-character-class
|
|
1899
|
+
/^(?:[$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC])(?:[$0-9A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC])*$/
|
|
1900
|
+
);
|
|
1901
|
+
if (keyPath.length >= 1 && validIdentifierRegex.test(keyPath)) {
|
|
1902
|
+
return;
|
|
1903
|
+
}
|
|
1904
|
+
} catch (err) {
|
|
1905
|
+
throw new SyntaxError(err.message);
|
|
1906
|
+
}
|
|
1907
|
+
if (keyPath.indexOf(" ") >= 0) {
|
|
1908
|
+
throw new SyntaxError("The keypath argument contains an invalid key path (no spaces allowed).");
|
|
1909
|
+
}
|
|
1910
|
+
}
|
|
1911
|
+
if (Array.isArray(keyPath) && keyPath.length > 0) {
|
|
1912
|
+
if (parent) {
|
|
1913
|
+
throw new SyntaxError("The keypath argument contains an invalid key path (nested arrays).");
|
|
1914
|
+
}
|
|
1915
|
+
for (const part of keyPath) {
|
|
1916
|
+
validateKeyPath(part, "array");
|
|
1917
|
+
}
|
|
1918
|
+
return;
|
|
1919
|
+
} else if (typeof keyPath === "string" && keyPath.indexOf(".") >= 0) {
|
|
1920
|
+
keyPath = keyPath.split(".");
|
|
1921
|
+
for (const part of keyPath) {
|
|
1922
|
+
validateKeyPath(part, "string");
|
|
1923
|
+
}
|
|
1924
|
+
return;
|
|
1925
|
+
}
|
|
1926
|
+
throw new SyntaxError();
|
|
1927
|
+
};
|
|
1928
|
+
var validateKeyPath_default = validateKeyPath;
|
|
1929
|
+
|
|
1930
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBObjectStore.js
|
|
1931
|
+
var confirmActiveTransaction2 = (objectStore) => {
|
|
1932
|
+
if (objectStore._rawObjectStore.deleted) {
|
|
1933
|
+
throw new InvalidStateError();
|
|
1934
|
+
}
|
|
1935
|
+
if (objectStore.transaction._state !== "active") {
|
|
1936
|
+
throw new TransactionInactiveError();
|
|
1937
|
+
}
|
|
1938
|
+
};
|
|
1939
|
+
var buildRecordAddPut = (objectStore, value, key) => {
|
|
1940
|
+
confirmActiveTransaction2(objectStore);
|
|
1941
|
+
if (objectStore.transaction.mode === "readonly") {
|
|
1942
|
+
throw new ReadOnlyError();
|
|
1943
|
+
}
|
|
1944
|
+
if (objectStore.keyPath !== null) {
|
|
1945
|
+
if (key !== void 0) {
|
|
1946
|
+
throw new DataError();
|
|
1947
|
+
}
|
|
1948
|
+
}
|
|
1949
|
+
const clone = cloneValueForInsertion(value, objectStore.transaction);
|
|
1950
|
+
if (objectStore.keyPath !== null) {
|
|
1951
|
+
const tempKey = extractKey_default(objectStore.keyPath, clone);
|
|
1952
|
+
if (tempKey.type === "found") {
|
|
1953
|
+
valueToKey_default(tempKey.key);
|
|
1954
|
+
} else {
|
|
1955
|
+
if (!objectStore._rawObjectStore.keyGenerator) {
|
|
1956
|
+
throw new DataError();
|
|
1957
|
+
} else if (!canInjectKey_default(objectStore.keyPath, clone)) {
|
|
1958
|
+
throw new DataError();
|
|
1959
|
+
}
|
|
1960
|
+
}
|
|
1961
|
+
}
|
|
1962
|
+
if (objectStore.keyPath === null && objectStore._rawObjectStore.keyGenerator === null && key === void 0) {
|
|
1963
|
+
throw new DataError();
|
|
1964
|
+
}
|
|
1965
|
+
if (key !== void 0) {
|
|
1966
|
+
key = valueToKey_default(key);
|
|
1967
|
+
}
|
|
1968
|
+
return {
|
|
1969
|
+
key,
|
|
1970
|
+
value: clone
|
|
1971
|
+
};
|
|
1972
|
+
};
|
|
1973
|
+
var FDBObjectStore = class {
|
|
1974
|
+
_indexesCache = /* @__PURE__ */ new Map();
|
|
1975
|
+
constructor(transaction, rawObjectStore) {
|
|
1976
|
+
this._rawObjectStore = rawObjectStore;
|
|
1977
|
+
this._name = rawObjectStore.name;
|
|
1978
|
+
this.keyPath = getKeyPath(rawObjectStore.keyPath);
|
|
1979
|
+
this.autoIncrement = rawObjectStore.autoIncrement;
|
|
1980
|
+
this.transaction = transaction;
|
|
1981
|
+
this.indexNames = new FakeDOMStringList_default(...Array.from(rawObjectStore.rawIndexes.keys()).sort());
|
|
1982
|
+
}
|
|
1983
|
+
get name() {
|
|
1984
|
+
return this._name;
|
|
1985
|
+
}
|
|
1986
|
+
// http://w3c.github.io/IndexedDB/#dom-idbobjectstore-name
|
|
1987
|
+
set name(name) {
|
|
1988
|
+
const transaction = this.transaction;
|
|
1989
|
+
if (!transaction.db._runningVersionchangeTransaction) {
|
|
1990
|
+
throw transaction._state === "active" ? new InvalidStateError() : new TransactionInactiveError();
|
|
1991
|
+
}
|
|
1992
|
+
confirmActiveTransaction2(this);
|
|
1993
|
+
name = String(name);
|
|
1994
|
+
if (name === this._name) {
|
|
1995
|
+
return;
|
|
1996
|
+
}
|
|
1997
|
+
if (this._rawObjectStore.rawDatabase.rawObjectStores.has(name)) {
|
|
1998
|
+
throw new ConstraintError();
|
|
1999
|
+
}
|
|
2000
|
+
const oldName = this._name;
|
|
2001
|
+
const oldObjectStoreNames = [...transaction.db.objectStoreNames];
|
|
2002
|
+
this._name = name;
|
|
2003
|
+
this._rawObjectStore.name = name;
|
|
2004
|
+
this.transaction._objectStoresCache.delete(oldName);
|
|
2005
|
+
this.transaction._objectStoresCache.set(name, this);
|
|
2006
|
+
this._rawObjectStore.rawDatabase.rawObjectStores.delete(oldName);
|
|
2007
|
+
this._rawObjectStore.rawDatabase.rawObjectStores.set(name, this._rawObjectStore);
|
|
2008
|
+
transaction.db.objectStoreNames = new FakeDOMStringList_default(...Array.from(this._rawObjectStore.rawDatabase.rawObjectStores.keys()).filter((objectStoreName) => {
|
|
2009
|
+
const objectStore = this._rawObjectStore.rawDatabase.rawObjectStores.get(objectStoreName);
|
|
2010
|
+
return objectStore && !objectStore.deleted;
|
|
2011
|
+
}).sort());
|
|
2012
|
+
const oldScope = new Set(transaction._scope);
|
|
2013
|
+
const oldTransactionObjectStoreNames = [...transaction.objectStoreNames];
|
|
2014
|
+
this.transaction._scope.delete(oldName);
|
|
2015
|
+
transaction._scope.add(name);
|
|
2016
|
+
transaction.objectStoreNames = new FakeDOMStringList_default(...Array.from(transaction._scope).sort());
|
|
2017
|
+
if (!this.transaction._createdObjectStores.has(this._rawObjectStore)) {
|
|
2018
|
+
transaction._rollbackLog.push(() => {
|
|
2019
|
+
this._name = oldName;
|
|
2020
|
+
this._rawObjectStore.name = oldName;
|
|
2021
|
+
this.transaction._objectStoresCache.delete(name);
|
|
2022
|
+
this.transaction._objectStoresCache.set(oldName, this);
|
|
2023
|
+
this._rawObjectStore.rawDatabase.rawObjectStores.delete(name);
|
|
2024
|
+
this._rawObjectStore.rawDatabase.rawObjectStores.set(oldName, this._rawObjectStore);
|
|
2025
|
+
transaction.db.objectStoreNames = new FakeDOMStringList_default(...oldObjectStoreNames);
|
|
2026
|
+
transaction._scope = oldScope;
|
|
2027
|
+
transaction.objectStoreNames = new FakeDOMStringList_default(...oldTransactionObjectStoreNames);
|
|
2028
|
+
});
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
put(value, key) {
|
|
2032
|
+
if (arguments.length === 0) {
|
|
2033
|
+
throw new TypeError();
|
|
2034
|
+
}
|
|
2035
|
+
const record = buildRecordAddPut(this, value, key);
|
|
2036
|
+
return this.transaction._execRequestAsync({
|
|
2037
|
+
operation: this._rawObjectStore.storeRecord.bind(this._rawObjectStore, record, false, this.transaction._rollbackLog),
|
|
2038
|
+
source: this
|
|
2039
|
+
});
|
|
2040
|
+
}
|
|
2041
|
+
add(value, key) {
|
|
2042
|
+
if (arguments.length === 0) {
|
|
2043
|
+
throw new TypeError();
|
|
2044
|
+
}
|
|
2045
|
+
const record = buildRecordAddPut(this, value, key);
|
|
2046
|
+
return this.transaction._execRequestAsync({
|
|
2047
|
+
operation: this._rawObjectStore.storeRecord.bind(this._rawObjectStore, record, true, this.transaction._rollbackLog),
|
|
2048
|
+
source: this
|
|
2049
|
+
});
|
|
2050
|
+
}
|
|
2051
|
+
delete(key) {
|
|
2052
|
+
if (arguments.length === 0) {
|
|
2053
|
+
throw new TypeError();
|
|
2054
|
+
}
|
|
2055
|
+
confirmActiveTransaction2(this);
|
|
2056
|
+
if (this.transaction.mode === "readonly") {
|
|
2057
|
+
throw new ReadOnlyError();
|
|
2058
|
+
}
|
|
2059
|
+
if (!(key instanceof FDBKeyRange_default)) {
|
|
2060
|
+
key = valueToKey_default(key);
|
|
2061
|
+
}
|
|
2062
|
+
return this.transaction._execRequestAsync({
|
|
2063
|
+
operation: this._rawObjectStore.deleteRecord.bind(this._rawObjectStore, key, this.transaction._rollbackLog),
|
|
2064
|
+
source: this
|
|
2065
|
+
});
|
|
2066
|
+
}
|
|
2067
|
+
get(key) {
|
|
2068
|
+
if (arguments.length === 0) {
|
|
2069
|
+
throw new TypeError();
|
|
2070
|
+
}
|
|
2071
|
+
confirmActiveTransaction2(this);
|
|
2072
|
+
if (!(key instanceof FDBKeyRange_default)) {
|
|
2073
|
+
key = valueToKey_default(key);
|
|
2074
|
+
}
|
|
2075
|
+
return this.transaction._execRequestAsync({
|
|
2076
|
+
operation: this._rawObjectStore.getValue.bind(this._rawObjectStore, key),
|
|
2077
|
+
source: this
|
|
2078
|
+
});
|
|
2079
|
+
}
|
|
2080
|
+
// http://w3c.github.io/IndexedDB/#dom-idbobjectstore-getall
|
|
2081
|
+
getAll(queryOrOptions, count) {
|
|
2082
|
+
const options = extractGetAllOptions_default(queryOrOptions, count, arguments.length);
|
|
2083
|
+
confirmActiveTransaction2(this);
|
|
2084
|
+
const range = valueToKeyRange_default(options.query);
|
|
2085
|
+
return this.transaction._execRequestAsync({
|
|
2086
|
+
operation: this._rawObjectStore.getAllValues.bind(this._rawObjectStore, range, options.count, options.direction),
|
|
2087
|
+
source: this
|
|
2088
|
+
});
|
|
2089
|
+
}
|
|
2090
|
+
// http://w3c.github.io/IndexedDB/#dom-idbobjectstore-getkey
|
|
2091
|
+
getKey(key) {
|
|
2092
|
+
if (arguments.length === 0) {
|
|
2093
|
+
throw new TypeError();
|
|
2094
|
+
}
|
|
2095
|
+
confirmActiveTransaction2(this);
|
|
2096
|
+
if (!(key instanceof FDBKeyRange_default)) {
|
|
2097
|
+
key = valueToKey_default(key);
|
|
2098
|
+
}
|
|
2099
|
+
return this.transaction._execRequestAsync({
|
|
2100
|
+
operation: this._rawObjectStore.getKey.bind(this._rawObjectStore, key),
|
|
2101
|
+
source: this
|
|
2102
|
+
});
|
|
2103
|
+
}
|
|
2104
|
+
// http://w3c.github.io/IndexedDB/#dom-idbobjectstore-getallkeys
|
|
2105
|
+
getAllKeys(queryOrOptions, count) {
|
|
2106
|
+
const options = extractGetAllOptions_default(queryOrOptions, count, arguments.length);
|
|
2107
|
+
confirmActiveTransaction2(this);
|
|
2108
|
+
const range = valueToKeyRange_default(options.query);
|
|
2109
|
+
return this.transaction._execRequestAsync({
|
|
2110
|
+
operation: this._rawObjectStore.getAllKeys.bind(this._rawObjectStore, range, options.count, options.direction),
|
|
2111
|
+
source: this
|
|
2112
|
+
});
|
|
2113
|
+
}
|
|
2114
|
+
// https://www.w3.org/TR/IndexedDB/#dom-idbobjectstore-getallrecords
|
|
2115
|
+
getAllRecords(options) {
|
|
2116
|
+
let query;
|
|
2117
|
+
let count;
|
|
2118
|
+
let direction;
|
|
2119
|
+
if (options !== void 0) {
|
|
2120
|
+
if (options.query !== void 0) {
|
|
2121
|
+
query = options.query;
|
|
2122
|
+
}
|
|
2123
|
+
if (options.count !== void 0) {
|
|
2124
|
+
count = enforceRange_default(options.count, "unsigned long");
|
|
2125
|
+
}
|
|
2126
|
+
if (options.direction !== void 0) {
|
|
2127
|
+
direction = options.direction;
|
|
2128
|
+
}
|
|
2129
|
+
}
|
|
2130
|
+
confirmActiveTransaction2(this);
|
|
2131
|
+
const range = valueToKeyRange_default(query);
|
|
2132
|
+
return this.transaction._execRequestAsync({
|
|
2133
|
+
operation: this._rawObjectStore.getAllRecords.bind(this._rawObjectStore, range, count, direction),
|
|
2134
|
+
source: this
|
|
2135
|
+
});
|
|
2136
|
+
}
|
|
2137
|
+
clear() {
|
|
2138
|
+
confirmActiveTransaction2(this);
|
|
2139
|
+
if (this.transaction.mode === "readonly") {
|
|
2140
|
+
throw new ReadOnlyError();
|
|
2141
|
+
}
|
|
2142
|
+
return this.transaction._execRequestAsync({
|
|
2143
|
+
operation: this._rawObjectStore.clear.bind(this._rawObjectStore, this.transaction._rollbackLog),
|
|
2144
|
+
source: this
|
|
2145
|
+
});
|
|
2146
|
+
}
|
|
2147
|
+
openCursor(range, direction) {
|
|
2148
|
+
confirmActiveTransaction2(this);
|
|
2149
|
+
if (range === null) {
|
|
2150
|
+
range = void 0;
|
|
2151
|
+
}
|
|
2152
|
+
if (range !== void 0 && !(range instanceof FDBKeyRange_default)) {
|
|
2153
|
+
range = FDBKeyRange_default.only(valueToKey_default(range));
|
|
2154
|
+
}
|
|
2155
|
+
const request = new FDBRequest_default();
|
|
2156
|
+
request.source = this;
|
|
2157
|
+
request.transaction = this.transaction;
|
|
2158
|
+
const cursor = new FDBCursorWithValue_default(this, range, direction, request);
|
|
2159
|
+
return this.transaction._execRequestAsync({
|
|
2160
|
+
operation: cursor._iterate.bind(cursor),
|
|
2161
|
+
request,
|
|
2162
|
+
source: this
|
|
2163
|
+
});
|
|
2164
|
+
}
|
|
2165
|
+
openKeyCursor(range, direction) {
|
|
2166
|
+
confirmActiveTransaction2(this);
|
|
2167
|
+
if (range === null) {
|
|
2168
|
+
range = void 0;
|
|
2169
|
+
}
|
|
2170
|
+
if (range !== void 0 && !(range instanceof FDBKeyRange_default)) {
|
|
2171
|
+
range = FDBKeyRange_default.only(valueToKey_default(range));
|
|
2172
|
+
}
|
|
2173
|
+
const request = new FDBRequest_default();
|
|
2174
|
+
request.source = this;
|
|
2175
|
+
request.transaction = this.transaction;
|
|
2176
|
+
const cursor = new FDBCursor_default(this, range, direction, request, true);
|
|
2177
|
+
return this.transaction._execRequestAsync({
|
|
2178
|
+
operation: cursor._iterate.bind(cursor),
|
|
2179
|
+
request,
|
|
2180
|
+
source: this
|
|
2181
|
+
});
|
|
2182
|
+
}
|
|
2183
|
+
// tslint:-next-line max-line-length
|
|
2184
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBObjectStore-createIndex-IDBIndex-DOMString-name-DOMString-sequence-DOMString--keyPath-IDBIndexParameters-optionalParameters
|
|
2185
|
+
createIndex(name, keyPath, optionalParameters = {}) {
|
|
2186
|
+
if (arguments.length < 2) {
|
|
2187
|
+
throw new TypeError();
|
|
2188
|
+
}
|
|
2189
|
+
const multiEntry = optionalParameters.multiEntry !== void 0 ? optionalParameters.multiEntry : false;
|
|
2190
|
+
const unique = optionalParameters.unique !== void 0 ? optionalParameters.unique : false;
|
|
2191
|
+
if (this.transaction.mode !== "versionchange") {
|
|
2192
|
+
throw new InvalidStateError();
|
|
2193
|
+
}
|
|
2194
|
+
confirmActiveTransaction2(this);
|
|
2195
|
+
if (this.indexNames.contains(name)) {
|
|
2196
|
+
throw new ConstraintError();
|
|
2197
|
+
}
|
|
2198
|
+
validateKeyPath_default(keyPath);
|
|
2199
|
+
if (Array.isArray(keyPath) && multiEntry) {
|
|
2200
|
+
throw new InvalidAccessError();
|
|
2201
|
+
}
|
|
2202
|
+
const indexNames = [...this.indexNames];
|
|
2203
|
+
const index = new Index_default(this._rawObjectStore, name, keyPath, multiEntry, unique);
|
|
2204
|
+
this.indexNames._push(name);
|
|
2205
|
+
this.indexNames._sort();
|
|
2206
|
+
this.transaction._createdIndexes.add(index);
|
|
2207
|
+
this._rawObjectStore.rawIndexes.set(name, index);
|
|
2208
|
+
index.initialize(this.transaction);
|
|
2209
|
+
this.transaction._rollbackLog.push(() => {
|
|
2210
|
+
index.deleted = true;
|
|
2211
|
+
this.indexNames = new FakeDOMStringList_default(...indexNames);
|
|
2212
|
+
this._rawObjectStore.rawIndexes.delete(index.name);
|
|
2213
|
+
});
|
|
2214
|
+
return new FDBIndex_default(this, index);
|
|
2215
|
+
}
|
|
2216
|
+
// https://w3c.github.io/IndexedDB/#dom-idbobjectstore-index
|
|
2217
|
+
index(name) {
|
|
2218
|
+
if (arguments.length === 0) {
|
|
2219
|
+
throw new TypeError();
|
|
2220
|
+
}
|
|
2221
|
+
if (this._rawObjectStore.deleted || this.transaction._state === "finished") {
|
|
2222
|
+
throw new InvalidStateError();
|
|
2223
|
+
}
|
|
2224
|
+
const index = this._indexesCache.get(name);
|
|
2225
|
+
if (index !== void 0) {
|
|
2226
|
+
return index;
|
|
2227
|
+
}
|
|
2228
|
+
const rawIndex = this._rawObjectStore.rawIndexes.get(name);
|
|
2229
|
+
if (!this.indexNames.contains(name) || rawIndex === void 0) {
|
|
2230
|
+
throw new NotFoundError();
|
|
2231
|
+
}
|
|
2232
|
+
const index2 = new FDBIndex_default(this, rawIndex);
|
|
2233
|
+
this._indexesCache.set(name, index2);
|
|
2234
|
+
return index2;
|
|
2235
|
+
}
|
|
2236
|
+
deleteIndex(name) {
|
|
2237
|
+
if (arguments.length === 0) {
|
|
2238
|
+
throw new TypeError();
|
|
2239
|
+
}
|
|
2240
|
+
if (this.transaction.mode !== "versionchange") {
|
|
2241
|
+
throw new InvalidStateError();
|
|
2242
|
+
}
|
|
2243
|
+
confirmActiveTransaction2(this);
|
|
2244
|
+
const rawIndex = this._rawObjectStore.rawIndexes.get(name);
|
|
2245
|
+
if (rawIndex === void 0) {
|
|
2246
|
+
throw new NotFoundError();
|
|
2247
|
+
}
|
|
2248
|
+
this.transaction._rollbackLog.push(() => {
|
|
2249
|
+
rawIndex.deleted = false;
|
|
2250
|
+
this._rawObjectStore.rawIndexes.set(rawIndex.name, rawIndex);
|
|
2251
|
+
this.indexNames._push(rawIndex.name);
|
|
2252
|
+
this.indexNames._sort();
|
|
2253
|
+
});
|
|
2254
|
+
this.indexNames = new FakeDOMStringList_default(...Array.from(this.indexNames).filter((indexName) => {
|
|
2255
|
+
return indexName !== name;
|
|
2256
|
+
}));
|
|
2257
|
+
rawIndex.deleted = true;
|
|
2258
|
+
this.transaction._execRequestAsync({
|
|
2259
|
+
operation: () => {
|
|
2260
|
+
const rawIndex2 = this._rawObjectStore.rawIndexes.get(name);
|
|
2261
|
+
if (rawIndex === rawIndex2) {
|
|
2262
|
+
this._rawObjectStore.rawIndexes.delete(name);
|
|
2263
|
+
}
|
|
2264
|
+
},
|
|
2265
|
+
source: this
|
|
2266
|
+
});
|
|
2267
|
+
}
|
|
2268
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBObjectStore-count-IDBRequest-any-key
|
|
2269
|
+
count(key) {
|
|
2270
|
+
confirmActiveTransaction2(this);
|
|
2271
|
+
if (key === null) {
|
|
2272
|
+
key = void 0;
|
|
2273
|
+
}
|
|
2274
|
+
if (key !== void 0 && !(key instanceof FDBKeyRange_default)) {
|
|
2275
|
+
key = FDBKeyRange_default.only(valueToKey_default(key));
|
|
2276
|
+
}
|
|
2277
|
+
return this.transaction._execRequestAsync({
|
|
2278
|
+
operation: () => {
|
|
2279
|
+
return this._rawObjectStore.count(key);
|
|
2280
|
+
},
|
|
2281
|
+
source: this
|
|
2282
|
+
});
|
|
2283
|
+
}
|
|
2284
|
+
get [Symbol.toStringTag]() {
|
|
2285
|
+
return "IDBObjectStore";
|
|
2286
|
+
}
|
|
2287
|
+
};
|
|
2288
|
+
var FDBObjectStore_default = FDBObjectStore;
|
|
2289
|
+
|
|
2290
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/FakeEvent.js
|
|
2291
|
+
init_shims();
|
|
2292
|
+
var Event = class {
|
|
2293
|
+
eventPath = [];
|
|
2294
|
+
NONE = 0;
|
|
2295
|
+
CAPTURING_PHASE = 1;
|
|
2296
|
+
AT_TARGET = 2;
|
|
2297
|
+
BUBBLING_PHASE = 3;
|
|
2298
|
+
// Flags
|
|
2299
|
+
propagationStopped = false;
|
|
2300
|
+
immediatePropagationStopped = false;
|
|
2301
|
+
canceled = false;
|
|
2302
|
+
initialized = true;
|
|
2303
|
+
dispatched = false;
|
|
2304
|
+
target = null;
|
|
2305
|
+
currentTarget = null;
|
|
2306
|
+
eventPhase = 0;
|
|
2307
|
+
defaultPrevented = false;
|
|
2308
|
+
isTrusted = false;
|
|
2309
|
+
timeStamp = Date.now();
|
|
2310
|
+
constructor(type, eventInitDict = {}) {
|
|
2311
|
+
this.type = type;
|
|
2312
|
+
this.bubbles = eventInitDict.bubbles !== void 0 ? eventInitDict.bubbles : false;
|
|
2313
|
+
this.cancelable = eventInitDict.cancelable !== void 0 ? eventInitDict.cancelable : false;
|
|
2314
|
+
}
|
|
2315
|
+
preventDefault() {
|
|
2316
|
+
if (this.cancelable) {
|
|
2317
|
+
this.canceled = true;
|
|
2318
|
+
}
|
|
2319
|
+
}
|
|
2320
|
+
stopPropagation() {
|
|
2321
|
+
this.propagationStopped = true;
|
|
2322
|
+
}
|
|
2323
|
+
stopImmediatePropagation() {
|
|
2324
|
+
this.propagationStopped = true;
|
|
2325
|
+
this.immediatePropagationStopped = true;
|
|
2326
|
+
}
|
|
2327
|
+
};
|
|
2328
|
+
var FakeEvent_default = Event;
|
|
2329
|
+
|
|
2330
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/scheduling.js
|
|
2331
|
+
init_shims();
|
|
2332
|
+
function getSetImmediateFromJsdom() {
|
|
2333
|
+
if (typeof navigator !== "undefined" && /jsdom/.test(navigator.userAgent)) {
|
|
2334
|
+
const outerRealmFunctionConstructor = Node.constructor;
|
|
2335
|
+
return new outerRealmFunctionConstructor("return setImmediate")();
|
|
2336
|
+
} else {
|
|
2337
|
+
return void 0;
|
|
2338
|
+
}
|
|
2339
|
+
}
|
|
2340
|
+
var schedulerPostTask = typeof scheduler !== "undefined" && ((fn) => scheduler.postTask(fn));
|
|
2341
|
+
var doSetTimeout = (fn) => setTimeout(fn, 0);
|
|
2342
|
+
var queueTask = (fn) => {
|
|
2343
|
+
const setImmediate = globalThis.setImmediate || getSetImmediateFromJsdom() || schedulerPostTask || doSetTimeout;
|
|
2344
|
+
setImmediate(fn);
|
|
2345
|
+
};
|
|
2346
|
+
|
|
2347
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBTransaction.js
|
|
2348
|
+
var prioritizedListenerTypes = ["error", "abort", "complete"];
|
|
2349
|
+
var FDBTransaction = class extends FakeEventTarget_default {
|
|
2350
|
+
_state = "active";
|
|
2351
|
+
_started = false;
|
|
2352
|
+
_rollbackLog = [];
|
|
2353
|
+
_objectStoresCache = /* @__PURE__ */ new Map();
|
|
2354
|
+
_openRequest = null;
|
|
2355
|
+
error = null;
|
|
2356
|
+
onabort = null;
|
|
2357
|
+
oncomplete = null;
|
|
2358
|
+
onerror = null;
|
|
2359
|
+
_prioritizedListeners = /* @__PURE__ */ new Map();
|
|
2360
|
+
_requests = [];
|
|
2361
|
+
_createdIndexes = /* @__PURE__ */ new Set();
|
|
2362
|
+
_createdObjectStores = /* @__PURE__ */ new Set();
|
|
2363
|
+
constructor(storeNames, mode, durability, db) {
|
|
2364
|
+
super();
|
|
2365
|
+
this._scope = new Set(storeNames);
|
|
2366
|
+
this.mode = mode;
|
|
2367
|
+
this.durability = durability;
|
|
2368
|
+
this.db = db;
|
|
2369
|
+
this.objectStoreNames = new FakeDOMStringList_default(...Array.from(this._scope).sort());
|
|
2370
|
+
for (const type of prioritizedListenerTypes) {
|
|
2371
|
+
this.addEventListener(type, () => {
|
|
2372
|
+
this._prioritizedListeners.get(type)?.();
|
|
2373
|
+
});
|
|
2374
|
+
}
|
|
2375
|
+
}
|
|
2376
|
+
// https://w3c.github.io/IndexedDB/#abort-transaction
|
|
2377
|
+
_abort(errName) {
|
|
2378
|
+
for (const f of this._rollbackLog.reverse()) {
|
|
2379
|
+
f();
|
|
2380
|
+
}
|
|
2381
|
+
if (errName !== null) {
|
|
2382
|
+
const e = new DOMException(void 0, errName);
|
|
2383
|
+
this.error = e;
|
|
2384
|
+
}
|
|
2385
|
+
for (const {
|
|
2386
|
+
request
|
|
2387
|
+
} of this._requests) {
|
|
2388
|
+
if (request.readyState !== "done") {
|
|
2389
|
+
request.readyState = "done";
|
|
2390
|
+
if (request.source) {
|
|
2391
|
+
queueTask(() => {
|
|
2392
|
+
request.result = void 0;
|
|
2393
|
+
request.error = new AbortError();
|
|
2394
|
+
const event = new FakeEvent_default("error", {
|
|
2395
|
+
bubbles: true,
|
|
2396
|
+
cancelable: true
|
|
2397
|
+
});
|
|
2398
|
+
event.eventPath = [this.db, this];
|
|
2399
|
+
try {
|
|
2400
|
+
request.dispatchEvent(event);
|
|
2401
|
+
} catch (_err) {
|
|
2402
|
+
if (this._state === "active") {
|
|
2403
|
+
this._abort("AbortError");
|
|
2404
|
+
}
|
|
2405
|
+
}
|
|
2406
|
+
});
|
|
2407
|
+
}
|
|
2408
|
+
}
|
|
2409
|
+
}
|
|
2410
|
+
queueTask(() => {
|
|
2411
|
+
const isUpgradeTransaction = this.mode === "versionchange";
|
|
2412
|
+
if (isUpgradeTransaction) {
|
|
2413
|
+
this.db._rawDatabase.connections = this.db._rawDatabase.connections.filter((connection) => !connection._rawDatabase.transactions.includes(this));
|
|
2414
|
+
}
|
|
2415
|
+
const event = new FakeEvent_default("abort", {
|
|
2416
|
+
bubbles: true,
|
|
2417
|
+
cancelable: false
|
|
2418
|
+
});
|
|
2419
|
+
event.eventPath = [this.db];
|
|
2420
|
+
this.dispatchEvent(event);
|
|
2421
|
+
if (isUpgradeTransaction) {
|
|
2422
|
+
const request = this._openRequest;
|
|
2423
|
+
request.transaction = null;
|
|
2424
|
+
request.result = void 0;
|
|
2425
|
+
}
|
|
2426
|
+
});
|
|
2427
|
+
this._state = "finished";
|
|
2428
|
+
}
|
|
2429
|
+
abort() {
|
|
2430
|
+
if (this._state === "committing" || this._state === "finished") {
|
|
2431
|
+
throw new InvalidStateError();
|
|
2432
|
+
}
|
|
2433
|
+
this._state = "active";
|
|
2434
|
+
this._abort(null);
|
|
2435
|
+
}
|
|
2436
|
+
// http://w3c.github.io/IndexedDB/#dom-idbtransaction-objectstore
|
|
2437
|
+
objectStore(name) {
|
|
2438
|
+
if (this._state !== "active") {
|
|
2439
|
+
throw new InvalidStateError();
|
|
2440
|
+
}
|
|
2441
|
+
const objectStore = this._objectStoresCache.get(name);
|
|
2442
|
+
if (objectStore !== void 0) {
|
|
2443
|
+
return objectStore;
|
|
2444
|
+
}
|
|
2445
|
+
const rawObjectStore = this.db._rawDatabase.rawObjectStores.get(name);
|
|
2446
|
+
if (!this._scope.has(name) || rawObjectStore === void 0) {
|
|
2447
|
+
throw new NotFoundError();
|
|
2448
|
+
}
|
|
2449
|
+
const objectStore2 = new FDBObjectStore_default(this, rawObjectStore);
|
|
2450
|
+
this._objectStoresCache.set(name, objectStore2);
|
|
2451
|
+
return objectStore2;
|
|
2452
|
+
}
|
|
2453
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-asynchronously-executing-a-request
|
|
2454
|
+
_execRequestAsync(obj) {
|
|
2455
|
+
const source = obj.source;
|
|
2456
|
+
const operation = obj.operation;
|
|
2457
|
+
let request = Object.hasOwn(obj, "request") ? obj.request : null;
|
|
2458
|
+
if (this._state !== "active") {
|
|
2459
|
+
throw new TransactionInactiveError();
|
|
2460
|
+
}
|
|
2461
|
+
if (!request) {
|
|
2462
|
+
if (!source) {
|
|
2463
|
+
request = new FDBRequest_default();
|
|
2464
|
+
} else {
|
|
2465
|
+
request = new FDBRequest_default();
|
|
2466
|
+
request.source = source;
|
|
2467
|
+
request.transaction = source.transaction;
|
|
2468
|
+
}
|
|
2469
|
+
}
|
|
2470
|
+
this._requests.push({
|
|
2471
|
+
operation,
|
|
2472
|
+
request
|
|
2473
|
+
});
|
|
2474
|
+
return request;
|
|
2475
|
+
}
|
|
2476
|
+
_start() {
|
|
2477
|
+
this._started = true;
|
|
2478
|
+
let operation;
|
|
2479
|
+
let request;
|
|
2480
|
+
while (this._requests.length > 0) {
|
|
2481
|
+
const r = this._requests.shift();
|
|
2482
|
+
if (r && r.request.readyState !== "done") {
|
|
2483
|
+
request = r.request;
|
|
2484
|
+
operation = r.operation;
|
|
2485
|
+
break;
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
if (request && operation) {
|
|
2489
|
+
if (!request.source) {
|
|
2490
|
+
operation();
|
|
2491
|
+
} else {
|
|
2492
|
+
let defaultAction;
|
|
2493
|
+
let event;
|
|
2494
|
+
try {
|
|
2495
|
+
const result = operation();
|
|
2496
|
+
request.readyState = "done";
|
|
2497
|
+
request.result = result;
|
|
2498
|
+
request.error = void 0;
|
|
2499
|
+
if (this._state === "inactive") {
|
|
2500
|
+
this._state = "active";
|
|
2501
|
+
}
|
|
2502
|
+
event = new FakeEvent_default("success", {
|
|
2503
|
+
bubbles: false,
|
|
2504
|
+
cancelable: false
|
|
2505
|
+
});
|
|
2506
|
+
} catch (err) {
|
|
2507
|
+
request.readyState = "done";
|
|
2508
|
+
request.result = void 0;
|
|
2509
|
+
request.error = err;
|
|
2510
|
+
if (this._state === "inactive") {
|
|
2511
|
+
this._state = "active";
|
|
2512
|
+
}
|
|
2513
|
+
event = new FakeEvent_default("error", {
|
|
2514
|
+
bubbles: true,
|
|
2515
|
+
cancelable: true
|
|
2516
|
+
});
|
|
2517
|
+
defaultAction = this._abort.bind(this, err.name);
|
|
2518
|
+
}
|
|
2519
|
+
try {
|
|
2520
|
+
event.eventPath = [this.db, this];
|
|
2521
|
+
request.dispatchEvent(event);
|
|
2522
|
+
} catch (_err) {
|
|
2523
|
+
if (this._state === "active") {
|
|
2524
|
+
this._abort("AbortError");
|
|
2525
|
+
defaultAction = void 0;
|
|
2526
|
+
}
|
|
2527
|
+
}
|
|
2528
|
+
if (!event.canceled) {
|
|
2529
|
+
if (defaultAction) {
|
|
2530
|
+
defaultAction();
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
}
|
|
2534
|
+
queueTask(this._start.bind(this));
|
|
2535
|
+
return;
|
|
2536
|
+
}
|
|
2537
|
+
if (this._state !== "finished") {
|
|
2538
|
+
this._state = "finished";
|
|
2539
|
+
if (!this.error) {
|
|
2540
|
+
const event = new FakeEvent_default("complete");
|
|
2541
|
+
this.dispatchEvent(event);
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2544
|
+
}
|
|
2545
|
+
commit() {
|
|
2546
|
+
if (this._state !== "active") {
|
|
2547
|
+
throw new InvalidStateError();
|
|
2548
|
+
}
|
|
2549
|
+
this._state = "committing";
|
|
2550
|
+
}
|
|
2551
|
+
get [Symbol.toStringTag]() {
|
|
2552
|
+
return "IDBTransaction";
|
|
2553
|
+
}
|
|
2554
|
+
};
|
|
2555
|
+
var FDBTransaction_default = FDBTransaction;
|
|
2556
|
+
|
|
2557
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/ObjectStore.js
|
|
2558
|
+
init_shims();
|
|
2559
|
+
|
|
2560
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/KeyGenerator.js
|
|
2561
|
+
init_shims();
|
|
2562
|
+
var MAX_KEY = 9007199254740992;
|
|
2563
|
+
var KeyGenerator = class {
|
|
2564
|
+
// This is kind of wrong. Should start at 1 and increment only after record is saved
|
|
2565
|
+
num = 0;
|
|
2566
|
+
next() {
|
|
2567
|
+
if (this.num >= MAX_KEY) {
|
|
2568
|
+
throw new ConstraintError();
|
|
2569
|
+
}
|
|
2570
|
+
this.num += 1;
|
|
2571
|
+
return this.num;
|
|
2572
|
+
}
|
|
2573
|
+
// https://w3c.github.io/IndexedDB/#possibly-update-the-key-generator
|
|
2574
|
+
setIfLarger(num) {
|
|
2575
|
+
const value = Math.floor(Math.min(num, MAX_KEY)) - 1;
|
|
2576
|
+
if (value >= this.num) {
|
|
2577
|
+
this.num = value + 1;
|
|
2578
|
+
}
|
|
2579
|
+
}
|
|
2580
|
+
};
|
|
2581
|
+
var KeyGenerator_default = KeyGenerator;
|
|
2582
|
+
|
|
2583
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/ObjectStore.js
|
|
2584
|
+
var ObjectStore = class {
|
|
2585
|
+
deleted = false;
|
|
2586
|
+
records = new RecordStore_default(true);
|
|
2587
|
+
rawIndexes = /* @__PURE__ */ new Map();
|
|
2588
|
+
constructor(rawDatabase, name, keyPath, autoIncrement) {
|
|
2589
|
+
this.rawDatabase = rawDatabase;
|
|
2590
|
+
this.keyGenerator = autoIncrement === true ? new KeyGenerator_default() : null;
|
|
2591
|
+
this.deleted = false;
|
|
2592
|
+
this.name = name;
|
|
2593
|
+
this.keyPath = keyPath;
|
|
2594
|
+
this.autoIncrement = autoIncrement;
|
|
2595
|
+
}
|
|
2596
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-retrieving-a-value-from-an-object-store
|
|
2597
|
+
getKey(key) {
|
|
2598
|
+
const record = this.records.get(key);
|
|
2599
|
+
return record !== void 0 ? structuredClone(record.key) : void 0;
|
|
2600
|
+
}
|
|
2601
|
+
// http://w3c.github.io/IndexedDB/#retrieve-multiple-keys-from-an-object-store
|
|
2602
|
+
getAllKeys(range, count, direction) {
|
|
2603
|
+
if (count === void 0 || count === 0) {
|
|
2604
|
+
count = Infinity;
|
|
2605
|
+
}
|
|
2606
|
+
const records = [];
|
|
2607
|
+
for (const record of this.records.values(range, direction)) {
|
|
2608
|
+
records.push(structuredClone(record.key));
|
|
2609
|
+
if (records.length >= count) {
|
|
2610
|
+
break;
|
|
2611
|
+
}
|
|
2612
|
+
}
|
|
2613
|
+
return records;
|
|
2614
|
+
}
|
|
2615
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-retrieving-a-value-from-an-object-store
|
|
2616
|
+
getValue(key) {
|
|
2617
|
+
const record = this.records.get(key);
|
|
2618
|
+
return record !== void 0 ? structuredClone(record.value) : void 0;
|
|
2619
|
+
}
|
|
2620
|
+
// http://w3c.github.io/IndexedDB/#retrieve-multiple-values-from-an-object-store
|
|
2621
|
+
getAllValues(range, count, direction) {
|
|
2622
|
+
if (count === void 0 || count === 0) {
|
|
2623
|
+
count = Infinity;
|
|
2624
|
+
}
|
|
2625
|
+
const records = [];
|
|
2626
|
+
for (const record of this.records.values(range, direction)) {
|
|
2627
|
+
records.push(structuredClone(record.value));
|
|
2628
|
+
if (records.length >= count) {
|
|
2629
|
+
break;
|
|
2630
|
+
}
|
|
2631
|
+
}
|
|
2632
|
+
return records;
|
|
2633
|
+
}
|
|
2634
|
+
// https://www.w3.org/TR/IndexedDB/#dom-idbobjectstore-getallrecords
|
|
2635
|
+
getAllRecords(range, count, direction) {
|
|
2636
|
+
if (count === void 0 || count === 0) {
|
|
2637
|
+
count = Infinity;
|
|
2638
|
+
}
|
|
2639
|
+
const records = [];
|
|
2640
|
+
for (const record of this.records.values(range, direction)) {
|
|
2641
|
+
records.push(new FDBRecord_default(structuredClone(record.key), structuredClone(record.key), structuredClone(record.value)));
|
|
2642
|
+
if (records.length >= count) {
|
|
2643
|
+
break;
|
|
2644
|
+
}
|
|
2645
|
+
}
|
|
2646
|
+
return records;
|
|
2647
|
+
}
|
|
2648
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-storing-a-record-into-an-object-store
|
|
2649
|
+
storeRecord(newRecord, noOverwrite, rollbackLog) {
|
|
2650
|
+
if (this.keyPath !== null) {
|
|
2651
|
+
const key = extractKey_default(this.keyPath, newRecord.value).key;
|
|
2652
|
+
if (key !== void 0) {
|
|
2653
|
+
newRecord.key = key;
|
|
2654
|
+
}
|
|
2655
|
+
}
|
|
2656
|
+
const rollbackLogForThisOperation = [];
|
|
2657
|
+
if (this.keyGenerator !== null && newRecord.key === void 0) {
|
|
2658
|
+
let rolledBack2 = false;
|
|
2659
|
+
const keyGeneratorBefore = this.keyGenerator.num;
|
|
2660
|
+
const rollbackKeyGenerator = () => {
|
|
2661
|
+
if (rolledBack2) {
|
|
2662
|
+
return;
|
|
2663
|
+
}
|
|
2664
|
+
rolledBack2 = true;
|
|
2665
|
+
if (this.keyGenerator) {
|
|
2666
|
+
this.keyGenerator.num = keyGeneratorBefore;
|
|
2667
|
+
}
|
|
2668
|
+
};
|
|
2669
|
+
rollbackLogForThisOperation.push(rollbackKeyGenerator);
|
|
2670
|
+
if (rollbackLog) {
|
|
2671
|
+
rollbackLog.push(rollbackKeyGenerator);
|
|
2672
|
+
}
|
|
2673
|
+
newRecord.key = this.keyGenerator.next();
|
|
2674
|
+
if (this.keyPath !== null) {
|
|
2675
|
+
if (Array.isArray(this.keyPath)) {
|
|
2676
|
+
throw new Error("Cannot have an array key path in an object store with a key generator");
|
|
2677
|
+
}
|
|
2678
|
+
let remainingKeyPath = this.keyPath;
|
|
2679
|
+
let object = newRecord.value;
|
|
2680
|
+
let identifier;
|
|
2681
|
+
let i = 0;
|
|
2682
|
+
while (i >= 0) {
|
|
2683
|
+
if (typeof object !== "object") {
|
|
2684
|
+
throw new DataError();
|
|
2685
|
+
}
|
|
2686
|
+
i = remainingKeyPath.indexOf(".");
|
|
2687
|
+
if (i >= 0) {
|
|
2688
|
+
identifier = remainingKeyPath.slice(0, i);
|
|
2689
|
+
remainingKeyPath = remainingKeyPath.slice(i + 1);
|
|
2690
|
+
if (!Object.hasOwn(object, identifier)) {
|
|
2691
|
+
Object.defineProperty(object, identifier, {
|
|
2692
|
+
configurable: true,
|
|
2693
|
+
enumerable: true,
|
|
2694
|
+
writable: true,
|
|
2695
|
+
value: {}
|
|
2696
|
+
});
|
|
2697
|
+
}
|
|
2698
|
+
object = object[identifier];
|
|
2699
|
+
}
|
|
2700
|
+
}
|
|
2701
|
+
identifier = remainingKeyPath;
|
|
2702
|
+
Object.defineProperty(object, identifier, {
|
|
2703
|
+
configurable: true,
|
|
2704
|
+
enumerable: true,
|
|
2705
|
+
writable: true,
|
|
2706
|
+
value: newRecord.key
|
|
2707
|
+
});
|
|
2708
|
+
}
|
|
2709
|
+
} else if (this.keyGenerator !== null && typeof newRecord.key === "number") {
|
|
2710
|
+
this.keyGenerator.setIfLarger(newRecord.key);
|
|
2711
|
+
}
|
|
2712
|
+
const existingRecord = this.records.put(newRecord, noOverwrite);
|
|
2713
|
+
let rolledBack = false;
|
|
2714
|
+
const rollbackStoreRecord = () => {
|
|
2715
|
+
if (rolledBack) {
|
|
2716
|
+
return;
|
|
2717
|
+
}
|
|
2718
|
+
rolledBack = true;
|
|
2719
|
+
if (existingRecord) {
|
|
2720
|
+
this.storeRecord(existingRecord, false);
|
|
2721
|
+
} else {
|
|
2722
|
+
this.deleteRecord(newRecord.key);
|
|
2723
|
+
}
|
|
2724
|
+
};
|
|
2725
|
+
rollbackLogForThisOperation.push(rollbackStoreRecord);
|
|
2726
|
+
if (rollbackLog) {
|
|
2727
|
+
rollbackLog.push(rollbackStoreRecord);
|
|
2728
|
+
}
|
|
2729
|
+
if (existingRecord) {
|
|
2730
|
+
for (const rawIndex of this.rawIndexes.values()) {
|
|
2731
|
+
rawIndex.records.deleteByValue(newRecord.key);
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2734
|
+
try {
|
|
2735
|
+
for (const rawIndex of this.rawIndexes.values()) {
|
|
2736
|
+
if (rawIndex.initialized) {
|
|
2737
|
+
rawIndex.storeRecord(newRecord);
|
|
2738
|
+
}
|
|
2739
|
+
}
|
|
2740
|
+
} catch (err) {
|
|
2741
|
+
if (err.name === "ConstraintError") {
|
|
2742
|
+
for (const rollback of rollbackLogForThisOperation) {
|
|
2743
|
+
rollback();
|
|
2744
|
+
}
|
|
2745
|
+
}
|
|
2746
|
+
throw err;
|
|
2747
|
+
}
|
|
2748
|
+
return newRecord.key;
|
|
2749
|
+
}
|
|
2750
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-deleting-records-from-an-object-store
|
|
2751
|
+
deleteRecord(key, rollbackLog) {
|
|
2752
|
+
const deletedRecords = this.records.delete(key);
|
|
2753
|
+
if (rollbackLog) {
|
|
2754
|
+
for (const record of deletedRecords) {
|
|
2755
|
+
rollbackLog.push(() => {
|
|
2756
|
+
this.storeRecord(record, true);
|
|
2757
|
+
});
|
|
2758
|
+
}
|
|
2759
|
+
}
|
|
2760
|
+
for (const rawIndex of this.rawIndexes.values()) {
|
|
2761
|
+
rawIndex.records.deleteByValue(key);
|
|
2762
|
+
}
|
|
2763
|
+
}
|
|
2764
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-clearing-an-object-store
|
|
2765
|
+
clear(rollbackLog) {
|
|
2766
|
+
const deletedRecords = this.records.clear();
|
|
2767
|
+
if (rollbackLog) {
|
|
2768
|
+
for (const record of deletedRecords) {
|
|
2769
|
+
rollbackLog.push(() => {
|
|
2770
|
+
this.storeRecord(record, true);
|
|
2771
|
+
});
|
|
2772
|
+
}
|
|
2773
|
+
}
|
|
2774
|
+
for (const rawIndex of this.rawIndexes.values()) {
|
|
2775
|
+
rawIndex.records.clear();
|
|
2776
|
+
}
|
|
2777
|
+
}
|
|
2778
|
+
count(range) {
|
|
2779
|
+
if (range === void 0 || range.lower === void 0 && range.upper === void 0) {
|
|
2780
|
+
return this.records.size();
|
|
2781
|
+
}
|
|
2782
|
+
let count = 0;
|
|
2783
|
+
for (const record of this.records.values(range)) {
|
|
2784
|
+
count += 1;
|
|
2785
|
+
}
|
|
2786
|
+
return count;
|
|
2787
|
+
}
|
|
2788
|
+
};
|
|
2789
|
+
var ObjectStore_default = ObjectStore;
|
|
2790
|
+
|
|
2791
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/closeConnection.js
|
|
2792
|
+
init_shims();
|
|
2793
|
+
var closeConnection = (connection, forced = false) => {
|
|
2794
|
+
connection._closePending = true;
|
|
2795
|
+
const transactionsComplete = connection._rawDatabase.transactions.every((transaction) => {
|
|
2796
|
+
return transaction._state === "finished";
|
|
2797
|
+
});
|
|
2798
|
+
if (transactionsComplete) {
|
|
2799
|
+
connection._closed = true;
|
|
2800
|
+
connection._rawDatabase.connections = connection._rawDatabase.connections.filter((otherConnection) => {
|
|
2801
|
+
return connection !== otherConnection;
|
|
2802
|
+
});
|
|
2803
|
+
if (forced) {
|
|
2804
|
+
const event = new FakeEvent_default("close", {
|
|
2805
|
+
bubbles: false,
|
|
2806
|
+
cancelable: false
|
|
2807
|
+
});
|
|
2808
|
+
event.eventPath = [];
|
|
2809
|
+
connection.dispatchEvent(event);
|
|
2810
|
+
}
|
|
2811
|
+
} else {
|
|
2812
|
+
queueTask(() => {
|
|
2813
|
+
closeConnection(connection, forced);
|
|
2814
|
+
});
|
|
2815
|
+
}
|
|
2816
|
+
};
|
|
2817
|
+
var closeConnection_default = closeConnection;
|
|
2818
|
+
|
|
2819
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBDatabase.js
|
|
2820
|
+
var confirmActiveVersionchangeTransaction = (database) => {
|
|
2821
|
+
let transaction;
|
|
2822
|
+
if (database._runningVersionchangeTransaction) {
|
|
2823
|
+
transaction = database._rawDatabase.transactions.findLast((tx) => {
|
|
2824
|
+
return tx.mode === "versionchange";
|
|
2825
|
+
});
|
|
2826
|
+
}
|
|
2827
|
+
if (!transaction) {
|
|
2828
|
+
throw new InvalidStateError();
|
|
2829
|
+
}
|
|
2830
|
+
if (transaction._state !== "active") {
|
|
2831
|
+
throw new TransactionInactiveError();
|
|
2832
|
+
}
|
|
2833
|
+
return transaction;
|
|
2834
|
+
};
|
|
2835
|
+
var FDBDatabase = class extends FakeEventTarget_default {
|
|
2836
|
+
_closePending = false;
|
|
2837
|
+
_closed = false;
|
|
2838
|
+
_runningVersionchangeTransaction = false;
|
|
2839
|
+
constructor(rawDatabase) {
|
|
2840
|
+
super();
|
|
2841
|
+
this._rawDatabase = rawDatabase;
|
|
2842
|
+
this._rawDatabase.connections.push(this);
|
|
2843
|
+
this.name = rawDatabase.name;
|
|
2844
|
+
this.version = rawDatabase.version;
|
|
2845
|
+
this.objectStoreNames = new FakeDOMStringList_default(...Array.from(rawDatabase.rawObjectStores.keys()).sort());
|
|
2846
|
+
}
|
|
2847
|
+
// http://w3c.github.io/IndexedDB/#dom-idbdatabase-createobjectstore
|
|
2848
|
+
createObjectStore(name, options = {}) {
|
|
2849
|
+
if (name === void 0) {
|
|
2850
|
+
throw new TypeError();
|
|
2851
|
+
}
|
|
2852
|
+
const transaction = confirmActiveVersionchangeTransaction(this);
|
|
2853
|
+
const keyPath = options !== null && options.keyPath !== void 0 ? options.keyPath : null;
|
|
2854
|
+
const autoIncrement = options !== null && options.autoIncrement !== void 0 ? options.autoIncrement : false;
|
|
2855
|
+
if (keyPath !== null) {
|
|
2856
|
+
validateKeyPath_default(keyPath);
|
|
2857
|
+
}
|
|
2858
|
+
if (this._rawDatabase.rawObjectStores.has(name)) {
|
|
2859
|
+
throw new ConstraintError();
|
|
2860
|
+
}
|
|
2861
|
+
if (autoIncrement && (keyPath === "" || Array.isArray(keyPath))) {
|
|
2862
|
+
throw new InvalidAccessError();
|
|
2863
|
+
}
|
|
2864
|
+
const objectStoreNames = [...this.objectStoreNames];
|
|
2865
|
+
const transactionObjectStoreNames = [...transaction.objectStoreNames];
|
|
2866
|
+
const rawObjectStore = new ObjectStore_default(this._rawDatabase, name, keyPath, autoIncrement);
|
|
2867
|
+
this.objectStoreNames._push(name);
|
|
2868
|
+
this.objectStoreNames._sort();
|
|
2869
|
+
transaction._scope.add(name);
|
|
2870
|
+
transaction._createdObjectStores.add(rawObjectStore);
|
|
2871
|
+
this._rawDatabase.rawObjectStores.set(name, rawObjectStore);
|
|
2872
|
+
transaction.objectStoreNames = new FakeDOMStringList_default(...this.objectStoreNames);
|
|
2873
|
+
transaction._rollbackLog.push(() => {
|
|
2874
|
+
rawObjectStore.deleted = true;
|
|
2875
|
+
this.objectStoreNames = new FakeDOMStringList_default(...objectStoreNames);
|
|
2876
|
+
transaction.objectStoreNames = new FakeDOMStringList_default(...transactionObjectStoreNames);
|
|
2877
|
+
transaction._scope.delete(rawObjectStore.name);
|
|
2878
|
+
this._rawDatabase.rawObjectStores.delete(rawObjectStore.name);
|
|
2879
|
+
});
|
|
2880
|
+
return transaction.objectStore(name);
|
|
2881
|
+
}
|
|
2882
|
+
// https://www.w3.org/TR/IndexedDB/#dom-idbdatabase-deleteobjectstore
|
|
2883
|
+
deleteObjectStore(name) {
|
|
2884
|
+
if (name === void 0) {
|
|
2885
|
+
throw new TypeError();
|
|
2886
|
+
}
|
|
2887
|
+
const transaction = confirmActiveVersionchangeTransaction(this);
|
|
2888
|
+
const store = this._rawDatabase.rawObjectStores.get(name);
|
|
2889
|
+
if (store === void 0) {
|
|
2890
|
+
throw new NotFoundError();
|
|
2891
|
+
}
|
|
2892
|
+
this.objectStoreNames = new FakeDOMStringList_default(...Array.from(this.objectStoreNames).filter((objectStoreName) => {
|
|
2893
|
+
return objectStoreName !== name;
|
|
2894
|
+
}));
|
|
2895
|
+
transaction.objectStoreNames = new FakeDOMStringList_default(...this.objectStoreNames);
|
|
2896
|
+
const objectStore = transaction._objectStoresCache.get(name);
|
|
2897
|
+
let prevIndexNames;
|
|
2898
|
+
if (objectStore) {
|
|
2899
|
+
prevIndexNames = [...objectStore.indexNames];
|
|
2900
|
+
objectStore.indexNames = new FakeDOMStringList_default();
|
|
2901
|
+
}
|
|
2902
|
+
transaction._rollbackLog.push(() => {
|
|
2903
|
+
store.deleted = false;
|
|
2904
|
+
this._rawDatabase.rawObjectStores.set(store.name, store);
|
|
2905
|
+
this.objectStoreNames._push(store.name);
|
|
2906
|
+
transaction.objectStoreNames._push(store.name);
|
|
2907
|
+
this.objectStoreNames._sort();
|
|
2908
|
+
if (objectStore && prevIndexNames) {
|
|
2909
|
+
objectStore.indexNames = new FakeDOMStringList_default(...prevIndexNames);
|
|
2910
|
+
}
|
|
2911
|
+
});
|
|
2912
|
+
store.deleted = true;
|
|
2913
|
+
this._rawDatabase.rawObjectStores.delete(name);
|
|
2914
|
+
transaction._objectStoresCache.delete(name);
|
|
2915
|
+
}
|
|
2916
|
+
transaction(storeNames, mode, options) {
|
|
2917
|
+
mode = mode !== void 0 ? mode : "readonly";
|
|
2918
|
+
if (mode !== "readonly" && mode !== "readwrite" && mode !== "versionchange") {
|
|
2919
|
+
throw new TypeError("Invalid mode: " + mode);
|
|
2920
|
+
}
|
|
2921
|
+
const hasActiveVersionchange = this._rawDatabase.transactions.some((transaction) => {
|
|
2922
|
+
return transaction._state === "active" && transaction.mode === "versionchange" && transaction.db === this;
|
|
2923
|
+
});
|
|
2924
|
+
if (hasActiveVersionchange) {
|
|
2925
|
+
throw new InvalidStateError();
|
|
2926
|
+
}
|
|
2927
|
+
if (this._closePending) {
|
|
2928
|
+
throw new InvalidStateError();
|
|
2929
|
+
}
|
|
2930
|
+
if (!Array.isArray(storeNames)) {
|
|
2931
|
+
storeNames = [storeNames];
|
|
2932
|
+
}
|
|
2933
|
+
if (storeNames.length === 0 && mode !== "versionchange") {
|
|
2934
|
+
throw new InvalidAccessError();
|
|
2935
|
+
}
|
|
2936
|
+
for (const storeName of storeNames) {
|
|
2937
|
+
if (!this.objectStoreNames.contains(storeName)) {
|
|
2938
|
+
throw new NotFoundError("No objectStore named " + storeName + " in this database");
|
|
2939
|
+
}
|
|
2940
|
+
}
|
|
2941
|
+
const durability = options?.durability ?? "default";
|
|
2942
|
+
if (durability !== "default" && durability !== "strict" && durability !== "relaxed") {
|
|
2943
|
+
throw new TypeError(
|
|
2944
|
+
// based on Firefox's error message
|
|
2945
|
+
`'${durability}' (value of 'durability' member of IDBTransactionOptions) is not a valid value for enumeration IDBTransactionDurability`
|
|
2946
|
+
);
|
|
2947
|
+
}
|
|
2948
|
+
const tx = new FDBTransaction_default(storeNames, mode, durability, this);
|
|
2949
|
+
this._rawDatabase.transactions.push(tx);
|
|
2950
|
+
this._rawDatabase.processTransactions();
|
|
2951
|
+
return tx;
|
|
2952
|
+
}
|
|
2953
|
+
close() {
|
|
2954
|
+
closeConnection_default(this);
|
|
2955
|
+
}
|
|
2956
|
+
get [Symbol.toStringTag]() {
|
|
2957
|
+
return "IDBDatabase";
|
|
2958
|
+
}
|
|
2959
|
+
};
|
|
2960
|
+
var FDBDatabase_default = FDBDatabase;
|
|
2961
|
+
|
|
2962
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBOpenDBRequest.js
|
|
2963
|
+
init_shims();
|
|
2964
|
+
var FDBOpenDBRequest = class extends FDBRequest_default {
|
|
2965
|
+
onupgradeneeded = null;
|
|
2966
|
+
onblocked = null;
|
|
2967
|
+
get [Symbol.toStringTag]() {
|
|
2968
|
+
return "IDBOpenDBRequest";
|
|
2969
|
+
}
|
|
2970
|
+
};
|
|
2971
|
+
var FDBOpenDBRequest_default = FDBOpenDBRequest;
|
|
2972
|
+
|
|
2973
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBVersionChangeEvent.js
|
|
2974
|
+
init_shims();
|
|
2975
|
+
var FDBVersionChangeEvent = class extends FakeEvent_default {
|
|
2976
|
+
constructor(type, parameters = {}) {
|
|
2977
|
+
super(type);
|
|
2978
|
+
this.newVersion = parameters.newVersion !== void 0 ? parameters.newVersion : null;
|
|
2979
|
+
this.oldVersion = parameters.oldVersion !== void 0 ? parameters.oldVersion : 0;
|
|
2980
|
+
}
|
|
2981
|
+
get [Symbol.toStringTag]() {
|
|
2982
|
+
return "IDBVersionChangeEvent";
|
|
2983
|
+
}
|
|
2984
|
+
};
|
|
2985
|
+
var FDBVersionChangeEvent_default = FDBVersionChangeEvent;
|
|
2986
|
+
|
|
2987
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/Database.js
|
|
2988
|
+
init_shims();
|
|
2989
|
+
|
|
2990
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/intersection.js
|
|
2991
|
+
init_shims();
|
|
2992
|
+
function intersection(set1, set2) {
|
|
2993
|
+
if ("intersection" in set1) {
|
|
2994
|
+
return set1.intersection(set2);
|
|
2995
|
+
}
|
|
2996
|
+
return new Set([...set1].filter((item) => set2.has(item)));
|
|
2997
|
+
}
|
|
2998
|
+
|
|
2999
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/Database.js
|
|
3000
|
+
var Database = class {
|
|
3001
|
+
transactions = [];
|
|
3002
|
+
rawObjectStores = /* @__PURE__ */ new Map();
|
|
3003
|
+
connections = [];
|
|
3004
|
+
constructor(name, version) {
|
|
3005
|
+
this.name = name;
|
|
3006
|
+
this.version = version;
|
|
3007
|
+
this.processTransactions = this.processTransactions.bind(this);
|
|
3008
|
+
}
|
|
3009
|
+
processTransactions() {
|
|
3010
|
+
queueTask(() => {
|
|
3011
|
+
const running = this.transactions.filter((transaction) => transaction._started && transaction._state !== "finished");
|
|
3012
|
+
const waiting = this.transactions.filter((transaction) => !transaction._started && transaction._state !== "finished");
|
|
3013
|
+
const next = waiting.find((transaction, i) => {
|
|
3014
|
+
const anyRunning = running.some((other) => !(transaction.mode === "readonly" && other.mode === "readonly") && intersection(other._scope, transaction._scope).size > 0);
|
|
3015
|
+
if (anyRunning) {
|
|
3016
|
+
return false;
|
|
3017
|
+
}
|
|
3018
|
+
const anyWaiting = waiting.slice(0, i).some((other) => intersection(other._scope, transaction._scope).size > 0);
|
|
3019
|
+
return !anyWaiting;
|
|
3020
|
+
});
|
|
3021
|
+
if (next) {
|
|
3022
|
+
next.addEventListener("complete", this.processTransactions);
|
|
3023
|
+
next.addEventListener("abort", this.processTransactions);
|
|
3024
|
+
next._start();
|
|
3025
|
+
}
|
|
3026
|
+
});
|
|
3027
|
+
}
|
|
3028
|
+
};
|
|
3029
|
+
var Database_default = Database;
|
|
3030
|
+
|
|
3031
|
+
// ../../node_modules/fake-indexeddb/build/esm/lib/validateRequiredArguments.js
|
|
3032
|
+
init_shims();
|
|
3033
|
+
function validateRequiredArguments(numArguments, expectedNumArguments, methodName) {
|
|
3034
|
+
if (numArguments < expectedNumArguments) {
|
|
3035
|
+
throw new TypeError(`${methodName}: At least ${expectedNumArguments} ${expectedNumArguments === 1 ? "argument" : "arguments"} required, but only ${arguments.length} passed`);
|
|
3036
|
+
}
|
|
3037
|
+
}
|
|
3038
|
+
|
|
3039
|
+
// ../../node_modules/fake-indexeddb/build/esm/FDBFactory.js
|
|
3040
|
+
var runTaskInConnectionQueue = (connectionQueues, name, task) => {
|
|
3041
|
+
const queue = connectionQueues.get(name) ?? Promise.resolve();
|
|
3042
|
+
connectionQueues.set(name, queue.then(task));
|
|
3043
|
+
};
|
|
3044
|
+
var waitForOthersClosedDelete = (databases, name, openDatabases, cb) => {
|
|
3045
|
+
const anyOpen = openDatabases.some((openDatabase2) => {
|
|
3046
|
+
return !openDatabase2._closed && !openDatabase2._closePending;
|
|
3047
|
+
});
|
|
3048
|
+
if (anyOpen) {
|
|
3049
|
+
queueTask(() => waitForOthersClosedDelete(databases, name, openDatabases, cb));
|
|
3050
|
+
return;
|
|
3051
|
+
}
|
|
3052
|
+
databases.delete(name);
|
|
3053
|
+
cb(null);
|
|
3054
|
+
};
|
|
3055
|
+
var deleteDatabase = (databases, connectionQueues, name, request, cb) => {
|
|
3056
|
+
const deleteDBTask = () => {
|
|
3057
|
+
return new Promise((resolve) => {
|
|
3058
|
+
const db = databases.get(name);
|
|
3059
|
+
const oldVersion = db !== void 0 ? db.version : 0;
|
|
3060
|
+
const onComplete = (err) => {
|
|
3061
|
+
try {
|
|
3062
|
+
if (err) {
|
|
3063
|
+
cb(err);
|
|
3064
|
+
} else {
|
|
3065
|
+
cb(null, oldVersion);
|
|
3066
|
+
}
|
|
3067
|
+
} finally {
|
|
3068
|
+
resolve();
|
|
3069
|
+
}
|
|
3070
|
+
};
|
|
3071
|
+
try {
|
|
3072
|
+
const db2 = databases.get(name);
|
|
3073
|
+
if (db2 === void 0) {
|
|
3074
|
+
onComplete(null);
|
|
3075
|
+
return;
|
|
3076
|
+
}
|
|
3077
|
+
const openConnections = db2.connections.filter((connection) => {
|
|
3078
|
+
return !connection._closed;
|
|
3079
|
+
});
|
|
3080
|
+
for (const openDatabase2 of openConnections) {
|
|
3081
|
+
if (!openDatabase2._closePending) {
|
|
3082
|
+
queueTask(() => {
|
|
3083
|
+
const event = new FDBVersionChangeEvent_default("versionchange", {
|
|
3084
|
+
newVersion: null,
|
|
3085
|
+
oldVersion: db2.version
|
|
3086
|
+
});
|
|
3087
|
+
openDatabase2.dispatchEvent(event);
|
|
3088
|
+
});
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
queueTask(() => {
|
|
3092
|
+
const anyOpen = openConnections.some((openDatabase3) => {
|
|
3093
|
+
return !openDatabase3._closed && !openDatabase3._closePending;
|
|
3094
|
+
});
|
|
3095
|
+
if (anyOpen) {
|
|
3096
|
+
queueTask(() => {
|
|
3097
|
+
const event = new FDBVersionChangeEvent_default("blocked", {
|
|
3098
|
+
newVersion: null,
|
|
3099
|
+
oldVersion: db2.version
|
|
3100
|
+
});
|
|
3101
|
+
request.dispatchEvent(event);
|
|
3102
|
+
});
|
|
3103
|
+
}
|
|
3104
|
+
waitForOthersClosedDelete(databases, name, openConnections, onComplete);
|
|
3105
|
+
});
|
|
3106
|
+
} catch (err) {
|
|
3107
|
+
onComplete(err);
|
|
3108
|
+
}
|
|
3109
|
+
});
|
|
3110
|
+
};
|
|
3111
|
+
runTaskInConnectionQueue(connectionQueues, name, deleteDBTask);
|
|
3112
|
+
};
|
|
3113
|
+
var runVersionchangeTransaction = (connection, version, request, cb) => {
|
|
3114
|
+
connection._runningVersionchangeTransaction = true;
|
|
3115
|
+
const oldVersion = connection._oldVersion = connection.version;
|
|
3116
|
+
const openConnections = connection._rawDatabase.connections.filter((otherDatabase) => {
|
|
3117
|
+
return connection !== otherDatabase;
|
|
3118
|
+
});
|
|
3119
|
+
for (const openDatabase2 of openConnections) {
|
|
3120
|
+
if (!openDatabase2._closed && !openDatabase2._closePending) {
|
|
3121
|
+
queueTask(() => {
|
|
3122
|
+
const event = new FDBVersionChangeEvent_default("versionchange", {
|
|
3123
|
+
newVersion: version,
|
|
3124
|
+
oldVersion
|
|
3125
|
+
});
|
|
3126
|
+
openDatabase2.dispatchEvent(event);
|
|
3127
|
+
});
|
|
3128
|
+
}
|
|
3129
|
+
}
|
|
3130
|
+
queueTask(() => {
|
|
3131
|
+
const anyOpen = openConnections.some((openDatabase3) => {
|
|
3132
|
+
return !openDatabase3._closed && !openDatabase3._closePending;
|
|
3133
|
+
});
|
|
3134
|
+
if (anyOpen) {
|
|
3135
|
+
queueTask(() => {
|
|
3136
|
+
const event = new FDBVersionChangeEvent_default("blocked", {
|
|
3137
|
+
newVersion: version,
|
|
3138
|
+
oldVersion
|
|
3139
|
+
});
|
|
3140
|
+
request.dispatchEvent(event);
|
|
3141
|
+
});
|
|
3142
|
+
}
|
|
3143
|
+
const waitForOthersClosed = () => {
|
|
3144
|
+
const anyOpen2 = openConnections.some((openDatabase2) => {
|
|
3145
|
+
return !openDatabase2._closed && !openDatabase2._closePending;
|
|
3146
|
+
});
|
|
3147
|
+
if (anyOpen2) {
|
|
3148
|
+
queueTask(waitForOthersClosed);
|
|
3149
|
+
return;
|
|
3150
|
+
}
|
|
3151
|
+
connection._rawDatabase.version = version;
|
|
3152
|
+
connection.version = version;
|
|
3153
|
+
const transaction = connection.transaction(Array.from(connection.objectStoreNames), "versionchange");
|
|
3154
|
+
transaction._openRequest = request;
|
|
3155
|
+
request.result = connection;
|
|
3156
|
+
request.readyState = "done";
|
|
3157
|
+
request.transaction = transaction;
|
|
3158
|
+
transaction._rollbackLog.push(() => {
|
|
3159
|
+
connection._rawDatabase.version = oldVersion;
|
|
3160
|
+
connection.version = oldVersion;
|
|
3161
|
+
});
|
|
3162
|
+
transaction._state = "active";
|
|
3163
|
+
const event = new FDBVersionChangeEvent_default("upgradeneeded", {
|
|
3164
|
+
newVersion: version,
|
|
3165
|
+
oldVersion
|
|
3166
|
+
});
|
|
3167
|
+
let didThrow = false;
|
|
3168
|
+
try {
|
|
3169
|
+
request.dispatchEvent(event);
|
|
3170
|
+
} catch (_err) {
|
|
3171
|
+
didThrow = true;
|
|
3172
|
+
}
|
|
3173
|
+
const concludeUpgrade = () => {
|
|
3174
|
+
if (transaction._state === "active") {
|
|
3175
|
+
transaction._state = "inactive";
|
|
3176
|
+
if (didThrow) {
|
|
3177
|
+
transaction._abort("AbortError");
|
|
3178
|
+
}
|
|
3179
|
+
}
|
|
3180
|
+
};
|
|
3181
|
+
if (didThrow) {
|
|
3182
|
+
concludeUpgrade();
|
|
3183
|
+
} else {
|
|
3184
|
+
queueTask(concludeUpgrade);
|
|
3185
|
+
}
|
|
3186
|
+
transaction._prioritizedListeners.set("error", () => {
|
|
3187
|
+
connection._runningVersionchangeTransaction = false;
|
|
3188
|
+
connection._oldVersion = void 0;
|
|
3189
|
+
});
|
|
3190
|
+
transaction._prioritizedListeners.set("abort", () => {
|
|
3191
|
+
connection._runningVersionchangeTransaction = false;
|
|
3192
|
+
connection._oldVersion = void 0;
|
|
3193
|
+
queueTask(() => {
|
|
3194
|
+
request.transaction = null;
|
|
3195
|
+
cb(new AbortError());
|
|
3196
|
+
});
|
|
3197
|
+
});
|
|
3198
|
+
transaction._prioritizedListeners.set("complete", () => {
|
|
3199
|
+
connection._runningVersionchangeTransaction = false;
|
|
3200
|
+
connection._oldVersion = void 0;
|
|
3201
|
+
queueTask(() => {
|
|
3202
|
+
request.transaction = null;
|
|
3203
|
+
if (connection._closePending) {
|
|
3204
|
+
cb(new AbortError());
|
|
3205
|
+
} else {
|
|
3206
|
+
cb(null);
|
|
3207
|
+
}
|
|
3208
|
+
});
|
|
3209
|
+
});
|
|
3210
|
+
};
|
|
3211
|
+
waitForOthersClosed();
|
|
3212
|
+
});
|
|
3213
|
+
};
|
|
3214
|
+
var openDatabase = (databases, connectionQueues, name, version, request, cb) => {
|
|
3215
|
+
const openDBTask = () => {
|
|
3216
|
+
return new Promise((resolve) => {
|
|
3217
|
+
const onComplete = (err) => {
|
|
3218
|
+
try {
|
|
3219
|
+
if (err) {
|
|
3220
|
+
cb(err);
|
|
3221
|
+
} else {
|
|
3222
|
+
cb(null, connection);
|
|
3223
|
+
}
|
|
3224
|
+
} finally {
|
|
3225
|
+
resolve();
|
|
3226
|
+
}
|
|
3227
|
+
};
|
|
3228
|
+
let db = databases.get(name);
|
|
3229
|
+
if (db === void 0) {
|
|
3230
|
+
db = new Database_default(name, 0);
|
|
3231
|
+
databases.set(name, db);
|
|
3232
|
+
}
|
|
3233
|
+
if (version === void 0) {
|
|
3234
|
+
version = db.version !== 0 ? db.version : 1;
|
|
3235
|
+
}
|
|
3236
|
+
if (db.version > version) {
|
|
3237
|
+
return onComplete(new VersionError());
|
|
3238
|
+
}
|
|
3239
|
+
const connection = new FDBDatabase_default(db);
|
|
3240
|
+
if (db.version < version) {
|
|
3241
|
+
runVersionchangeTransaction(connection, version, request, (err) => {
|
|
3242
|
+
onComplete(err);
|
|
3243
|
+
});
|
|
3244
|
+
} else {
|
|
3245
|
+
onComplete(null);
|
|
3246
|
+
}
|
|
3247
|
+
});
|
|
3248
|
+
};
|
|
3249
|
+
runTaskInConnectionQueue(connectionQueues, name, openDBTask);
|
|
3250
|
+
};
|
|
3251
|
+
var FDBFactory = class {
|
|
3252
|
+
_databases = /* @__PURE__ */ new Map();
|
|
3253
|
+
// https://w3c.github.io/IndexedDB/#connection-queue
|
|
3254
|
+
_connectionQueues = /* @__PURE__ */ new Map();
|
|
3255
|
+
// promise chain as lightweight FIFO task queue
|
|
3256
|
+
// https://w3c.github.io/IndexedDB/#dom-idbfactory-cmp
|
|
3257
|
+
cmp(first, second) {
|
|
3258
|
+
validateRequiredArguments(arguments.length, 2, "IDBFactory.cmp");
|
|
3259
|
+
return cmp_default(first, second);
|
|
3260
|
+
}
|
|
3261
|
+
// https://w3c.github.io/IndexedDB/#dom-idbfactory-deletedatabase
|
|
3262
|
+
deleteDatabase(name) {
|
|
3263
|
+
validateRequiredArguments(arguments.length, 1, "IDBFactory.deleteDatabase");
|
|
3264
|
+
const request = new FDBOpenDBRequest_default();
|
|
3265
|
+
request.source = null;
|
|
3266
|
+
queueTask(() => {
|
|
3267
|
+
deleteDatabase(this._databases, this._connectionQueues, name, request, (err, oldVersion) => {
|
|
3268
|
+
if (err) {
|
|
3269
|
+
request.error = new DOMException(err.message, err.name);
|
|
3270
|
+
request.readyState = "done";
|
|
3271
|
+
const event = new FakeEvent_default("error", {
|
|
3272
|
+
bubbles: true,
|
|
3273
|
+
cancelable: true
|
|
3274
|
+
});
|
|
3275
|
+
event.eventPath = [];
|
|
3276
|
+
request.dispatchEvent(event);
|
|
3277
|
+
return;
|
|
3278
|
+
}
|
|
3279
|
+
request.result = void 0;
|
|
3280
|
+
request.readyState = "done";
|
|
3281
|
+
const event2 = new FDBVersionChangeEvent_default("success", {
|
|
3282
|
+
newVersion: null,
|
|
3283
|
+
oldVersion
|
|
3284
|
+
});
|
|
3285
|
+
request.dispatchEvent(event2);
|
|
3286
|
+
});
|
|
3287
|
+
});
|
|
3288
|
+
return request;
|
|
3289
|
+
}
|
|
3290
|
+
// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBFactory-open-IDBOpenDBRequest-DOMString-name-unsigned-long-long-version
|
|
3291
|
+
open(name, version) {
|
|
3292
|
+
validateRequiredArguments(arguments.length, 1, "IDBFactory.open");
|
|
3293
|
+
if (arguments.length > 1 && version !== void 0) {
|
|
3294
|
+
version = enforceRange_default(version, "MAX_SAFE_INTEGER");
|
|
3295
|
+
}
|
|
3296
|
+
if (version === 0) {
|
|
3297
|
+
throw new TypeError("Database version cannot be 0");
|
|
3298
|
+
}
|
|
3299
|
+
const request = new FDBOpenDBRequest_default();
|
|
3300
|
+
request.source = null;
|
|
3301
|
+
queueTask(() => {
|
|
3302
|
+
openDatabase(this._databases, this._connectionQueues, name, version, request, (err, connection) => {
|
|
3303
|
+
if (err) {
|
|
3304
|
+
request.result = void 0;
|
|
3305
|
+
request.readyState = "done";
|
|
3306
|
+
request.error = new DOMException(err.message, err.name);
|
|
3307
|
+
const event = new FakeEvent_default("error", {
|
|
3308
|
+
bubbles: true,
|
|
3309
|
+
cancelable: true
|
|
3310
|
+
});
|
|
3311
|
+
event.eventPath = [];
|
|
3312
|
+
request.dispatchEvent(event);
|
|
3313
|
+
return;
|
|
3314
|
+
}
|
|
3315
|
+
request.result = connection;
|
|
3316
|
+
request.readyState = "done";
|
|
3317
|
+
const event2 = new FakeEvent_default("success");
|
|
3318
|
+
event2.eventPath = [];
|
|
3319
|
+
request.dispatchEvent(event2);
|
|
3320
|
+
});
|
|
3321
|
+
});
|
|
3322
|
+
return request;
|
|
3323
|
+
}
|
|
3324
|
+
// https://w3c.github.io/IndexedDB/#dom-idbfactory-databases
|
|
3325
|
+
databases() {
|
|
3326
|
+
return Promise.resolve(Array.from(this._databases.entries(), ([name, database]) => {
|
|
3327
|
+
const activeVersionChangeConnection = database.connections.find((connection) => connection._runningVersionchangeTransaction);
|
|
3328
|
+
const version = activeVersionChangeConnection ? activeVersionChangeConnection._oldVersion : database.version;
|
|
3329
|
+
return {
|
|
3330
|
+
name,
|
|
3331
|
+
version
|
|
3332
|
+
};
|
|
3333
|
+
}).filter(({
|
|
3334
|
+
version
|
|
3335
|
+
}) => {
|
|
3336
|
+
return version > 0;
|
|
3337
|
+
}));
|
|
3338
|
+
}
|
|
3339
|
+
get [Symbol.toStringTag]() {
|
|
3340
|
+
return "IDBFactory";
|
|
3341
|
+
}
|
|
3342
|
+
};
|
|
3343
|
+
var FDBFactory_default = FDBFactory;
|
|
3344
|
+
|
|
3345
|
+
// ../../node_modules/fake-indexeddb/build/esm/fakeIndexedDB.js
|
|
3346
|
+
var fakeIndexedDB = new FDBFactory_default();
|
|
3347
|
+
var fakeIndexedDB_default = fakeIndexedDB;
|
|
3348
|
+
|
|
3349
|
+
// ../../node_modules/fake-indexeddb/build/esm/forceCloseDatabase.js
|
|
3350
|
+
init_shims();
|
|
3351
|
+
|
|
3352
|
+
// src/matrix/sdk/idb-persistence.ts
|
|
3353
|
+
import { withFileLock } from "openclaw/plugin-sdk/infra-runtime";
|
|
3354
|
+
function isValidIdbIndexSnapshot(value) {
|
|
3355
|
+
if (!value || typeof value !== "object") {
|
|
3356
|
+
return false;
|
|
3357
|
+
}
|
|
3358
|
+
const candidate = value;
|
|
3359
|
+
return typeof candidate.name === "string" && (typeof candidate.keyPath === "string" || Array.isArray(candidate.keyPath) && candidate.keyPath.every((entry) => typeof entry === "string")) && typeof candidate.multiEntry === "boolean" && typeof candidate.unique === "boolean";
|
|
3360
|
+
}
|
|
3361
|
+
function isValidIdbRecordSnapshot(value) {
|
|
3362
|
+
if (!value || typeof value !== "object") {
|
|
3363
|
+
return false;
|
|
3364
|
+
}
|
|
3365
|
+
return "key" in value && "value" in value;
|
|
3366
|
+
}
|
|
3367
|
+
function isValidIdbStoreSnapshot(value) {
|
|
3368
|
+
if (!value || typeof value !== "object") {
|
|
3369
|
+
return false;
|
|
3370
|
+
}
|
|
3371
|
+
const candidate = value;
|
|
3372
|
+
const validKeyPath = candidate.keyPath === null || typeof candidate.keyPath === "string" || Array.isArray(candidate.keyPath) && candidate.keyPath.every((entry) => typeof entry === "string");
|
|
3373
|
+
return typeof candidate.name === "string" && validKeyPath && typeof candidate.autoIncrement === "boolean" && Array.isArray(candidate.indexes) && candidate.indexes.every((entry) => isValidIdbIndexSnapshot(entry)) && Array.isArray(candidate.records) && candidate.records.every((entry) => isValidIdbRecordSnapshot(entry));
|
|
3374
|
+
}
|
|
3375
|
+
function isValidIdbDatabaseSnapshot(value) {
|
|
3376
|
+
if (!value || typeof value !== "object") {
|
|
3377
|
+
return false;
|
|
3378
|
+
}
|
|
3379
|
+
const candidate = value;
|
|
3380
|
+
return typeof candidate.name === "string" && typeof candidate.version === "number" && Number.isFinite(candidate.version) && candidate.version > 0 && Array.isArray(candidate.stores) && candidate.stores.every((entry) => isValidIdbStoreSnapshot(entry));
|
|
3381
|
+
}
|
|
3382
|
+
function parseSnapshotPayload(data) {
|
|
3383
|
+
const parsed = JSON.parse(data);
|
|
3384
|
+
if (!Array.isArray(parsed) || parsed.length === 0) {
|
|
3385
|
+
return null;
|
|
3386
|
+
}
|
|
3387
|
+
if (!parsed.every((entry) => isValidIdbDatabaseSnapshot(entry))) {
|
|
3388
|
+
throw new Error("Malformed IndexedDB snapshot payload");
|
|
3389
|
+
}
|
|
3390
|
+
return parsed;
|
|
3391
|
+
}
|
|
3392
|
+
function idbReq(req) {
|
|
3393
|
+
return new Promise((resolve, reject) => {
|
|
3394
|
+
req.addEventListener("success", () => resolve(req.result), { once: true });
|
|
3395
|
+
req.addEventListener("error", () => reject(req.error), { once: true });
|
|
3396
|
+
});
|
|
3397
|
+
}
|
|
3398
|
+
async function dumpIndexedDatabases(databasePrefix) {
|
|
3399
|
+
const idb = fakeIndexedDB_default;
|
|
3400
|
+
const dbList = await idb.databases();
|
|
3401
|
+
const snapshot = [];
|
|
3402
|
+
const expectedPrefix = databasePrefix ? `${databasePrefix}::` : null;
|
|
3403
|
+
for (const { name, version } of dbList) {
|
|
3404
|
+
if (!name || !version) {
|
|
3405
|
+
continue;
|
|
3406
|
+
}
|
|
3407
|
+
if (expectedPrefix && !name.startsWith(expectedPrefix)) {
|
|
3408
|
+
continue;
|
|
3409
|
+
}
|
|
3410
|
+
const db = await new Promise((resolve, reject) => {
|
|
3411
|
+
const r = idb.open(name, version);
|
|
3412
|
+
r.addEventListener("success", () => resolve(r.result), { once: true });
|
|
3413
|
+
r.addEventListener("error", () => reject(r.error), { once: true });
|
|
3414
|
+
});
|
|
3415
|
+
const stores = [];
|
|
3416
|
+
for (const storeName of db.objectStoreNames) {
|
|
3417
|
+
const tx = db.transaction(storeName, "readonly");
|
|
3418
|
+
const store = tx.objectStore(storeName);
|
|
3419
|
+
const storeInfo = {
|
|
3420
|
+
name: storeName,
|
|
3421
|
+
keyPath: store.keyPath,
|
|
3422
|
+
autoIncrement: store.autoIncrement,
|
|
3423
|
+
indexes: [],
|
|
3424
|
+
records: []
|
|
3425
|
+
};
|
|
3426
|
+
for (const idxName of store.indexNames) {
|
|
3427
|
+
const idx = store.index(idxName);
|
|
3428
|
+
storeInfo.indexes.push({
|
|
3429
|
+
name: idxName,
|
|
3430
|
+
keyPath: idx.keyPath,
|
|
3431
|
+
multiEntry: idx.multiEntry,
|
|
3432
|
+
unique: idx.unique
|
|
3433
|
+
});
|
|
3434
|
+
}
|
|
3435
|
+
const keys = await idbReq(store.getAllKeys());
|
|
3436
|
+
const values = await idbReq(store.getAll());
|
|
3437
|
+
storeInfo.records = keys.map((k, i) => ({ key: k, value: values[i] }));
|
|
3438
|
+
stores.push(storeInfo);
|
|
3439
|
+
}
|
|
3440
|
+
snapshot.push({ name, version, stores });
|
|
3441
|
+
db.close();
|
|
3442
|
+
}
|
|
3443
|
+
return snapshot;
|
|
3444
|
+
}
|
|
3445
|
+
async function restoreIndexedDatabases(snapshot) {
|
|
3446
|
+
const idb = fakeIndexedDB_default;
|
|
3447
|
+
for (const dbSnap of snapshot) {
|
|
3448
|
+
await new Promise((resolve, reject) => {
|
|
3449
|
+
const r = idb.open(dbSnap.name, dbSnap.version);
|
|
3450
|
+
r.addEventListener("upgradeneeded", () => {
|
|
3451
|
+
const db = r.result;
|
|
3452
|
+
for (const storeSnap of dbSnap.stores) {
|
|
3453
|
+
const opts = {};
|
|
3454
|
+
if (storeSnap.keyPath !== null) {
|
|
3455
|
+
opts.keyPath = storeSnap.keyPath;
|
|
3456
|
+
}
|
|
3457
|
+
if (storeSnap.autoIncrement) {
|
|
3458
|
+
opts.autoIncrement = true;
|
|
3459
|
+
}
|
|
3460
|
+
const store = db.createObjectStore(storeSnap.name, opts);
|
|
3461
|
+
for (const idx of storeSnap.indexes) {
|
|
3462
|
+
store.createIndex(idx.name, idx.keyPath, {
|
|
3463
|
+
unique: idx.unique,
|
|
3464
|
+
multiEntry: idx.multiEntry
|
|
3465
|
+
});
|
|
3466
|
+
}
|
|
3467
|
+
}
|
|
3468
|
+
});
|
|
3469
|
+
r.addEventListener(
|
|
3470
|
+
"success",
|
|
3471
|
+
() => {
|
|
3472
|
+
void (async () => {
|
|
3473
|
+
const db = r.result;
|
|
3474
|
+
for (const storeSnap of dbSnap.stores) {
|
|
3475
|
+
if (storeSnap.records.length === 0) {
|
|
3476
|
+
continue;
|
|
3477
|
+
}
|
|
3478
|
+
const tx = db.transaction(storeSnap.name, "readwrite");
|
|
3479
|
+
const store = tx.objectStore(storeSnap.name);
|
|
3480
|
+
for (const rec of storeSnap.records) {
|
|
3481
|
+
if (storeSnap.keyPath !== null) {
|
|
3482
|
+
store.put(rec.value);
|
|
3483
|
+
} else {
|
|
3484
|
+
store.put(rec.value, rec.key);
|
|
3485
|
+
}
|
|
3486
|
+
}
|
|
3487
|
+
await new Promise((res) => {
|
|
3488
|
+
tx.addEventListener("complete", () => res(), { once: true });
|
|
3489
|
+
});
|
|
3490
|
+
}
|
|
3491
|
+
db.close();
|
|
3492
|
+
resolve();
|
|
3493
|
+
})().catch(reject);
|
|
3494
|
+
},
|
|
3495
|
+
{ once: true }
|
|
3496
|
+
);
|
|
3497
|
+
r.addEventListener("error", () => reject(r.error), { once: true });
|
|
3498
|
+
});
|
|
3499
|
+
}
|
|
3500
|
+
}
|
|
3501
|
+
function resolveDefaultIdbSnapshotPath() {
|
|
3502
|
+
const stateDir = process.env.OPENCLAW_STATE_DIR || path.join(process.env.HOME || "/tmp", ".openclaw");
|
|
3503
|
+
return path.join(stateDir, "matrix", "crypto-idb-snapshot.json");
|
|
3504
|
+
}
|
|
3505
|
+
async function restoreIdbFromDisk(snapshotPath) {
|
|
3506
|
+
const candidatePaths = snapshotPath ? [snapshotPath] : [resolveDefaultIdbSnapshotPath()];
|
|
3507
|
+
for (const resolvedPath of candidatePaths) {
|
|
3508
|
+
try {
|
|
3509
|
+
const restored = await withFileLock(
|
|
3510
|
+
resolvedPath,
|
|
3511
|
+
MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS,
|
|
3512
|
+
async () => {
|
|
3513
|
+
const data = fs.readFileSync(resolvedPath, "utf8");
|
|
3514
|
+
const snapshot = parseSnapshotPayload(data);
|
|
3515
|
+
if (!snapshot) {
|
|
3516
|
+
return false;
|
|
3517
|
+
}
|
|
3518
|
+
await restoreIndexedDatabases(snapshot);
|
|
3519
|
+
LogService.info(
|
|
3520
|
+
"IdbPersistence",
|
|
3521
|
+
`Restored ${snapshot.length} IndexedDB database(s) from ${resolvedPath}`
|
|
3522
|
+
);
|
|
3523
|
+
return true;
|
|
3524
|
+
}
|
|
3525
|
+
);
|
|
3526
|
+
if (restored) {
|
|
3527
|
+
return true;
|
|
3528
|
+
}
|
|
3529
|
+
} catch (err) {
|
|
3530
|
+
LogService.warn(
|
|
3531
|
+
"IdbPersistence",
|
|
3532
|
+
`Failed to restore IndexedDB snapshot from ${resolvedPath}:`,
|
|
3533
|
+
err
|
|
3534
|
+
);
|
|
3535
|
+
continue;
|
|
3536
|
+
}
|
|
3537
|
+
}
|
|
3538
|
+
return false;
|
|
3539
|
+
}
|
|
3540
|
+
async function persistIdbToDisk(params) {
|
|
3541
|
+
const snapshotPath = params?.snapshotPath ?? resolveDefaultIdbSnapshotPath();
|
|
3542
|
+
try {
|
|
3543
|
+
fs.mkdirSync(path.dirname(snapshotPath), { recursive: true });
|
|
3544
|
+
const persistedCount = await withFileLock(
|
|
3545
|
+
snapshotPath,
|
|
3546
|
+
MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS,
|
|
3547
|
+
async () => {
|
|
3548
|
+
const snapshot = await dumpIndexedDatabases(params?.databasePrefix);
|
|
3549
|
+
if (snapshot.length === 0) {
|
|
3550
|
+
return 0;
|
|
3551
|
+
}
|
|
3552
|
+
fs.writeFileSync(snapshotPath, JSON.stringify(snapshot));
|
|
3553
|
+
fs.chmodSync(snapshotPath, 384);
|
|
3554
|
+
return snapshot.length;
|
|
3555
|
+
}
|
|
3556
|
+
);
|
|
3557
|
+
if (persistedCount === 0) {
|
|
3558
|
+
return;
|
|
3559
|
+
}
|
|
3560
|
+
LogService.debug(
|
|
3561
|
+
"IdbPersistence",
|
|
3562
|
+
`Persisted ${persistedCount} IndexedDB database(s) to ${snapshotPath}`
|
|
3563
|
+
);
|
|
3564
|
+
} catch (err) {
|
|
3565
|
+
LogService.warn("IdbPersistence", "Failed to persist IndexedDB snapshot:", err);
|
|
3566
|
+
}
|
|
3567
|
+
}
|
|
3568
|
+
|
|
3569
|
+
export {
|
|
3570
|
+
FDBKeyRange_default,
|
|
3571
|
+
FDBCursor_default,
|
|
3572
|
+
FDBCursorWithValue_default,
|
|
3573
|
+
FDBRequest_default,
|
|
3574
|
+
FDBIndex_default,
|
|
3575
|
+
FDBRecord_default,
|
|
3576
|
+
FDBObjectStore_default,
|
|
3577
|
+
FDBTransaction_default,
|
|
3578
|
+
FDBDatabase_default,
|
|
3579
|
+
FDBOpenDBRequest_default,
|
|
3580
|
+
FDBVersionChangeEvent_default,
|
|
3581
|
+
FDBFactory_default,
|
|
3582
|
+
fakeIndexedDB_default,
|
|
3583
|
+
restoreIdbFromDisk,
|
|
3584
|
+
persistIdbToDisk
|
|
3585
|
+
};
|
|
3586
|
+
//# sourceMappingURL=chunk-XK6VF3H7.js.map
|