@moyodb/sdk 1.0.0 → 1.0.1

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.
@@ -19,6 +19,7 @@ export interface RegistryEntry {
19
19
  persistenceBridge: MainThreadPersistenceBridge;
20
20
  options: NormalizedOpenOptions;
21
21
  invalidated: boolean;
22
+ schemaMigrationInProgress: boolean;
22
23
  txInvalidationListeners: Set<() => void>;
23
24
  handleInvalidationListeners: Set<() => void>;
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA8B/E,UAAU,2BAA2B;IACjC,KAAK,IAAI,IAAI,CAAC;CACjB;AACD,MAAM,WAAW,qBAAqB;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,oBAAoB,CAAC;IAC5B,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,uBAAuB,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CAChD;AA2KD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKvG;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKjG;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEjE;AASD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAY9D;AACD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkCvG;AACD,wBAAsB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBzE;AACD,wBAAsB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;AACD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA8B/E,UAAU,2BAA2B;IACjC,KAAK,IAAI,IAAI,CAAC;CACjB;AACD,MAAM,WAAW,qBAAqB;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,oBAAoB,CAAC;IAC5B,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CAChD;AA4LD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKvG;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKjG;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEjE;AASD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAY9D;AACD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAuCvG;AACD,wBAAsB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBzE;AACD,wBAAsB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;AAkBD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,sBAAsB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAqE7E,qBAAa,eAAe;;IAKxB,YAAY,MAAM,EAAE,MAAM,EAEzB;IACD,SAAS,CAAC,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAAC;IACzD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAAC;IAC5E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAAC;IA6BnG,KAAK,IAAI,IAAI,CAOZ;CAqDJ"}
1
+ {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,sBAAsB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAqE7E,qBAAa,eAAe;;IAKxB,YAAY,MAAM,EAAE,MAAM,EAEzB;IACD,SAAS,CAAC,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAAC;IACzD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAAC;IAC5E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAAC;IA6BnG,KAAK,IAAI,IAAI,CAUZ;CAqDJ"}
package/dist/types.d.ts CHANGED
@@ -2,8 +2,8 @@ export type TxMode = 'readonly' | 'readwrite';
2
2
  export type TxId = number;
3
3
  export type DebugFailpoint = 'after_wal_flush' | 'after_main_flush' | 'before_superblock_flush' | null;
4
4
  /**
5
- * `clear` and `drop` are store-level changes: they carry an empty key and
6
- * apply to every key of the store at that point of the transaction.
5
+ * `clear` and `drop` use an empty key. They affect every key in the store
6
+ * at that point in the transaction.
7
7
  */
8
8
  export type ChangeKind = 'put' | 'delete' | 'clear' | 'drop';
9
9
  export type Unsubscribe = () => void;
@@ -45,15 +45,15 @@ export interface OpenOptions {
45
45
  migrate?: MigrateHook;
46
46
  indexes?: IndexDef[];
47
47
  /**
48
- * Persistent change feed policy. When omitted, the policy stored in the
49
- * database is kept (new databases keep the last 100 000 transactions).
48
+ * If omitted, keep the stored change feed policy. New databases default
49
+ * to a retention target of 100,000 committed transactions.
50
50
  */
51
51
  changeFeed?: ChangeFeedSettings;
52
52
  }
53
53
  export interface ChangeFeedSettings {
54
- /** Disabling drops the stored history; `changesSince` then only accepts the latest txid. */
54
+ /** Setting `false` deletes retained history. `changesSince` then accepts only the latest txid. */
55
55
  enabled?: boolean;
56
- /** Committed transactions kept in the log; `null` keeps everything. */
56
+ /** Retention target in committed transactions. `null` disables retention pruning. */
57
57
  retainTxids?: number | null;
58
58
  }
59
59
  export interface PutOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,12 @@ export interface WorkerOpenRequest {
13
13
  }
14
14
  export interface IndexScanPage {
15
15
  rows: ScanItem[];
16
- /** Physical index key to resume after, or `null` once the range is exhausted. */
16
+ /** Physical index key to resume after, or `null` when exhaustion is detected. */
17
17
  cursor: Uint8Array | null;
18
18
  }
19
19
  /**
20
- * Transaction-scoped commands that may run as a single autocommit round trip:
21
- * the worker begins a transaction, runs the command, and commits (readwrite)
22
- * or releases (readonly) it before replying.
20
+ * Commands supported in one autocommit request. The worker replies after
21
+ * commit (readwrite) or rollback (readonly).
23
22
  */
24
23
  export type AutocommitCommand = 'get' | 'getMany' | 'has' | 'put' | 'putMany' | 'delete' | 'deleteMany' | 'applyBatch' | 'scan' | 'getByIndex' | 'scanByIndex' | 'createStore' | 'dropStore' | 'clearStore';
25
24
  export interface WorkerApi {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-api.d.ts","sourceRoot":"","sources":["../src/worker-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-api.d.ts","sourceRoot":"","sources":["../src/worker-api.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,11 @@ export declare class WorkerProtocolClient implements WorkerApi {
16
16
  private requestTimeoutMs;
17
17
  private fatalHandler;
18
18
  private closeReason;
19
+ private batching;
20
+ private queuedRequests;
21
+ private queuedBytes;
22
+ private flushScheduled;
23
+ private awaitingReady;
19
24
  constructor(worker: Worker, options?: WorkerProtocolClientOptions);
20
25
  setFatalHandler(handler: ((error: Error) => void) | null): void;
21
26
  whenReady(): Promise<void>;
@@ -60,8 +65,11 @@ export declare class WorkerProtocolClient implements WorkerApi {
60
65
  setFailpoint(failpoint: DebugFailpoint): Promise<void>;
61
66
  request<M extends WorkerCommand>(command: M, args: WorkerCommandArgs<M>): Promise<WorkerCommandResult<M>>;
62
67
  private send;
68
+ private queueRequest;
69
+ private flushRequests;
63
70
  private ensureOpen;
64
71
  private handleMessage;
72
+ private handleResponse;
65
73
  private handleMessageError;
66
74
  private handleError;
67
75
  private rejectPending;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../src/worker-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../src/worker-client.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ export declare const WORKER_PROTOCOL_VERSION = 1;
4
4
  export declare const WORKER_PROTOCOL_READY = "moyodb:worker-protocol:ready";
5
5
  export declare const WORKER_PROTOCOL_REQUEST = "moyodb:worker-protocol:request";
6
6
  export declare const WORKER_PROTOCOL_RESPONSE = "moyodb:worker-protocol:response";
7
+ export declare const WORKER_PROTOCOL_REQUEST_BATCH = "moyodb:worker-protocol:request-batch";
8
+ export declare const WORKER_PROTOCOL_RESPONSE_BATCH = "moyodb:worker-protocol:response-batch";
9
+ export declare const MAX_WORKER_BATCH_MESSAGES = 128;
10
+ export declare const MAX_WORKER_BATCH_BYTES: number;
7
11
  export declare const WORKER_COMMANDS: readonly ['open', 'close', 'destroy', 'deleteDB', 'begin', 'commit', 'rollback', 'autocommit', 'createStore', 'dropStore', 'clearStore', 'get', 'getMany', 'has', 'put', 'putMany', 'delete', 'deleteMany', 'applyBatch', 'scan', 'getByIndex', 'scanByIndex', 'scanByIndexPage', 'getIndexes', 'reconcileIndexes', 'listStores', 'getVersion', 'changesSince', 'setSchemaVersion', 'exportSnapshot', 'importSnapshot', 'reset', 'compact', 'rebuild', 'stats', 'storageInfo', 'requestPersistence', 'setFailpoint'];
8
12
  export type WorkerCommand = (typeof WORKER_COMMANDS)[number];
9
13
  type WorkerMethod<M extends WorkerCommand> = WorkerApi[M] extends (...args: infer Args) => Promise<infer Result> ? {
@@ -29,6 +33,8 @@ export interface PackedOptionalValuesV1 {
29
33
  export type WorkerProtocolReadyMessage = {
30
34
  type: typeof WORKER_PROTOCOL_READY;
31
35
  version: typeof WORKER_PROTOCOL_VERSION;
36
+ /** Enables batching; omitted by peers that use single messages. */
37
+ batching?: 1;
32
38
  };
33
39
  export type WorkerProtocolRequestMessage = {
34
40
  [M in WorkerCommand]: {
@@ -39,6 +45,11 @@ export type WorkerProtocolRequestMessage = {
39
45
  args: PreparedWorkerCommandArgs<M>;
40
46
  };
41
47
  }[WorkerCommand];
48
+ export interface WorkerProtocolRequestBatchMessage {
49
+ type: typeof WORKER_PROTOCOL_REQUEST_BATCH;
50
+ version: typeof WORKER_PROTOCOL_VERSION;
51
+ requests: WorkerProtocolRequestMessage[];
52
+ }
42
53
  export interface SerializedWorkerError {
43
54
  name: string;
44
55
  code?: string;
@@ -62,10 +73,17 @@ export interface WorkerProtocolErrorMessage {
62
73
  error: SerializedWorkerError;
63
74
  }
64
75
  export type WorkerProtocolResponseMessage = WorkerProtocolSuccessMessage | WorkerProtocolErrorMessage;
76
+ export interface WorkerProtocolResponseBatchMessage {
77
+ type: typeof WORKER_PROTOCOL_RESPONSE_BATCH;
78
+ version: typeof WORKER_PROTOCOL_VERSION;
79
+ responses: WorkerProtocolResponseMessage[];
80
+ }
65
81
  export declare function isWorkerCommand(value: unknown): value is WorkerCommand;
66
82
  export declare function isWorkerProtocolReadyMessage(value: unknown): value is WorkerProtocolReadyMessage;
67
83
  export declare function isWorkerProtocolResponseMessage(value: unknown): value is WorkerProtocolResponseMessage;
68
84
  export declare function isWorkerProtocolRequestMessage(value: unknown): value is WorkerProtocolRequestMessage;
85
+ export declare function isWorkerProtocolRequestBatchMessage(value: unknown): value is WorkerProtocolRequestBatchMessage;
86
+ export declare function isWorkerProtocolResponseBatchMessage(value: unknown): value is WorkerProtocolResponseBatchMessage;
69
87
  export declare function isWorkerProtocolEnvelope(value: unknown): value is {
70
88
  type: string;
71
89
  id?: unknown;
@@ -93,5 +111,15 @@ export declare function prepareWorkerResponsePayload<M extends WorkerCommand>(co
93
111
  };
94
112
  export declare function decodeWorkerResponsePayload<M extends WorkerCommand>(command: M, result: unknown): WorkerCommandResult<M>;
95
113
  export declare function collectTransferablesForValue(value: unknown): Transferable[];
114
+ /**
115
+ * Capture the message before batching can observe later mutations. Listed
116
+ * transferables move into the snapshot; other ArrayBuffers are cloned.
117
+ * SharedArrayBuffers remain shared. byteLength is a batch-size estimate.
118
+ */
119
+ export declare function captureWorkerPayload<T>(value: T, transfer: Transferable[]): {
120
+ value: T;
121
+ transfer: Transferable[];
122
+ byteLength: number;
123
+ };
96
124
  export {};
97
125
  //# sourceMappingURL=worker-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-protocol.d.ts","sourceRoot":"","sources":["../src/worker-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-protocol.d.ts","sourceRoot":"","sources":["../src/worker-protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-server.d.ts","sourceRoot":"","sources":["../src/worker-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,cAAc,CAAC;AA4BjE,MAAM,WAAW,kBAAkB;IAC/B,KAAK,IAAI,IAAI,CAAC;CACjB;AAwHD,wBAAgB,eAAe,CAC3B,GAAG,EAAE,SAAS,EACd,KAAK,GAAE,0BAA+D,GACvE,kBAAkB,CAepB"}
1
+ {"version":3,"file":"worker-server.d.ts","sourceRoot":"","sources":["../src/worker-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,cAAc,CAAC;AAkCjE,MAAM,WAAW,kBAAkB;IAC/B,KAAK,IAAI,IAAI,CAAC;CACjB;AA8LD,wBAAgB,eAAe,CAC3B,GAAG,EAAE,SAAS,EACd,KAAK,GAAE,0BAA+D,GACvE,kBAAkB,CAkCpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moyodb/sdk",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -11,7 +11,9 @@
11
11
  "build": "npm run build:wasm:release && vite build && npm run build:types && npm run prepare:dist",
12
12
  "dev": "npm run build:wasm:release && vite --host 127.0.0.1 --port 4173",
13
13
  "dev:test": "npm run build:wasm:release && vite --host 127.0.0.1 --port 4173",
14
- "test:e2e": "npm run build:wasm:release && playwright test",
14
+ "test:minimum-work": "node scripts/test-minimum-work.mjs && node scripts/test-read-work.mjs && node scripts/test-transport-work.mjs && node scripts/test-startup-work.mjs && node scripts/test-sdk-lifecycle.mjs && node scripts/test-codec-index-work.mjs",
15
+ "bench:minimum-work": "node scripts/bench-minimum-work.mjs",
16
+ "test:e2e": "npm run test:minimum-work && npm run build:wasm:release && playwright test",
15
17
  "build:types": "tsc -p tsconfig.build.json",
16
18
  "bench:browser": "node scripts/run-playwright-env.mjs bench:browser",
17
19
  "bench:indexeddb": "node scripts/run-playwright-env.mjs bench:indexeddb",
@@ -1,4 +0,0 @@
1
- function e(e){return typeof e==`object`&&!!e}function t(e,t){return e<t?-1:+(e>t)}const n=`moyodb:worker-protocol:response`,r=/* @__PURE__ */ `open.close.destroy.deleteDB.begin.commit.rollback.autocommit.createStore.dropStore.clearStore.get.getMany.has.put.putMany.delete.deleteMany.applyBatch.scan.getByIndex.scanByIndex.scanByIndexPage.getIndexes.reconcileIndexes.listStores.getVersion.changesSince.setSchemaVersion.exportSnapshot.importSnapshot.reset.compact.rebuild.stats.storageInfo.requestPersistence.setFailpoint`.split(`.`),i=/* @__PURE__ */ new Set([`get`,`getMany`,`has`,`put`,`putMany`,`delete`,`deleteMany`,`applyBatch`,`scan`,`getByIndex`,`scanByIndex`,`createStore`,`dropStore`,`clearStore`]);function a(e){return typeof e==`string`&&i.has(e)}const o=`moyodb:packed-binary-list:v1`,s=`moyodb:packed-batch-ops:v1`,c=`moyodb:packed-optional-values:v1`,l=4294967295,u=16777216,d=[],f=new Set(r);function ee(e){return typeof e==`string`&&f.has(e)}function te(t){return e(t)&&t.type===`moyodb:worker-protocol:request`&&t.version===1&&typeof t.id==`number`&&Number.isSafeInteger(t.id)&&typeof t.command==`string`&&Array.isArray(t.args)}function ne(t){return e(t)&&(t.type===`moyodb:worker-protocol:request`||t.type===`moyodb:worker-protocol:response`||t.type===`moyodb:worker-protocol:ready`)}function re(t){if(e(t)){let e=b(t.code);return{name:b(t.name)??e??`Error`,code:e,message:b(t.message)??`Unknown error`,stack:b(t.stack)}}return{name:`Error`,message:String(t)}}function p(e,t,n=e){let r=Error(t);return r.name=e,Object.defineProperty(r,"code",{value:n,enumerable:!0,configurable:!0}),r}function ie(e,t){if(e===`autocommit`){let[e,n,r]=t;if(a(n)&&Array.isArray(r))return[e,n,ie(n,[0,...r]).slice(1)]}if(e===`getMany`||e===`deleteMany`){let[e,n,r]=t;if(we(r))return[e,n,_e(r)]}if(e===`putMany`){let[e,n,r,i]=t;if(we(r))return[e,n,ve(r),i]}if(e===`applyBatch`){let[e,n,r]=t;if(Te(r))return[e,n,Se(r)]}return t}function ae(e){return we(e)?e.bytes:null}function oe(e){return Te(e)?e.bytes:null}function se(e){return _e({__moyodbPacked:o,bytes:e})}function ce(e){return ve({__moyodbPacked:o,bytes:e})}function le(e){return ye({__moyodbPacked:o,bytes:e})}function ue(e){return Se({__moyodbPacked:s,bytes:e})}function de(e){return Ce({__moyodbPacked:s,bytes:e})}function fe(e){return{__moyodbPacked:c,bytes:e}}function pe(e){if(!(e instanceof Uint8Array)||e.byteLength<4)throw p(`WorkerProtocolError`,`invalid packed optional-values payload`);let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getUint32(0,!0),r=v(4,_(n,4,`packed optional-values metadata`),`packed optional-values header`);if(r>e.byteLength)throw p(`WorkerProtocolError`,`packed optional-values metadata exceeds payload length`);let i=Array(n),a=r;for(let r=0;r<n;r+=1){let n=t.getUint32(4+r*4,!0);if(n===l){i[r]=null;continue}let o=a+n;if(o>e.byteLength)throw p(`WorkerProtocolError`,`packed optional-values item exceeds payload length`);i[r]=e.subarray(a,o),a=o}if(a!==e.byteLength)throw p(`WorkerProtocolError`,`packed optional-values payload has trailing bytes`);return i}function me(t,n){if(t===`getMany`&&Ee(n))return{result:n,transfer:he(n.bytes)};if(t===`scanByIndexPage`){let t=n;if(e(t)&&Array.isArray(t.rows)){let e=t.rows.length>0?xe(t.rows):null,n={rows:e??t.rows,cursor:t.cursor},r=e?[e.bytes.buffer]:m(t.rows),i=h(t.cursor);return{result:n,transfer:i===null?r:[...r,i]}}}if(t===`getMany`){let e=n;if(Array.isArray(e)&&e.length>0){let t=be(e);if(t)return{result:t,transfer:[t.bytes.buffer]}}return{result:n,transfer:m(n)}}if(t===`scan`||t===`scanByIndex`){let e=n;if(Array.isArray(e)&&e.length>0){let t=xe(e);if(t)return{result:t,transfer:[t.bytes.buffer]}}return{result:n,transfer:m(n)}}return t===`get`||t===`getByIndex`||t===`exportSnapshot`?{result:n,transfer:he(n)}:t===`changesSince`?{result:n,transfer:ge(n)}:{result:n,transfer:[]}}function m(e){let t=h(e);if(t!==null)return[t];if(typeof e!=`object`||!e)return d;let n=/* @__PURE__ */ new Set;return g(e,n,/* @__PURE__ */ new WeakSet),n.size===0?d:Array.from(n)}function he(e){let t=h(e);return t===null?d:[t]}function h(e){if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e)){let t=e.buffer;if(t instanceof ArrayBuffer&&e.byteOffset===0&&e.byteLength===t.byteLength)return t}return null}function ge(t){if(!e(t)||!Array.isArray(t.changes)||t.changes.length===0)return d;let n=null;for(let r of t.changes){if(!e(r))continue;let t=h(r.key);t!==null&&(n??=/* @__PURE__ */ new Set,n.add(t));let i=h(r.value);i!==null&&(n??=/* @__PURE__ */ new Set,n.add(i))}return n===null||n.size===0?d:Array.from(n)}function g(e,t,n){if(e==null)return;if(e instanceof ArrayBuffer){t.add(e);return}if(ArrayBuffer.isView(e)){let n=e.buffer;n instanceof ArrayBuffer&&e.byteOffset===0&&e.byteLength===n.byteLength&&t.add(n);return}if(typeof e!=`object`)return;let r=e;if(n.has(r))return;if(n.add(r),Array.isArray(e)){for(let r of e)g(r,t,n);return}let i=e;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&g(i[e],t,n)}function _e(e){let t=e.bytes;if(!(t instanceof Uint8Array)||t.byteLength<4)throw p(`WorkerProtocolError`,`invalid packed binary-list payload`);let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0,!0),i=v(4,_(r,4,`packed binary-list metadata`),`packed binary-list header`);if(i>t.byteLength)throw p(`WorkerProtocolError`,`packed binary-list metadata exceeds payload length`);let a=Array(r),o=4,s=i;for(let e=0;e<r;e+=1){let r=n.getUint32(o,!0);o+=4;let i=s+r;if(i>l||i>t.byteLength)throw p(`WorkerProtocolError`,`packed binary-list item exceeds payload length`);a[e]=t.subarray(s,i),s=i}if(s!==t.byteLength)throw p(`WorkerProtocolError`,`packed binary-list payload has trailing bytes`);return a}function ve(e){let t=e.bytes;if(!(t instanceof Uint8Array)||t.byteLength<4)throw p(`WorkerProtocolError`,`invalid packed putMany payload`);let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0,!0);if(r%2!=0)throw p(`WorkerProtocolError`,`packed putMany payload has an odd item count`);let i=v(4,_(r,4,`packed putMany metadata`),`packed putMany header`);if(i>t.byteLength)throw p(`WorkerProtocolError`,`packed putMany metadata exceeds payload length`);let a=r/2,o=Array(a),s=4,c=i;for(let e=0;e<a;e+=1){let r=n.getUint32(s,!0),i=n.getUint32(s+4,!0);s+=8;let a=c+r;if(a>l||a>t.byteLength)throw p(`WorkerProtocolError`,`packed putMany key exceeds payload length`);let u=a+i;if(u>l||u>t.byteLength)throw p(`WorkerProtocolError`,`packed putMany value exceeds payload length`);o[e]=[t.subarray(c,a),t.subarray(a,u)],c=u}if(c!==t.byteLength)throw p(`WorkerProtocolError`,`packed putMany payload has trailing bytes`);return o}function ye(e){let t=e.bytes;if(!(t instanceof Uint8Array)||t.byteLength<4)throw p(`WorkerProtocolError`,`invalid packed putMany payload`);let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0,!0);if(r%2!=0)throw p(`WorkerProtocolError`,`packed putMany payload has an odd item count`);let i=v(4,_(r,4,`packed putMany metadata`),`packed putMany header`);if(i>t.byteLength)throw p(`WorkerProtocolError`,`packed putMany metadata exceeds payload length`);let a=r/2,o=Array(a),s=4,c=i;for(let e=0;e<a;e+=1){let r=n.getUint32(s,!0),i=n.getUint32(s+4,!0);s+=8;let a=c+r;if(a>l||a>t.byteLength)throw p(`WorkerProtocolError`,`packed putMany key exceeds payload length`);let u=a+i;if(u>l||u>t.byteLength)throw p(`WorkerProtocolError`,`packed putMany value exceeds payload length`);o[e]=t.subarray(c,a),c=u}if(c!==t.byteLength)throw p(`WorkerProtocolError`,`packed putMany payload has trailing bytes`);return o}function be(e){let t=e.length,n=_(t,5,`packed nullable binary-list metadata`),r=0;for(let n=0;n<t;n+=1){let t=e[n];if(t===null)continue;if(!(t instanceof Uint8Array))throw p(`WorkerProtocolError`,`nullable binary-list payload item is not a Uint8Array or null`);let i=y(t.byteLength,`nullable binary-list item length`);if(r+=i,r>l)throw p(`WorkerProtocolError`,`packed nullable binary-list payload exceeds 32-bit payload limit`)}let i=v(4,n,`packed nullable binary-list header`),a=v(i,r,`packed nullable binary-list total`);if(a>u)return null;let o=new Uint8Array(a),s=new DataView(o.buffer);s.setUint32(0,t,!0);let c=4,d=i;for(let n=0;n<t;n+=1){let t=e[n];if(t===null){s.setUint8(c,0),s.setUint32(c+1,0,!0),c+=5;continue}let r=t.byteLength;s.setUint8(c,1),s.setUint32(c+1,r,!0),c+=5,o.set(t,d),d+=r}return{__moyodbPacked:`moyodb:packed-nullable-binary-list:v1`,bytes:o}}function xe(t){let n=t.length,r=_(n,8,`packed scan row metadata`),i=0;for(let r=0;r<n;r+=1){let n=t[r];if(!e(n)||!(n.key instanceof Uint8Array)||!(n.value instanceof Uint8Array))throw p(`WorkerProtocolError`,`scan row payload key/value is not a Uint8Array`);let a=y(n.key.byteLength,`scan row key length`),o=y(n.value.byteLength,`scan row value length`);if(i+=a+o,i>l)throw p(`WorkerProtocolError`,`packed scan row payload exceeds 32-bit payload limit`)}let a=v(4,r,`packed scan row header`),o=v(a,i,`packed scan row total`);if(o>u)return null;let s=new Uint8Array(o),c=new DataView(s.buffer);c.setUint32(0,n,!0);let d=4,f=a;for(let e=0;e<n;e+=1){let n=t[e],r=n.key,i=n.value,a=r.byteLength,o=i.byteLength;c.setUint32(d,a,!0),c.setUint32(d+4,o,!0),d+=8,s.set(r,f),f+=a,s.set(i,f),f+=o}return{__moyodbPacked:`moyodb:packed-scan-rows:v1`,bytes:s}}function Se(e){let t=e.bytes;if(!(t instanceof Uint8Array)||t.byteLength<4)throw p(`WorkerProtocolError`,`invalid packed batch payload`);let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0,!0),i=v(4,_(r,9,`packed batch metadata`),`packed batch header`);if(i>t.byteLength)throw p(`WorkerProtocolError`,`packed batch metadata exceeds payload length`);let a=Array(r),o=4,s=i;for(let e=0;e<r;e+=1){let r=n.getUint8(o),i=n.getUint32(o+1,!0),c=n.getUint32(o+5,!0);o+=9;let u=s+i;if(u>l||u>t.byteLength)throw p(`WorkerProtocolError`,`packed batch key exceeds payload length`);let d=t.subarray(s,u);if(s=u,r===0){if(c!==0)throw p(`WorkerProtocolError`,`packed delete operation has a value payload`);a[e]={kind:`delete`,key:d};continue}if(r!==1)throw p(`WorkerProtocolError`,`packed batch operation has invalid kind byte: ${r}`);let f=s+c;if(f>l||f>t.byteLength)throw p(`WorkerProtocolError`,`packed batch value exceeds payload length`);a[e]={kind:`put`,key:d,value:t.subarray(s,f)},s=f}if(s!==t.byteLength)throw p(`WorkerProtocolError`,`packed batch payload has trailing bytes`);return a}function Ce(e){let t=e.bytes;if(!(t instanceof Uint8Array)||t.byteLength<4)throw p(`WorkerProtocolError`,`invalid packed batch payload`);let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0,!0),i=v(4,_(r,9,`packed batch metadata`),`packed batch header`);if(i>t.byteLength)throw p(`WorkerProtocolError`,`packed batch metadata exceeds payload length`);let a=Array(r),o=4,s=i;for(let e=0;e<r;e+=1){let r=n.getUint8(o),i=n.getUint32(o+1,!0),c=n.getUint32(o+5,!0);o+=9;let u=s+i;if(u>l||u>t.byteLength)throw p(`WorkerProtocolError`,`packed batch key exceeds payload length`);let d=t.subarray(s,u);if(s=u,r===0){if(c!==0)throw p(`WorkerProtocolError`,`packed delete operation has a value payload`);a[e]={kind:`delete`,key:d};continue}if(r!==1)throw p(`WorkerProtocolError`,`packed batch operation has invalid kind byte: ${r}`);let f=s+c;if(f>l||f>t.byteLength)throw p(`WorkerProtocolError`,`packed batch value exceeds payload length`);a[e]={kind:`put`,key:d},s=f}if(s!==t.byteLength)throw p(`WorkerProtocolError`,`packed batch payload has trailing bytes`);return a}function we(t){return e(t)&&t.__moyodbPacked===o&&t.bytes instanceof Uint8Array}function Te(t){return e(t)&&t.__moyodbPacked===s&&t.bytes instanceof Uint8Array}function Ee(t){return e(t)&&t.__moyodbPacked===c&&t.bytes instanceof Uint8Array}function _(e,t,n){if(!Number.isSafeInteger(e)||e<0)throw p(`WorkerProtocolError`,`${n} count is invalid: ${e}`);return y(e*t,n)}function v(e,t,n){return y(e+t,n)}function y(e,t){if(!Number.isSafeInteger(e)||e<0||e>l)throw p(`WorkerProtocolError`,`${t} exceeds 32-bit payload limit`);return e}function b(e){return typeof e==`string`?e:void 0}const De=/* @__PURE__ */ new Set([`commit`,`rollback`,`createStore`,`dropStore`,`clearStore`,`get`,`getMany`,`has`,`put`,`putMany`,`delete`,`deleteMany`,`applyBatch`,`scan`,`getByIndex`,`scanByIndex`,`scanByIndexPage`,`reconcileIndexes`,`setSchemaVersion`]),Oe=/* @__PURE__ */ new Set([`open`,`close`,`destroy`,`importSnapshot`,`reset`,`compact`,`rebuild`]),ke=/* @__PURE__ */ new Set([`deleteDB`,`storageInfo`,`requestPersistence`]),x=()=>{};var Ae=class{#e=/* @__PURE__ */ new Map;#t=/* @__PURE__ */ new Set;#n=Promise.resolve();schedule(e,t,n){return ke.has(e)?n():Oe.has(e)?this.#i(n):this.#r(je(e,t),n)}#r(e,t){let n=this.#n,r=e===null?void 0:this.#e.get(e),i=(async()=>(await n,r&&await r,t()))(),a=i.then(x,x);return this.#t.add(a),a.then(()=>{this.#t.delete(a)}),e!==null&&(this.#e.set(e,a),a.then(()=>{this.#e.get(e)===a&&this.#e.delete(e)})),i}#i(e){let t=this.#n,n=Array.from(this.#t),r=(async()=>(await t,await Promise.all(n),e()))();return this.#n=r.then(x,x),r}};function je(e,t){return De.has(e)&&typeof t[0]==`number`?t[0]:e===`autocommit`&&t[0]===`readwrite`?`autocommit:readwrite`:null}function Me(e,t=self){let n=new Ae,r=r=>{Ne(t,e,n,r.data)};return t.addEventListener(`message`,r),t.postMessage({type:`moyodb:worker-protocol:ready`,version:1}),{close(){t.removeEventListener(`message`,r)}}}async function Ne(e,t,n,r){if(!ne(r))return;let i=typeof r.id==`number`&&Number.isSafeInteger(r.id)?r.id:0;if(!te(r)){C(e,S(i,p(`WorkerProtocolError`,`invalid worker protocol request`)));return}if(!ee(r.command)){C(e,S(r.id,p(`WorkerProtocolError`,`unsupported worker command: ${String(r.command)}`)));return}let o=r.command,s=r.args;try{let i=o,c;if(o===`autocommit`){let[e,n,r]=s;if(e!==`readonly`&&e!==`readwrite`||!a(n)||!Array.isArray(r))throw p(`WorkerProtocolError`,`invalid autocommit request`);Pe(t,n),i=n,c=()=>Ie(t,e,n,r)}else Pe(t,o),c=()=>Fe(t,o,s);let l=await n.schedule(o,s,c),u=me(i,l);C(e,Re(r.id,u.result),u.transfer)}catch(t){C(e,S(r.id,t))}}function Pe(e,t){if(typeof e[t]!=`function`)throw p(`WorkerProtocolError`,`worker command is not implemented: ${t}`)}function Fe(e,t,n){let r=Le(e,t,n);return r===null?e[t].apply(e,ie(t,n)):r}async function Ie(e,t,n,r){let i=await e.begin(t),a;try{a=await Fe(e,n,[i,...r])}catch(t){try{await e.rollback(i)}catch{}throw t}return t===`readwrite`?await e.commit(i):await e.rollback(i),a}function Le(e,t,n){let r=e;if(t===`getMany`||t===`deleteMany`){let[e,i,a]=n;if(typeof e!=`number`||typeof i!=`string`)return null;let o=ae(a);return o===null?null:t===`getMany`&&typeof r.getManyPacked==`function`?r.getManyPacked(e,i,o):t===`deleteMany`&&typeof r.deleteManyPacked==`function`?r.deleteManyPacked(e,i,o):null}if(t===`putMany`){let[e,t,i,a]=n;if(typeof e!=`number`||typeof t!=`string`||typeof r.putManyPacked!=`function`)return null;let o=ae(i);return o===null?null:r.putManyPacked(e,t,o,a)}if(t===`applyBatch`){let[e,t,i]=n;if(typeof e!=`number`||typeof t!=`string`||typeof r.applyBatchPacked!=`function`)return null;let a=oe(i);return a===null?null:r.applyBatchPacked(e,t,a)}return null}function Re(e,t){return{type:n,version:1,id:e,ok:!0,result:t}}function S(e,t){return{type:n,version:1,id:e,ok:!1,error:re(t)}}function C(e,t,n=[]){if(t.ok&&n.length>0)try{e.postMessage(t,n);return}catch{}e.postMessage(t)}const ze=new TextEncoder;new TextDecoder;function w(e){return ze.encode(e)}function Be(e){return Ue(e)}function T(e){return We(e)}function Ve(e){let t=[],n=[];for(let r=0;r<e.length;r+=1){let i=e[r];if(i!==0){n.push(i);continue}let a=e[r+1];if(a===255){n.push(0),r+=1;continue}if(a===0){t.push(Uint8Array.from(n)),n.length=0,r+=1;continue}throw TypeError(`invalid compound key encoding`)}if(n.length!==0)throw TypeError(`compound key terminated unexpectedly`);return t}function E(e){let t=e.slice();for(let e=t.length-1;e>=0;--e)if(t[e]!==255)return t[e]+=1,t.subarray(0,e+1);return null}function He(e){let t=E(e);return t?{gte:e,lt:t}:{gte:e}}function Ue(e){if(e===null)return Uint8Array.of(16);if(typeof e==`boolean`)return Uint8Array.of(e?33:32);if(typeof e==`number`)return Ge(e);if(typeof e==`string`){let t=w(e),n=new Uint8Array(1+t.length);return n[0]=64,n.set(t,1),n}if(e instanceof Uint8Array){let t=new Uint8Array(1+e.length);return t[0]=80,t.set(e,1),t}throw TypeError(`compound key parts must be string, number, boolean, null, or Uint8Array`)}function We(e){let t=0;for(let n of e){for(let e of n)t+=e===0?2:1;t+=2}let n=new Uint8Array(t),r=0;for(let t of e){for(let e of t)e===0?(n[r]=0,n[r+1]=255,r+=2):(n[r]=e,r+=1);n[r]=0,n[r+1]=0,r+=2}return n}function Ge(e){if(!Number.isFinite(e))throw TypeError(`compound key number parts must be finite`);let t=Object.is(e,-0)?0:e,n=/* @__PURE__ */ new ArrayBuffer(9),r=new DataView(n);r.setUint8(0,48),r.setFloat64(1,t,!1);let i=r.getBigUint64(1,!1);return i=(i&1n<<63n)==0n?i^1n<<63n:~i&18446744073709551615n,r.setBigUint64(1,i,!1),new Uint8Array(n)}const D=w(`BDBZVAL1`),Ke=w(`BDBZSNP1`),qe=8388608,Je=268435456,Ye=(()=>{let e=/* @__PURE__ */ new Uint32Array(256);for(let t=0;t<256;t+=1){let n=t;for(let e=0;e<8;e+=1)n&1?n=n>>>1^3988292384:n>>>=1;e[t]=n>>>0}return e})();function O(e,t){let n=Error(t);return n.name=e,n}function Xe(e){switch(e){case!1:return 0;case`gzip`:return 1;case`deflate`:return 2;default:throw O(`InternalError`,`unsupported compression kind: ${String(e)}`)}}function Ze(e){switch(e){case 0:return!1;case 1:return`gzip`;case 2:return`deflate`;default:throw O(`CorruptionError`,`invalid compression tag: ${e}`)}}function Qe(){return O(`UnsupportedPlatformError`,`CompressionStream and DecompressionStream are required for moyodb compression`)}function $e(){if(typeof CompressionStream!=`function`||typeof DecompressionStream!=`function`)throw Qe()}function et(e){let t=4294967295;for(let n of e)t=t>>>8^Ye[(t^n)&255];return(t^4294967295)>>>0}function k(e,t,n,r){let i=new Uint8Array(18+r.byteLength);i.set(e,0),i[8]=1,i[9]=t;let a=new DataView(i.buffer,i.byteOffset,18);return a.setUint32(10,n,!0),a.setUint32(14,et(r),!0),i.set(r,18),i}function tt(e){let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer}function nt(e,t){if(t.byteLength<18)return null;for(let n=0;n<e.byteLength;n+=1)if(t[n]!==e[n])return null;let n=new DataView(t.buffer,t.byteOffset,18);return{version:t[8],kindTag:t[9],rawLength:n.getUint32(10,!0),payloadChecksum:n.getUint32(14,!0)}}async function rt(e,t){$e();let n;try{n=new Blob([tt(e)]).stream().pipeThrough(new CompressionStream(t))}catch{throw Qe()}try{return new Uint8Array(await new Response(n).arrayBuffer())}catch(e){throw O(`InternalError`,`failed to compress bytes with ${t}: ${String(e)}`)}}async function it(e,t,n,r){$e();let i;try{i=new Blob([tt(e)]).stream().pipeThrough(new DecompressionStream(t))}catch{throw Qe()}try{return await at(i,n,r)}catch(e){throw O(`CorruptionError`,`failed to decompress ${n}: ${String(e)}`)}}async function at(e,t,n){let r=e.getReader(),i=[],a=0;try{for(let e=await r.read();!e.done;e=await r.read()){let o=e.value;if(a+=o.byteLength,n!==void 0&&a>n)throw await r.cancel(`decompressed ${t} exceeded ${n} bytes`),O(`CorruptionError`,`decompressed ${t} exceeds ${n} byte limit`);i.push(o)}}finally{r.releaseLock()}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.byteLength;return o}function ot(e){let t=(e&12)>>>2;switch(t){case 0:return!1;case 1:return`gzip`;case 2:return`deflate`;default:throw O(`CorruptionError`,`invalid store compression flags: ${t}`)}}async function A(e,t){if(t===!1)return e;if(e.byteLength<1024)return k(D,0,e.byteLength,e);let n=await rt(e,t);return n.byteLength>=e.byteLength?k(D,0,e.byteLength,e):k(D,Xe(t),e.byteLength,n)}async function st(e,t){let n=nt(D,e);if(!n)return e;if(n.version!==1){if(t.strict)throw O(`CorruptionError`,`unsupported value record version: ${n.version}`);return e}let r;try{r=Ze(n.kindTag)}catch(n){if(t.strict)throw n;return e}let i=e.subarray(18);if(et(i)!==n.payloadChecksum){if(t.strict)throw O(`CorruptionError`,`value record checksum mismatch`);return e}if(r===!1){if(i.byteLength!==n.rawLength){if(t.strict)throw O(`CorruptionError`,`value record length mismatch: expected ${n.rawLength} bytes, got ${i.byteLength}`);return e}return i.slice()}if(n.rawLength>qe)throw O(`CorruptionError`,`compressed value advertises ${n.rawLength} decompressed bytes, exceeding the ${qe} byte limit`);let a=await it(i,r,`value record (${r})`,n.rawLength);if(a.byteLength!==n.rawLength)throw O(`CorruptionError`,`decompressed value length mismatch: expected ${n.rawLength} bytes, got ${a.byteLength}`);return a}async function ct(e,t){if(t===!1)return e;let n=await rt(e,t);return k(Ke,Xe(t),e.byteLength,n)}async function lt(e){let t=nt(Ke,e);if(!t)return e;if(t.version!==1)throw O(`CorruptionError`,`unsupported snapshot compression version: ${t.version}`);let n=Ze(t.kindTag);if(n===!1)throw O(`CorruptionError`,`snapshot compression envelope cannot store kind "none"`);let r=e.subarray(18);if(et(r)!==t.payloadChecksum)throw O(`CorruptionError`,`snapshot compression checksum mismatch`);if(t.rawLength>Je)throw O(`CorruptionError`,`compressed snapshot advertises ${t.rawLength} decompressed bytes, exceeding the ${Je} byte limit`);let i=await it(r,n,`snapshot export (${n})`,t.rawLength);if(i.byteLength!==t.rawLength)throw O(`CorruptionError`,`decompressed snapshot length mismatch: expected ${t.rawLength} bytes, got ${i.byteLength}`);return i}var j=class extends Error{constructor(e,t){super(t),this.name=e,Object.setPrototypeOf(this,new.target.prototype)}},ut=class extends j{constructor(e){super(`ReservedStoreNameError`,e)}},M=class extends j{constructor(e){super(`SerializationError`,e)}},N=class extends j{constructor(e){super(`InvalidOpenOptionsError`,e)}};const dt=new TextEncoder,ft=new TextDecoder(`utf-8`,{fatal:!0}),P=Symbol(`moyodb.indexing.missing`),pt=`__browserdb:index:`,F=`__browserdb:indexes`;function I(e){return e.startsWith(`__browserdb:`)}function mt(e){if(I(e))throw new ut(`reserved store name: ${e}`)}function L(e){if(e===void 0)return[];if(!Array.isArray(e))throw new N(`indexes must be an array`);let t=[],n=/* @__PURE__ */ new Set,r=/* @__PURE__ */ new Map;for(let i of e){if(typeof i!=`object`||!i||Array.isArray(i))throw new N(`each index definition must be an object`);let{store:e,name:a,keyPath:o,unique:s}=i;if(typeof e!=`string`||e.length===0)throw new N(`index store must be a non-empty string`);if(typeof a!=`string`||a.length===0)throw new N(`index name must be a non-empty string`);mt(e);let c=Dt(o);if(s!==void 0&&typeof s!=`boolean`)throw new N(`index unique must be a boolean`);let l={store:e,name:a,keyPath:c.paths,compound:c.compound,unique:s??!1,internalStore:At(e,a)},u=gt(l.store,l.name);if(n.has(u))throw new N(`duplicate index definition ${l.store}.${l.name}`);n.add(u);let d=r.get(l.internalStore);if(d&&d!==u)throw new N(`index definitions ${d} and ${u} map to the same internal store ${l.internalStore}`);r.set(l.internalStore,u),t.push(l)}return t.sort(ht),t}function ht(e,n){let r=t(e.store,n.store);if(r!==0)return r;let i=t(e.name,n.name);if(i!==0)return i;let a=Number(e.unique)-Number(n.unique);return a===0?t(kt(e),kt(n)):a}function gt(e,t){return`${e}\u0000${t}`}function _t(e,t,n){return e.find(e=>e.store===t&&e.name===n)??null}function vt(e,t){return e.filter(e=>e.store===t)}function yt(e,t){return T([w(e),w(t)])}function bt(e){return w(JSON.stringify(Et(e)))}function xt(e){let t;try{t=JSON.parse(ft.decode(e))}catch(e){throw new M(`invalid persisted index metadata: ${String(e)}`)}let[n]=L([t]);return n}function St(e,t){return T([e,t])}function Ct(e){let t=Ve(e);if(t.length!==2)throw new M(`invalid index entry key encoding`);return{logicalKey:t[0],primaryKey:t[1]}}function wt(e){return He(T([e]))}function Tt(e={}){Lt(e);let t={};if(e.reverse!==void 0&&(t.reverse=e.reverse),e.limit!==void 0&&(t.limit=e.limit),e.gte&&(t.gte=T([e.gte])),e.gt){let n=E(T([e.gt]));n&&(t.gte=n)}if(e.lt&&(t.lt=T([e.lt])),e.lte){let n=E(T([e.lte]));n&&(t.lt=n)}return t}function R(e,t){let n=Nt(t);if(e.compound){let t=[];for(let r of e.keyPath){let e=Pt(n,r);if(e===P)return null;t.push(Ft(e))}return T(t)}let r=Pt(n,e.keyPath[0]);return r===P?null:Ft(r)}function z(e){return e.map(e=>({store:e.store,name:e.name,keyPath:[...e.keyPath],compound:e.compound,unique:e.unique,internalStore:e.internalStore}))}function B(e){return e.map(Et)}function Et(e){return{store:e.store,name:e.name,keyPath:e.compound?[...e.keyPath]:e.keyPath[0],unique:e.unique}}function Dt(e){if(typeof e==`string`)return Ot(e),{paths:[e],compound:!1};if(!Array.isArray(e)||e.length===0||!e.every(e=>typeof e==`string`))throw new N(`index keyPath must be a non-empty string or non-empty string[]`);for(let t of e)Ot(t);return{paths:[...e],compound:!0}}function Ot(e){if(e.length===0)throw new N(`index keyPath strings must be non-empty`);if(e.startsWith(`.`)||e.endsWith(`.`)||e.includes(`..`))throw new N(`invalid index keyPath: ${e}`)}function kt(e){return e.compound?`[${e.keyPath.join(`,`)}]`:e.keyPath[0]}function At(e,t){let n=jt(w(e)),r=jt(w(t)),i=`${pt}${n}:${r}`;if(dt.encode(i).length<=255)return i;let a=w(gt(e,t));return`${pt}h:${Mt(a)}`}function jt(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/u,``)}function Mt(e){let t=14695981039346656037n;for(let n of e)t^=BigInt(n),t=t*1099511628211n&18446744073709551615n;return t.toString(16).padStart(16,`0`)}function Nt(e){try{return JSON.parse(ft.decode(e))}catch(e){throw new M(`indexed values must be valid UTF-8 JSON: ${String(e)}`)}}function Pt(e,t){let n=e;for(let e of t.split(`.`)){if(n==null)return P;let t=Object(n);if(!(e in t))return P;n=Reflect.get(t,e)}return n}function Ft(e){if(e instanceof Uint8Array||e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return Be(e);throw new M(`indexed keyPath values must resolve to string, number, boolean, null, or Uint8Array; got ${It(e)}`)}function It(e){return Array.isArray(e)?`array`:e===null?`null`:typeof e}function Lt(e){if(e.gt!==void 0&&e.gte!==void 0)throw TypeError(`index range cannot specify both gt and gte`);if(e.lt!==void 0&&e.lte!==void 0)throw TypeError(`index range cannot specify both lt and lte`)}function V(e){return BigInt(e)}function H(e){return typeof e==`bigint`?Number(e):e}function U(e){return e==null?null:H(e)}function W(e){return e.ttl===void 0?e:{...e,ttl:V(e.ttl)}}function Rt(e){let t={};return e.gt!==void 0&&(t.gt=e.gt),e.gte!==void 0&&(t.gte=e.gte),e.lt!==void 0&&(t.lt=e.lt),e.lte!==void 0&&(t.lte=e.lte),e.reverse!==void 0&&(t.reverse=e.reverse),e.limit!==void 0&&(t.limit=e.limit),t}const zt={},Bt=/* @__PURE__ */ new Uint8Array,Vt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function G(e,t,n){let r=e.get(t);if(r!==void 0)return r;let i=n();return e.set(t,i),i}function Ht(t){return e(t)&&t.type===`moyodb:persistence-bridge:response`&&typeof t.id==`number`&&typeof t.granted==`boolean`}var Ut=class{port=null;nextRequestId=1;pending=/* @__PURE__ */ new Map;readyResolve=null;ready;constructor(){this.ready=new Promise(e=>{this.readyResolve=e}),self.addEventListener(`message`,this.handleInitMessage)}async persisted(){return this.request(`persisted`)}async persist(){return this.request(`persist`)}close(){self.removeEventListener(`message`,this.handleInitMessage),this.readyResolve&&=(this.readyResolve(null),null),this.port&&=(this.port.onmessage=null,this.port.close(),null);for(let e of this.pending.values())e.resolve(!1);this.pending.clear()}async request(e){let t=await this.ready;return!t||this.port!==t?!1:new Promise(n=>{let r=this.nextRequestId;this.nextRequestId+=1,this.pending.set(r,{resolve:n});let i={type:`moyodb:persistence-bridge:request`,id:r,op:e};try{t.postMessage(i)}catch{this.pending.delete(r),n(!1)}})}handleInitMessage=e=>{if(e.data?.type!==`moyodb:persistence-bridge:init`||e.ports.length===0)return;let t=e.ports[0];if(this.port){t.close();return}this.port=t,this.port.onmessage=this.handleResponse,this.port.start(),self.removeEventListener(`message`,this.handleInitMessage),this.readyResolve?.(t),this.readyResolve=null};handleResponse=e=>{let t=e.data;if(!Ht(t))return;let n=this.pending.get(t.id);n&&(this.pending.delete(t.id),n.resolve(!!t.granted))}};async function Wt(){let e=navigator.storage;if(typeof e.estimate!=`function`)return{usage:0,quota:0};let t=await e.estimate();return{usage:t.usage??0,quota:t.quota??0}}function Gt(e){let t=``;for(let n=0;n<e.byteLength;n+=1)t+=Vt[e[n]];return t}function K(e,t){if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.byteLength;n+=1)if(e[n]!==t[n])return!1;return!0}function q(e){return e instanceof Uint8Array?e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e:e.slice():new Uint8Array(e)}function Kt(t){if(!e(t))return null;let n=t.name??t.code;return typeof n==`string`?n:null}function J(e,t){return Kt(e)===t}const Y=w(`BDBIDX1`),qt=new TextDecoder(`utf-8`,{fatal:!0});function Jt(e,t){if(t.length===0)return e;let n=w(JSON.stringify(B(t))),r=/* @__PURE__ */ new ArrayBuffer(4);new DataView(r).setUint32(0,n.byteLength,!0);let i=new Uint8Array(e.byteLength+n.byteLength+4+Y.byteLength),a=0;return i.set(e,a),a+=e.byteLength,i.set(n,a),a+=n.byteLength,i.set(new Uint8Array(r),a),a+=4,i.set(Y,a),i}function Yt(e){let t=Y.byteLength;if(e.byteLength<t+4)return{snapshot:e,indexes:[]};let n=e.byteLength-t;if(!K(e.subarray(n),Y))return{snapshot:e,indexes:[]};let r=n-4;if(r<0)return{snapshot:e,indexes:[]};let i=r-new DataView(e.buffer,e.byteOffset+r,4).getUint32(0,!0);if(i<0)throw Z(`CorruptionError`,`invalid snapshot index trailer length`);let a;try{a=JSON.parse(qt.decode(e.subarray(i,r)))}catch(e){throw Z(`CorruptionError`,`invalid snapshot index trailer: ${String(e)}`)}return{snapshot:e.subarray(0,i),indexes:L(a)}}function Xt(e){return new BroadcastChannel(`db:${e}:events`)}function X(e,t){let n=Xt(e);try{n.postMessage({type:t,dbName:e,txid:null})}finally{n.close()}}var Zt=class{releaseResolver=null;requestPromise=null;held=!1;async acquire(e,t){let n=new Promise(e=>{this.releaseResolver=e}),r=`db:${e}:owner`;if(t===0){let t=null,i=new Promise(e=>{t=e}),a=navigator.locks.request(r,{mode:`exclusive`,ifAvailable:!0},async e=>e?(this.held=!0,t?.(!0),await n,!0):(t?.(!1),!1));if(!await i)throw Z(`DatabaseBusyError`,`database ${e} is already owned by another tab`);this.requestPromise=a;return}let i=new AbortController,a=setTimeout(()=>i.abort(),t),o=null,s=new Promise(e=>{o=e});this.requestPromise=navigator.locks.request(r,{mode:`exclusive`,signal:i.signal},async e=>(clearTimeout(a),this.held=!0,o?.(),await n,!0));try{await Promise.race([s,this.requestPromise])}catch{if(!this.held)throw Z(`DatabaseBusyError`,`timed out waiting for ownership of ${e}`)}}async release(){if(this.held){this.releaseResolver?.();try{await this.requestPromise}finally{this.releaseResolver=null,this.requestPromise=null,this.held=!1}}}},Qt=class{dbName=null;engine=null;events=null;lease=null;wasmReady=null;persistenceBridge=new Ut;txChanges=/* @__PURE__ */ new Map;txModes=/* @__PURE__ */ new Map;txIndexSchemas=/* @__PURE__ */ new Map;txIndexSchemaChanged=/* @__PURE__ */ new Set;txStoreCompression=/* @__PURE__ */ new Map;committedIndexes=null;committedStoreCompression=null;openOptions=null;maintenanceOperation=null;async open(e){if(this.engine)return;en(),await $t(),this.dbName=e.dbName,this.events=new BroadcastChannel(`db:${e.dbName}:events`),this.lease=new Zt;let t=null;try{await this.lease.acquire(e.dbName,e.options.ownerWaitMs),t=new(await(this.loadWasm())).WasmEngine,await t.open(e.dbName,{create_if_missing:e.options.createIfMissing,cache_pages:e.options.cachePages}),e.options.changeFeed&&tn(t,e.options.changeFeed),e.options.debugFailpoint&&t.set_failpoint(e.options.debugFailpoint),this.engine=t,this.openOptions=e.options,this.clearRuntimeCaches(),this.maintenanceOperation=null,this.events.postMessage({type:`owner_changed`,dbName:e.dbName,txid:null})}catch(e){throw await this.cleanupAfterFailedOpen(t),$(e)}}async close(){this.ensureNotInMaintenance();let e=this.dbName;this.clearRuntimeCaches();try{this.engine?.close()}catch(e){throw $(e)}finally{this.engine=null,e&&this.events&&this.events.postMessage({type:`db_closed`,dbName:e,txid:null}),this.events?.close(),this.events=null,e&&this.lease&&await this.lease.release(),e&&X(e,`owner_changed`),this.disposePersistenceBridge(),this.lease=null,this.dbName=null,this.openOptions=null,this.maintenanceOperation=null}}async destroy(){this.ensureNotInMaintenance();let e=this.dbName;if(!e)return;let t=null;try{this.rollbackAllTransactions(),this.engine?.abandon(),await(await this.loadWasm()).deleteDB(e),X(e,`db_deleted`)}catch(e){t=e}finally{if(this.engine=null,this.clearRuntimeCaches(),this.events?.close(),this.events=null,this.lease)try{await this.lease.release()}catch(e){t===null&&(t=e)}X(e,`owner_changed`),this.disposePersistenceBridge(),this.lease=null,this.dbName=null,this.openOptions=null,this.maintenanceOperation=null}if(t!==null)throw $(t)}async deleteDB(e){en(),await $t();let t=new Zt,n=null,r=!1;try{await t.acquire(e,0),r=!0,await(await this.loadWasm()).deleteDB(e),X(e,`db_deleted`)}catch(e){n=e}finally{try{await t.release()}catch(e){n===null&&(n=e)}r&&X(e,`owner_changed`)}if(n!==null)throw $(n)}begin(e){this.recoverEngineIfNeeded();let t=this.loadCommittedIndexSchema(),n=new Map(this.loadCommittedStoreCompression()),r=H(this.withEngine(t=>t.begin_tx(e)));return this.txChanges.set(r,/* @__PURE__ */ new Map),this.txModes.set(r,e),this.txIndexSchemas.set(r,t),this.txStoreCompression.set(r,n),Promise.resolve(r)}commit(e){let t=this.txChanges.get(e)??/* @__PURE__ */ new Map,n=this.txIndexSchemaChanged.has(e)?this.txIndexSchemas.get(e):void 0,r=this.txStoreCompression.get(e),i=this.txModes.get(e),a;try{a=H(this.withEngine(t=>t.commit_tx(V(e))))}catch(t){this.cleanupTxState(e);let n=this.recoverEngineIfNeeded();if(!n?.pendingCommitted||n.pendingTxid===null||J(t,`InjectedFailureError`))throw t;a=n.pendingTxid}if(n&&(this.committedIndexes=z(n)),i===`readwrite`&&r&&(this.committedStoreCompression=new Map(r)),this.cleanupTxState(e),this.dbName&&this.events){let e={type:`commit_applied`,dbName:this.dbName,txid:a,stores:this.finalizeTrackedChanges(t)};this.events.postMessage(e)}return Promise.resolve(a)}rollback(e){try{this.withEngine(t=>t.rollback_tx(V(e)))}finally{this.cleanupTxState(e)}return Promise.resolve()}async autocommit(e,t,n){let r=await this.begin(e),i=this[t],a;try{a=await i.apply(this,[r,...n])}catch(e){try{await this.rollback(r)}catch{}throw e}return e===`readwrite`?await this.commit(r):await this.rollback(r),a}createStore(e,t,n={}){let r=n.compression??!1;return this.withEngine(n=>n.create_store(V(e),t,{compression:r})),this.recordStoreCompressionCreate(e,t,r),this.ensureInternalStoresForStore(e,t),this.markStoreTouched(e,t),Promise.resolve()}dropStore(e,t){let n=this.indexesForStoreInTx(e,t);this.withEngine(n=>n.drop_store(V(e),t)),this.recordStoreCompressionDrop(e,t);for(let t of n)this.dropRawStoreIfExists(e,t.internalStore);return this.recordStoreLevelChange(e,t,`drop`),Promise.resolve()}clearStore(e,t){let n=this.indexesForStoreInTx(e,t);this.withEngine(n=>n.clear_store(V(e),t));for(let t of n)this.clearRawStoreIfExists(e,t.internalStore);return this.recordStoreLevelChange(e,t,`clear`),Promise.resolve()}async get(e,t,n){return this.readStoreValue(e,t,n)}async getMany(e,t,n){let r=this.withEngine(r=>r.get_many(V(e),t,n));return I(t)||this.storeCompressionForTx(e,t)===!1?r.map(e=>e===null?null:q(e)):Promise.all(r.map(async n=>n===null?null:this.decodeStoreValue(e,t,q(n))))}async getManyPacked(e,t,n){let r=q(this.withEngine(r=>r.get_many_packed(V(e),t,n)));return I(t)||this.storeCompressionForTx(e,t)===!1?fe(r):Promise.all(pe(r).map(async n=>n===null?null:this.decodeStoreValue(e,t,n)))}has(e,t,n){return Promise.resolve(this.withEngine(r=>r.has(V(e),t,n)))}async put(e,t,n,r,i={}){let a=this.indexesForStoreInTx(e,t);if(a.length===0){let a=await this.encodeStoreValueForWrite(e,t,r),o=this.withEngine(r=>r.put(V(e),t,n,a,W(i)));this.recordPutChange(e,t,n,o);return}let o=await this.readStoreValue(e,t,n),s=a.map(e=>({def:e,oldLogicalKey:o===null?null:R(e,o),newLogicalKey:R(e,r),newPhysicalKey:null}));this.ensureInternalStoresForDefinitions(e,a);for(let t of s)t.newLogicalKey!==null&&(t.newPhysicalKey=this.buildIndexEntryKey(t.def,t.newLogicalKey,n),!(t.oldLogicalKey!==null&&K(t.oldLogicalKey,t.newLogicalKey))&&await this.assertUniqueIndexAvailability(e,t.def,t.newLogicalKey,n));let c=await this.encodeStoreValueForWrite(e,t,r),l=this.withEngine(r=>r.put(V(e),t,n,c,W(i)));for(let t of s)t.oldLogicalKey!==null&&(t.newLogicalKey!==null&&K(t.oldLogicalKey,t.newLogicalKey)||this.deleteIndexEntryIfPresent(e,t.def,t.oldLogicalKey,n));for(let t of s)if(t.newLogicalKey!==null&&!(t.oldLogicalKey!==null&&K(t.oldLogicalKey,t.newLogicalKey))){if(t.newPhysicalKey===null)throw Z(`InternalError`,`missing index entry key`);this.putIndexEntry(e,t.def,t.newPhysicalKey,Bt)}this.recordPutChange(e,t,n,l)}async putMany(e,t,n,r={}){if(n.length!==0){if(this.indexesForStoreInTx(e,t).length===0){let i=await this.encodeEntriesForWrite(e,t,n),a;try{a=this.withEngine(n=>n.put_many(V(e),t,i,W(r)))}catch(r){let i=Q(r);throw this.recordPutChanges(e,t,n,i),r}if(a.length!==n.length)throw Z(`InternalError`,`put_many outcome count mismatch: ${a.length} != ${n.length}`);this.recordPutChanges(e,t,n,a);return}for(let[i,a]of n)await this.put(e,t,i,a,r)}}async putManyPacked(e,t,n,r={}){if(this.indexesForStoreInTx(e,t).length!==0||this.storeCompressionForTx(e,t)!==!1){await this.putMany(e,t,ce(n),r);return}let i=le(n);if(i.length===0)return;let a;try{a=this.withEngine(i=>i.put_many_packed(V(e),t,n,W(r)))}catch(n){let r=Q(n);throw this.recordPutKeyChanges(e,t,i,r),n}if(a.length!==i.length)throw Z(`InternalError`,`put_many_packed outcome count mismatch: ${a.length} != ${i.length}`);this.recordPutKeyChanges(e,t,i,a)}async delete(e,t,n){let r=this.indexesForStoreInTx(e,t),i=r.length===0?null:await this.readStoreValue(e,t,n),a=i===null?[]:r.map(e=>({def:e,logicalKey:R(e,i)}));if(!this.withEngine(r=>r.delete(V(e),t,n)))return this.recordDeleteChange(e,t,n,!1),!1;for(let t of a)t.logicalKey!==null&&this.deleteIndexEntryIfPresent(e,t.def,t.logicalKey,n);return this.recordDeleteChange(e,t,n,!0),!0}async deleteMany(e,t,n){if(n.length!==0){if(this.indexesForStoreInTx(e,t).length===0){let r;try{r=this.withEngine(r=>r.delete_many(V(e),t,n))}catch(r){let i=Q(r);for(let r=0;r<i.length&&r<n.length;r+=1)this.recordDeleteChange(e,t,n[r],i[r]);throw r}if(r.length!==n.length)throw Z(`InternalError`,`delete_many outcome count mismatch: ${r.length} != ${n.length}`);for(let i=0;i<n.length;i+=1)this.recordDeleteChange(e,t,n[i],r[i]);return}for(let r of n)await this.delete(e,t,r)}}async deleteManyPacked(e,t,n){let r=this.indexesForStoreInTx(e,t),i=se(n);if(i.length===0)return;if(r.length!==0){await this.deleteMany(e,t,i);return}let a;try{a=this.withEngine(r=>r.delete_many_packed(V(e),t,n))}catch(n){let r=Q(n);for(let n=0;n<r.length&&n<i.length;n+=1)this.recordDeleteChange(e,t,i[n],r[n]);throw n}if(a.length!==i.length)throw Z(`InternalError`,`delete_many_packed outcome count mismatch: ${a.length} != ${i.length}`);for(let n=0;n<i.length;n+=1)this.recordDeleteChange(e,t,i[n],a[n]===1)}async applyBatch(e,t,n){if(n.length!==0){if(this.indexesForStoreInTx(e,t).length===0){let r=await this.encodeBatchOpsForWrite(e,t,n),i;try{i=this.withEngine(n=>n.apply_batch(V(e),t,r))}catch(r){throw this.recordBatchOutcomes(e,t,n,an(r)),r}if(i.length!==n.length)throw Z(`InternalError`,`apply_batch outcome count mismatch: ${i.length} != ${n.length}`);this.recordBatchOutcomes(e,t,n,i);return}for(let r of n)r.kind===`put`?await this.put(e,t,r.key,r.value):await this.delete(e,t,r.key)}}async applyBatchPacked(e,t,n){if(this.indexesForStoreInTx(e,t).length!==0||this.storeCompressionForTx(e,t)!==!1){let r=ue(n);if(r.length===0)return;await this.applyBatch(e,t,r);return}let r=de(n);if(r.length===0)return;let i;try{i=this.withEngine(r=>r.apply_batch_packed(V(e),t,n))}catch(n){throw this.recordBatchKeyOutcomes(e,t,r,an(n)),n}if(i.length!==r.length)throw Z(`InternalError`,`apply_batch_packed outcome count mismatch: ${i.length} != ${r.length}`);for(let n=0;n<r.length;n+=1){let a=r[n];a.kind===`put`?this.recordPutChange(e,t,a.key,i[n]===1):this.recordDeleteChange(e,t,a.key,i[n]===1)}}async scan(e,t,n){return this.readStoreScan(e,t,n)}async getByIndex(e,t,n,r){let i=this.resolveIndexDefinition(e,t,n),a=await this.loadVisibleIndexPage(e,i,He(r),null,1);return a.rows.length===0?null:a.rows[0].value}async scanByIndex(e,t,n,r={}){let i=this.resolveIndexDefinition(e,t,n),a=[],o=r.limit??1/0,s=null;for(;o>0;){let t=await this.loadVisibleIndexPage(e,i,r,s,Math.min(o,256));if(a.push(...t.rows),o-=t.rows.length,t.cursor===null)break;s=t.cursor}return a}async scanByIndexPage(e,t,n,r,i,a){if(!Number.isSafeInteger(a)||a<=0)throw Z(`InvalidRangeError`,`index scan page limit must be a positive integer`);let o=this.resolveIndexDefinition(e,t,n);return this.loadVisibleIndexPage(e,o,r,i,a)}getIndexes(){return Promise.resolve(B(this.loadCommittedIndexSchema()))}async reconcileIndexes(e,t){let n=L(t);this.ensureRawStore(e,F);let r=this.readIndexSchemaInTx(e),i=new Set(n.map(e=>e.internalStore));for(let t of r)i.has(t.internalStore)||this.dropRawStoreIfExists(e,t.internalStore);this.clearRawStoreIfExists(e,F);for(let t of n){if(this.ensureRawStore(e,t.internalStore),this.clearRawStoreIfExists(e,t.internalStore),this.rawStoreExistsInTx(e,t.store)){let n=await this.readStoreScan(e,t.store,zt);for(let r of n){let n=R(t,r.value);n!==null&&(await this.assertUniqueIndexAvailability(e,t,n,r.key),this.putIndexEntry(e,t,this.buildIndexEntryKey(t,n,r.key),Bt))}}this.putRawValue(e,F,yt(t.store,t.name),bt(t))}this.txIndexSchemas.set(e,z(n)),this.txIndexSchemaChanged.add(e)}listStores(){return Promise.resolve(this.currentStoreNames())}getVersion(){return Promise.resolve(H(this.withEngine(e=>e.get_schema_version())))}async changesSince(e,t={}){let n=t.stores?.filter(e=>!I(e)),r={...t,stores:n?[...n]:void 0,limit:n?t.limit:void 0},i=this.withEngine(t=>t.changes_since(V(e),r)),a=n?new Set(n):null,o=[];for(let e of i.changes){if(I(e.store)||a&&!a.has(e.store))continue;let t=q(e.key),n;e.value!==void 0&&(n=await this.decodeStoreValueForFeed(e.store,q(e.value))),o.push({txId:H(e.txId),store:e.store,key:t,kind:e.kind,value:n})}return{latestTxId:H(i.latestTxId),changes:t.limit===void 0?o:o.slice(0,t.limit)}}setSchemaVersion(e,t){return this.withEngine(n=>n.set_schema_version(V(e),V(t))),Promise.resolve()}async exportSnapshot(e={}){let t=z(this.loadCommittedIndexSchema());return await ct(Jt(q(this.withEngine(e=>e.export_snapshot())),t),e.compression??!1)}async importSnapshot(e){this.rollbackAllTransactions();let t=Yt(await lt(e));this.withEngine(e=>e.import_snapshot(t.snapshot)),this.committedIndexes=[],this.committedStoreCompression=null,await this.applyCommittedIndexSchema(t.indexes)}async reset(){let e=this.dbName;if(!e)throw Z(`InternalError`,`engine is not open`);let t=z(this.loadCommittedIndexSchema());this.rollbackAllTransactions();let n=this.currentStoreNames().map(e=>({store:e,changes:[{key:/* @__PURE__ */ new Uint8Array,kind:`clear`}]})),r=H(this.withEngine(e=>e.reset()));if(this.committedIndexes=[],await this.applyCommittedIndexSchema(t),this.events){let t={type:`commit_applied`,dbName:e,txid:r,stores:n};this.events.postMessage(t)}}async compact(){return this.runCompactionOperation(`compact`)}async rebuild(){return this.runCompactionOperation(`rebuild`)}stats(){let e=this.withEngine(e=>e.stats());return Promise.resolve({...e,db_id:H(e.db_id),catalog_root_page_id:H(e.catalog_root_page_id),next_page_id:H(e.next_page_id),last_committed_txid:H(e.last_committed_txid),last_replayed_wal_offset:H(e.last_replayed_wal_offset),manifest_len:H(e.manifest_len),main_len:H(e.main_len),wal_len:H(e.wal_len),health:rn(e.health),store_count:this.currentStoreNames().length})}async storageInfo(){let[e,t,n]=await Promise.all([this.dbDirectorySize(),Wt(),this.persistenceBridge.persisted()]);return{dbSize:e,originUsage:t.usage,originQuota:t.quota,persisted:n}}async requestPersistence(){return this.persistenceBridge.persist()}setFailpoint(e){return this.withEngine(t=>t.set_failpoint(e)),Promise.resolve()}requireDbName(){if(!this.dbName)throw Z(`InternalError`,`engine is not open`);return this.dbName}ensureNotInMaintenance(){if(this.maintenanceOperation)throw Z(`DatabaseBusyError`,`database ${this.dbName??`database`} is busy: ${this.maintenanceOperation} in progress`)}currentCachePages(){return this.openOptions?.cachePages??256}async dbDirectorySize(){return(await this.loadWasm()).dbDirectorySize(this.requireDbName())}async applyCommittedIndexSchema(e){let t=z(e);if(t.length===0){this.committedIndexes=[];return}let n=H(this.withEngine(e=>e.begin_tx(`readwrite`),{allowDuringMaintenance:!0}));this.txChanges.set(n,/* @__PURE__ */ new Map),this.txModes.set(n,`readwrite`),this.txStoreCompression.set(n,new Map(this.loadCommittedStoreCompression()));try{await this.reconcileIndexes(n,B(t)),this.withEngine(e=>e.commit_tx(V(n)),{allowDuringMaintenance:!0}),this.committedIndexes=z(t)}catch(e){try{this.withEngine(e=>e.rollback_tx(V(n)),{allowDuringMaintenance:!0})}catch{}throw e}finally{this.cleanupTxState(n)}}async runCompactionOperation(e){let t=this.requireDbName();if(this.maintenanceOperation)throw Z(`DatabaseBusyError`,`database ${t} is busy: ${this.maintenanceOperation} in progress`);this.maintenanceOperation=e;let n=performance.now(),r=await this.loadWasm(),i=null,a=null,o=!1;try{let s=await r.dbDirectorySize(t),c=z(this.loadCommittedIndexSchema());this.rollbackAllTransactions({allowDuringMaintenance:!0});let l=await r.readActiveGeneration(t);a=(await r.prepareRebuildTarget(t)).generationName,i=new r.WasmEngine,await i.openGeneration(t,a,{create_if_missing:!0,cache_pages:this.currentCachePages()});let u=i;if(this.withEngine(e=>e.compact_into(u),{allowDuringMaintenance:!0}),e===`rebuild`&&c.length>0){let e=this.engine,t=this.maintenanceOperation;this.engine=u,this.maintenanceOperation=null;try{this.committedIndexes=[],this.committedStoreCompression=null,await this.applyCommittedIndexSchema(c)}finally{this.engine=e,this.maintenanceOperation=t,this.committedStoreCompression=null}}try{await r.swapActiveGeneration(t,a,l),o=!0}catch(e){if(o=await nn(r,t)===a,!o)throw e}let d=this.engine;this.engine=i,i=null,this.committedIndexes=c,this.committedStoreCompression=null;try{d?.abandon()}catch{}try{await r.cleanupInactiveEntries(t)}catch{}let f=await r.dbDirectorySize(t);return{sizeBefore:s,sizeAfter:f,reclaimedBytes:Math.max(0,s-f),durationMs:performance.now()-n}}catch(e){if(!o){this.committedIndexes=null,this.committedStoreCompression=null;try{i?.abandon()}catch{}if(a!==null){let e=await nn(r,t);if(e!==void 0&&e!==a)try{await r.cleanupInactiveEntries(t)}catch{}}}throw $(e)}finally{this.maintenanceOperation=null}}recoverEngineIfNeeded(){let e=this.engine;if(!e||!e.needs_recovery())return null;let t;try{t=e.recover()}catch(e){throw Z(`RecoveryRequiredError`,`database ${this.dbName??``} needs recovery and recovery failed: ${$(e).message}`)}return this.clearRuntimeCaches(),{pendingTxid:U(t.pendingTxid),pendingCommitted:t.pendingCommitted===!0}}cleanupTxState(e){this.txChanges.delete(e),this.txModes.delete(e),this.txIndexSchemas.delete(e),this.txIndexSchemaChanged.delete(e),this.txStoreCompression.delete(e)}getOrCreateTrackedTxn(e){return G(this.txChanges,e,()=>/* @__PURE__ */ new Map)}getOrCreateTrackedStore(e,t){return G(this.getOrCreateTrackedTxn(e),t,()=>({touched:!1,storeLevel:null,keys:/* @__PURE__ */ new Map}))}recordStoreLevelChange(e,t,n){if(I(t))return;let r=this.getOrCreateTrackedStore(e,t);r.touched=!0,r.storeLevel=n,r.keys.clear()}recordPutChange(e,t,n,r){this.recordKeyChange(e,t,n,r,`put`)}recordPutChanges(e,t,n,r){if(I(t))return;let i=this.getOrCreateTrackedStore(e,t);i.touched=!0;let a=Math.min(n.length,r.length);for(let e=0;e<a;e+=1)this.setTrackedKeyChange(i,n[e][0],r[e],`put`)}recordPutKeyChanges(e,t,n,r){if(I(t))return;let i=this.getOrCreateTrackedStore(e,t);i.touched=!0;let a=Math.min(n.length,r.length);for(let e=0;e<a;e+=1)this.setTrackedKeyChange(i,n[e],r[e]===!0||r[e]===1,`put`)}recordDeleteChange(e,t,n,r){r&&this.recordKeyChange(e,t,n,!0,`delete`)}recordKeyChange(e,t,n,r,i){if(I(t))return;let a=this.getOrCreateTrackedStore(e,t);a.touched=!0,this.setTrackedKeyChange(a,n,r,i)}setTrackedKeyChange(e,t,n,r){let i=Gt(t),a=e.keys.get(i);e.keys.set(i,{key:a?.key??t.slice(),baselineExists:a?.baselineExists??n,finalKind:r})}markStoreTouched(e,t){I(t)||(this.getOrCreateTrackedStore(e,t).touched=!0)}recordBatchOutcomes(e,t,n,r){for(let i=0;i<r.length&&i<n.length;i+=1){let a=n[i],o=r[i];a.kind===`put`&&o.kind===`put`?this.recordPutChange(e,t,a.key,o.baselineExists):a.kind===`delete`&&o.kind===`delete`&&this.recordDeleteChange(e,t,a.key,o.deleted)}}recordBatchKeyOutcomes(e,t,n,r){for(let i=0;i<r.length&&i<n.length;i+=1){let a=n[i],o=r[i];a.kind===`put`&&o.kind===`put`?this.recordPutChange(e,t,a.key,o.baselineExists):a.kind===`delete`&&o.kind===`delete`&&this.recordDeleteChange(e,t,a.key,o.deleted)}}finalizeTrackedChanges(e){let t=[];for(let[n,r]of e){if(!r.touched||I(n))continue;let e=[];r.storeLevel!==null&&e.push({key:/* @__PURE__ */ new Uint8Array,kind:r.storeLevel});for(let t of r.keys.values())(t.finalKind!==`delete`||t.baselineExists)&&e.push({key:t.key,kind:t.finalKind});t.push({store:n,changes:e})}return t}rollbackAllTransactions(e={}){if(!this.engine||this.txChanges.size===0){this.clearTxCaches();return}let t=Array.from(this.txChanges.keys());for(let n of t)try{this.withEngine(e=>e.rollback_tx(V(n)),e)}finally{this.cleanupTxState(n)}}currentStoreNames(){return this.allRawStoreNames().filter(e=>!I(e))}allRawStoreNames(){return this.withEngine(e=>e.list_stores())}loadCommittedStoreCompression(){if(this.committedStoreCompression)return this.committedStoreCompression;let e=this.withEngine(e=>e.list_store_configs()),t=/* @__PURE__ */ new Map;for(let n of e){if(typeof n.name!=`string`)throw Z(`CorruptionError`,`invalid store config row: missing name`);let e=typeof n.flags==`bigint`?Number(n.flags):n.flags;if(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)throw Z(`CorruptionError`,`invalid store flags for ${n.name}`);t.set(n.name,ot(e))}return this.committedStoreCompression=t,t}ensureTxStoreCompression(e){return G(this.txStoreCompression,e,()=>/* @__PURE__ */ new Map)}recordStoreCompressionCreate(e,t,n){I(t)||this.ensureTxStoreCompression(e).set(t,n)}recordStoreCompressionDrop(e,t){I(t)||this.ensureTxStoreCompression(e).delete(t)}storeCompressionForTx(e,t){if(I(t))return!1;let n=this.txStoreCompression.get(e);return n?n.get(t)??!1:this.loadCommittedStoreCompression().get(t)??!1}async encodeEntriesForWrite(e,t,n){if(I(t))return n;let r=this.storeCompressionForTx(e,t);if(r===!1)return n;let i=[];for(let[e,t]of n)i.push([e,await A(t,r)]);return i}async encodeBatchOpsForWrite(e,t,n){if(I(t))return n;let r=this.storeCompressionForTx(e,t);if(r===!1)return n;let i=[];for(let e of n)i.push(e.kind===`put`?{kind:`put`,key:e.key,value:await A(e.value,r)}:e);return i}async encodeStoreValueForWrite(e,t,n){return I(t)?n:A(n,this.storeCompressionForTx(e,t))}async decodeStoreValue(e,t,n){return I(t)||this.storeCompressionForTx(e,t)===!1?n:st(n,{strict:!0})}async decodeStoreValueForFeed(e,t){return I(e)?t:st(t,{strict:(this.loadCommittedStoreCompression().get(e)??!1)!==!1})}async readStoreValue(e,t,n){let r=this.readRawValue(e,t,n);return r===null?null:this.decodeStoreValue(e,t,r)}async readStoreScan(e,t,n){let r=this.readRawScan(e,t,n);return I(t)||this.storeCompressionForTx(e,t)===!1?r:await Promise.all(r.map(async n=>({key:n.key,value:await this.decodeStoreValue(e,t,n.value)})))}indexesForStoreInTx(e,t){return vt(this.indexSchemaForTx(e),t)}resolveIndexDefinition(e,t,n){if(!this.rawStoreExistsInTx(e,t))throw Z(`StoreNotFoundError`,`store not found: ${t}`);let r=_t(this.indexSchemaForTx(e),t,n);if(!r)throw Z(`IndexNotFoundError`,`index not found: ${t}.${n}`);return r}indexSchemaForTx(e){let t=this.txIndexSchemas.get(e);if(t)return t;if(this.committedIndexes)return this.committedIndexes;let n=this.readIndexSchemaInTx(e);return this.committedIndexes=z(n),this.committedIndexes}loadCommittedIndexSchema(){if(this.committedIndexes)return this.committedIndexes;let e=H(this.withEngine(e=>e.begin_tx(`readonly`)));try{let t=this.readIndexSchemaInTx(e);return this.committedIndexes=z(t),this.committedIndexes}finally{this.withEngine(t=>t.rollback_tx(V(e)))}}readIndexSchemaInTx(e){if(!this.rawStoreExistsInTx(e,`__browserdb:indexes`))return[];let t=this.readRawScan(e,F,zt).map(e=>xt(e.value));return t.sort(ht),t}rawStoreExistsInTx(e,t){try{return this.readRawScan(e,t,{limit:0}),!0}catch(e){if(J(e,`StoreNotFoundError`))return!1;throw e}}ensureRawStore(e,t){this.ignoreNamedError(`StoreExistsError`,()=>{this.withEngine(n=>n.create_store(V(e),t))})}clearRawStoreIfExists(e,t){this.ignoreNamedError(`StoreNotFoundError`,()=>{this.withEngine(n=>n.clear_store(V(e),t))})}dropRawStoreIfExists(e,t){this.ignoreNamedError(`StoreNotFoundError`,()=>{this.withEngine(n=>n.drop_store(V(e),t))})}ensureInternalStoresForDefinitions(e,t){for(let n of t)this.ensureRawStore(e,n.internalStore)}ensureInternalStoresForStore(e,t){this.ensureInternalStoresForDefinitions(e,this.indexesForStoreInTx(e,t))}readRawValue(e,t,n){let r=this.withEngine(r=>r.get(V(e),t,n));return r===null?null:q(r)}readRawScan(e,t,n){return this.withEngine(r=>r.scan(V(e),t,Rt(n))).map(e=>({key:q(e.key),value:q(e.value)}))}putRawValue(e,t,n,r){this.withEngine(i=>i.put(V(e),t,n,r))}putIndexEntry(e,t,n,r){this.putRawValue(e,t.internalStore,n,r)}deleteIndexEntryIfPresent(e,t,n,r){let i=this.buildIndexEntryKey(t,n,r);this.ignoreNamedError(`StoreNotFoundError`,()=>{this.withEngine(n=>n.delete(V(e),t.internalStore,i))})}buildIndexEntryKey(e,t,n){let r=St(t,n);if(r.byteLength>1024)throw Z(`KeyTooLargeError`,`index key too large for ${e.store}.${e.name}`);return r}async assertUniqueIndexAvailability(e,t,n,r){if(!t.unique)return;let i=this.readRawScan(e,t.internalStore,wt(n));for(let a of i){let i=Ct(a.key);if(K(i.primaryKey,r))continue;let o=await this.readStoreValue(e,t.store,i.primaryKey);if(o===null){this.cleanupStaleIndexRow(e,t,a.key);continue}let s=R(t,o);if(s===null||!K(s,n)){this.cleanupStaleIndexRow(e,t,a.key);continue}throw Z(`UniqueIndexConstraintError`,`unique index constraint violation on ${t.store}.${t.name}`)}}async loadVisibleIndexPage(e,t,n,r,i){let{limit:a,...o}=n,s=Tt(o),c=s.reverse===!0,l=r,u=[];for(;;){let n={...s,limit:512};l!==null&&(c?(delete n.lte,n.lt=l):(delete n.gte,n.gt=l));let r;try{r=this.readRawScan(e,t.internalStore,n)}catch(e){if(J(e,`StoreNotFoundError`))return{rows:[],cursor:null};throw e}for(let n of r){l=n.key;let r=await this.resolveVisibleIndexedRow(e,t,n.key);if(r&&(u.push(r),u.length>=i))return{rows:u,cursor:n.key.slice()}}if(r.length<512)return{rows:u,cursor:null}}}async resolveVisibleIndexedRow(e,t,n){let r=Ct(n),i=await this.readStoreValue(e,t.store,r.primaryKey);if(i===null)return this.cleanupStaleIndexRow(e,t,n),null;let a=R(t,i);return a===null||!K(a,r.logicalKey)?(this.cleanupStaleIndexRow(e,t,n),null):{key:r.primaryKey.slice(),value:i}}cleanupStaleIndexRow(e,t,n){if(this.txModes.get(e)===`readwrite`)try{this.withEngine(r=>r.delete(V(e),t.internalStore,n))}catch{}}async loadWasm(){return this.wasmReady||=(async()=>{let e=new URL(`/engine/moyodb_engine.js`,``+import.meta.url).href,t=new URL(`/engine/moyodb_engine_bg.wasm`,``+import.meta.url).href,n=await import(
2
- /* @vite-ignore */
3
- e);return await n.default({module_or_path:t}),n})(),this.wasmReady}withEngine(e,t={}){if(this.maintenanceOperation&&!t.allowDuringMaintenance&&this.ensureNotInMaintenance(),!this.engine)throw Z(`InternalError`,`engine is not open`);try{return e(this.engine)}catch(e){throw $(e)}}ignoreNamedError(e,t){try{t()}catch(t){if(J(t,e))return;throw t}}clearTxCaches(){this.txChanges.clear(),this.txModes.clear(),this.txIndexSchemas.clear(),this.txIndexSchemaChanged.clear(),this.txStoreCompression.clear()}clearRuntimeCaches(){this.clearTxCaches(),this.committedIndexes=null,this.committedStoreCompression=null}async cleanupAfterFailedOpen(e){try{e?.abandon()}catch{}if(this.engine=null,this.clearRuntimeCaches(),this.events?.close(),this.events=null,this.lease)try{await this.lease.release()}catch{}this.lease=null,this.disposePersistenceBridge(),this.dbName=null,this.openOptions=null,this.maintenanceOperation=null}disposePersistenceBridge(){this.persistenceBridge.close()}};async function $t(){if(typeof navigator.storage.getDirectory!=`function`)throw Z(`UnsupportedPlatformError`,`navigator.storage.getDirectory is unavailable`);if(typeof BroadcastChannel>`u`)throw Z(`UnsupportedPlatformError`,`BroadcastChannel is unavailable`);let e=await(await navigator.storage.getDirectory()).getDirectoryHandle(`__moyodb_capability__`,{create:!0}),t=await e.getFileHandle(`probe.bin`,{create:!0});if(typeof t.createSyncAccessHandle!=`function`)throw Z(`UnsupportedPlatformError`,`createSyncAccessHandle is unavailable`);(await t.createSyncAccessHandle()).close();try{await e.removeEntry(`probe.bin`)}catch{}}function en(){if(!self.isSecureContext)throw Z(`UnsupportedPlatformError`,`moyodb requires a secure context (HTTPS)`)}function Z(e,t){let n=Error(t);return n.name=e,Object.defineProperty(n,"code",{value:e,enumerable:!0,configurable:!0}),n}function tn(e,t){let n=e.change_feed_policy(),r=U(n.retainTxids);if(n.enabled===t.enabled&&(!t.enabled||r===t.retainTxids))return;let i=e.begin_tx(`readwrite`);try{e.set_change_feed_policy(i,{enabled:t.enabled,retainTxids:t.retainTxids}),e.commit_tx(i)}catch(t){try{e.rollback_tx(i)}catch{}throw $(t)}}async function nn(e,t){try{return await e.readActiveGeneration(t)}catch{return}}function rn(e){return e.state===`recoveryRequired`?{state:`recoveryRequired`,reason:e.reason,pendingTxid:U(e.pendingTxid)}:{state:e.state}}function Q(t){return!e(t)||!Array.isArray(t.partial)?[]:t.partial.filter(e=>typeof e==`boolean`)}function an(t){return!e(t)||!Array.isArray(t.partial)?[]:t.partial.filter(t=>!e(t)||typeof t.kind!=`string`?!1:t.kind===`put`&&typeof t.baselineExists==`boolean`||t.kind===`delete`&&typeof t.deleted==`boolean`)}function $(t){if(t instanceof Error)return t;if(e(t)){let e=Z(typeof t.code==`string`?t.code:typeof t.name==`string`?t.name:`Error`,typeof t.message==`string`?t.message:`Unknown error`);return`partial`in t&&Object.defineProperty(e,"partial",{value:t.partial,enumerable:!0,configurable:!0}),e}return Z(`Error`,String(t))}Me(new Qt);
4
- //# sourceMappingURL=worker-R2dy1Ju5.js.map