osra 0.6.7 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -96,10 +96,11 @@ var e = Object.defineProperty, t = (t, n) => {
96
96
  let t = m[e];
97
97
  if (!t) throw Error("Unknown typed array type");
98
98
  return t;
99
- }, g = (e) => ee.some((t) => !!t && e instanceof t), _ = (e) => e instanceof WebSocket, v = (e) => !!globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, y = (e) => !!globalThis.ServiceWorker && e instanceof ServiceWorker, b = (e) => !!globalThis.Worker && e instanceof Worker, x = (e) => {
99
+ }, g = (e) => w(e, ee), _ = (e) => e instanceof WebSocket, v = (e) => !!globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, y = (e) => !!globalThis.ServiceWorker && e instanceof ServiceWorker, b = (e) => !!globalThis.Worker && e instanceof Worker, x = (e) => {
100
100
  let t = globalThis.DedicatedWorkerGlobalScope;
101
101
  return !!t && e instanceof t;
102
102
  }, S = (e) => !!globalThis.SharedWorker && e instanceof SharedWorker, C = (e) => e instanceof MessagePort, ne = (e) => !!e && typeof e == "object" && "__OSRA_KEY__" in e && !!e.__OSRA_KEY__, w = (e, t) => {
103
+ if (e === null || typeof e != "object" && typeof e != "function") return !1;
103
104
  for (let n of t) if (n && e instanceof n) return !0;
104
105
  return !1;
105
106
  }, T = (e) => w(e, [globalThis.SharedArrayBuffer]), re = T, ie = (e) => w(e, [
@@ -195,12 +196,12 @@ var fe = (e) => {
195
196
  name: e.name,
196
197
  message: e.message,
197
198
  stack: e.stack || e.toString(),
198
- ...n ? { cause: Q(e.cause, t) } : {},
199
- ...r ? { errors: Q(e.errors, t) } : {},
199
+ ...n ? { cause: Z(e.cause, t) } : {},
200
+ ...r ? { errors: Z(e.errors, t) } : {},
200
201
  ...i ? { isDOMException: !0 } : {}
201
202
  };
202
203
  }, ze = (e, t) => {
203
- let n = e.cause === void 0 ? void 0 : $(e.cause, t), r = n === void 0 ? void 0 : { cause: n };
204
+ let n = e.cause === void 0 ? void 0 : Q(e.cause, t), r = n === void 0 ? void 0 : { cause: n };
204
205
  if (e.isDOMException && typeof DOMException < "u") {
205
206
  let t = new DOMException(e.message, e.name);
206
207
  if (e.stack) try {
@@ -212,7 +213,7 @@ var fe = (e) => {
212
213
  return t;
213
214
  }
214
215
  let i;
215
- if (e.errors !== void 0 && typeof AggregateError < "u") i = AggregateError($(e.errors, t), e.message, r);
216
+ if (e.errors !== void 0 && typeof AggregateError < "u") i = AggregateError(Q(e.errors, t), e.message, r);
216
217
  else {
217
218
  let t = Ie[e.name] ?? Error;
218
219
  i = r === void 0 ? new t(e.message) : new t(e.message, r);
@@ -286,13 +287,13 @@ var fe = (e) => {
286
287
  return {
287
288
  ...N,
288
289
  type: Je,
289
- inner: Q(e.value, t),
290
+ inner: Z(e.value, t),
290
291
  degraded: k(t.transport)
291
292
  };
292
293
  } finally {
293
294
  R--;
294
295
  }
295
- }, rt = (e, t) => $(e.inner, t), it = (e) => w(e, [
296
+ }, rt = (e, t) => Q(e.inner, t), it = (e) => w(e, [
296
297
  globalThis.MessagePort,
297
298
  globalThis.ReadableStream,
298
299
  globalThis.WritableStream,
@@ -393,38 +394,39 @@ var fe = (e) => {
393
394
  try {
394
395
  e();
395
396
  } catch {}
396
- }), U = (e, t) => {
397
+ }), st = (e, t) => {
397
398
  let n = {};
398
399
  return ot.register(e, t, n), () => ot.unregister(n);
399
- }, st = /* @__PURE__ */ t({
400
- box: () => Ct,
401
- createRevivableChannel: () => K,
402
- init: () => vt,
403
- isType: () => yt,
404
- revive: () => G,
405
- type: () => ct
406
- }), ct = "messagePort", lt = 2048, ut = 128, dt = 1024, ft = /* @__PURE__ */ new WeakMap(), W = (e) => {
407
- let t = ft.get(e);
400
+ }, ct = /* @__PURE__ */ t({
401
+ box: () => Ot,
402
+ createRevivableChannel: () => G,
403
+ init: () => yt,
404
+ isType: () => bt,
405
+ postPreBoxed: () => Et,
406
+ revive: () => W,
407
+ type: () => lt
408
+ }), lt = "messagePort", ut = 2048, dt = 128, ft = 1024, pt = /* @__PURE__ */ new WeakMap(), U = (e) => {
409
+ let t = pt.get(e);
408
410
  if (!t) throw Error("osra message-port: connection state missing; did init() run?");
409
411
  return t;
410
- }, pt = (e, t) => {
412
+ }, mt = (e, t) => {
411
413
  let n = e.ports.get(t);
412
414
  return n || (n = {
413
415
  nextSeq: 0,
414
416
  buffer: /* @__PURE__ */ new Map(),
415
417
  outSeq: 0
416
418
  }, e.ports.set(t, n), e.pendingPorts++), n;
417
- }, mt = (e, t) => {
419
+ }, ht = (e, t) => {
418
420
  let n = e.ports.get(t);
419
- if (n && !n.handler && e.pendingPorts--, e.ports.delete(t), e.tombstones.size >= ut) {
421
+ if (n && !n.handler && e.pendingPorts--, e.ports.delete(t), e.tombstones.size >= dt) {
420
422
  let t = e.tombstones.values().next().value;
421
423
  t !== void 0 && e.tombstones.delete(t);
422
424
  }
423
425
  e.tombstones.add(t);
424
- }, ht = (e) => {
426
+ }, gt = (e) => {
425
427
  if (e.handler) for (let t = e.buffer.get(e.nextSeq); t !== void 0; t = e.buffer.get(e.nextSeq)) e.buffer.delete(e.nextSeq), e.nextSeq++, e.handler(t);
426
- }, gt = (e, t) => pt(W(e), t).outSeq++, _t = (e, t, n) => {
427
- let r = W(e);
428
+ }, _t = (e, t) => mt(U(e), t).outSeq++, vt = (e, t, n) => {
429
+ let r = U(e);
428
430
  if (r.tombstones.has(t)) {
429
431
  setTimeout(() => n({
430
432
  type: "message-port-close",
@@ -433,15 +435,15 @@ var fe = (e) => {
433
435
  }));
434
436
  return;
435
437
  }
436
- let i = pt(r, t);
437
- i.handler || r.pendingPorts--, i.handler = n, ht(i);
438
- }, vt = (e) => {
438
+ let i = mt(r, t);
439
+ i.handler || r.pendingPorts--, i.handler = n, gt(i);
440
+ }, yt = (e) => {
439
441
  let t = {
440
442
  ports: /* @__PURE__ */ new Map(),
441
443
  tombstones: /* @__PURE__ */ new Set(),
442
444
  pendingPorts: 0
443
445
  };
444
- ft.set(e, t), e.eventTarget.addEventListener("message", ({ detail: n }) => {
446
+ pt.set(e, t), e.eventTarget.addEventListener("message", ({ detail: n }) => {
445
447
  if (n.type !== "message" && n.type !== "message-port-close" || t.tombstones.has(n.portId)) return;
446
448
  let r = t.ports.get(n.portId);
447
449
  if (n.seq === void 0) {
@@ -449,19 +451,19 @@ var fe = (e) => {
449
451
  return;
450
452
  }
451
453
  if (!r) {
452
- if (t.pendingPorts >= dt) return;
453
- r = pt(t, n.portId);
454
+ if (t.pendingPorts >= ft) return;
455
+ r = mt(t, n.portId);
454
456
  }
455
457
  if (!(n.seq < r.nextSeq)) {
456
- if (r.buffer.size >= lt && !(n.seq === r.nextSeq && r.handler)) {
457
- r.buffer.clear(), mt(t, n.portId), r.handler?.({
458
+ if (r.buffer.size >= ut && !(n.seq === r.nextSeq && r.handler)) {
459
+ r.buffer.clear(), ht(t, n.portId), r.handler?.({
458
460
  type: "message-port-close",
459
461
  remoteUuid: e.remoteUuid,
460
462
  portId: n.portId
461
463
  });
462
464
  return;
463
465
  }
464
- r.buffer.set(n.seq, n), ht(r);
466
+ r.buffer.set(n.seq, n), gt(r);
465
467
  }
466
468
  }), P(e, () => {
467
469
  for (let [n, r] of [...t.ports]) r.handler?.({
@@ -471,9 +473,9 @@ var fe = (e) => {
471
473
  });
472
474
  t.ports.clear(), t.tombstones.clear(), t.pendingPorts = 0;
473
475
  });
474
- }, yt = (e) => e instanceof MessagePort || e instanceof V, bt = (e, t) => {
476
+ }, bt = (e) => e instanceof MessagePort || e instanceof V, xt = (e, t) => {
475
477
  try {
476
- let n = W(e).ports.get(t);
478
+ let n = U(e).ports.get(t);
477
479
  e.sendMessage({
478
480
  type: "message-port-close",
479
481
  remoteUuid: e.remoteUuid,
@@ -481,26 +483,28 @@ var fe = (e) => {
481
483
  seq: n ? n.outSeq++ : 0
482
484
  });
483
485
  } catch {}
484
- }, xt = (e, t, n) => {
486
+ }, St = (e, t, n) => {
485
487
  n ? e.postMessage(t) : e.postMessage(t, B(t));
486
- }, St = (e, t, n) => () => {
488
+ }, Ct = (e, t, n) => () => {
487
489
  let r = e.deref();
488
- r && bt(r, n);
490
+ r && xt(r, n);
489
491
  let i = t.deref();
490
- i && mt(i, n);
491
- }, Ct = (e, t, n) => {
492
+ i && ht(i, n);
493
+ }, wt = /* @__PURE__ */ new WeakSet(), Tt = (e) => e !== null && (typeof e == "object" || typeof e == "function"), Et = (e, t, n) => {
494
+ Tt(t) && wt.add(t), e.postMessage(t, n ?? []);
495
+ }, Dt = (e, t) => Tt(e) && wt.delete(e) ? e : z(() => Z(e, t)), Ot = (e, t, n) => {
492
496
  let r = e instanceof V;
493
497
  if (!r && !k(t.transport)) return {
494
498
  ...N,
495
- type: ct,
499
+ type: lt,
496
500
  port: e,
497
501
  ...n?.autoBox ? { autoBox: !0 } : {}
498
502
  };
499
- let i = W(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i), u = !1, d = () => {
503
+ let i = U(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i), u = !1, d = () => {
500
504
  if (u) return;
501
505
  u = !0;
502
506
  let e = l.deref();
503
- e && mt(e, o), m?.();
507
+ e && ht(e, o), m?.();
504
508
  let t = s.deref();
505
509
  t?.removeEventListener("message", p), t instanceof V && (t._onClose = void 0);
506
510
  }, f = (e) => {
@@ -508,57 +512,57 @@ var fe = (e) => {
508
512
  d(), a.dispatchEvent(new Event("close")), a.close();
509
513
  return;
510
514
  }
511
- xt(a, $(e.data, t), !1);
515
+ St(a, Q(e.data, t), !1);
512
516
  };
513
517
  function p({ data: e }) {
514
518
  t.sendMessage({
515
519
  type: "message",
516
520
  remoteUuid: t.remoteUuid,
517
- data: z(() => Q(e, t)),
521
+ data: Dt(e, t),
518
522
  portId: o,
519
- seq: gt(t, o)
523
+ seq: _t(t, o)
520
524
  });
521
525
  }
522
- let m = U(a, St(c, l, o));
526
+ let m = st(a, Ct(c, l, o));
523
527
  return a.addEventListener("message", p), a.start(), a instanceof V && (a._onClose = () => {
524
- u || (bt(t, o), d());
525
- }), _t(t, o, f), {
528
+ u || (xt(t, o), d());
529
+ }), vt(t, o, f), {
526
530
  ...N,
527
- type: ct,
531
+ type: lt,
528
532
  portId: o,
529
533
  synthetic: r
530
534
  };
531
- }, G = (e, t) => "port" in e ? e.autoBox ? wt(e.port, t) : e.port : Tt(e.portId, t, e.synthetic), wt = (e, t) => {
535
+ }, W = (e, t) => "port" in e ? e.autoBox ? kt(e.port, t) : e.port : At(e.portId, t, e.synthetic), kt = (e, t) => {
532
536
  let n = new EventTarget(), r = ({ data: e }) => {
533
- n.dispatchEvent(new MessageEvent("message", { data: $(e, t) }));
537
+ n.dispatchEvent(new MessageEvent("message", { data: Q(e, t) }));
534
538
  }, i = () => {
535
539
  n.dispatchEvent(new Event("messageerror"));
536
540
  }, a = () => {
537
541
  n.dispatchEvent(new Event("close"));
538
542
  };
539
543
  return e.addEventListener("message", r), e.addEventListener("messageerror", i), e.addEventListener("close", a), n.postMessage = (n, r) => {
540
- let i = z(() => Q(n, t)), a = B(i), o = Array.isArray(r) ? r : [];
544
+ let i = z(() => Z(n, t)), a = B(i), o = Array.isArray(r) ? r : [];
541
545
  e.postMessage(i, o.length ? [...a, ...o] : a);
542
546
  }, n.start = () => e.start(), n.close = () => {
543
547
  e.removeEventListener("message", r), e.removeEventListener("messageerror", i), e.removeEventListener("close", a), e.close();
544
548
  }, n;
545
- }, K = (e) => {
549
+ }, G = (e) => {
546
550
  if (k(e.transport)) {
547
551
  let { port1: t, port2: n } = new H();
548
552
  return {
549
553
  localPort: t,
550
- boxedRemote: Ct(n, e)
554
+ boxedRemote: Ot(n, e)
551
555
  };
552
556
  }
553
557
  let { port1: t, port2: n } = new MessageChannel();
554
558
  return {
555
- localPort: wt(t, e),
556
- boxedRemote: Ct(n, e, { autoBox: !0 })
559
+ localPort: kt(t, e),
560
+ boxedRemote: Ot(n, e, { autoBox: !0 })
557
561
  };
558
- }, Tt = (e, t, n) => {
559
- let r = W(t), { port1: i, port2: a } = n ? new H() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
562
+ }, At = (e, t, n) => {
563
+ let r = U(t), { port1: i, port2: a } = n ? new H() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
560
564
  if (c) return;
561
- c = !0, mt(r, e);
565
+ c = !0, ht(r, e);
562
566
  let t = s.deref();
563
567
  t?.removeEventListener("message", d), t?.close(), f?.();
564
568
  }, u = (e) => {
@@ -573,29 +577,29 @@ var fe = (e) => {
573
577
  return;
574
578
  }
575
579
  let r = s.deref();
576
- r && xt(r, $(e.data, t), n);
580
+ r && St(r, Q(e.data, t), n);
577
581
  }, d = ({ data: n }) => {
578
582
  t.sendMessage({
579
583
  type: "message",
580
584
  remoteUuid: t.remoteUuid,
581
- data: z(() => Q(n, t)),
585
+ data: Dt(n, t),
582
586
  portId: e,
583
- seq: gt(t, e)
587
+ seq: _t(t, e)
584
588
  });
585
- }, f = U(i, () => {
586
- bt(t, e), l();
589
+ }, f = st(i, () => {
590
+ xt(t, e), l();
587
591
  });
588
592
  return i instanceof V && (i._onClose = () => {
589
- c || (bt(t, e), l());
590
- }), a.addEventListener("message", d), a.start(), _t(t, e, u), i;
591
- }, Et = /* @__PURE__ */ t({
592
- box: () => jt,
593
- isType: () => At,
594
- revive: () => Mt,
595
- type: () => Dt
596
- }), Dt = "promise", Ot = (e) => e instanceof Promise, kt = /* @__PURE__ */ new Set(), At = (e) => e instanceof Promise, jt = (e, t) => {
597
- if (!Ot(e)) throw TypeError("Expected Promise");
598
- let { localPort: n, boxedRemote: r } = K(t), i = (e) => {
593
+ c || (xt(t, e), l());
594
+ }), a.addEventListener("message", d), a.start(), vt(t, e, u), i;
595
+ }, jt = /* @__PURE__ */ t({
596
+ box: () => It,
597
+ isType: () => Ft,
598
+ revive: () => Lt,
599
+ type: () => Mt
600
+ }), Mt = "promise", Nt = (e) => e instanceof Promise, Pt = /* @__PURE__ */ new Set(), Ft = (e) => e instanceof Promise, It = (e, t) => {
601
+ if (!Nt(e)) throw TypeError("Expected Promise");
602
+ let { localPort: n, boxedRemote: r } = G(t), i = (e) => {
599
603
  n.postMessage(e), n.close();
600
604
  };
601
605
  return e.then((e) => i({
@@ -606,16 +610,16 @@ var fe = (e) => {
606
610
  error: e
607
611
  })), {
608
612
  ...N,
609
- type: Dt,
613
+ type: Mt,
610
614
  port: r
611
615
  };
612
- }, Mt = (e, t) => {
613
- let n = G(e.port, t);
614
- kt.add(n);
616
+ }, Lt = (e, t) => {
617
+ let n = W(e.port, t);
618
+ Pt.add(n);
615
619
  let r = "portId" in e.port;
616
620
  return new Promise((e, i) => {
617
621
  let a, o = () => {
618
- n.close(), kt.delete(n), a?.();
622
+ n.close(), Pt.delete(n), a?.();
619
623
  };
620
624
  if (r && F(t)) {
621
625
  i(/* @__PURE__ */ Error("osra: connection closed")), o();
@@ -627,14 +631,14 @@ var fe = (e) => {
627
631
  t.type === "resolve" ? e(t.data) : i(t.error), o();
628
632
  }, { once: !0 }), n.start();
629
633
  });
630
- }, Nt = /* @__PURE__ */ t({
631
- box: () => q,
632
- isType: () => Lt,
633
- revive: () => J,
634
- type: () => Pt
635
- }), Pt = "function", Ft = /* @__PURE__ */ new Set(), It = (e) => {
634
+ }, Rt = /* @__PURE__ */ t({
635
+ box: () => K,
636
+ isType: () => Ht,
637
+ revive: () => q,
638
+ type: () => zt
639
+ }), zt = "function", Bt = /* @__PURE__ */ new Set(), Vt = (e) => {
636
640
  e instanceof ReadableStream ? e.locked || e.cancel(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}) : typeof WritableStream < "u" && e instanceof WritableStream && (e.locked || e.abort(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
637
- }, Lt = (e) => typeof e == "function", q = (e, t) => {
641
+ }, Ht = (e) => typeof e == "function", K = (e, t) => {
638
642
  let { port1: n, port2: r } = new H();
639
643
  return n.addEventListener("message", ({ data: n }) => {
640
644
  let [r, i] = n;
@@ -652,7 +656,7 @@ var fe = (e) => {
652
656
  };
653
657
  }
654
658
  if (F(t)) {
655
- n.type === "return" && It(n.value);
659
+ n.type === "return" && Vt(n.value);
656
660
  try {
657
661
  r.close();
658
662
  } catch {}
@@ -660,15 +664,15 @@ var fe = (e) => {
660
664
  }
661
665
  let a = (() => {
662
666
  try {
663
- return Q(n, t);
667
+ return Z(n, t);
664
668
  } catch (e) {
665
- return Q({
669
+ return Z({
666
670
  type: "throw",
667
671
  error: e
668
672
  }, t);
669
673
  }
670
674
  })();
671
- r.postMessage(a, B(a)), queueMicrotask(() => {
675
+ Et(r, a), queueMicrotask(() => {
672
676
  try {
673
677
  r.close();
674
678
  } catch {}
@@ -676,20 +680,20 @@ var fe = (e) => {
676
680
  })();
677
681
  }), n.start(), {
678
682
  ...N,
679
- type: Pt,
680
- port: Ct(r, t)
683
+ type: zt,
684
+ port: Ot(r, t)
681
685
  };
682
- }, J = (e, t) => {
683
- let n = G(e.port, t);
686
+ }, q = (e, t) => {
687
+ let n = W(e.port, t);
684
688
  return ((...e) => new Promise((r, i) => {
685
689
  if (F(t)) {
686
690
  i(/* @__PURE__ */ Error("osra: connection closed"));
687
691
  return;
688
692
  }
689
693
  let { port1: a, port2: o } = new H();
690
- Ft.add(a);
694
+ Bt.add(a);
691
695
  let s, c = () => {
692
- a.close(), Ft.delete(a), s?.();
696
+ a.close(), Bt.delete(a), s?.();
693
697
  };
694
698
  s = P(t, () => {
695
699
  i(/* @__PURE__ */ Error("osra: connection closed")), c();
@@ -697,17 +701,17 @@ var fe = (e) => {
697
701
  let t = e;
698
702
  t.type === "return" ? r(t.value) : i(t.error), c();
699
703
  }, { once: !0 }), a.start();
700
- let l = z(() => Q([o, e], t));
701
- n.postMessage(l, B(l));
704
+ let l = z(() => Z([o, e], t));
705
+ Et(n, l);
702
706
  }));
703
- }, Rt = /* @__PURE__ */ t({
707
+ }, Ut = /* @__PURE__ */ t({
704
708
  MAX_CREDIT_WINDOW: () => 64,
705
- box: () => Wt,
706
- isType: () => Bt,
707
- revive: () => Jt,
708
- type: () => zt
709
- }), zt = "readableStream", Bt = (e) => e instanceof ReadableStream, Vt = 2, Ht = 8, Ut = 4 * 1024 * 1024, Wt = (e, t) => {
710
- let { localPort: n, boxedRemote: r } = K(t), i = e.getReader(), a = $e(), o = 0, s = !1, c = !1, l = (e) => {
709
+ box: () => Yt,
710
+ isType: () => Gt,
711
+ revive: () => $t,
712
+ type: () => Wt
713
+ }), Wt = "readableStream", Gt = (e) => e instanceof ReadableStream, Kt = 2, qt = 8, Jt = 4 * 1024 * 1024, Yt = (e, t) => {
714
+ let { localPort: n, boxedRemote: r } = G(t), i = e.getReader(), a = $e(), o = 0, s = !1, c = !1, l = (e) => {
711
715
  c = !0;
712
716
  try {
713
717
  n.postMessage(e);
@@ -755,12 +759,12 @@ var fe = (e) => {
755
759
  c || (c = !0, i.cancel(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
756
760
  }, { once: !0 }), n.start(), {
757
761
  ...N,
758
- type: zt,
762
+ type: Wt,
759
763
  credit: !0,
760
764
  port: r
761
765
  };
762
- }, Gt = (e) => ArrayBuffer.isView(e) || e instanceof ArrayBuffer ? e.byteLength : typeof e == "string" ? e.length * 2 : typeof Blob < "u" && e instanceof Blob ? e.size : void 0, Kt = (e) => {
763
- let t = !1, n = 0, r, i = [], a = !1, o = !1, s, c, l = () => r === void 0 ? Ht : Math.max(Vt, Math.min(64, Math.floor(Ut / r))), u = () => {
766
+ }, Xt = (e) => ArrayBuffer.isView(e) || e instanceof ArrayBuffer ? e.byteLength : typeof e == "string" ? e.length * 2 : typeof Blob < "u" && e instanceof Blob ? e.size : void 0, Zt = (e) => {
767
+ let t = !1, n = 0, r, i = [], a = !1, o = !1, s, c, l = () => r === void 0 ? qt : Math.max(Kt, Math.min(64, Math.floor(Jt / r))), u = () => {
764
768
  let t = l(), r = n + i.length;
765
769
  if (r > t / 2) return;
766
770
  let a = t - r;
@@ -786,7 +790,7 @@ var fe = (e) => {
786
790
  return;
787
791
  }
788
792
  n--;
789
- let a = Gt(o.value);
793
+ let a = Xt(o.value);
790
794
  if (a !== void 0 && (r = r === void 0 ? a : r * .875 + a * .125), c) {
791
795
  let e = c;
792
796
  c = void 0, e.controller.enqueue(o.value), e.resolve();
@@ -835,7 +839,7 @@ var fe = (e) => {
835
839
  }), queueMicrotask(() => e.close());
836
840
  }
837
841
  });
838
- }, qt = (e) => {
842
+ }, Qt = (e) => {
839
843
  let t = !1;
840
844
  return new ReadableStream({
841
845
  start: (n) => {
@@ -872,16 +876,16 @@ var fe = (e) => {
872
876
  }), queueMicrotask(() => e.close());
873
877
  }
874
878
  });
875
- }, Jt = (e, t) => {
876
- let n = G(e.port, t);
877
- return n.start(), e.credit ? Kt(n) : qt(n);
878
- }, Yt = /* @__PURE__ */ t({
879
- box: () => Qt,
880
- isType: () => Zt,
881
- revive: () => $t,
882
- type: () => Xt
883
- }), Xt = "writableStream", Zt = (e) => e instanceof WritableStream, Qt = (e, t) => {
884
- let { localPort: n, boxedRemote: r } = K(t), i = e.getWriter(), a = !1, o = (e, t) => e.then(() => n.postMessage({ type: "ack" })).catch((e) => n.postMessage({
879
+ }, $t = (e, t) => {
880
+ let n = W(e.port, t);
881
+ return n.start(), e.credit ? Zt(n) : Qt(n);
882
+ }, en = /* @__PURE__ */ t({
883
+ box: () => rn,
884
+ isType: () => nn,
885
+ revive: () => an,
886
+ type: () => tn
887
+ }), tn = "writableStream", nn = (e) => e instanceof WritableStream, rn = (e, t) => {
888
+ let { localPort: n, boxedRemote: r } = G(t), i = e.getWriter(), a = !1, o = (e, t) => e.then(() => n.postMessage({ type: "ack" })).catch((e) => n.postMessage({
885
889
  type: "err",
886
890
  error: e?.message ?? String(e)
887
891
  })).then(() => {
@@ -898,12 +902,12 @@ var fe = (e) => {
898
902
  a || (a = !0, i.abort(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
899
903
  }, { once: !0 }), n.start(), {
900
904
  ...N,
901
- type: Xt,
905
+ type: tn,
902
906
  port: r,
903
907
  ...$e() ? { transferChunks: !0 } : {}
904
908
  };
905
- }, $t = (e, t) => {
906
- let n = G(e.port, t);
909
+ }, an = (e, t) => {
910
+ let n = W(e.port, t);
907
911
  n.start();
908
912
  let r = /* @__PURE__ */ new Set(), i = !1;
909
913
  n.addEventListener("close", () => {
@@ -938,19 +942,19 @@ var fe = (e) => {
938
942
  reason: e
939
943
  })
940
944
  });
941
- }, en = /* @__PURE__ */ t({
942
- box: () => an,
943
- isType: () => nn,
944
- revive: () => on,
945
- type: () => tn
946
- }), tn = "abortSignal", nn = (e) => e instanceof AbortSignal, rn = /* @__PURE__ */ new WeakMap(), an = (e, t) => {
945
+ }, on = /* @__PURE__ */ t({
946
+ box: () => un,
947
+ isType: () => cn,
948
+ revive: () => dn,
949
+ type: () => sn
950
+ }), sn = "abortSignal", cn = (e) => e instanceof AbortSignal, ln = /* @__PURE__ */ new WeakMap(), un = (e, t) => {
947
951
  if (e.aborted) return {
948
952
  ...N,
949
- type: tn,
953
+ type: sn,
950
954
  aborted: !0,
951
- reason: Q(e.reason, t)
955
+ reason: Z(e.reason, t)
952
956
  };
953
- let { localPort: n, boxedRemote: r } = K(t), i = () => {
957
+ let { localPort: n, boxedRemote: r } = G(t), i = () => {
954
958
  n.postMessage({
955
959
  type: "abort",
956
960
  reason: e.reason
@@ -960,35 +964,35 @@ var fe = (e) => {
960
964
  });
961
965
  return e.addEventListener("abort", i, { once: !0 }), {
962
966
  ...N,
963
- type: tn,
967
+ type: sn,
964
968
  aborted: !1,
965
969
  reason: void 0,
966
970
  port: r
967
971
  };
968
- }, on = (e, t) => {
972
+ }, dn = (e, t) => {
969
973
  let n = new AbortController();
970
- if (e.aborted || e.port === void 0) return n.abort($(e.reason, t)), n.signal;
971
- let r = G(e.port, t);
972
- return rn.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
973
- e.type === "abort" && (n.abort($(e.reason, t)), rn.delete(n.signal), r.close());
974
+ if (e.aborted || e.port === void 0) return n.abort(Q(e.reason, t)), n.signal;
975
+ let r = W(e.port, t);
976
+ return ln.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
977
+ e.type === "abort" && (n.abort(Q(e.reason, t)), ln.delete(n.signal), r.close());
974
978
  }), n.signal;
975
- }, sn = /* @__PURE__ */ t({
976
- box: () => un,
977
- isType: () => ln,
978
- revive: () => dn,
979
- type: () => cn
980
- }), cn = "response", ln = (e) => e instanceof Response, un = (e, t) => ({
979
+ }, fn = /* @__PURE__ */ t({
980
+ box: () => hn,
981
+ isType: () => mn,
982
+ revive: () => gn,
983
+ type: () => pn
984
+ }), pn = "response", mn = (e) => e instanceof Response, hn = (e, t) => ({
981
985
  ...N,
982
- type: cn,
986
+ type: pn,
983
987
  status: e.status,
984
988
  statusText: e.statusText,
985
989
  headers: Me(e.headers, t),
986
- body: e.body ? Wt(e.body, t) : null,
990
+ body: e.body ? Yt(e.body, t) : null,
987
991
  url: e.url,
988
992
  redirected: e.redirected
989
- }), dn = (e, t) => {
993
+ }), gn = (e, t) => {
990
994
  if (e.status === 0) return Response.error();
991
- let n = Ne(e.headers, t), r = e.body ? Jt(e.body, t) : null, i = e.status === 101 || e.status === 204 || e.status === 205 || e.status === 304;
995
+ let n = Ne(e.headers, t), r = e.body ? $t(e.body, t) : null, i = e.status === 101 || e.status === 204 || e.status === 205 || e.status === 304;
992
996
  r && i && r.cancel().catch(() => {});
993
997
  let a = new Response(i ? null : r, {
994
998
  status: e.status,
@@ -1002,18 +1006,18 @@ var fe = (e) => {
1002
1006
  value: !0,
1003
1007
  configurable: !0
1004
1008
  }), a;
1005
- }, fn = /* @__PURE__ */ t({
1006
- box: () => hn,
1007
- isType: () => mn,
1008
- revive: () => gn,
1009
- type: () => pn
1010
- }), pn = "request", mn = (e) => e instanceof Request, hn = (e, t) => ({
1009
+ }, _n = /* @__PURE__ */ t({
1010
+ box: () => bn,
1011
+ isType: () => yn,
1012
+ revive: () => xn,
1013
+ type: () => vn
1014
+ }), vn = "request", yn = (e) => e instanceof Request, bn = (e, t) => ({
1011
1015
  ...N,
1012
- type: pn,
1016
+ type: vn,
1013
1017
  method: e.method,
1014
1018
  url: e.url,
1015
1019
  headers: Me(e.headers, t),
1016
- body: e.body ? Wt(e.body, t) : null,
1020
+ body: e.body ? Yt(e.body, t) : null,
1017
1021
  credentials: e.credentials,
1018
1022
  cache: e.cache,
1019
1023
  mode: e.mode,
@@ -1022,8 +1026,8 @@ var fe = (e) => {
1022
1026
  referrerPolicy: e.referrerPolicy,
1023
1027
  integrity: e.integrity,
1024
1028
  keepalive: e.keepalive,
1025
- signal: an(e.signal, t)
1026
- }), gn = (e, t) => {
1029
+ signal: un(e.signal, t)
1030
+ }), xn = (e, t) => {
1027
1031
  let n = Ne(e.headers, t), r = {
1028
1032
  method: e.method,
1029
1033
  headers: n,
@@ -1034,31 +1038,32 @@ var fe = (e) => {
1034
1038
  referrerPolicy: e.referrerPolicy,
1035
1039
  integrity: e.integrity,
1036
1040
  keepalive: e.keepalive,
1037
- signal: on(e.signal, t)
1041
+ signal: dn(e.signal, t)
1038
1042
  };
1039
- return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = Jt(e.body, t), r.duplex = "half"), new Request(e.url, r);
1040
- }, _n = /* @__PURE__ */ t({
1041
- box: () => Tn,
1042
- boxByReference: () => En,
1043
- identity: () => Z,
1044
- isType: () => Cn,
1045
- revive: () => Dn,
1046
- type: () => Y
1047
- }), Y = "identity", vn = (e) => e !== null && (typeof e == "object" || typeof e == "function"), yn = (e) => {
1043
+ return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = $t(e.body, t), r.duplex = "half"), new Request(e.url, r);
1044
+ }, Sn = /* @__PURE__ */ t({
1045
+ box: () => Mn,
1046
+ boxByReference: () => Nn,
1047
+ identity: () => En,
1048
+ isType: () => kn,
1049
+ revive: () => Pn,
1050
+ type: () => J
1051
+ }), J = "identity", Cn = (e) => e !== null && (typeof e == "object" || typeof e == "function"), wn = (e) => {
1048
1052
  if (e === null) return !1;
1049
1053
  let t = typeof e;
1050
1054
  return t === "object" || t === "function" ? !0 : t === "symbol" ? Symbol.keyFor(e) === void 0 : !1;
1051
- }, X = /* @__PURE__ */ new WeakMap(), bn = (e) => {
1052
- let t = X.get(e);
1055
+ }, Y = /* @__PURE__ */ new WeakMap(), Tn = (e) => {
1056
+ let t = Y.get(e);
1053
1057
  if (t !== void 0) return t;
1054
1058
  let n = globalThis.crypto.randomUUID();
1055
- return X.set(e, n), n;
1056
- }, Z = (e) => (vn(e) && bn(e), e), xn = /* @__PURE__ */ new WeakMap(), Sn = (e) => {
1057
- let t = xn.get(e);
1059
+ return Y.set(e, n), n;
1060
+ }, En = (e) => (Cn(e) && Tn(e), e), Dn = /* @__PURE__ */ new WeakMap(), On = (e) => {
1061
+ let t = Dn.get(e);
1058
1062
  if (t) return t;
1059
1063
  let n = /* @__PURE__ */ new Map(), r = {
1060
1064
  idToLocal: n,
1061
1065
  pins: /* @__PURE__ */ new Map(),
1066
+ aliasIds: /* @__PURE__ */ new WeakMap(),
1062
1067
  disposeRegistry: new FinalizationRegistry((t) => {
1063
1068
  if (n.delete(t), !F(e)) try {
1064
1069
  e.sendMessage({
@@ -1069,82 +1074,100 @@ var fe = (e) => {
1069
1074
  } catch {}
1070
1075
  })
1071
1076
  };
1072
- return xn.set(e, r), e.eventTarget.addEventListener("message", ({ detail: e }) => {
1077
+ return Dn.set(e, r), e.eventTarget.addEventListener("message", ({ detail: e }) => {
1073
1078
  e?.type === "identity-dispose" && (r.pins.delete(e.id), r.idToLocal.delete(e.id));
1074
1079
  }), P(e, () => {
1075
1080
  r.pins.clear(), r.idToLocal.clear();
1076
1081
  }), r;
1077
- }, Cn = (e) => vn(e) && X.has(e), wn = (e, t, n) => {
1078
- let r = bn(e);
1082
+ }, kn = (e) => Cn(e) && Y.has(e), An = (e, t) => {
1083
+ let n = t.aliasIds.get(e);
1084
+ if (n !== void 0) return n;
1085
+ let r = Tn(e), i = t.idToLocal.get(r);
1086
+ if (i === void 0 || i.deref() === e) return r;
1087
+ let a = globalThis.crypto.randomUUID();
1088
+ return t.aliasIds.set(e, a), a;
1089
+ }, jn = (e, t, n) => {
1090
+ let r = An(e, n);
1079
1091
  if (n.idToLocal.has(r)) return {
1080
1092
  ...N,
1081
- type: Y,
1093
+ type: J,
1082
1094
  id: r
1083
1095
  };
1084
1096
  let i = t();
1085
- return n.idToLocal.set(r, new WeakRef(e)), n.disposeRegistry.register(e, r), {
1097
+ return n.idToLocal.set(r, new WeakRef(e)), n.disposeRegistry.register(e, r, e), Mr(() => {}, () => {
1098
+ n.idToLocal.delete(r), n.disposeRegistry.unregister(e);
1099
+ }), {
1086
1100
  ...N,
1087
- type: Y,
1101
+ type: J,
1088
1102
  id: r,
1089
1103
  inner: i
1090
1104
  };
1091
- }, Tn = (e, t) => {
1092
- let n = Sn(t), r = () => Er(e, t, Y);
1093
- return yn(e) ? wn(e, r, n) : {
1105
+ }, Mn = (e, t) => {
1106
+ let n = On(t), r = () => Ir(e, t, J);
1107
+ return wn(e) ? jn(e, r, n) : {
1094
1108
  ...N,
1095
- type: Y,
1109
+ type: J,
1096
1110
  id: globalThis.crypto.randomUUID(),
1097
1111
  inner: r()
1098
1112
  };
1099
- }, En = (e, t, n) => wn(e, () => t, Sn(n)), Dn = (e, t) => {
1100
- let n = Sn(t);
1113
+ }, Nn = (e, t, n) => jn(e, () => t, On(n)), Pn = (e, t) => {
1114
+ let n = On(t);
1101
1115
  if (n.pins.has(e.id)) return n.pins.get(e.id);
1102
1116
  let r = n.idToLocal.get(e.id)?.deref();
1103
1117
  if (r !== void 0) return r;
1104
- if (!("inner" in e) || e.inner === void 0) throw Error(`osra identity: received id=${e.id} with no inner payload and nothing local to resolve it to`);
1105
- let i = $(e.inner, t);
1106
- return n.pins.set(e.id, i), yn(i) && (X.has(i) || X.set(i, e.id), n.idToLocal.set(e.id, new WeakRef(i))), i;
1107
- }, On = /* @__PURE__ */ t({
1108
- box: () => An,
1109
- isType: () => kn,
1110
- revive: () => jn,
1118
+ if (!("inner" in e) || e.inner === void 0) {
1119
+ try {
1120
+ t.sendMessage({
1121
+ type: "identity-dispose",
1122
+ remoteUuid: t.remoteUuid,
1123
+ id: e.id
1124
+ });
1125
+ } catch {}
1126
+ throw Error(`osra identity: received id=${e.id} with no inner payload and nothing local to resolve it to`);
1127
+ }
1128
+ let i = Q(e.inner, t);
1129
+ return n.pins.set(e.id, i), wn(i) && (Y.has(i) || Y.set(i, e.id), n.idToLocal.set(e.id, new WeakRef(i))), i;
1130
+ }, Fn = /* @__PURE__ */ t({
1131
+ box: () => Ln,
1132
+ isType: () => In,
1133
+ revive: () => Rn,
1111
1134
  type: () => "map"
1112
- }), kn = (e) => e instanceof Map, An = (e, t) => ({
1135
+ }), In = (e) => e instanceof Map, Ln = (e, t) => ({
1113
1136
  ...N,
1114
1137
  type: "map",
1115
- entries: Array.from(e, ([e, n]) => [Q(e, t), Q(n, t)])
1116
- }), jn = (e, t) => new Map(e.entries.map(([e, n]) => [$(e, t), $(n, t)])), Mn = /* @__PURE__ */ t({
1117
- box: () => Pn,
1118
- isType: () => Nn,
1119
- revive: () => Fn,
1138
+ entries: Array.from(e, ([e, n]) => [Z(e, t), Z(n, t)])
1139
+ }), Rn = (e, t) => new Map(e.entries.map(([e, n]) => [Q(e, t), Q(n, t)])), zn = /* @__PURE__ */ t({
1140
+ box: () => Vn,
1141
+ isType: () => Bn,
1142
+ revive: () => Hn,
1120
1143
  type: () => "set"
1121
- }), Nn = (e) => e instanceof Set, Pn = (e, t) => ({
1144
+ }), Bn = (e) => e instanceof Set, Vn = (e, t) => ({
1122
1145
  ...N,
1123
1146
  type: "set",
1124
- values: Array.from(e, (e) => Q(e, t))
1125
- }), Fn = (e, t) => new Set(e.values.map((e) => $(e, t))), In = /* @__PURE__ */ t({
1126
- box: () => zn,
1127
- isType: () => Rn,
1128
- revive: () => Bn,
1129
- type: () => Ln
1130
- }), Ln = "bigint", Rn = (e) => typeof e == "bigint", zn = (e, t) => ({
1147
+ values: Array.from(e, (e) => Z(e, t))
1148
+ }), Hn = (e, t) => new Set(e.values.map((e) => Q(e, t))), Un = /* @__PURE__ */ t({
1149
+ box: () => Kn,
1150
+ isType: () => Gn,
1151
+ revive: () => qn,
1152
+ type: () => Wn
1153
+ }), Wn = "bigint", Gn = (e) => typeof e == "bigint", Kn = (e, t) => ({
1131
1154
  ...N,
1132
- type: Ln,
1155
+ type: Wn,
1133
1156
  value: e.toString()
1134
- }), Bn = (e, t) => BigInt(e.value), Vn = /* @__PURE__ */ t({
1135
- box: () => Wn,
1136
- isType: () => Un,
1137
- revive: () => Gn,
1138
- type: () => Hn
1139
- }), Hn = "event", Un = (e) => e instanceof Event, Wn = (e, t) => ({
1157
+ }), qn = (e, t) => BigInt(e.value), Jn = /* @__PURE__ */ t({
1158
+ box: () => Zn,
1159
+ isType: () => Xn,
1160
+ revive: () => Qn,
1161
+ type: () => Yn
1162
+ }), Yn = "event", Xn = (e) => e instanceof Event, Zn = (e, t) => ({
1140
1163
  ...N,
1141
- type: Hn,
1164
+ type: Yn,
1142
1165
  eventType: e.type,
1143
1166
  bubbles: e.bubbles,
1144
1167
  cancelable: e.cancelable,
1145
1168
  composed: e.composed,
1146
- ...e instanceof CustomEvent ? { detail: Q(e.detail, t) } : {}
1147
- }), Gn = (e, t) => {
1169
+ ...e instanceof CustomEvent ? { detail: Z(e.detail, t) } : {}
1170
+ }), Qn = (e, t) => {
1148
1171
  let n = {
1149
1172
  bubbles: e.bubbles,
1150
1173
  cancelable: e.cancelable,
@@ -1152,102 +1175,102 @@ var fe = (e) => {
1152
1175
  };
1153
1176
  return "detail" in e ? new CustomEvent(e.eventType, {
1154
1177
  ...n,
1155
- detail: $(e.detail, t)
1178
+ detail: Q(e.detail, t)
1156
1179
  }) : new Event(e.eventType, n);
1157
- }, Kn = /* @__PURE__ */ t({
1158
- box: () => Yn,
1159
- isType: () => Jn,
1160
- revive: () => $n,
1161
- type: () => qn
1162
- }), qn = "eventTarget", Jn = (e) => e instanceof EventTarget, Yn = (e, t) => {
1180
+ }, $n = /* @__PURE__ */ t({
1181
+ box: () => nr,
1182
+ isType: () => tr,
1183
+ revive: () => or,
1184
+ type: () => er
1185
+ }), er = "eventTarget", tr = (e) => e instanceof EventTarget, nr = (e, t) => {
1163
1186
  let n = [], r = (e) => typeof e == "boolean" ? e : !!e?.capture;
1164
1187
  return {
1165
1188
  ...N,
1166
- type: qn,
1167
- addListener: q((t, i, a) => {
1189
+ type: er,
1190
+ addListener: K((t, i, a) => {
1168
1191
  n.push({
1169
1192
  eventType: t,
1170
1193
  listener: i,
1171
1194
  capture: r(a)
1172
1195
  }), e.addEventListener(t, i, a);
1173
1196
  }, t),
1174
- removeListener: q((t, i, a) => {
1197
+ removeListener: K((t, i, a) => {
1175
1198
  let o = r(a), s = n.findIndex((e) => e.eventType === t && e.listener === i && e.capture === o);
1176
1199
  s !== -1 && n.splice(s, 1), e.removeEventListener(t, i, a);
1177
1200
  }, t),
1178
- removeAllListeners: q(() => {
1201
+ removeAllListeners: K(() => {
1179
1202
  for (let { eventType: t, listener: r, capture: i } of n.splice(0)) e.removeEventListener(t, r, { capture: i });
1180
1203
  }, t)
1181
1204
  };
1182
- }, Xn = /* @__PURE__ */ new WeakMap(), Zn = (e) => {
1205
+ }, rr = /* @__PURE__ */ new WeakMap(), ir = (e) => {
1183
1206
  if (typeof e == "function") return e;
1184
- let t = Xn.get(e);
1185
- return t || Xn.set(e, t = (t) => e.handleEvent(t)), t;
1186
- }, Qn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), $n = (e, t) => {
1187
- let n = J(e.addListener, t), r = J(e.removeListener, t), i = J(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
1207
+ let t = rr.get(e);
1208
+ return t || rr.set(e, t = (t) => e.handleEvent(t)), t;
1209
+ }, ar = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), or = (e, t) => {
1210
+ let n = q(e.addListener, t), r = q(e.removeListener, t), i = q(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
1188
1211
  let t = o.indexOf(e);
1189
1212
  t !== -1 && o.splice(t, 1);
1190
1213
  };
1191
1214
  return Object.defineProperty(a, "addEventListener", { value: (e, t, r) => {
1192
1215
  if (t === null) return;
1193
- let i = Zn(t), a = typeof r == "boolean" ? r : !!r?.capture;
1194
- if (Qn(o, e, i, a)) return;
1216
+ let i = ir(t), a = typeof r == "boolean" ? r : !!r?.capture;
1217
+ if (ar(o, e, i, a)) return;
1195
1218
  let c = typeof r == "object" && r?.once ? (e) => (s(l), i(e)) : i, l = {
1196
1219
  eventType: e,
1197
1220
  listener: i,
1198
1221
  capture: a,
1199
1222
  wire: c
1200
1223
  };
1201
- o.push(l), (typeof r == "object" ? r?.signal : void 0)?.addEventListener("abort", () => s(l), { once: !0 }), n(e, Z(c), r).catch(() => {});
1224
+ o.push(l), (typeof r == "object" ? r?.signal : void 0)?.addEventListener("abort", () => s(l), { once: !0 }), n(e, En(c), r).catch(() => {});
1202
1225
  } }), Object.defineProperty(a, "removeEventListener", { value: (e, t, n) => {
1203
1226
  if (t === null) return;
1204
- let i = Zn(t), a = typeof n == "boolean" ? n : !!n?.capture, c = Qn(o, e, i, a);
1205
- c && (s(c), r(e, Z(c.wire), { capture: a }).catch(() => {}));
1206
- } }), U(a, () => {
1227
+ let i = ir(t), a = typeof n == "boolean" ? n : !!n?.capture, c = ar(o, e, i, a);
1228
+ c && (s(c), r(e, En(c.wire), { capture: a }).catch(() => {}));
1229
+ } }), st(a, () => {
1207
1230
  i().catch(() => {});
1208
1231
  }), a;
1209
- }, er = /* @__PURE__ */ t({
1210
- box: () => rr,
1211
- isType: () => nr,
1212
- revive: () => ir,
1213
- type: () => tr
1214
- }), tr = "symbol", nr = (e) => typeof e == "symbol", rr = (e, t) => {
1232
+ }, sr = /* @__PURE__ */ t({
1233
+ box: () => ur,
1234
+ isType: () => lr,
1235
+ revive: () => dr,
1236
+ type: () => cr
1237
+ }), cr = "symbol", lr = (e) => typeof e == "symbol", ur = (e, t) => {
1215
1238
  let n = Symbol.keyFor(e);
1216
- return n === void 0 ? En(e, {
1239
+ return n === void 0 ? Nn(e, {
1217
1240
  ...N,
1218
- type: tr,
1241
+ type: cr,
1219
1242
  description: e.description
1220
1243
  }, t) : {
1221
1244
  ...N,
1222
- type: tr,
1245
+ type: cr,
1223
1246
  registryKey: n
1224
1247
  };
1225
- }, ir = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), ar = /* @__PURE__ */ t({
1226
- box: () => cr,
1227
- isType: () => sr,
1228
- revive: () => lr,
1229
- type: () => or
1230
- }), or = "asyncIterator", sr = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", cr = (e, t) => {
1248
+ }, dr = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), fr = /* @__PURE__ */ t({
1249
+ box: () => hr,
1250
+ isType: () => mr,
1251
+ revive: () => gr,
1252
+ type: () => pr
1253
+ }), pr = "asyncIterator", mr = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", hr = (e, t) => {
1231
1254
  let n = e[Symbol.asyncIterator]();
1232
1255
  return {
1233
1256
  ...N,
1234
- type: or,
1235
- next: q(((e) => n.next(e)), t),
1236
- return: q(((e) => n.return?.(e) ?? Promise.resolve({
1257
+ type: pr,
1258
+ next: K(((e) => n.next(e)), t),
1259
+ return: K(((e) => n.return?.(e) ?? Promise.resolve({
1237
1260
  done: !0,
1238
1261
  value: e
1239
1262
  })), t),
1240
- throw: q(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1263
+ throw: K(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1241
1264
  };
1242
- }, lr = (e, t) => {
1243
- let n = J(e.next, t), r = J(e.return, t), i = J(e.throw, t), a = {
1265
+ }, gr = (e, t) => {
1266
+ let n = q(e.next, t), r = q(e.return, t), i = q(e.throw, t), a = {
1244
1267
  next: (...e) => n(...e),
1245
1268
  return: (e) => r(e),
1246
1269
  throw: (e) => i(e),
1247
1270
  [Symbol.asyncIterator]: () => a
1248
1271
  };
1249
1272
  return a;
1250
- }, ur = [
1273
+ }, _r = [
1251
1274
  globalThis.File,
1252
1275
  globalThis.FileList,
1253
1276
  globalThis.RegExp,
@@ -1267,7 +1290,7 @@ var fe = (e) => {
1267
1290
  globalThis.FileSystemFileHandle,
1268
1291
  globalThis.FileSystemDirectoryHandle,
1269
1292
  globalThis.RTCCertificate
1270
- ], dr = [
1293
+ ], vr = [
1271
1294
  globalThis.CropTarget,
1272
1295
  globalThis.EncodedAudioChunk,
1273
1296
  globalThis.EncodedVideoChunk,
@@ -1278,33 +1301,33 @@ var fe = (e) => {
1278
1301
  globalThis.RTCEncodedAudioFrame,
1279
1302
  globalThis.RTCEncodedVideoFrame,
1280
1303
  globalThis.WebTransportError
1281
- ], fr = {
1304
+ ], yr = {
1282
1305
  type: "clonable",
1283
1306
  capableOnly: !0,
1284
- isType: (e) => w(e, ur) || w(e, dr),
1307
+ isType: (e) => w(e, _r) || w(e, vr),
1285
1308
  box: (e, t) => e,
1286
1309
  revive: (e, t) => e
1287
- }, pr = [
1310
+ }, br = [
1288
1311
  globalThis.ImageBitmap,
1289
1312
  globalThis.OffscreenCanvas,
1290
1313
  globalThis.WritableStream,
1291
1314
  globalThis.TransformStream,
1292
1315
  globalThis.MediaStreamTrack,
1293
1316
  globalThis.RTCDataChannel
1294
- ], mr = [
1317
+ ], xr = [
1295
1318
  globalThis.AudioData,
1296
1319
  globalThis.VideoFrame,
1297
1320
  globalThis.MediaSourceHandle,
1298
1321
  globalThis.MIDIAccess,
1299
1322
  globalThis.WebTransportReceiveStream,
1300
1323
  globalThis.WebTransportSendStream
1301
- ], hr = {
1324
+ ], Sr = {
1302
1325
  type: "transferable",
1303
1326
  capableOnly: !0,
1304
- isType: (e) => w(e, pr) || w(e, mr),
1327
+ isType: (e) => w(e, br) || w(e, xr),
1305
1328
  box: (e, t) => e,
1306
1329
  revive: (e, t) => e
1307
- }, gr = {
1330
+ }, Cr = {
1308
1331
  type: "blob",
1309
1332
  capableOnly: !0,
1310
1333
  isType: (e) => typeof Blob < "u" && e instanceof Blob,
@@ -1313,32 +1336,32 @@ var fe = (e) => {
1313
1336
  return e;
1314
1337
  },
1315
1338
  revive: (e, t) => e
1316
- }, _r = (e) => {
1339
+ }, wr = (e) => {
1317
1340
  if (typeof e != "object" || !e) return !1;
1318
1341
  let t = Object.getPrototypeOf(e);
1319
1342
  return t === Object.prototype || t === null;
1320
- }, vr = [
1343
+ }, Tr = [
1321
1344
  qe,
1322
- _n,
1345
+ Sn,
1323
1346
  ye,
1324
1347
  we,
1325
1348
  ke,
1326
1349
  Pe,
1327
1350
  Be,
1328
- Et,
1329
- Nt,
1330
- st,
1351
+ jt,
1331
1352
  Rt,
1332
- Yt,
1353
+ ct,
1354
+ Ut,
1333
1355
  en,
1334
- sn,
1356
+ on,
1335
1357
  fn,
1336
- On,
1337
- Mn,
1338
- In,
1339
- er,
1340
- Vn,
1341
- ar,
1358
+ _n,
1359
+ Fn,
1360
+ zn,
1361
+ Un,
1362
+ sr,
1363
+ Jn,
1364
+ fr,
1342
1365
  {
1343
1366
  type: "nonFiniteNumber",
1344
1367
  isType: (e) => typeof e == "number" && !Number.isFinite(e),
@@ -1358,14 +1381,14 @@ var fe = (e) => {
1358
1381
  } : e,
1359
1382
  revive: (e, t) => void 0
1360
1383
  },
1361
- fr,
1362
- hr,
1363
- gr,
1364
- Kn,
1384
+ yr,
1385
+ Sr,
1386
+ Cr,
1387
+ $n,
1365
1388
  {
1366
1389
  type: "unclonable",
1367
1390
  isType: (e) => {
1368
- if (typeof e != "object" || !e || Array.isArray(e) || _r(e)) return !1;
1391
+ if (typeof e != "object" || !e || Array.isArray(e) || wr(e)) return !1;
1369
1392
  try {
1370
1393
  return structuredClone(e), !1;
1371
1394
  } catch {
@@ -1378,41 +1401,59 @@ var fe = (e) => {
1378
1401
  }),
1379
1402
  revive: (e, t) => ({})
1380
1403
  }
1381
- ], yr = (e, t) => t.find((t) => t.type === e.type), br = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, xr = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : br(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, Sr = /* @__PURE__ */ new WeakSet(), Cr = /* @__PURE__ */ new WeakSet(), wr = (e) => e !== null && (typeof e == "object" || typeof e == "function"), Tr = (e, t, n) => {
1404
+ ], Er = (e, t) => t.find((t) => t.type === e.type), Dr = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, Or = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : Dr(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, kr = /* @__PURE__ */ new WeakSet(), Ar = /* @__PURE__ */ new WeakSet(), X = 0, jr = [], Mr = (e, t) => {
1405
+ if (X === 0) {
1406
+ e();
1407
+ return;
1408
+ }
1409
+ jr.push({
1410
+ commit: e,
1411
+ rollback: t
1412
+ });
1413
+ }, Nr = (e) => {
1414
+ let t = jr;
1415
+ jr = [];
1416
+ for (let n of t) try {
1417
+ e ? n.rollback() : n.commit();
1418
+ } catch {}
1419
+ }, Pr = (e) => e !== null && (typeof e == "object" || typeof e == "function"), Fr = (e, t, n) => {
1382
1420
  let r = t.revivableModules.find((t) => t.type !== n && t.isType(e));
1383
- return r ? r.box(e, t) : xr(e, (e) => Q(e, t));
1384
- }, Q = (e, t) => {
1421
+ return r ? r.box(e, t) : Or(e, (e) => Z(e, t));
1422
+ }, Z = (e, t) => {
1385
1423
  if (ge(e)) return e;
1386
- let n = wr(e);
1424
+ let n = Pr(e);
1387
1425
  if (n) {
1388
- if (Sr.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1389
- Sr.add(e);
1426
+ if (kr.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1427
+ kr.add(e);
1390
1428
  }
1429
+ X++;
1430
+ let r = !0;
1391
1431
  try {
1392
- return Tr(e, t);
1432
+ let n = Fr(e, t);
1433
+ return r = !1, n;
1393
1434
  } finally {
1394
- n && Sr.delete(e);
1435
+ n && kr.delete(e), X--, X === 0 && Nr(r);
1395
1436
  }
1396
- }, Er = (e, t, n) => Tr(e, t, n), $ = (e, t) => {
1397
- let n = wr(e);
1437
+ }, Ir = (e, t, n) => Fr(e, t, n), Q = (e, t) => {
1438
+ let n = Pr(e);
1398
1439
  if (n) {
1399
- if (Cr.has(e)) throw TypeError("osra: cannot revive a circular structure");
1400
- Cr.add(e);
1440
+ if (Ar.has(e)) throw TypeError("osra: cannot revive a circular structure");
1441
+ Ar.add(e);
1401
1442
  }
1402
1443
  try {
1403
1444
  if (ge(e)) {
1404
- let n = yr(e, t.revivableModules);
1445
+ let n = Er(e, t.revivableModules);
1405
1446
  if (n) return n.revive(e, t);
1406
1447
  }
1407
- return xr(e, (e) => $(e, t));
1448
+ return Or(e, (e) => Q(e, t));
1408
1449
  } finally {
1409
- n && Cr.delete(e);
1450
+ n && Ar.delete(e);
1410
1451
  }
1411
- }, Dr = /* @__PURE__ */ t({
1412
- init: () => Ar,
1413
- startBidirectionalConnection: () => kr,
1414
- type: () => Or
1415
- }), Or = "bidirectional", kr = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1452
+ }, Lr = /* @__PURE__ */ t({
1453
+ init: () => Br,
1454
+ startBidirectionalConnection: () => zr,
1455
+ type: () => Rr
1456
+ }), Rr = "bidirectional", zr = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1416
1457
  let o = {
1417
1458
  transport: e,
1418
1459
  remoteUuid: n,
@@ -1427,12 +1468,12 @@ var fe = (e) => {
1427
1468
  }), i({
1428
1469
  type: "init",
1429
1470
  remoteUuid: n,
1430
- data: Q(t, o)
1471
+ data: Z(t, o)
1431
1472
  }), {
1432
1473
  revivableContext: o,
1433
- remoteValue: s.then((e) => $(e, o))
1474
+ remoteValue: s.then((e) => Q(e, o))
1434
1475
  };
1435
- }, Ar = (e) => {
1476
+ }, Br = (e) => {
1436
1477
  if (!(A(e.transport) && j(e.transport))) return;
1437
1478
  if (e.protocolEventTarget.addEventListener("message", ({ detail: { message: t, peer: n } }) => {
1438
1479
  if (t.type === "announce") {
@@ -1461,7 +1502,7 @@ var fe = (e) => {
1461
1502
  });
1462
1503
  return;
1463
1504
  }
1464
- a = kr({
1505
+ a = zr({
1465
1506
  transport: e.transport,
1466
1507
  value: n,
1467
1508
  remoteUuid: t.uuid,
@@ -1506,7 +1547,7 @@ var fe = (e) => {
1506
1547
  });
1507
1548
  return;
1508
1549
  }
1509
- r = kr({
1550
+ r = zr({
1510
1551
  transport: e.transport,
1511
1552
  value: a,
1512
1553
  remoteUuid: e.presetRemoteUuid,
@@ -1538,14 +1579,14 @@ var fe = (e) => {
1538
1579
  }
1539
1580
  };
1540
1581
  e.unregisterSignal?.addEventListener("abort", () => clearTimeout(n), { once: !0 }), r();
1541
- }, jr = () => new EventTarget(), Mr = (e) => {
1582
+ }, Vr = () => new EventTarget(), Hr = (e) => {
1542
1583
  let t = M(e), n = t ? e.emit : e, r = t ? e.receive : e;
1543
1584
  return {
1544
1585
  isJson: t && "isJson" in e && e.isJson !== void 0 ? e.isJson : n !== void 0 && k(n) || r !== void 0 && k(r),
1545
1586
  ...n === void 0 ? {} : { emit: n },
1546
1587
  ...r === void 0 ? {} : { receive: r }
1547
1588
  };
1548
- }, Nr = (e) => e ? e(vr) : vr, Pr = 32, Fr = () => {
1589
+ }, Ur = (e) => e ? e(Tr) : Tr, Wr = 32, Gr = () => {
1549
1590
  let e = [], t = /* @__PURE__ */ new Set(), n = !1, r = () => ({
1550
1591
  value: void 0,
1551
1592
  done: !0
@@ -1554,7 +1595,7 @@ var fe = (e) => {
1554
1595
  push: (r) => {
1555
1596
  if (!n) {
1556
1597
  if (t.size === 0) {
1557
- e.push(r), e.length > Pr && e.shift();
1598
+ e.push(r), e.length > Wr && e.shift();
1558
1599
  return;
1559
1600
  }
1560
1601
  for (let e of t) {
@@ -1603,7 +1644,7 @@ var fe = (e) => {
1603
1644
  };
1604
1645
  }
1605
1646
  };
1606
- }, Ir = (e, t, n) => {
1647
+ }, Kr = (e, t, n) => {
1607
1648
  let r = e.then(n);
1608
1649
  r.catch(() => {});
1609
1650
  let i = () => {
@@ -1626,8 +1667,8 @@ var fe = (e) => {
1626
1667
  };
1627
1668
  };
1628
1669
  return Object.assign(r, { [Symbol.asyncIterator]: i });
1629
- }, Lr = Symbol.for("osra.context"), Rr = (e) => ({ [Lr]: e }), zr = (e) => typeof e == "object" && !!e && Lr in e, Br = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: u } = {}) => {
1630
- let d = Mr(e), p = Mr(t), m = (e, t, r, i, a) => {
1670
+ }, $ = Symbol.for("osra.context"), qr = (e) => ({ [$]: e }), Jr = (e) => typeof e == "object" && !!e && $ in e, Yr = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: u } = {}) => {
1671
+ let d = Hr(e), p = Hr(t), m = (e, t, r, i, a) => {
1631
1672
  !j(e) || !A(t) || l({
1632
1673
  transport: e,
1633
1674
  key: n,
@@ -1640,15 +1681,15 @@ var fe = (e) => {
1640
1681
  });
1641
1682
  };
1642
1683
  m(d, p, a, o, s), m(p, d, o, a, c);
1643
- }, Vr = [Dr], Hr = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: u, uuid: d, remoteUuid: p, connection: m = ({ value: e }) => e }) => {
1644
- let ee = m, h = Mr(t);
1684
+ }, Xr = [Lr], Zr = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: u, uuid: d, remoteUuid: p, connection: m = ({ value: e }) => e }) => {
1685
+ let ee = m, h = Hr(t);
1645
1686
  if (!(A(h) && j(h))) {
1646
- let e = Fr();
1687
+ let e = Gr();
1647
1688
  e.close();
1648
1689
  let t = Promise.reject(/* @__PURE__ */ Error("osra: transport must be able to both emit and receive to establish a connection; pass a bidirectional platform transport or a custom { emit, receive } pair"));
1649
- return t.catch(() => {}), Ir(t, e, ee);
1690
+ return t.catch(() => {}), Kr(t, e, ee);
1650
1691
  }
1651
- let te = Nr(u), g = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Set(), v = Fr(), { promise: y, resolve: b, reject: x } = Promise.withResolvers();
1692
+ let te = Ur(u), g = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Set(), v = Gr(), { promise: y, resolve: b, reject: x } = Promise.withResolvers();
1652
1693
  y.catch(() => {});
1653
1694
  let S = d ?? globalThis.crypto.randomUUID(), C = (e, t = s) => {
1654
1695
  let r = {
@@ -1660,9 +1701,9 @@ var fe = (e) => {
1660
1701
  f(h, r, t, B(r));
1661
1702
  }, ne = (e, t) => {
1662
1703
  c?.aborted || C(e, t);
1663
- }, w = jr(), T = {
1704
+ }, w = Vr(), T = {
1664
1705
  transport: h,
1665
- valueFor: (t) => zr(e) ? e[Lr](t) : e,
1706
+ valueFor: (t) => Jr(e) ? e[$](t) : e,
1666
1707
  revivableModules: te,
1667
1708
  connectionContexts: g,
1668
1709
  getUuid: () => S,
@@ -1689,7 +1730,7 @@ var fe = (e) => {
1689
1730
  };
1690
1731
  b(n), v.push(n);
1691
1732
  },
1692
- createConnectionEventTarget: jr,
1733
+ createConnectionEventTarget: Vr,
1693
1734
  unregisterSignal: c
1694
1735
  };
1695
1736
  if (l({
@@ -1709,7 +1750,7 @@ var fe = (e) => {
1709
1750
  key: o,
1710
1751
  origin: s,
1711
1752
  unregisterSignal: c
1712
- }), c?.aborted) return x(c.reason), v.close(), Ir(y, v, ee);
1753
+ }), c?.aborted) return x(c.reason), v.close(), Kr(y, v, ee);
1713
1754
  c?.addEventListener("abort", () => {
1714
1755
  for (let [e, t] of g) C({
1715
1756
  type: "close",
@@ -1717,10 +1758,10 @@ var fe = (e) => {
1717
1758
  }), I(t.connection.revivableContext);
1718
1759
  g.clear(), v.close(), x(c.reason);
1719
1760
  }, { once: !0 });
1720
- for (let e of Vr) e.init(T);
1721
- return Ir(y, v, ee);
1722
- }, Ur = (e, t) => Hr(e, t);
1761
+ for (let e of Xr) e.init(T);
1762
+ return Kr(y, v, ee);
1763
+ }, Qr = (e, t) => Zr(e, t);
1723
1764
  //#endregion
1724
- export { N as BoxBase, Lr as CONTEXT, H as EventChannel, V as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, Ir as asExposed, ue as assertEmitTransport, de as assertReceiveTransport, _e as boxBuffer, Er as boxClaimedValue, s as checkOsraMessageKey, Vr as connections, Rr as context, Fr as createConnectionQueue, jr as createTypedEventTarget, vr as defaultRevivableModules, Ur as expose, B as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, Z as identity, Ar as init, w as instanceOfAny, re as isClonable, zr as isContextual, pe as isCustomEmitTransport, me as isCustomReceiveTransport, M as isCustomTransport, x as isDedicatedWorker, ce as isEmitJsonOnlyTransport, A as isEmitTransport, k as isJsonOnlyTransport, ne as isOsraMessage, le as isReceiveJsonOnlyTransport, j as isReceiveTransport, ge as isRevivableBox, y as isServiceWorker, v as isServiceWorkerContainer, T as isSharedArrayBuffer, S as isSharedWorker, F as isTornDown, ie as isTransferable, he as isTransport, g as isTypedArray, oe as isWebExtensionOnConnect, se as isWebExtensionOnMessage, D as isWebExtensionPort, E as isWebExtensionRuntime, _ as isWebSocket, O as isWindow, b as isWorker, Nr as mergeRevivableModules, Mr as normalizeTransport, P as onTeardown, Q as recursiveBox, $ as recursiveRevive, l as registerOsraMessageListener, Br as relay, ve as reviveBuffer, I as runTeardown, f as sendOsraMessage, kr as startBidirectionalConnection, Hr as startConnections, U as trackGc, Qe as transfer, Or as type, h as typedArrayToType, te as typedArrayTypeToTypedArrayConstructor };
1765
+ export { N as BoxBase, $ as CONTEXT, H as EventChannel, V as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, Kr as asExposed, ue as assertEmitTransport, de as assertReceiveTransport, _e as boxBuffer, Ir as boxClaimedValue, s as checkOsraMessageKey, Xr as connections, qr as context, Gr as createConnectionQueue, Vr as createTypedEventTarget, Tr as defaultRevivableModules, Qr as expose, B as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, En as identity, Br as init, w as instanceOfAny, re as isClonable, Jr as isContextual, pe as isCustomEmitTransport, me as isCustomReceiveTransport, M as isCustomTransport, x as isDedicatedWorker, ce as isEmitJsonOnlyTransport, A as isEmitTransport, k as isJsonOnlyTransport, ne as isOsraMessage, le as isReceiveJsonOnlyTransport, j as isReceiveTransport, ge as isRevivableBox, y as isServiceWorker, v as isServiceWorkerContainer, T as isSharedArrayBuffer, S as isSharedWorker, F as isTornDown, ie as isTransferable, he as isTransport, g as isTypedArray, oe as isWebExtensionOnConnect, se as isWebExtensionOnMessage, D as isWebExtensionPort, E as isWebExtensionRuntime, _ as isWebSocket, O as isWindow, b as isWorker, Ur as mergeRevivableModules, Hr as normalizeTransport, Mr as onBoxWalkSettled, P as onTeardown, Z as recursiveBox, Q as recursiveRevive, l as registerOsraMessageListener, Yr as relay, ve as reviveBuffer, I as runTeardown, f as sendOsraMessage, zr as startBidirectionalConnection, Zr as startConnections, st as trackGc, Qe as transfer, Rr as type, h as typedArrayToType, te as typedArrayTypeToTypedArrayConstructor };
1725
1766
 
1726
1767
  //# sourceMappingURL=index.js.map