@automerge/subduction 0.8.1 → 0.9.0

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.
Files changed (32) hide show
  1. package/dist/cjs/wasm-base64.cjs +1 -1
  2. package/dist/cjs/web-bindings.cjs +308 -87
  3. package/dist/cjs/web.cjs +309 -88
  4. package/dist/esm/wasm-base64.js +1 -1
  5. package/dist/iife/index.js +309 -88
  6. package/dist/index.d.ts +87 -24
  7. package/dist/subduction.wasm +0 -0
  8. package/dist/wasm_bindgen/bundler/snippets/subduction_wasm-0ed7fd66cebca59f/inline0.js +9 -0
  9. package/dist/wasm_bindgen/bundler/subduction_wasm.d.ts +87 -24
  10. package/dist/wasm_bindgen/bundler/subduction_wasm_bg.js +294 -96
  11. package/dist/wasm_bindgen/bundler/subduction_wasm_bg.wasm +0 -0
  12. package/dist/wasm_bindgen/bundler/subduction_wasm_bg.wasm.d.ts +28 -20
  13. package/dist/wasm_bindgen/nodejs/snippets/subduction_wasm-0ed7fd66cebca59f/inline0.js +9 -0
  14. package/dist/wasm_bindgen/nodejs/subduction_wasm.cjs +296 -96
  15. package/dist/wasm_bindgen/nodejs/subduction_wasm.d.ts +87 -24
  16. package/dist/wasm_bindgen/nodejs/subduction_wasm_bg.wasm +0 -0
  17. package/dist/wasm_bindgen/nodejs/subduction_wasm_bg.wasm.d.ts +28 -20
  18. package/dist/wasm_bindgen/web/snippets/subduction_wasm-0ed7fd66cebca59f/inline0.js +9 -0
  19. package/dist/wasm_bindgen/web/subduction_wasm.d.ts +115 -44
  20. package/dist/wasm_bindgen/web/subduction_wasm.js +296 -96
  21. package/dist/wasm_bindgen/web/subduction_wasm_bg.wasm +0 -0
  22. package/dist/wasm_bindgen/web/subduction_wasm_bg.wasm.d.ts +28 -20
  23. package/package.json +1 -1
  24. /package/dist/wasm_bindgen/bundler/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline0.js +0 -0
  25. /package/dist/wasm_bindgen/bundler/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline1.js +0 -0
  26. /package/dist/wasm_bindgen/bundler/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline2.js +0 -0
  27. /package/dist/wasm_bindgen/nodejs/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline0.js +0 -0
  28. /package/dist/wasm_bindgen/nodejs/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline1.js +0 -0
  29. /package/dist/wasm_bindgen/nodejs/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline2.js +0 -0
  30. /package/dist/wasm_bindgen/web/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline0.js +0 -0
  31. /package/dist/wasm_bindgen/web/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline1.js +0 -0
  32. /package/dist/wasm_bindgen/web/snippets/{sedimentree_wasm-68c0499598a3382c → sedimentree_wasm-1de4a01519b0f11f}/inline2.js +0 -0
@@ -63,11 +63,33 @@ __export(subduction_wasm_exports, {
63
63
  });
64
64
  module.exports = __toCommonJS(subduction_wasm_exports);
65
65
 
66
- // subduction_wasm/dist/wasm_bindgen/web/snippets/sedimentree_wasm-68c0499598a3382c/inline2.js
66
+ // subduction_wasm/dist/wasm_bindgen/web/snippets/sedimentree_wasm-1de4a01519b0f11f/inline2.js
67
67
  function tryIntoJsSedimentreeIdsArray(xs) {
68
68
  return xs;
69
69
  }
70
70
 
71
+ // subduction_wasm/dist/wasm_bindgen/web/snippets/subduction_wasm-0ed7fd66cebca59f/inline0.js
72
+ var inline0_exports = {};
73
+ __export(inline0_exports, {
74
+ makeOpenPolicy: () => makeOpenPolicy
75
+ });
76
+ function makeOpenPolicy() {
77
+ return {
78
+ authorizeConnect() {
79
+ return Promise.resolve();
80
+ },
81
+ authorizeFetch() {
82
+ return Promise.resolve();
83
+ },
84
+ authorizePut() {
85
+ return Promise.resolve();
86
+ },
87
+ filterAuthorizedFetch(_peer, ids) {
88
+ return Promise.resolve(ids);
89
+ }
90
+ };
91
+ }
92
+
71
93
  // subduction_wasm/dist/wasm_bindgen/web/subduction_wasm.js
72
94
  var import_meta = {};
73
95
  var AuthenticatedLongPoll = class _AuthenticatedLongPoll {
@@ -149,7 +171,7 @@ var AuthenticatedTransport = class _AuthenticatedTransport {
149
171
  *
150
172
  * # Arguments
151
173
  *
152
- * * `transport` - A `Transport` implementing `sendBytes`/`recvBytes`/`disconnect`
174
+ * * `transport` - A `Transport` implementing `sendBytes`/`recvBytes`/`disconnect`/`onDisconnect`
153
175
  * * `signer` - The responder's signer for authentication
154
176
  * * `max_drift_seconds` - Maximum acceptable clock drift in seconds (default: 600)
155
177
  *
@@ -159,10 +181,11 @@ var AuthenticatedTransport = class _AuthenticatedTransport {
159
181
  * @param {Transport} transport
160
182
  * @param {any} signer
161
183
  * @param {number | null} [max_drift_seconds]
184
+ * @param {Function | null} [on_disconnect]
162
185
  * @returns {Promise<AuthenticatedTransport>}
163
186
  */
164
- static accept(transport, signer, max_drift_seconds) {
165
- const ret = wasm.authenticatedtransport_accept(transport, signer, isLikeNone(max_drift_seconds) ? 4294967297 : max_drift_seconds >>> 0);
187
+ static accept(transport, signer, max_drift_seconds, on_disconnect) {
188
+ const ret = wasm.authenticatedtransport_accept(transport, signer, isLikeNone(max_drift_seconds) ? 4294967297 : max_drift_seconds >>> 0, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
166
189
  return ret;
167
190
  }
168
191
  /**
@@ -178,13 +201,13 @@ var AuthenticatedTransport = class _AuthenticatedTransport {
178
201
  * authenticated transport.
179
202
  *
180
203
  * The `transport` object must implement the `Transport` interface
181
- * (`sendBytes`/`recvBytes`/`disconnect`).
204
+ * (`sendBytes`/`recvBytes`/`disconnect`/`onDisconnect`).
182
205
  * The same object is used for both the handshake phase and post-handshake
183
206
  * communication.
184
207
  *
185
208
  * # Arguments
186
209
  *
187
- * * `transport` - A `Transport` implementing `sendBytes`/`recvBytes`/`disconnect`
210
+ * * `transport` - A `Transport` implementing `sendBytes`/`recvBytes`/`disconnect`/`onDisconnect`
188
211
  * * `signer` - The client's signer for authentication
189
212
  * * `expected_peer_id` - The expected server peer ID (verified during handshake)
190
213
  *
@@ -194,11 +217,12 @@ var AuthenticatedTransport = class _AuthenticatedTransport {
194
217
  * @param {Transport} transport
195
218
  * @param {any} signer
196
219
  * @param {PeerId} expected_peer_id
220
+ * @param {Function | null} [on_disconnect]
197
221
  * @returns {Promise<AuthenticatedTransport>}
198
222
  */
199
- static setup(transport, signer, expected_peer_id) {
223
+ static setup(transport, signer, expected_peer_id, on_disconnect) {
200
224
  _assertClass(expected_peer_id, PeerId);
201
- const ret = wasm.authenticatedtransport_setup(transport, signer, expected_peer_id.__wbg_ptr);
225
+ const ret = wasm.authenticatedtransport_setup(transport, signer, expected_peer_id.__wbg_ptr, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
202
226
  return ret;
203
227
  }
204
228
  /**
@@ -211,7 +235,7 @@ var AuthenticatedTransport = class _AuthenticatedTransport {
211
235
  *
212
236
  * # Arguments
213
237
  *
214
- * * `transport` - A `Transport` implementing `sendBytes`/`recvBytes`/`disconnect`
238
+ * * `transport` - A `Transport` implementing `sendBytes`/`recvBytes`/`disconnect`/`onDisconnect`
215
239
  * * `signer` - The client's signer for authentication
216
240
  * * `service_name` - Shared service name for discovery.
217
241
  * Defaults to [`DEFAULT_LOCAL_SERVICE_NAME`] (`"subduction:local"`) if omitted.
@@ -222,12 +246,13 @@ var AuthenticatedTransport = class _AuthenticatedTransport {
222
246
  * @param {Transport} transport
223
247
  * @param {any} signer
224
248
  * @param {string | null} [service_name]
249
+ * @param {Function | null} [on_disconnect]
225
250
  * @returns {Promise<AuthenticatedTransport>}
226
251
  */
227
- static setupDiscover(transport, signer, service_name) {
252
+ static setupDiscover(transport, signer, service_name, on_disconnect) {
228
253
  var ptr0 = isLikeNone(service_name) ? 0 : passStringToWasm0(service_name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
229
254
  var len0 = WASM_VECTOR_LEN;
230
- const ret = wasm.authenticatedtransport_setupDiscover(transport, signer, ptr0, len0);
255
+ const ret = wasm.authenticatedtransport_setupDiscover(transport, signer, ptr0, len0, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
231
256
  return ret;
232
257
  }
233
258
  };
@@ -1296,7 +1321,7 @@ var MessagePortTransport = class _MessagePortTransport {
1296
1321
  wasm.__wbg_messageporttransport_free(ptr, 0);
1297
1322
  }
1298
1323
  /**
1299
- * Disconnect (close the port).
1324
+ * Disconnect (close the port) and fire the `onDisconnect` callback if registered.
1300
1325
  * @returns {Promise<any>}
1301
1326
  */
1302
1327
  disconnect() {
@@ -1313,6 +1338,16 @@ var MessagePortTransport = class _MessagePortTransport {
1313
1338
  MessagePortTransportFinalization.register(this, this.__wbg_ptr, this);
1314
1339
  return this;
1315
1340
  }
1341
+ /**
1342
+ * Register a callback to be invoked when the transport disconnects.
1343
+ *
1344
+ * Part of the [`Transport`](super::JsTransport) interface contract.
1345
+ * Typically called by internal wiring rather than directly by user code.
1346
+ * @param {Function} callback
1347
+ */
1348
+ onDisconnect(callback) {
1349
+ wasm.messageporttransport_onDisconnect(this.__wbg_ptr, callback);
1350
+ }
1316
1351
  /**
1317
1352
  * Receive raw bytes (for the handshake phase).
1318
1353
  * @returns {Promise<any>}
@@ -2299,12 +2334,15 @@ var Subduction = class _Subduction {
2299
2334
  * @param {string | null} [service_name]
2300
2335
  * @param {(digest: Digest) => Depth | null} [hash_metric_override]
2301
2336
  * @param {number | null} [max_pending_blob_requests]
2337
+ * @param {any | null} [policy]
2338
+ * @param {Function | null} [on_remote_heads]
2339
+ * @param {Function | null} [on_ephemeral]
2302
2340
  * @returns {Promise<Subduction>}
2303
2341
  */
2304
- static hydrate(signer, storage, service_name, hash_metric_override, max_pending_blob_requests) {
2342
+ static hydrate(signer, storage, service_name, hash_metric_override, max_pending_blob_requests, policy, on_remote_heads, on_ephemeral) {
2305
2343
  var ptr0 = isLikeNone(service_name) ? 0 : passStringToWasm0(service_name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2306
2344
  var len0 = WASM_VECTOR_LEN;
2307
- const ret = wasm.subduction_hydrate(signer, storage, ptr0, len0, isLikeNone(hash_metric_override) ? 0 : addToExternrefTable0(hash_metric_override), isLikeNone(max_pending_blob_requests) ? 4294967297 : max_pending_blob_requests >>> 0);
2345
+ const ret = wasm.subduction_hydrate(signer, storage, ptr0, len0, isLikeNone(hash_metric_override) ? 0 : addToExternrefTable0(hash_metric_override), isLikeNone(max_pending_blob_requests) ? 4294967297 : max_pending_blob_requests >>> 0, isLikeNone(policy) ? 0 : addToExternrefTable0(policy), isLikeNone(on_remote_heads) ? 0 : addToExternrefTable0(on_remote_heads), isLikeNone(on_ephemeral) ? 0 : addToExternrefTable0(on_ephemeral));
2308
2346
  return ret;
2309
2347
  }
2310
2348
  /**
@@ -2339,6 +2377,9 @@ var Subduction = class _Subduction {
2339
2377
  * When set, clients can connect without knowing the server's peer ID.
2340
2378
  * * `hash_metric_override` - Optional custom depth metric function
2341
2379
  * * `max_pending_blob_requests` - Optional maximum number of pending blob requests (default: 10,000)
2380
+ * * `policy` - Optional JS object implementing authorization.
2381
+ * Must have `authorizeConnect(...)`, `authorizeFetch(...)`, `authorizePut(...)`,
2382
+ * `filterAuthorizedFetch(...)`. Defaults to allow-all.
2342
2383
  *
2343
2384
  * # Panics
2344
2385
  *
@@ -2349,15 +2390,34 @@ var Subduction = class _Subduction {
2349
2390
  * @param {string | null} [service_name]
2350
2391
  * @param {(digest: Digest) => Depth | null} [hash_metric_override]
2351
2392
  * @param {number | null} [max_pending_blob_requests]
2393
+ * @param {any | null} [policy]
2394
+ * @param {Function | null} [on_remote_heads]
2395
+ * @param {Function | null} [on_ephemeral]
2352
2396
  */
2353
- constructor(signer, storage, service_name, hash_metric_override, max_pending_blob_requests) {
2397
+ constructor(signer, storage, service_name, hash_metric_override, max_pending_blob_requests, policy, on_remote_heads, on_ephemeral) {
2354
2398
  var ptr0 = isLikeNone(service_name) ? 0 : passStringToWasm0(service_name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2355
2399
  var len0 = WASM_VECTOR_LEN;
2356
- const ret = wasm.subduction_new(signer, storage, ptr0, len0, isLikeNone(hash_metric_override) ? 0 : addToExternrefTable0(hash_metric_override), isLikeNone(max_pending_blob_requests) ? 4294967297 : max_pending_blob_requests >>> 0);
2400
+ const ret = wasm.subduction_new(signer, storage, ptr0, len0, isLikeNone(hash_metric_override) ? 0 : addToExternrefTable0(hash_metric_override), isLikeNone(max_pending_blob_requests) ? 4294967297 : max_pending_blob_requests >>> 0, isLikeNone(policy) ? 0 : addToExternrefTable0(policy), isLikeNone(on_remote_heads) ? 0 : addToExternrefTable0(on_remote_heads), isLikeNone(on_ephemeral) ? 0 : addToExternrefTable0(on_ephemeral));
2357
2401
  this.__wbg_ptr = ret >>> 0;
2358
2402
  SubductionFinalization.register(this, this.__wbg_ptr, this);
2359
2403
  return this;
2360
2404
  }
2405
+ /**
2406
+ * Publish an ephemeral message to all subscribers of a sedimentree.
2407
+ *
2408
+ * The payload is opaque bytes — encoding is the caller's responsibility.
2409
+ * Messages are fire-and-forget; delivery is best-effort.
2410
+ * @param {SedimentreeId} id
2411
+ * @param {Uint8Array} payload
2412
+ * @returns {Promise<void>}
2413
+ */
2414
+ publishEphemeral(id, payload) {
2415
+ _assertClass(id, SedimentreeId);
2416
+ const ptr0 = passArray8ToWasm0(payload, wasm.__wbindgen_export);
2417
+ const len0 = WASM_VECTOR_LEN;
2418
+ const ret = wasm.subduction_publishEphemeral(this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
2419
+ return ret;
2420
+ }
2361
2421
  /**
2362
2422
  * Remove a Sedimentree and all associated data.
2363
2423
  *
@@ -2401,6 +2461,18 @@ var Subduction = class _Subduction {
2401
2461
  const ret = wasm.subduction_storage(this.__wbg_ptr);
2402
2462
  return ret;
2403
2463
  }
2464
+ /**
2465
+ * Subscribe to ephemeral messages for the given sedimentree IDs
2466
+ * from all connected peers.
2467
+ * @param {SedimentreeId[]} ids
2468
+ * @returns {Promise<void>}
2469
+ */
2470
+ subscribeEphemeral(ids) {
2471
+ const ptr0 = passArrayJsValueToWasm0(ids, wasm.__wbindgen_export);
2472
+ const len0 = WASM_VECTOR_LEN;
2473
+ const ret = wasm.subduction_subscribeEphemeral(this.__wbg_ptr, ptr0, len0);
2474
+ return ret;
2475
+ }
2404
2476
  /**
2405
2477
  * Request batch sync for a given Sedimentree ID from all connected peers.
2406
2478
  *
@@ -2448,6 +2520,18 @@ var Subduction = class _Subduction {
2448
2520
  const ret = wasm.subduction_syncWithPeer(this.__wbg_ptr, to_ask.__wbg_ptr, id.__wbg_ptr, subscribe, !isLikeNone(timeout_milliseconds), isLikeNone(timeout_milliseconds) ? BigInt(0) : timeout_milliseconds);
2449
2521
  return ret;
2450
2522
  }
2523
+ /**
2524
+ * Unsubscribe from ephemeral messages for the given sedimentree IDs
2525
+ * from all connected peers.
2526
+ * @param {SedimentreeId[]} ids
2527
+ * @returns {Promise<void>}
2528
+ */
2529
+ unsubscribeEphemeral(ids) {
2530
+ const ptr0 = passArrayJsValueToWasm0(ids, wasm.__wbindgen_export);
2531
+ const len0 = WASM_VECTOR_LEN;
2532
+ const ret = wasm.subduction_unsubscribeEphemeral(this.__wbg_ptr, ptr0, len0);
2533
+ return ret;
2534
+ }
2451
2535
  };
2452
2536
  if (Symbol.dispose) Subduction.prototype[Symbol.dispose] = Subduction.prototype.free;
2453
2537
  var SubductionHttpLongPoll = class _SubductionHttpLongPoll {
@@ -2471,6 +2555,8 @@ var SubductionHttpLongPoll = class _SubductionHttpLongPoll {
2471
2555
  /**
2472
2556
  * Disconnect from the peer gracefully.
2473
2557
  *
2558
+ * Fires the `onDisconnect` callback if one is registered.
2559
+ *
2474
2560
  * # Errors
2475
2561
  *
2476
2562
  * Returns an error if the disconnect fails.
@@ -2480,6 +2566,16 @@ var SubductionHttpLongPoll = class _SubductionHttpLongPoll {
2480
2566
  const ret = wasm.subductionhttplongpoll_disconnect(this.__wbg_ptr);
2481
2567
  return ret;
2482
2568
  }
2569
+ /**
2570
+ * Register a callback to be invoked when the transport disconnects.
2571
+ *
2572
+ * Part of the [`Transport`](super::JsTransport) interface contract.
2573
+ * Typically called by internal wiring rather than directly by user code.
2574
+ * @param {Function} callback
2575
+ */
2576
+ onDisconnect(callback) {
2577
+ wasm.subductionhttplongpoll_onDisconnect(this.__wbg_ptr, callback);
2578
+ }
2483
2579
  /**
2484
2580
  * Receive the next message frame as raw bytes.
2485
2581
  *
@@ -2528,7 +2624,7 @@ var SubductionLongPoll = class {
2528
2624
  * * `base_url` - The server's HTTP base URL (e.g., `http://localhost:8080`)
2529
2625
  * * `signer` - The client's signer for authentication
2530
2626
  * * `expected_peer_id` - The expected server peer ID (verified during handshake)
2531
- * * `timeout_milliseconds` - Request timeout in milliseconds (default: 30000)
2627
+ * * `on_disconnect` - Optional callback invoked with the peer's [`PeerId`] when the connection closes
2532
2628
  *
2533
2629
  * # Errors
2534
2630
  *
@@ -2536,13 +2632,14 @@ var SubductionLongPoll = class {
2536
2632
  * @param {string} base_url
2537
2633
  * @param {any} signer
2538
2634
  * @param {PeerId} expected_peer_id
2635
+ * @param {Function | null} [on_disconnect]
2539
2636
  * @returns {Promise<AuthenticatedLongPoll>}
2540
2637
  */
2541
- static tryConnect(base_url, signer, expected_peer_id) {
2638
+ static tryConnect(base_url, signer, expected_peer_id, on_disconnect) {
2542
2639
  const ptr0 = passStringToWasm0(base_url, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2543
2640
  const len0 = WASM_VECTOR_LEN;
2544
2641
  _assertClass(expected_peer_id, PeerId);
2545
- const ret = wasm.subductionlongpoll_tryConnect(ptr0, len0, signer, expected_peer_id.__wbg_ptr);
2642
+ const ret = wasm.subductionlongpoll_tryConnect(ptr0, len0, signer, expected_peer_id.__wbg_ptr, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
2546
2643
  return ret;
2547
2644
  }
2548
2645
  /**
@@ -2560,14 +2657,15 @@ var SubductionLongPoll = class {
2560
2657
  * @param {string} base_url
2561
2658
  * @param {any} signer
2562
2659
  * @param {string | null} [service_name]
2660
+ * @param {Function | null} [on_disconnect]
2563
2661
  * @returns {Promise<AuthenticatedLongPoll>}
2564
2662
  */
2565
- static tryDiscover(base_url, signer, service_name) {
2663
+ static tryDiscover(base_url, signer, service_name, on_disconnect) {
2566
2664
  const ptr0 = passStringToWasm0(base_url, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2567
2665
  const len0 = WASM_VECTOR_LEN;
2568
2666
  var ptr1 = isLikeNone(service_name) ? 0 : passStringToWasm0(service_name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2569
2667
  var len1 = WASM_VECTOR_LEN;
2570
- const ret = wasm.subductionlongpoll_tryDiscover(ptr0, len0, signer, ptr1, len1);
2668
+ const ret = wasm.subductionlongpoll_tryDiscover(ptr0, len0, signer, ptr1, len1, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
2571
2669
  return ret;
2572
2670
  }
2573
2671
  };
@@ -2598,6 +2696,19 @@ var SubductionWebSocket = class _SubductionWebSocket {
2598
2696
  const ret = wasm.subductionwebsocket_disconnect(this.__wbg_ptr);
2599
2697
  return ret;
2600
2698
  }
2699
+ /**
2700
+ * Register a callback to be invoked when the WebSocket closes.
2701
+ *
2702
+ * Part of the [`Transport`](super::JsTransport) interface contract.
2703
+ * Typically called by internal wiring (factory methods like `tryConnect`
2704
+ * and `tryDiscover`) rather than directly by user code.
2705
+ *
2706
+ * The callback is fired from the browser WebSocket's `onclose` handler.
2707
+ * @param {Function} callback
2708
+ */
2709
+ onDisconnect(callback) {
2710
+ wasm.subductionwebsocket_onDisconnect(this.__wbg_ptr, callback);
2711
+ }
2601
2712
  /**
2602
2713
  * Receive the next message frame as raw bytes.
2603
2714
  *
@@ -2636,7 +2747,7 @@ var SubductionWebSocket = class _SubductionWebSocket {
2636
2747
  * * `ws` - An existing WebSocket (CONNECTING or OPEN)
2637
2748
  * * `signer` - The client's signer for authentication
2638
2749
  * * `expected_peer_id` - The expected server peer ID (verified during handshake)
2639
- * * `timeout_milliseconds` - Request timeout in milliseconds
2750
+ * * `on_disconnect` - Optional callback invoked with the peer's [`PeerId`] when the connection closes
2640
2751
  *
2641
2752
  * # Errors
2642
2753
  *
@@ -2644,11 +2755,12 @@ var SubductionWebSocket = class _SubductionWebSocket {
2644
2755
  * @param {WebSocket} ws
2645
2756
  * @param {any} signer
2646
2757
  * @param {PeerId} expected_peer_id
2758
+ * @param {Function | null} [on_disconnect]
2647
2759
  * @returns {Promise<AuthenticatedWebSocket>}
2648
2760
  */
2649
- static setup(ws, signer, expected_peer_id) {
2761
+ static setup(ws, signer, expected_peer_id, on_disconnect) {
2650
2762
  _assertClass(expected_peer_id, PeerId);
2651
- const ret = wasm.subductionwebsocket_setup(ws, signer, expected_peer_id.__wbg_ptr);
2763
+ const ret = wasm.subductionwebsocket_setup(ws, signer, expected_peer_id.__wbg_ptr, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
2652
2764
  return ret;
2653
2765
  }
2654
2766
  /**
@@ -2659,6 +2771,8 @@ var SubductionWebSocket = class _SubductionWebSocket {
2659
2771
  * * `address` - The WebSocket URL to connect to
2660
2772
  * * `signer` - The client's signer for authentication
2661
2773
  * * `expected_peer_id` - The expected server peer ID (verified during handshake)
2774
+ * * `on_disconnect` - Optional callback invoked with the peer's [`PeerId`] when the connection closes
2775
+ *
2662
2776
  * # Errors
2663
2777
  *
2664
2778
  * Returns an error if:
@@ -2667,11 +2781,12 @@ var SubductionWebSocket = class _SubductionWebSocket {
2667
2781
  * @param {URL} address
2668
2782
  * @param {any} signer
2669
2783
  * @param {PeerId} expected_peer_id
2784
+ * @param {Function | null} [on_disconnect]
2670
2785
  * @returns {Promise<AuthenticatedWebSocket>}
2671
2786
  */
2672
- static tryConnect(address, signer, expected_peer_id) {
2787
+ static tryConnect(address, signer, expected_peer_id, on_disconnect) {
2673
2788
  _assertClass(expected_peer_id, PeerId);
2674
- const ret = wasm.subductionwebsocket_tryConnect(address, signer, expected_peer_id.__wbg_ptr);
2789
+ const ret = wasm.subductionwebsocket_tryConnect(address, signer, expected_peer_id.__wbg_ptr, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
2675
2790
  return ret;
2676
2791
  }
2677
2792
  /**
@@ -2685,9 +2800,9 @@ var SubductionWebSocket = class _SubductionWebSocket {
2685
2800
  *
2686
2801
  * * `address` - The WebSocket URL to connect to
2687
2802
  * * `signer` - The client's signer for authentication
2688
- * * `timeout_milliseconds` - Request timeout in milliseconds. Defaults to 30000 (30s).
2689
2803
  * * `service_name` - The service name for discovery (e.g., `localhost:8080`).
2690
2804
  * If omitted, the host is extracted from the URL.
2805
+ * * `on_disconnect` - Optional callback invoked with the peer's [`PeerId`] when the connection closes
2691
2806
  *
2692
2807
  * # Errors
2693
2808
  *
@@ -2697,12 +2812,13 @@ var SubductionWebSocket = class _SubductionWebSocket {
2697
2812
  * @param {URL} address
2698
2813
  * @param {any} signer
2699
2814
  * @param {string | null} [service_name]
2815
+ * @param {Function | null} [on_disconnect]
2700
2816
  * @returns {Promise<AuthenticatedWebSocket>}
2701
2817
  */
2702
- static tryDiscover(address, signer, service_name) {
2818
+ static tryDiscover(address, signer, service_name, on_disconnect) {
2703
2819
  var ptr0 = isLikeNone(service_name) ? 0 : passStringToWasm0(service_name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2704
2820
  var len0 = WASM_VECTOR_LEN;
2705
- const ret = wasm.subductionwebsocket_tryDiscover(address, signer, ptr0, len0);
2821
+ const ret = wasm.subductionwebsocket_tryDiscover(address, signer, ptr0, len0, isLikeNone(on_disconnect) ? 0 : addToExternrefTable0(on_disconnect));
2706
2822
  return ret;
2707
2823
  }
2708
2824
  };
@@ -2954,13 +3070,26 @@ var SyncStats = class _SyncStats {
2954
3070
  return ret >>> 0;
2955
3071
  }
2956
3072
  /**
2957
- * Returns true if no data was exchanged.
3073
+ * Returns true if no commits or fragments were transferred.
3074
+ *
3075
+ * Note: `remoteHeads` may still be non-empty (heads metadata is not
3076
+ * considered "data" for this check).
2958
3077
  * @returns {boolean}
2959
3078
  */
2960
3079
  get isEmpty() {
2961
3080
  const ret = wasm.syncstats_isEmpty(this.__wbg_ptr);
2962
3081
  return ret !== 0;
2963
3082
  }
3083
+ /**
3084
+ * The remote peer's heads for this sedimentree.
3085
+ * @returns {Digest[]}
3086
+ */
3087
+ get remoteHeads() {
3088
+ const ret = wasm.syncstats_remoteHeads(this.__wbg_ptr);
3089
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
3090
+ wasm.__wbindgen_export5(ret[0], ret[1] * 4, 4);
3091
+ return v1;
3092
+ }
2964
3093
  /**
2965
3094
  * Total items received (commits + fragments).
2966
3095
  * @returns {number}
@@ -3056,37 +3185,37 @@ function start() {
3056
3185
  function __wbg_get_imports() {
3057
3186
  const import0 = {
3058
3187
  __proto__: null,
3059
- __wbg___wasm_refgen_toWasmCommitWithBlob_dd531ffcf07010df: function(arg0) {
3188
+ __wbg___wasm_refgen_toWasmCommitWithBlob_4c1dc5cc453af7eb: function(arg0) {
3060
3189
  const ret = arg0.__wasm_refgen_toWasmCommitWithBlob();
3061
3190
  _assertClass(ret, CommitWithBlob);
3062
3191
  var ptr1 = ret.__destroy_into_raw();
3063
3192
  return ptr1;
3064
3193
  },
3065
- __wbg___wasm_refgen_toWasmDepth_27ce1b98b370f678: function(arg0) {
3194
+ __wbg___wasm_refgen_toWasmDepth_e11bce6176c8257e: function(arg0) {
3066
3195
  const ret = arg0.__wasm_refgen_toWasmDepth();
3067
3196
  _assertClass(ret, Depth);
3068
3197
  var ptr1 = ret.__destroy_into_raw();
3069
3198
  return ptr1;
3070
3199
  },
3071
- __wbg___wasm_refgen_toWasmDigest_f8a8f75af5a76e32: function(arg0) {
3200
+ __wbg___wasm_refgen_toWasmDigest_86d449f5dc99fc6a: function(arg0) {
3072
3201
  const ret = arg0.__wasm_refgen_toWasmDigest();
3073
3202
  _assertClass(ret, Digest);
3074
3203
  var ptr1 = ret.__destroy_into_raw();
3075
3204
  return ptr1;
3076
3205
  },
3077
- __wbg___wasm_refgen_toWasmFragmentWithBlob_c8c0aa6880d18e47: function(arg0) {
3206
+ __wbg___wasm_refgen_toWasmFragmentWithBlob_d7450dc251166eea: function(arg0) {
3078
3207
  const ret = arg0.__wasm_refgen_toWasmFragmentWithBlob();
3079
3208
  _assertClass(ret, FragmentWithBlob);
3080
3209
  var ptr1 = ret.__destroy_into_raw();
3081
3210
  return ptr1;
3082
3211
  },
3083
- __wbg___wasm_refgen_toWasmFragment_1588222a9da0cef6: function(arg0) {
3212
+ __wbg___wasm_refgen_toWasmFragment_03b5e19d20693b4f: function(arg0) {
3084
3213
  const ret = arg0.__wasm_refgen_toWasmFragment();
3085
3214
  _assertClass(ret, Fragment);
3086
3215
  var ptr1 = ret.__destroy_into_raw();
3087
3216
  return ptr1;
3088
3217
  },
3089
- __wbg___wasm_refgen_toWasmLooseCommit_c9b58ceccbe54e38: function(arg0) {
3218
+ __wbg___wasm_refgen_toWasmLooseCommit_bc6f015053af2dd7: function(arg0) {
3090
3219
  const ret = arg0.__wasm_refgen_toWasmLooseCommit();
3091
3220
  _assertClass(ret, LooseCommit);
3092
3221
  var ptr1 = ret.__destroy_into_raw();
@@ -3130,6 +3259,14 @@ function __wbg_get_imports() {
3130
3259
  getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
3131
3260
  getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
3132
3261
  },
3262
+ __wbg___wbindgen_string_get_395e606bd0ee4427: function(arg0, arg1) {
3263
+ const obj = arg1;
3264
+ const ret = typeof obj === "string" ? obj : void 0;
3265
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
3266
+ var len1 = WASM_VECTOR_LEN;
3267
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
3268
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
3269
+ },
3133
3270
  __wbg___wbindgen_throw_6ddd609b62940d55: function(arg0, arg1) {
3134
3271
  throw new Error(getStringFromWasm0(arg0, arg1));
3135
3272
  },
@@ -3154,6 +3291,24 @@ function __wbg_get_imports() {
3154
3291
  const ret = AuthenticatedWebSocket.__wrap(arg0);
3155
3292
  return ret;
3156
3293
  },
3294
+ __wbg_authorizeConnect_0e61e98d289a37c9: function() {
3295
+ return handleError(function(arg0, arg1) {
3296
+ const ret = arg0.authorizeConnect(arg1);
3297
+ return ret;
3298
+ }, arguments);
3299
+ },
3300
+ __wbg_authorizeFetch_88703389e9c295d0: function() {
3301
+ return handleError(function(arg0, arg1, arg2) {
3302
+ const ret = arg0.authorizeFetch(arg1, arg2);
3303
+ return ret;
3304
+ }, arguments);
3305
+ },
3306
+ __wbg_authorizePut_dab9270462803778: function() {
3307
+ return handleError(function(arg0, arg1, arg2, arg3) {
3308
+ const ret = arg0.authorizePut(arg1, arg2, arg3);
3309
+ return ret;
3310
+ }, arguments);
3311
+ },
3157
3312
  __wbg_buffer_60b8043cd926067d: function(arg0) {
3158
3313
  const ret = arg0.buffer;
3159
3314
  return ret;
@@ -3164,9 +3319,26 @@ function __wbg_get_imports() {
3164
3319
  return ret;
3165
3320
  }, arguments);
3166
3321
  },
3167
- __wbg_close_9b95bf80abb12681: function(arg0) {
3322
+ __wbg_call_e133b57c9155d22c: function() {
3323
+ return handleError(function(arg0, arg1) {
3324
+ const ret = arg0.call(arg1);
3325
+ return ret;
3326
+ }, arguments);
3327
+ },
3328
+ __wbg_call_f858478a02f9600f: function() {
3329
+ return handleError(function(arg0, arg1, arg2, arg3, arg4) {
3330
+ const ret = arg0.call(arg1, arg2, arg3, arg4);
3331
+ return ret;
3332
+ }, arguments);
3333
+ },
3334
+ __wbg_close_574e2788efd7bb53: function(arg0) {
3168
3335
  arg0.close();
3169
3336
  },
3337
+ __wbg_close_af26905c832a88cb: function() {
3338
+ return handleError(function(arg0) {
3339
+ arg0.close();
3340
+ }, arguments);
3341
+ },
3170
3342
  __wbg_close_cbf870bdad0aad99: function(arg0) {
3171
3343
  arg0.close();
3172
3344
  },
@@ -3192,11 +3364,11 @@ function __wbg_get_imports() {
3192
3364
  const ret = arg0.data;
3193
3365
  return ret;
3194
3366
  },
3195
- __wbg_deleteAllCommits_d0ac05a9e8ca602d: function(arg0, arg1) {
3367
+ __wbg_deleteAllCommits_b0197e590f7fce60: function(arg0, arg1) {
3196
3368
  const ret = arg0.deleteAllCommits(arg1);
3197
3369
  return ret;
3198
3370
  },
3199
- __wbg_deleteAllFragments_218b2911a6d1dc45: function(arg0, arg1) {
3371
+ __wbg_deleteAllFragments_f884845698f5afb7: function(arg0, arg1) {
3200
3372
  const ret = arg0.deleteAllFragments(arg1);
3201
3373
  return ret;
3202
3374
  },
@@ -3208,7 +3380,7 @@ function __wbg_get_imports() {
3208
3380
  const ret = Digest.__unwrap(arg0);
3209
3381
  return ret;
3210
3382
  },
3211
- __wbg_disconnect_285027c2ec32acf6: function(arg0) {
3383
+ __wbg_disconnect_849aae59f5879e45: function(arg0) {
3212
3384
  const ret = arg0.disconnect();
3213
3385
  return ret;
3214
3386
  },
@@ -3237,6 +3409,12 @@ function __wbg_get_imports() {
3237
3409
  const ret = arg0.fetch(arg1);
3238
3410
  return ret;
3239
3411
  },
3412
+ __wbg_filterAuthorizedFetch_0d6450fa919b271d: function() {
3413
+ return handleError(function(arg0, arg1, arg2) {
3414
+ const ret = arg0.filterAuthorizedFetch(arg1, arg2);
3415
+ return ret;
3416
+ }, arguments);
3417
+ },
3240
3418
  __wbg_fragment_new: function(arg0) {
3241
3419
  const ret = Fragment.__wrap(arg0);
3242
3420
  return ret;
@@ -3289,6 +3467,10 @@ function __wbg_get_imports() {
3289
3467
  const ret = arg0[arg1 >>> 0];
3290
3468
  return ret;
3291
3469
  },
3470
+ __wbg_get_unchecked_329cfe50afab7352: function(arg0, arg1) {
3471
+ const ret = arg0[arg1 >>> 0];
3472
+ return ret;
3473
+ },
3292
3474
  __wbg_has_926ef2ff40b308cf: function() {
3293
3475
  return handleError(function(arg0, arg1) {
3294
3476
  const ret = Reflect.has(arg0, arg1);
@@ -3419,6 +3601,10 @@ function __wbg_get_imports() {
3419
3601
  const ret = result;
3420
3602
  return ret;
3421
3603
  },
3604
+ __wbg_isArray_33b91feb269ff46e: function(arg0) {
3605
+ const ret = Array.isArray(arg0);
3606
+ return ret;
3607
+ },
3422
3608
  __wbg_isSafeInteger_ecd6a7f9c3e053cd: function(arg0) {
3423
3609
  const ret = Number.isSafeInteger(arg0);
3424
3610
  return ret;
@@ -3431,15 +3617,15 @@ function __wbg_get_imports() {
3431
3617
  const ret = arg0.length;
3432
3618
  return ret;
3433
3619
  },
3434
- __wbg_loadAllCommits_cb4633fec4cd1b74: function(arg0, arg1) {
3620
+ __wbg_loadAllCommits_0e97df07ed213aa0: function(arg0, arg1) {
3435
3621
  const ret = arg0.loadAllCommits(arg1);
3436
3622
  return ret;
3437
3623
  },
3438
- __wbg_loadAllFragments_299c1fb6ad9bf5c6: function(arg0, arg1) {
3624
+ __wbg_loadAllFragments_12ecf8f9bd0e0b58: function(arg0, arg1) {
3439
3625
  const ret = arg0.loadAllFragments(arg1);
3440
3626
  return ret;
3441
3627
  },
3442
- __wbg_loadAllSedimentreeIds_524a01a05c3d08cc: function(arg0) {
3628
+ __wbg_loadAllSedimentreeIds_1a18451ef1f8e795: function(arg0) {
3443
3629
  const ret = arg0.loadAllSedimentreeIds();
3444
3630
  return ret;
3445
3631
  },
@@ -3484,7 +3670,7 @@ function __wbg_get_imports() {
3484
3670
  const a = state0.a;
3485
3671
  state0.a = 0;
3486
3672
  try {
3487
- return __wasm_bindgen_func_elem_1476_183(a, state0.b, arg02, arg12);
3673
+ return __wasm_bindgen_func_elem_1605_191(a, state0.b, arg02, arg12);
3488
3674
  } finally {
3489
3675
  state0.a = a;
3490
3676
  }
@@ -3522,7 +3708,7 @@ function __wbg_get_imports() {
3522
3708
  const a = state0.a;
3523
3709
  state0.a = 0;
3524
3710
  try {
3525
- return __wasm_bindgen_func_elem_1476_184(a, state0.b, arg02, arg12);
3711
+ return __wasm_bindgen_func_elem_1605_192(a, state0.b, arg02, arg12);
3526
3712
  } finally {
3527
3713
  state0.a = a;
3528
3714
  }
@@ -3533,6 +3719,10 @@ function __wbg_get_imports() {
3533
3719
  state0.a = state0.b = 0;
3534
3720
  }
3535
3721
  },
3722
+ __wbg_new_typed_bccac67128ed885a: function() {
3723
+ const ret = new Array();
3724
+ return ret;
3725
+ },
3536
3726
  __wbg_new_with_length_825018a1616e9e55: function(arg0) {
3537
3727
  const ret = new Uint8Array(arg0 >>> 0);
3538
3728
  return ret;
@@ -3569,6 +3759,9 @@ function __wbg_get_imports() {
3569
3759
  const ret = Array.of(arg0, arg1);
3570
3760
  return ret;
3571
3761
  },
3762
+ __wbg_onDisconnect_12d6884490508121: function(arg0, arg1) {
3763
+ arg0.onDisconnect(arg1);
3764
+ },
3572
3765
  __wbg_open_e7a9d3d6344572f6: function() {
3573
3766
  return handleError(function(arg0, arg1, arg2, arg3) {
3574
3767
  const ret = arg0.open(getStringFromWasm0(arg1, arg2), arg3 >>> 0);
@@ -3595,7 +3788,7 @@ function __wbg_get_imports() {
3595
3788
  const ret = arg0.port2;
3596
3789
  return ret;
3597
3790
  },
3598
- __wbg_postMessage_1acd85b7323d11a6: function(arg0, arg1) {
3791
+ __wbg_postMessage_0541d6c31330afe3: function(arg0, arg1) {
3599
3792
  arg0.postMessage(arg1);
3600
3793
  },
3601
3794
  __wbg_process_44c7a14e11e9f69e: function(arg0) {
@@ -3631,7 +3824,7 @@ function __wbg_get_imports() {
3631
3824
  const ret = arg0.readyState;
3632
3825
  return ret;
3633
3826
  },
3634
- __wbg_recvBytes_35ad4c7c108ff4dd: function(arg0) {
3827
+ __wbg_recvBytes_c85b12fb48cd7a35: function(arg0) {
3635
3828
  const ret = arg0.recvBytes();
3636
3829
  return ret;
3637
3830
  },
@@ -3651,15 +3844,15 @@ function __wbg_get_imports() {
3651
3844
  return ret;
3652
3845
  }, arguments);
3653
3846
  },
3654
- __wbg_saveCommit_3c8f305f5ed3d86f: function(arg0, arg1, arg2, arg3, arg4) {
3847
+ __wbg_saveCommit_02f095436fc502e0: function(arg0, arg1, arg2, arg3, arg4) {
3655
3848
  const ret = arg0.saveCommit(arg1, arg2, arg3, arg4);
3656
3849
  return ret;
3657
3850
  },
3658
- __wbg_saveFragment_f534165ab0b0d628: function(arg0, arg1, arg2, arg3, arg4) {
3851
+ __wbg_saveFragment_7681b2171b8cfb35: function(arg0, arg1, arg2, arg3, arg4) {
3659
3852
  const ret = arg0.saveFragment(arg1, arg2, arg3, arg4);
3660
3853
  return ret;
3661
3854
  },
3662
- __wbg_saveSedimentreeId_458321e93f49f548: function(arg0, arg1) {
3855
+ __wbg_saveSedimentreeId_c265aaeef5af34b6: function(arg0, arg1) {
3663
3856
  const ret = arg0.saveSedimentreeId(arg1);
3664
3857
  return ret;
3665
3858
  },
@@ -3671,7 +3864,7 @@ function __wbg_get_imports() {
3671
3864
  const ret = SedimentreeId.__unwrap(arg0);
3672
3865
  return ret;
3673
3866
  },
3674
- __wbg_sendBytes_c3a40be4ec4bfd25: function(arg0, arg1) {
3867
+ __wbg_sendBytes_e6262dd74f1c260a: function(arg0, arg1) {
3675
3868
  const ret = arg0.sendBytes(arg1);
3676
3869
  return ret;
3677
3870
  },
@@ -3680,7 +3873,7 @@ function __wbg_get_imports() {
3680
3873
  arg0.send(getArrayU8FromWasm0(arg1, arg2));
3681
3874
  }, arguments);
3682
3875
  },
3683
- __wbg_setTimeout_5e8107dbc66751b5: function(arg0, arg1) {
3876
+ __wbg_setTimeout_7829585928963a1f: function(arg0, arg1) {
3684
3877
  const ret = setTimeout(arg0, arg1);
3685
3878
  return ret;
3686
3879
  },
@@ -3722,7 +3915,7 @@ function __wbg_get_imports() {
3722
3915
  __wbg_set_onerror_901ca711f94a5bbb: function(arg0, arg1) {
3723
3916
  arg0.onerror = arg1;
3724
3917
  },
3725
- __wbg_set_onmessage_3b92dfded4487295: function(arg0, arg1) {
3918
+ __wbg_set_onmessage_29558b29aee9a78a: function(arg0, arg1) {
3726
3919
  arg0.onmessage = arg1;
3727
3920
  },
3728
3921
  __wbg_set_onmessage_6f80ab771bf151aa: function(arg0, arg1) {
@@ -3737,16 +3930,16 @@ function __wbg_get_imports() {
3737
3930
  __wbg_set_onupgradeneeded_860ce42184f987e7: function(arg0, arg1) {
3738
3931
  arg0.onupgradeneeded = arg1;
3739
3932
  },
3740
- __wbg_sign_23c468db7fe0ee83: function(arg0, arg1) {
3741
- const ret = arg0.sign(arg1);
3742
- return ret;
3743
- },
3744
3933
  __wbg_sign_a34d057afd14c54d: function() {
3745
3934
  return handleError(function(arg0, arg1, arg2, arg3, arg4) {
3746
3935
  const ret = arg0.sign(arg1, arg2, getArrayU8FromWasm0(arg3, arg4));
3747
3936
  return ret;
3748
3937
  }, arguments);
3749
3938
  },
3939
+ __wbg_sign_d03455abc6736428: function(arg0, arg1) {
3940
+ const ret = arg0.sign(arg1);
3941
+ return ret;
3942
+ },
3750
3943
  __wbg_signedfragment_new: function(arg0) {
3751
3944
  const ret = SignedFragment.__wrap(arg0);
3752
3945
  return ret;
@@ -3829,7 +4022,7 @@ function __wbg_get_imports() {
3829
4022
  return ret;
3830
4023
  }, arguments);
3831
4024
  },
3832
- __wbg_tryIntoJsSedimentreeIdsArray_6f2961e02ae84900: function() {
4025
+ __wbg_tryIntoJsSedimentreeIdsArray_d6337c0aa0f28604: function() {
3833
4026
  return handleError(function(arg0, arg1) {
3834
4027
  const ret = tryIntoJsSedimentreeIdsArray(arg1);
3835
4028
  const ptr1 = passArrayJsValueToWasm0(ret, wasm.__wbindgen_export);
@@ -3838,7 +4031,7 @@ function __wbg_get_imports() {
3838
4031
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
3839
4032
  }, arguments);
3840
4033
  },
3841
- __wbg_verifyingKey_e2a30e05511820c4: function(arg0) {
4034
+ __wbg_verifyingKey_29533740d75f8cdb: function(arg0) {
3842
4035
  const ret = arg0.verifyingKey();
3843
4036
  return ret;
3844
4037
  },
@@ -3851,41 +4044,39 @@ function __wbg_get_imports() {
3851
4044
  return ret;
3852
4045
  },
3853
4046
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
3854
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_255, __wasm_bindgen_func_elem_552);
4047
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_274, __wasm_bindgen_func_elem_590);
3855
4048
  return ret;
3856
4049
  },
3857
4050
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
3858
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_255, __wasm_bindgen_func_elem_552_1);
4051
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_274, __wasm_bindgen_func_elem_590_1);
3859
4052
  return ret;
3860
4053
  },
3861
4054
  __wbindgen_cast_0000000000000003: function(arg0, arg1) {
3862
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_255, __wasm_bindgen_func_elem_552_2);
4055
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_274, __wasm_bindgen_func_elem_590_2);
3863
4056
  return ret;
3864
4057
  },
3865
4058
  __wbindgen_cast_0000000000000004: function(arg0, arg1) {
3866
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_255, __wasm_bindgen_func_elem_552_3);
4059
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_274, __wasm_bindgen_func_elem_590_3);
3867
4060
  return ret;
3868
4061
  },
3869
4062
  __wbindgen_cast_0000000000000005: function(arg0, arg1) {
3870
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_255, __wasm_bindgen_func_elem_1476);
4063
+ const ret = makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_274, __wasm_bindgen_func_elem_589);
3871
4064
  return ret;
3872
4065
  },
3873
- __wbindgen_cast_0000000000000006: function(arg0) {
3874
- const ret = arg0;
4066
+ __wbindgen_cast_0000000000000006: function(arg0, arg1) {
4067
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_274, __wasm_bindgen_func_elem_1605);
3875
4068
  return ret;
3876
4069
  },
3877
- __wbindgen_cast_0000000000000007: function(arg0, arg1) {
3878
- const ret = getArrayU8FromWasm0(arg0, arg1);
4070
+ __wbindgen_cast_0000000000000007: function(arg0) {
4071
+ const ret = arg0;
3879
4072
  return ret;
3880
4073
  },
3881
4074
  __wbindgen_cast_0000000000000008: function(arg0, arg1) {
3882
- const ret = getStringFromWasm0(arg0, arg1);
4075
+ const ret = getArrayU8FromWasm0(arg0, arg1);
3883
4076
  return ret;
3884
4077
  },
3885
4078
  __wbindgen_cast_0000000000000009: function(arg0, arg1) {
3886
- var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
3887
- wasm.__wbindgen_export5(arg0, arg1 * 4, 4);
3888
- const ret = v0;
4079
+ const ret = getStringFromWasm0(arg0, arg1);
3889
4080
  return ret;
3890
4081
  },
3891
4082
  __wbindgen_cast_000000000000000a: function(arg0, arg1) {
@@ -3912,6 +4103,12 @@ function __wbg_get_imports() {
3912
4103
  const ret = v0;
3913
4104
  return ret;
3914
4105
  },
4106
+ __wbindgen_cast_000000000000000e: function(arg0, arg1) {
4107
+ var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
4108
+ wasm.__wbindgen_export5(arg0, arg1 * 4, 4);
4109
+ const ret = v0;
4110
+ return ret;
4111
+ },
3915
4112
  __wbindgen_init_externref_table: function() {
3916
4113
  const table = wasm.__wbindgen_externrefs;
3917
4114
  const offset = table.grow(4);
@@ -3924,32 +4121,36 @@ function __wbg_get_imports() {
3924
4121
  };
3925
4122
  return {
3926
4123
  __proto__: null,
3927
- "./subduction_wasm_bg.js": import0
4124
+ "./subduction_wasm_bg.js": import0,
4125
+ "./snippets/subduction_wasm-0ed7fd66cebca59f/inline0.js": inline0_exports
3928
4126
  };
3929
4127
  }
3930
- function __wasm_bindgen_func_elem_552(arg0, arg1, arg2) {
3931
- wasm.__wasm_bindgen_func_elem_552(arg0, arg1, arg2);
4128
+ function __wasm_bindgen_func_elem_589(arg0, arg1) {
4129
+ wasm.__wasm_bindgen_func_elem_589(arg0, arg1);
4130
+ }
4131
+ function __wasm_bindgen_func_elem_590(arg0, arg1, arg2) {
4132
+ wasm.__wasm_bindgen_func_elem_590(arg0, arg1, arg2);
3932
4133
  }
3933
- function __wasm_bindgen_func_elem_552_1(arg0, arg1, arg2) {
3934
- wasm.__wasm_bindgen_func_elem_552_1(arg0, arg1, arg2);
4134
+ function __wasm_bindgen_func_elem_590_1(arg0, arg1, arg2) {
4135
+ wasm.__wasm_bindgen_func_elem_590_1(arg0, arg1, arg2);
3935
4136
  }
3936
- function __wasm_bindgen_func_elem_552_2(arg0, arg1, arg2) {
3937
- wasm.__wasm_bindgen_func_elem_552_2(arg0, arg1, arg2);
4137
+ function __wasm_bindgen_func_elem_590_2(arg0, arg1, arg2) {
4138
+ wasm.__wasm_bindgen_func_elem_590_2(arg0, arg1, arg2);
3938
4139
  }
3939
- function __wasm_bindgen_func_elem_552_3(arg0, arg1, arg2) {
3940
- wasm.__wasm_bindgen_func_elem_552_3(arg0, arg1, arg2);
4140
+ function __wasm_bindgen_func_elem_590_3(arg0, arg1, arg2) {
4141
+ wasm.__wasm_bindgen_func_elem_590_3(arg0, arg1, arg2);
3941
4142
  }
3942
- function __wasm_bindgen_func_elem_1476(arg0, arg1, arg2) {
3943
- const ret = wasm.__wasm_bindgen_func_elem_1476(arg0, arg1, arg2);
4143
+ function __wasm_bindgen_func_elem_1605(arg0, arg1, arg2) {
4144
+ const ret = wasm.__wasm_bindgen_func_elem_1605(arg0, arg1, arg2);
3944
4145
  if (ret[1]) {
3945
4146
  throw takeFromExternrefTable0(ret[0]);
3946
4147
  }
3947
4148
  }
3948
- function __wasm_bindgen_func_elem_1476_183(arg0, arg1, arg2, arg3) {
3949
- wasm.__wasm_bindgen_func_elem_1476_183(arg0, arg1, arg2, arg3);
4149
+ function __wasm_bindgen_func_elem_1605_191(arg0, arg1, arg2, arg3) {
4150
+ wasm.__wasm_bindgen_func_elem_1605_191(arg0, arg1, arg2, arg3);
3950
4151
  }
3951
- function __wasm_bindgen_func_elem_1476_184(arg0, arg1, arg2, arg3) {
3952
- wasm.__wasm_bindgen_func_elem_1476_184(arg0, arg1, arg2, arg3);
4152
+ function __wasm_bindgen_func_elem_1605_192(arg0, arg1, arg2, arg3) {
4153
+ wasm.__wasm_bindgen_func_elem_1605_192(arg0, arg1, arg2, arg3);
3953
4154
  }
3954
4155
  var __wbindgen_enum_BinaryType = ["blob", "arraybuffer"];
3955
4156
  var __wbindgen_enum_IdbTransactionMode = ["readonly", "readwrite", "versionchange", "readwriteflush", "cleanup"];
@@ -4174,6 +4375,26 @@ function handleError(f, args) {
4174
4375
  function isLikeNone(x) {
4175
4376
  return x === void 0 || x === null;
4176
4377
  }
4378
+ function makeClosure(arg0, arg1, dtor, f) {
4379
+ const state = { a: arg0, b: arg1, cnt: 1, dtor };
4380
+ const real = (...args) => {
4381
+ state.cnt++;
4382
+ try {
4383
+ return f(state.a, state.b, ...args);
4384
+ } finally {
4385
+ real._wbg_cb_unref();
4386
+ }
4387
+ };
4388
+ real._wbg_cb_unref = () => {
4389
+ if (--state.cnt === 0) {
4390
+ state.dtor(state.a, state.b);
4391
+ state.a = 0;
4392
+ CLOSURE_DTORS.unregister(state);
4393
+ }
4394
+ };
4395
+ CLOSURE_DTORS.register(real, state, state);
4396
+ return real;
4397
+ }
4177
4398
  function makeMutClosure(arg0, arg1, dtor, f) {
4178
4399
  const state = { a: arg0, b: arg1, cnt: 1, dtor };
4179
4400
  const real = (...args) => {