@archipelagolab/lobi 1.0.6 → 1.0.8
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/CHANGELOG.md +164 -0
- package/README.md +76 -78
- package/SPEC-SUPPORT.md +116 -0
- package/api.ts +18 -0
- package/auth-presence.ts +56 -0
- package/channel-plugin-api.ts +3 -0
- package/cli-metadata.ts +11 -0
- package/contract-api.ts +17 -0
- package/helper-api.ts +3 -0
- package/index.test.ts +61 -0
- package/index.ts +56 -0
- package/openclaw.plugin.json +10 -10
- package/package.json +12 -19
- package/plugin-entry.handlers.runtime.ts +1 -0
- package/runtime-api.ts +54 -0
- package/runtime-heavy-api.ts +1 -0
- package/secret-contract-api.ts +5 -0
- package/setup-entry.ts +13 -0
- package/src/account-selection.test.ts +124 -0
- package/src/account-selection.ts +220 -0
- package/src/actions.account-propagation.test.ts +251 -0
- package/src/actions.test.ts +251 -0
- package/src/actions.ts +336 -0
- package/src/approval-auth.test.ts +23 -0
- package/src/approval-auth.ts +25 -0
- package/src/approval-handler.runtime.test.ts +46 -0
- package/src/approval-handler.runtime.ts +400 -0
- package/src/approval-ids.ts +6 -0
- package/src/approval-native.test.ts +329 -0
- package/src/approval-native.ts +336 -0
- package/src/approval-reactions.test.ts +107 -0
- package/src/approval-reactions.ts +158 -0
- package/src/auth-precedence.ts +61 -0
- package/src/channel-account-paths.ts +92 -0
- package/src/channel.account-paths.test.ts +102 -0
- package/src/channel.directory.test.ts +601 -0
- package/src/channel.resolve.test.ts +38 -0
- package/src/channel.runtime.ts +16 -0
- package/src/channel.setup.test.ts +269 -0
- package/src/channel.ts +570 -0
- package/src/cli-metadata.ts +19 -0
- package/src/cli.test.ts +1015 -0
- package/src/cli.ts +1198 -0
- package/src/config-adapter.ts +41 -0
- package/src/config-schema.test.ts +90 -0
- package/src/config-schema.ts +114 -0
- package/src/directory-live.test.ts +200 -0
- package/src/directory-live.ts +238 -0
- package/src/doctor-contract.ts +287 -0
- package/src/doctor.test.ts +440 -0
- package/src/doctor.ts +262 -0
- package/src/env-vars.ts +92 -0
- package/src/exec-approval-resolver.test.ts +68 -0
- package/src/exec-approval-resolver.ts +23 -0
- package/src/exec-approvals.test.ts +483 -0
- package/src/exec-approvals.ts +290 -0
- package/src/group-mentions.ts +41 -0
- package/src/legacy-crypto-inspector-availability.test.ts +81 -0
- package/src/legacy-crypto-inspector-availability.ts +60 -0
- package/src/legacy-crypto.test.ts +234 -0
- package/src/legacy-crypto.ts +549 -0
- package/src/legacy-state.test.ts +86 -0
- package/src/legacy-state.ts +156 -0
- package/src/matrix/account-config.ts +150 -0
- package/src/matrix/accounts.readiness.test.ts +27 -0
- package/src/matrix/accounts.test.ts +757 -0
- package/src/matrix/accounts.ts +194 -0
- package/src/matrix/actions/client.test.ts +215 -0
- package/src/matrix/actions/client.ts +31 -0
- package/src/matrix/actions/devices.test.ts +114 -0
- package/src/matrix/actions/devices.ts +34 -0
- package/src/matrix/actions/limits.test.ts +15 -0
- package/src/matrix/actions/limits.ts +6 -0
- package/src/matrix/actions/messages.test.ts +289 -0
- package/src/matrix/actions/messages.ts +123 -0
- package/src/matrix/actions/pins.test.ts +74 -0
- package/src/matrix/actions/pins.ts +64 -0
- package/src/matrix/actions/polls.test.ts +71 -0
- package/src/matrix/actions/polls.ts +109 -0
- package/src/matrix/actions/profile.test.ts +109 -0
- package/src/matrix/actions/profile.ts +37 -0
- package/src/matrix/actions/reactions.test.ts +135 -0
- package/src/matrix/actions/reactions.ts +59 -0
- package/src/matrix/actions/room.test.ts +79 -0
- package/src/matrix/actions/room.ts +71 -0
- package/src/matrix/actions/summary.test.ts +87 -0
- package/src/matrix/actions/summary.ts +88 -0
- package/src/matrix/actions/types.ts +82 -0
- package/src/matrix/actions/verification.test.ts +105 -0
- package/src/matrix/actions/verification.ts +237 -0
- package/src/matrix/actions.ts +37 -0
- package/src/matrix/active-client.ts +26 -0
- package/src/matrix/async-lock.ts +18 -0
- package/src/matrix/backup-health.ts +115 -0
- package/src/matrix/client/config-runtime-api.ts +14 -0
- package/src/matrix/client/config-secret-input.runtime.ts +1 -0
- package/src/matrix/client/config.ts +979 -0
- package/src/matrix/client/create-client.test.ts +115 -0
- package/src/matrix/client/create-client.ts +101 -0
- package/src/matrix/client/env-auth.ts +6 -0
- package/src/matrix/client/file-sync-store.test.ts +265 -0
- package/src/matrix/client/file-sync-store.ts +289 -0
- package/src/matrix/client/logging.ts +123 -0
- package/src/matrix/client/migration-snapshot.runtime.ts +1 -0
- package/src/matrix/client/private-network-host.ts +56 -0
- package/src/matrix/client/runtime.ts +4 -0
- package/src/matrix/client/shared.test.ts +344 -0
- package/src/matrix/client/shared.ts +306 -0
- package/src/matrix/client/storage.test.ts +634 -0
- package/src/matrix/client/storage.ts +544 -0
- package/src/matrix/client/types.ts +50 -0
- package/src/matrix/client-bootstrap.test.ts +84 -0
- package/src/matrix/client-bootstrap.ts +164 -0
- package/src/matrix/client-resolver.test-helpers.ts +147 -0
- package/src/matrix/client.test.ts +1521 -0
- package/src/matrix/client.ts +23 -0
- package/src/matrix/config-paths.ts +31 -0
- package/src/matrix/config-update.test.ts +237 -0
- package/src/matrix/config-update.ts +291 -0
- package/src/matrix/credentials-read.ts +206 -0
- package/src/matrix/credentials-write.runtime.ts +26 -0
- package/src/matrix/credentials.test.ts +501 -0
- package/src/matrix/credentials.ts +95 -0
- package/src/matrix/deps.test.ts +74 -0
- package/src/matrix/deps.ts +225 -0
- package/src/matrix/device-health.test.ts +45 -0
- package/src/matrix/device-health.ts +31 -0
- package/src/matrix/direct-management.test.ts +350 -0
- package/src/matrix/direct-management.ts +347 -0
- package/src/matrix/direct-room.test.ts +61 -0
- package/src/matrix/direct-room.ts +128 -0
- package/src/matrix/draft-stream.test.ts +406 -0
- package/src/matrix/draft-stream.ts +216 -0
- package/src/matrix/encryption-guidance.ts +27 -0
- package/src/matrix/errors.ts +21 -0
- package/src/matrix/format.test.ts +340 -0
- package/src/matrix/format.ts +428 -0
- package/src/matrix/legacy-crypto-inspector.ts +95 -0
- package/src/matrix/media-errors.ts +20 -0
- package/src/matrix/media-text.ts +169 -0
- package/src/matrix/monitor/access-state.test.ts +45 -0
- package/src/matrix/monitor/access-state.ts +77 -0
- package/src/matrix/monitor/ack-config.test.ts +57 -0
- package/src/matrix/monitor/ack-config.ts +26 -0
- package/src/matrix/monitor/allowlist.test.ts +45 -0
- package/src/matrix/monitor/allowlist.ts +94 -0
- package/src/matrix/monitor/auto-join.test.ts +203 -0
- package/src/matrix/monitor/auto-join.ts +86 -0
- package/src/matrix/monitor/config.test.ts +197 -0
- package/src/matrix/monitor/config.ts +303 -0
- package/src/matrix/monitor/context-summary.ts +43 -0
- package/src/matrix/monitor/direct.test.ts +529 -0
- package/src/matrix/monitor/direct.ts +270 -0
- package/src/matrix/monitor/events.test.ts +1524 -0
- package/src/matrix/monitor/events.ts +213 -0
- package/src/matrix/monitor/handler.body-for-agent.test.ts +396 -0
- package/src/matrix/monitor/handler.group-history.test.ts +648 -0
- package/src/matrix/monitor/handler.media-failure.test.ts +267 -0
- package/src/matrix/monitor/handler.test-helpers.ts +308 -0
- package/src/matrix/monitor/handler.test.ts +2952 -0
- package/src/matrix/monitor/handler.thread-root-media.test.ts +82 -0
- package/src/matrix/monitor/handler.ts +1679 -0
- package/src/matrix/monitor/inbound-dedupe.test.ts +146 -0
- package/src/matrix/monitor/inbound-dedupe.ts +267 -0
- package/src/matrix/monitor/index.test.ts +920 -0
- package/src/matrix/monitor/index.ts +434 -0
- package/src/matrix/monitor/legacy-crypto-restore.test.ts +206 -0
- package/src/matrix/monitor/legacy-crypto-restore.ts +139 -0
- package/src/matrix/monitor/location.ts +100 -0
- package/src/matrix/monitor/media.test.ts +159 -0
- package/src/matrix/monitor/media.ts +119 -0
- package/src/matrix/monitor/mentions.test.ts +289 -0
- package/src/matrix/monitor/mentions.ts +177 -0
- package/src/matrix/monitor/reaction-events.test.ts +326 -0
- package/src/matrix/monitor/reaction-events.ts +187 -0
- package/src/matrix/monitor/recent-invite.test.ts +92 -0
- package/src/matrix/monitor/recent-invite.ts +30 -0
- package/src/matrix/monitor/replies.test.ts +265 -0
- package/src/matrix/monitor/replies.ts +136 -0
- package/src/matrix/monitor/reply-context.test.ts +276 -0
- package/src/matrix/monitor/reply-context.ts +92 -0
- package/src/matrix/monitor/room-history.test.ts +258 -0
- package/src/matrix/monitor/room-history.ts +301 -0
- package/src/matrix/monitor/room-info.test.ts +201 -0
- package/src/matrix/monitor/room-info.ts +126 -0
- package/src/matrix/monitor/rooms.test.ts +121 -0
- package/src/matrix/monitor/rooms.ts +52 -0
- package/src/matrix/monitor/route.test.ts +255 -0
- package/src/matrix/monitor/route.ts +178 -0
- package/src/matrix/monitor/runtime-api.ts +31 -0
- package/src/matrix/monitor/startup-verification.test.ts +294 -0
- package/src/matrix/monitor/startup-verification.ts +237 -0
- package/src/matrix/monitor/startup.test.ts +257 -0
- package/src/matrix/monitor/startup.ts +218 -0
- package/src/matrix/monitor/status.ts +111 -0
- package/src/matrix/monitor/sync-lifecycle.test.ts +224 -0
- package/src/matrix/monitor/sync-lifecycle.ts +91 -0
- package/src/matrix/monitor/task-runner.ts +38 -0
- package/src/matrix/monitor/thread-context.test.ts +149 -0
- package/src/matrix/monitor/thread-context.ts +108 -0
- package/src/matrix/monitor/threads.test.ts +68 -0
- package/src/matrix/monitor/threads.ts +85 -0
- package/src/matrix/monitor/types.ts +30 -0
- package/src/matrix/monitor/verification-events.ts +627 -0
- package/src/matrix/monitor/verification-utils.test.ts +47 -0
- package/src/matrix/monitor/verification-utils.ts +46 -0
- package/src/matrix/outbound-media-runtime.ts +1 -0
- package/src/matrix/poll-summary.ts +110 -0
- package/src/matrix/poll-types.test.ts +205 -0
- package/src/matrix/poll-types.ts +433 -0
- package/src/matrix/probe.runtime.ts +4 -0
- package/src/matrix/probe.test.ts +154 -0
- package/src/matrix/probe.ts +96 -0
- package/src/matrix/profile.test.ts +154 -0
- package/src/matrix/profile.ts +184 -0
- package/src/matrix/reaction-common.test.ts +96 -0
- package/src/matrix/reaction-common.ts +147 -0
- package/src/matrix/sdk/crypto-bootstrap.test.ts +505 -0
- package/src/matrix/sdk/crypto-bootstrap.ts +341 -0
- package/src/matrix/sdk/crypto-facade.test.ts +197 -0
- package/src/matrix/sdk/crypto-facade.ts +207 -0
- package/src/matrix/sdk/crypto-node.runtime.test.ts +27 -0
- package/src/matrix/sdk/crypto-node.runtime.ts +9 -0
- package/src/matrix/sdk/crypto-runtime.ts +11 -0
- package/src/matrix/sdk/decrypt-bridge.ts +356 -0
- package/src/matrix/sdk/event-helpers.test.ts +60 -0
- package/src/matrix/sdk/event-helpers.ts +71 -0
- package/src/matrix/sdk/http-client.test.ts +134 -0
- package/src/matrix/sdk/http-client.ts +87 -0
- package/src/matrix/sdk/idb-persistence-lock.ts +51 -0
- package/src/matrix/sdk/idb-persistence.lock-order.test.ts +108 -0
- package/src/matrix/sdk/idb-persistence.test-helpers.ts +88 -0
- package/src/matrix/sdk/idb-persistence.test.ts +149 -0
- package/src/matrix/sdk/idb-persistence.ts +283 -0
- package/src/matrix/sdk/logger.test.ts +25 -0
- package/src/matrix/sdk/logger.ts +108 -0
- package/src/matrix/sdk/read-response-with-limit.ts +19 -0
- package/src/matrix/sdk/recovery-key-store.test.ts +385 -0
- package/src/matrix/sdk/recovery-key-store.ts +430 -0
- package/src/matrix/sdk/transport.test.ts +161 -0
- package/src/matrix/sdk/transport.ts +344 -0
- package/src/matrix/sdk/types.ts +236 -0
- package/src/matrix/sdk/verification-manager.test.ts +509 -0
- package/src/matrix/sdk/verification-manager.ts +694 -0
- package/src/matrix/sdk/verification-status.ts +23 -0
- package/src/matrix/sdk.test.ts +2568 -0
- package/src/matrix/sdk.ts +1789 -0
- package/src/matrix/send/client.test.ts +174 -0
- package/src/matrix/send/client.ts +90 -0
- package/src/matrix/send/formatting.ts +189 -0
- package/src/matrix/send/media.ts +244 -0
- package/src/matrix/send/targets.test.ts +254 -0
- package/src/matrix/send/targets.ts +104 -0
- package/src/matrix/send/types.ts +134 -0
- package/src/matrix/send.test.ts +958 -0
- package/src/matrix/send.ts +609 -0
- package/src/matrix/session-store-metadata.ts +108 -0
- package/src/matrix/startup-abort.ts +44 -0
- package/src/matrix/sync-state.ts +27 -0
- package/src/matrix/target-ids.ts +102 -0
- package/src/matrix/thread-bindings-shared.ts +201 -0
- package/src/matrix/thread-bindings.test.ts +673 -0
- package/src/matrix/thread-bindings.ts +577 -0
- package/src/matrix-migration.runtime.ts +9 -0
- package/src/migration-config.test.ts +228 -0
- package/src/migration-config.ts +243 -0
- package/src/migration-snapshot-backup.ts +117 -0
- package/src/migration-snapshot.test.ts +184 -0
- package/src/migration-snapshot.ts +55 -0
- package/src/onboarding.resolve.test.ts +55 -0
- package/src/onboarding.test-harness.ts +158 -0
- package/src/onboarding.test.ts +665 -0
- package/src/onboarding.ts +773 -0
- package/src/outbound.test.ts +173 -0
- package/src/outbound.ts +78 -0
- package/src/plugin-entry.runtime.js +159 -0
- package/src/plugin-entry.runtime.test.ts +108 -0
- package/src/plugin-entry.runtime.ts +68 -0
- package/src/profile-update.ts +68 -0
- package/src/record-shared.ts +3 -0
- package/src/resolve-targets.test.ts +178 -0
- package/src/resolve-targets.ts +175 -0
- package/src/resolver.ts +21 -0
- package/src/runtime-api.ts +144 -0
- package/src/runtime.ts +7 -0
- package/src/secret-contract.ts +174 -0
- package/src/session-route.test.ts +315 -0
- package/src/session-route.ts +113 -0
- package/src/setup-bootstrap.ts +94 -0
- package/src/setup-config.ts +222 -0
- package/src/setup-contract.ts +89 -0
- package/src/setup-core.test.ts +326 -0
- package/src/setup-core.ts +50 -0
- package/src/setup-surface.ts +4 -0
- package/src/startup-maintenance.test.ts +227 -0
- package/src/startup-maintenance.ts +114 -0
- package/src/storage-paths.ts +92 -0
- package/src/test-helpers.ts +42 -0
- package/src/test-mocks.ts +55 -0
- package/src/test-runtime.ts +72 -0
- package/src/test-support/monitor-route-test-support.ts +8 -0
- package/src/tool-actions.runtime.ts +1 -0
- package/src/tool-actions.test.ts +422 -0
- package/src/tool-actions.ts +498 -0
- package/src/types.ts +230 -0
- package/test-api.ts +2 -0
- package/thread-bindings-runtime.ts +4 -0
- package/tsconfig.json +16 -0
- package/LICENSE +0 -17
- package/dist/APEv2Parser-6EMKXRZS.js +0 -15
- package/dist/APEv2Parser-6EMKXRZS.js.map +0 -7
- package/dist/APEv2Parser-FYYGMFPI.js +0 -15
- package/dist/APEv2Parser-FYYGMFPI.js.map +0 -7
- package/dist/AiffParser-E6XWRTXM.js +0 -194
- package/dist/AiffParser-E6XWRTXM.js.map +0 -7
- package/dist/AiffParser-JHSDQA7T.js +0 -194
- package/dist/AiffParser-JHSDQA7T.js.map +0 -7
- package/dist/AsfParser-TPCQDEJB.js +0 -620
- package/dist/AsfParser-TPCQDEJB.js.map +0 -7
- package/dist/AsfParser-WSOH2JQY.js +0 -620
- package/dist/AsfParser-WSOH2JQY.js.map +0 -7
- package/dist/DsdiffParser-CGD3C3TL.js +0 -192
- package/dist/DsdiffParser-CGD3C3TL.js.map +0 -7
- package/dist/DsdiffParser-EUWJ4YAR.js +0 -192
- package/dist/DsdiffParser-EUWJ4YAR.js.map +0 -7
- package/dist/DsfParser-3UTIJVNF.js +0 -114
- package/dist/DsfParser-3UTIJVNF.js.map +0 -7
- package/dist/DsfParser-R6TPBJIY.js +0 -114
- package/dist/DsfParser-R6TPBJIY.js.map +0 -7
- package/dist/FlacParser-HLLYPJ76.js +0 -16
- package/dist/FlacParser-HLLYPJ76.js.map +0 -7
- package/dist/FlacParser-VDASGZ3E.js +0 -16
- package/dist/FlacParser-VDASGZ3E.js.map +0 -7
- package/dist/MP4Parser-64RGJLUM.js +0 -1145
- package/dist/MP4Parser-64RGJLUM.js.map +0 -7
- package/dist/MP4Parser-SM7HYL3Z.js +0 -1145
- package/dist/MP4Parser-SM7HYL3Z.js.map +0 -7
- package/dist/MatroskaParser-O6RXAKYA.js +0 -662
- package/dist/MatroskaParser-O6RXAKYA.js.map +0 -7
- package/dist/MatroskaParser-X7WRZ6D4.js +0 -662
- package/dist/MatroskaParser-X7WRZ6D4.js.map +0 -7
- package/dist/MpegParser-B6NX6DS3.js +0 -652
- package/dist/MpegParser-B6NX6DS3.js.map +0 -7
- package/dist/MpegParser-KXQEC6KD.js +0 -652
- package/dist/MpegParser-KXQEC6KD.js.map +0 -7
- package/dist/MusepackParser-NURI46TG.js +0 -331
- package/dist/MusepackParser-NURI46TG.js.map +0 -7
- package/dist/MusepackParser-WUBT63DS.js +0 -331
- package/dist/MusepackParser-WUBT63DS.js.map +0 -7
- package/dist/OggParser-5IYVBXPS.js +0 -448
- package/dist/OggParser-5IYVBXPS.js.map +0 -7
- package/dist/OggParser-ZY6E5C2P.js +0 -448
- package/dist/OggParser-ZY6E5C2P.js.map +0 -7
- package/dist/WavPackParser-5KTCSQEU.js +0 -209
- package/dist/WavPackParser-5KTCSQEU.js.map +0 -7
- package/dist/WavPackParser-RTEHKSJH.js +0 -209
- package/dist/WavPackParser-RTEHKSJH.js.map +0 -7
- package/dist/WaveParser-3R2NLXGP.js +0 -300
- package/dist/WaveParser-3R2NLXGP.js.map +0 -7
- package/dist/WaveParser-RZSHVQPZ.js +0 -300
- package/dist/WaveParser-RZSHVQPZ.js.map +0 -7
- package/dist/auth-presence.js +0 -46
- package/dist/auth-presence.js.map +0 -7
- package/dist/channel-plugin-api.js +0 -79
- package/dist/channel-plugin-api.js.map +0 -7
- package/dist/chunk-22WAAZ6I.js +0 -114
- package/dist/chunk-22WAAZ6I.js.map +0 -7
- package/dist/chunk-2A6HEFSO.js +0 -676
- package/dist/chunk-2A6HEFSO.js.map +0 -7
- package/dist/chunk-2GFROLI2.js +0 -261
- package/dist/chunk-2GFROLI2.js.map +0 -7
- package/dist/chunk-2IQWKATM.js +0 -127
- package/dist/chunk-2IQWKATM.js.map +0 -7
- package/dist/chunk-2KGHUHKU.js +0 -169
- package/dist/chunk-2KGHUHKU.js.map +0 -7
- package/dist/chunk-2NEQI4K6.js +0 -171
- package/dist/chunk-2NEQI4K6.js.map +0 -7
- package/dist/chunk-2OSJ3MTW.js +0 -175
- package/dist/chunk-2OSJ3MTW.js.map +0 -7
- package/dist/chunk-2Q626TDO.js +0 -27
- package/dist/chunk-2Q626TDO.js.map +0 -7
- package/dist/chunk-2U6OZ7N2.js +0 -155
- package/dist/chunk-2U6OZ7N2.js.map +0 -7
- package/dist/chunk-2V6Y4CAN.js +0 -25
- package/dist/chunk-2V6Y4CAN.js.map +0 -7
- package/dist/chunk-2WHRUMOM.js +0 -321
- package/dist/chunk-2WHRUMOM.js.map +0 -7
- package/dist/chunk-2Z4IOUDZ.js +0 -129
- package/dist/chunk-2Z4IOUDZ.js.map +0 -7
- package/dist/chunk-2ZEPAW7U.js +0 -154
- package/dist/chunk-2ZEPAW7U.js.map +0 -7
- package/dist/chunk-2ZI6JK5O.js +0 -63
- package/dist/chunk-2ZI6JK5O.js.map +0 -7
- package/dist/chunk-34UY6D6X.js +0 -36
- package/dist/chunk-34UY6D6X.js.map +0 -7
- package/dist/chunk-3GIK7SAA.js +0 -109
- package/dist/chunk-3GIK7SAA.js.map +0 -7
- package/dist/chunk-3JD6JSJD.js +0 -111
- package/dist/chunk-3JD6JSJD.js.map +0 -7
- package/dist/chunk-3OXOEMBS.js +0 -123
- package/dist/chunk-3OXOEMBS.js.map +0 -7
- package/dist/chunk-3R4ATE4Q.js +0 -176
- package/dist/chunk-3R4ATE4Q.js.map +0 -7
- package/dist/chunk-3TOEIHG5.js +0 -314
- package/dist/chunk-3TOEIHG5.js.map +0 -7
- package/dist/chunk-3TRKKAVT.js +0 -130
- package/dist/chunk-3TRKKAVT.js.map +0 -7
- package/dist/chunk-3UFTTK7C.js +0 -418
- package/dist/chunk-3UFTTK7C.js.map +0 -7
- package/dist/chunk-3XO6AAIC.js +0 -25
- package/dist/chunk-3XO6AAIC.js.map +0 -7
- package/dist/chunk-427SAQME.js +0 -321
- package/dist/chunk-427SAQME.js.map +0 -7
- package/dist/chunk-4CFQNJ7F.js +0 -7
- package/dist/chunk-4CFQNJ7F.js.map +0 -7
- package/dist/chunk-4COI4L2Y.js +0 -31
- package/dist/chunk-4COI4L2Y.js.map +0 -7
- package/dist/chunk-4EKKDVG3.js +0 -1662
- package/dist/chunk-4EKKDVG3.js.map +0 -7
- package/dist/chunk-4JVNTZAI.js +0 -80
- package/dist/chunk-4JVNTZAI.js.map +0 -7
- package/dist/chunk-4L2QI6AY.js +0 -71
- package/dist/chunk-4L2QI6AY.js.map +0 -7
- package/dist/chunk-4O3BEYYM.js +0 -187
- package/dist/chunk-4O3BEYYM.js.map +0 -7
- package/dist/chunk-4OXPPDV6.js +0 -676
- package/dist/chunk-4OXPPDV6.js.map +0 -7
- package/dist/chunk-4QTZHELX.js +0 -51
- package/dist/chunk-4QTZHELX.js.map +0 -7
- package/dist/chunk-4U42OJMK.js +0 -217
- package/dist/chunk-4U42OJMK.js.map +0 -7
- package/dist/chunk-4WCKVGQ5.js +0 -193
- package/dist/chunk-4WCKVGQ5.js.map +0 -7
- package/dist/chunk-4XXERLFH.js +0 -95
- package/dist/chunk-4XXERLFH.js.map +0 -7
- package/dist/chunk-4Z2N4GW6.js +0 -247
- package/dist/chunk-4Z2N4GW6.js.map +0 -7
- package/dist/chunk-4ZY2BOQ4.js +0 -123
- package/dist/chunk-4ZY2BOQ4.js.map +0 -7
- package/dist/chunk-56HN4SH6.js +0 -46
- package/dist/chunk-56HN4SH6.js.map +0 -7
- package/dist/chunk-57ROEOHB.js +0 -183
- package/dist/chunk-57ROEOHB.js.map +0 -7
- package/dist/chunk-5APBBTGW.js +0 -7
- package/dist/chunk-5APBBTGW.js.map +0 -7
- package/dist/chunk-5BQ6LLNU.js +0 -39
- package/dist/chunk-5BQ6LLNU.js.map +0 -7
- package/dist/chunk-5LNGMBWW.js +0 -93
- package/dist/chunk-5LNGMBWW.js.map +0 -7
- package/dist/chunk-5XFQSYZ4.js +0 -52
- package/dist/chunk-5XFQSYZ4.js.map +0 -7
- package/dist/chunk-62N5N4AC.js +0 -241
- package/dist/chunk-62N5N4AC.js.map +0 -7
- package/dist/chunk-63QTHDJL.js +0 -52
- package/dist/chunk-63QTHDJL.js.map +0 -7
- package/dist/chunk-65UUVZ6B.js +0 -151
- package/dist/chunk-65UUVZ6B.js.map +0 -7
- package/dist/chunk-6COVTMAO.js +0 -3586
- package/dist/chunk-6COVTMAO.js.map +0 -7
- package/dist/chunk-6EYPDJUD.js +0 -34
- package/dist/chunk-6EYPDJUD.js.map +0 -7
- package/dist/chunk-6HDYPVA4.js +0 -15
- package/dist/chunk-6HDYPVA4.js.map +0 -7
- package/dist/chunk-6HX3DEXK.js +0 -178
- package/dist/chunk-6HX3DEXK.js.map +0 -7
- package/dist/chunk-6NO5VEVV.js +0 -18
- package/dist/chunk-6NO5VEVV.js.map +0 -7
- package/dist/chunk-6OP3FK5F.js +0 -266
- package/dist/chunk-6OP3FK5F.js.map +0 -7
- package/dist/chunk-6PZGDVLR.js +0 -465
- package/dist/chunk-6PZGDVLR.js.map +0 -7
- package/dist/chunk-6RBDFNSX.js +0 -88
- package/dist/chunk-6RBDFNSX.js.map +0 -7
- package/dist/chunk-6SOGH3TW.js +0 -163
- package/dist/chunk-6SOGH3TW.js.map +0 -7
- package/dist/chunk-6TWWCETB.js +0 -70
- package/dist/chunk-6TWWCETB.js.map +0 -7
- package/dist/chunk-6WFHPMUF.js +0 -17
- package/dist/chunk-6WFHPMUF.js.map +0 -7
- package/dist/chunk-72TGY3LX.js +0 -104
- package/dist/chunk-72TGY3LX.js.map +0 -7
- package/dist/chunk-76IE55K7.js +0 -392
- package/dist/chunk-76IE55K7.js.map +0 -7
- package/dist/chunk-77BEEAPD.js +0 -86
- package/dist/chunk-77BEEAPD.js.map +0 -7
- package/dist/chunk-77JJ6QJK.js +0 -50
- package/dist/chunk-77JJ6QJK.js.map +0 -7
- package/dist/chunk-7BIUNV33.js +0 -62
- package/dist/chunk-7BIUNV33.js.map +0 -7
- package/dist/chunk-7F3242AO.js +0 -86
- package/dist/chunk-7F3242AO.js.map +0 -7
- package/dist/chunk-7FLQSTPG.js +0 -57
- package/dist/chunk-7FLQSTPG.js.map +0 -7
- package/dist/chunk-7L37R42D.js +0 -52
- package/dist/chunk-7L37R42D.js.map +0 -7
- package/dist/chunk-7MP46JBP.js +0 -177
- package/dist/chunk-7MP46JBP.js.map +0 -7
- package/dist/chunk-7MVZYR2T.js +0 -87
- package/dist/chunk-7MVZYR2T.js.map +0 -7
- package/dist/chunk-7N7ISMPG.js +0 -50
- package/dist/chunk-7N7ISMPG.js.map +0 -7
- package/dist/chunk-7S7LQQPX.js +0 -127
- package/dist/chunk-7S7LQQPX.js.map +0 -7
- package/dist/chunk-7TTNY5FK.js +0 -21
- package/dist/chunk-7TTNY5FK.js.map +0 -7
- package/dist/chunk-7W73QCTR.js +0 -244
- package/dist/chunk-7W73QCTR.js.map +0 -7
- package/dist/chunk-7XXLU33Y.js +0 -76
- package/dist/chunk-7XXLU33Y.js.map +0 -7
- package/dist/chunk-7ZP3KYVO.js +0 -104
- package/dist/chunk-7ZP3KYVO.js.map +0 -7
- package/dist/chunk-AAO7BQEV.js +0 -258
- package/dist/chunk-AAO7BQEV.js.map +0 -7
- package/dist/chunk-AH4MLRYT.js +0 -91
- package/dist/chunk-AH4MLRYT.js.map +0 -7
- package/dist/chunk-AHKR32FH.js +0 -7
- package/dist/chunk-AHKR32FH.js.map +0 -7
- package/dist/chunk-ALKRFDAW.js +0 -94
- package/dist/chunk-ALKRFDAW.js.map +0 -7
- package/dist/chunk-AQQGAE7N.js +0 -12
- package/dist/chunk-AQQGAE7N.js.map +0 -7
- package/dist/chunk-ARGF232V.js +0 -32
- package/dist/chunk-ARGF232V.js.map +0 -7
- package/dist/chunk-ATCJOK3K.js +0 -24
- package/dist/chunk-ATCJOK3K.js.map +0 -7
- package/dist/chunk-AUUABFHL.js +0 -124
- package/dist/chunk-AUUABFHL.js.map +0 -7
- package/dist/chunk-AWW3YUGJ.js +0 -193
- package/dist/chunk-AWW3YUGJ.js.map +0 -7
- package/dist/chunk-AX7VEEWJ.js +0 -158
- package/dist/chunk-AX7VEEWJ.js.map +0 -7
- package/dist/chunk-B3NTODO7.js +0 -57
- package/dist/chunk-B3NTODO7.js.map +0 -7
- package/dist/chunk-BAX7Q6GR.js +0 -55
- package/dist/chunk-BAX7Q6GR.js.map +0 -7
- package/dist/chunk-BBM6BR3Z.js +0 -28
- package/dist/chunk-BBM6BR3Z.js.map +0 -7
- package/dist/chunk-BHXZMHSX.js +0 -109
- package/dist/chunk-BHXZMHSX.js.map +0 -7
- package/dist/chunk-BIUXDLVY.js +0 -62
- package/dist/chunk-BIUXDLVY.js.map +0 -7
- package/dist/chunk-BM7J2W36.js +0 -86
- package/dist/chunk-BM7J2W36.js.map +0 -7
- package/dist/chunk-BMFZL2P4.js +0 -97
- package/dist/chunk-BMFZL2P4.js.map +0 -7
- package/dist/chunk-BQXEXK4H.js +0 -114
- package/dist/chunk-BQXEXK4H.js.map +0 -7
- package/dist/chunk-BU2CTWBG.js +0 -30
- package/dist/chunk-BU2CTWBG.js.map +0 -7
- package/dist/chunk-BVKSCLF7.js +0 -195
- package/dist/chunk-BVKSCLF7.js.map +0 -7
- package/dist/chunk-BWA3D22L.js +0 -88
- package/dist/chunk-BWA3D22L.js.map +0 -7
- package/dist/chunk-CE24RSPL.js +0 -506
- package/dist/chunk-CE24RSPL.js.map +0 -7
- package/dist/chunk-CEB5S2Z5.js +0 -127
- package/dist/chunk-CEB5S2Z5.js.map +0 -7
- package/dist/chunk-CEKNTCJD.js +0 -177
- package/dist/chunk-CEKNTCJD.js.map +0 -7
- package/dist/chunk-CETZGSCP.js +0 -71
- package/dist/chunk-CETZGSCP.js.map +0 -7
- package/dist/chunk-CGBWMONK.js +0 -412
- package/dist/chunk-CGBWMONK.js.map +0 -7
- package/dist/chunk-CGFDIH77.js +0 -94
- package/dist/chunk-CGFDIH77.js.map +0 -7
- package/dist/chunk-CPLEC5LJ.js +0 -26
- package/dist/chunk-CPLEC5LJ.js.map +0 -7
- package/dist/chunk-CPNIXMGX.js +0 -127
- package/dist/chunk-CPNIXMGX.js.map +0 -7
- package/dist/chunk-CSJO73LD.js +0 -84
- package/dist/chunk-CSJO73LD.js.map +0 -7
- package/dist/chunk-CTKBDSL6.js +0 -81
- package/dist/chunk-CTKBDSL6.js.map +0 -7
- package/dist/chunk-CY6WHUCW.js +0 -54
- package/dist/chunk-CY6WHUCW.js.map +0 -7
- package/dist/chunk-D4GYYYMW.js +0 -155
- package/dist/chunk-D4GYYYMW.js.map +0 -7
- package/dist/chunk-D64CZG54.js +0 -78
- package/dist/chunk-D64CZG54.js.map +0 -7
- package/dist/chunk-D7Q6Z74D.js +0 -123
- package/dist/chunk-D7Q6Z74D.js.map +0 -7
- package/dist/chunk-DSGPDHF2.js +0 -737
- package/dist/chunk-DSGPDHF2.js.map +0 -7
- package/dist/chunk-DZIM4OWK.js +0 -17
- package/dist/chunk-DZIM4OWK.js.map +0 -7
- package/dist/chunk-E3GC4V5V.js +0 -30
- package/dist/chunk-E3GC4V5V.js.map +0 -7
- package/dist/chunk-E5HPDHCW.js +0 -34
- package/dist/chunk-E5HPDHCW.js.map +0 -7
- package/dist/chunk-E75BJJZ2.js +0 -635
- package/dist/chunk-E75BJJZ2.js.map +0 -7
- package/dist/chunk-EBXHW7ZO.js +0 -108
- package/dist/chunk-EBXHW7ZO.js.map +0 -7
- package/dist/chunk-EE4DHUUZ.js +0 -472
- package/dist/chunk-EE4DHUUZ.js.map +0 -7
- package/dist/chunk-EHELTAAD.js +0 -198
- package/dist/chunk-EHELTAAD.js.map +0 -7
- package/dist/chunk-EKXPSI7Z.js +0 -135
- package/dist/chunk-EKXPSI7Z.js.map +0 -7
- package/dist/chunk-EO35SCFP.js +0 -7
- package/dist/chunk-EO35SCFP.js.map +0 -7
- package/dist/chunk-ER2XTD2S.js +0 -271
- package/dist/chunk-ER2XTD2S.js.map +0 -7
- package/dist/chunk-ERCH75SH.js +0 -292
- package/dist/chunk-ERCH75SH.js.map +0 -7
- package/dist/chunk-ERXO3674.js +0 -54
- package/dist/chunk-ERXO3674.js.map +0 -7
- package/dist/chunk-EVFWZGFL.js +0 -235
- package/dist/chunk-EVFWZGFL.js.map +0 -7
- package/dist/chunk-EVPBRKMZ.js +0 -45
- package/dist/chunk-EVPBRKMZ.js.map +0 -7
- package/dist/chunk-F43CC2X2.js +0 -49
- package/dist/chunk-F43CC2X2.js.map +0 -7
- package/dist/chunk-F64TXVJJ.js +0 -158
- package/dist/chunk-F64TXVJJ.js.map +0 -7
- package/dist/chunk-F6AFJHWV.js +0 -45
- package/dist/chunk-F6AFJHWV.js.map +0 -7
- package/dist/chunk-F6APWSAA.js +0 -51
- package/dist/chunk-F6APWSAA.js.map +0 -7
- package/dist/chunk-F7LNS7G3.js +0 -235
- package/dist/chunk-F7LNS7G3.js.map +0 -7
- package/dist/chunk-FCNWR7ZX.js +0 -16352
- package/dist/chunk-FCNWR7ZX.js.map +0 -7
- package/dist/chunk-FFCG5NRU.js +0 -87
- package/dist/chunk-FFCG5NRU.js.map +0 -7
- package/dist/chunk-FG4NVFKM.js +0 -455
- package/dist/chunk-FG4NVFKM.js.map +0 -7
- package/dist/chunk-FHNEN6IR.js +0 -14
- package/dist/chunk-FHNEN6IR.js.map +0 -7
- package/dist/chunk-FJFC6CRR.js +0 -446
- package/dist/chunk-FJFC6CRR.js.map +0 -7
- package/dist/chunk-FK6RGYBB.js +0 -46
- package/dist/chunk-FK6RGYBB.js.map +0 -7
- package/dist/chunk-FMY6KXK6.js +0 -251
- package/dist/chunk-FMY6KXK6.js.map +0 -7
- package/dist/chunk-FPH56SCM.js +0 -21
- package/dist/chunk-FPH56SCM.js.map +0 -7
- package/dist/chunk-FQ4R7IOX.js +0 -32
- package/dist/chunk-FQ4R7IOX.js.map +0 -7
- package/dist/chunk-FQPYAPJJ.js +0 -124
- package/dist/chunk-FQPYAPJJ.js.map +0 -7
- package/dist/chunk-FQTLJO4W.js +0 -335
- package/dist/chunk-FQTLJO4W.js.map +0 -7
- package/dist/chunk-FVLJSB2W.js +0 -124
- package/dist/chunk-FVLJSB2W.js.map +0 -7
- package/dist/chunk-FVSH4Z6T.js +0 -173
- package/dist/chunk-FVSH4Z6T.js.map +0 -7
- package/dist/chunk-FVWBLEAD.js +0 -44
- package/dist/chunk-FVWBLEAD.js.map +0 -7
- package/dist/chunk-FYRKBNTI.js +0 -18
- package/dist/chunk-FYRKBNTI.js.map +0 -7
- package/dist/chunk-FYSARMGS.js +0 -93
- package/dist/chunk-FYSARMGS.js.map +0 -7
- package/dist/chunk-FZJOJ6P4.js +0 -28
- package/dist/chunk-FZJOJ6P4.js.map +0 -7
- package/dist/chunk-G46GHNDU.js +0 -4890
- package/dist/chunk-G46GHNDU.js.map +0 -7
- package/dist/chunk-G4TIS2SC.js +0 -56
- package/dist/chunk-G4TIS2SC.js.map +0 -7
- package/dist/chunk-GD6L3SLC.js +0 -30
- package/dist/chunk-GD6L3SLC.js.map +0 -7
- package/dist/chunk-GGWS7NQP.js +0 -247
- package/dist/chunk-GGWS7NQP.js.map +0 -7
- package/dist/chunk-GI2ZANRY.js +0 -24
- package/dist/chunk-GI2ZANRY.js.map +0 -7
- package/dist/chunk-GK3XVKXT.js +0 -737
- package/dist/chunk-GK3XVKXT.js.map +0 -7
- package/dist/chunk-GKOWCDQV.js +0 -699
- package/dist/chunk-GKOWCDQV.js.map +0 -7
- package/dist/chunk-GLLRCKKE.js +0 -26
- package/dist/chunk-GLLRCKKE.js.map +0 -7
- package/dist/chunk-GNYG6I36.js +0 -175
- package/dist/chunk-GNYG6I36.js.map +0 -7
- package/dist/chunk-GRBJYAYF.js +0 -129
- package/dist/chunk-GRBJYAYF.js.map +0 -7
- package/dist/chunk-GVYGUH2V.js +0 -7
- package/dist/chunk-GVYGUH2V.js.map +0 -7
- package/dist/chunk-GXDQGBA2.js +0 -106
- package/dist/chunk-GXDQGBA2.js.map +0 -7
- package/dist/chunk-GZAGAWSU.js +0 -28
- package/dist/chunk-GZAGAWSU.js.map +0 -7
- package/dist/chunk-H23E72SB.js +0 -163
- package/dist/chunk-H23E72SB.js.map +0 -7
- package/dist/chunk-H2HY73I6.js +0 -122
- package/dist/chunk-H2HY73I6.js.map +0 -7
- package/dist/chunk-H5MLA6PA.js +0 -29
- package/dist/chunk-H5MLA6PA.js.map +0 -7
- package/dist/chunk-H6YVV7GE.js +0 -22
- package/dist/chunk-H6YVV7GE.js.map +0 -7
- package/dist/chunk-H7KAUMBC.js +0 -635
- package/dist/chunk-H7KAUMBC.js.map +0 -7
- package/dist/chunk-HDPICD3P.js +0 -4890
- package/dist/chunk-HDPICD3P.js.map +0 -7
- package/dist/chunk-HGHU3TVL.js +0 -174
- package/dist/chunk-HGHU3TVL.js.map +0 -7
- package/dist/chunk-HJ5E2JRL.js +0 -88
- package/dist/chunk-HJ5E2JRL.js.map +0 -7
- package/dist/chunk-HJW3CKZL.js +0 -94
- package/dist/chunk-HJW3CKZL.js.map +0 -7
- package/dist/chunk-HKF5EBER.js +0 -418
- package/dist/chunk-HKF5EBER.js.map +0 -7
- package/dist/chunk-HLUR35G5.js +0 -30
- package/dist/chunk-HLUR35G5.js.map +0 -7
- package/dist/chunk-HNIW2NZU.js +0 -120
- package/dist/chunk-HNIW2NZU.js.map +0 -7
- package/dist/chunk-HP5HMWOM.js +0 -123
- package/dist/chunk-HP5HMWOM.js.map +0 -7
- package/dist/chunk-HQSHS6IB.js +0 -88
- package/dist/chunk-HQSHS6IB.js.map +0 -7
- package/dist/chunk-HSXRCP25.js +0 -171
- package/dist/chunk-HSXRCP25.js.map +0 -7
- package/dist/chunk-HTV3R73W.js +0 -51
- package/dist/chunk-HTV3R73W.js.map +0 -7
- package/dist/chunk-I26OPZLO.js +0 -28
- package/dist/chunk-I26OPZLO.js.map +0 -7
- package/dist/chunk-I7JJQ4BQ.js +0 -30
- package/dist/chunk-I7JJQ4BQ.js.map +0 -7
- package/dist/chunk-IJ6Y4W7F.js +0 -392
- package/dist/chunk-IJ6Y4W7F.js.map +0 -7
- package/dist/chunk-IJCMYMZB.js +0 -239
- package/dist/chunk-IJCMYMZB.js.map +0 -7
- package/dist/chunk-IJH4NOQ4.js +0 -18
- package/dist/chunk-IJH4NOQ4.js.map +0 -7
- package/dist/chunk-IMHRZQRH.js +0 -76
- package/dist/chunk-IMHRZQRH.js.map +0 -7
- package/dist/chunk-INNENDEE.js +0 -472
- package/dist/chunk-INNENDEE.js.map +0 -7
- package/dist/chunk-IOTLSMEQ.js +0 -177
- package/dist/chunk-IOTLSMEQ.js.map +0 -7
- package/dist/chunk-IQYYEHSM.js +0 -300
- package/dist/chunk-IQYYEHSM.js.map +0 -7
- package/dist/chunk-IRA5NJ4Q.js +0 -21
- package/dist/chunk-IRA5NJ4Q.js.map +0 -7
- package/dist/chunk-IU7EXXK7.js +0 -1662
- package/dist/chunk-IU7EXXK7.js.map +0 -7
- package/dist/chunk-IUXAKDAY.js +0 -102
- package/dist/chunk-IUXAKDAY.js.map +0 -7
- package/dist/chunk-JB6ZQEVR.js +0 -465
- package/dist/chunk-JB6ZQEVR.js.map +0 -7
- package/dist/chunk-JCWNMWNY.js +0 -102
- package/dist/chunk-JCWNMWNY.js.map +0 -7
- package/dist/chunk-JGIZPU2Y.js +0 -39
- package/dist/chunk-JGIZPU2Y.js.map +0 -7
- package/dist/chunk-JIU4FXA7.js +0 -485
- package/dist/chunk-JIU4FXA7.js.map +0 -7
- package/dist/chunk-JMYIFYY5.js +0 -233
- package/dist/chunk-JMYIFYY5.js.map +0 -7
- package/dist/chunk-JSZBX2TA.js +0 -5853
- package/dist/chunk-JSZBX2TA.js.map +0 -7
- package/dist/chunk-JU2Y33DB.js +0 -60
- package/dist/chunk-JU2Y33DB.js.map +0 -7
- package/dist/chunk-JVLRI4RU.js +0 -62
- package/dist/chunk-JVLRI4RU.js.map +0 -7
- package/dist/chunk-JZ3AVNZC.js +0 -44117
- package/dist/chunk-JZ3AVNZC.js.map +0 -7
- package/dist/chunk-K3HEWOHN.js +0 -30
- package/dist/chunk-K3HEWOHN.js.map +0 -7
- package/dist/chunk-K5EK4WZV.js +0 -7
- package/dist/chunk-K5EK4WZV.js.map +0 -7
- package/dist/chunk-KAWXMSYC.js +0 -58
- package/dist/chunk-KAWXMSYC.js.map +0 -7
- package/dist/chunk-KEGPHS4C.js +0 -80
- package/dist/chunk-KEGPHS4C.js.map +0 -7
- package/dist/chunk-KHFWQ334.js +0 -138
- package/dist/chunk-KHFWQ334.js.map +0 -7
- package/dist/chunk-KJW6JLM6.js +0 -95
- package/dist/chunk-KJW6JLM6.js.map +0 -7
- package/dist/chunk-KSEANSJE.js +0 -40
- package/dist/chunk-KSEANSJE.js.map +0 -7
- package/dist/chunk-KVU54E6W.js +0 -63
- package/dist/chunk-KVU54E6W.js.map +0 -7
- package/dist/chunk-KXXVR3DC.js +0 -244
- package/dist/chunk-KXXVR3DC.js.map +0 -7
- package/dist/chunk-L5OUVMHK.js +0 -174
- package/dist/chunk-L5OUVMHK.js.map +0 -7
- package/dist/chunk-L5T6XUDP.js +0 -412
- package/dist/chunk-L5T6XUDP.js.map +0 -7
- package/dist/chunk-LIFXTQ4U.js +0 -7287
- package/dist/chunk-LIFXTQ4U.js.map +0 -7
- package/dist/chunk-LIVQ7GIO.js +0 -86
- package/dist/chunk-LIVQ7GIO.js.map +0 -7
- package/dist/chunk-LMD5UTKM.js +0 -169
- package/dist/chunk-LMD5UTKM.js.map +0 -7
- package/dist/chunk-LO4F6E3N.js +0 -163
- package/dist/chunk-LO4F6E3N.js.map +0 -7
- package/dist/chunk-LSVKDUNM.js +0 -151
- package/dist/chunk-LSVKDUNM.js.map +0 -7
- package/dist/chunk-LTXNC6JX.js +0 -27
- package/dist/chunk-LTXNC6JX.js.map +0 -7
- package/dist/chunk-LUGTGPT6.js +0 -138
- package/dist/chunk-LUGTGPT6.js.map +0 -7
- package/dist/chunk-LVMK2GPM.js +0 -18
- package/dist/chunk-LVMK2GPM.js.map +0 -7
- package/dist/chunk-LXVPETLK.js +0 -1405
- package/dist/chunk-LXVPETLK.js.map +0 -7
- package/dist/chunk-LZNW24OB.js +0 -78
- package/dist/chunk-LZNW24OB.js.map +0 -7
- package/dist/chunk-LZQFDJNW.js +0 -300
- package/dist/chunk-LZQFDJNW.js.map +0 -7
- package/dist/chunk-M4VQPIF4.js +0 -5853
- package/dist/chunk-M4VQPIF4.js.map +0 -7
- package/dist/chunk-M64QE4QC.js +0 -64
- package/dist/chunk-M64QE4QC.js.map +0 -7
- package/dist/chunk-MAF6PSCJ.js +0 -44
- package/dist/chunk-MAF6PSCJ.js.map +0 -7
- package/dist/chunk-MBIX6Z7U.js +0 -80
- package/dist/chunk-MBIX6Z7U.js.map +0 -7
- package/dist/chunk-MDLLXMC3.js +0 -183
- package/dist/chunk-MDLLXMC3.js.map +0 -7
- package/dist/chunk-MEI5HTWV.js +0 -127
- package/dist/chunk-MEI5HTWV.js.map +0 -7
- package/dist/chunk-MH74AJ3A.js +0 -82
- package/dist/chunk-MH74AJ3A.js.map +0 -7
- package/dist/chunk-MIFIM4PI.js +0 -163
- package/dist/chunk-MIFIM4PI.js.map +0 -7
- package/dist/chunk-MISZB5QJ.js +0 -22
- package/dist/chunk-MISZB5QJ.js.map +0 -7
- package/dist/chunk-MJ27XQYG.js +0 -125
- package/dist/chunk-MJ27XQYG.js.map +0 -7
- package/dist/chunk-MJ2GW6SU.js +0 -163
- package/dist/chunk-MJ2GW6SU.js.map +0 -7
- package/dist/chunk-MLQY5SKR.js +0 -52
- package/dist/chunk-MLQY5SKR.js.map +0 -7
- package/dist/chunk-MTMHGC3G.js +0 -39
- package/dist/chunk-MTMHGC3G.js.map +0 -7
- package/dist/chunk-MWBAW3YV.js +0 -244
- package/dist/chunk-MWBAW3YV.js.map +0 -7
- package/dist/chunk-MYSK3SIM.js +0 -55
- package/dist/chunk-MYSK3SIM.js.map +0 -7
- package/dist/chunk-MZGGB2YT.js +0 -50
- package/dist/chunk-MZGGB2YT.js.map +0 -7
- package/dist/chunk-N46MIZXB.js +0 -154
- package/dist/chunk-N46MIZXB.js.map +0 -7
- package/dist/chunk-N53537P6.js +0 -31
- package/dist/chunk-N53537P6.js.map +0 -7
- package/dist/chunk-N5CTFOLX.js +0 -40
- package/dist/chunk-N5CTFOLX.js.map +0 -7
- package/dist/chunk-N5SNGZJV.js +0 -217
- package/dist/chunk-N5SNGZJV.js.map +0 -7
- package/dist/chunk-NGCTBYQ3.js +0 -181
- package/dist/chunk-NGCTBYQ3.js.map +0 -7
- package/dist/chunk-NIFG55CE.js +0 -52
- package/dist/chunk-NIFG55CE.js.map +0 -7
- package/dist/chunk-NJ63ALPX.js +0 -7
- package/dist/chunk-NJ63ALPX.js.map +0 -7
- package/dist/chunk-NMUX7SGU.js +0 -676
- package/dist/chunk-NMUX7SGU.js.map +0 -7
- package/dist/chunk-NO7GMLNU.js +0 -292
- package/dist/chunk-NO7GMLNU.js.map +0 -7
- package/dist/chunk-NTOGVX2Y.js +0 -92
- package/dist/chunk-NTOGVX2Y.js.map +0 -7
- package/dist/chunk-NZVHE4IT.js +0 -3101
- package/dist/chunk-NZVHE4IT.js.map +0 -7
- package/dist/chunk-O5IVKDX7.js +0 -30
- package/dist/chunk-O5IVKDX7.js.map +0 -7
- package/dist/chunk-O7ORICEC.js +0 -82
- package/dist/chunk-O7ORICEC.js.map +0 -7
- package/dist/chunk-OBMBAM3N.js +0 -73
- package/dist/chunk-OBMBAM3N.js.map +0 -7
- package/dist/chunk-OFWMLQMU.js +0 -7287
- package/dist/chunk-OFWMLQMU.js.map +0 -7
- package/dist/chunk-OJ3ZUKBI.js +0 -73
- package/dist/chunk-OJ3ZUKBI.js.map +0 -7
- package/dist/chunk-OJJBD5K3.js +0 -45
- package/dist/chunk-OJJBD5K3.js.map +0 -7
- package/dist/chunk-OJTHE4B7.js +0 -50
- package/dist/chunk-OJTHE4B7.js.map +0 -7
- package/dist/chunk-OKDOVX4B.js +0 -699
- package/dist/chunk-OKDOVX4B.js.map +0 -7
- package/dist/chunk-OOYPYBTA.js +0 -446
- package/dist/chunk-OOYPYBTA.js.map +0 -7
- package/dist/chunk-OQP4W4AR.js +0 -105
- package/dist/chunk-OQP4W4AR.js.map +0 -7
- package/dist/chunk-OVMDMCZ5.js +0 -241
- package/dist/chunk-OVMDMCZ5.js.map +0 -7
- package/dist/chunk-OVTT2EKA.js +0 -516
- package/dist/chunk-OVTT2EKA.js.map +0 -7
- package/dist/chunk-OVU43GJK.js +0 -63
- package/dist/chunk-OVU43GJK.js.map +0 -7
- package/dist/chunk-P3TMARA6.js +0 -18
- package/dist/chunk-P3TMARA6.js.map +0 -7
- package/dist/chunk-P5N63LBS.js +0 -94
- package/dist/chunk-P5N63LBS.js.map +0 -7
- package/dist/chunk-PARITZ7F.js +0 -28
- package/dist/chunk-PARITZ7F.js.map +0 -7
- package/dist/chunk-PBQK4KY4.js +0 -195
- package/dist/chunk-PBQK4KY4.js.map +0 -7
- package/dist/chunk-PLMOTQ42.js +0 -335
- package/dist/chunk-PLMOTQ42.js.map +0 -7
- package/dist/chunk-PSL2AHIA.js +0 -27
- package/dist/chunk-PSL2AHIA.js.map +0 -7
- package/dist/chunk-Q5QT7JBM.js +0 -92
- package/dist/chunk-Q5QT7JBM.js.map +0 -7
- package/dist/chunk-Q6H5OV2R.js +0 -180
- package/dist/chunk-Q6H5OV2R.js.map +0 -7
- package/dist/chunk-Q7WA5DCR.js +0 -62
- package/dist/chunk-Q7WA5DCR.js.map +0 -7
- package/dist/chunk-QAR5POXD.js +0 -472
- package/dist/chunk-QAR5POXD.js.map +0 -7
- package/dist/chunk-QATEENP2.js +0 -7
- package/dist/chunk-QATEENP2.js.map +0 -7
- package/dist/chunk-QDT24CIA.js +0 -485
- package/dist/chunk-QDT24CIA.js.map +0 -7
- package/dist/chunk-QI3NB7D5.js +0 -455
- package/dist/chunk-QI3NB7D5.js.map +0 -7
- package/dist/chunk-QIDAVXSX.js +0 -106
- package/dist/chunk-QIDAVXSX.js.map +0 -7
- package/dist/chunk-QKIGQVP2.js +0 -104
- package/dist/chunk-QKIGQVP2.js.map +0 -7
- package/dist/chunk-QNJENPK2.js +0 -81
- package/dist/chunk-QNJENPK2.js.map +0 -7
- package/dist/chunk-R5S76YR5.js +0 -12
- package/dist/chunk-R5S76YR5.js.map +0 -7
- package/dist/chunk-R7ZBOXPS.js +0 -163
- package/dist/chunk-R7ZBOXPS.js.map +0 -7
- package/dist/chunk-RAL3KX76.js +0 -239
- package/dist/chunk-RAL3KX76.js.map +0 -7
- package/dist/chunk-REVXXWAS.js +0 -31
- package/dist/chunk-REVXXWAS.js.map +0 -7
- package/dist/chunk-RFH4HRZP.js +0 -94
- package/dist/chunk-RFH4HRZP.js.map +0 -7
- package/dist/chunk-RHITG64O.js +0 -50
- package/dist/chunk-RHITG64O.js.map +0 -7
- package/dist/chunk-RK5HZFP6.js +0 -111
- package/dist/chunk-RK5HZFP6.js.map +0 -7
- package/dist/chunk-RNGAGYCL.js +0 -49
- package/dist/chunk-RNGAGYCL.js.map +0 -7
- package/dist/chunk-RPCVN3JA.js +0 -261
- package/dist/chunk-RPCVN3JA.js.map +0 -7
- package/dist/chunk-RQ26XXFS.js +0 -45
- package/dist/chunk-RQ26XXFS.js.map +0 -7
- package/dist/chunk-RQQE5DDT.js +0 -193
- package/dist/chunk-RQQE5DDT.js.map +0 -7
- package/dist/chunk-RSA7PKZH.js +0 -187
- package/dist/chunk-RSA7PKZH.js.map +0 -7
- package/dist/chunk-RTSINQ4T.js +0 -78
- package/dist/chunk-RTSINQ4T.js.map +0 -7
- package/dist/chunk-RVOD3ESA.js +0 -38
- package/dist/chunk-RVOD3ESA.js.map +0 -7
- package/dist/chunk-SAOUP24A.js +0 -70
- package/dist/chunk-SAOUP24A.js.map +0 -7
- package/dist/chunk-SFZL2TCV.js +0 -55
- package/dist/chunk-SFZL2TCV.js.map +0 -7
- package/dist/chunk-SH6Y4CGQ.js +0 -175
- package/dist/chunk-SH6Y4CGQ.js.map +0 -7
- package/dist/chunk-SHBAAFFH.js +0 -74
- package/dist/chunk-SHBAAFFH.js.map +0 -7
- package/dist/chunk-SJPFUXBV.js +0 -45
- package/dist/chunk-SJPFUXBV.js.map +0 -7
- package/dist/chunk-SLIUQWAR.js +0 -58
- package/dist/chunk-SLIUQWAR.js.map +0 -7
- package/dist/chunk-SPNSM6SB.js +0 -36
- package/dist/chunk-SPNSM6SB.js.map +0 -7
- package/dist/chunk-SQUHLLK5.js +0 -125
- package/dist/chunk-SQUHLLK5.js.map +0 -7
- package/dist/chunk-SSEX66OL.js +0 -39
- package/dist/chunk-SSEX66OL.js.map +0 -7
- package/dist/chunk-SWWK35VQ.js +0 -84
- package/dist/chunk-SWWK35VQ.js.map +0 -7
- package/dist/chunk-SX2LOHOX.js +0 -251
- package/dist/chunk-SX2LOHOX.js.map +0 -7
- package/dist/chunk-T72EMFTX.js +0 -74
- package/dist/chunk-T72EMFTX.js.map +0 -7
- package/dist/chunk-TA2QJPPG.js +0 -169
- package/dist/chunk-TA2QJPPG.js.map +0 -7
- package/dist/chunk-TC5ZVFV6.js +0 -292
- package/dist/chunk-TC5ZVFV6.js.map +0 -7
- package/dist/chunk-TFD7ZIYD.js +0 -105
- package/dist/chunk-TFD7ZIYD.js.map +0 -7
- package/dist/chunk-TFEETDNY.js +0 -78
- package/dist/chunk-TFEETDNY.js.map +0 -7
- package/dist/chunk-TH6ONRWT.js +0 -516
- package/dist/chunk-TH6ONRWT.js.map +0 -7
- package/dist/chunk-THM2QV25.js +0 -108
- package/dist/chunk-THM2QV25.js.map +0 -7
- package/dist/chunk-TMQMQ67T.js +0 -81
- package/dist/chunk-TMQMQ67T.js.map +0 -7
- package/dist/chunk-TPYWUZOR.js +0 -178
- package/dist/chunk-TPYWUZOR.js.map +0 -7
- package/dist/chunk-TRWT2N6Z.js +0 -15
- package/dist/chunk-TRWT2N6Z.js.map +0 -7
- package/dist/chunk-TTXEM54Y.js +0 -76
- package/dist/chunk-TTXEM54Y.js.map +0 -7
- package/dist/chunk-U2O4LE6S.js +0 -22
- package/dist/chunk-U2O4LE6S.js.map +0 -7
- package/dist/chunk-U44IVNP2.js +0 -91
- package/dist/chunk-U44IVNP2.js.map +0 -7
- package/dist/chunk-U4LVIY5F.js +0 -1405
- package/dist/chunk-U4LVIY5F.js.map +0 -7
- package/dist/chunk-U767LCSG.js +0 -78
- package/dist/chunk-U767LCSG.js.map +0 -7
- package/dist/chunk-U7GKLHU6.js +0 -120
- package/dist/chunk-U7GKLHU6.js.map +0 -7
- package/dist/chunk-UAB5P5QO.js +0 -60
- package/dist/chunk-UAB5P5QO.js.map +0 -7
- package/dist/chunk-UDDWLWKZ.js +0 -82
- package/dist/chunk-UDDWLWKZ.js.map +0 -7
- package/dist/chunk-UEHPJQBL.js +0 -38
- package/dist/chunk-UEHPJQBL.js.map +0 -7
- package/dist/chunk-UIBV6IGR.js +0 -31
- package/dist/chunk-UIBV6IGR.js.map +0 -7
- package/dist/chunk-UIYFRUET.js +0 -16352
- package/dist/chunk-UIYFRUET.js.map +0 -7
- package/dist/chunk-UJS3TIVS.js +0 -52
- package/dist/chunk-UJS3TIVS.js.map +0 -7
- package/dist/chunk-UMMPB6FL.js +0 -506
- package/dist/chunk-UMMPB6FL.js.map +0 -7
- package/dist/chunk-UP42ACP7.js +0 -27
- package/dist/chunk-UP42ACP7.js.map +0 -7
- package/dist/chunk-UPEF7ETP.js +0 -92
- package/dist/chunk-UPEF7ETP.js.map +0 -7
- package/dist/chunk-UU5PSBSI.js +0 -176
- package/dist/chunk-UU5PSBSI.js.map +0 -7
- package/dist/chunk-UV63XYFU.js +0 -173
- package/dist/chunk-UV63XYFU.js.map +0 -7
- package/dist/chunk-UWPHOAOC.js +0 -29
- package/dist/chunk-UWPHOAOC.js.map +0 -7
- package/dist/chunk-UXDDOSJC.js +0 -52
- package/dist/chunk-UXDDOSJC.js.map +0 -7
- package/dist/chunk-V3VAOMCO.js +0 -465
- package/dist/chunk-V3VAOMCO.js.map +0 -7
- package/dist/chunk-VA7ENH2S.js +0 -38
- package/dist/chunk-VA7ENH2S.js.map +0 -7
- package/dist/chunk-VBDLTKI2.js +0 -130
- package/dist/chunk-VBDLTKI2.js.map +0 -7
- package/dist/chunk-VCWIKEJ7.js +0 -7
- package/dist/chunk-VCWIKEJ7.js.map +0 -7
- package/dist/chunk-VFPDFLVE.js +0 -516
- package/dist/chunk-VFPDFLVE.js.map +0 -7
- package/dist/chunk-VHG4FNIJ.js +0 -93
- package/dist/chunk-VHG4FNIJ.js.map +0 -7
- package/dist/chunk-VKOO6MIZ.js +0 -51
- package/dist/chunk-VKOO6MIZ.js.map +0 -7
- package/dist/chunk-VKXKRZG7.js +0 -62
- package/dist/chunk-VKXKRZG7.js.map +0 -7
- package/dist/chunk-VPQICZQR.js +0 -93
- package/dist/chunk-VPQICZQR.js.map +0 -7
- package/dist/chunk-VRBJNFPL.js +0 -114
- package/dist/chunk-VRBJNFPL.js.map +0 -7
- package/dist/chunk-VUOLPEUZ.js +0 -7
- package/dist/chunk-VUOLPEUZ.js.map +0 -7
- package/dist/chunk-VUU5KFH3.js +0 -38
- package/dist/chunk-VUU5KFH3.js.map +0 -7
- package/dist/chunk-VVBL5CFF.js +0 -7
- package/dist/chunk-VVBL5CFF.js.map +0 -7
- package/dist/chunk-VYZEQ6KY.js +0 -22
- package/dist/chunk-VYZEQ6KY.js.map +0 -7
- package/dist/chunk-W6SOBS7M.js +0 -138
- package/dist/chunk-W6SOBS7M.js.map +0 -7
- package/dist/chunk-WBPQVWSU.js +0 -198
- package/dist/chunk-WBPQVWSU.js.map +0 -7
- package/dist/chunk-WDOKKRTE.js +0 -7
- package/dist/chunk-WDOKKRTE.js.map +0 -7
- package/dist/chunk-WGXXKFN5.js +0 -7
- package/dist/chunk-WGXXKFN5.js.map +0 -7
- package/dist/chunk-WHPUUP3J.js +0 -25
- package/dist/chunk-WHPUUP3J.js.map +0 -7
- package/dist/chunk-WS6HWBKT.js +0 -30
- package/dist/chunk-WS6HWBKT.js.map +0 -7
- package/dist/chunk-XF7LD6VV.js +0 -122
- package/dist/chunk-XF7LD6VV.js.map +0 -7
- package/dist/chunk-XFTXM3RE.js +0 -64
- package/dist/chunk-XFTXM3RE.js.map +0 -7
- package/dist/chunk-XJABPO2T.js +0 -235
- package/dist/chunk-XJABPO2T.js.map +0 -7
- package/dist/chunk-XK6VF3H7.js +0 -3586
- package/dist/chunk-XK6VF3H7.js.map +0 -7
- package/dist/chunk-XOZPOHLG.js +0 -233
- package/dist/chunk-XOZPOHLG.js.map +0 -7
- package/dist/chunk-XQYIIPOJ.js +0 -266
- package/dist/chunk-XQYIIPOJ.js.map +0 -7
- package/dist/chunk-XR7DPSNX.js +0 -195
- package/dist/chunk-XR7DPSNX.js.map +0 -7
- package/dist/chunk-XYH4JC3U.js +0 -7
- package/dist/chunk-XYH4JC3U.js.map +0 -7
- package/dist/chunk-XZSAN55E.js +0 -58
- package/dist/chunk-XZSAN55E.js.map +0 -7
- package/dist/chunk-Y3KJR4OG.js +0 -64
- package/dist/chunk-Y3KJR4OG.js.map +0 -7
- package/dist/chunk-Y4JKH7FF.js +0 -45
- package/dist/chunk-Y4JKH7FF.js.map +0 -7
- package/dist/chunk-Y6CJN4ID.js +0 -31
- package/dist/chunk-Y6CJN4ID.js.map +0 -7
- package/dist/chunk-YABGJU5M.js +0 -271
- package/dist/chunk-YABGJU5M.js.map +0 -7
- package/dist/chunk-YB5UCHLN.js +0 -314
- package/dist/chunk-YB5UCHLN.js.map +0 -7
- package/dist/chunk-YEJH7ZC2.js +0 -34
- package/dist/chunk-YEJH7ZC2.js.map +0 -7
- package/dist/chunk-YF5DYD3X.js +0 -97
- package/dist/chunk-YF5DYD3X.js.map +0 -7
- package/dist/chunk-YFTE4H54.js +0 -44117
- package/dist/chunk-YFTE4H54.js.map +0 -7
- package/dist/chunk-YGVQZCE7.js +0 -30
- package/dist/chunk-YGVQZCE7.js.map +0 -7
- package/dist/chunk-YNHADHHS.js +0 -138
- package/dist/chunk-YNHADHHS.js.map +0 -7
- package/dist/chunk-YNJYMD43.js +0 -392
- package/dist/chunk-YNJYMD43.js.map +0 -7
- package/dist/chunk-YNYEQGVN.js +0 -251
- package/dist/chunk-YNYEQGVN.js.map +0 -7
- package/dist/chunk-YOAMBAM2.js +0 -70
- package/dist/chunk-YOAMBAM2.js.map +0 -7
- package/dist/chunk-YUPBD27Z.js +0 -70
- package/dist/chunk-YUPBD27Z.js.map +0 -7
- package/dist/chunk-YWE5AQPZ.js +0 -258
- package/dist/chunk-YWE5AQPZ.js.map +0 -7
- package/dist/chunk-YWHH3MB6.js +0 -1405
- package/dist/chunk-YWHH3MB6.js.map +0 -7
- package/dist/chunk-YXJ52FD5.js +0 -271
- package/dist/chunk-YXJ52FD5.js.map +0 -7
- package/dist/chunk-YZ6F5N7R.js +0 -455
- package/dist/chunk-YZ6F5N7R.js.map +0 -7
- package/dist/chunk-YZGORRQN.js +0 -3101
- package/dist/chunk-YZGORRQN.js.map +0 -7
- package/dist/chunk-Z6IVJ6ZW.js +0 -30
- package/dist/chunk-Z6IVJ6ZW.js.map +0 -7
- package/dist/chunk-ZFC44XJJ.js +0 -86
- package/dist/chunk-ZFC44XJJ.js.map +0 -7
- package/dist/chunk-ZFGRQIB6.js +0 -38
- package/dist/chunk-ZFGRQIB6.js.map +0 -7
- package/dist/chunk-ZGAUVPAB.js +0 -14
- package/dist/chunk-ZGAUVPAB.js.map +0 -7
- package/dist/chunk-ZGCATLM5.js +0 -18
- package/dist/chunk-ZGCATLM5.js.map +0 -7
- package/dist/chunk-ZJDJC5TP.js +0 -82
- package/dist/chunk-ZJDJC5TP.js.map +0 -7
- package/dist/chunk-ZJGZNPDK.js +0 -171
- package/dist/chunk-ZJGZNPDK.js.map +0 -7
- package/dist/chunk-ZJHBJWZX.js +0 -699
- package/dist/chunk-ZJHBJWZX.js.map +0 -7
- package/dist/chunk-ZNOTD65D.js +0 -95
- package/dist/chunk-ZNOTD65D.js.map +0 -7
- package/dist/chunk-ZQ2QIFXW.js +0 -122
- package/dist/chunk-ZQ2QIFXW.js.map +0 -7
- package/dist/chunk-ZRMXPQGY.js +0 -241
- package/dist/chunk-ZRMXPQGY.js.map +0 -7
- package/dist/chunk-ZSOPE7DO.js +0 -92
- package/dist/chunk-ZSOPE7DO.js.map +0 -7
- package/dist/chunk-ZVEE5IDC.js +0 -3101
- package/dist/chunk-ZVEE5IDC.js.map +0 -7
- package/dist/chunk-ZY247PXY.js +0 -135
- package/dist/chunk-ZY247PXY.js.map +0 -7
- package/dist/cli-metadata.js +0 -12
- package/dist/cli-metadata.js.map +0 -7
- package/dist/contract-api.js +0 -104
- package/dist/contract-api.js.map +0 -7
- package/dist/dist-DVBXHDB4.js +0 -549
- package/dist/dist-DVBXHDB4.js.map +0 -7
- package/dist/dist-F3K7S5SS.js +0 -549
- package/dist/dist-F3K7S5SS.js.map +0 -7
- package/dist/helper-api.js +0 -51
- package/dist/helper-api.js.map +0 -7
- package/dist/index.js +0 -70
- package/dist/index.js.map +0 -7
- package/dist/magic-string.es-ITIPPYGW.js +0 -1315
- package/dist/magic-string.es-ITIPPYGW.js.map +0 -7
- package/dist/magic-string.es-V5NOGTUV.js +0 -1315
- package/dist/magic-string.es-V5NOGTUV.js.map +0 -7
- package/dist/openclaw.plugin.json +0 -23
- package/dist/package.json +0 -59
- package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js +0 -20
- package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js.map +0 -7
- package/dist/plugin-entry.handlers.runtime-POD4CSHM.js +0 -20
- package/dist/plugin-entry.handlers.runtime-POD4CSHM.js.map +0 -7
- package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js +0 -20
- package/dist/plugin-entry.handlers.runtime-YOSG6V6U.js.map +0 -7
- package/dist/runtime-api.js +0 -104
- package/dist/runtime-api.js.map +0 -7
- package/dist/rust-crypto-7KS7OJ3F.js +0 -5323
- package/dist/rust-crypto-7KS7OJ3F.js.map +0 -7
- package/dist/rust-crypto-H35BXWUU.js +0 -5323
- package/dist/rust-crypto-H35BXWUU.js.map +0 -7
- package/dist/secret-contract-api.js +0 -18
- package/dist/secret-contract-api.js.map +0 -7
- package/dist/setup-entry.js +0 -22
- package/dist/setup-entry.js.map +0 -7
- package/dist/src/account-selection.js +0 -19
- package/dist/src/account-selection.js.map +0 -7
- package/dist/src/actions.js +0 -24
- package/dist/src/actions.js.map +0 -7
- package/dist/src/approval-auth.js +0 -27
- package/dist/src/approval-auth.js.map +0 -7
- package/dist/src/approval-handler.runtime.js +0 -378
- package/dist/src/approval-handler.runtime.js.map +0 -7
- package/dist/src/approval-ids.js +0 -9
- package/dist/src/approval-ids.js.map +0 -7
- package/dist/src/approval-native.js +0 -28
- package/dist/src/approval-native.js.map +0 -7
- package/dist/src/approval-reactions.js +0 -20
- package/dist/src/approval-reactions.js.map +0 -7
- package/dist/src/auth-precedence.js +0 -8
- package/dist/src/auth-precedence.js.map +0 -7
- package/dist/src/channel-account-paths.js +0 -11
- package/dist/src/channel-account-paths.js.map +0 -7
- package/dist/src/channel.js +0 -74
- package/dist/src/channel.js.map +0 -7
- package/dist/src/channel.runtime.js +0 -82
- package/dist/src/channel.runtime.js.map +0 -7
- package/dist/src/cli-metadata.js +0 -8
- package/dist/src/cli-metadata.js.map +0 -7
- package/dist/src/cli.js +0 -936
- package/dist/src/cli.js.map +0 -7
- package/dist/src/config-adapter.js +0 -26
- package/dist/src/config-adapter.js.map +0 -7
- package/dist/src/config-schema.js +0 -8
- package/dist/src/config-schema.js.map +0 -7
- package/dist/src/directory-live.js +0 -35
- package/dist/src/directory-live.js.map +0 -7
- package/dist/src/doctor-contract.js +0 -11
- package/dist/src/doctor-contract.js.map +0 -7
- package/dist/src/doctor.js +0 -42
- package/dist/src/doctor.js.map +0 -7
- package/dist/src/env-vars.js +0 -12
- package/dist/src/env-vars.js.map +0 -7
- package/dist/src/exec-approval-resolver.js +0 -10
- package/dist/src/exec-approval-resolver.js.map +0 -7
- package/dist/src/exec-approvals.js +0 -51
- package/dist/src/exec-approvals.js.map +0 -7
- package/dist/src/group-mentions.js +0 -28
- package/dist/src/group-mentions.js.map +0 -7
- package/dist/src/legacy-crypto-inspector-availability.js +0 -8
- package/dist/src/legacy-crypto-inspector-availability.js.map +0 -7
- package/dist/src/legacy-crypto.js +0 -26
- package/dist/src/legacy-crypto.js.map +0 -7
- package/dist/src/legacy-state.js +0 -24
- package/dist/src/legacy-state.js.map +0 -7
- package/dist/src/matrix/account-config.js +0 -16
- package/dist/src/matrix/account-config.js.map +0 -7
- package/dist/src/matrix/accounts.js +0 -31
- package/dist/src/matrix/accounts.js.map +0 -7
- package/dist/src/matrix/actions/client.js +0 -40
- package/dist/src/matrix/actions/client.js.map +0 -7
- package/dist/src/matrix/actions/devices.js +0 -42
- package/dist/src/matrix/actions/devices.js.map +0 -7
- package/dist/src/matrix/actions/limits.js +0 -8
- package/dist/src/matrix/actions/limits.js.map +0 -7
- package/dist/src/matrix/actions/messages.js +0 -49
- package/dist/src/matrix/actions/messages.js.map +0 -7
- package/dist/src/matrix/actions/pins.js +0 -46
- package/dist/src/matrix/actions/pins.js.map +0 -7
- package/dist/src/matrix/actions/polls.js +0 -37
- package/dist/src/matrix/actions/polls.js.map +0 -7
- package/dist/src/matrix/actions/profile.js +0 -38
- package/dist/src/matrix/actions/profile.js.map +0 -7
- package/dist/src/matrix/actions/reactions.js +0 -40
- package/dist/src/matrix/actions/reactions.js.map +0 -7
- package/dist/src/matrix/actions/room.js +0 -40
- package/dist/src/matrix/actions/room.js.map +0 -7
- package/dist/src/matrix/actions/summary.js +0 -19
- package/dist/src/matrix/actions/summary.js.map +0 -7
- package/dist/src/matrix/actions/types.js +0 -13
- package/dist/src/matrix/actions/types.js.map +0 -7
- package/dist/src/matrix/actions/verification.js +0 -77
- package/dist/src/matrix/actions/verification.js.map +0 -7
- package/dist/src/matrix/actions.js +0 -126
- package/dist/src/matrix/actions.js.map +0 -7
- package/dist/src/matrix/active-client.js +0 -10
- package/dist/src/matrix/active-client.js.map +0 -7
- package/dist/src/matrix/async-lock.js +0 -8
- package/dist/src/matrix/async-lock.js.map +0 -7
- package/dist/src/matrix/backup-health.js +0 -10
- package/dist/src/matrix/backup-health.js.map +0 -7
- package/dist/src/matrix/client/config-runtime-api.js +0 -24
- package/dist/src/matrix/client/config-runtime-api.js.map +0 -7
- package/dist/src/matrix/client/config-secret-input.runtime.js +0 -11
- package/dist/src/matrix/client/config-secret-input.runtime.js.map +0 -7
- package/dist/src/matrix/client/config.js +0 -42
- package/dist/src/matrix/client/config.js.map +0 -7
- package/dist/src/matrix/client/create-client.js +0 -20
- package/dist/src/matrix/client/create-client.js.map +0 -7
- package/dist/src/matrix/client/env-auth.js +0 -26
- package/dist/src/matrix/client/env-auth.js.map +0 -7
- package/dist/src/matrix/client/file-sync-store.js +0 -23
- package/dist/src/matrix/client/file-sync-store.js.map +0 -7
- package/dist/src/matrix/client/logging.js +0 -17
- package/dist/src/matrix/client/logging.js.map +0 -7
- package/dist/src/matrix/client/migration-snapshot.runtime.js +0 -13
- package/dist/src/matrix/client/migration-snapshot.runtime.js.map +0 -7
- package/dist/src/matrix/client/private-network-host.js +0 -8
- package/dist/src/matrix/client/private-network-host.js.map +0 -7
- package/dist/src/matrix/client/runtime.js +0 -8
- package/dist/src/matrix/client/runtime.js.map +0 -7
- package/dist/src/matrix/client/shared.js +0 -34
- package/dist/src/matrix/client/shared.js.map +0 -7
- package/dist/src/matrix/client/storage.js +0 -26
- package/dist/src/matrix/client/storage.js.map +0 -7
- package/dist/src/matrix/client/types.js +0 -7
- package/dist/src/matrix/client/types.js.map +0 -7
- package/dist/src/matrix/client-bootstrap.js +0 -15
- package/dist/src/matrix/client-bootstrap.js.map +0 -7
- package/dist/src/matrix/client-resolver.test-helpers.js +0 -122
- package/dist/src/matrix/client-resolver.test-helpers.js.map +0 -7
- package/dist/src/matrix/client.js +0 -63
- package/dist/src/matrix/client.js.map +0 -7
- package/dist/src/matrix/config-paths.js +0 -12
- package/dist/src/matrix/config-paths.js.map +0 -7
- package/dist/src/matrix/config-update.js +0 -17
- package/dist/src/matrix/config-update.js.map +0 -7
- package/dist/src/matrix/credentials-read.js +0 -22
- package/dist/src/matrix/credentials-read.js.map +0 -7
- package/dist/src/matrix/credentials-write.runtime.js +0 -24
- package/dist/src/matrix/credentials-write.runtime.js.map +0 -7
- package/dist/src/matrix/credentials.js +0 -90
- package/dist/src/matrix/credentials.js.map +0 -7
- package/dist/src/matrix/deps.js +0 -12
- package/dist/src/matrix/deps.js.map +0 -7
- package/dist/src/matrix/device-health.js +0 -10
- package/dist/src/matrix/device-health.js.map +0 -7
- package/dist/src/matrix/direct-management.js +0 -18
- package/dist/src/matrix/direct-management.js.map +0 -7
- package/dist/src/matrix/direct-room.js +0 -18
- package/dist/src/matrix/direct-room.js.map +0 -7
- package/dist/src/matrix/draft-stream.js +0 -33
- package/dist/src/matrix/draft-stream.js.map +0 -7
- package/dist/src/matrix/encryption-guidance.js +0 -17
- package/dist/src/matrix/encryption-guidance.js.map +0 -7
- package/dist/src/matrix/errors.js +0 -12
- package/dist/src/matrix/errors.js.map +0 -7
- package/dist/src/matrix/format.js +0 -13
- package/dist/src/matrix/format.js.map +0 -7
- package/dist/src/matrix/legacy-crypto-inspector.js +0 -72
- package/dist/src/matrix/legacy-crypto-inspector.js.map +0 -7
- package/dist/src/matrix/media-errors.js +0 -12
- package/dist/src/matrix/media-errors.js.map +0 -7
- package/dist/src/matrix/media-text.js +0 -22
- package/dist/src/matrix/media-text.js.map +0 -7
- package/dist/src/matrix/monitor/access-state.js +0 -9
- package/dist/src/matrix/monitor/access-state.js.map +0 -7
- package/dist/src/matrix/monitor/ack-config.js +0 -10
- package/dist/src/matrix/monitor/ack-config.js.map +0 -7
- package/dist/src/matrix/monitor/allowlist.js +0 -12
- package/dist/src/matrix/monitor/allowlist.js.map +0 -7
- package/dist/src/matrix/monitor/auto-join.js +0 -9
- package/dist/src/matrix/monitor/auto-join.js.map +0 -7
- package/dist/src/matrix/monitor/config.js +0 -37
- package/dist/src/matrix/monitor/config.js.map +0 -7
- package/dist/src/matrix/monitor/context-summary.js +0 -13
- package/dist/src/matrix/monitor/context-summary.js.map +0 -7
- package/dist/src/matrix/monitor/direct.js +0 -13
- package/dist/src/matrix/monitor/direct.js.map +0 -7
- package/dist/src/matrix/monitor/events.js +0 -20
- package/dist/src/matrix/monitor/events.js.map +0 -7
- package/dist/src/matrix/monitor/handler.js +0 -76
- package/dist/src/matrix/monitor/handler.js.map +0 -7
- package/dist/src/matrix/monitor/handler.test-helpers.js +0 -268
- package/dist/src/matrix/monitor/handler.test-helpers.js.map +0 -7
- package/dist/src/matrix/monitor/inbound-dedupe.js +0 -17
- package/dist/src/matrix/monitor/inbound-dedupe.js.map +0 -7
- package/dist/src/matrix/monitor/index.js +0 -502
- package/dist/src/matrix/monitor/index.js.map +0 -7
- package/dist/src/matrix/monitor/legacy-crypto-restore.js +0 -99
- package/dist/src/matrix/monitor/legacy-crypto-restore.js.map +0 -7
- package/dist/src/matrix/monitor/location.js +0 -11
- package/dist/src/matrix/monitor/location.js.map +0 -7
- package/dist/src/matrix/monitor/media.js +0 -10
- package/dist/src/matrix/monitor/media.js.map +0 -7
- package/dist/src/matrix/monitor/mentions.js +0 -9
- package/dist/src/matrix/monitor/mentions.js.map +0 -7
- package/dist/src/matrix/monitor/reaction-events.js +0 -38
- package/dist/src/matrix/monitor/reaction-events.js.map +0 -7
- package/dist/src/matrix/monitor/recent-invite.js +0 -10
- package/dist/src/matrix/monitor/recent-invite.js.map +0 -7
- package/dist/src/matrix/monitor/replies.js +0 -33
- package/dist/src/matrix/monitor/replies.js.map +0 -7
- package/dist/src/matrix/monitor/reply-context.js +0 -14
- package/dist/src/matrix/monitor/reply-context.js.map +0 -7
- package/dist/src/matrix/monitor/room-history.js +0 -10
- package/dist/src/matrix/monitor/room-history.js.map +0 -7
- package/dist/src/matrix/monitor/room-info.js +0 -9
- package/dist/src/matrix/monitor/room-info.js.map +0 -7
- package/dist/src/matrix/monitor/rooms.js +0 -9
- package/dist/src/matrix/monitor/rooms.js.map +0 -7
- package/dist/src/matrix/monitor/route.js +0 -12
- package/dist/src/matrix/monitor/route.js.map +0 -7
- package/dist/src/matrix/monitor/runtime-api.js +0 -40
- package/dist/src/matrix/monitor/runtime-api.js.map +0 -7
- package/dist/src/matrix/monitor/startup-verification.js +0 -174
- package/dist/src/matrix/monitor/startup-verification.js.map +0 -7
- package/dist/src/matrix/monitor/startup.js +0 -9
- package/dist/src/matrix/monitor/startup.js.map +0 -7
- package/dist/src/matrix/monitor/status.js +0 -10
- package/dist/src/matrix/monitor/status.js.map +0 -7
- package/dist/src/matrix/monitor/sync-lifecycle.js +0 -9
- package/dist/src/matrix/monitor/sync-lifecycle.js.map +0 -7
- package/dist/src/matrix/monitor/task-runner.js +0 -8
- package/dist/src/matrix/monitor/task-runner.js.map +0 -7
- package/dist/src/matrix/monitor/thread-context.js +0 -14
- package/dist/src/matrix/monitor/thread-context.js.map +0 -7
- package/dist/src/matrix/monitor/threads.js +0 -16
- package/dist/src/matrix/monitor/threads.js.map +0 -7
- package/dist/src/matrix/monitor/types.js +0 -11
- package/dist/src/matrix/monitor/types.js.map +0 -7
- package/dist/src/matrix/monitor/verification-events.js +0 -13
- package/dist/src/matrix/monitor/verification-events.js.map +0 -7
- package/dist/src/matrix/monitor/verification-utils.js +0 -16
- package/dist/src/matrix/monitor/verification-utils.js.map +0 -7
- package/dist/src/matrix/outbound-media-runtime.js +0 -9
- package/dist/src/matrix/outbound-media-runtime.js.map +0 -7
- package/dist/src/matrix/poll-summary.js +0 -14
- package/dist/src/matrix/poll-summary.js.map +0 -7
- package/dist/src/matrix/poll-types.js +0 -55
- package/dist/src/matrix/poll-types.js.map +0 -7
- package/dist/src/matrix/probe.js +0 -9
- package/dist/src/matrix/probe.js.map +0 -7
- package/dist/src/matrix/probe.runtime.js +0 -30
- package/dist/src/matrix/probe.runtime.js.map +0 -7
- package/dist/src/matrix/profile.js +0 -16
- package/dist/src/matrix/profile.js.map +0 -7
- package/dist/src/matrix/reaction-common.js +0 -26
- package/dist/src/matrix/reaction-common.js.map +0 -7
- package/dist/src/matrix/sdk/crypto-bootstrap.js +0 -15
- package/dist/src/matrix/sdk/crypto-bootstrap.js.map +0 -7
- package/dist/src/matrix/sdk/crypto-facade.js +0 -8
- package/dist/src/matrix/sdk/crypto-facade.js.map +0 -7
- package/dist/src/matrix/sdk/crypto-node.runtime.js +0 -14
- package/dist/src/matrix/sdk/crypto-node.runtime.js.map +0 -7
- package/dist/src/matrix/sdk/crypto-runtime.js +0 -84
- package/dist/src/matrix/sdk/crypto-runtime.js.map +0 -7
- package/dist/src/matrix/sdk/decrypt-bridge.js +0 -11
- package/dist/src/matrix/sdk/decrypt-bridge.js.map +0 -7
- package/dist/src/matrix/sdk/event-helpers.js +0 -12
- package/dist/src/matrix/sdk/event-helpers.js.map +0 -7
- package/dist/src/matrix/sdk/http-client.js +0 -13
- package/dist/src/matrix/sdk/http-client.js.map +0 -7
- package/dist/src/matrix/sdk/idb-persistence-lock.js +0 -12
- package/dist/src/matrix/sdk/idb-persistence-lock.js.map +0 -7
- package/dist/src/matrix/sdk/idb-persistence.js +0 -13
- package/dist/src/matrix/sdk/idb-persistence.js.map +0 -7
- package/dist/src/matrix/sdk/idb-persistence.test-helpers.js +0 -83
- package/dist/src/matrix/sdk/idb-persistence.test-helpers.js.map +0 -7
- package/dist/src/matrix/sdk/logger.js +0 -15
- package/dist/src/matrix/sdk/logger.js.map +0 -7
- package/dist/src/matrix/sdk/read-response-with-limit.js +0 -8
- package/dist/src/matrix/sdk/read-response-with-limit.js.map +0 -7
- package/dist/src/matrix/sdk/recovery-key-store.js +0 -14
- package/dist/src/matrix/sdk/recovery-key-store.js.map +0 -7
- package/dist/src/matrix/sdk/transport.js +0 -13
- package/dist/src/matrix/sdk/transport.js.map +0 -7
- package/dist/src/matrix/sdk/types.js +0 -7
- package/dist/src/matrix/sdk/types.js.map +0 -7
- package/dist/src/matrix/sdk/verification-manager.js +0 -11
- package/dist/src/matrix/sdk/verification-manager.js.map +0 -7
- package/dist/src/matrix/sdk/verification-status.js +0 -12
- package/dist/src/matrix/sdk/verification-status.js.map +0 -7
- package/dist/src/matrix/sdk.js +0 -1375
- package/dist/src/matrix/sdk.js.map +0 -7
- package/dist/src/matrix/send/client.js +0 -14
- package/dist/src/matrix/send/client.js.map +0 -7
- package/dist/src/matrix/send/formatting.js +0 -29
- package/dist/src/matrix/send/formatting.js.map +0 -7
- package/dist/src/matrix/send/media.js +0 -26
- package/dist/src/matrix/send/media.js.map +0 -7
- package/dist/src/matrix/send/targets.js +0 -15
- package/dist/src/matrix/send/targets.js.map +0 -7
- package/dist/src/matrix/send/types.js +0 -17
- package/dist/src/matrix/send/types.js.map +0 -7
- package/dist/src/matrix/send.js +0 -51
- package/dist/src/matrix/send.js.map +0 -7
- package/dist/src/matrix/session-store-metadata.js +0 -15
- package/dist/src/matrix/session-store-metadata.js.map +0 -7
- package/dist/src/matrix/startup-abort.js +0 -14
- package/dist/src/matrix/startup-abort.js.map +0 -7
- package/dist/src/matrix/sync-state.js +0 -12
- package/dist/src/matrix/sync-state.js.map +0 -7
- package/dist/src/matrix/target-ids.js +0 -20
- package/dist/src/matrix/target-ids.js.map +0 -7
- package/dist/src/matrix/thread-bindings-shared.js +0 -34
- package/dist/src/matrix/thread-bindings-shared.js.map +0 -7
- package/dist/src/matrix/thread-bindings.js +0 -49
- package/dist/src/matrix/thread-bindings.js.map +0 -7
- package/dist/src/matrix-migration.runtime.js +0 -45
- package/dist/src/matrix-migration.runtime.js.map +0 -7
- package/dist/src/migration-config.js +0 -29
- package/dist/src/migration-config.js.map +0 -7
- package/dist/src/migration-snapshot-backup.js +0 -12
- package/dist/src/migration-snapshot-backup.js.map +0 -7
- package/dist/src/migration-snapshot.js +0 -38
- package/dist/src/migration-snapshot.js.map +0 -7
- package/dist/src/onboarding.js +0 -43
- package/dist/src/onboarding.js.map +0 -7
- package/dist/src/onboarding.test-harness.js +0 -124
- package/dist/src/onboarding.test-harness.js.map +0 -7
- package/dist/src/outbound.js +0 -33
- package/dist/src/outbound.js.map +0 -7
- package/dist/src/plugin-entry.runtime.js +0 -15
- package/dist/src/plugin-entry.runtime.js.map +0 -7
- package/dist/src/profile-update.js +0 -41
- package/dist/src/profile-update.js.map +0 -7
- package/dist/src/record-shared.js +0 -8
- package/dist/src/record-shared.js.map +0 -7
- package/dist/src/resolve-targets.js +0 -34
- package/dist/src/resolve-targets.js.map +0 -7
- package/dist/src/resolver.js +0 -8
- package/dist/src/resolver.js.map +0 -7
- package/dist/src/runtime-api.js +0 -120
- package/dist/src/runtime-api.js.map +0 -7
- package/dist/src/runtime.js +0 -10
- package/dist/src/runtime.js.map +0 -7
- package/dist/src/secret-contract.js +0 -13
- package/dist/src/secret-contract.js.map +0 -7
- package/dist/src/session-route.js +0 -25
- package/dist/src/session-route.js.map +0 -7
- package/dist/src/setup-bootstrap.js +0 -124
- package/dist/src/setup-bootstrap.js.map +0 -7
- package/dist/src/setup-config.js +0 -28
- package/dist/src/setup-config.js.map +0 -7
- package/dist/src/setup-contract.js +0 -16
- package/dist/src/setup-contract.js.map +0 -7
- package/dist/src/setup-core.js +0 -25
- package/dist/src/setup-core.js.map +0 -7
- package/dist/src/setup-surface.js +0 -45
- package/dist/src/setup-surface.js.map +0 -7
- package/dist/src/startup-maintenance.js +0 -29
- package/dist/src/startup-maintenance.js.map +0 -7
- package/dist/src/storage-paths.js +0 -24
- package/dist/src/storage-paths.js.map +0 -7
- package/dist/src/test-helpers.js +0 -49
- package/dist/src/test-helpers.js.map +0 -7
- package/dist/src/test-mocks.js +0 -40
- package/dist/src/test-mocks.js.map +0 -7
- package/dist/src/test-runtime.js +0 -65
- package/dist/src/test-runtime.js.map +0 -7
- package/dist/src/tool-actions.js +0 -68
- package/dist/src/tool-actions.js.map +0 -7
- package/dist/src/tool-actions.runtime.js +0 -73
- package/dist/src/tool-actions.runtime.js.map +0 -7
- package/dist/src/types.js +0 -7
- package/dist/src/types.js.map +0 -7
- package/dist/test-api.js +0 -82
- package/dist/test-api.js.map +0 -7
- package/dist/thread-bindings-runtime.js +0 -15
- package/dist/thread-bindings-runtime.js.map +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/matrix/sdk/idb-persistence.ts", "../../../node_modules/fake-indexeddb/build/esm/index.js", "../../../node_modules/fake-indexeddb/build/esm/fakeIndexedDB.js", "../../../node_modules/fake-indexeddb/build/esm/FDBFactory.js", "../../../node_modules/fake-indexeddb/build/esm/FDBDatabase.js", "../../../node_modules/fake-indexeddb/build/esm/FDBTransaction.js", "../../../node_modules/fake-indexeddb/build/esm/FDBObjectStore.js", "../../../node_modules/fake-indexeddb/build/esm/FDBCursor.js", "../../../node_modules/fake-indexeddb/build/esm/FDBKeyRange.js", "../../../node_modules/fake-indexeddb/build/esm/lib/cmp.js", "../../../node_modules/fake-indexeddb/build/esm/lib/errors.js", "../../../node_modules/fake-indexeddb/build/esm/lib/valueToKey.js", "../../../node_modules/fake-indexeddb/build/esm/lib/valueToKeyWithoutThrowing.js", "../../../node_modules/fake-indexeddb/build/esm/lib/isSharedArrayBuffer.js", "../../../node_modules/fake-indexeddb/build/esm/lib/extractKey.js", "../../../node_modules/fake-indexeddb/build/esm/lib/cloneValueForInsertion.js", "../../../node_modules/fake-indexeddb/build/esm/FDBCursorWithValue.js", "../../../node_modules/fake-indexeddb/build/esm/FDBIndex.js", "../../../node_modules/fake-indexeddb/build/esm/FDBRequest.js", "../../../node_modules/fake-indexeddb/build/esm/lib/FakeEventTarget.js", "../../../node_modules/fake-indexeddb/build/esm/lib/FakeDOMStringList.js", "../../../node_modules/fake-indexeddb/build/esm/lib/valueToKeyRange.js", "../../../node_modules/fake-indexeddb/build/esm/lib/getKeyPath.js", "../../../node_modules/fake-indexeddb/build/esm/lib/extractGetAllOptions.js", "../../../node_modules/fake-indexeddb/build/esm/lib/isPotentiallyValidKeyRange.js", "../../../node_modules/fake-indexeddb/build/esm/lib/enforceRange.js", "../../../node_modules/fake-indexeddb/build/esm/lib/canInjectKey.js", "../../../node_modules/fake-indexeddb/build/esm/lib/Index.js", "../../../node_modules/fake-indexeddb/build/esm/FDBRecord.js", "../../../node_modules/fake-indexeddb/build/esm/lib/RecordStore.js", "../../../node_modules/fake-indexeddb/build/esm/lib/binarySearchTree.js", "../../../node_modules/fake-indexeddb/build/esm/lib/validateKeyPath.js", "../../../node_modules/fake-indexeddb/build/esm/lib/FakeEvent.js", "../../../node_modules/fake-indexeddb/build/esm/lib/scheduling.js", "../../../node_modules/fake-indexeddb/build/esm/lib/ObjectStore.js", "../../../node_modules/fake-indexeddb/build/esm/lib/KeyGenerator.js", "../../../node_modules/fake-indexeddb/build/esm/lib/closeConnection.js", "../../../node_modules/fake-indexeddb/build/esm/FDBOpenDBRequest.js", "../../../node_modules/fake-indexeddb/build/esm/FDBVersionChangeEvent.js", "../../../node_modules/fake-indexeddb/build/esm/lib/Database.js", "../../../node_modules/fake-indexeddb/build/esm/lib/intersection.js", "../../../node_modules/fake-indexeddb/build/esm/lib/validateRequiredArguments.js", "../../../node_modules/fake-indexeddb/build/esm/forceCloseDatabase.js"],
|
|
4
|
-
"sourcesContent": ["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { indexedDB as fakeIndexedDB } from \"fake-indexeddb\";\nimport { withFileLock } from \"openclaw/plugin-sdk/infra-runtime\";\nimport { MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS } from \"./idb-persistence-lock.js\";\nimport { LogService } from \"./logger.js\";\n\n// Advisory lock options for IDB snapshot file access. Without locking, the\n// gateway's periodic 60-second persist cycle and CLI crypto commands (e.g.\n// `openclaw matrix verify bootstrap`) can corrupt each other's state.\n// Use a longer stale window than the generic 30s default because snapshot\n// restore and large crypto-store dumps can legitimately hold the lock for\n// longer, and reclaiming a live lock would reintroduce concurrent corruption.\ntype IdbStoreSnapshot = {\n name: string;\n keyPath: IDBObjectStoreParameters[\"keyPath\"];\n autoIncrement: boolean;\n indexes: { name: string; keyPath: string | string[]; multiEntry: boolean; unique: boolean }[];\n records: { key: IDBValidKey; value: unknown }[];\n};\n\ntype IdbDatabaseSnapshot = {\n name: string;\n version: number;\n stores: IdbStoreSnapshot[];\n};\n\nfunction isValidIdbIndexSnapshot(value: unknown): value is IdbStoreSnapshot[\"indexes\"][number] {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value as Partial<IdbStoreSnapshot[\"indexes\"][number]>;\n return (\n typeof candidate.name === \"string\" &&\n (typeof candidate.keyPath === \"string\" ||\n (Array.isArray(candidate.keyPath) &&\n candidate.keyPath.every((entry) => typeof entry === \"string\"))) &&\n typeof candidate.multiEntry === \"boolean\" &&\n typeof candidate.unique === \"boolean\"\n );\n}\n\nfunction isValidIdbRecordSnapshot(value: unknown): value is IdbStoreSnapshot[\"records\"][number] {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n return \"key\" in value && \"value\" in value;\n}\n\nfunction isValidIdbStoreSnapshot(value: unknown): value is IdbStoreSnapshot {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value as Partial<IdbStoreSnapshot>;\n const validKeyPath =\n candidate.keyPath === null ||\n typeof candidate.keyPath === \"string\" ||\n (Array.isArray(candidate.keyPath) &&\n candidate.keyPath.every((entry) => typeof entry === \"string\"));\n return (\n typeof candidate.name === \"string\" &&\n validKeyPath &&\n typeof candidate.autoIncrement === \"boolean\" &&\n Array.isArray(candidate.indexes) &&\n candidate.indexes.every((entry) => isValidIdbIndexSnapshot(entry)) &&\n Array.isArray(candidate.records) &&\n candidate.records.every((entry) => isValidIdbRecordSnapshot(entry))\n );\n}\n\nfunction isValidIdbDatabaseSnapshot(value: unknown): value is IdbDatabaseSnapshot {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value as Partial<IdbDatabaseSnapshot>;\n return (\n typeof candidate.name === \"string\" &&\n typeof candidate.version === \"number\" &&\n Number.isFinite(candidate.version) &&\n candidate.version > 0 &&\n Array.isArray(candidate.stores) &&\n candidate.stores.every((entry) => isValidIdbStoreSnapshot(entry))\n );\n}\n\nfunction parseSnapshotPayload(data: string): IdbDatabaseSnapshot[] | null {\n const parsed = JSON.parse(data) as unknown;\n if (!Array.isArray(parsed) || parsed.length === 0) {\n return null;\n }\n if (!parsed.every((entry) => isValidIdbDatabaseSnapshot(entry))) {\n throw new Error(\"Malformed IndexedDB snapshot payload\");\n }\n return parsed;\n}\n\nfunction idbReq<T>(req: IDBRequest<T>): Promise<T> {\n return new Promise((resolve, reject) => {\n req.addEventListener(\"success\", () => resolve(req.result), { once: true });\n req.addEventListener(\"error\", () => reject(req.error), { once: true });\n });\n}\n\nasync function dumpIndexedDatabases(databasePrefix?: string): Promise<IdbDatabaseSnapshot[]> {\n const idb = fakeIndexedDB;\n const dbList = await idb.databases();\n const snapshot: IdbDatabaseSnapshot[] = [];\n const expectedPrefix = databasePrefix ? `${databasePrefix}::` : null;\n\n for (const { name, version } of dbList) {\n if (!name || !version) {\n continue;\n }\n if (expectedPrefix && !name.startsWith(expectedPrefix)) {\n continue;\n }\n const db: IDBDatabase = await new Promise((resolve, reject) => {\n const r = idb.open(name, version);\n r.addEventListener(\"success\", () => resolve(r.result), { once: true });\n r.addEventListener(\"error\", () => reject(r.error), { once: true });\n });\n\n const stores: IdbStoreSnapshot[] = [];\n for (const storeName of db.objectStoreNames) {\n const tx = db.transaction(storeName, \"readonly\");\n const store = tx.objectStore(storeName);\n const storeInfo: IdbStoreSnapshot = {\n name: storeName,\n keyPath: store.keyPath as IDBObjectStoreParameters[\"keyPath\"],\n autoIncrement: store.autoIncrement,\n indexes: [],\n records: [],\n };\n for (const idxName of store.indexNames) {\n const idx = store.index(idxName);\n storeInfo.indexes.push({\n name: idxName,\n keyPath: idx.keyPath,\n multiEntry: idx.multiEntry,\n unique: idx.unique,\n });\n }\n const keys = await idbReq(store.getAllKeys());\n const values = await idbReq(store.getAll());\n storeInfo.records = keys.map((k, i) => ({ key: k, value: values[i] }));\n stores.push(storeInfo);\n }\n snapshot.push({ name, version, stores });\n db.close();\n }\n return snapshot;\n}\n\nasync function restoreIndexedDatabases(snapshot: IdbDatabaseSnapshot[]): Promise<void> {\n const idb = fakeIndexedDB;\n for (const dbSnap of snapshot) {\n await new Promise<void>((resolve, reject) => {\n const r = idb.open(dbSnap.name, dbSnap.version);\n r.addEventListener(\"upgradeneeded\", () => {\n const db = r.result;\n for (const storeSnap of dbSnap.stores) {\n const opts: IDBObjectStoreParameters = {};\n if (storeSnap.keyPath !== null) {\n opts.keyPath = storeSnap.keyPath;\n }\n if (storeSnap.autoIncrement) {\n opts.autoIncrement = true;\n }\n const store = db.createObjectStore(storeSnap.name, opts);\n for (const idx of storeSnap.indexes) {\n store.createIndex(idx.name, idx.keyPath, {\n unique: idx.unique,\n multiEntry: idx.multiEntry,\n });\n }\n }\n });\n r.addEventListener(\n \"success\",\n () => {\n void (async () => {\n const db = r.result;\n for (const storeSnap of dbSnap.stores) {\n if (storeSnap.records.length === 0) {\n continue;\n }\n const tx = db.transaction(storeSnap.name, \"readwrite\");\n const store = tx.objectStore(storeSnap.name);\n for (const rec of storeSnap.records) {\n if (storeSnap.keyPath !== null) {\n store.put(rec.value);\n } else {\n store.put(rec.value, rec.key);\n }\n }\n await new Promise<void>((res) => {\n tx.addEventListener(\"complete\", () => res(), { once: true });\n });\n }\n db.close();\n resolve();\n })().catch(reject);\n },\n { once: true },\n );\n r.addEventListener(\"error\", () => reject(r.error), { once: true });\n });\n }\n}\n\nfunction resolveDefaultIdbSnapshotPath(): string {\n const stateDir =\n process.env.OPENCLAW_STATE_DIR || path.join(process.env.HOME || \"/tmp\", \".openclaw\");\n return path.join(stateDir, \"matrix\", \"crypto-idb-snapshot.json\");\n}\n\nexport async function restoreIdbFromDisk(snapshotPath?: string): Promise<boolean> {\n const candidatePaths = snapshotPath ? [snapshotPath] : [resolveDefaultIdbSnapshotPath()];\n for (const resolvedPath of candidatePaths) {\n try {\n const restored = await withFileLock(\n resolvedPath,\n MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS,\n async () => {\n const data = fs.readFileSync(resolvedPath, \"utf8\");\n const snapshot = parseSnapshotPayload(data);\n if (!snapshot) {\n return false;\n }\n await restoreIndexedDatabases(snapshot);\n LogService.info(\n \"IdbPersistence\",\n `Restored ${snapshot.length} IndexedDB database(s) from ${resolvedPath}`,\n );\n return true;\n },\n );\n if (restored) {\n return true;\n }\n } catch (err) {\n LogService.warn(\n \"IdbPersistence\",\n `Failed to restore IndexedDB snapshot from ${resolvedPath}:`,\n err,\n );\n continue;\n }\n }\n return false;\n}\n\nexport async function persistIdbToDisk(params?: {\n snapshotPath?: string;\n databasePrefix?: string;\n}): Promise<void> {\n const snapshotPath = params?.snapshotPath ?? resolveDefaultIdbSnapshotPath();\n try {\n fs.mkdirSync(path.dirname(snapshotPath), { recursive: true });\n const persistedCount = await withFileLock(\n snapshotPath,\n MATRIX_IDB_SNAPSHOT_LOCK_OPTIONS,\n async () => {\n const snapshot = await dumpIndexedDatabases(params?.databasePrefix);\n if (snapshot.length === 0) {\n return 0;\n }\n fs.writeFileSync(snapshotPath, JSON.stringify(snapshot));\n fs.chmodSync(snapshotPath, 0o600);\n return snapshot.length;\n },\n );\n if (persistedCount === 0) {\n return;\n }\n LogService.debug(\n \"IdbPersistence\",\n `Persisted ${persistedCount} IndexedDB database(s) to ${snapshotPath}`,\n );\n } catch (err) {\n LogService.warn(\"IdbPersistence\", \"Failed to persist IndexedDB snapshot:\", err);\n }\n}\n", "import fakeIndexedDB from \"./fakeIndexedDB.js\";\nexport default fakeIndexedDB;\nexport { fakeIndexedDB as indexedDB };\nexport { default as IDBCursor } from \"./FDBCursor.js\";\nexport { default as IDBCursorWithValue } from \"./FDBCursorWithValue.js\";\nexport { default as IDBDatabase } from \"./FDBDatabase.js\";\nexport { default as IDBFactory } from \"./FDBFactory.js\";\nexport { default as IDBIndex } from \"./FDBIndex.js\";\nexport { default as IDBKeyRange } from \"./FDBKeyRange.js\";\nexport { default as IDBObjectStore } from \"./FDBObjectStore.js\";\nexport { default as IDBOpenDBRequest } from \"./FDBOpenDBRequest.js\";\nexport { default as IDBRecord } from \"./FDBRecord.js\";\nexport { default as IDBRequest } from \"./FDBRequest.js\";\nexport { default as IDBTransaction } from \"./FDBTransaction.js\";\nexport { default as IDBVersionChangeEvent } from \"./FDBVersionChangeEvent.js\";\nexport { default as forceCloseDatabase } from \"./forceCloseDatabase.js\";", "import FDBFactory from \"./FDBFactory.js\";\nconst fakeIndexedDB = new FDBFactory();\nexport default fakeIndexedDB;", "import FDBDatabase from \"./FDBDatabase.js\";\nimport FDBOpenDBRequest from \"./FDBOpenDBRequest.js\";\nimport FDBVersionChangeEvent from \"./FDBVersionChangeEvent.js\";\nimport cmp from \"./lib/cmp.js\";\nimport Database from \"./lib/Database.js\";\nimport enforceRange from \"./lib/enforceRange.js\";\nimport { AbortError, VersionError } from \"./lib/errors.js\";\nimport FakeEvent from \"./lib/FakeEvent.js\";\nimport { queueTask } from \"./lib/scheduling.js\";\nimport { validateRequiredArguments } from \"./lib/validateRequiredArguments.js\";\n// https://w3c.github.io/IndexedDB/#connection-queue\nconst runTaskInConnectionQueue = (connectionQueues, name, task) => {\n // Let queue be the connection queue for storageKey and name.\n // (note FakeIndexedDB does not support storageKeys currently)\n // Add request to queue.\n // Wait until all previous requests in queue have been processed.\n const queue = connectionQueues.get(name) ?? Promise.resolve();\n connectionQueues.set(name, queue.then(task));\n};\nconst waitForOthersClosedDelete = (databases, name, openDatabases, cb) => {\n const anyOpen = openDatabases.some(openDatabase2 => {\n return !openDatabase2._closed && !openDatabase2._closePending;\n });\n if (anyOpen) {\n queueTask(() => waitForOthersClosedDelete(databases, name, openDatabases, cb));\n return;\n }\n databases.delete(name);\n cb(null);\n};\n\n// https://w3c.github.io/IndexedDB/#delete-a-database\nconst deleteDatabase = (databases, connectionQueues, name, request, cb) => {\n const deleteDBTask = () => {\n return new Promise(resolve => {\n const db = databases.get(name);\n const oldVersion = db !== undefined ? db.version : 0;\n const onComplete = err => {\n try {\n if (err) {\n cb(err);\n } else {\n cb(null, oldVersion);\n }\n } finally {\n resolve();\n }\n };\n try {\n const db = databases.get(name);\n if (db === undefined) {\n onComplete(null);\n return;\n }\n\n // Let openConnections be the set of all connections associated with db.\n const openConnections = db.connections.filter(connection => {\n return !connection._closed;\n });\n\n // For each entry of openConnections that does not have its close pending flag set to true, queue a\n // database task to fire a version change event named versionchange at entry with db\u2019s version and null.\n for (const openDatabase2 of openConnections) {\n if (!openDatabase2._closePending) {\n queueTask(() => {\n const event = new FDBVersionChangeEvent(\"versionchange\", {\n newVersion: null,\n oldVersion: db.version\n });\n openDatabase2.dispatchEvent(event);\n });\n }\n }\n\n // Wait for all of the events to be fired. (i.e. queue a task)\n queueTask(() => {\n // If any of the connections in openConnections are still not closed, queue a database task to\n // fire a version change event named blocked at request with db\u2019s version and null.\n\n const anyOpen = openConnections.some(openDatabase3 => {\n return !openDatabase3._closed && !openDatabase3._closePending;\n });\n\n // If any of the connections in openConnections are still not closed, queue a database task to\n // fire a version change event named blocked at request with db\u2019s version and null.\n if (anyOpen) {\n queueTask(() => {\n const event = new FDBVersionChangeEvent(\"blocked\", {\n newVersion: null,\n oldVersion: db.version\n });\n request.dispatchEvent(event);\n });\n }\n\n // Wait until all connections in openConnections are closed.\n waitForOthersClosedDelete(databases, name, openConnections, onComplete);\n });\n } catch (err) {\n onComplete(err);\n }\n });\n };\n runTaskInConnectionQueue(connectionQueues, name, deleteDBTask);\n};\n\n// https://w3c.github.io/IndexedDB/#ref-for-database-version%E2%91%A0%E2%91%A2\nconst runVersionchangeTransaction = (connection, version, request, cb) => {\n connection._runningVersionchangeTransaction = true;\n const oldVersion = connection._oldVersion = connection.version;\n\n // Let openConnections be the set of all connections, except connection, associated with db.\n const openConnections = connection._rawDatabase.connections.filter(otherDatabase => {\n return connection !== otherDatabase;\n });\n\n // For each entry of openConnections that does not have its close pending flag set to true, queue a\n // database task to fire a version change event named versionchange at entry with db\u2019s version and version.\n for (const openDatabase2 of openConnections) {\n if (!openDatabase2._closed && !openDatabase2._closePending) {\n queueTask(() => {\n const event = new FDBVersionChangeEvent(\"versionchange\", {\n newVersion: version,\n oldVersion\n });\n openDatabase2.dispatchEvent(event);\n });\n }\n }\n\n // Wait for all of the events to be fired.\n // (i.e. queue a task)\n queueTask(() => {\n const anyOpen = openConnections.some(openDatabase3 => {\n return !openDatabase3._closed && !openDatabase3._closePending;\n });\n\n // If any of the connections in openConnections are still not closed, queue a database task to fire a version change event named blocked at request with db\u2019s version and version.\n if (anyOpen) {\n queueTask(() => {\n const event = new FDBVersionChangeEvent(\"blocked\", {\n newVersion: version,\n oldVersion\n });\n request.dispatchEvent(event);\n });\n }\n\n // Wait until all connections in openConnections are closed.\n const waitForOthersClosed = () => {\n const anyOpen2 = openConnections.some(openDatabase2 => {\n return !openDatabase2._closed && !openDatabase2._closePending;\n });\n if (anyOpen2) {\n queueTask(waitForOthersClosed);\n return;\n }\n\n // Set the version of database to version. This change is considered part of the transaction, and so if the\n // transaction is aborted, this change is reverted.\n connection._rawDatabase.version = version;\n connection.version = version;\n\n // Get rid of this setImmediate?\n const transaction = connection.transaction(Array.from(connection.objectStoreNames), \"versionchange\");\n\n // associate the transaction with the open request for later lookup\n transaction._openRequest = request;\n\n // https://w3c.github.io/IndexedDB/#upgrade-a-database\n // Set request\u2019s result to connection.\n request.result = connection;\n // Set request\u2019s done flag to true.\n request.readyState = \"done\";\n // Set request\u2019s transaction to transaction.\n request.transaction = transaction;\n transaction._rollbackLog.push(() => {\n connection._rawDatabase.version = oldVersion;\n connection.version = oldVersion;\n });\n\n // Set transaction\u2019s state to active.\n transaction._state = \"active\";\n\n // Let didThrow be the result of firing a version change event named upgradeneeded at request with old version and version.\n const event = new FDBVersionChangeEvent(\"upgradeneeded\", {\n newVersion: version,\n oldVersion\n });\n let didThrow = false;\n try {\n request.dispatchEvent(event);\n } catch (_err) {\n didThrow = true;\n }\n const concludeUpgrade = () => {\n // If transaction\u2019s state is active, then:\n if (transaction._state === \"active\") {\n // Set transaction\u2019s state to inactive.\n transaction._state = \"inactive\";\n if (didThrow) {\n // If didThrow is true, run abort a transaction with transaction and a newly created \"AbortError\" DOMException.\n transaction._abort(\"AbortError\");\n }\n }\n };\n\n // The \"upgrade a database\" steps are supposed to run as a database task on the database access task source\n // (i.e. off the main thread), but since we're actually running on the main thread, we have to be tricky:\n // 1. If any `upgradeneeded` event handlers errored, abort synchronously\n // 2. Else yield to allow any microtasks to run in response to that event\n if (didThrow) {\n concludeUpgrade();\n } else {\n queueTask(concludeUpgrade);\n }\n transaction._prioritizedListeners.set(\"error\", () => {\n connection._runningVersionchangeTransaction = false;\n connection._oldVersion = undefined;\n // throw arguments[0].target.error;\n // console.log(\"error in versionchange transaction - not sure if anything needs to be done here\", e.target.error.name);\n });\n transaction._prioritizedListeners.set(\"abort\", () => {\n connection._runningVersionchangeTransaction = false;\n connection._oldVersion = undefined;\n queueTask(() => {\n // Reset transaction in a tick after onabort (upgrade-transaction-lifecycle-user-aborted.any)\n request.transaction = null;\n cb(new AbortError());\n });\n });\n transaction._prioritizedListeners.set(\"complete\", () => {\n connection._runningVersionchangeTransaction = false;\n connection._oldVersion = undefined;\n // Let other complete event handlers run before continuing\n queueTask(() => {\n // Reset transaction in a tick after oncomplete (upgrade-transaction-lifecycle-committed.any.js)\n request.transaction = null;\n if (connection._closePending) {\n cb(new AbortError());\n } else {\n cb(null);\n }\n });\n });\n };\n waitForOthersClosed();\n });\n};\n\n// https://w3c.github.io/IndexedDB/#opening\nconst openDatabase = (databases, connectionQueues, name, version, request, cb) => {\n const openDBTask = () => {\n return new Promise(resolve => {\n const onComplete = err => {\n try {\n if (err) {\n // DO THIS HERE: ensure that connection is closed by running the steps for closing a database connection before these\n // steps are aborted.\n cb(err);\n } else {\n cb(null, connection);\n }\n } finally {\n resolve();\n }\n };\n\n // Let db be the database named name in storageKey, or null otherwise.\n let db = databases.get(name);\n if (db === undefined) {\n // If db is null, let db be a new database with name `name`, version 0 (zero), and with no object stores.\n db = new Database(name, 0);\n databases.set(name, db);\n }\n\n // If version is undefined, let version be 1 if db is null, or db\u2019s version otherwise.\n if (version === undefined) {\n version = db.version !== 0 ? db.version : 1;\n }\n\n // If db\u2019s version is greater than version, return a newly created \"VersionError\" DOMException and abort these steps.\n if (db.version > version) {\n return onComplete(new VersionError());\n }\n\n // Let connection be a new connection to db.\n const connection = new FDBDatabase(db);\n\n // If db\u2019s version is less than version, then:\n if (db.version < version) {\n // (run a version change transaction and resolve so that the next promise in the queue will execute)\n runVersionchangeTransaction(connection, version, request, err => {\n onComplete(err);\n });\n } else {\n onComplete(null);\n }\n });\n };\n runTaskInConnectionQueue(connectionQueues, name, openDBTask);\n};\nclass FDBFactory {\n _databases = new Map();\n // https://w3c.github.io/IndexedDB/#connection-queue\n _connectionQueues = new Map(); // promise chain as lightweight FIFO task queue\n\n // https://w3c.github.io/IndexedDB/#dom-idbfactory-cmp\n cmp(first, second) {\n validateRequiredArguments(arguments.length, 2, \"IDBFactory.cmp\");\n return cmp(first, second);\n }\n\n // https://w3c.github.io/IndexedDB/#dom-idbfactory-deletedatabase\n deleteDatabase(name) {\n validateRequiredArguments(arguments.length, 1, \"IDBFactory.deleteDatabase\");\n const request = new FDBOpenDBRequest();\n request.source = null;\n queueTask(() => {\n deleteDatabase(this._databases, this._connectionQueues, name, request, (err, oldVersion) => {\n if (err) {\n request.error = new DOMException(err.message, err.name);\n request.readyState = \"done\";\n const event = new FakeEvent(\"error\", {\n bubbles: true,\n cancelable: true\n });\n event.eventPath = [];\n request.dispatchEvent(event);\n return;\n }\n request.result = undefined;\n request.readyState = \"done\";\n const event2 = new FDBVersionChangeEvent(\"success\", {\n newVersion: null,\n oldVersion\n });\n request.dispatchEvent(event2);\n });\n });\n return request;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBFactory-open-IDBOpenDBRequest-DOMString-name-unsigned-long-long-version\n open(name, version) {\n validateRequiredArguments(arguments.length, 1, \"IDBFactory.open\");\n if (arguments.length > 1 && version !== undefined) {\n // Based on spec, not sure why \"MAX_SAFE_INTEGER\" instead of \"unsigned long long\", but it's needed to pass\n // tests\n version = enforceRange(version, \"MAX_SAFE_INTEGER\");\n }\n if (version === 0) {\n throw new TypeError(\"Database version cannot be 0\");\n }\n const request = new FDBOpenDBRequest();\n request.source = null;\n queueTask(() => {\n openDatabase(this._databases, this._connectionQueues, name, version, request, (err, connection) => {\n if (err) {\n request.result = undefined;\n request.readyState = \"done\";\n request.error = new DOMException(err.message, err.name);\n const event = new FakeEvent(\"error\", {\n bubbles: true,\n cancelable: true\n });\n event.eventPath = [];\n request.dispatchEvent(event);\n return;\n }\n request.result = connection;\n request.readyState = \"done\";\n const event2 = new FakeEvent(\"success\");\n event2.eventPath = [];\n request.dispatchEvent(event2);\n });\n });\n return request;\n }\n\n // https://w3c.github.io/IndexedDB/#dom-idbfactory-databases\n databases() {\n return Promise.resolve(Array.from(this._databases.entries(), ([name, database]) => {\n const activeVersionChangeConnection = database.connections.find(connection => connection._runningVersionchangeTransaction);\n // If a versionchange is in progress, report the old version. See `get-databases.any.js` test:\n // \"The result of databases() should contain the versions of databases at the time of calling,\n // regardless of versionchange transactions currently running.\"\n const version = activeVersionChangeConnection ? activeVersionChangeConnection._oldVersion : database.version;\n return {\n name,\n version\n };\n }).filter(({\n version\n }) => {\n // Ignore newly-created DBs with active versionchange transactions. See `get-databases.any.js` test:\n // \"The result of databases() should be only those databases which have been created at the\n // time of calling, regardless of versionchange transactions currently running.\"\n return version > 0;\n }));\n }\n get [Symbol.toStringTag]() {\n return \"IDBFactory\";\n }\n}\nexport default FDBFactory;", "import FDBTransaction from \"./FDBTransaction.js\";\nimport { ConstraintError, InvalidAccessError, InvalidStateError, NotFoundError, TransactionInactiveError } from \"./lib/errors.js\";\nimport FakeDOMStringList from \"./lib/FakeDOMStringList.js\";\nimport FakeEventTarget from \"./lib/FakeEventTarget.js\";\nimport ObjectStore from \"./lib/ObjectStore.js\";\nimport validateKeyPath from \"./lib/validateKeyPath.js\";\nimport closeConnection from \"./lib/closeConnection.js\";\n// Common first 3 steps of https://www.w3.org/TR/IndexedDB/#dom-idbdatabase-createobjectstore and https://www.w3.org/TR/IndexedDB/#dom-idbdatabase-deleteobjectstore\nconst confirmActiveVersionchangeTransaction = database => {\n // Let transaction be database\u2019s upgrade transaction if it is not null, or throw an \"InvalidStateError\" DOMException otherwise.\n let transaction;\n if (database._runningVersionchangeTransaction) {\n // Find the latest versionchange transaction\n transaction = database._rawDatabase.transactions.findLast(tx => {\n return tx.mode === \"versionchange\";\n });\n }\n if (!transaction) {\n throw new InvalidStateError();\n }\n\n // If transaction\u2019s state is not active, then throw a \"TransactionInactiveError\" DOMException.\n if (transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n return transaction;\n};\n\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#database-interface\nclass FDBDatabase extends FakeEventTarget {\n _closePending = false;\n _closed = false;\n _runningVersionchangeTransaction = false;\n constructor(rawDatabase) {\n super();\n this._rawDatabase = rawDatabase;\n this._rawDatabase.connections.push(this);\n this.name = rawDatabase.name;\n this.version = rawDatabase.version;\n this.objectStoreNames = new FakeDOMStringList(...Array.from(rawDatabase.rawObjectStores.keys()).sort());\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbdatabase-createobjectstore\n createObjectStore(name, options = {}) {\n if (name === undefined) {\n throw new TypeError();\n }\n const transaction = confirmActiveVersionchangeTransaction(this);\n const keyPath = options !== null && options.keyPath !== undefined ? options.keyPath : null;\n const autoIncrement = options !== null && options.autoIncrement !== undefined ? options.autoIncrement : false;\n if (keyPath !== null) {\n validateKeyPath(keyPath);\n }\n if (this._rawDatabase.rawObjectStores.has(name)) {\n throw new ConstraintError();\n }\n if (autoIncrement && (keyPath === \"\" || Array.isArray(keyPath))) {\n throw new InvalidAccessError();\n }\n\n // Save for rollbackLog\n const objectStoreNames = [...this.objectStoreNames];\n const transactionObjectStoreNames = [...transaction.objectStoreNames];\n const rawObjectStore = new ObjectStore(this._rawDatabase, name, keyPath, autoIncrement);\n this.objectStoreNames._push(name);\n this.objectStoreNames._sort();\n transaction._scope.add(name);\n transaction._createdObjectStores.add(rawObjectStore);\n this._rawDatabase.rawObjectStores.set(name, rawObjectStore);\n transaction.objectStoreNames = new FakeDOMStringList(...this.objectStoreNames);\n transaction._rollbackLog.push(() => {\n rawObjectStore.deleted = true;\n this.objectStoreNames = new FakeDOMStringList(...objectStoreNames);\n transaction.objectStoreNames = new FakeDOMStringList(...transactionObjectStoreNames);\n transaction._scope.delete(rawObjectStore.name);\n this._rawDatabase.rawObjectStores.delete(rawObjectStore.name);\n });\n return transaction.objectStore(name);\n }\n\n // https://www.w3.org/TR/IndexedDB/#dom-idbdatabase-deleteobjectstore\n deleteObjectStore(name) {\n if (name === undefined) {\n throw new TypeError();\n }\n const transaction = confirmActiveVersionchangeTransaction(this);\n\n // Let store be the object store named name in database, or throw a \"NotFoundError\" DOMException if none.\n const store = this._rawDatabase.rawObjectStores.get(name);\n if (store === undefined) {\n throw new NotFoundError();\n }\n\n // Remove store from this\u2019s object store set.\n // This method synchronously modifies the objectStoreNames property on the IDBDatabase instance on which it was called.\n this.objectStoreNames = new FakeDOMStringList(...Array.from(this.objectStoreNames).filter(objectStoreName => {\n return objectStoreName !== name;\n }));\n transaction.objectStoreNames = new FakeDOMStringList(...this.objectStoreNames);\n\n // If there is an object store handle associated with store and transaction, remove all entries from its index set.\n const objectStore = transaction._objectStoresCache.get(name);\n let prevIndexNames;\n if (objectStore) {\n prevIndexNames = [...objectStore.indexNames];\n objectStore.indexNames = new FakeDOMStringList();\n }\n transaction._rollbackLog.push(() => {\n store.deleted = false;\n this._rawDatabase.rawObjectStores.set(store.name, store);\n this.objectStoreNames._push(store.name);\n transaction.objectStoreNames._push(store.name);\n this.objectStoreNames._sort();\n if (objectStore && prevIndexNames) {\n objectStore.indexNames = new FakeDOMStringList(...prevIndexNames);\n }\n });\n\n // Destroy store.\n store.deleted = true;\n this._rawDatabase.rawObjectStores.delete(name);\n transaction._objectStoresCache.delete(name);\n }\n transaction(storeNames, mode, options) {\n mode = mode !== undefined ? mode : \"readonly\";\n if (mode !== \"readonly\" && mode !== \"readwrite\" && mode !== \"versionchange\") {\n throw new TypeError(\"Invalid mode: \" + mode);\n }\n const hasActiveVersionchange = this._rawDatabase.transactions.some(transaction => {\n return transaction._state === \"active\" && transaction.mode === \"versionchange\" && transaction.db === this;\n });\n if (hasActiveVersionchange) {\n throw new InvalidStateError();\n }\n if (this._closePending) {\n throw new InvalidStateError();\n }\n if (!Array.isArray(storeNames)) {\n storeNames = [storeNames];\n }\n if (storeNames.length === 0 && mode !== \"versionchange\") {\n throw new InvalidAccessError();\n }\n for (const storeName of storeNames) {\n if (!this.objectStoreNames.contains(storeName)) {\n throw new NotFoundError(\"No objectStore named \" + storeName + \" in this database\");\n }\n }\n\n // the actual algo is more complex but this passes the IDB tests: https://webidl.spec.whatwg.org/#es-dictionary\n const durability = options?.durability ?? \"default\";\n // invalid enums throw a TypeError: https://webidl.spec.whatwg.org/#es-enumeration\n if (durability !== \"default\" && durability !== \"strict\" && durability !== \"relaxed\") {\n throw new TypeError(\n // based on Firefox's error message\n `'${durability}' (value of 'durability' member of IDBTransactionOptions) ` + `is not a valid value for enumeration IDBTransactionDurability`);\n }\n const tx = new FDBTransaction(storeNames, mode, durability, this);\n this._rawDatabase.transactions.push(tx);\n this._rawDatabase.processTransactions(); // See if can start right away (async)\n\n return tx;\n }\n close() {\n closeConnection(this);\n }\n get [Symbol.toStringTag]() {\n return \"IDBDatabase\";\n }\n}\nexport default FDBDatabase;", "import FDBObjectStore from \"./FDBObjectStore.js\";\nimport FDBRequest from \"./FDBRequest.js\";\nimport { AbortError, InvalidStateError, NotFoundError, TransactionInactiveError } from \"./lib/errors.js\";\nimport FakeDOMStringList from \"./lib/FakeDOMStringList.js\";\nimport FakeEvent from \"./lib/FakeEvent.js\";\nimport FakeEventTarget from \"./lib/FakeEventTarget.js\";\nimport { queueTask } from \"./lib/scheduling.js\";\nconst prioritizedListenerTypes = [\"error\", \"abort\", \"complete\"];\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#transaction\nclass FDBTransaction extends FakeEventTarget {\n _state = \"active\";\n _started = false;\n _rollbackLog = [];\n _objectStoresCache = new Map();\n _openRequest = null;\n error = null;\n onabort = null;\n oncomplete = null;\n onerror = null;\n _prioritizedListeners = new Map();\n _requests = [];\n _createdIndexes = new Set();\n _createdObjectStores = new Set();\n constructor(storeNames, mode, durability, db) {\n super();\n this._scope = new Set(storeNames);\n this.mode = mode;\n this.durability = durability;\n this.db = db;\n this.objectStoreNames = new FakeDOMStringList(...Array.from(this._scope).sort());\n for (const type of prioritizedListenerTypes) {\n // Attach prioritized (internal) listeners before any external listeners are attached.\n // This ensures that these listeners run with the same timing regardless of whether\n // the user uses `on*` or `addEventListener` for event listeners.\n this.addEventListener(type, () => {\n this._prioritizedListeners.get(type)?.();\n });\n }\n }\n\n // https://w3c.github.io/IndexedDB/#abort-transaction\n _abort(errName) {\n for (const f of this._rollbackLog.reverse()) {\n f();\n }\n if (errName !== null) {\n const e = new DOMException(undefined, errName);\n this.error = e;\n }\n\n // Should this directly remove from _requests?\n for (const {\n request\n } of this._requests) {\n if (request.readyState !== \"done\") {\n request.readyState = \"done\"; // This will cancel execution of this request's operation\n if (request.source) {\n // https://w3c.github.io/IndexedDB/#ref-for-list-iterate%E2%91%A2\n // For each request of transaction\u2019s request list, abort the steps to asynchronously\n // execute a request for request, set request\u2019s processed flag to true, and queue a\n // database task to run these steps:\n queueTask(() => {\n // Set request\u2019s result to undefined.\n request.result = undefined;\n // Set request\u2019s error to a newly created \"AbortError\" DOMException.\n request.error = new AbortError();\n\n // Fire an event named error at request with its bubbles and cancelable attributes initialized\n // to true.\n const event = new FakeEvent(\"error\", {\n bubbles: true,\n cancelable: true\n });\n event.eventPath = [this.db, this];\n try {\n request.dispatchEvent(event);\n } catch (_err) {\n if (this._state === \"active\") {\n this._abort(\"AbortError\");\n }\n }\n });\n }\n }\n }\n\n // Queue a database task to run these steps:\n queueTask(() => {\n // If transaction is an upgrade transaction, then set transaction\u2019s connection\u2019s associated database\u2019s\n // upgrade transaction to null.\n // (i.e. remove it from the list of `db.connections`)\n const isUpgradeTransaction = this.mode === \"versionchange\";\n if (isUpgradeTransaction) {\n this.db._rawDatabase.connections = this.db._rawDatabase.connections.filter(connection => !connection._rawDatabase.transactions.includes(this));\n }\n // Fire an event named abort at transaction with its bubbles attribute initialized to true.\n const event = new FakeEvent(\"abort\", {\n bubbles: true,\n cancelable: false\n });\n event.eventPath = [this.db];\n this.dispatchEvent(event);\n\n // If transaction is an upgrade transaction, then:\n if (isUpgradeTransaction) {\n // Let request be the open request associated with transaction.\n const request = this._openRequest;\n // Set request\u2019s transaction to null.\n request.transaction = null;\n // Set request\u2019s result to undefined.\n request.result = undefined;\n }\n });\n this._state = \"finished\";\n }\n abort() {\n if (this._state === \"committing\" || this._state === \"finished\") {\n throw new InvalidStateError();\n }\n this._state = \"active\";\n this._abort(null);\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbtransaction-objectstore\n objectStore(name) {\n if (this._state !== \"active\") {\n throw new InvalidStateError();\n }\n const objectStore = this._objectStoresCache.get(name);\n if (objectStore !== undefined) {\n return objectStore;\n }\n const rawObjectStore = this.db._rawDatabase.rawObjectStores.get(name);\n if (!this._scope.has(name) || rawObjectStore === undefined) {\n throw new NotFoundError();\n }\n const objectStore2 = new FDBObjectStore(this, rawObjectStore);\n this._objectStoresCache.set(name, objectStore2);\n return objectStore2;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-asynchronously-executing-a-request\n _execRequestAsync(obj) {\n const source = obj.source;\n const operation = obj.operation;\n let request = Object.hasOwn(obj, \"request\") ? obj.request : null;\n if (this._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n\n // Request should only be passed for cursors\n if (!request) {\n if (!source) {\n // Special requests like indexes that just need to run some code\n request = new FDBRequest();\n } else {\n request = new FDBRequest();\n request.source = source;\n request.transaction = source.transaction;\n }\n }\n this._requests.push({\n operation,\n request\n });\n return request;\n }\n _start() {\n this._started = true;\n\n // Remove from request queue - cursor ones will be added back if necessary by cursor.continue and such\n let operation;\n let request;\n while (this._requests.length > 0) {\n const r = this._requests.shift();\n\n // This should only be false if transaction was aborted\n if (r && r.request.readyState !== \"done\") {\n request = r.request;\n operation = r.operation;\n break;\n }\n }\n if (request && operation) {\n if (!request.source) {\n // Special requests like indexes that just need to run some code, with error handling already built into\n // operation\n operation();\n } else {\n let defaultAction;\n let event;\n try {\n const result = operation();\n request.readyState = \"done\";\n request.result = result;\n request.error = undefined;\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-fire-a-success-event\n if (this._state === \"inactive\") {\n this._state = \"active\";\n }\n event = new FakeEvent(\"success\", {\n bubbles: false,\n cancelable: false\n });\n } catch (err) {\n request.readyState = \"done\";\n request.result = undefined;\n request.error = err;\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-fire-an-error-event\n if (this._state === \"inactive\") {\n this._state = \"active\";\n }\n event = new FakeEvent(\"error\", {\n bubbles: true,\n cancelable: true\n });\n defaultAction = this._abort.bind(this, err.name);\n }\n try {\n event.eventPath = [this.db, this];\n request.dispatchEvent(event);\n } catch (_err) {\n if (this._state === \"active\") {\n this._abort(\"AbortError\");\n defaultAction = undefined; // do not abort again\n }\n }\n\n // Default action of event\n if (!event.canceled) {\n if (defaultAction) {\n defaultAction();\n }\n }\n }\n\n // Give it another chance for new handlers to be set before finishing\n queueTask(this._start.bind(this));\n return;\n }\n\n // Check if transaction complete event needs to be fired\n if (this._state !== \"finished\") {\n // Either aborted or committed already\n this._state = \"finished\";\n if (!this.error) {\n const event = new FakeEvent(\"complete\");\n this.dispatchEvent(event);\n }\n }\n }\n commit() {\n if (this._state !== \"active\") {\n throw new InvalidStateError();\n }\n this._state = \"committing\";\n }\n get [Symbol.toStringTag]() {\n return \"IDBTransaction\";\n }\n}\nexport default FDBTransaction;", "import FDBCursor from \"./FDBCursor.js\";\nimport FDBCursorWithValue from \"./FDBCursorWithValue.js\";\nimport FDBIndex from \"./FDBIndex.js\";\nimport FDBKeyRange from \"./FDBKeyRange.js\";\nimport FDBRequest from \"./FDBRequest.js\";\nimport canInjectKey from \"./lib/canInjectKey.js\";\nimport { ConstraintError, DataError, InvalidAccessError, InvalidStateError, NotFoundError, ReadOnlyError, TransactionInactiveError } from \"./lib/errors.js\";\nimport extractKey from \"./lib/extractKey.js\";\nimport FakeDOMStringList from \"./lib/FakeDOMStringList.js\";\nimport Index from \"./lib/Index.js\";\nimport validateKeyPath from \"./lib/validateKeyPath.js\";\nimport valueToKey from \"./lib/valueToKey.js\";\nimport valueToKeyRange from \"./lib/valueToKeyRange.js\";\nimport { getKeyPath } from \"./lib/getKeyPath.js\";\nimport extractGetAllOptions from \"./lib/extractGetAllOptions.js\";\nimport enforceRange from \"./lib/enforceRange.js\";\nimport { cloneValueForInsertion } from \"./lib/cloneValueForInsertion.js\";\nconst confirmActiveTransaction = objectStore => {\n if (objectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n if (objectStore.transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n};\nconst buildRecordAddPut = (objectStore, value, key) => {\n confirmActiveTransaction(objectStore);\n if (objectStore.transaction.mode === \"readonly\") {\n throw new ReadOnlyError();\n }\n if (objectStore.keyPath !== null) {\n if (key !== undefined) {\n throw new DataError();\n }\n }\n const clone = cloneValueForInsertion(value, objectStore.transaction);\n if (objectStore.keyPath !== null) {\n const tempKey = extractKey(objectStore.keyPath, clone);\n if (tempKey.type === \"found\") {\n valueToKey(tempKey.key);\n } else {\n if (!objectStore._rawObjectStore.keyGenerator) {\n throw new DataError();\n } else if (!canInjectKey(objectStore.keyPath, clone)) {\n throw new DataError();\n }\n }\n }\n if (objectStore.keyPath === null && objectStore._rawObjectStore.keyGenerator === null && key === undefined) {\n throw new DataError();\n }\n if (key !== undefined) {\n key = valueToKey(key);\n }\n return {\n key,\n value: clone\n };\n};\n\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#object-store\nclass FDBObjectStore {\n _indexesCache = new Map();\n constructor(transaction, rawObjectStore) {\n this._rawObjectStore = rawObjectStore;\n this._name = rawObjectStore.name;\n this.keyPath = getKeyPath(rawObjectStore.keyPath);\n this.autoIncrement = rawObjectStore.autoIncrement;\n this.transaction = transaction;\n this.indexNames = new FakeDOMStringList(...Array.from(rawObjectStore.rawIndexes.keys()).sort());\n }\n get name() {\n return this._name;\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbobjectstore-name\n set name(name) {\n const transaction = this.transaction;\n if (!transaction.db._runningVersionchangeTransaction) {\n throw transaction._state === \"active\" ? new InvalidStateError() : new TransactionInactiveError();\n }\n confirmActiveTransaction(this);\n name = String(name);\n if (name === this._name) {\n return;\n }\n if (this._rawObjectStore.rawDatabase.rawObjectStores.has(name)) {\n throw new ConstraintError();\n }\n const oldName = this._name;\n const oldObjectStoreNames = [...transaction.db.objectStoreNames];\n this._name = name;\n this._rawObjectStore.name = name;\n this.transaction._objectStoresCache.delete(oldName);\n this.transaction._objectStoresCache.set(name, this);\n this._rawObjectStore.rawDatabase.rawObjectStores.delete(oldName);\n this._rawObjectStore.rawDatabase.rawObjectStores.set(name, this._rawObjectStore);\n transaction.db.objectStoreNames = new FakeDOMStringList(...Array.from(this._rawObjectStore.rawDatabase.rawObjectStores.keys()).filter(objectStoreName => {\n const objectStore = this._rawObjectStore.rawDatabase.rawObjectStores.get(objectStoreName);\n return objectStore && !objectStore.deleted;\n }).sort());\n const oldScope = new Set(transaction._scope);\n const oldTransactionObjectStoreNames = [...transaction.objectStoreNames];\n this.transaction._scope.delete(oldName);\n transaction._scope.add(name);\n transaction.objectStoreNames = new FakeDOMStringList(...Array.from(transaction._scope).sort());\n\n // https://www.w3.org/TR/IndexedDB/#abort-an-upgrade-transaction - \"If handle\u2019s object store was not newly created during transaction, set handle\u2019s name to its object store\u2019s name.\"\n if (!this.transaction._createdObjectStores.has(this._rawObjectStore)) {\n transaction._rollbackLog.push(() => {\n this._name = oldName;\n this._rawObjectStore.name = oldName;\n this.transaction._objectStoresCache.delete(name);\n this.transaction._objectStoresCache.set(oldName, this);\n this._rawObjectStore.rawDatabase.rawObjectStores.delete(name);\n this._rawObjectStore.rawDatabase.rawObjectStores.set(oldName, this._rawObjectStore);\n transaction.db.objectStoreNames = new FakeDOMStringList(...oldObjectStoreNames);\n transaction._scope = oldScope;\n transaction.objectStoreNames = new FakeDOMStringList(...oldTransactionObjectStoreNames);\n });\n }\n }\n put(value, key) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n const record = buildRecordAddPut(this, value, key);\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.storeRecord.bind(this._rawObjectStore, record, false, this.transaction._rollbackLog),\n source: this\n });\n }\n add(value, key) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n const record = buildRecordAddPut(this, value, key);\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.storeRecord.bind(this._rawObjectStore, record, true, this.transaction._rollbackLog),\n source: this\n });\n }\n delete(key) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n confirmActiveTransaction(this);\n if (this.transaction.mode === \"readonly\") {\n throw new ReadOnlyError();\n }\n if (!(key instanceof FDBKeyRange)) {\n key = valueToKey(key);\n }\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.deleteRecord.bind(this._rawObjectStore, key, this.transaction._rollbackLog),\n source: this\n });\n }\n get(key) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n confirmActiveTransaction(this);\n if (!(key instanceof FDBKeyRange)) {\n key = valueToKey(key);\n }\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.getValue.bind(this._rawObjectStore, key),\n source: this\n });\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbobjectstore-getall\n getAll(queryOrOptions, count) {\n const options = extractGetAllOptions(queryOrOptions, count, arguments.length);\n confirmActiveTransaction(this);\n const range = valueToKeyRange(options.query);\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.getAllValues.bind(this._rawObjectStore, range, options.count, options.direction),\n source: this\n });\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbobjectstore-getkey\n getKey(key) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n confirmActiveTransaction(this);\n if (!(key instanceof FDBKeyRange)) {\n key = valueToKey(key);\n }\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.getKey.bind(this._rawObjectStore, key),\n source: this\n });\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbobjectstore-getallkeys\n getAllKeys(queryOrOptions, count) {\n const options = extractGetAllOptions(queryOrOptions, count, arguments.length);\n confirmActiveTransaction(this);\n const range = valueToKeyRange(options.query);\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.getAllKeys.bind(this._rawObjectStore, range, options.count, options.direction),\n source: this\n });\n }\n\n // https://www.w3.org/TR/IndexedDB/#dom-idbobjectstore-getallrecords\n getAllRecords(options) {\n let query;\n let count;\n let direction;\n if (options !== undefined) {\n if (options.query !== undefined) {\n query = options.query;\n }\n if (options.count !== undefined) {\n count = enforceRange(options.count, \"unsigned long\");\n }\n if (options.direction !== undefined) {\n direction = options.direction;\n }\n }\n confirmActiveTransaction(this);\n const range = valueToKeyRange(query);\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.getAllRecords.bind(this._rawObjectStore, range, count, direction),\n source: this\n });\n }\n clear() {\n confirmActiveTransaction(this);\n if (this.transaction.mode === \"readonly\") {\n throw new ReadOnlyError();\n }\n return this.transaction._execRequestAsync({\n operation: this._rawObjectStore.clear.bind(this._rawObjectStore, this.transaction._rollbackLog),\n source: this\n });\n }\n openCursor(range, direction) {\n confirmActiveTransaction(this);\n if (range === null) {\n range = undefined;\n }\n if (range !== undefined && !(range instanceof FDBKeyRange)) {\n range = FDBKeyRange.only(valueToKey(range));\n }\n const request = new FDBRequest();\n request.source = this;\n request.transaction = this.transaction;\n const cursor = new FDBCursorWithValue(this, range, direction, request);\n return this.transaction._execRequestAsync({\n operation: cursor._iterate.bind(cursor),\n request,\n source: this\n });\n }\n openKeyCursor(range, direction) {\n confirmActiveTransaction(this);\n if (range === null) {\n range = undefined;\n }\n if (range !== undefined && !(range instanceof FDBKeyRange)) {\n range = FDBKeyRange.only(valueToKey(range));\n }\n const request = new FDBRequest();\n request.source = this;\n request.transaction = this.transaction;\n const cursor = new FDBCursor(this, range, direction, request, true);\n return this.transaction._execRequestAsync({\n operation: cursor._iterate.bind(cursor),\n request,\n source: this\n });\n }\n\n // tslint:-next-line max-line-length\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBObjectStore-createIndex-IDBIndex-DOMString-name-DOMString-sequence-DOMString--keyPath-IDBIndexParameters-optionalParameters\n createIndex(name, keyPath, optionalParameters = {}) {\n if (arguments.length < 2) {\n throw new TypeError();\n }\n const multiEntry = optionalParameters.multiEntry !== undefined ? optionalParameters.multiEntry : false;\n const unique = optionalParameters.unique !== undefined ? optionalParameters.unique : false;\n if (this.transaction.mode !== \"versionchange\") {\n throw new InvalidStateError();\n }\n confirmActiveTransaction(this);\n if (this.indexNames.contains(name)) {\n throw new ConstraintError();\n }\n validateKeyPath(keyPath);\n if (Array.isArray(keyPath) && multiEntry) {\n throw new InvalidAccessError();\n }\n\n // The index that is requested to be created can contain constraints on the data allowed in the index's\n // referenced object store, such as requiring uniqueness of the values referenced by the index's keyPath. If the\n // referenced object store already contains data which violates these constraints, this MUST NOT cause the\n // implementation of createIndex to throw an exception or affect what it returns. The implementation MUST still\n // create and return an IDBIndex object. Instead the implementation must queue up an operation to abort the\n // \"versionchange\" transaction which was used for the createIndex call.\n\n // Save for rollbackLog\n const indexNames = [...this.indexNames];\n const index = new Index(this._rawObjectStore, name, keyPath, multiEntry, unique);\n this.indexNames._push(name);\n this.indexNames._sort();\n this.transaction._createdIndexes.add(index);\n this._rawObjectStore.rawIndexes.set(name, index);\n index.initialize(this.transaction); // This is async by design\n\n this.transaction._rollbackLog.push(() => {\n index.deleted = true;\n this.indexNames = new FakeDOMStringList(...indexNames);\n this._rawObjectStore.rawIndexes.delete(index.name);\n });\n return new FDBIndex(this, index);\n }\n\n // https://w3c.github.io/IndexedDB/#dom-idbobjectstore-index\n index(name) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n if (this._rawObjectStore.deleted || this.transaction._state === \"finished\") {\n throw new InvalidStateError();\n }\n const index = this._indexesCache.get(name);\n if (index !== undefined) {\n return index;\n }\n const rawIndex = this._rawObjectStore.rawIndexes.get(name);\n if (!this.indexNames.contains(name) || rawIndex === undefined) {\n throw new NotFoundError();\n }\n const index2 = new FDBIndex(this, rawIndex);\n this._indexesCache.set(name, index2);\n return index2;\n }\n deleteIndex(name) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n if (this.transaction.mode !== \"versionchange\") {\n throw new InvalidStateError();\n }\n confirmActiveTransaction(this);\n const rawIndex = this._rawObjectStore.rawIndexes.get(name);\n if (rawIndex === undefined) {\n throw new NotFoundError();\n }\n this.transaction._rollbackLog.push(() => {\n rawIndex.deleted = false;\n this._rawObjectStore.rawIndexes.set(rawIndex.name, rawIndex);\n this.indexNames._push(rawIndex.name);\n this.indexNames._sort();\n });\n this.indexNames = new FakeDOMStringList(...Array.from(this.indexNames).filter(indexName => {\n return indexName !== name;\n }));\n rawIndex.deleted = true; // Not sure if this is supposed to happen synchronously\n\n this.transaction._execRequestAsync({\n operation: () => {\n const rawIndex2 = this._rawObjectStore.rawIndexes.get(name);\n\n // Hack in case another index is given this name before this async request is processed. It'd be better\n // to have a real unique ID for each index.\n if (rawIndex === rawIndex2) {\n this._rawObjectStore.rawIndexes.delete(name);\n }\n },\n source: this\n });\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBObjectStore-count-IDBRequest-any-key\n count(key) {\n confirmActiveTransaction(this);\n if (key === null) {\n key = undefined;\n }\n if (key !== undefined && !(key instanceof FDBKeyRange)) {\n key = FDBKeyRange.only(valueToKey(key));\n }\n return this.transaction._execRequestAsync({\n operation: () => {\n return this._rawObjectStore.count(key);\n },\n source: this\n });\n }\n get [Symbol.toStringTag]() {\n return \"IDBObjectStore\";\n }\n}\nexport default FDBObjectStore;", "import FDBKeyRange from \"./FDBKeyRange.js\";\nimport FDBObjectStore from \"./FDBObjectStore.js\";\nimport cmp from \"./lib/cmp.js\";\nimport { DataError, InvalidAccessError, InvalidStateError, ReadOnlyError, TransactionInactiveError } from \"./lib/errors.js\";\nimport extractKey from \"./lib/extractKey.js\";\nimport valueToKey from \"./lib/valueToKey.js\";\nimport { cloneValueForInsertion } from \"./lib/cloneValueForInsertion.js\";\nconst getEffectiveObjectStore = cursor => {\n if (cursor.source instanceof FDBObjectStore) {\n return cursor.source;\n }\n return cursor.source.objectStore;\n};\n\n// This takes a key range, a list of lower bounds, and a list of upper bounds and combines them all into a single key\n// range. It does not handle gt/gte distinctions, because it doesn't really matter much anyway, since for next/prev\n// cursor iteration it'd also have to look at values to be precise, which would be complicated. This should get us 99%\n// of the way there.\nconst makeKeyRange = (range, lowers, uppers) => {\n // Start with bounds from range\n let lower = range !== undefined ? range.lower : undefined;\n let upper = range !== undefined ? range.upper : undefined;\n\n // Augment with values from lowers and uppers\n for (const lowerTemp of lowers) {\n if (lowerTemp === undefined) {\n continue;\n }\n if (lower === undefined || cmp(lower, lowerTemp) === 1) {\n lower = lowerTemp;\n }\n }\n for (const upperTemp of uppers) {\n if (upperTemp === undefined) {\n continue;\n }\n if (upper === undefined || cmp(upper, upperTemp) === -1) {\n upper = upperTemp;\n }\n }\n if (lower !== undefined && upper !== undefined) {\n return FDBKeyRange.bound(lower, upper);\n }\n if (lower !== undefined) {\n return FDBKeyRange.lowerBound(lower);\n }\n if (upper !== undefined) {\n return FDBKeyRange.upperBound(upper);\n }\n};\n\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#cursor\nclass FDBCursor {\n _gotValue = false;\n _position = undefined; // Key of previously returned record\n _objectStorePosition = undefined;\n _keyOnly = false;\n _key = undefined;\n _primaryKey = undefined;\n constructor(source, range, direction = \"next\", request, keyOnly = false) {\n this._range = range;\n this._source = source;\n this._direction = direction;\n this._request = request;\n this._keyOnly = keyOnly;\n }\n\n // Read only properties\n get source() {\n return this._source;\n }\n set source(val) {\n /* For babel */\n }\n get request() {\n return this._request;\n }\n set request(val) {\n /* For babel */\n }\n get direction() {\n return this._direction;\n }\n set direction(val) {\n /* For babel */\n }\n get key() {\n return this._key;\n }\n set key(val) {\n /* For babel */\n }\n get primaryKey() {\n return this._primaryKey;\n }\n set primaryKey(val) {\n /* For babel */\n }\n\n // https://w3c.github.io/IndexedDB/#iterate-a-cursor\n _iterate(key, primaryKey) {\n const sourceIsObjectStore = this.source instanceof FDBObjectStore;\n\n // Can't use sourceIsObjectStore because TypeScript\n const records = this.source instanceof FDBObjectStore ? this.source._rawObjectStore.records : this.source._rawIndex.records;\n let foundRecord;\n if (this.direction === \"next\") {\n const range = makeKeyRange(this._range, [key, this._position], []);\n for (const record of records.values(range)) {\n const cmpResultKey = key !== undefined ? cmp(record.key, key) : undefined;\n const cmpResultPosition = this._position !== undefined ? cmp(record.key, this._position) : undefined;\n if (key !== undefined) {\n if (cmpResultKey === -1) {\n continue;\n }\n }\n if (primaryKey !== undefined) {\n if (cmpResultKey === -1) {\n continue;\n }\n const cmpResultPrimaryKey = cmp(record.value, primaryKey);\n if (cmpResultKey === 0 && cmpResultPrimaryKey === -1) {\n continue;\n }\n }\n if (this._position !== undefined && sourceIsObjectStore) {\n if (cmpResultPosition !== 1) {\n continue;\n }\n }\n if (this._position !== undefined && !sourceIsObjectStore) {\n if (cmpResultPosition === -1) {\n continue;\n }\n if (cmpResultPosition === 0 && cmp(record.value, this._objectStorePosition) !== 1) {\n continue;\n }\n }\n if (this._range !== undefined) {\n if (!this._range.includes(record.key)) {\n continue;\n }\n }\n foundRecord = record;\n break;\n }\n } else if (this.direction === \"nextunique\") {\n // This could be done without iterating, if the range was defined slightly better (to handle gt/gte cases).\n // But the performance difference should be small, and that wouldn't work anyway for directions where the\n // value needs to be used (like next and prev).\n const range = makeKeyRange(this._range, [key, this._position], []);\n for (const record of records.values(range)) {\n if (key !== undefined) {\n if (cmp(record.key, key) === -1) {\n continue;\n }\n }\n if (this._position !== undefined) {\n if (cmp(record.key, this._position) !== 1) {\n continue;\n }\n }\n if (this._range !== undefined) {\n if (!this._range.includes(record.key)) {\n continue;\n }\n }\n foundRecord = record;\n break;\n }\n } else if (this.direction === \"prev\") {\n const range = makeKeyRange(this._range, [], [key, this._position]);\n for (const record of records.values(range, \"prev\")) {\n const cmpResultKey = key !== undefined ? cmp(record.key, key) : undefined;\n const cmpResultPosition = this._position !== undefined ? cmp(record.key, this._position) : undefined;\n if (key !== undefined) {\n if (cmpResultKey === 1) {\n continue;\n }\n }\n if (primaryKey !== undefined) {\n if (cmpResultKey === 1) {\n continue;\n }\n const cmpResultPrimaryKey = cmp(record.value, primaryKey);\n if (cmpResultKey === 0 && cmpResultPrimaryKey === 1) {\n continue;\n }\n }\n if (this._position !== undefined && sourceIsObjectStore) {\n if (cmpResultPosition !== -1) {\n continue;\n }\n }\n if (this._position !== undefined && !sourceIsObjectStore) {\n if (cmpResultPosition === 1) {\n continue;\n }\n if (cmpResultPosition === 0 && cmp(record.value, this._objectStorePosition) !== -1) {\n continue;\n }\n }\n if (this._range !== undefined) {\n if (!this._range.includes(record.key)) {\n continue;\n }\n }\n foundRecord = record;\n break;\n }\n } else if (this.direction === \"prevunique\") {\n let tempRecord;\n const range = makeKeyRange(this._range, [], [key, this._position]);\n for (const record of records.values(range, \"prev\")) {\n if (key !== undefined) {\n if (cmp(record.key, key) === 1) {\n continue;\n }\n }\n if (this._position !== undefined) {\n if (cmp(record.key, this._position) !== -1) {\n continue;\n }\n }\n if (this._range !== undefined) {\n if (!this._range.includes(record.key)) {\n continue;\n }\n }\n tempRecord = record;\n break;\n }\n if (tempRecord) {\n foundRecord = records.get(tempRecord.key);\n }\n }\n let result;\n if (!foundRecord) {\n this._key = undefined;\n if (!sourceIsObjectStore) {\n this._objectStorePosition = undefined;\n }\n\n // \"this instanceof FDBCursorWithValue\" would be better and not require (this as any), but causes runtime\n // error due to circular dependency.\n if (!this._keyOnly && this.toString() === \"[object IDBCursorWithValue]\") {\n this.value = undefined;\n }\n result = null;\n } else {\n this._position = foundRecord.key;\n if (!sourceIsObjectStore) {\n this._objectStorePosition = foundRecord.value;\n }\n this._key = foundRecord.key;\n if (sourceIsObjectStore) {\n this._primaryKey = structuredClone(foundRecord.key);\n if (!this._keyOnly && this.toString() === \"[object IDBCursorWithValue]\") {\n this.value = structuredClone(foundRecord.value);\n }\n } else {\n this._primaryKey = structuredClone(foundRecord.value);\n if (!this._keyOnly && this.toString() === \"[object IDBCursorWithValue]\") {\n if (this.source instanceof FDBObjectStore) {\n // Can't use sourceIsObjectStore because TypeScript\n throw new Error(\"This should never happen\");\n }\n const value = this.source.objectStore._rawObjectStore.getValue(foundRecord.value);\n this.value = structuredClone(value);\n }\n }\n this._gotValue = true;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n result = this;\n }\n return result;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBCursor-update-IDBRequest-any-value\n update(value) {\n if (value === undefined) {\n throw new TypeError();\n }\n const effectiveObjectStore = getEffectiveObjectStore(this);\n const effectiveKey = Object.hasOwn(this.source, \"_rawIndex\") ? this.primaryKey : this._position;\n const transaction = effectiveObjectStore.transaction;\n if (transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n if (transaction.mode === \"readonly\") {\n throw new ReadOnlyError();\n }\n if (effectiveObjectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n if (!(this.source instanceof FDBObjectStore) && this.source._rawIndex.deleted) {\n throw new InvalidStateError();\n }\n if (!this._gotValue || !Object.hasOwn(this, \"value\")) {\n throw new InvalidStateError();\n }\n const clone = cloneValueForInsertion(value, transaction);\n if (effectiveObjectStore.keyPath !== null) {\n let tempKey;\n try {\n tempKey = extractKey(effectiveObjectStore.keyPath, clone).key;\n } catch (err) {\n /* Handled immediately below */\n }\n if (cmp(tempKey, effectiveKey) !== 0) {\n throw new DataError();\n }\n }\n const record = {\n key: effectiveKey,\n value: clone\n };\n return transaction._execRequestAsync({\n operation: effectiveObjectStore._rawObjectStore.storeRecord.bind(effectiveObjectStore._rawObjectStore, record, false, transaction._rollbackLog),\n source: this\n });\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBCursor-advance-void-unsigned-long-count\n advance(count) {\n if (!Number.isInteger(count) || count <= 0) {\n throw new TypeError();\n }\n const effectiveObjectStore = getEffectiveObjectStore(this);\n const transaction = effectiveObjectStore.transaction;\n if (transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n if (effectiveObjectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n if (!(this.source instanceof FDBObjectStore) && this.source._rawIndex.deleted) {\n throw new InvalidStateError();\n }\n if (!this._gotValue) {\n throw new InvalidStateError();\n }\n if (this._request) {\n this._request.readyState = \"pending\";\n }\n transaction._execRequestAsync({\n operation: () => {\n let result;\n for (let i = 0; i < count; i++) {\n result = this._iterate();\n\n // Not sure why this is needed\n if (!result) {\n break;\n }\n }\n return result;\n },\n request: this._request,\n source: this.source\n });\n this._gotValue = false;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBCursor-continue-void-any-key\n continue(key) {\n const effectiveObjectStore = getEffectiveObjectStore(this);\n const transaction = effectiveObjectStore.transaction;\n if (transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n if (effectiveObjectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n if (!(this.source instanceof FDBObjectStore) && this.source._rawIndex.deleted) {\n throw new InvalidStateError();\n }\n if (!this._gotValue) {\n throw new InvalidStateError();\n }\n if (key !== undefined) {\n key = valueToKey(key);\n const cmpResult = cmp(key, this._position);\n if (cmpResult <= 0 && (this.direction === \"next\" || this.direction === \"nextunique\") || cmpResult >= 0 && (this.direction === \"prev\" || this.direction === \"prevunique\")) {\n throw new DataError();\n }\n }\n if (this._request) {\n this._request.readyState = \"pending\";\n }\n transaction._execRequestAsync({\n operation: this._iterate.bind(this, key),\n request: this._request,\n source: this.source\n });\n this._gotValue = false;\n }\n\n // hthttps://w3c.github.io/IndexedDB/#dom-idbcursor-continueprimarykey\n continuePrimaryKey(key, primaryKey) {\n const effectiveObjectStore = getEffectiveObjectStore(this);\n const transaction = effectiveObjectStore.transaction;\n if (transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n if (effectiveObjectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n if (!(this.source instanceof FDBObjectStore) && this.source._rawIndex.deleted) {\n throw new InvalidStateError();\n }\n if (this.source instanceof FDBObjectStore || this.direction !== \"next\" && this.direction !== \"prev\") {\n throw new InvalidAccessError();\n }\n if (!this._gotValue) {\n throw new InvalidStateError();\n }\n\n // Not sure about this\n if (key === undefined || primaryKey === undefined) {\n throw new DataError();\n }\n key = valueToKey(key);\n const cmpResult = cmp(key, this._position);\n if (cmpResult === -1 && this.direction === \"next\" || cmpResult === 1 && this.direction === \"prev\") {\n throw new DataError();\n }\n const cmpResult2 = cmp(primaryKey, this._objectStorePosition);\n if (cmpResult === 0) {\n if (cmpResult2 <= 0 && this.direction === \"next\" || cmpResult2 >= 0 && this.direction === \"prev\") {\n throw new DataError();\n }\n }\n if (this._request) {\n this._request.readyState = \"pending\";\n }\n transaction._execRequestAsync({\n operation: this._iterate.bind(this, key, primaryKey),\n request: this._request,\n source: this.source\n });\n this._gotValue = false;\n }\n delete() {\n const effectiveObjectStore = getEffectiveObjectStore(this);\n const effectiveKey = Object.hasOwn(this.source, \"_rawIndex\") ? this.primaryKey : this._position;\n const transaction = effectiveObjectStore.transaction;\n if (transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n if (transaction.mode === \"readonly\") {\n throw new ReadOnlyError();\n }\n if (effectiveObjectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n if (!(this.source instanceof FDBObjectStore) && this.source._rawIndex.deleted) {\n throw new InvalidStateError();\n }\n if (!this._gotValue || !Object.hasOwn(this, \"value\")) {\n throw new InvalidStateError();\n }\n return transaction._execRequestAsync({\n operation: effectiveObjectStore._rawObjectStore.deleteRecord.bind(effectiveObjectStore._rawObjectStore, effectiveKey, transaction._rollbackLog),\n source: this\n });\n }\n get [Symbol.toStringTag]() {\n return \"IDBCursor\";\n }\n}\nexport default FDBCursor;", "import cmp from \"./lib/cmp.js\";\nimport { DataError } from \"./lib/errors.js\";\nimport valueToKey from \"./lib/valueToKey.js\";\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#range-concept\nclass FDBKeyRange {\n static only(value) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n value = valueToKey(value);\n return new FDBKeyRange(value, value, false, false);\n }\n static lowerBound(lower, open = false) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n lower = valueToKey(lower);\n return new FDBKeyRange(lower, undefined, open, true);\n }\n static upperBound(upper, open = false) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n upper = valueToKey(upper);\n return new FDBKeyRange(undefined, upper, true, open);\n }\n static bound(lower, upper, lowerOpen = false, upperOpen = false) {\n if (arguments.length < 2) {\n throw new TypeError();\n }\n const cmpResult = cmp(lower, upper);\n if (cmpResult === 1 || cmpResult === 0 && (lowerOpen || upperOpen)) {\n throw new DataError();\n }\n lower = valueToKey(lower);\n upper = valueToKey(upper);\n return new FDBKeyRange(lower, upper, lowerOpen, upperOpen);\n }\n constructor(lower, upper, lowerOpen, upperOpen) {\n this.lower = lower;\n this.upper = upper;\n this.lowerOpen = lowerOpen;\n this.upperOpen = upperOpen;\n }\n\n // https://w3c.github.io/IndexedDB/#dom-idbkeyrange-includes\n includes(key) {\n if (arguments.length === 0) {\n throw new TypeError();\n }\n key = valueToKey(key);\n if (this.lower !== undefined) {\n const cmpResult = cmp(this.lower, key);\n if (cmpResult === 1 || cmpResult === 0 && this.lowerOpen) {\n return false;\n }\n }\n if (this.upper !== undefined) {\n const cmpResult = cmp(this.upper, key);\n if (cmpResult === -1 || cmpResult === 0 && this.upperOpen) {\n return false;\n }\n }\n return true;\n }\n get [Symbol.toStringTag]() {\n return \"IDBKeyRange\";\n }\n}\nexport default FDBKeyRange;", "import { DataError } from \"./errors.js\";\nimport valueToKey from \"./valueToKey.js\";\nconst getType = x => {\n if (typeof x === \"number\") {\n return \"Number\";\n }\n if (Object.prototype.toString.call(x) === \"[object Date]\") {\n return \"Date\";\n }\n if (Array.isArray(x)) {\n return \"Array\";\n }\n if (typeof x === \"string\") {\n return \"String\";\n }\n if (x instanceof ArrayBuffer) {\n return \"Binary\";\n }\n throw new DataError();\n};\n\n// https://w3c.github.io/IndexedDB/#compare-two-keys\nconst cmp = (first, second) => {\n if (second === undefined) {\n throw new TypeError();\n }\n first = valueToKey(first);\n second = valueToKey(second);\n const t1 = getType(first);\n const t2 = getType(second);\n if (t1 !== t2) {\n if (t1 === \"Array\") {\n return 1;\n }\n if (t1 === \"Binary\" && (t2 === \"String\" || t2 === \"Date\" || t2 === \"Number\")) {\n return 1;\n }\n if (t1 === \"String\" && (t2 === \"Date\" || t2 === \"Number\")) {\n return 1;\n }\n if (t1 === \"Date\" && t2 === \"Number\") {\n return 1;\n }\n return -1;\n }\n if (t1 === \"Binary\") {\n first = new Uint8Array(first);\n second = new Uint8Array(second);\n }\n if (t1 === \"Array\" || t1 === \"Binary\") {\n const length = Math.min(first.length, second.length);\n for (let i = 0; i < length; i++) {\n const result = cmp(first[i], second[i]);\n if (result !== 0) {\n return result;\n }\n }\n if (first.length > second.length) {\n return 1;\n }\n if (first.length < second.length) {\n return -1;\n }\n return 0;\n }\n if (t1 === \"Date\") {\n if (first.getTime() === second.getTime()) {\n return 0;\n }\n } else {\n if (first === second) {\n return 0;\n }\n }\n return first > second ? 1 : -1;\n};\nexport default cmp;", "const messages = {\n AbortError: \"A request was aborted, for example through a call to IDBTransaction.abort.\",\n 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.\",\n DataCloneError: \"The data being stored could not be cloned by the internal structured cloning algorithm.\",\n DataError: \"Data provided to an operation does not meet requirements.\",\n InvalidAccessError: \"An invalid operation was performed on an object. For example transaction creation attempt was made, but an empty scope was provided.\",\n 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.\",\n 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.\",\n ReadOnlyError: 'The mutating operation was attempted in a \"readonly\" transaction.',\n TransactionInactiveError: \"A request was placed against a transaction which is currently not active, or which is finished.\",\n SyntaxError: \"The keypath argument contains an invalid key path\",\n VersionError: \"An attempt was made to open a database using a lower version than the existing version.\"\n};\n\n// Cannot set an error code on an error using the normal setter;\n// this leads to \"Cannot set property code of which has only a getter\"\nconst setErrorCode = (error, value) => {\n Object.defineProperty(error, 'code', {\n value,\n writable: false,\n enumerable: true,\n configurable: false\n });\n};\nexport class AbortError extends DOMException {\n constructor(message = messages.AbortError) {\n super(message, \"AbortError\");\n }\n}\nexport class ConstraintError extends DOMException {\n constructor(message = messages.ConstraintError) {\n super(message, \"ConstraintError\");\n }\n}\nexport class DataCloneError extends DOMException {\n constructor(message = messages.DataCloneError) {\n super(message, \"DataCloneError\");\n }\n}\nexport class DataError extends DOMException {\n constructor(message = messages.DataError) {\n super(message, \"DataError\");\n setErrorCode(this, 0);\n }\n}\nexport class InvalidAccessError extends DOMException {\n constructor(message = messages.InvalidAccessError) {\n super(message, \"InvalidAccessError\");\n }\n}\nexport class InvalidStateError extends DOMException {\n constructor(message = messages.InvalidStateError) {\n super(message, \"InvalidStateError\");\n setErrorCode(this, 11);\n }\n}\nexport class NotFoundError extends DOMException {\n constructor(message = messages.NotFoundError) {\n super(message, \"NotFoundError\");\n }\n}\nexport class ReadOnlyError extends DOMException {\n constructor(message = messages.ReadOnlyError) {\n super(message, \"ReadOnlyError\");\n }\n}\nexport class SyntaxError extends DOMException {\n constructor(message = messages.VersionError) {\n super(message, \"SyntaxError\");\n setErrorCode(this, 12);\n }\n}\nexport class TransactionInactiveError extends DOMException {\n constructor(message = messages.TransactionInactiveError) {\n super(message, \"TransactionInactiveError\");\n setErrorCode(this, 0);\n }\n}\nexport class VersionError extends DOMException {\n constructor(message = messages.VersionError) {\n super(message, \"VersionError\");\n }\n}", "import { DataError } from \"./errors.js\";\nimport valueToKeyWithoutThrowing, { INVALID_TYPE, INVALID_VALUE } from \"./valueToKeyWithoutThrowing.js\";\n// https://w3c.github.io/IndexedDB/#convert-value-to-key\n// Plus throwing a DataError for invalid value/invalid key, which is commonly done\n// in lots of IndexedDB operations\nconst valueToKey = (input, seen) => {\n const result = valueToKeyWithoutThrowing(input, seen);\n if (result === INVALID_VALUE || result === INVALID_TYPE) {\n // If key is \"invalid value\" or \"invalid type\", throw a \"DataError\" DOMException\n throw new DataError();\n }\n return result;\n};\nexport default valueToKey;", "import isSharedArrayBuffer from \"./isSharedArrayBuffer.js\";\nexport const INVALID_TYPE = Symbol(\"INVALID_TYPE\");\nexport const INVALID_VALUE = Symbol(\"INVALID_VALUE\");\n\n// https://w3c.github.io/IndexedDB/#convert-value-to-key\n// The \"without exceptions\" version is because we typically want to throw exceptions (DataError) but not for\n// the \"is potentially valid key range\" routine.\nconst valueToKeyWithoutThrowing = (input, seen) => {\n if (typeof input === \"number\") {\n if (isNaN(input)) {\n // If input is NaN then return \"invalid value\".\n return INVALID_VALUE;\n }\n return input;\n } else if (Object.prototype.toString.call(input) === \"[object Date]\") {\n const ms = input.valueOf();\n if (isNaN(ms)) {\n // If ms is NaN then return \"invalid value\".\n return INVALID_VALUE;\n }\n return new Date(ms);\n } else if (typeof input === \"string\") {\n return input;\n } else if (\n // https://w3c.github.io/IndexedDB/#ref-for-dfn-buffer-source-type\n input instanceof ArrayBuffer || isSharedArrayBuffer(input) || typeof ArrayBuffer !== \"undefined\" && ArrayBuffer.isView && ArrayBuffer.isView(input)) {\n // We can't consistently test detachedness, so instead we check if byteLength === 0\n // This isn't foolproof, but there's no perfect way to detect if Uint8Arrays or\n // SharedArrayBuffers are detached\n if (\"detached\" in input ? input.detached : input.byteLength === 0) {\n // If input is detached then return \"invalid value\".\n return INVALID_VALUE;\n }\n let arrayBuffer;\n let offset = 0;\n let length = 0;\n if (input instanceof ArrayBuffer || isSharedArrayBuffer(input)) {\n arrayBuffer = input;\n length = input.byteLength;\n } else {\n arrayBuffer = input.buffer;\n offset = input.byteOffset;\n length = input.byteLength;\n }\n return arrayBuffer.slice(offset, offset + length);\n } else if (Array.isArray(input)) {\n if (seen === undefined) {\n seen = new Set();\n } else if (seen.has(input)) {\n // If seen contains input, then return \"invalid value\".\n return INVALID_VALUE;\n }\n seen.add(input);\n\n // This algorithm is tricky to account for `bindings-inject-keys-bypass.any.js`. We _should_ return early when\n // encountering an invalid key/type, but we also need to avoid triggering `Object.prototype['10']` if it's been\n // overridden. One simple way to do this (and which doesn't rely on sparse arrays or other exotic solutions that\n // could cause de-opts) is to use `Array.from()` with a mapper function, which does not trigger the prototype\n // setter [1]. It does prevent an early return, but we can at least short-circuit inside the mapper function\n // (which isn't strictly necessary to pass the WPTs, but is closer to the spec).\n // [1]: See https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.from, specifically\n // the chain CreateDataPropertyOrThrow -> CreateDataProperty -> DefineOwnProperty which defines\n // the array element as an \"own\" property.\n let hasInvalid = false;\n const keys = Array.from({\n length: input.length\n }, (_, i) => {\n if (hasInvalid) {\n return;\n }\n const hop = Object.hasOwn(input, i);\n if (!hop) {\n // If hop is false, return \"invalid value\".\n hasInvalid = true;\n return;\n }\n const entry = input[i];\n const key = valueToKeyWithoutThrowing(entry, seen);\n // If key is \"invalid value\" or \"invalid type\" abort these steps and return \"invalid value\".\n if (key === INVALID_VALUE || key === INVALID_TYPE) {\n hasInvalid = true;\n return;\n }\n return key;\n });\n if (hasInvalid) {\n return INVALID_VALUE;\n }\n return keys;\n } else {\n // Otherwise: Return \"invalid type\".\n return INVALID_TYPE;\n }\n};\nexport default valueToKeyWithoutThrowing;", "export default function isSharedArrayBuffer(input) {\n return typeof SharedArrayBuffer !== \"undefined\" && input instanceof SharedArrayBuffer;\n}", "import valueToKey from \"./valueToKey.js\";\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-extracting-a-key-from-a-value-using-a-key-path\nconst extractKey = (keyPath, value) => {\n if (Array.isArray(keyPath)) {\n const result = [];\n for (let item of keyPath) {\n // This doesn't make sense to me based on the spec, but it is needed to pass the W3C KeyPath tests (see same\n // comment in validateKeyPath)\n if (item !== undefined && item !== null && typeof item !== \"string\" && item.toString) {\n item = item.toString();\n }\n const key = extractKey(item, value).key;\n result.push(valueToKey(key));\n }\n return {\n type: \"found\",\n key: result\n };\n }\n if (keyPath === \"\") {\n return {\n type: \"found\",\n key: value\n };\n }\n let remainingKeyPath = keyPath;\n let object = value;\n while (remainingKeyPath !== null) {\n let identifier;\n const i = remainingKeyPath.indexOf(\".\");\n if (i >= 0) {\n identifier = remainingKeyPath.slice(0, i);\n remainingKeyPath = remainingKeyPath.slice(i + 1);\n } else {\n identifier = remainingKeyPath;\n remainingKeyPath = null;\n }\n\n // special cases: https://w3c.github.io/IndexedDB/#evaluate-a-key-path-on-a-value\n 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;\n if (!isSpecialIdentifier && (typeof object !== \"object\" || object === null || !Object.hasOwn(object, identifier))) {\n return {\n type: \"notFound\"\n };\n }\n object = object[identifier];\n }\n return {\n type: \"found\",\n key: object\n };\n};\nexport default extractKey;", "// https://w3c.github.io/IndexedDB/#clone-value\n// Note that we only need to call this during insertions because the spec does not expect any cloning during retrieval,\n// only `StructuredDeserialize()` (e.g. see [1]). This is also only required for values, not keys, since keys do not\n// require cloning during insertion (e.g. see [2]).\n// [1]: https://w3c.github.io/IndexedDB/#retrieve-multiple-items-from-an-object-store\n// [2]: https://w3c.github.io/IndexedDB/#add-or-put\nexport function cloneValueForInsertion(value, transaction) {\n // Assert: transaction\u2019s state is active.\n if (transaction._state !== \"active\") {\n throw new Error(\"Assert: transaction state is active\");\n }\n\n // Set transaction\u2019s state to inactive.\n transaction._state = \"inactive\";\n try {\n // Let serialized be StructuredSerializeForStorage(value).\n // Let clone be ? StructuredDeserialize(serialized, targetRealm).\n // Return clone.\n return structuredClone(value);\n } finally {\n // Set transaction\u2019s state to active.\n transaction._state = \"active\";\n }\n}", "import FDBCursor from \"./FDBCursor.js\";\nclass FDBCursorWithValue extends FDBCursor {\n value = undefined;\n constructor(source, range, direction, request) {\n super(source, range, direction, request);\n }\n get [Symbol.toStringTag]() {\n return \"IDBCursorWithValue\";\n }\n}\nexport default FDBCursorWithValue;", "import FDBCursor from \"./FDBCursor.js\";\nimport FDBCursorWithValue from \"./FDBCursorWithValue.js\";\nimport FDBKeyRange from \"./FDBKeyRange.js\";\nimport FDBRequest from \"./FDBRequest.js\";\nimport { ConstraintError, InvalidStateError, TransactionInactiveError } from \"./lib/errors.js\";\nimport FakeDOMStringList from \"./lib/FakeDOMStringList.js\";\nimport valueToKey from \"./lib/valueToKey.js\";\nimport valueToKeyRange from \"./lib/valueToKeyRange.js\";\nimport { getKeyPath } from \"./lib/getKeyPath.js\";\nimport extractGetAllOptions from \"./lib/extractGetAllOptions.js\";\nimport enforceRange from \"./lib/enforceRange.js\";\nconst confirmActiveTransaction = index => {\n if (index._rawIndex.deleted || index.objectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n if (index.objectStore.transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n};\n\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#idl-def-IDBIndex\nclass FDBIndex {\n constructor(objectStore, rawIndex) {\n this._rawIndex = rawIndex;\n this._name = rawIndex.name;\n this.objectStore = objectStore;\n this.keyPath = getKeyPath(rawIndex.keyPath);\n this.multiEntry = rawIndex.multiEntry;\n this.unique = rawIndex.unique;\n }\n get name() {\n return this._name;\n }\n\n // https://w3c.github.io/IndexedDB/#dom-idbindex-name\n set name(name) {\n const transaction = this.objectStore.transaction;\n if (!transaction.db._runningVersionchangeTransaction) {\n throw transaction._state === \"active\" ? new InvalidStateError() : new TransactionInactiveError();\n }\n if (transaction._state !== \"active\") {\n throw new TransactionInactiveError();\n }\n if (this._rawIndex.deleted || this.objectStore._rawObjectStore.deleted) {\n throw new InvalidStateError();\n }\n name = String(name);\n if (name === this._name) {\n return;\n }\n if (this.objectStore.indexNames.contains(name)) {\n throw new ConstraintError();\n }\n const oldName = this._name;\n const oldIndexNames = [...this.objectStore.indexNames];\n this._name = name;\n this._rawIndex.name = name;\n this.objectStore._indexesCache.delete(oldName);\n this.objectStore._indexesCache.set(name, this);\n this.objectStore._rawObjectStore.rawIndexes.delete(oldName);\n this.objectStore._rawObjectStore.rawIndexes.set(name, this._rawIndex);\n this.objectStore.indexNames = new FakeDOMStringList(...Array.from(this.objectStore._rawObjectStore.rawIndexes.keys()).filter(indexName => {\n const index = this.objectStore._rawObjectStore.rawIndexes.get(indexName);\n return index && !index.deleted;\n }).sort());\n\n // https://www.w3.org/TR/IndexedDB/#abort-an-upgrade-transaction - \"If handle\u2019s index was not newly created during transaction, set handle\u2019s name to its index\u2019s name.\"\n if (!this.objectStore.transaction._createdIndexes.has(this._rawIndex)) {\n transaction._rollbackLog.push(() => {\n this._name = oldName;\n this._rawIndex.name = oldName;\n this.objectStore._indexesCache.delete(name);\n this.objectStore._indexesCache.set(oldName, this);\n this.objectStore._rawObjectStore.rawIndexes.delete(name);\n this.objectStore._rawObjectStore.rawIndexes.set(oldName, this._rawIndex);\n this.objectStore.indexNames = new FakeDOMStringList(...oldIndexNames);\n });\n }\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-openCursor-IDBRequest-any-range-IDBCursorDirection-direction\n openCursor(range, direction) {\n confirmActiveTransaction(this);\n if (range === null) {\n range = undefined;\n }\n if (range !== undefined && !(range instanceof FDBKeyRange)) {\n range = FDBKeyRange.only(valueToKey(range));\n }\n const request = new FDBRequest();\n request.source = this;\n request.transaction = this.objectStore.transaction;\n const cursor = new FDBCursorWithValue(this, range, direction, request);\n return this.objectStore.transaction._execRequestAsync({\n operation: cursor._iterate.bind(cursor),\n request,\n source: this\n });\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-openKeyCursor-IDBRequest-any-range-IDBCursorDirection-direction\n openKeyCursor(range, direction) {\n confirmActiveTransaction(this);\n if (range === null) {\n range = undefined;\n }\n if (range !== undefined && !(range instanceof FDBKeyRange)) {\n range = FDBKeyRange.only(valueToKey(range));\n }\n const request = new FDBRequest();\n request.source = this;\n request.transaction = this.objectStore.transaction;\n const cursor = new FDBCursor(this, range, direction, request, true);\n return this.objectStore.transaction._execRequestAsync({\n operation: cursor._iterate.bind(cursor),\n request,\n source: this\n });\n }\n get(key) {\n confirmActiveTransaction(this);\n if (!(key instanceof FDBKeyRange)) {\n key = valueToKey(key);\n }\n return this.objectStore.transaction._execRequestAsync({\n operation: this._rawIndex.getValue.bind(this._rawIndex, key),\n source: this\n });\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbindex-getall\n getAll(queryOrOptions, count) {\n const options = extractGetAllOptions(queryOrOptions, count, arguments.length);\n confirmActiveTransaction(this);\n const range = valueToKeyRange(options.query);\n return this.objectStore.transaction._execRequestAsync({\n operation: this._rawIndex.getAllValues.bind(this._rawIndex, range, options.count, options.direction),\n source: this\n });\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-getKey-IDBRequest-any-key\n getKey(key) {\n confirmActiveTransaction(this);\n if (!(key instanceof FDBKeyRange)) {\n key = valueToKey(key);\n }\n return this.objectStore.transaction._execRequestAsync({\n operation: this._rawIndex.getKey.bind(this._rawIndex, key),\n source: this\n });\n }\n\n // http://w3c.github.io/IndexedDB/#dom-idbindex-getallkeys\n getAllKeys(queryOrOptions, count) {\n const options = extractGetAllOptions(queryOrOptions, count, arguments.length);\n confirmActiveTransaction(this);\n const range = valueToKeyRange(options.query);\n return this.objectStore.transaction._execRequestAsync({\n operation: this._rawIndex.getAllKeys.bind(this._rawIndex, range, options.count, options.direction),\n source: this\n });\n }\n\n // https://www.w3.org/TR/IndexedDB/#dom-idbobjectstore-getallrecords\n getAllRecords(options) {\n let query;\n let count;\n let direction;\n if (options !== undefined) {\n if (options.query !== undefined) {\n query = options.query;\n }\n if (options.count !== undefined) {\n count = enforceRange(options.count, \"unsigned long\");\n }\n if (options.direction !== undefined) {\n direction = options.direction;\n }\n }\n confirmActiveTransaction(this);\n const range = valueToKeyRange(query);\n return this.objectStore.transaction._execRequestAsync({\n operation: this._rawIndex.getAllRecords.bind(this._rawIndex, range, count, direction),\n source: this\n });\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#widl-IDBIndex-count-IDBRequest-any-key\n count(key) {\n confirmActiveTransaction(this);\n if (key === null) {\n key = undefined;\n }\n if (key !== undefined && !(key instanceof FDBKeyRange)) {\n key = FDBKeyRange.only(valueToKey(key));\n }\n return this.objectStore.transaction._execRequestAsync({\n operation: () => {\n return this._rawIndex.count(key);\n },\n source: this\n });\n }\n get [Symbol.toStringTag]() {\n return \"IDBIndex\";\n }\n}\nexport default FDBIndex;", "import { InvalidStateError } from \"./lib/errors.js\";\nimport FakeEventTarget from \"./lib/FakeEventTarget.js\";\nclass FDBRequest extends FakeEventTarget {\n _result = null;\n _error = null;\n source = null;\n transaction = null;\n readyState = \"pending\";\n onsuccess = null;\n onerror = null;\n get error() {\n if (this.readyState === \"pending\") {\n throw new InvalidStateError();\n }\n return this._error;\n }\n set error(value) {\n this._error = value;\n }\n get result() {\n if (this.readyState === \"pending\") {\n throw new InvalidStateError();\n }\n return this._result;\n }\n set result(value) {\n this._result = value;\n }\n get [Symbol.toStringTag]() {\n return \"IDBRequest\";\n }\n}\nexport default FDBRequest;", "import { InvalidStateError } from \"./errors.js\";\nconst stopped = (event, listener) => {\n return event.immediatePropagationStopped || event.eventPhase === event.CAPTURING_PHASE && listener.capture === false || event.eventPhase === event.BUBBLING_PHASE && listener.capture === true;\n};\n\n// http://www.w3.org/TR/dom/#concept-event-listener-invoke\nconst invokeEventListeners = (event, obj) => {\n event.currentTarget = obj;\n const errors = [];\n const invoke = callbackOrObject => {\n try {\n const callback = typeof callbackOrObject === \"function\" ? callbackOrObject : callbackOrObject.handleEvent;\n // @ts-expect-error EventCallback's types are not quite right here\n callback.call(event.currentTarget, event);\n } catch (err) {\n errors.push(err);\n }\n };\n\n // The callback might cause obj.listeners to mutate as we traverse it.\n // Take a copy of the array so that nothing sneaks in and we don't lose\n // our place.\n for (const listener of obj.listeners.slice()) {\n if (event.type !== listener.type || stopped(event, listener)) {\n continue;\n }\n invoke(listener.callback);\n }\n const typeToProp = {\n abort: \"onabort\",\n blocked: \"onblocked\",\n close: \"onclose\",\n complete: \"oncomplete\",\n error: \"onerror\",\n success: \"onsuccess\",\n upgradeneeded: \"onupgradeneeded\",\n versionchange: \"onversionchange\"\n };\n const prop = typeToProp[event.type];\n if (prop === undefined) {\n throw new Error(`Unknown event type: \"${event.type}\"`);\n }\n const callback = event.currentTarget[prop];\n if (callback) {\n const listener = {\n callback,\n capture: false,\n type: event.type\n };\n if (!stopped(event, listener)) {\n invoke(listener.callback);\n }\n }\n\n // we want to execute all listeners before deciding if we want to throw, because there could be an error thrown by\n // the first listener, but the second should still be invoked\n if (errors.length) {\n throw new AggregateError(errors);\n }\n};\nclass FakeEventTarget {\n listeners = [];\n\n // These will be overridden in individual subclasses and made not readonly\n\n addEventListener(type, callback, options) {\n const capture = !!(typeof options === \"object\" && options ? options.capture : options);\n this.listeners.push({\n callback,\n capture,\n type\n });\n }\n removeEventListener(type, callback, options) {\n const capture = !!(typeof options === \"object\" && options ? options.capture : options);\n const i = this.listeners.findIndex(listener => {\n return listener.type === type && listener.callback === callback && listener.capture === capture;\n });\n this.listeners.splice(i, 1);\n }\n\n // http://www.w3.org/TR/dom/#dispatching-events\n dispatchEvent(event) {\n if (event.dispatched || !event.initialized) {\n throw new InvalidStateError(\"The object is in an invalid state.\");\n }\n event.isTrusted = false;\n event.dispatched = true;\n event.target = this;\n // NOT SURE WHEN THIS SHOULD BE SET event.eventPath = [];\n\n event.eventPhase = event.CAPTURING_PHASE;\n for (const obj of event.eventPath) {\n if (!event.propagationStopped) {\n invokeEventListeners(event, obj);\n }\n }\n event.eventPhase = event.AT_TARGET;\n if (!event.propagationStopped) {\n invokeEventListeners(event, event.target);\n }\n if (event.bubbles) {\n event.eventPath.reverse();\n event.eventPhase = event.BUBBLING_PHASE;\n for (const obj of event.eventPath) {\n if (!event.propagationStopped) {\n invokeEventListeners(event, obj);\n }\n }\n }\n event.dispatched = false;\n event.eventPhase = event.NONE;\n event.currentTarget = null;\n if (event.canceled) {\n return false;\n }\n return true;\n }\n}\nexport default FakeEventTarget;", "class FakeDOMStringList {\n constructor(...values) {\n this._values = values;\n for (let i = 0; i < values.length; i++) {\n this[i] = values[i];\n }\n }\n contains(value) {\n return this._values.includes(value);\n }\n item(i) {\n if (i < 0 || i >= this._values.length) {\n return null;\n }\n return this._values[i];\n }\n get length() {\n return this._values.length;\n }\n [Symbol.iterator]() {\n return this._values[Symbol.iterator]();\n }\n\n // Handled by proxy\n\n // 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.\n _push(...values) {\n for (let i = 0; i < values.length; i++) {\n this[this._values.length + i] = values[i];\n }\n this._values.push(...values);\n }\n _sort(...values) {\n this._values.sort(...values);\n for (let i = 0; i < this._values.length; i++) {\n this[i] = this._values[i];\n }\n return this;\n }\n}\nexport default FakeDOMStringList;", "import FDBKeyRange from \"../FDBKeyRange.js\";\nimport { DataError } from \"./errors.js\";\nimport valueToKey from \"./valueToKey.js\";\n\n// http://w3c.github.io/IndexedDB/#convert-a-value-to-a-key-range\nconst valueToKeyRange = (value, nullDisallowedFlag = false) => {\n if (value instanceof FDBKeyRange) {\n return value;\n }\n if (value === null || value === undefined) {\n if (nullDisallowedFlag) {\n throw new DataError();\n }\n return new FDBKeyRange(undefined, undefined, false, false);\n }\n const key = valueToKey(value);\n return FDBKeyRange.only(key);\n};\nexport default valueToKeyRange;", "// Keys provided as functions or arrays or objects need to be stringified\nconst convertKey = key => typeof key === 'object' && key ? key + '' : key;\n\n// https://www.w3.org/TR/IndexedDB/#dom-idbobjectstore-keypath\nexport function getKeyPath(keyPath) {\n // It's important to clone the Array here because of the WPT test:\n // \"Different instances are returned from different store instances.\"\n // Also note that the same instance must be returned across multiple gets\n return Array.isArray(keyPath) ? keyPath.map(convertKey) : convertKey(keyPath);\n}", "import isPotentiallyValidKeyRange from \"./isPotentiallyValidKeyRange.js\";\nimport enforceRange from \"./enforceRange.js\";\n// https://www.w3.org/TR/IndexedDB/#create-request-to-retrieve-multiple-items\nconst extractGetAllOptions = (queryOrOptions, count, numArguments) => {\n let query;\n let direction;\n if (queryOrOptions === undefined || queryOrOptions === null || isPotentiallyValidKeyRange(queryOrOptions)) {\n // queryOrOptions is FDBKeyRange | Key | null | undefined\n query = queryOrOptions;\n if (numArguments > 1 && count !== undefined) {\n count = enforceRange(count, \"unsigned long\");\n }\n } else {\n // queryOrOptions is FDBGetAllOptions\n const getAllOptions = queryOrOptions;\n if (getAllOptions.query !== undefined) {\n query = getAllOptions.query;\n }\n if (getAllOptions.count !== undefined) {\n count = enforceRange(getAllOptions.count, \"unsigned long\");\n }\n if (getAllOptions.direction !== undefined) {\n direction = getAllOptions.direction;\n }\n }\n return {\n query,\n count,\n direction\n };\n};\nexport default extractGetAllOptions;", "import FDBKeyRange from \"../FDBKeyRange.js\";\nimport valueToKeyWithoutThrowing, { INVALID_TYPE } from \"./valueToKeyWithoutThrowing.js\";\n\n// https://www.w3.org/TR/IndexedDB/#is-a-potentially-valid-key-range\nconst isPotentiallyValidKeyRange = value => {\n // If value is a key range, return true.\n if (value instanceof FDBKeyRange) {\n return true;\n }\n\n // Let key be the result of converting a value to a key with value.\n const key = valueToKeyWithoutThrowing(value);\n\n // If key is \"invalid type\" return false.\n // Else return true.\n return key !== INVALID_TYPE;\n};\nexport default isPotentiallyValidKeyRange;", "// https://heycam.github.io/webidl/#EnforceRange\n\nconst enforceRange = (num, type) => {\n const min = 0;\n const max = type === \"unsigned long\" ? 4294967295 : 9007199254740991;\n if (isNaN(num) || num < min || num > max) {\n throw new TypeError();\n }\n if (num >= 0) {\n return Math.floor(num);\n }\n};\nexport default enforceRange;", "// http://w3c.github.io/IndexedDB/#check-that-a-key-could-be-injected-into-a-value\nconst canInjectKey = (keyPath, value) => {\n if (Array.isArray(keyPath)) {\n 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.\");\n }\n const identifiers = keyPath.split(\".\");\n if (identifiers.length === 0) {\n throw new Error(\"Assert: identifiers is not empty\");\n }\n identifiers.pop();\n for (const identifier of identifiers) {\n if (typeof value !== \"object\" && !Array.isArray(value)) {\n return false;\n }\n const hop = Object.hasOwn(value, identifier);\n if (!hop) {\n return true;\n }\n value = value[identifier];\n }\n return typeof value === \"object\" || Array.isArray(value);\n};\nexport default canInjectKey;", "import FDBRecord from \"../FDBRecord.js\";\nimport { ConstraintError } from \"./errors.js\";\nimport extractKey from \"./extractKey.js\";\nimport RecordStore from \"./RecordStore.js\";\nimport valueToKey from \"./valueToKey.js\";\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-index\nclass Index {\n deleted = false;\n // Initialized should be used to decide whether to throw an error or abort the versionchange transaction when there is a\n // constraint\n initialized = false;\n constructor(rawObjectStore, name, keyPath, multiEntry, unique) {\n this.rawObjectStore = rawObjectStore;\n this.name = name;\n this.keyPath = keyPath;\n this.multiEntry = multiEntry;\n this.unique = unique;\n this.records = new RecordStore(unique);\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-retrieving-a-value-from-an-index\n getKey(key) {\n const record = this.records.get(key);\n return record !== undefined ? record.value : undefined;\n }\n\n // http://w3c.github.io/IndexedDB/#retrieve-multiple-referenced-values-from-an-index\n getAllKeys(range, count, direction) {\n if (count === undefined || count === 0) {\n count = Infinity;\n }\n const records = [];\n for (const record of this.records.values(range, direction)) {\n records.push(structuredClone(record.value));\n if (records.length >= count) {\n break;\n }\n }\n return records;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#index-referenced-value-retrieval-operation\n getValue(key) {\n const record = this.records.get(key);\n return record !== undefined ? this.rawObjectStore.getValue(record.value) : undefined;\n }\n\n // http://w3c.github.io/IndexedDB/#retrieve-multiple-referenced-values-from-an-index\n getAllValues(range, count, direction) {\n if (count === undefined || count === 0) {\n count = Infinity;\n }\n const records = [];\n for (const record of this.records.values(range, direction)) {\n records.push(this.rawObjectStore.getValue(record.value));\n if (records.length >= count) {\n break;\n }\n }\n return records;\n }\n\n // https://www.w3.org/TR/IndexedDB/#dom-idbindex-getallrecords\n getAllRecords(range, count, direction) {\n if (count === undefined || count === 0) {\n count = Infinity;\n }\n const records = [];\n for (const record of this.records.values(range, direction)) {\n records.push(new FDBRecord(structuredClone(record.key), structuredClone(this.rawObjectStore.getKey(record.value)), this.rawObjectStore.getValue(record.value)));\n if (records.length >= count) {\n break;\n }\n }\n return records;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-storing-a-record-into-an-object-store (step 7)\n storeRecord(newRecord) {\n let indexKey;\n try {\n indexKey = extractKey(this.keyPath, newRecord.value).key;\n } catch (err) {\n if (err.name === \"DataError\") {\n // Invalid key is not an actual error, just means we do not store an entry in this index\n return;\n }\n throw err;\n }\n if (!this.multiEntry || !Array.isArray(indexKey)) {\n try {\n valueToKey(indexKey);\n } catch (e) {\n return;\n }\n } else {\n // remove any elements from index key that are not valid keys and remove any duplicate elements from index\n // key such that only one instance of the duplicate value remains.\n const keep = [];\n for (const part of indexKey) {\n if (keep.indexOf(part) < 0) {\n try {\n keep.push(valueToKey(part));\n } catch (err) {\n /* Do nothing */\n }\n }\n }\n indexKey = keep;\n }\n if (!this.multiEntry || !Array.isArray(indexKey)) {\n if (this.unique) {\n const existingRecord = this.records.get(indexKey);\n if (existingRecord) {\n throw new ConstraintError();\n }\n }\n } else {\n if (this.unique) {\n for (const individualIndexKey of indexKey) {\n const existingRecord = this.records.get(individualIndexKey);\n if (existingRecord) {\n throw new ConstraintError();\n }\n }\n }\n }\n if (!this.multiEntry || !Array.isArray(indexKey)) {\n this.records.put({\n key: indexKey,\n value: newRecord.key\n });\n } else {\n for (const individualIndexKey of indexKey) {\n this.records.put({\n key: individualIndexKey,\n value: newRecord.key\n });\n }\n }\n }\n initialize(transaction) {\n if (this.initialized) {\n throw new Error(\"Index already initialized\");\n }\n transaction._execRequestAsync({\n operation: () => {\n try {\n // Create index based on current value of objectstore\n for (const record of this.rawObjectStore.records.values()) {\n this.storeRecord(record);\n }\n this.initialized = true;\n } catch (err) {\n // console.error(err);\n transaction._abort(err.name);\n }\n },\n source: null\n });\n }\n count(range) {\n let count = 0;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const record of this.records.values(range)) {\n count += 1;\n }\n return count;\n }\n}\nexport default Index;", "class FDBRecord {\n constructor(key, primaryKey, value) {\n this._key = key;\n this._primaryKey = primaryKey;\n this._value = value;\n }\n get key() {\n return this._key;\n }\n set key(_) {\n /* for babel */\n }\n get primaryKey() {\n return this._primaryKey;\n }\n set primaryKey(_) {\n /* for babel */\n }\n get value() {\n return this._value;\n }\n set value(_) {\n /* for babel */\n }\n get [Symbol.toStringTag]() {\n return \"IDBRecord\";\n }\n}\nexport default FDBRecord;", "import FDBKeyRange from \"../FDBKeyRange.js\";\nimport cmp from \"./cmp.js\";\nimport BinarySearchTree from \"./binarySearchTree.js\";\nclass RecordStore {\n constructor(keysAreUnique) {\n this.keysAreUnique = keysAreUnique;\n this.records = new BinarySearchTree(this.keysAreUnique);\n }\n get(key) {\n const range = key instanceof FDBKeyRange ? key : FDBKeyRange.only(key);\n return this.records.getRecords(range).next().value;\n }\n\n /**\n * Put a new record, and return the overwritten record if an overwrite occurred.\n * @param newRecord\n * @param noOverwrite - throw a ConstraintError in case of overwrite\n */\n put(newRecord, noOverwrite = false) {\n return this.records.put(newRecord, noOverwrite);\n }\n delete(key) {\n const range = key instanceof FDBKeyRange ? key : FDBKeyRange.only(key);\n const deletedRecords = [...this.records.getRecords(range)];\n for (const record of deletedRecords) {\n this.records.delete(record);\n }\n return deletedRecords;\n }\n deleteByValue(key) {\n const range = key instanceof FDBKeyRange ? key : FDBKeyRange.only(key);\n const deletedRecords = [];\n for (const record of this.records.getAllRecords()) {\n if (range.includes(record.value)) {\n this.records.delete(record);\n deletedRecords.push(record);\n }\n }\n return deletedRecords;\n }\n clear() {\n const deletedRecords = [...this.records.getAllRecords()];\n this.records = new BinarySearchTree(this.keysAreUnique);\n return deletedRecords;\n }\n values(range, direction = \"next\") {\n const descending = direction === \"prev\" || direction === \"prevunique\";\n const records = range ? this.records.getRecords(range, descending) : this.records.getAllRecords(descending);\n return {\n [Symbol.iterator]: () => {\n const next = () => {\n return records.next();\n };\n if (direction === \"next\" || direction === \"prev\") {\n return {\n next\n };\n }\n\n // For nextunique/prevunique, return an iterator that skips seen values\n // Note that we must return the _lowest_ value regardless of direction:\n // > Iterating with \"prevunique\" visits the same records that \"nextunique\"\n // > visits, but in reverse order.\n // https://w3c.github.io/IndexedDB/#dom-idbcursordirection-prevunique\n if (direction === \"nextunique\") {\n let previousValue = undefined;\n return {\n next: () => {\n let current = next();\n // for nextunique, continue if we already emitted the lowest unique value\n while (!current.done && previousValue !== undefined && cmp(previousValue.key, current.value.key) === 0) {\n current = next();\n }\n previousValue = current.value;\n return current;\n }\n };\n }\n\n // prevunique is a bit more complex due to needing to check the next value, which\n // invokes the iterable, so we need to keep a buffer of one \"lookahead\" result\n let current = next();\n let nextResult = next();\n return {\n next: () => {\n while (!nextResult.done && cmp(current.value.key, nextResult.value.key) === 0) {\n // note we return the _lowest_ possible value, hence set the current\n current = nextResult;\n nextResult = next();\n }\n const result = current;\n current = nextResult;\n nextResult = next();\n return result;\n }\n };\n }\n };\n }\n size() {\n return this.records.size();\n }\n}\nexport default RecordStore;", "import FDBKeyRange from \"../FDBKeyRange.js\";\nimport cmp from \"./cmp.js\";\nimport { ConstraintError } from \"./errors.js\";\n// what fraction of the total number of nodes are allowed to be deleted tombstones?\nconst MAX_TOMBSTONE_FACTOR = 2 / 3;\nconst EVERYTHING_KEY_RANGE = new FDBKeyRange(undefined, undefined, false, false);\n/**\n * Simple red-black binary tree with some aspects of a scapegoat tree. The main goal here is simplicity of\n * implementation, tailored to the needs of IndexedDB.\n *\n * Basically this implements a [red-black tree][1] for insertions, but uses the much simpler [scapegoat tree][2]\n * strategy for deletions. Deletions are a simple matter of rebuilding the tree from scratch if more than 2/3 of the\n * tree is full of deleted (tombstone) markers.\n *\n * [1]: https://en.wikipedia.org/wiki/Red%E2%80%93black_tree\n * [2]: https://en.wikipedia.org/wiki/Scapegoat_tree\n */\nexport default class BinarySearchTree {\n _numTombstones = 0;\n _numNodes = 0;\n\n /**\n *\n * @param keysAreUnique - whether keys can be unique, and thus whether we cn skip checking `record.value` when\n * comparing. This is basically used to distinguish ObjectStores (where the value is the entire object, not used\n * as a key) from non-unique Indexes (where both the key and the value are meaningful keys used for sorting)\n */\n constructor(keysAreUnique) {\n this._keysAreUnique = !!keysAreUnique;\n }\n size() {\n return this._numNodes - this._numTombstones;\n }\n get(record) {\n return this._getByComparator(this._root, otherRecord => this._compare(record, otherRecord));\n }\n contains(record) {\n return !!this.get(record);\n }\n _compare(a, b) {\n const keyComparison = cmp(a.key, b.key);\n if (keyComparison !== 0) {\n return keyComparison;\n }\n // if keys are unique, then we can (and must) avoid comparing the values, since they may be non-comparable\n // (e.g. in the case of an ObjectStore, they are record objects)\n return this._keysAreUnique ? 0 : cmp(a.value, b.value);\n }\n _getByComparator(node, comparator) {\n let current = node;\n while (current) {\n const comparison = comparator(current.record);\n if (comparison < 0) {\n current = current.left;\n } else if (comparison > 0) {\n current = current.right;\n } else {\n return current.record;\n }\n }\n }\n\n /**\n * Put a new record, and return the overwritten record if an overwrite occurred.\n * @param record\n * @param noOverwrite - throw a ConstraintError in case of overwrite\n */\n put(record, noOverwrite = false) {\n if (!this._root) {\n this._root = {\n record,\n left: undefined,\n right: undefined,\n parent: undefined,\n deleted: false,\n // the root is always black in a red-black tree\n red: false\n };\n this._numNodes++;\n return;\n }\n return this._put(this._root, record, noOverwrite);\n }\n _put(node, record, noOverwrite) {\n const comparison = this._compare(record, node.record);\n if (comparison < 0) {\n if (node.left) {\n return this._put(node.left, record, noOverwrite);\n } else {\n node.left = {\n record,\n left: undefined,\n right: undefined,\n parent: node,\n deleted: false,\n red: true\n };\n this._onNewNodeInserted(node.left);\n }\n } else if (comparison > 0) {\n if (node.right) {\n return this._put(node.right, record, noOverwrite);\n } else {\n node.right = {\n record,\n left: undefined,\n right: undefined,\n parent: node,\n deleted: false,\n red: true\n };\n this._onNewNodeInserted(node.right);\n }\n } else if (node.deleted) {\n // undelete\n node.deleted = false;\n node.record = record;\n this._numTombstones--;\n } else if (noOverwrite) {\n // replace not allowed in case of noOverwrite\n throw new ConstraintError();\n } else {\n // replace, don't add, so no need to increment. return the overwritten record\n const overwrittenRecord = node.record;\n node.record = record;\n return overwrittenRecord;\n }\n }\n delete(record) {\n if (!this._root) {\n return;\n }\n this._delete(this._root, record);\n if (this._numTombstones > this._numNodes * MAX_TOMBSTONE_FACTOR) {\n // to keep the implementation simple, and because most users of fake-indexeddb are not going to be deleting\n // a lot of nodes, just rebuild the whole tree (defragment) if the tree is too full of tombstones,\n // as inspired by the scapegoat tree: https://en.wikipedia.org/wiki/Scapegoat_tree#Deletion\n const records = [...this.getAllRecords()];\n this._root = this._rebuild(records, undefined, false);\n this._numNodes = records.length;\n this._numTombstones = 0;\n }\n }\n _delete(node, record) {\n if (!node) {\n return;\n }\n const comparison = this._compare(record, node.record);\n if (comparison < 0) {\n this._delete(node.left, record);\n } else if (comparison > 0) {\n this._delete(node.right, record);\n } else if (!node.deleted) {\n this._numTombstones++;\n node.deleted = true;\n }\n }\n *getAllRecords(descending = false) {\n yield* this.getRecords(EVERYTHING_KEY_RANGE, descending);\n }\n *getRecords(keyRange, descending = false) {\n yield* this._getRecordsForNode(this._root, keyRange, descending);\n }\n *_getRecordsForNode(node, keyRange, descending = false) {\n if (!node) {\n return;\n }\n yield* this._findRecords(node, keyRange, descending);\n }\n *_findRecords(node, keyRange, descending = false) {\n const {\n lower,\n upper,\n lowerOpen,\n upperOpen\n } = keyRange;\n const {\n record: {\n key\n }\n } = node;\n const lowerComparison = lower === undefined ? -1 : cmp(lower, key);\n const upperComparison = upper === undefined ? 1 : cmp(upper, key);\n\n // if keys are non-unique then we need to go left/right even for equality\n // else we can just do LT/GT rather than LTE/GTE as a slight optimization\n const moreLeft = this._keysAreUnique ? lowerComparison < 0 : lowerComparison <= 0;\n const moreRight = this._keysAreUnique ? upperComparison > 0 : upperComparison >= 0;\n\n // in descending mode we start with rightmost nodes, else leftmost\n const moreStart = descending ? moreRight : moreLeft;\n const moreEnd = descending ? moreLeft : moreRight;\n const start = descending ? \"right\" : \"left\";\n const end = descending ? \"left\" : \"right\";\n\n // does the current record actually match the key range?\n const lowerMatches = lowerOpen ? lowerComparison < 0 : lowerComparison <= 0;\n const upperMatches = upperOpen ? upperComparison > 0 : upperComparison >= 0;\n if (moreStart && node[start]) {\n yield* this._findRecords(node[start], keyRange, descending);\n }\n if (lowerMatches && upperMatches && !node.deleted) {\n yield node.record;\n }\n if (moreEnd && node[end]) {\n yield* this._findRecords(node[end], keyRange, descending);\n }\n }\n _onNewNodeInserted(newNode) {\n this._numNodes++;\n this._rebalanceTree(newNode);\n }\n\n // based on https://en.wikipedia.org/wiki/Red%E2%80%93black_tree#Insertion\n _rebalanceTree(node) {\n let parent = node.parent;\n do {\n // case 1 - no red/black violation\n if (!parent.red) {\n return;\n }\n const grandparent = parent.parent;\n if (!grandparent) {\n // case #4 - parent is the red root, node is also red, so parent goes black\n parent.red = false;\n return;\n }\n const parentIsRightChild = parent === grandparent.right;\n const uncle = parentIsRightChild ? grandparent.left : grandparent.right;\n if (!uncle || !uncle.red) {\n if (node === (parentIsRightChild ? parent.left : parent.right)) {\n // case #5 - parent is red but uncle is black\n this._rotateSubtree(parent, parentIsRightChild);\n node = parent;\n parent = parentIsRightChild ? grandparent.right : grandparent.left;\n }\n\n // case #6 - node is \"outer\" grandchild of grandparent\n this._rotateSubtree(grandparent, !parentIsRightChild);\n parent.red = false;\n grandparent.red = true;\n return;\n }\n\n // case #2 - parent and uncle are both red, so both of them go black and grandparent goes red\n parent.red = false;\n uncle.red = false;\n grandparent.red = true;\n node = grandparent;\n } while (node.parent ? parent = node.parent : false);\n\n // case #3 - current node is the root, all constraints satisfied\n }\n\n // based on https://en.wikipedia.org/wiki/Red%E2%80%93black_tree#Implementation\n _rotateSubtree(node, right) {\n const parent = node.parent;\n const newRoot = right ? node.left : node.right; // opposite direction\n const newChild = right ? newRoot.right : newRoot.left;\n node[right ? \"left\" : \"right\"] = newChild;\n if (newChild) {\n newChild.parent = node;\n }\n newRoot[right ? \"right\" : \"left\"] = node;\n newRoot.parent = parent;\n node.parent = newRoot;\n if (parent) {\n parent[node === parent.right ? \"right\" : \"left\"] = newRoot;\n } else {\n this._root = newRoot;\n }\n return newRoot;\n }\n\n // rebuild the whole tree from scratch, used to avoid too many deletion tombstones accumulating\n _rebuild(records, parent, red) {\n const {\n length\n } = records;\n if (!length) {\n return undefined;\n }\n const mid = length >>> 1; // like Math.floor(records.length / 2) but fast\n\n const node = {\n record: records[mid],\n left: undefined,\n right: undefined,\n parent,\n deleted: false,\n red\n };\n const left = this._rebuild(records.slice(0, mid), node, !red);\n const right = this._rebuild(records.slice(mid + 1), node, !red);\n node.left = left;\n node.right = right;\n return node;\n }\n}", "import { SyntaxError } from \"./errors.js\";\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-valid-key-path\nconst validateKeyPath = (keyPath, parent) => {\n // This doesn't make sense to me based on the spec, but it is needed to pass the W3C KeyPath tests (see same\n // comment in extractKey)\n if (keyPath !== undefined && keyPath !== null && typeof keyPath !== \"string\" && keyPath.toString && (parent === \"array\" || !Array.isArray(keyPath))) {\n keyPath = keyPath.toString();\n }\n if (typeof keyPath === \"string\") {\n if (keyPath === \"\" && parent !== \"string\") {\n return;\n }\n try {\n // https://mathiasbynens.be/demo/javascript-identifier-regex for ECMAScript 5.1 / Unicode v7.0.0, with\n // reserved words at beginning removed\n const validIdentifierRegex =\n // eslint-disable-next-line no-misleading-character-class\n /^(?:[$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])*$/;\n if (keyPath.length >= 1 && validIdentifierRegex.test(keyPath)) {\n return;\n }\n } catch (err) {\n throw new SyntaxError(err.message);\n }\n if (keyPath.indexOf(\" \") >= 0) {\n throw new SyntaxError(\"The keypath argument contains an invalid key path (no spaces allowed).\");\n }\n }\n if (Array.isArray(keyPath) && keyPath.length > 0) {\n if (parent) {\n // No nested arrays\n throw new SyntaxError(\"The keypath argument contains an invalid key path (nested arrays).\");\n }\n for (const part of keyPath) {\n validateKeyPath(part, \"array\");\n }\n return;\n } else if (typeof keyPath === \"string\" && keyPath.indexOf(\".\") >= 0) {\n keyPath = keyPath.split(\".\");\n for (const part of keyPath) {\n validateKeyPath(part, \"string\");\n }\n return;\n }\n throw new SyntaxError();\n};\nexport default validateKeyPath;", "class Event {\n eventPath = [];\n NONE = 0;\n CAPTURING_PHASE = 1;\n AT_TARGET = 2;\n BUBBLING_PHASE = 3;\n\n // Flags\n propagationStopped = false;\n immediatePropagationStopped = false;\n canceled = false;\n initialized = true;\n dispatched = false;\n target = null;\n currentTarget = null;\n eventPhase = 0;\n defaultPrevented = false;\n isTrusted = false;\n timeStamp = Date.now();\n constructor(type, eventInitDict = {}) {\n this.type = type;\n this.bubbles = eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;\n this.cancelable = eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;\n }\n preventDefault() {\n if (this.cancelable) {\n this.canceled = true;\n }\n }\n stopPropagation() {\n this.propagationStopped = true;\n }\n stopImmediatePropagation() {\n this.propagationStopped = true;\n this.immediatePropagationStopped = true;\n }\n}\nexport default Event;", "// When running within Node.js (including jsdom), we want to use setImmediate\n// (which runs immediately) rather than setTimeout (which enforces a minimum\n// delay of 1ms, and on Windows only has a resolution of 15ms or so). jsdom\n// doesn't provide setImmediate (to better match the browser environment) and\n// sandboxes scripts, but its sandbox is by necessity imperfect, so we can break\n// out of it:\n//\n// - https://github.com/jsdom/jsdom#executing-scripts\n// - https://github.com/jsdom/jsdom/issues/2729\n// - https://github.com/scala-js/scala-js-macrotask-executor/pull/17\nfunction getSetImmediateFromJsdom() {\n if (typeof navigator !== \"undefined\" && /jsdom/.test(navigator.userAgent)) {\n const outerRealmFunctionConstructor = Node.constructor;\n return new outerRealmFunctionConstructor(\"return setImmediate\")();\n } else {\n return undefined;\n }\n}\n\n// waiting on this PR for typescript types: https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1249\n\n// 'postTask' runs right after microtasks, so equivalent to setTimeout but without the 4ms clamping.\n// Using the default priority of 'user-visible' to avoid blocking input while still running fairly quickly.\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities\nconst schedulerPostTask = typeof scheduler !== \"undefined\" && (fn => scheduler.postTask(fn));\n\n// fallback for environments that don't support any of the above\nconst doSetTimeout = fn => setTimeout(fn, 0);\n\n// Schedules a task to run later. Use Node.js's setImmediate if available and\n// setTimeout otherwise. Note that options like process.nextTick or\n// queueMicrotask will likely not work: IndexedDB semantics require that\n// transactions are marked as not active when the event loop runs. The next\n// tick queue and microtask queue run within the current event loop macrotask,\n// so they'd process database operations too quickly.\nexport const queueTask = fn => {\n const setImmediate = globalThis.setImmediate || getSetImmediateFromJsdom() || schedulerPostTask || doSetTimeout;\n setImmediate(fn);\n};", "import FDBRecord from \"../FDBRecord.js\";\nimport { DataError } from \"./errors.js\";\nimport extractKey from \"./extractKey.js\";\nimport KeyGenerator from \"./KeyGenerator.js\";\nimport RecordStore from \"./RecordStore.js\";\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-object-store\nclass ObjectStore {\n deleted = false;\n records = new RecordStore(true);\n rawIndexes = new Map();\n constructor(rawDatabase, name, keyPath, autoIncrement) {\n this.rawDatabase = rawDatabase;\n this.keyGenerator = autoIncrement === true ? new KeyGenerator() : null;\n this.deleted = false;\n this.name = name;\n this.keyPath = keyPath;\n this.autoIncrement = autoIncrement;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-retrieving-a-value-from-an-object-store\n getKey(key) {\n const record = this.records.get(key);\n return record !== undefined ? structuredClone(record.key) : undefined;\n }\n\n // http://w3c.github.io/IndexedDB/#retrieve-multiple-keys-from-an-object-store\n getAllKeys(range, count, direction) {\n if (count === undefined || count === 0) {\n count = Infinity;\n }\n const records = [];\n for (const record of this.records.values(range, direction)) {\n records.push(structuredClone(record.key));\n if (records.length >= count) {\n break;\n }\n }\n return records;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-retrieving-a-value-from-an-object-store\n getValue(key) {\n const record = this.records.get(key);\n return record !== undefined ? structuredClone(record.value) : undefined;\n }\n\n // http://w3c.github.io/IndexedDB/#retrieve-multiple-values-from-an-object-store\n getAllValues(range, count, direction) {\n if (count === undefined || count === 0) {\n count = Infinity;\n }\n const records = [];\n for (const record of this.records.values(range, direction)) {\n records.push(structuredClone(record.value));\n if (records.length >= count) {\n break;\n }\n }\n return records;\n }\n\n // https://www.w3.org/TR/IndexedDB/#dom-idbobjectstore-getallrecords\n getAllRecords(range, count, direction) {\n if (count === undefined || count === 0) {\n count = Infinity;\n }\n const records = [];\n for (const record of this.records.values(range, direction)) {\n records.push(new FDBRecord(structuredClone(record.key), structuredClone(record.key), structuredClone(record.value)));\n if (records.length >= count) {\n break;\n }\n }\n return records;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-storing-a-record-into-an-object-store\n storeRecord(newRecord, noOverwrite, rollbackLog) {\n if (this.keyPath !== null) {\n const key = extractKey(this.keyPath, newRecord.value).key;\n if (key !== undefined) {\n newRecord.key = key;\n }\n }\n const rollbackLogForThisOperation = [];\n if (this.keyGenerator !== null && newRecord.key === undefined) {\n let rolledBack = false;\n const keyGeneratorBefore = this.keyGenerator.num;\n const rollbackKeyGenerator = () => {\n if (rolledBack) {\n return;\n }\n rolledBack = true;\n if (this.keyGenerator) {\n this.keyGenerator.num = keyGeneratorBefore;\n }\n };\n rollbackLogForThisOperation.push(rollbackKeyGenerator);\n if (rollbackLog) {\n rollbackLog.push(rollbackKeyGenerator);\n }\n newRecord.key = this.keyGenerator.next();\n\n // Set in value if keyPath defiend but led to no key\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-to-assign-a-key-to-a-value-using-a-key-path\n if (this.keyPath !== null) {\n if (Array.isArray(this.keyPath)) {\n throw new Error(\"Cannot have an array key path in an object store with a key generator\");\n }\n let remainingKeyPath = this.keyPath;\n let object = newRecord.value;\n let identifier;\n let i = 0; // Just to run the loop at least once\n while (i >= 0) {\n if (typeof object !== \"object\") {\n throw new DataError();\n }\n i = remainingKeyPath.indexOf(\".\");\n if (i >= 0) {\n identifier = remainingKeyPath.slice(0, i);\n remainingKeyPath = remainingKeyPath.slice(i + 1);\n if (!Object.hasOwn(object, identifier)) {\n // Bypass prototype when setting (See `bindings-inject-values-bypass.any.js`)\n // Equivalent to `object[identifier] = ...` without using `Object.prototype`\n Object.defineProperty(object, identifier, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: {}\n });\n }\n object = object[identifier];\n }\n }\n identifier = remainingKeyPath;\n\n // Bypass prototype when setting (See `bindings-inject-values-bypass.any.js`)\n // Equivalent to `object[identifier] = ...` without using `Object.prototype`\n Object.defineProperty(object, identifier, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: newRecord.key\n });\n }\n } else if (this.keyGenerator !== null && typeof newRecord.key === \"number\") {\n this.keyGenerator.setIfLarger(newRecord.key);\n }\n const existingRecord = this.records.put(newRecord, noOverwrite);\n let rolledBack = false;\n const rollbackStoreRecord = () => {\n if (rolledBack) {\n return;\n }\n rolledBack = true;\n if (existingRecord) {\n // overwrite on rollback\n this.storeRecord(existingRecord, false);\n } else {\n // delete on rollback\n this.deleteRecord(newRecord.key);\n }\n };\n rollbackLogForThisOperation.push(rollbackStoreRecord);\n if (rollbackLog) {\n rollbackLog.push(rollbackStoreRecord);\n }\n\n // Delete existing indexes\n if (existingRecord) {\n for (const rawIndex of this.rawIndexes.values()) {\n rawIndex.records.deleteByValue(newRecord.key);\n }\n }\n\n // Update indexes\n try {\n for (const rawIndex of this.rawIndexes.values()) {\n if (rawIndex.initialized) {\n rawIndex.storeRecord(newRecord);\n }\n }\n } catch (err) {\n // If this request fails here and preventDefault is used to stop the transaction from aborting, we need to roll back the addition of this record to the store, otherwise it will be present in subsequent requests on this transaction. Same for key generator.\n if (err.name === \"ConstraintError\") {\n for (const rollback of rollbackLogForThisOperation) {\n rollback();\n }\n }\n throw err;\n }\n return newRecord.key;\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-deleting-records-from-an-object-store\n deleteRecord(key, rollbackLog) {\n const deletedRecords = this.records.delete(key);\n if (rollbackLog) {\n for (const record of deletedRecords) {\n rollbackLog.push(() => {\n this.storeRecord(record, true);\n });\n }\n }\n for (const rawIndex of this.rawIndexes.values()) {\n rawIndex.records.deleteByValue(key);\n }\n }\n\n // http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-steps-for-clearing-an-object-store\n clear(rollbackLog) {\n const deletedRecords = this.records.clear();\n if (rollbackLog) {\n for (const record of deletedRecords) {\n rollbackLog.push(() => {\n this.storeRecord(record, true);\n });\n }\n }\n for (const rawIndex of this.rawIndexes.values()) {\n rawIndex.records.clear();\n }\n }\n count(range) {\n // optimization: if there is no range, or if the range is everything, then we can just count the total size\n if (range === undefined || range.lower === undefined && range.upper === undefined) {\n return this.records.size();\n }\n let count = 0;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const record of this.records.values(range)) {\n count += 1;\n }\n return count;\n }\n}\nexport default ObjectStore;", "import { ConstraintError } from \"./errors.js\";\nconst MAX_KEY = 9007199254740992;\nclass KeyGenerator {\n // This is kind of wrong. Should start at 1 and increment only after record is saved\n num = 0;\n next() {\n if (this.num >= MAX_KEY) {\n throw new ConstraintError();\n }\n this.num += 1;\n return this.num;\n }\n\n // https://w3c.github.io/IndexedDB/#possibly-update-the-key-generator\n setIfLarger(num) {\n const value = Math.floor(Math.min(num, MAX_KEY)) - 1;\n if (value >= this.num) {\n this.num = value + 1;\n }\n }\n}\nexport default KeyGenerator;", "import FakeEvent from \"./FakeEvent.js\";\nimport { queueTask } from \"./scheduling.js\";\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#database-closing-steps\nconst closeConnection = (connection, forced = false) => {\n connection._closePending = true;\n const transactionsComplete = connection._rawDatabase.transactions.every(transaction => {\n return transaction._state === \"finished\";\n });\n if (transactionsComplete) {\n connection._closed = true;\n connection._rawDatabase.connections = connection._rawDatabase.connections.filter(otherConnection => {\n return connection !== otherConnection;\n });\n if (forced) {\n const event = new FakeEvent(\"close\", {\n bubbles: false,\n cancelable: false\n });\n event.eventPath = [];\n connection.dispatchEvent(event);\n }\n } else {\n queueTask(() => {\n closeConnection(connection, forced);\n });\n }\n};\nexport default closeConnection;", "import FDBRequest from \"./FDBRequest.js\";\nclass FDBOpenDBRequest extends FDBRequest {\n onupgradeneeded = null;\n onblocked = null;\n get [Symbol.toStringTag]() {\n return \"IDBOpenDBRequest\";\n }\n}\nexport default FDBOpenDBRequest;", "import FakeEvent from \"./lib/FakeEvent.js\";\nclass FDBVersionChangeEvent extends FakeEvent {\n constructor(type, parameters = {}) {\n super(type);\n this.newVersion = parameters.newVersion !== undefined ? parameters.newVersion : null;\n this.oldVersion = parameters.oldVersion !== undefined ? parameters.oldVersion : 0;\n }\n get [Symbol.toStringTag]() {\n return \"IDBVersionChangeEvent\";\n }\n}\nexport default FDBVersionChangeEvent;", "import { queueTask } from \"./scheduling.js\";\nimport { intersection } from \"./intersection.js\";\n// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#dfn-database\nclass Database {\n transactions = [];\n rawObjectStores = new Map();\n connections = [];\n constructor(name, version) {\n this.name = name;\n this.version = version;\n this.processTransactions = this.processTransactions.bind(this);\n }\n processTransactions() {\n queueTask(() => {\n const running = this.transactions.filter(transaction => transaction._started && transaction._state !== \"finished\");\n const waiting = this.transactions.filter(transaction => !transaction._started && transaction._state !== \"finished\");\n\n // The next transaction to run is the first waiting one that doesn't overlap with either a running one or a\n // preceding waiting one. This allows non-overlapping transactions to run in parallel.\n // The exception is readonly transactions, which are allowed to run in parallel with other readonly\n // transactions, even with overlapping scopes, since no data is being modified.\n const next = waiting.find((transaction, i) => {\n const anyRunning = running.some(other => !(transaction.mode === \"readonly\" && other.mode === \"readonly\") && intersection(other._scope, transaction._scope).size > 0);\n if (anyRunning) {\n return false;\n }\n\n // If any _preceding_ waiting transactions are blocked, then that's also blocking.\n // E.g. if you have 3 transactions: [a], [a,b], and [b,c], then [a] blocks [a,b] which blocks [b,c]\n // until [a] is complete, even though [a] and [b,c] share no overlap.\n // Note that readonly transactions do not have to be handled as a special case here,\n // because if any transactions with overlapping scopes are blocked, then we can assume they are\n const anyWaiting = waiting.slice(0, i).some(other => intersection(other._scope, transaction._scope).size > 0);\n return !anyWaiting;\n });\n if (next) {\n next.addEventListener(\"complete\", this.processTransactions);\n next.addEventListener(\"abort\", this.processTransactions);\n next._start();\n }\n });\n }\n}\nexport default Database;", "/**\n * Minimal polyfill of `Set.prototype.intersection`, available in Node 22+.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/intersection\n * @param set1\n * @param set2\n */\nexport function intersection(set1, set2) {\n if (\"intersection\" in set1) {\n return set1.intersection(set2);\n }\n return new Set([...set1].filter(item => set2.has(item)));\n}", "// WebIDL requires passing the right number of non-optional arguments, e.g. IDBFactory.open() must have at least 1 arg\nexport function validateRequiredArguments(numArguments, expectedNumArguments, methodName) {\n if (numArguments < expectedNumArguments) {\n // imitate Firefox's error message\n throw new TypeError(`${methodName}: At least ${expectedNumArguments} ${expectedNumArguments === 1 ? \"argument\" : \"arguments\"} ` + `required, but only ${arguments.length} passed`);\n }\n}", "import closeConnection from \"./lib/closeConnection.js\";\n/**\n * Forcibly closes a database. This simulates a database being closed due to abnormal reasons, such as\n * using DevTools to clear data while a database is open. Spec-wise, this is equivalent to\n * [closing a database connection](https://www.w3.org/TR/IndexedDB/#closing-connection) with the `forced flag`\n * set to true.\n *\n * Use this API if you want to have more test coverage for unusual IndexedDB events, such as a database firing\n * the \"close\" event:\n *\n * ```js\n * db.addEventListener(\"close\", () => {\n * console.log(\"Forcibly closed!\");\n * });\n * forceCloseDatabase(db); // invokes the event listener\n * ```\n * @param db\n */\nexport default function forceCloseDatabase(db) {\n closeConnection(db, true);\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["callback", "current", "confirmActiveTransaction", "rolledBack", "db"]
|
|
7
|
-
}
|