osra 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -60,7 +60,9 @@ var e = Object.defineProperty, t = (t, n) => {
60
60
  if (typeof i == "function") i(t, r);
61
61
  else if (D(i)) i.postMessage(t, n, r);
62
62
  else if (w(i)) i.postMessage(t);
63
- else if (C(i)) i.sendMessage(t);
63
+ else if (C(i)) i.sendMessage(t)?.catch?.((e) => {
64
+ if (!String(e?.message).includes("Receiving end does not exist")) throw e;
65
+ });
64
66
  else if (g(i)) {
65
67
  let e = JSON.stringify(t);
66
68
  i.readyState === WebSocket.CONNECTING ? i.addEventListener("open", () => i.send(e), { once: !0 }) : i.send(e);
@@ -186,12 +188,12 @@ var de = (e) => {
186
188
  name: e.name,
187
189
  message: e.message,
188
190
  stack: e.stack || e.toString(),
189
- ...n ? { cause: Y(e.cause, t) } : {},
190
- ...r ? { errors: Y(e.errors, t) } : {},
191
+ ...n ? { cause: X(e.cause, t) } : {},
192
+ ...r ? { errors: X(e.errors, t) } : {},
191
193
  ...i ? { isDOMException: !0 } : {}
192
194
  };
193
195
  }, Le = (e, t) => {
194
- let n = e.cause === void 0 ? void 0 : X(e.cause, t), r = n === void 0 ? void 0 : { cause: n };
196
+ let n = e.cause === void 0 ? void 0 : Z(e.cause, t), r = n === void 0 ? void 0 : { cause: n };
195
197
  if (e.isDOMException && typeof DOMException < "u") {
196
198
  let t = new DOMException(e.message, e.name);
197
199
  if (e.stack) try {
@@ -203,7 +205,7 @@ var de = (e) => {
203
205
  return t;
204
206
  }
205
207
  let i;
206
- if (e.errors !== void 0 && typeof AggregateError < "u") i = AggregateError(X(e.errors, t), e.message, r);
208
+ if (e.errors !== void 0 && typeof AggregateError < "u") i = AggregateError(Z(e.errors, t), e.message, r);
207
209
  else {
208
210
  let t = Pe[e.name] ?? Error;
209
211
  i = r === void 0 ? new t(e.message) : new t(e.message, r);
@@ -256,9 +258,9 @@ var de = (e) => {
256
258
  } : e, Qe = (e) => Ye(e), $e = (e, t) => ({
257
259
  ...M,
258
260
  type: Ke,
259
- inner: Y(e.value, t),
261
+ inner: X(e.value, t),
260
262
  degraded: O(t.transport)
261
- }), et = (e, t) => X(e.inner, t), tt = (e) => S(e, [
263
+ }), et = (e, t) => Z(e.inner, t), tt = (e) => S(e, [
262
264
  globalThis.MessagePort,
263
265
  globalThis.ReadableStream,
264
266
  globalThis.WritableStream,
@@ -297,14 +299,13 @@ var de = (e) => {
297
299
  return r(e, !1), t;
298
300
  }, L = class {
299
301
  _listeners = /* @__PURE__ */ new Map();
300
- _onceListeners = /* @__PURE__ */ new WeakSet();
301
302
  addEventListener(e, t, n) {
302
303
  if (!t) return;
303
304
  let r = this._listeners.get(e);
304
- r || (r = /* @__PURE__ */ new Set(), this._listeners.set(e, r)), r.add(t), typeof n == "object" && n?.once && this._onceListeners.add(t);
305
+ r || (r = /* @__PURE__ */ new Map(), this._listeners.set(e, r)), r.has(t) || r.set(t, typeof n == "object" && !!n?.once);
305
306
  }
306
307
  removeEventListener(e, t, n) {
307
- t && (this._listeners.get(e)?.delete(t), this._onceListeners.delete(t));
308
+ t && this._listeners.get(e)?.delete(t);
308
309
  }
309
310
  _peer;
310
311
  _queue = [];
@@ -322,7 +323,7 @@ var de = (e) => {
322
323
  dispatchEvent(e) {
323
324
  e.type === "message" ? this._onmessage?.call(this, e) : e.type === "messageerror" && this.onmessageerror?.call(this, e);
324
325
  let t = this._listeners.get(e.type);
325
- if (t) for (let n of [...t]) this._onceListeners.has(n) && (t.delete(n), this._onceListeners.delete(n)), typeof n == "function" ? n.call(this, e) : n.handleEvent(e);
326
+ if (t) for (let [n, r] of [...t]) r && t.delete(n), typeof n == "function" ? n.call(this, e) : n.handleEvent(e);
326
327
  return !0;
327
328
  }
328
329
  postMessage(e, t) {
@@ -362,61 +363,98 @@ var de = (e) => {
362
363
  let n = {};
363
364
  return rt.register(e, t, n), () => rt.unregister(n);
364
365
  }, it = /* @__PURE__ */ t({
365
- box: () => V,
366
- createRevivableChannel: () => U,
367
- init: () => pt,
368
- isType: () => mt,
369
- revive: () => H,
366
+ box: () => U,
367
+ createRevivableChannel: () => G,
368
+ init: () => mt,
369
+ isType: () => ht,
370
+ revive: () => W,
370
371
  type: () => at
371
- }), at = "messagePort", ot = 2048, st = /* @__PURE__ */ new WeakMap(), ct = (e) => {
372
- let t = st.get(e);
372
+ }), at = "messagePort", ot = 2048, st = 128, ct = 1024, lt = /* @__PURE__ */ new WeakMap(), B = (e) => {
373
+ let t = lt.get(e);
373
374
  if (!t) throw Error("osra message-port: connection state missing; did init() run?");
374
375
  return t;
375
- }, lt = (e, t) => {
376
+ }, ut = (e, t) => {
376
377
  let n = e.ports.get(t);
377
378
  return n || (n = {
378
379
  nextSeq: 0,
379
380
  buffer: /* @__PURE__ */ new Map(),
380
381
  outSeq: 0
381
- }, e.ports.set(t, n)), n;
382
- }, ut = (e) => {
382
+ }, e.ports.set(t, n), e.pendingPorts++), n;
383
+ }, V = (e, t) => {
384
+ let n = e.ports.get(t);
385
+ if (n && !n.handler && e.pendingPorts--, e.ports.delete(t), e.tombstones.size >= st) {
386
+ let t = e.tombstones.values().next().value;
387
+ t !== void 0 && e.tombstones.delete(t);
388
+ }
389
+ e.tombstones.add(t);
390
+ }, dt = (e) => {
383
391
  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);
384
- }, dt = (e, t) => lt(ct(e), t).outSeq++, ft = (e, t, n) => {
385
- let r = lt(e, t);
386
- r.handler = n, ut(r);
387
- }, pt = (e) => {
388
- let t = { ports: /* @__PURE__ */ new Map() };
389
- st.set(e, t), e.eventTarget.addEventListener("message", ({ detail: e }) => {
390
- if (e.type !== "message" && e.type !== "message-port-close") return;
391
- let n = lt(t, e.portId);
392
- if (e.seq === void 0) {
393
- n.handler?.(e);
392
+ }, ft = (e, t) => ut(B(e), t).outSeq++, pt = (e, t, n) => {
393
+ let r = B(e);
394
+ if (r.tombstones.has(t)) {
395
+ setTimeout(() => n({
396
+ type: "message-port-close",
397
+ remoteUuid: e.remoteUuid,
398
+ portId: t
399
+ }));
400
+ return;
401
+ }
402
+ let i = ut(r, t);
403
+ i.handler || r.pendingPorts--, i.handler = n, dt(i);
404
+ }, mt = (e) => {
405
+ let t = {
406
+ ports: /* @__PURE__ */ new Map(),
407
+ tombstones: /* @__PURE__ */ new Set(),
408
+ pendingPorts: 0
409
+ };
410
+ lt.set(e, t), e.eventTarget.addEventListener("message", ({ detail: n }) => {
411
+ if (n.type !== "message" && n.type !== "message-port-close" || t.tombstones.has(n.portId)) return;
412
+ let r = t.ports.get(n.portId);
413
+ if (n.seq === void 0) {
414
+ r?.handler?.(n);
394
415
  return;
395
416
  }
396
- e.seq < n.nextSeq || n.buffer.size >= ot || (n.buffer.set(e.seq, e), ut(n));
417
+ if (!r) {
418
+ if (t.pendingPorts >= ct) return;
419
+ r = ut(t, n.portId);
420
+ }
421
+ if (!(n.seq < r.nextSeq)) {
422
+ if (r.buffer.size >= ot && !(n.seq === r.nextSeq && r.handler)) {
423
+ r.buffer.clear(), V(t, n.portId), r.handler?.({
424
+ type: "message-port-close",
425
+ remoteUuid: e.remoteUuid,
426
+ portId: n.portId
427
+ });
428
+ return;
429
+ }
430
+ r.buffer.set(n.seq, n), dt(r);
431
+ }
397
432
  }), F(e, () => {
398
433
  for (let [n, r] of [...t.ports]) r.handler?.({
399
434
  type: "message-port-close",
400
435
  remoteUuid: e.remoteUuid,
401
436
  portId: n
402
437
  });
403
- t.ports.clear();
438
+ t.ports.clear(), t.tombstones.clear(), t.pendingPorts = 0;
404
439
  });
405
- }, mt = (e) => e instanceof MessagePort || e instanceof L, B = (e, t) => {
440
+ }, ht = (e) => e instanceof MessagePort || e instanceof L, H = (e, t) => {
406
441
  try {
442
+ let n = B(e).ports.get(t);
407
443
  e.sendMessage({
408
444
  type: "message-port-close",
409
445
  remoteUuid: e.remoteUuid,
410
446
  portId: t,
411
- seq: dt(e, t)
447
+ seq: n ? n.outSeq++ : 0
412
448
  });
413
449
  } catch {}
414
- }, ht = (e, t, n) => {
450
+ }, gt = (e, t, n) => {
415
451
  n ? e.postMessage(t) : e.postMessage(t, I(t));
416
- }, gt = (e, t, n) => () => {
452
+ }, _t = (e, t, n) => () => {
417
453
  let r = e.deref();
418
- r && B(r, n), t.deref()?.delete(n);
419
- }, V = (e, t, n) => {
454
+ r && H(r, n);
455
+ let i = t.deref();
456
+ i && V(i, n);
457
+ }, U = (e, t, n) => {
420
458
  let r = e instanceof L;
421
459
  if (!r && !O(t.transport)) return {
422
460
  ...M,
@@ -424,65 +462,67 @@ var de = (e) => {
424
462
  port: e,
425
463
  ...n?.autoBox ? { autoBox: !0 } : {}
426
464
  };
427
- let i = ct(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i.ports), u = !1, d = () => {
465
+ let i = B(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i), u = !1, d = () => {
428
466
  if (u) return;
429
- u = !0, l.deref()?.delete(o), m?.();
430
- let e = s.deref();
431
- e?.removeEventListener("message", p), e instanceof L && (e._onClose = void 0);
467
+ u = !0;
468
+ let e = l.deref();
469
+ e && V(e, o), m?.();
470
+ let t = s.deref();
471
+ t?.removeEventListener("message", p), t instanceof L && (t._onClose = void 0);
432
472
  }, f = (e) => {
433
473
  if (e.type === "message-port-close") {
434
474
  d(), a.dispatchEvent(new Event("close")), a.close();
435
475
  return;
436
476
  }
437
- ht(a, X(e.data, t), !1);
477
+ gt(a, Z(e.data, t), !1);
438
478
  };
439
479
  function p({ data: e }) {
440
480
  t.sendMessage({
441
481
  type: "message",
442
482
  remoteUuid: t.remoteUuid,
443
- data: Y(e, t),
483
+ data: X(e, t),
444
484
  portId: o,
445
- seq: dt(t, o)
485
+ seq: ft(t, o)
446
486
  });
447
487
  }
448
- let m = z(a, gt(c, l, o));
488
+ let m = z(a, _t(c, l, o));
449
489
  return a.addEventListener("message", p), a.start(), a instanceof L && (a._onClose = () => {
450
- u || (B(t, o), d());
451
- }), ft(i, o, f), {
490
+ u || (H(t, o), d());
491
+ }), pt(t, o, f), {
452
492
  ...M,
453
493
  type: at,
454
494
  portId: o,
455
495
  synthetic: r
456
496
  };
457
- }, H = (e, t) => "port" in e ? e.autoBox ? _t(e.port, t) : e.port : vt(e.portId, t, e.synthetic), _t = (e, t) => {
497
+ }, W = (e, t) => "port" in e ? e.autoBox ? vt(e.port, t) : e.port : yt(e.portId, t, e.synthetic), vt = (e, t) => {
458
498
  let n = new EventTarget(), r = ({ data: e }) => {
459
- n.dispatchEvent(new MessageEvent("message", { data: X(e, t) }));
499
+ n.dispatchEvent(new MessageEvent("message", { data: Z(e, t) }));
460
500
  }, i = () => {
461
501
  n.dispatchEvent(new Event("close"));
462
502
  };
463
503
  return e.addEventListener("message", r), e.addEventListener("close", i), n.postMessage = (n, r) => {
464
- let i = Y(n, t), a = I(i), o = Array.isArray(r) ? r : [];
504
+ let i = X(n, t), a = I(i), o = Array.isArray(r) ? r : [];
465
505
  e.postMessage(i, o.length ? [...a, ...o] : a);
466
506
  }, n.start = () => e.start(), n.close = () => {
467
507
  e.removeEventListener("message", r), e.removeEventListener("close", i), e.close();
468
508
  }, n;
469
- }, U = (e) => {
509
+ }, G = (e) => {
470
510
  if (O(e.transport)) {
471
511
  let { port1: t, port2: n } = new R();
472
512
  return {
473
513
  localPort: t,
474
- boxedRemote: V(n, e)
514
+ boxedRemote: U(n, e)
475
515
  };
476
516
  }
477
517
  let { port1: t, port2: n } = new MessageChannel();
478
518
  return {
479
- localPort: _t(t, e),
480
- boxedRemote: V(n, e, { autoBox: !0 })
519
+ localPort: vt(t, e),
520
+ boxedRemote: U(n, e, { autoBox: !0 })
481
521
  };
482
- }, vt = (e, t, n) => {
483
- let r = ct(t), { port1: i, port2: a } = n ? new R() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
522
+ }, yt = (e, t, n) => {
523
+ let r = B(t), { port1: i, port2: a } = n ? new R() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
484
524
  if (c) return;
485
- c = !0, r.ports.delete(e);
525
+ c = !0, V(r, e);
486
526
  let t = s.deref();
487
527
  t?.removeEventListener("message", d), t?.close(), f?.();
488
528
  }, u = (e) => {
@@ -497,29 +537,29 @@ var de = (e) => {
497
537
  return;
498
538
  }
499
539
  let r = s.deref();
500
- r && ht(r, X(e.data, t), n);
540
+ r && gt(r, Z(e.data, t), n);
501
541
  }, d = ({ data: n }) => {
502
542
  t.sendMessage({
503
543
  type: "message",
504
544
  remoteUuid: t.remoteUuid,
505
- data: Y(n, t),
545
+ data: X(n, t),
506
546
  portId: e,
507
- seq: dt(t, e)
547
+ seq: ft(t, e)
508
548
  });
509
549
  }, f = z(i, () => {
510
- B(t, e), l();
550
+ H(t, e), l();
511
551
  });
512
552
  return i instanceof L && (i._onClose = () => {
513
- c || (B(t, e), l());
514
- }), a.addEventListener("message", d), a.start(), ft(r, e, u), i;
515
- }, yt = /* @__PURE__ */ t({
516
- box: () => wt,
517
- isType: () => Ct,
518
- revive: () => Tt,
519
- type: () => bt
520
- }), bt = "promise", xt = (e) => e instanceof Promise, St = /* @__PURE__ */ new Set(), Ct = (e) => e instanceof Promise, wt = (e, t) => {
521
- if (!xt(e)) throw TypeError("Expected Promise");
522
- let { localPort: n, boxedRemote: r } = U(t), i = (e) => {
553
+ c || (H(t, e), l());
554
+ }), a.addEventListener("message", d), a.start(), pt(t, e, u), i;
555
+ }, bt = /* @__PURE__ */ t({
556
+ box: () => Tt,
557
+ isType: () => wt,
558
+ revive: () => Et,
559
+ type: () => xt
560
+ }), xt = "promise", St = (e) => e instanceof Promise, Ct = /* @__PURE__ */ new Set(), wt = (e) => e instanceof Promise, Tt = (e, t) => {
561
+ if (!St(e)) throw TypeError("Expected Promise");
562
+ let { localPort: n, boxedRemote: r } = G(t), i = (e) => {
523
563
  n.postMessage(e), n.close();
524
564
  };
525
565
  return e.then((e) => i({
@@ -530,16 +570,16 @@ var de = (e) => {
530
570
  error: e
531
571
  })), {
532
572
  ...M,
533
- type: bt,
573
+ type: xt,
534
574
  port: r
535
575
  };
536
- }, Tt = (e, t) => {
537
- let n = H(e.port, t);
538
- St.add(n);
576
+ }, Et = (e, t) => {
577
+ let n = W(e.port, t);
578
+ Ct.add(n);
539
579
  let r = "portId" in e.port;
540
580
  return new Promise((e, i) => {
541
581
  let a = () => {
542
- n.close(), St.delete(n), o();
582
+ n.close(), Ct.delete(n), o();
543
583
  }, o = r ? F(t, () => {
544
584
  i(/* @__PURE__ */ Error("osra: connection closed")), a();
545
585
  }) : () => {};
@@ -547,12 +587,12 @@ var de = (e) => {
547
587
  t.type === "resolve" ? e(t.data) : i(t.error), a();
548
588
  }, { once: !0 }), n.start();
549
589
  });
550
- }, Et = /* @__PURE__ */ t({
551
- box: () => W,
552
- isType: () => kt,
553
- revive: () => G,
554
- type: () => Dt
555
- }), Dt = "function", Ot = /* @__PURE__ */ new Set(), kt = (e) => typeof e == "function", W = (e, t) => {
590
+ }, Dt = /* @__PURE__ */ t({
591
+ box: () => K,
592
+ isType: () => At,
593
+ revive: () => q,
594
+ type: () => Ot
595
+ }), Ot = "function", kt = /* @__PURE__ */ new Set(), At = (e) => typeof e == "function", K = (e, t) => {
556
596
  let { port1: n, port2: r } = new R();
557
597
  return n.addEventListener("message", ({ data: n }) => {
558
598
  let [r, i] = n;
@@ -569,7 +609,16 @@ var de = (e) => {
569
609
  error: e
570
610
  };
571
611
  }
572
- let a = Y(n, t);
612
+ let a = (() => {
613
+ try {
614
+ return X(n, t);
615
+ } catch (e) {
616
+ return X({
617
+ type: "throw",
618
+ error: e
619
+ }, t);
620
+ }
621
+ })();
573
622
  r.postMessage(a, I(a)), queueMicrotask(() => {
574
623
  try {
575
624
  r.close();
@@ -578,16 +627,16 @@ var de = (e) => {
578
627
  })();
579
628
  }), n.start(), {
580
629
  ...M,
581
- type: Dt,
582
- port: V(r, t)
630
+ type: Ot,
631
+ port: U(r, t)
583
632
  };
584
- }, G = (e, t) => {
585
- let n = H(e.port, t);
633
+ }, q = (e, t) => {
634
+ let n = W(e.port, t);
586
635
  return ((...e) => new Promise((r, i) => {
587
636
  let { port1: a, port2: o } = new R();
588
- Ot.add(a);
637
+ kt.add(a);
589
638
  let s = () => {
590
- a.close(), Ot.delete(a), c();
639
+ a.close(), kt.delete(a), c();
591
640
  }, c = F(t, () => {
592
641
  i(/* @__PURE__ */ Error("osra: connection closed")), s();
593
642
  });
@@ -595,17 +644,17 @@ var de = (e) => {
595
644
  let t = e;
596
645
  t.type === "return" ? r(t.value) : i(t.error), s();
597
646
  }, { once: !0 }), a.start();
598
- let l = Y([o, e], t);
647
+ let l = X([o, e], t);
599
648
  n.postMessage(l, I(l));
600
649
  }));
601
- }, At = /* @__PURE__ */ t({
650
+ }, jt = /* @__PURE__ */ t({
602
651
  MAX_CREDIT_WINDOW: () => 64,
603
- box: () => It,
604
- isType: () => Mt,
605
- revive: () => Bt,
606
- type: () => jt
607
- }), jt = "readableStream", Mt = (e) => e instanceof ReadableStream, Nt = 2, Pt = 8, Ft = 4 * 1024 * 1024, It = (e, t) => {
608
- let { localPort: n, boxedRemote: r } = U(t), i = e.getReader(), a = 0, o = !1, s = !1, c = (e) => {
652
+ box: () => Lt,
653
+ isType: () => Nt,
654
+ revive: () => Vt,
655
+ type: () => Mt
656
+ }), Mt = "readableStream", Nt = (e) => e instanceof ReadableStream, Pt = 2, Ft = 8, It = 4 * 1024 * 1024, Lt = (e, t) => {
657
+ let { localPort: n, boxedRemote: r } = G(t), i = e.getReader(), a = 0, o = !1, s = !1, c = (e) => {
609
658
  s = !0;
610
659
  try {
611
660
  n.postMessage(e);
@@ -652,12 +701,12 @@ var de = (e) => {
652
701
  s || (s = !0, i.cancel(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
653
702
  }, { once: !0 }), n.start(), {
654
703
  ...M,
655
- type: jt,
704
+ type: Mt,
656
705
  credit: !0,
657
706
  port: r
658
707
  };
659
- }, Lt = (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, Rt = (e) => {
660
- let t = !1, n = 0, r, i = [], a = !1, o = !1, s, c, l = () => r === void 0 ? Pt : Math.max(Nt, Math.min(64, Math.floor(Ft / r))), u = () => {
708
+ }, Rt = (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) => {
709
+ let t = !1, n = 0, r, i = [], a = !1, o = !1, s, c, l = () => r === void 0 ? Ft : Math.max(Pt, Math.min(64, Math.floor(It / r))), u = () => {
661
710
  let t = l(), r = n + i.length;
662
711
  if (r > t / 2) return;
663
712
  let a = t - r;
@@ -683,7 +732,7 @@ var de = (e) => {
683
732
  return;
684
733
  }
685
734
  n--;
686
- let a = Lt(o.value);
735
+ let a = Rt(o.value);
687
736
  if (a !== void 0 && (r = r === void 0 ? a : r * .875 + a * .125), c) {
688
737
  let e = c;
689
738
  c = void 0, e.controller.enqueue(o.value), e.resolve();
@@ -729,7 +778,7 @@ var de = (e) => {
729
778
  }), queueMicrotask(() => e.close());
730
779
  }
731
780
  });
732
- }, zt = (e) => {
781
+ }, Bt = (e) => {
733
782
  let t = !1;
734
783
  return new ReadableStream({
735
784
  start: (n) => {
@@ -758,16 +807,16 @@ var de = (e) => {
758
807
  }), queueMicrotask(() => e.close());
759
808
  }
760
809
  });
761
- }, Bt = (e, t) => {
762
- let n = H(e.port, t);
763
- return n.start(), e.credit ? Rt(n) : zt(n);
764
- }, Vt = /* @__PURE__ */ t({
765
- box: () => Wt,
766
- isType: () => Ut,
767
- revive: () => Gt,
768
- type: () => Ht
769
- }), Ht = "writableStream", Ut = (e) => e instanceof WritableStream, Wt = (e, t) => {
770
- let { localPort: n, boxedRemote: r } = U(t), i = e.getWriter(), a = !1, o = (e, t) => e.then(() => n.postMessage({ type: "ack" })).catch((e) => n.postMessage({
810
+ }, Vt = (e, t) => {
811
+ let n = W(e.port, t);
812
+ return n.start(), e.credit ? zt(n) : Bt(n);
813
+ }, Ht = /* @__PURE__ */ t({
814
+ box: () => Gt,
815
+ isType: () => Wt,
816
+ revive: () => Kt,
817
+ type: () => Ut
818
+ }), Ut = "writableStream", Wt = (e) => e instanceof WritableStream, Gt = (e, t) => {
819
+ 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({
771
820
  type: "err",
772
821
  error: e?.message ?? String(e)
773
822
  })).then(() => {
@@ -779,11 +828,11 @@ var de = (e) => {
779
828
  a || (a = !0, i.abort(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
780
829
  }, { once: !0 }), n.start(), {
781
830
  ...M,
782
- type: Ht,
831
+ type: Ut,
783
832
  port: r
784
833
  };
785
- }, Gt = (e, t) => {
786
- let n = H(e.port, t);
834
+ }, Kt = (e, t) => {
835
+ let n = W(e.port, t);
787
836
  n.start();
788
837
  let r = /* @__PURE__ */ new Set(), i = !1;
789
838
  n.addEventListener("close", () => {
@@ -818,19 +867,19 @@ var de = (e) => {
818
867
  reason: e
819
868
  })
820
869
  });
821
- }, Kt = /* @__PURE__ */ t({
822
- box: () => Xt,
823
- isType: () => Jt,
824
- revive: () => Zt,
825
- type: () => qt
826
- }), qt = "abortSignal", Jt = (e) => e instanceof AbortSignal, Yt = /* @__PURE__ */ new WeakMap(), Xt = (e, t) => {
870
+ }, qt = /* @__PURE__ */ t({
871
+ box: () => Zt,
872
+ isType: () => Yt,
873
+ revive: () => Qt,
874
+ type: () => Jt
875
+ }), Jt = "abortSignal", Yt = (e) => e instanceof AbortSignal, Xt = /* @__PURE__ */ new WeakMap(), Zt = (e, t) => {
827
876
  if (e.aborted) return {
828
877
  ...M,
829
- type: qt,
878
+ type: Jt,
830
879
  aborted: !0,
831
- reason: Y(e.reason, t)
880
+ reason: X(e.reason, t)
832
881
  };
833
- let { localPort: n, boxedRemote: r } = U(t), i = () => {
882
+ let { localPort: n, boxedRemote: r } = G(t), i = () => {
834
883
  n.postMessage({
835
884
  type: "abort",
836
885
  reason: e.reason
@@ -840,35 +889,35 @@ var de = (e) => {
840
889
  });
841
890
  return e.addEventListener("abort", i, { once: !0 }), {
842
891
  ...M,
843
- type: qt,
892
+ type: Jt,
844
893
  aborted: !1,
845
894
  reason: void 0,
846
895
  port: r
847
896
  };
848
- }, Zt = (e, t) => {
897
+ }, Qt = (e, t) => {
849
898
  let n = new AbortController();
850
- if (e.aborted || e.port === void 0) return n.abort(X(e.reason, t)), n.signal;
851
- let r = H(e.port, t);
852
- return Yt.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
853
- e.type === "abort" && (n.abort(X(e.reason, t)), Yt.delete(n.signal), r.close());
899
+ if (e.aborted || e.port === void 0) return n.abort(Z(e.reason, t)), n.signal;
900
+ let r = W(e.port, t);
901
+ return Xt.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
902
+ e.type === "abort" && (n.abort(Z(e.reason, t)), Xt.delete(n.signal), r.close());
854
903
  }), n.signal;
855
- }, Qt = /* @__PURE__ */ t({
856
- box: () => tn,
857
- isType: () => en,
858
- revive: () => nn,
859
- type: () => $t
860
- }), $t = "response", en = (e) => e instanceof Response, tn = (e, t) => ({
904
+ }, $t = /* @__PURE__ */ t({
905
+ box: () => nn,
906
+ isType: () => tn,
907
+ revive: () => rn,
908
+ type: () => en
909
+ }), en = "response", tn = (e) => e instanceof Response, nn = (e, t) => ({
861
910
  ...M,
862
- type: $t,
911
+ type: en,
863
912
  status: e.status,
864
913
  statusText: e.statusText,
865
914
  headers: Ae(e.headers, t),
866
- body: e.body ? It(e.body, t) : null,
915
+ body: e.body ? Lt(e.body, t) : null,
867
916
  url: e.url,
868
917
  redirected: e.redirected
869
- }), nn = (e, t) => {
918
+ }), rn = (e, t) => {
870
919
  if (e.status === 0) return Response.error();
871
- let n = je(e.headers, t), r = e.body ? Bt(e.body, t) : null, i = e.status === 101 || e.status === 204 || e.status === 205 || e.status === 304;
920
+ let n = je(e.headers, t), r = e.body ? Vt(e.body, t) : null, i = e.status === 101 || e.status === 204 || e.status === 205 || e.status === 304;
872
921
  r && i && r.cancel().catch(() => {});
873
922
  let a = new Response(i ? null : r, {
874
923
  status: e.status,
@@ -882,18 +931,18 @@ var de = (e) => {
882
931
  value: !0,
883
932
  configurable: !0
884
933
  }), a;
885
- }, rn = /* @__PURE__ */ t({
886
- box: () => sn,
887
- isType: () => on,
888
- revive: () => cn,
889
- type: () => an
890
- }), an = "request", on = (e) => e instanceof Request, sn = (e, t) => ({
934
+ }, an = /* @__PURE__ */ t({
935
+ box: () => cn,
936
+ isType: () => sn,
937
+ revive: () => ln,
938
+ type: () => on
939
+ }), on = "request", sn = (e) => e instanceof Request, cn = (e, t) => ({
891
940
  ...M,
892
- type: an,
941
+ type: on,
893
942
  method: e.method,
894
943
  url: e.url,
895
944
  headers: Ae(e.headers, t),
896
- body: e.body ? It(e.body, t) : null,
945
+ body: e.body ? Lt(e.body, t) : null,
897
946
  credentials: e.credentials,
898
947
  cache: e.cache,
899
948
  mode: e.mode,
@@ -902,8 +951,8 @@ var de = (e) => {
902
951
  referrerPolicy: e.referrerPolicy,
903
952
  integrity: e.integrity,
904
953
  keepalive: e.keepalive,
905
- signal: Xt(e.signal, t)
906
- }), cn = (e, t) => {
954
+ signal: Zt(e.signal, t)
955
+ }), ln = (e, t) => {
907
956
  let n = je(e.headers, t), r = {
908
957
  method: e.method,
909
958
  headers: n,
@@ -914,31 +963,31 @@ var de = (e) => {
914
963
  referrerPolicy: e.referrerPolicy,
915
964
  integrity: e.integrity,
916
965
  keepalive: e.keepalive,
917
- signal: Zt(e.signal, t)
966
+ signal: Qt(e.signal, t)
918
967
  };
919
- return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = Bt(e.body, t), r.duplex = "half"), new Request(e.url, r);
920
- }, ln = /* @__PURE__ */ t({
921
- box: () => xn,
922
- boxByReference: () => Sn,
923
- identity: () => q,
924
- isType: () => yn,
925
- revive: () => Cn,
926
- type: () => K
927
- }), K = "identity", un = Symbol.for("osra.identity"), dn = (e) => e !== null && (typeof e == "object" || typeof e == "function"), fn = (e) => {
968
+ return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = Vt(e.body, t), r.duplex = "half"), new Request(e.url, r);
969
+ }, un = /* @__PURE__ */ t({
970
+ box: () => Sn,
971
+ boxByReference: () => Cn,
972
+ identity: () => Y,
973
+ isType: () => bn,
974
+ revive: () => wn,
975
+ type: () => J
976
+ }), J = "identity", dn = Symbol.for("osra.identity"), fn = (e) => e !== null && (typeof e == "object" || typeof e == "function"), pn = (e) => {
928
977
  if (e === null) return !1;
929
978
  let t = typeof e;
930
979
  return t === "object" || t === "function" ? !0 : t === "symbol" ? Symbol.keyFor(e) === void 0 : !1;
931
- }, pn = (e) => dn(e) && un in e && e[un] === !0, mn = /* @__PURE__ */ new WeakMap(), hn = (e) => {
932
- if (pn(e)) return e;
933
- let t = mn.get(e);
980
+ }, mn = (e) => fn(e) && dn in e && e[dn] === !0, hn = /* @__PURE__ */ new WeakMap(), gn = (e) => {
981
+ if (mn(e)) return e;
982
+ let t = hn.get(e);
934
983
  if (t) return t;
935
984
  let n = {
936
- [un]: !0,
985
+ [dn]: !0,
937
986
  value: e
938
987
  };
939
- return mn.set(e, n), n;
940
- }, q = (e) => dn(e) ? hn(e) : e, gn = /* @__PURE__ */ new WeakMap(), _n = (e) => {
941
- let t = gn.get(e);
988
+ return hn.set(e, n), n;
989
+ }, Y = (e) => fn(e) ? gn(e) : e, _n = /* @__PURE__ */ new WeakMap(), vn = (e) => {
990
+ let t = _n.get(e);
942
991
  if (t) return t;
943
992
  let n = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new WeakMap(), o = {
944
993
  sendIds: n,
@@ -957,16 +1006,16 @@ var de = (e) => {
957
1006
  revivedToId: a,
958
1007
  listenerInstalled: !1
959
1008
  };
960
- return gn.set(e, o), vn(e, o), F(e, () => {
1009
+ return _n.set(e, o), yn(e, o), F(e, () => {
961
1010
  o.receiveCache.clear(), o.idToSent.clear();
962
1011
  }), o;
963
- }, vn = (e, t) => {
1012
+ }, yn = (e, t) => {
964
1013
  t.listenerInstalled || (t.listenerInstalled = !0, e.eventTarget.addEventListener("message", ({ detail: e }) => {
965
1014
  if (e?.type !== "identity-dispose") return;
966
1015
  let n = t.receiveCache.get(e.id);
967
- t.receiveCache.delete(e.id), n !== void 0 && fn(n) && t.revivedToId.delete(n);
1016
+ t.receiveCache.delete(e.id), n !== void 0 && pn(n) && t.revivedToId.delete(n);
968
1017
  }));
969
- }, yn = (e) => pn(e), bn = (e, t) => {
1018
+ }, bn = (e) => mn(e), xn = (e, t) => {
970
1019
  let n = t.sendIds.get(e);
971
1020
  if (n !== void 0) return {
972
1021
  id: n,
@@ -982,86 +1031,86 @@ var de = (e) => {
982
1031
  id: i,
983
1032
  isExisting: !1
984
1033
  };
985
- }, xn = (e, t) => {
986
- let n = _n(t), r = e.value, i = Y(r, t);
987
- if (!fn(r)) return {
1034
+ }, Sn = (e, t) => {
1035
+ let n = vn(t), r = e.value, i = X(r, t);
1036
+ if (!pn(r)) return {
988
1037
  ...M,
989
- type: K,
1038
+ type: J,
990
1039
  id: globalThis.crypto.randomUUID(),
991
1040
  inner: i
992
1041
  };
993
- let { id: a, isExisting: o } = bn(r, n);
1042
+ let { id: a, isExisting: o } = xn(r, n);
994
1043
  return o ? {
995
1044
  ...M,
996
- type: K,
1045
+ type: J,
997
1046
  id: a
998
1047
  } : {
999
1048
  ...M,
1000
- type: K,
1049
+ type: J,
1001
1050
  id: a,
1002
1051
  inner: i
1003
1052
  };
1004
- }, Sn = (e, t, n) => {
1005
- let { id: r, isExisting: i } = bn(e, _n(n));
1053
+ }, Cn = (e, t, n) => {
1054
+ let { id: r, isExisting: i } = xn(e, vn(n));
1006
1055
  return i ? {
1007
1056
  ...M,
1008
- type: K,
1057
+ type: J,
1009
1058
  id: r
1010
1059
  } : {
1011
1060
  ...M,
1012
- type: K,
1061
+ type: J,
1013
1062
  id: r,
1014
1063
  inner: t
1015
1064
  };
1016
- }, Cn = (e, t) => {
1017
- let n = _n(t), r = n.receiveCache.get(e.id);
1065
+ }, wn = (e, t) => {
1066
+ let n = vn(t), r = n.receiveCache.get(e.id);
1018
1067
  if (r !== void 0) return r;
1019
1068
  let i = n.idToSent.get(e.id)?.deref();
1020
1069
  if (i !== void 0) return i;
1021
1070
  if (!("inner" in e) || e.inner === void 0) throw Error(`osra identity: received id=${e.id} with no inner payload and no cached value`);
1022
- let a = X(e.inner, t);
1023
- return n.receiveCache.set(e.id, a), fn(a) && n.revivedToId.set(a, e.id), a;
1024
- }, wn = /* @__PURE__ */ t({
1025
- box: () => En,
1026
- isType: () => Tn,
1027
- revive: () => Dn,
1071
+ let a = Z(e.inner, t);
1072
+ return n.receiveCache.set(e.id, a), pn(a) && n.revivedToId.set(a, e.id), a;
1073
+ }, Tn = /* @__PURE__ */ t({
1074
+ box: () => Dn,
1075
+ isType: () => En,
1076
+ revive: () => On,
1028
1077
  type: () => "map"
1029
- }), Tn = (e) => e instanceof Map, En = (e, t) => ({
1078
+ }), En = (e) => e instanceof Map, Dn = (e, t) => ({
1030
1079
  ...M,
1031
1080
  type: "map",
1032
- entries: Array.from(e, ([e, n]) => [Y(e, t), Y(n, t)])
1033
- }), Dn = (e, t) => new Map(e.entries.map(([e, n]) => [X(e, t), X(n, t)])), On = /* @__PURE__ */ t({
1034
- box: () => An,
1035
- isType: () => kn,
1036
- revive: () => jn,
1081
+ entries: Array.from(e, ([e, n]) => [X(e, t), X(n, t)])
1082
+ }), On = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), kn = /* @__PURE__ */ t({
1083
+ box: () => jn,
1084
+ isType: () => An,
1085
+ revive: () => Mn,
1037
1086
  type: () => "set"
1038
- }), kn = (e) => e instanceof Set, An = (e, t) => ({
1087
+ }), An = (e) => e instanceof Set, jn = (e, t) => ({
1039
1088
  ...M,
1040
1089
  type: "set",
1041
- values: Array.from(e, (e) => Y(e, t))
1042
- }), jn = (e, t) => new Set(e.values.map((e) => X(e, t))), Mn = /* @__PURE__ */ t({
1043
- box: () => Fn,
1044
- isType: () => Pn,
1045
- revive: () => In,
1046
- type: () => Nn
1047
- }), Nn = "bigint", Pn = (e) => typeof e == "bigint", Fn = (e, t) => ({
1090
+ values: Array.from(e, (e) => X(e, t))
1091
+ }), Mn = (e, t) => new Set(e.values.map((e) => Z(e, t))), Nn = /* @__PURE__ */ t({
1092
+ box: () => In,
1093
+ isType: () => Fn,
1094
+ revive: () => Ln,
1095
+ type: () => Pn
1096
+ }), Pn = "bigint", Fn = (e) => typeof e == "bigint", In = (e, t) => ({
1048
1097
  ...M,
1049
- type: Nn,
1098
+ type: Pn,
1050
1099
  value: e.toString()
1051
- }), In = (e, t) => BigInt(e.value), Ln = /* @__PURE__ */ t({
1052
- box: () => Bn,
1053
- isType: () => zn,
1054
- revive: () => Vn,
1055
- type: () => Rn
1056
- }), Rn = "event", zn = (e) => e instanceof Event, Bn = (e, t) => ({
1100
+ }), Ln = (e, t) => BigInt(e.value), Rn = /* @__PURE__ */ t({
1101
+ box: () => Vn,
1102
+ isType: () => Bn,
1103
+ revive: () => Hn,
1104
+ type: () => zn
1105
+ }), zn = "event", Bn = (e) => e instanceof Event, Vn = (e, t) => ({
1057
1106
  ...M,
1058
- type: Rn,
1107
+ type: zn,
1059
1108
  eventType: e.type,
1060
1109
  bubbles: e.bubbles,
1061
1110
  cancelable: e.cancelable,
1062
1111
  composed: e.composed,
1063
- ...e instanceof CustomEvent ? { detail: Y(e.detail, t) } : {}
1064
- }), Vn = (e, t) => {
1112
+ ...e instanceof CustomEvent ? { detail: X(e.detail, t) } : {}
1113
+ }), Hn = (e, t) => {
1065
1114
  let n = {
1066
1115
  bubbles: e.bubbles,
1067
1116
  cancelable: e.cancelable,
@@ -1069,102 +1118,102 @@ var de = (e) => {
1069
1118
  };
1070
1119
  return "detail" in e ? new CustomEvent(e.eventType, {
1071
1120
  ...n,
1072
- detail: X(e.detail, t)
1121
+ detail: Z(e.detail, t)
1073
1122
  }) : new Event(e.eventType, n);
1074
- }, Hn = /* @__PURE__ */ t({
1075
- box: () => Gn,
1076
- isType: () => Wn,
1077
- revive: () => Yn,
1078
- type: () => Un
1079
- }), Un = "eventTarget", Wn = (e) => e instanceof EventTarget, Gn = (e, t) => {
1123
+ }, Un = /* @__PURE__ */ t({
1124
+ box: () => Kn,
1125
+ isType: () => Gn,
1126
+ revive: () => Xn,
1127
+ type: () => Wn
1128
+ }), Wn = "eventTarget", Gn = (e) => e instanceof EventTarget, Kn = (e, t) => {
1080
1129
  let n = [], r = (e) => typeof e == "boolean" ? e : !!e?.capture;
1081
1130
  return {
1082
1131
  ...M,
1083
- type: Un,
1084
- addListener: W((t, i, a) => {
1132
+ type: Wn,
1133
+ addListener: K((t, i, a) => {
1085
1134
  n.push({
1086
1135
  eventType: t,
1087
1136
  listener: i,
1088
1137
  capture: r(a)
1089
1138
  }), e.addEventListener(t, i, a);
1090
1139
  }, t),
1091
- removeListener: W((t, i, a) => {
1140
+ removeListener: K((t, i, a) => {
1092
1141
  let o = r(a), s = n.findIndex((e) => e.eventType === t && e.listener === i && e.capture === o);
1093
1142
  s !== -1 && n.splice(s, 1), e.removeEventListener(t, i, a);
1094
1143
  }, t),
1095
- removeAllListeners: W(() => {
1144
+ removeAllListeners: K(() => {
1096
1145
  for (let { eventType: t, listener: r, capture: i } of n.splice(0)) e.removeEventListener(t, r, { capture: i });
1097
1146
  }, t)
1098
1147
  };
1099
- }, Kn = /* @__PURE__ */ new WeakMap(), qn = (e) => {
1148
+ }, qn = /* @__PURE__ */ new WeakMap(), Jn = (e) => {
1100
1149
  if (typeof e == "function") return e;
1101
- let t = Kn.get(e);
1102
- return t || Kn.set(e, t = (t) => e.handleEvent(t)), t;
1103
- }, Jn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), Yn = (e, t) => {
1104
- let n = G(e.addListener, t), r = G(e.removeListener, t), i = G(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
1150
+ let t = qn.get(e);
1151
+ return t || qn.set(e, t = (t) => e.handleEvent(t)), t;
1152
+ }, Yn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), Xn = (e, t) => {
1153
+ let n = q(e.addListener, t), r = q(e.removeListener, t), i = q(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
1105
1154
  let t = o.indexOf(e);
1106
1155
  t !== -1 && o.splice(t, 1);
1107
1156
  };
1108
1157
  return Object.defineProperty(a, "addEventListener", { value: (e, t, r) => {
1109
1158
  if (t === null) return;
1110
- let i = qn(t), a = typeof r == "boolean" ? r : !!r?.capture;
1111
- if (Jn(o, e, i, a)) return;
1159
+ let i = Jn(t), a = typeof r == "boolean" ? r : !!r?.capture;
1160
+ if (Yn(o, e, i, a)) return;
1112
1161
  let c = typeof r == "object" && r?.once ? (e) => (s(l), i(e)) : i, l = {
1113
1162
  eventType: e,
1114
1163
  listener: i,
1115
1164
  capture: a,
1116
1165
  wire: c
1117
1166
  };
1118
- o.push(l), (typeof r == "object" ? r?.signal : void 0)?.addEventListener("abort", () => s(l), { once: !0 }), n(e, q(c), r).catch(() => {});
1167
+ o.push(l), (typeof r == "object" ? r?.signal : void 0)?.addEventListener("abort", () => s(l), { once: !0 }), n(e, Y(c), r).catch(() => {});
1119
1168
  } }), Object.defineProperty(a, "removeEventListener", { value: (e, t, n) => {
1120
1169
  if (t === null) return;
1121
- let i = qn(t), a = typeof n == "boolean" ? n : !!n?.capture, c = Jn(o, e, i, a);
1122
- c && (s(c), r(e, q(c.wire), { capture: a }).catch(() => {}));
1170
+ let i = Jn(t), a = typeof n == "boolean" ? n : !!n?.capture, c = Yn(o, e, i, a);
1171
+ c && (s(c), r(e, Y(c.wire), { capture: a }).catch(() => {}));
1123
1172
  } }), z(a, () => {
1124
1173
  i().catch(() => {});
1125
1174
  }), a;
1126
- }, Xn = /* @__PURE__ */ t({
1127
- box: () => $n,
1128
- isType: () => Qn,
1129
- revive: () => er,
1130
- type: () => Zn
1131
- }), Zn = "symbol", Qn = (e) => typeof e == "symbol", $n = (e, t) => {
1175
+ }, Zn = /* @__PURE__ */ t({
1176
+ box: () => er,
1177
+ isType: () => $n,
1178
+ revive: () => tr,
1179
+ type: () => Qn
1180
+ }), Qn = "symbol", $n = (e) => typeof e == "symbol", er = (e, t) => {
1132
1181
  let n = Symbol.keyFor(e);
1133
- return n === void 0 ? Sn(e, {
1182
+ return n === void 0 ? Cn(e, {
1134
1183
  ...M,
1135
- type: Zn,
1184
+ type: Qn,
1136
1185
  description: e.description
1137
1186
  }, t) : {
1138
1187
  ...M,
1139
- type: Zn,
1188
+ type: Qn,
1140
1189
  registryKey: n
1141
1190
  };
1142
- }, er = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), tr = /* @__PURE__ */ t({
1143
- box: () => ir,
1144
- isType: () => rr,
1145
- revive: () => ar,
1146
- type: () => nr
1147
- }), nr = "asyncIterator", rr = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", ir = (e, t) => {
1191
+ }, tr = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), nr = /* @__PURE__ */ t({
1192
+ box: () => ar,
1193
+ isType: () => ir,
1194
+ revive: () => or,
1195
+ type: () => rr
1196
+ }), rr = "asyncIterator", ir = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", ar = (e, t) => {
1148
1197
  let n = e[Symbol.asyncIterator]();
1149
1198
  return {
1150
1199
  ...M,
1151
- type: nr,
1152
- next: W(((e) => n.next(e)), t),
1153
- return: W(((e) => n.return?.(e) ?? Promise.resolve({
1200
+ type: rr,
1201
+ next: K(((e) => n.next(e)), t),
1202
+ return: K(((e) => n.return?.(e) ?? Promise.resolve({
1154
1203
  done: !0,
1155
1204
  value: e
1156
1205
  })), t),
1157
- throw: W(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1206
+ throw: K(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1158
1207
  };
1159
- }, ar = (e, t) => {
1160
- let n = G(e.next, t), r = G(e.return, t), i = G(e.throw, t), a = {
1208
+ }, or = (e, t) => {
1209
+ let n = q(e.next, t), r = q(e.return, t), i = q(e.throw, t), a = {
1161
1210
  next: (...e) => n(...e),
1162
1211
  return: (e) => r(e),
1163
1212
  throw: (e) => i(e),
1164
1213
  [Symbol.asyncIterator]: () => a
1165
1214
  };
1166
1215
  return a;
1167
- }, or = [
1216
+ }, sr = [
1168
1217
  globalThis.File,
1169
1218
  globalThis.FileList,
1170
1219
  globalThis.RegExp,
@@ -1184,7 +1233,7 @@ var de = (e) => {
1184
1233
  globalThis.FileSystemFileHandle,
1185
1234
  globalThis.FileSystemDirectoryHandle,
1186
1235
  globalThis.RTCCertificate
1187
- ], sr = [
1236
+ ], cr = [
1188
1237
  globalThis.CropTarget,
1189
1238
  globalThis.EncodedAudioChunk,
1190
1239
  globalThis.EncodedVideoChunk,
@@ -1195,58 +1244,66 @@ var de = (e) => {
1195
1244
  globalThis.RTCEncodedAudioFrame,
1196
1245
  globalThis.RTCEncodedVideoFrame,
1197
1246
  globalThis.WebTransportError
1198
- ], cr = {
1247
+ ], lr = {
1199
1248
  type: "clonable",
1200
1249
  capableOnly: !0,
1201
- isType: (e) => S(e, or) || S(e, sr),
1250
+ isType: (e) => S(e, sr) || S(e, cr),
1202
1251
  box: (e, t) => e,
1203
1252
  revive: (e, t) => e
1204
- }, lr = [
1253
+ }, ur = [
1205
1254
  globalThis.ImageBitmap,
1206
1255
  globalThis.OffscreenCanvas,
1207
1256
  globalThis.WritableStream,
1208
1257
  globalThis.TransformStream,
1209
1258
  globalThis.MediaStreamTrack,
1210
1259
  globalThis.RTCDataChannel
1211
- ], ur = [
1260
+ ], dr = [
1212
1261
  globalThis.AudioData,
1213
1262
  globalThis.VideoFrame,
1214
1263
  globalThis.MediaSourceHandle,
1215
1264
  globalThis.MIDIAccess,
1216
1265
  globalThis.WebTransportReceiveStream,
1217
1266
  globalThis.WebTransportSendStream
1218
- ], dr = {
1267
+ ], fr = {
1219
1268
  type: "transferable",
1220
1269
  capableOnly: !0,
1221
- isType: (e) => S(e, lr) || S(e, ur),
1270
+ isType: (e) => S(e, ur) || S(e, dr),
1222
1271
  box: (e, t) => e,
1223
1272
  revive: (e, t) => e
1224
- }, fr = (e) => {
1273
+ }, pr = {
1274
+ type: "blobGuard",
1275
+ isType: ((e) => typeof Blob < "u" && e instanceof Blob),
1276
+ box: (e, t) => {
1277
+ if (O(t.transport)) throw TypeError("osra: Blob support was removed in 0.6.0, send an ArrayBuffer or Uint8Array instead");
1278
+ return e;
1279
+ },
1280
+ revive: (e, t) => e
1281
+ }, mr = (e) => {
1225
1282
  if (typeof e != "object" || !e) return !1;
1226
1283
  let t = Object.getPrototypeOf(e);
1227
1284
  return t === Object.prototype || t === null;
1228
- }, J = [
1285
+ }, hr = [
1229
1286
  Ge,
1230
- ln,
1287
+ un,
1231
1288
  _e,
1232
1289
  Se,
1233
1290
  De,
1234
1291
  Me,
1235
1292
  Re,
1236
- yt,
1237
- Et,
1293
+ bt,
1294
+ Dt,
1238
1295
  it,
1239
- At,
1240
- Vt,
1241
- Kt,
1242
- Qt,
1243
- rn,
1244
- wn,
1245
- On,
1246
- Mn,
1247
- Xn,
1248
- Ln,
1249
- tr,
1296
+ jt,
1297
+ Ht,
1298
+ qt,
1299
+ $t,
1300
+ an,
1301
+ Tn,
1302
+ kn,
1303
+ Nn,
1304
+ Zn,
1305
+ Rn,
1306
+ nr,
1250
1307
  {
1251
1308
  type: "nonFiniteNumber",
1252
1309
  isType: (e) => typeof e == "number" && !Number.isFinite(e),
@@ -1266,13 +1323,14 @@ var de = (e) => {
1266
1323
  } : e,
1267
1324
  revive: (e, t) => void 0
1268
1325
  },
1269
- cr,
1270
- dr,
1271
- Hn,
1326
+ lr,
1327
+ fr,
1328
+ pr,
1329
+ Un,
1272
1330
  {
1273
1331
  type: "unclonable",
1274
1332
  isType: (e) => {
1275
- if (typeof e != "object" || !e || Array.isArray(e) || fr(e)) return !1;
1333
+ if (typeof e != "object" || !e || Array.isArray(e) || mr(e)) return !1;
1276
1334
  try {
1277
1335
  return structuredClone(e), !1;
1278
1336
  } catch {
@@ -1285,39 +1343,39 @@ var de = (e) => {
1285
1343
  }),
1286
1344
  revive: (e, t) => ({})
1287
1345
  }
1288
- ], pr = (e, t) => t.find((t) => t.isType(e)), mr = (e, t) => t.find((t) => t.type === e.type), hr = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, gr = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : hr(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, _r = /* @__PURE__ */ new WeakSet(), vr = /* @__PURE__ */ new WeakSet(), yr = (e) => e !== null && (typeof e == "object" || typeof e == "function"), Y = (e, t) => {
1346
+ ], gr = (e, t) => t.find((t) => t.isType(e)), _r = (e, t) => t.find((t) => t.type === e.type), vr = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, yr = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : vr(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, br = /* @__PURE__ */ new WeakSet(), xr = /* @__PURE__ */ new WeakSet(), Sr = (e) => e !== null && (typeof e == "object" || typeof e == "function"), X = (e, t) => {
1289
1347
  if (N(e)) return e;
1290
- let n = yr(e);
1348
+ let n = Sr(e);
1291
1349
  if (n) {
1292
- if (_r.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1293
- _r.add(e);
1350
+ if (br.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1351
+ br.add(e);
1294
1352
  }
1295
1353
  try {
1296
- let n = pr(e, t.revivableModules);
1297
- return n ? n.box(e, t) : gr(e, (e) => Y(e, t));
1354
+ let n = gr(e, t.revivableModules);
1355
+ return n ? n.box(e, t) : yr(e, (e) => X(e, t));
1298
1356
  } finally {
1299
- n && _r.delete(e);
1357
+ n && br.delete(e);
1300
1358
  }
1301
- }, X = (e, t) => {
1302
- let n = yr(e);
1359
+ }, Z = (e, t) => {
1360
+ let n = Sr(e);
1303
1361
  if (n) {
1304
- if (vr.has(e)) throw TypeError("osra: cannot revive a circular structure");
1305
- vr.add(e);
1362
+ if (xr.has(e)) throw TypeError("osra: cannot revive a circular structure");
1363
+ xr.add(e);
1306
1364
  }
1307
1365
  try {
1308
1366
  if (N(e)) {
1309
- let n = mr(e, t.revivableModules);
1367
+ let n = _r(e, t.revivableModules);
1310
1368
  if (n) return n.revive(e, t);
1311
1369
  }
1312
- return gr(e, (e) => X(e, t));
1370
+ return yr(e, (e) => Z(e, t));
1313
1371
  } finally {
1314
- n && vr.delete(e);
1372
+ n && xr.delete(e);
1315
1373
  }
1316
- }, br = /* @__PURE__ */ t({
1317
- init: () => Sr,
1318
- startBidirectionalConnection: () => Z,
1319
- type: () => xr
1320
- }), xr = "bidirectional", Z = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1374
+ }, Cr = /* @__PURE__ */ t({
1375
+ init: () => Tr,
1376
+ startBidirectionalConnection: () => Q,
1377
+ type: () => wr
1378
+ }), wr = "bidirectional", Q = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1321
1379
  let o = {
1322
1380
  transport: e,
1323
1381
  remoteUuid: n,
@@ -1332,12 +1390,12 @@ var de = (e) => {
1332
1390
  }), i({
1333
1391
  type: "init",
1334
1392
  remoteUuid: n,
1335
- data: Y(t, o)
1393
+ data: X(t, o)
1336
1394
  }), {
1337
1395
  revivableContext: o,
1338
- remoteValue: s.then((e) => X(e, o))
1396
+ remoteValue: s.then((e) => Z(e, o))
1339
1397
  };
1340
- }, Sr = (e) => {
1398
+ }, Tr = (e) => {
1341
1399
  if (!(k(e.transport) && A(e.transport))) return;
1342
1400
  if (e.protocolEventTarget.addEventListener("message", ({ detail: t }) => {
1343
1401
  if (t.type === "announce") {
@@ -1355,7 +1413,7 @@ var de = (e) => {
1355
1413
  });
1356
1414
  let n = e.createConnectionEventTarget(), r;
1357
1415
  try {
1358
- r = Z({
1416
+ r = Q({
1359
1417
  transport: e.transport,
1360
1418
  value: e.value,
1361
1419
  remoteUuid: t.uuid,
@@ -1388,7 +1446,7 @@ var de = (e) => {
1388
1446
  }), e.presetRemoteUuid !== void 0) {
1389
1447
  let t = e.createConnectionEventTarget(), n;
1390
1448
  try {
1391
- n = Z({
1449
+ n = Q({
1392
1450
  transport: e.transport,
1393
1451
  value: e.value,
1394
1452
  remoteUuid: e.presetRemoteUuid,
@@ -1409,17 +1467,22 @@ var de = (e) => {
1409
1467
  return;
1410
1468
  }
1411
1469
  let t = 50, n, r = () => {
1412
- e.unregisterSignal?.aborted || e.connectionContexts.size > 0 || (e.sendMessage({ type: "announce" }), n = setTimeout(r, t), t = Math.min(t * 2, 1e3));
1470
+ if (!(e.unregisterSignal?.aborted || e.connectionContexts.size > 0)) {
1471
+ try {
1472
+ e.sendMessage({ type: "announce" });
1473
+ } catch {}
1474
+ n = setTimeout(r, t), t = Math.min(t * 2, 1e3);
1475
+ }
1413
1476
  };
1414
1477
  e.unregisterSignal?.addEventListener("abort", () => clearTimeout(n), { once: !0 }), r();
1415
- }, Q = () => new EventTarget(), $ = (e) => {
1478
+ }, Er = () => new EventTarget(), $ = (e) => {
1416
1479
  let t = j(e), n = t ? e.emit : e, r = t ? e.receive : e;
1417
1480
  return {
1418
1481
  isJson: t && "isJson" in e && e.isJson !== void 0 ? e.isJson : n !== void 0 && O(n) || r !== void 0 && O(r),
1419
1482
  ...n === void 0 ? {} : { emit: n },
1420
1483
  ...r === void 0 ? {} : { receive: r }
1421
1484
  };
1422
- }, Cr = (e) => e ? e(J) : J, wr = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: d } = {}) => {
1485
+ }, Dr = (e) => e ? e(hr) : hr, Or = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: d } = {}) => {
1423
1486
  let f = $(e), p = $(t), m = (e, t, r, i, a) => {
1424
1487
  !A(e) || !k(t) || l({
1425
1488
  transport: e,
@@ -1433,10 +1496,10 @@ var de = (e) => {
1433
1496
  });
1434
1497
  };
1435
1498
  m(f, p, a, o, s), m(p, f, o, a, c);
1436
- }, Tr = [br], Er = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: d, uuid: f, remoteUuid: p }) => {
1499
+ }, kr = [Cr], Ar = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: d, uuid: f, remoteUuid: p }) => {
1437
1500
  let m = $(t);
1438
1501
  if (!(k(m) && A(m))) throw 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");
1439
- let ee = Cr(d), h = /* @__PURE__ */ new Map(), { promise: g, resolve: te, reject: _ } = Promise.withResolvers();
1502
+ let ee = Dr(d), h = /* @__PURE__ */ new Map(), { promise: g, resolve: te, reject: _ } = Promise.withResolvers();
1440
1503
  g.catch(() => {});
1441
1504
  let v = f ?? globalThis.crypto.randomUUID(), y = (e) => {
1442
1505
  let t = {
@@ -1448,7 +1511,7 @@ var de = (e) => {
1448
1511
  u(m, t, s, I(t));
1449
1512
  }, b = (e) => {
1450
1513
  c?.aborted || y(e);
1451
- }, x = Q(), ne = {
1514
+ }, x = Er(), ne = {
1452
1515
  transport: m,
1453
1516
  value: e,
1454
1517
  revivableModules: ee,
@@ -1459,7 +1522,7 @@ var de = (e) => {
1459
1522
  protocolEventTarget: x,
1460
1523
  resolveRemoteValue: te,
1461
1524
  rejectRemoteValue: _,
1462
- createConnectionEventTarget: Q,
1525
+ createConnectionEventTarget: Er,
1463
1526
  unregisterSignal: c
1464
1527
  };
1465
1528
  l({
@@ -1478,10 +1541,10 @@ var de = (e) => {
1478
1541
  }), We(t.connection.revivableContext);
1479
1542
  h.clear(), _(c.reason);
1480
1543
  }, { once: !0 });
1481
- for (let e of Tr) e.init(ne);
1544
+ for (let e of kr) e.init(ne);
1482
1545
  return g;
1483
- }, Dr = async (e, t) => Er(e, t);
1546
+ }, jr = async (e, t) => Ar(e, t);
1484
1547
  //#endregion
1485
- export { M as BoxBase, R as EventChannel, L as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, le as assertEmitTransport, ue as assertReceiveTransport, he as boxBuffer, s as checkOsraMessageKey, Tr as connections, Q as createTypedEventTarget, J as defaultRevivableModules, Dr as expose, I as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, q as identity, Sr as init, S as instanceOfAny, ie as isClonable, fe as isCustomEmitTransport, pe as isCustomReceiveTransport, j as isCustomTransport, y as isDedicatedWorker, se as isEmitJsonOnlyTransport, k as isEmitTransport, O as isJsonOnlyTransport, ne as isOsraMessage, ce as isReceiveJsonOnlyTransport, A as isReceiveTransport, N as isRevivableBox, _ as isServiceWorker, te as isServiceWorkerContainer, re as isSharedArrayBuffer, b as isSharedWorker, ae as isTransferable, me as isTransport, h as isTypedArray, T as isWebExtensionOnConnect, E as isWebExtensionOnMessage, w as isWebExtensionPort, C as isWebExtensionRuntime, g as isWebSocket, D as isWindow, v as isWorker, Cr as mergeRevivableModules, $ as normalizeTransport, F as onTeardown, Y as recursiveBox, X as recursiveRevive, l as registerOsraMessageListener, wr as relay, ge as reviveBuffer, We as runTeardown, u as sendOsraMessage, Z as startBidirectionalConnection, Er as startConnections, z as trackGc, Ze as transfer, xr as type, m as typedArrayToType, ee as typedArrayTypeToTypedArrayConstructor };
1548
+ export { M as BoxBase, R as EventChannel, L as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, le as assertEmitTransport, ue as assertReceiveTransport, he as boxBuffer, s as checkOsraMessageKey, kr as connections, Er as createTypedEventTarget, hr as defaultRevivableModules, jr as expose, I as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, Y as identity, Tr as init, S as instanceOfAny, ie as isClonable, fe as isCustomEmitTransport, pe as isCustomReceiveTransport, j as isCustomTransport, y as isDedicatedWorker, se as isEmitJsonOnlyTransport, k as isEmitTransport, O as isJsonOnlyTransport, ne as isOsraMessage, ce as isReceiveJsonOnlyTransport, A as isReceiveTransport, N as isRevivableBox, _ as isServiceWorker, te as isServiceWorkerContainer, re as isSharedArrayBuffer, b as isSharedWorker, ae as isTransferable, me as isTransport, h as isTypedArray, T as isWebExtensionOnConnect, E as isWebExtensionOnMessage, w as isWebExtensionPort, C as isWebExtensionRuntime, g as isWebSocket, D as isWindow, v as isWorker, Dr as mergeRevivableModules, $ as normalizeTransport, F as onTeardown, X as recursiveBox, Z as recursiveRevive, l as registerOsraMessageListener, Or as relay, ge as reviveBuffer, We as runTeardown, u as sendOsraMessage, Q as startBidirectionalConnection, Ar as startConnections, z as trackGc, Ze as transfer, wr as type, m as typedArrayToType, ee as typedArrayTypeToTypedArrayConstructor };
1486
1549
 
1487
1550
  //# sourceMappingURL=index.js.map