osra 0.5.5 → 0.5.7

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
@@ -61,7 +61,7 @@ var e = Object.defineProperty, t = (t, n) => {
61
61
  else if (O(i)) i.postMessage(t, n, r);
62
62
  else if (T(i)) i.postMessage(t);
63
63
  else if (w(i)) i.sendMessage(t);
64
- else if (_(i)) {
64
+ else if (g(i)) {
65
65
  let e = JSON.stringify(t);
66
66
  i.readyState === WebSocket.CONNECTING ? i.addEventListener("open", () => i.send(e), { once: !0 }) : i.send(e);
67
67
  } else x(i) ? i.port.postMessage(t, r) : i.postMessage(t, r);
@@ -83,11 +83,11 @@ var e = Object.defineProperty, t = (t, n) => {
83
83
  if (t in f) return t;
84
84
  for (let [t, n] of Object.entries(f)) if (n && e instanceof n) return t;
85
85
  throw Error("Unknown typed array type");
86
- }, h = (e) => {
86
+ }, ee = (e) => {
87
87
  let t = f[e];
88
88
  if (!t) throw Error("Unknown typed array type");
89
89
  return t;
90
- }, g = (e) => p.some((t) => !!t && e instanceof t), _ = (e) => e instanceof WebSocket, ee = (e) => !!globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, v = (e) => !!globalThis.ServiceWorker && e instanceof ServiceWorker, y = (e) => !!globalThis.Worker && e instanceof Worker, b = (e) => {
90
+ }, h = (e) => p.some((t) => !!t && e instanceof t), g = (e) => e instanceof WebSocket, _ = (e) => !!globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, v = (e) => !!globalThis.ServiceWorker && e instanceof ServiceWorker, y = (e) => !!globalThis.Worker && e instanceof Worker, b = (e) => {
91
91
  let t = globalThis.DedicatedWorkerGlobalScope;
92
92
  return !!t && e instanceof t;
93
93
  }, x = (e) => !!globalThis.SharedWorker && e instanceof SharedWorker, S = (e) => e instanceof MessagePort, te = (e) => !!e && typeof e == "object" && "__OSRA_KEY__" in e && !!e.__OSRA_KEY__, C = (e, t) => {
@@ -126,11 +126,11 @@ var e = Object.defineProperty, t = (t, n) => {
126
126
  return !1;
127
127
  }
128
128
  }
129
- }, oe = (e) => _(e) || T(e) || w(e), se = (e) => _(e) || T(e) || E(e) || D(e) || w(e), k = (e) => !!e && typeof e == "object" && !O(e) && "isJson" in e && e.isJson === !0 || oe(e) || se(e), A = (e) => O(e) || oe(e) || v(e) || y(e) || b(e) || x(e) || S(e) || de(e);
129
+ }, oe = (e) => g(e) || T(e) || w(e), se = (e) => g(e) || T(e) || E(e) || D(e) || w(e), k = (e) => !!e && typeof e == "object" && !O(e) && "isJson" in e && e.isJson === !0 || oe(e) || se(e), A = (e) => O(e) || oe(e) || v(e) || y(e) || b(e) || x(e) || S(e) || de(e);
130
130
  function ce(e) {
131
131
  if (!A(e)) throw Error("Transport is not emitable");
132
132
  }
133
- var j = (e) => O(e) || se(e) || ee(e) || y(e) || b(e) || x(e) || S(e) || fe(e);
133
+ var j = (e) => O(e) || se(e) || _(e) || y(e) || b(e) || x(e) || S(e) || fe(e);
134
134
  function le(e) {
135
135
  if (!j(e)) throw Error("Transport is not receiveable");
136
136
  }
@@ -138,39 +138,39 @@ var ue = (e) => {
138
138
  if (!e || typeof e != "object" || O(e)) return !1;
139
139
  let t = Object.getPrototypeOf(e);
140
140
  return t === Object.prototype || t === null;
141
- }, de = (e) => !ue(e) || !("emit" in e) ? !1 : A(e.emit) || typeof e.emit == "function", fe = (e) => !ue(e) || !("receive" in e) ? !1 : j(e.receive) || typeof e.receive == "function", M = (e) => de(e) || fe(e), pe = (e) => A(e) || j(e) || M(e) || k(e), N = { [i]: "revivable" }, P = (e) => !!e && typeof e == "object" && "__OSRA_BOX__" in e && e.__OSRA_BOX__ === "revivable", me = (e, t) => k(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }, he = (e) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, ge = /* @__PURE__ */ t({
142
- box: () => ye,
143
- isType: () => ve,
144
- revive: () => be,
145
- type: () => _e
146
- }), _e = "arrayBuffer", ve = (e) => e instanceof ArrayBuffer, ye = (e, t) => ({
141
+ }, de = (e) => !ue(e) || !("emit" in e) ? !1 : A(e.emit) || typeof e.emit == "function", fe = (e) => !ue(e) || !("receive" in e) ? !1 : j(e.receive) || typeof e.receive == "function", M = (e) => de(e) || fe(e), pe = (e) => A(e) || j(e) || M(e) || k(e), N = { [i]: "revivable" }, P = (e) => !!e && typeof e == "object" && "__OSRA_BOX__" in e && e.__OSRA_BOX__ === "revivable", me = (e, t) => k(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }, F = (e) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, he = /* @__PURE__ */ t({
142
+ box: () => ve,
143
+ isType: () => _e,
144
+ revive: () => ye,
145
+ type: () => ge
146
+ }), ge = "arrayBuffer", _e = (e) => e instanceof ArrayBuffer, ve = (e, t) => ({
147
147
  ...N,
148
- type: _e,
148
+ type: ge,
149
149
  ...me(e, t)
150
- }), be = (e, t) => he(e), xe = /* @__PURE__ */ t({
151
- box: () => we,
152
- isType: () => Ce,
153
- revive: () => Te,
154
- type: () => Se
155
- }), Se = "date", Ce = (e) => e instanceof Date, we = (e, t) => ({
150
+ }), ye = (e, t) => F(e), be = /* @__PURE__ */ t({
151
+ box: () => Ce,
152
+ isType: () => Se,
153
+ revive: () => we,
154
+ type: () => xe
155
+ }), xe = "date", Se = (e) => e instanceof Date, Ce = (e, t) => ({
156
156
  ...N,
157
- type: Se,
157
+ type: xe,
158
158
  ISOString: e.toISOString()
159
- }), Te = (e, t) => new Date(e.ISOString), Ee = /* @__PURE__ */ t({
160
- box: () => ke,
161
- isType: () => Oe,
162
- revive: () => Ae,
163
- type: () => De
164
- }), De = "headers", Oe = (e) => e instanceof Headers, ke = (e, t) => ({
159
+ }), we = (e, t) => new Date(e.ISOString), Te = /* @__PURE__ */ t({
160
+ box: () => Oe,
161
+ isType: () => De,
162
+ revive: () => ke,
163
+ type: () => Ee
164
+ }), Ee = "headers", De = (e) => e instanceof Headers, Oe = (e, t) => ({
165
165
  ...N,
166
- type: De,
166
+ type: Ee,
167
167
  entries: [...e.entries()]
168
- }), Ae = (e, t) => new Headers(e.entries), je = /* @__PURE__ */ t({
169
- box: () => Fe,
170
- isType: () => Pe,
171
- revive: () => Ie,
172
- type: () => Me
173
- }), Me = "error", Ne = {
168
+ }), ke = (e, t) => new Headers(e.entries), Ae = /* @__PURE__ */ t({
169
+ box: () => Pe,
170
+ isType: () => Ne,
171
+ revive: () => Fe,
172
+ type: () => je
173
+ }), je = "error", Me = {
174
174
  Error,
175
175
  TypeError,
176
176
  RangeError,
@@ -178,11 +178,11 @@ var ue = (e) => {
178
178
  ReferenceError,
179
179
  EvalError,
180
180
  URIError
181
- }, Pe = (e) => e instanceof Error, Fe = (e, t) => {
181
+ }, Ne = (e) => e instanceof Error, Pe = (e, t) => {
182
182
  let n = "cause" in e && e.cause !== void 0, r = typeof AggregateError < "u" && e instanceof AggregateError, i = typeof DOMException < "u" && e instanceof DOMException;
183
183
  return {
184
184
  ...N,
185
- type: Me,
185
+ type: je,
186
186
  name: e.name,
187
187
  message: e.message,
188
188
  stack: e.stack || e.toString(),
@@ -190,7 +190,7 @@ var ue = (e) => {
190
190
  ...r ? { errors: X(e.errors, t) } : {},
191
191
  ...i ? { isDOMException: !0 } : {}
192
192
  };
193
- }, Ie = (e, t) => {
193
+ }, Fe = (e, t) => {
194
194
  let n = e.cause === void 0 ? void 0 : Z(e.cause, t), r = n === void 0 ? void 0 : { cause: n };
195
195
  if (e.isDOMException && typeof DOMException < "u") {
196
196
  let t = new DOMException(e.message, e.name);
@@ -205,44 +205,44 @@ var ue = (e) => {
205
205
  let i;
206
206
  if (e.errors !== void 0 && typeof AggregateError < "u") i = AggregateError(Z(e.errors, t), e.message, r);
207
207
  else {
208
- let t = Ne[e.name] ?? Error;
208
+ let t = Me[e.name] ?? Error;
209
209
  i = r === void 0 ? new t(e.message) : new t(e.message, r);
210
210
  }
211
211
  return e.name && i.name !== e.name && (i.name = e.name), e.stack && (i.stack = e.stack), i;
212
- }, Le = /* @__PURE__ */ t({
213
- box: () => Be,
214
- isType: () => ze,
215
- revive: () => Ve,
216
- type: () => Re
217
- }), Re = "typedArray", ze = g, Be = (e, t) => {
212
+ }, Ie = /* @__PURE__ */ t({
213
+ box: () => ze,
214
+ isType: () => Re,
215
+ revive: () => Be,
216
+ type: () => Le
217
+ }), Le = "typedArray", Re = h, ze = (e, t) => {
218
218
  let n = e.byteOffset === 0 && e.byteLength === e.buffer.byteLength ? e.buffer : e.buffer.slice(e.byteOffset, e.byteOffset + e.byteLength);
219
219
  return {
220
220
  ...N,
221
- type: Re,
221
+ type: Le,
222
222
  typedArrayType: m(e),
223
223
  ...me(n, t)
224
224
  };
225
- }, Ve = (e, t) => new (h(e.typedArrayType))(he(e)), F = /* @__PURE__ */ new WeakMap(), He = /* @__PURE__ */ new WeakSet(), I = (e, t) => {
226
- if (He.has(e)) return t(), () => {};
227
- let n = F.get(e);
228
- return n || F.set(e, n = /* @__PURE__ */ new Set()), n.add(t), () => n.delete(t);
229
- }, Ue = (e) => {
230
- if (He.has(e)) return;
231
- He.add(e);
232
- let t = F.get(e);
225
+ }, Be = (e, t) => new (ee(e.typedArrayType))(F(e)), I = /* @__PURE__ */ new WeakMap(), Ve = /* @__PURE__ */ new WeakSet(), L = (e, t) => {
226
+ if (Ve.has(e)) return t(), () => {};
227
+ let n = I.get(e);
228
+ return n || I.set(e, n = /* @__PURE__ */ new Set()), n.add(t), () => n.delete(t);
229
+ }, He = (e) => {
230
+ if (Ve.has(e)) return;
231
+ Ve.add(e);
232
+ let t = I.get(e);
233
233
  if (t) {
234
- F.delete(e);
234
+ I.delete(e);
235
235
  for (let e of t) try {
236
236
  e();
237
237
  } catch {}
238
238
  }
239
- }, We = /* @__PURE__ */ t({
240
- box: () => Qe,
241
- isType: () => Ze,
242
- revive: () => $e,
243
- transfer: () => Xe,
244
- type: () => Ge
245
- }), Ge = "transfer", Ke = Symbol.for("osra.transfer"), qe = (e) => typeof e == "object" && !!e, Je = (e) => qe(e) && Ke in e && e[Ke] === !0, Ye = (e) => qe(e) ? ArrayBuffer.isView(e) ? !0 : C(e, [
239
+ }, Ue = /* @__PURE__ */ t({
240
+ box: () => Ze,
241
+ isType: () => Xe,
242
+ revive: () => Qe,
243
+ transfer: () => Ye,
244
+ type: () => We
245
+ }), We = "transfer", Ge = Symbol.for("osra.transfer"), Ke = (e) => typeof e == "object" && !!e, qe = (e) => Ke(e) && Ge in e && e[Ge] === !0, Je = (e) => Ke(e) ? ArrayBuffer.isView(e) ? !0 : C(e, [
246
246
  globalThis.ArrayBuffer,
247
247
  globalThis.MessagePort,
248
248
  globalThis.ReadableStream,
@@ -250,15 +250,15 @@ var ue = (e) => {
250
250
  globalThis.TransformStream,
251
251
  globalThis.ImageBitmap,
252
252
  globalThis.OffscreenCanvas
253
- ]) : !1, Xe = (e) => Ye(e) ? {
254
- [Ke]: !0,
253
+ ]) : !1, Ye = (e) => Je(e) ? {
254
+ [Ge]: !0,
255
255
  value: e
256
- } : e, Ze = (e) => Je(e), Qe = (e, t) => ({
256
+ } : e, Xe = (e) => qe(e), Ze = (e, t) => ({
257
257
  ...N,
258
- type: Ge,
258
+ type: We,
259
259
  inner: X(e.value, t),
260
260
  degraded: k(t.transport)
261
- }), $e = (e, t) => Z(e.inner, t), et = (e) => C(e, [
261
+ }), Qe = (e, t) => Z(e.inner, t), $e = (e) => C(e, [
262
262
  globalThis.MessagePort,
263
263
  globalThis.ReadableStream,
264
264
  globalThis.WritableStream,
@@ -270,14 +270,14 @@ var ue = (e) => {
270
270
  globalThis.RTCDataChannel,
271
271
  globalThis.WebTransportReceiveStream,
272
272
  globalThis.WebTransportSendStream
273
- ]), tt = (e) => P(e) && e.type === "transfer", L = (e) => {
273
+ ]), et = (e) => P(e) && e.type === "transfer", R = (e) => {
274
274
  let t = [], n = /* @__PURE__ */ new WeakSet(), r = (e, i) => {
275
275
  if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !ne(e))) {
276
- if (tt(e)) {
276
+ if (et(e)) {
277
277
  r(e.inner, i || !e.degraded);
278
278
  return;
279
279
  }
280
- if (et(e)) {
280
+ if ($e(e)) {
281
281
  t.push(e);
282
282
  return;
283
283
  }
@@ -295,7 +295,7 @@ var ue = (e) => {
295
295
  }
296
296
  };
297
297
  return r(e, !1), t;
298
- }, R = class {
298
+ }, z = class {
299
299
  _listeners = /* @__PURE__ */ new Map();
300
300
  _onceListeners = /* @__PURE__ */ new WeakSet();
301
301
  addEventListener(e, t, n) {
@@ -347,122 +347,142 @@ var ue = (e) => {
347
347
  e._closed || e.dispatchEvent(new Event("close"));
348
348
  });
349
349
  }
350
- }, z = class {
350
+ }, B = class {
351
351
  port1;
352
352
  port2;
353
353
  constructor() {
354
- let e = new R(), t = new R();
354
+ let e = new z(), t = new z();
355
355
  e._peer = t, t._peer = e, this.port1 = e, this.port2 = t;
356
356
  }
357
- }, nt = new FinalizationRegistry((e) => {
357
+ }, tt = new FinalizationRegistry((e) => {
358
358
  try {
359
359
  e();
360
360
  } catch {}
361
- }), B = (e, t) => {
361
+ }), V = (e, t) => {
362
362
  let n = {};
363
- return nt.register(e, t, n), () => nt.unregister(n);
364
- }, rt = /* @__PURE__ */ t({
365
- box: () => H,
366
- createRevivableChannel: () => W,
367
- init: () => st,
368
- isType: () => ct,
369
- revive: () => U,
370
- type: () => it
371
- }), it = "messagePort", at = /* @__PURE__ */ new WeakMap(), ot = (e) => {
363
+ return tt.register(e, t, n), () => tt.unregister(n);
364
+ }, nt = /* @__PURE__ */ t({
365
+ box: () => U,
366
+ createRevivableChannel: () => G,
367
+ init: () => dt,
368
+ isType: () => ft,
369
+ revive: () => W,
370
+ type: () => rt
371
+ }), rt = "messagePort", it = 2048, at = /* @__PURE__ */ new WeakMap(), ot = (e) => {
372
372
  let t = at.get(e);
373
373
  if (!t) throw Error("osra message-port: connection state missing; did init() run?");
374
374
  return t;
375
- }, st = (e) => {
376
- let t = { portHandlers: /* @__PURE__ */ new Map() };
375
+ }, st = (e, t) => {
376
+ let n = e.ports.get(t);
377
+ return n || (n = {
378
+ nextSeq: 0,
379
+ buffer: /* @__PURE__ */ new Map(),
380
+ outSeq: 0
381
+ }, e.ports.set(t, n)), n;
382
+ }, ct = (e) => {
383
+ 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
+ }, lt = (e, t) => st(ot(e), t).outSeq++, ut = (e, t, n) => {
385
+ let r = st(e, t);
386
+ r.handler = n, ct(r);
387
+ }, dt = (e) => {
388
+ let t = { ports: /* @__PURE__ */ new Map() };
377
389
  at.set(e, t), e.eventTarget.addEventListener("message", ({ detail: e }) => {
378
- e.type !== "message" && e.type !== "message-port-close" || t.portHandlers.get(e.portId)?.(e);
379
- }), I(e, () => {
380
- for (let [n, r] of [...t.portHandlers]) r({
390
+ if (e.type !== "message" && e.type !== "message-port-close") return;
391
+ let n = st(t, e.portId);
392
+ if (e.seq === void 0) {
393
+ n.handler?.(e);
394
+ return;
395
+ }
396
+ e.seq < n.nextSeq || n.buffer.size >= it || (n.buffer.set(e.seq, e), ct(n));
397
+ }), L(e, () => {
398
+ for (let [n, r] of [...t.ports]) r.handler?.({
381
399
  type: "message-port-close",
382
400
  remoteUuid: e.remoteUuid,
383
401
  portId: n
384
402
  });
385
- t.portHandlers.clear();
403
+ t.ports.clear();
386
404
  });
387
- }, ct = (e) => e instanceof MessagePort || e instanceof R, V = (e, t) => {
405
+ }, ft = (e) => e instanceof MessagePort || e instanceof z, H = (e, t) => {
388
406
  try {
389
407
  e.sendMessage({
390
408
  type: "message-port-close",
391
409
  remoteUuid: e.remoteUuid,
392
- portId: t
410
+ portId: t,
411
+ seq: lt(e, t)
393
412
  });
394
413
  } catch {}
395
- }, lt = (e, t, n) => {
396
- n ? e.postMessage(t) : e.postMessage(t, L(t));
397
- }, H = (e, t, n) => {
398
- let r = e instanceof R;
414
+ }, pt = (e, t, n) => {
415
+ n ? e.postMessage(t) : e.postMessage(t, R(t));
416
+ }, mt = (e, t, n) => () => {
417
+ let r = e.deref();
418
+ r && H(r, n), t.deref()?.delete(n);
419
+ }, U = (e, t, n) => {
420
+ let r = e instanceof z;
399
421
  if (!r && !k(t.transport)) return {
400
422
  ...N,
401
- type: it,
423
+ type: rt,
402
424
  port: e,
403
425
  ...n?.autoBox ? { autoBox: !0 } : {}
404
426
  };
405
- let { portHandlers: i } = ot(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i), u = !1, d = () => {
427
+ let i = ot(t), a = e, o = globalThis.crypto.randomUUID(), s = new WeakRef(a), c = new WeakRef(t), l = new WeakRef(i.ports), u = !1, d = () => {
406
428
  if (u) return;
407
429
  u = !0, l.deref()?.delete(o), m?.();
408
430
  let e = s.deref();
409
- e?.removeEventListener("message", p), e instanceof R && (e._onClose = void 0);
431
+ e?.removeEventListener("message", p), e instanceof z && (e._onClose = void 0);
410
432
  }, f = (e) => {
411
433
  if (e.type === "message-port-close") {
412
434
  d(), a.dispatchEvent(new Event("close")), a.close();
413
435
  return;
414
436
  }
415
- lt(a, Z(e.data, t), !1);
437
+ pt(a, Z(e.data, t), !1);
416
438
  };
417
439
  function p({ data: e }) {
418
440
  t.sendMessage({
419
441
  type: "message",
420
442
  remoteUuid: t.remoteUuid,
421
443
  data: X(e, t),
422
- portId: o
444
+ portId: o,
445
+ seq: lt(t, o)
423
446
  });
424
447
  }
425
- let m = B(a, () => {
426
- let e = c.deref();
427
- e && V(e, o), d();
428
- });
429
- return a.addEventListener("message", p), a.start(), a instanceof R && (a._onClose = () => {
430
- u || (V(t, o), d());
431
- }), i.set(o, f), {
448
+ let m = V(a, mt(c, l, o));
449
+ return a.addEventListener("message", p), a.start(), a instanceof z && (a._onClose = () => {
450
+ u || (H(t, o), d());
451
+ }), ut(i, o, f), {
432
452
  ...N,
433
- type: it,
453
+ type: rt,
434
454
  portId: o,
435
455
  synthetic: r
436
456
  };
437
- }, U = (e, t) => "port" in e ? e.autoBox ? ut(e.port, t) : e.port : dt(e.portId, t, e.synthetic), ut = (e, t) => {
457
+ }, W = (e, t) => "port" in e ? e.autoBox ? ht(e.port, t) : e.port : gt(e.portId, t, e.synthetic), ht = (e, t) => {
438
458
  let n = new EventTarget(), r = ({ data: e }) => {
439
459
  n.dispatchEvent(new MessageEvent("message", { data: Z(e, t) }));
440
460
  }, i = () => {
441
461
  n.dispatchEvent(new Event("close"));
442
462
  };
443
463
  return e.addEventListener("message", r), e.addEventListener("close", i), n.postMessage = (n, r) => {
444
- let i = X(n, t), a = L(i), o = Array.isArray(r) ? r : [];
464
+ let i = X(n, t), a = R(i), o = Array.isArray(r) ? r : [];
445
465
  e.postMessage(i, o.length ? [...a, ...o] : a);
446
466
  }, n.start = () => e.start(), n.close = () => {
447
467
  e.removeEventListener("message", r), e.removeEventListener("close", i), e.close();
448
468
  }, n;
449
- }, W = (e) => {
469
+ }, G = (e) => {
450
470
  if (k(e.transport)) {
451
- let { port1: t, port2: n } = new z();
471
+ let { port1: t, port2: n } = new B();
452
472
  return {
453
473
  localPort: t,
454
- boxedRemote: H(n, e)
474
+ boxedRemote: U(n, e)
455
475
  };
456
476
  }
457
477
  let { port1: t, port2: n } = new MessageChannel();
458
478
  return {
459
- localPort: ut(t, e),
460
- boxedRemote: H(n, e, { autoBox: !0 })
479
+ localPort: ht(t, e),
480
+ boxedRemote: U(n, e, { autoBox: !0 })
461
481
  };
462
- }, dt = (e, t, n) => {
463
- let { portHandlers: r } = ot(t), { port1: i, port2: a } = n ? new z() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
482
+ }, gt = (e, t, n) => {
483
+ let r = ot(t), { port1: i, port2: a } = n ? new B() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
464
484
  if (c) return;
465
- c = !0, r.delete(e);
485
+ c = !0, r.ports.delete(e);
466
486
  let t = s.deref();
467
487
  t?.removeEventListener("message", d), t?.close(), f?.();
468
488
  }, u = (e) => {
@@ -477,28 +497,29 @@ var ue = (e) => {
477
497
  return;
478
498
  }
479
499
  let r = s.deref();
480
- r && lt(r, Z(e.data, t), n);
500
+ r && pt(r, Z(e.data, t), n);
481
501
  }, d = ({ data: n }) => {
482
502
  t.sendMessage({
483
503
  type: "message",
484
504
  remoteUuid: t.remoteUuid,
485
505
  data: X(n, t),
486
- portId: e
506
+ portId: e,
507
+ seq: lt(t, e)
487
508
  });
488
- }, f = B(i, () => {
489
- V(t, e), l();
509
+ }, f = V(i, () => {
510
+ H(t, e), l();
490
511
  });
491
- return i instanceof R && (i._onClose = () => {
492
- c || (V(t, e), l());
493
- }), a.addEventListener("message", d), a.start(), r.set(e, u), i;
494
- }, ft = /* @__PURE__ */ t({
495
- box: () => _t,
496
- isType: () => gt,
497
- revive: () => vt,
498
- type: () => pt
499
- }), pt = "promise", mt = (e) => e instanceof Promise, ht = /* @__PURE__ */ new Set(), gt = (e) => e instanceof Promise, _t = (e, t) => {
500
- if (!mt(e)) throw TypeError("Expected Promise");
501
- let { localPort: n, boxedRemote: r } = W(t), i = (e) => {
512
+ return i instanceof z && (i._onClose = () => {
513
+ c || (H(t, e), l());
514
+ }), a.addEventListener("message", d), a.start(), ut(r, e, u), i;
515
+ }, _t = /* @__PURE__ */ t({
516
+ box: () => St,
517
+ isType: () => xt,
518
+ revive: () => Ct,
519
+ type: () => vt
520
+ }), vt = "promise", yt = (e) => e instanceof Promise, bt = /* @__PURE__ */ new Set(), xt = (e) => e instanceof Promise, St = (e, t) => {
521
+ if (!yt(e)) throw TypeError("Expected Promise");
522
+ let { localPort: n, boxedRemote: r } = G(t), i = (e) => {
502
523
  n.postMessage(e), n.close();
503
524
  };
504
525
  return e.then((e) => i({
@@ -509,30 +530,30 @@ var ue = (e) => {
509
530
  error: e
510
531
  })), {
511
532
  ...N,
512
- type: pt,
533
+ type: vt,
513
534
  port: r
514
535
  };
515
- }, vt = (e, t) => {
516
- let n = U(e.port, t);
517
- ht.add(n);
536
+ }, Ct = (e, t) => {
537
+ let n = W(e.port, t);
538
+ bt.add(n);
518
539
  let r = "portId" in e.port;
519
540
  return new Promise((e, i) => {
520
541
  let a = () => {
521
- n.close(), ht.delete(n), o();
522
- }, o = r ? I(t, () => {
542
+ n.close(), bt.delete(n), o();
543
+ }, o = r ? L(t, () => {
523
544
  i(/* @__PURE__ */ Error("osra: connection closed")), a();
524
545
  }) : () => {};
525
546
  n.addEventListener("message", ({ data: t }) => {
526
547
  t.type === "resolve" ? e(t.data) : i(t.error), a();
527
548
  }, { once: !0 }), n.start();
528
549
  });
529
- }, yt = /* @__PURE__ */ t({
530
- box: () => G,
531
- isType: () => St,
532
- revive: () => K,
533
- type: () => bt
534
- }), bt = "function", xt = /* @__PURE__ */ new Set(), St = (e) => typeof e == "function", G = (e, t) => {
535
- let { port1: n, port2: r } = new z();
550
+ }, wt = /* @__PURE__ */ t({
551
+ box: () => K,
552
+ isType: () => Dt,
553
+ revive: () => q,
554
+ type: () => Tt
555
+ }), Tt = "function", Et = /* @__PURE__ */ new Set(), Dt = (e) => typeof e == "function", K = (e, t) => {
556
+ let { port1: n, port2: r } = new B();
536
557
  return n.addEventListener("message", ({ data: n }) => {
537
558
  let [r, i] = n;
538
559
  (async () => {
@@ -549,7 +570,7 @@ var ue = (e) => {
549
570
  };
550
571
  }
551
572
  let a = X(n, t);
552
- r.postMessage(a, L(a)), queueMicrotask(() => {
573
+ r.postMessage(a, R(a)), queueMicrotask(() => {
553
574
  try {
554
575
  r.close();
555
576
  } catch {}
@@ -557,17 +578,17 @@ var ue = (e) => {
557
578
  })();
558
579
  }), n.start(), {
559
580
  ...N,
560
- type: bt,
561
- port: H(r, t)
581
+ type: Tt,
582
+ port: U(r, t)
562
583
  };
563
- }, K = (e, t) => {
564
- let n = U(e.port, t);
584
+ }, q = (e, t) => {
585
+ let n = W(e.port, t);
565
586
  return ((...e) => new Promise((r, i) => {
566
- let { port1: a, port2: o } = new z();
567
- xt.add(a);
587
+ let { port1: a, port2: o } = new B();
588
+ Et.add(a);
568
589
  let s = () => {
569
- a.close(), xt.delete(a), c();
570
- }, c = I(t, () => {
590
+ a.close(), Et.delete(a), c();
591
+ }, c = L(t, () => {
571
592
  i(/* @__PURE__ */ Error("osra: connection closed")), s();
572
593
  });
573
594
  a.addEventListener("message", ({ data: e }) => {
@@ -575,62 +596,178 @@ var ue = (e) => {
575
596
  t.type === "return" ? r(t.value) : i(t.error), s();
576
597
  }, { once: !0 }), a.start();
577
598
  let l = X([o, e], t);
578
- n.postMessage(l, L(l));
599
+ n.postMessage(l, R(l));
579
600
  }));
580
- }, Ct = /* @__PURE__ */ t({
581
- box: () => Et,
582
- isType: () => Tt,
583
- revive: () => Dt,
584
- type: () => wt
585
- }), wt = "readableStream", Tt = (e) => e instanceof ReadableStream, Et = (e, t) => {
586
- let { localPort: n, boxedRemote: r } = W(t), i = e.getReader();
601
+ }, Ot = /* @__PURE__ */ t({
602
+ MAX_CREDIT_WINDOW: () => 64,
603
+ box: () => Pt,
604
+ isType: () => At,
605
+ revive: () => Rt,
606
+ type: () => kt
607
+ }), kt = "readableStream", At = (e) => e instanceof ReadableStream, jt = 2, Mt = 8, Nt = 4 * 1024 * 1024, Pt = (e, t) => {
608
+ let { localPort: n, boxedRemote: r } = G(t), i = e.getReader(), a = 0, o = !1, s = !1, c = (e) => {
609
+ s = !0;
610
+ try {
611
+ n.postMessage(e);
612
+ } catch {}
613
+ n.close();
614
+ }, l = async () => {
615
+ if (!(o || s)) {
616
+ for (o = !0; a > 0;) {
617
+ let e;
618
+ try {
619
+ e = await i.read();
620
+ } catch (e) {
621
+ s || c({
622
+ type: "error",
623
+ error: e
624
+ });
625
+ return;
626
+ }
627
+ if (s) return;
628
+ if (e.done) {
629
+ c({ type: "end" });
630
+ return;
631
+ }
632
+ a--;
633
+ try {
634
+ n.postMessage({
635
+ type: "chunk",
636
+ value: e.value
637
+ });
638
+ } catch (e) {
639
+ c({
640
+ type: "error",
641
+ error: e
642
+ }), i.cancel(e).catch(() => {});
643
+ return;
644
+ }
645
+ }
646
+ o = !1;
647
+ }
648
+ };
587
649
  return n.addEventListener("message", ({ data: e }) => {
588
- "type" in e && e.type === "pull" ? n.postMessage(i.read()) : (i.cancel("type" in e ? e.reason : void 0).catch(() => {}), n.close());
650
+ e instanceof Promise || !("type" in e) || (e.type === "pull" ? n.postMessage(i.read()) : e.type === "credit" ? (a += e.n, l()) : e.type === "cancel" && (s = !0, i.cancel(e.reason).catch(() => {}), n.close()));
589
651
  }), n.addEventListener("close", () => {
590
- i.cancel(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {});
652
+ s || (s = !0, i.cancel(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
591
653
  }, { once: !0 }), n.start(), {
592
654
  ...N,
593
- type: wt,
655
+ type: kt,
656
+ credit: !0,
594
657
  port: r
595
658
  };
596
- }, Dt = (e, t) => {
597
- let n = U(e.port, t);
598
- n.start();
599
- let r = !1;
659
+ }, Ft = (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, It = (e) => {
660
+ let t = !1, n = 0, r, i = [], a = !1, o = !1, s, c, l = () => r === void 0 ? Mt : Math.max(jt, Math.min(64, Math.floor(Nt / r))), u = () => {
661
+ let t = l(), r = n + i.length;
662
+ if (r > t / 2) return;
663
+ let a = t - r;
664
+ n += a, e.postMessage({
665
+ type: "credit",
666
+ n: a
667
+ });
668
+ }, d = () => {
669
+ t = !0, queueMicrotask(() => e.close());
670
+ }, f = (e) => {
671
+ if (o = !0, s = e, !c || i.length) return;
672
+ let t = c;
673
+ c = void 0, d(), t.reject(e);
674
+ };
675
+ return new ReadableStream({
676
+ start: () => {
677
+ e.addEventListener("message", ({ data: o }) => {
678
+ if (!(o instanceof Promise || !("type" in o))) {
679
+ if (o.type === "chunk") {
680
+ if (t) return;
681
+ if (n <= 0) {
682
+ i.length = 0, f(/* @__PURE__ */ Error("osra: stream exceeded its credit window")), queueMicrotask(() => e.close());
683
+ return;
684
+ }
685
+ n--;
686
+ let a = Ft(o.value);
687
+ if (a !== void 0 && (r = r === void 0 ? a : r * .875 + a * .125), c) {
688
+ let e = c;
689
+ c = void 0, e.controller.enqueue(o.value), e.resolve();
690
+ } else i.push(o.value);
691
+ } else if (o.type === "end") {
692
+ if (t || (a = !0, !c || i.length)) return;
693
+ let e = c;
694
+ c = void 0, d(), e.controller.close(), e.resolve();
695
+ } else if (o.type === "error") {
696
+ if (t) return;
697
+ f(o.error);
698
+ }
699
+ }
700
+ }), e.addEventListener("close", () => {
701
+ t || a || o || f(/* @__PURE__ */ Error("osra: connection closed"));
702
+ }, { once: !0 });
703
+ },
704
+ pull: (e) => {
705
+ if (!t) {
706
+ if (i.length) {
707
+ e.enqueue(i.shift()), !a && !o && u();
708
+ return;
709
+ }
710
+ if (a) {
711
+ d(), e.close();
712
+ return;
713
+ }
714
+ return o ? (d(), Promise.reject(s)) : (u(), new Promise((t, n) => {
715
+ c = {
716
+ controller: e,
717
+ resolve: t,
718
+ reject: n
719
+ };
720
+ }));
721
+ }
722
+ },
723
+ cancel: (n) => {
724
+ t = !0, i.length = 0;
725
+ let r = c;
726
+ c = void 0, r?.resolve(), e.postMessage({
727
+ type: "cancel",
728
+ reason: n
729
+ }), queueMicrotask(() => e.close());
730
+ }
731
+ });
732
+ }, Lt = (e) => {
733
+ let t = !1;
600
734
  return new ReadableStream({
601
- start: (e) => {
602
- n.addEventListener("close", () => {
603
- if (!r) {
604
- r = !0;
735
+ start: (n) => {
736
+ e.addEventListener("close", () => {
737
+ if (!t) {
738
+ t = !0;
605
739
  try {
606
- e.error(/* @__PURE__ */ Error("osra: connection closed"));
740
+ n.error(/* @__PURE__ */ Error("osra: connection closed"));
607
741
  } catch {}
608
742
  }
609
743
  }, { once: !0 });
610
744
  },
611
- pull: (e) => new Promise((t, i) => {
612
- n.addEventListener("message", ({ data: a }) => {
745
+ pull: (n) => new Promise((r, i) => {
746
+ e.addEventListener("message", ({ data: a }) => {
613
747
  a instanceof Promise && a.then((i) => {
614
- i.done ? (r = !0, e.close(), n.postMessage({ type: "cancel" }), queueMicrotask(() => n.close())) : e.enqueue(i.value), t();
748
+ i.done ? (t = !0, n.close(), e.postMessage({ type: "cancel" }), queueMicrotask(() => e.close())) : n.enqueue(i.value), r();
615
749
  }).catch((e) => {
616
- r = !0, i(e);
750
+ t = !0, i(e);
617
751
  });
618
- }, { once: !0 }), n.postMessage({ type: "pull" });
752
+ }, { once: !0 }), e.postMessage({ type: "pull" });
619
753
  }),
620
- cancel: (e) => {
621
- r = !0, n.postMessage({
754
+ cancel: (n) => {
755
+ t = !0, e.postMessage({
622
756
  type: "cancel",
623
- reason: e
624
- }), queueMicrotask(() => n.close());
757
+ reason: n
758
+ }), queueMicrotask(() => e.close());
625
759
  }
626
760
  });
627
- }, Ot = /* @__PURE__ */ t({
628
- box: () => jt,
629
- isType: () => At,
630
- revive: () => Mt,
631
- type: () => kt
632
- }), kt = "writableStream", At = (e) => e instanceof WritableStream, jt = (e, t) => {
633
- let { localPort: n, boxedRemote: r } = W(t), i = e.getWriter(), a = !1, o = (e, t) => e.then(() => n.postMessage({ type: "ack" })).catch((e) => n.postMessage({
761
+ }, Rt = (e, t) => {
762
+ let n = W(e.port, t);
763
+ return n.start(), e.credit ? It(n) : Lt(n);
764
+ }, zt = /* @__PURE__ */ t({
765
+ box: () => Ht,
766
+ isType: () => Vt,
767
+ revive: () => Ut,
768
+ type: () => Bt
769
+ }), Bt = "writableStream", Vt = (e) => e instanceof WritableStream, Ht = (e, t) => {
770
+ 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({
634
771
  type: "err",
635
772
  error: e?.message ?? String(e)
636
773
  })).then(() => {
@@ -642,11 +779,11 @@ var ue = (e) => {
642
779
  a || (a = !0, i.abort(/* @__PURE__ */ Error("osra: connection closed")).catch(() => {}));
643
780
  }, { once: !0 }), n.start(), {
644
781
  ...N,
645
- type: kt,
782
+ type: Bt,
646
783
  port: r
647
784
  };
648
- }, Mt = (e, t) => {
649
- let n = U(e.port, t);
785
+ }, Ut = (e, t) => {
786
+ let n = W(e.port, t);
650
787
  n.start();
651
788
  let r = /* @__PURE__ */ new Set(), i = !1;
652
789
  n.addEventListener("close", () => {
@@ -681,57 +818,57 @@ var ue = (e) => {
681
818
  reason: e
682
819
  })
683
820
  });
684
- }, Nt = /* @__PURE__ */ t({
685
- box: () => Lt,
686
- isType: () => Ft,
687
- revive: () => Rt,
688
- type: () => Pt
689
- }), Pt = "abortSignal", Ft = (e) => e instanceof AbortSignal, It = /* @__PURE__ */ new WeakMap(), Lt = (e, t) => {
821
+ }, Wt = /* @__PURE__ */ t({
822
+ box: () => Jt,
823
+ isType: () => Kt,
824
+ revive: () => Yt,
825
+ type: () => Gt
826
+ }), Gt = "abortSignal", Kt = (e) => e instanceof AbortSignal, qt = /* @__PURE__ */ new WeakMap(), Jt = (e, t) => {
690
827
  if (e.aborted) return {
691
828
  ...N,
692
- type: Pt,
829
+ type: Gt,
693
830
  aborted: !0,
694
831
  reason: X(e.reason, t)
695
832
  };
696
- let { localPort: n, boxedRemote: r } = W(t), i = () => {
833
+ let { localPort: n, boxedRemote: r } = G(t), i = () => {
697
834
  n.postMessage({
698
835
  type: "abort",
699
836
  reason: e.reason
700
837
  }), n.close(), a();
701
- }, a = I(t, () => {
838
+ }, a = L(t, () => {
702
839
  e.removeEventListener("abort", i), n.close();
703
840
  });
704
841
  return e.addEventListener("abort", i, { once: !0 }), {
705
842
  ...N,
706
- type: Pt,
843
+ type: Gt,
707
844
  aborted: !1,
708
845
  reason: void 0,
709
846
  port: r
710
847
  };
711
- }, Rt = (e, t) => {
848
+ }, Yt = (e, t) => {
712
849
  let n = new AbortController();
713
850
  if (e.aborted || e.port === void 0) return n.abort(Z(e.reason, t)), n.signal;
714
- let r = U(e.port, t);
715
- return It.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
716
- e.type === "abort" && (n.abort(Z(e.reason, t)), It.delete(n.signal), r.close());
851
+ let r = W(e.port, t);
852
+ return qt.set(n.signal, r), r.start(), r.addEventListener("message", ({ data: e }) => {
853
+ e.type === "abort" && (n.abort(Z(e.reason, t)), qt.delete(n.signal), r.close());
717
854
  }), n.signal;
718
- }, zt = /* @__PURE__ */ t({
719
- box: () => Ht,
720
- isType: () => Vt,
721
- revive: () => Ut,
722
- type: () => Bt
723
- }), Bt = "response", Vt = (e) => e instanceof Response, Ht = (e, t) => ({
855
+ }, Xt = /* @__PURE__ */ t({
856
+ box: () => $t,
857
+ isType: () => Qt,
858
+ revive: () => en,
859
+ type: () => Zt
860
+ }), Zt = "response", Qt = (e) => e instanceof Response, $t = (e, t) => ({
724
861
  ...N,
725
- type: Bt,
862
+ type: Zt,
726
863
  status: e.status,
727
864
  statusText: e.statusText,
728
- headers: ke(e.headers, t),
729
- body: e.body ? Et(e.body, t) : null,
865
+ headers: Oe(e.headers, t),
866
+ body: e.body ? Pt(e.body, t) : null,
730
867
  url: e.url,
731
868
  redirected: e.redirected
732
- }), Ut = (e, t) => {
869
+ }), en = (e, t) => {
733
870
  if (e.status === 0) return Response.error();
734
- let n = Ae(e.headers, t), r = e.body ? Dt(e.body, t) : null, i = new Response(r, {
871
+ let n = ke(e.headers, t), r = e.body ? Rt(e.body, t) : null, i = new Response(r, {
735
872
  status: e.status,
736
873
  statusText: e.statusText,
737
874
  headers: n
@@ -743,18 +880,18 @@ var ue = (e) => {
743
880
  value: !0,
744
881
  configurable: !0
745
882
  }), i;
746
- }, Wt = /* @__PURE__ */ t({
747
- box: () => qt,
748
- isType: () => Kt,
749
- revive: () => Jt,
750
- type: () => Gt
751
- }), Gt = "request", Kt = (e) => e instanceof Request, qt = (e, t) => ({
883
+ }, tn = /* @__PURE__ */ t({
884
+ box: () => an,
885
+ isType: () => rn,
886
+ revive: () => on,
887
+ type: () => nn
888
+ }), nn = "request", rn = (e) => e instanceof Request, an = (e, t) => ({
752
889
  ...N,
753
- type: Gt,
890
+ type: nn,
754
891
  method: e.method,
755
892
  url: e.url,
756
- headers: ke(e.headers, t),
757
- body: e.body ? Et(e.body, t) : null,
893
+ headers: Oe(e.headers, t),
894
+ body: e.body ? Pt(e.body, t) : null,
758
895
  credentials: e.credentials,
759
896
  cache: e.cache,
760
897
  mode: e.mode,
@@ -763,9 +900,9 @@ var ue = (e) => {
763
900
  referrerPolicy: e.referrerPolicy,
764
901
  integrity: e.integrity,
765
902
  keepalive: e.keepalive,
766
- signal: Lt(e.signal, t)
767
- }), Jt = (e, t) => {
768
- let n = Ae(e.headers, t), r = {
903
+ signal: Jt(e.signal, t)
904
+ }), on = (e, t) => {
905
+ let n = ke(e.headers, t), r = {
769
906
  method: e.method,
770
907
  headers: n,
771
908
  credentials: e.credentials,
@@ -775,31 +912,31 @@ var ue = (e) => {
775
912
  referrerPolicy: e.referrerPolicy,
776
913
  integrity: e.integrity,
777
914
  keepalive: e.keepalive,
778
- signal: Rt(e.signal, t)
915
+ signal: Yt(e.signal, t)
779
916
  };
780
- return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = Dt(e.body, t), r.duplex = "half"), new Request(e.url, r);
781
- }, Yt = /* @__PURE__ */ t({
782
- box: () => sn,
783
- boxByReference: () => cn,
917
+ return e.mode !== "navigate" && (r.mode = e.mode), e.body && (r.body = Rt(e.body, t), r.duplex = "half"), new Request(e.url, r);
918
+ }, sn = /* @__PURE__ */ t({
919
+ box: () => yn,
920
+ boxByReference: () => bn,
784
921
  identity: () => Y,
785
- isType: () => an,
786
- revive: () => ln,
787
- type: () => q
788
- }), q = "identity", Xt = Symbol.for("osra.identity"), Zt = (e) => e !== null && (typeof e == "object" || typeof e == "function"), J = (e) => {
922
+ isType: () => _n,
923
+ revive: () => xn,
924
+ type: () => J
925
+ }), J = "identity", cn = Symbol.for("osra.identity"), ln = (e) => e !== null && (typeof e == "object" || typeof e == "function"), un = (e) => {
789
926
  if (e === null) return !1;
790
927
  let t = typeof e;
791
928
  return t === "object" || t === "function" ? !0 : t === "symbol" ? Symbol.keyFor(e) === void 0 : !1;
792
- }, Qt = (e) => Zt(e) && Xt in e && e[Xt] === !0, $t = /* @__PURE__ */ new WeakMap(), en = (e) => {
793
- if (Qt(e)) return e;
794
- let t = $t.get(e);
929
+ }, dn = (e) => ln(e) && cn in e && e[cn] === !0, fn = /* @__PURE__ */ new WeakMap(), pn = (e) => {
930
+ if (dn(e)) return e;
931
+ let t = fn.get(e);
795
932
  if (t) return t;
796
933
  let n = {
797
- [Xt]: !0,
934
+ [cn]: !0,
798
935
  value: e
799
936
  };
800
- return $t.set(e, n), n;
801
- }, Y = (e) => Zt(e) ? en(e) : e, tn = /* @__PURE__ */ new WeakMap(), nn = (e) => {
802
- let t = tn.get(e);
937
+ return fn.set(e, n), n;
938
+ }, Y = (e) => ln(e) ? pn(e) : e, mn = /* @__PURE__ */ new WeakMap(), hn = (e) => {
939
+ let t = mn.get(e);
803
940
  if (t) return t;
804
941
  let n = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new WeakMap(), o = {
805
942
  sendIds: n,
@@ -818,16 +955,16 @@ var ue = (e) => {
818
955
  revivedToId: a,
819
956
  listenerInstalled: !1
820
957
  };
821
- return tn.set(e, o), rn(e, o), I(e, () => {
958
+ return mn.set(e, o), gn(e, o), L(e, () => {
822
959
  o.receiveCache.clear(), o.idToSent.clear();
823
960
  }), o;
824
- }, rn = (e, t) => {
961
+ }, gn = (e, t) => {
825
962
  t.listenerInstalled || (t.listenerInstalled = !0, e.eventTarget.addEventListener("message", ({ detail: e }) => {
826
963
  if (e?.type !== "identity-dispose") return;
827
964
  let n = t.receiveCache.get(e.id);
828
- t.receiveCache.delete(e.id), n !== void 0 && J(n) && t.revivedToId.delete(n);
965
+ t.receiveCache.delete(e.id), n !== void 0 && un(n) && t.revivedToId.delete(n);
829
966
  }));
830
- }, an = (e) => Qt(e), on = (e, t) => {
967
+ }, _n = (e) => dn(e), vn = (e, t) => {
831
968
  let n = t.sendIds.get(e);
832
969
  if (n !== void 0) return {
833
970
  id: n,
@@ -843,86 +980,86 @@ var ue = (e) => {
843
980
  id: i,
844
981
  isExisting: !1
845
982
  };
846
- }, sn = (e, t) => {
847
- let n = nn(t), r = e.value, i = X(r, t);
848
- if (!J(r)) return {
983
+ }, yn = (e, t) => {
984
+ let n = hn(t), r = e.value, i = X(r, t);
985
+ if (!un(r)) return {
849
986
  ...N,
850
- type: q,
987
+ type: J,
851
988
  id: globalThis.crypto.randomUUID(),
852
989
  inner: i
853
990
  };
854
- let { id: a, isExisting: o } = on(r, n);
991
+ let { id: a, isExisting: o } = vn(r, n);
855
992
  return o ? {
856
993
  ...N,
857
- type: q,
994
+ type: J,
858
995
  id: a
859
996
  } : {
860
997
  ...N,
861
- type: q,
998
+ type: J,
862
999
  id: a,
863
1000
  inner: i
864
1001
  };
865
- }, cn = (e, t, n) => {
866
- let { id: r, isExisting: i } = on(e, nn(n));
1002
+ }, bn = (e, t, n) => {
1003
+ let { id: r, isExisting: i } = vn(e, hn(n));
867
1004
  return i ? {
868
1005
  ...N,
869
- type: q,
1006
+ type: J,
870
1007
  id: r
871
1008
  } : {
872
1009
  ...N,
873
- type: q,
1010
+ type: J,
874
1011
  id: r,
875
1012
  inner: t
876
1013
  };
877
- }, ln = (e, t) => {
878
- let n = nn(t), r = n.receiveCache.get(e.id);
1014
+ }, xn = (e, t) => {
1015
+ let n = hn(t), r = n.receiveCache.get(e.id);
879
1016
  if (r !== void 0) return r;
880
1017
  let i = n.idToSent.get(e.id)?.deref();
881
1018
  if (i !== void 0) return i;
882
1019
  if (!("inner" in e) || e.inner === void 0) throw Error(`osra identity: received id=${e.id} with no inner payload and no cached value`);
883
1020
  let a = Z(e.inner, t);
884
- return n.receiveCache.set(e.id, a), J(a) && n.revivedToId.set(a, e.id), a;
885
- }, un = /* @__PURE__ */ t({
886
- box: () => fn,
887
- isType: () => dn,
888
- revive: () => pn,
1021
+ return n.receiveCache.set(e.id, a), un(a) && n.revivedToId.set(a, e.id), a;
1022
+ }, Sn = /* @__PURE__ */ t({
1023
+ box: () => wn,
1024
+ isType: () => Cn,
1025
+ revive: () => Tn,
889
1026
  type: () => "map"
890
- }), dn = (e) => e instanceof Map, fn = (e, t) => ({
1027
+ }), Cn = (e) => e instanceof Map, wn = (e, t) => ({
891
1028
  ...N,
892
1029
  type: "map",
893
1030
  entries: Array.from(e, ([e, n]) => [X(e, t), X(n, t)])
894
- }), pn = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), mn = /* @__PURE__ */ t({
895
- box: () => gn,
896
- isType: () => hn,
897
- revive: () => _n,
1031
+ }), Tn = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), En = /* @__PURE__ */ t({
1032
+ box: () => On,
1033
+ isType: () => Dn,
1034
+ revive: () => kn,
898
1035
  type: () => "set"
899
- }), hn = (e) => e instanceof Set, gn = (e, t) => ({
1036
+ }), Dn = (e) => e instanceof Set, On = (e, t) => ({
900
1037
  ...N,
901
1038
  type: "set",
902
1039
  values: Array.from(e, (e) => X(e, t))
903
- }), _n = (e, t) => new Set(e.values.map((e) => Z(e, t))), vn = /* @__PURE__ */ t({
904
- box: () => xn,
905
- isType: () => bn,
906
- revive: () => Sn,
907
- type: () => yn
908
- }), yn = "bigint", bn = (e) => typeof e == "bigint", xn = (e, t) => ({
1040
+ }), kn = (e, t) => new Set(e.values.map((e) => Z(e, t))), An = /* @__PURE__ */ t({
1041
+ box: () => Nn,
1042
+ isType: () => Mn,
1043
+ revive: () => Pn,
1044
+ type: () => jn
1045
+ }), jn = "bigint", Mn = (e) => typeof e == "bigint", Nn = (e, t) => ({
909
1046
  ...N,
910
- type: yn,
1047
+ type: jn,
911
1048
  value: e.toString()
912
- }), Sn = (e, t) => BigInt(e.value), Cn = /* @__PURE__ */ t({
913
- box: () => En,
914
- isType: () => Tn,
915
- revive: () => Dn,
916
- type: () => wn
917
- }), wn = "event", Tn = (e) => e instanceof Event, En = (e, t) => ({
1049
+ }), Pn = (e, t) => BigInt(e.value), Fn = /* @__PURE__ */ t({
1050
+ box: () => Rn,
1051
+ isType: () => Ln,
1052
+ revive: () => zn,
1053
+ type: () => In
1054
+ }), In = "event", Ln = (e) => e instanceof Event, Rn = (e, t) => ({
918
1055
  ...N,
919
- type: wn,
1056
+ type: In,
920
1057
  eventType: e.type,
921
1058
  bubbles: e.bubbles,
922
1059
  cancelable: e.cancelable,
923
1060
  composed: e.composed,
924
1061
  ...e instanceof CustomEvent ? { detail: X(e.detail, t) } : {}
925
- }), Dn = (e, t) => {
1062
+ }), zn = (e, t) => {
926
1063
  let n = {
927
1064
  bubbles: e.bubbles,
928
1065
  cancelable: e.cancelable,
@@ -932,44 +1069,44 @@ var ue = (e) => {
932
1069
  ...n,
933
1070
  detail: Z(e.detail, t)
934
1071
  }) : new Event(e.eventType, n);
935
- }, On = /* @__PURE__ */ t({
936
- box: () => jn,
937
- isType: () => An,
938
- revive: () => Fn,
939
- type: () => kn
940
- }), kn = "eventTarget", An = (e) => e instanceof EventTarget, jn = (e, t) => {
1072
+ }, Bn = /* @__PURE__ */ t({
1073
+ box: () => Un,
1074
+ isType: () => Hn,
1075
+ revive: () => qn,
1076
+ type: () => Vn
1077
+ }), Vn = "eventTarget", Hn = (e) => e instanceof EventTarget, Un = (e, t) => {
941
1078
  let n = [], r = (e) => typeof e == "boolean" ? e : !!e?.capture;
942
1079
  return {
943
1080
  ...N,
944
- type: kn,
945
- addListener: G((t, i, a) => {
1081
+ type: Vn,
1082
+ addListener: K((t, i, a) => {
946
1083
  n.push({
947
1084
  eventType: t,
948
1085
  listener: i,
949
1086
  capture: r(a)
950
1087
  }), e.addEventListener(t, i, a);
951
1088
  }, t),
952
- removeListener: G((t, i, a) => {
1089
+ removeListener: K((t, i, a) => {
953
1090
  let o = r(a), s = n.findIndex((e) => e.eventType === t && e.listener === i && e.capture === o);
954
1091
  s !== -1 && n.splice(s, 1), e.removeEventListener(t, i, a);
955
1092
  }, t),
956
- removeAllListeners: G(() => {
1093
+ removeAllListeners: K(() => {
957
1094
  for (let { eventType: t, listener: r, capture: i } of n.splice(0)) e.removeEventListener(t, r, { capture: i });
958
1095
  }, t)
959
1096
  };
960
- }, Mn = /* @__PURE__ */ new WeakMap(), Nn = (e) => {
1097
+ }, Wn = /* @__PURE__ */ new WeakMap(), Gn = (e) => {
961
1098
  if (typeof e == "function") return e;
962
- let t = Mn.get(e);
963
- return t || Mn.set(e, t = (t) => e.handleEvent(t)), t;
964
- }, Pn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), Fn = (e, t) => {
965
- let n = K(e.addListener, t), r = K(e.removeListener, t), i = K(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
1099
+ let t = Wn.get(e);
1100
+ return t || Wn.set(e, t = (t) => e.handleEvent(t)), t;
1101
+ }, Kn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), qn = (e, t) => {
1102
+ let n = q(e.addListener, t), r = q(e.removeListener, t), i = q(e.removeAllListeners, t), a = new EventTarget(), o = [], s = (e) => {
966
1103
  let t = o.indexOf(e);
967
1104
  t !== -1 && o.splice(t, 1);
968
1105
  };
969
1106
  return Object.defineProperty(a, "addEventListener", { value: (e, t, r) => {
970
1107
  if (t === null) return;
971
- let i = Nn(t), a = typeof r == "boolean" ? r : !!r?.capture;
972
- if (Pn(o, e, i, a)) return;
1108
+ let i = Gn(t), a = typeof r == "boolean" ? r : !!r?.capture;
1109
+ if (Kn(o, e, i, a)) return;
973
1110
  let c = typeof r == "object" && r?.once ? (e) => (s(l), i(e)) : i, l = {
974
1111
  eventType: e,
975
1112
  listener: i,
@@ -979,70 +1116,70 @@ var ue = (e) => {
979
1116
  o.push(l), (typeof r == "object" ? r?.signal : void 0)?.addEventListener("abort", () => s(l), { once: !0 }), n(e, Y(c), r).catch(() => {});
980
1117
  } }), Object.defineProperty(a, "removeEventListener", { value: (e, t, n) => {
981
1118
  if (t === null) return;
982
- let i = Nn(t), a = typeof n == "boolean" ? n : !!n?.capture, c = Pn(o, e, i, a);
1119
+ let i = Gn(t), a = typeof n == "boolean" ? n : !!n?.capture, c = Kn(o, e, i, a);
983
1120
  c && (s(c), r(e, Y(c.wire), { capture: a }).catch(() => {}));
984
- } }), B(a, () => {
1121
+ } }), V(a, () => {
985
1122
  i().catch(() => {});
986
1123
  }), a;
987
- }, In = /* @__PURE__ */ t({
988
- box: () => Bn,
989
- isType: () => Rn,
990
- revive: () => Vn,
991
- type: () => Ln
992
- }), Ln = "blob", Rn = (e) => e instanceof Blob, zn = (e) => typeof File < "u" && e instanceof File, Bn = (e, t) => ({
1124
+ }, Jn = /* @__PURE__ */ t({
1125
+ box: () => Qn,
1126
+ isType: () => Xn,
1127
+ revive: () => $n,
1128
+ type: () => Yn
1129
+ }), Yn = "blob", Xn = (e) => e instanceof Blob, Zn = (e) => typeof File < "u" && e instanceof File, Qn = (e, t) => ({
993
1130
  ...N,
994
- type: Ln,
1131
+ type: Yn,
995
1132
  mimeType: e.type,
996
- buffer: _t(e.arrayBuffer(), t),
997
- ...zn(e) ? {
1133
+ buffer: St(e.arrayBuffer(), t),
1134
+ ...Zn(e) ? {
998
1135
  fileName: e.name,
999
1136
  lastModified: e.lastModified
1000
1137
  } : {}
1001
- }), Vn = (e, t) => vt(e.buffer, t).then((t) => e.fileName !== void 0 && typeof File < "u" ? new File([t], e.fileName, {
1138
+ }), $n = (e, t) => Ct(e.buffer, t).then((t) => e.fileName !== void 0 && typeof File < "u" ? new File([t], e.fileName, {
1002
1139
  type: e.mimeType,
1003
1140
  lastModified: e.lastModified
1004
- }) : new Blob([t], { type: e.mimeType })), Hn = /* @__PURE__ */ t({
1005
- box: () => Gn,
1006
- isType: () => Wn,
1007
- revive: () => Kn,
1008
- type: () => Un
1009
- }), Un = "symbol", Wn = (e) => typeof e == "symbol", Gn = (e, t) => {
1141
+ }) : new Blob([t], { type: e.mimeType })), er = /* @__PURE__ */ t({
1142
+ box: () => rr,
1143
+ isType: () => nr,
1144
+ revive: () => ir,
1145
+ type: () => tr
1146
+ }), tr = "symbol", nr = (e) => typeof e == "symbol", rr = (e, t) => {
1010
1147
  let n = Symbol.keyFor(e);
1011
- return n === void 0 ? cn(e, {
1148
+ return n === void 0 ? bn(e, {
1012
1149
  ...N,
1013
- type: Un,
1150
+ type: tr,
1014
1151
  description: e.description
1015
1152
  }, t) : {
1016
1153
  ...N,
1017
- type: Un,
1154
+ type: tr,
1018
1155
  registryKey: n
1019
1156
  };
1020
- }, Kn = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), qn = /* @__PURE__ */ t({
1021
- box: () => Xn,
1022
- isType: () => Yn,
1023
- revive: () => Zn,
1024
- type: () => Jn
1025
- }), Jn = "asyncIterator", Yn = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", Xn = (e, t) => {
1157
+ }, ir = (e, t) => "registryKey" in e ? Symbol.for(e.registryKey) : Symbol(e.description), ar = /* @__PURE__ */ t({
1158
+ box: () => cr,
1159
+ isType: () => sr,
1160
+ revive: () => lr,
1161
+ type: () => or
1162
+ }), or = "asyncIterator", sr = (e) => !e || typeof e != "object" || typeof ReadableStream < "u" && e instanceof ReadableStream ? !1 : typeof e[Symbol.asyncIterator] == "function", cr = (e, t) => {
1026
1163
  let n = e[Symbol.asyncIterator]();
1027
1164
  return {
1028
1165
  ...N,
1029
- type: Jn,
1030
- next: G(((e) => n.next(e)), t),
1031
- return: G(((e) => n.return?.(e) ?? Promise.resolve({
1166
+ type: or,
1167
+ next: K(((e) => n.next(e)), t),
1168
+ return: K(((e) => n.return?.(e) ?? Promise.resolve({
1032
1169
  done: !0,
1033
1170
  value: e
1034
1171
  })), t),
1035
- throw: G(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1172
+ throw: K(((e) => n.throw?.(e) ?? Promise.reject(e)), t)
1036
1173
  };
1037
- }, Zn = (e, t) => {
1038
- let n = K(e.next, t), r = K(e.return, t), i = K(e.throw, t), a = {
1174
+ }, lr = (e, t) => {
1175
+ let n = q(e.next, t), r = q(e.return, t), i = q(e.throw, t), a = {
1039
1176
  next: (...e) => n(...e),
1040
1177
  return: (e) => r(e),
1041
1178
  throw: (e) => i(e),
1042
1179
  [Symbol.asyncIterator]: () => a
1043
1180
  };
1044
1181
  return a;
1045
- }, Qn = [
1182
+ }, ur = [
1046
1183
  globalThis.File,
1047
1184
  globalThis.FileList,
1048
1185
  globalThis.RegExp,
@@ -1062,7 +1199,7 @@ var ue = (e) => {
1062
1199
  globalThis.FileSystemFileHandle,
1063
1200
  globalThis.FileSystemDirectoryHandle,
1064
1201
  globalThis.RTCCertificate
1065
- ], $n = [
1202
+ ], dr = [
1066
1203
  globalThis.CropTarget,
1067
1204
  globalThis.EncodedAudioChunk,
1068
1205
  globalThis.EncodedVideoChunk,
@@ -1073,59 +1210,59 @@ var ue = (e) => {
1073
1210
  globalThis.RTCEncodedAudioFrame,
1074
1211
  globalThis.RTCEncodedVideoFrame,
1075
1212
  globalThis.WebTransportError
1076
- ], er = {
1213
+ ], fr = {
1077
1214
  type: "clonable",
1078
1215
  capableOnly: !0,
1079
- isType: (e) => C(e, Qn) || C(e, $n),
1216
+ isType: (e) => C(e, ur) || C(e, dr),
1080
1217
  box: (e, t) => e,
1081
1218
  revive: (e, t) => e
1082
- }, tr = [
1219
+ }, pr = [
1083
1220
  globalThis.ImageBitmap,
1084
1221
  globalThis.OffscreenCanvas,
1085
1222
  globalThis.WritableStream,
1086
1223
  globalThis.TransformStream,
1087
1224
  globalThis.MediaStreamTrack,
1088
1225
  globalThis.RTCDataChannel
1089
- ], nr = [
1226
+ ], mr = [
1090
1227
  globalThis.AudioData,
1091
1228
  globalThis.VideoFrame,
1092
1229
  globalThis.MediaSourceHandle,
1093
1230
  globalThis.MIDIAccess,
1094
1231
  globalThis.WebTransportReceiveStream,
1095
1232
  globalThis.WebTransportSendStream
1096
- ], rr = {
1233
+ ], hr = {
1097
1234
  type: "transferable",
1098
1235
  capableOnly: !0,
1099
- isType: (e) => C(e, tr) || C(e, nr),
1236
+ isType: (e) => C(e, pr) || C(e, mr),
1100
1237
  box: (e, t) => e,
1101
1238
  revive: (e, t) => e
1102
- }, ir = (e) => {
1239
+ }, gr = (e) => {
1103
1240
  if (typeof e != "object" || !e) return !1;
1104
1241
  let t = Object.getPrototypeOf(e);
1105
1242
  return t === Object.prototype || t === null;
1106
- }, ar = [
1107
- We,
1108
- Yt,
1109
- ge,
1110
- xe,
1111
- Ee,
1112
- je,
1113
- Le,
1114
- In,
1115
- ft,
1116
- yt,
1117
- rt,
1118
- Ct,
1243
+ }, _r = [
1244
+ Ue,
1245
+ sn,
1246
+ he,
1247
+ be,
1248
+ Te,
1249
+ Ae,
1250
+ Ie,
1251
+ Jn,
1252
+ _t,
1253
+ wt,
1254
+ nt,
1119
1255
  Ot,
1120
- Nt,
1121
1256
  zt,
1122
1257
  Wt,
1123
- un,
1124
- mn,
1125
- vn,
1126
- Hn,
1127
- Cn,
1128
- qn,
1258
+ Xt,
1259
+ tn,
1260
+ Sn,
1261
+ En,
1262
+ An,
1263
+ er,
1264
+ Fn,
1265
+ ar,
1129
1266
  {
1130
1267
  type: "nonFiniteNumber",
1131
1268
  isType: (e) => typeof e == "number" && !Number.isFinite(e),
@@ -1145,13 +1282,13 @@ var ue = (e) => {
1145
1282
  } : e,
1146
1283
  revive: (e, t) => void 0
1147
1284
  },
1148
- er,
1149
- rr,
1150
- On,
1285
+ fr,
1286
+ hr,
1287
+ Bn,
1151
1288
  {
1152
1289
  type: "unclonable",
1153
1290
  isType: (e) => {
1154
- if (typeof e != "object" || !e || Array.isArray(e) || ir(e)) return !1;
1291
+ if (typeof e != "object" || !e || Array.isArray(e) || gr(e)) return !1;
1155
1292
  try {
1156
1293
  return structuredClone(e), !1;
1157
1294
  } catch {
@@ -1164,39 +1301,39 @@ var ue = (e) => {
1164
1301
  }),
1165
1302
  revive: (e, t) => ({})
1166
1303
  }
1167
- ], or = (e, t) => t.find((t) => t.isType(e)), sr = (e, t) => t.find((t) => t.type === e.type), cr = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, lr = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : cr(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, ur = /* @__PURE__ */ new WeakSet(), dr = /* @__PURE__ */ new WeakSet(), fr = (e) => e !== null && (typeof e == "object" || typeof e == "function"), X = (e, t) => {
1304
+ ], vr = (e, t) => t.find((t) => t.isType(e)), 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"), X = (e, t) => {
1168
1305
  if (P(e)) return e;
1169
- let n = fr(e);
1306
+ let n = wr(e);
1170
1307
  if (n) {
1171
- if (ur.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1172
- ur.add(e);
1308
+ if (Sr.has(e)) throw TypeError("osra: cannot serialize a circular structure - break the cycle or send the container by reference");
1309
+ Sr.add(e);
1173
1310
  }
1174
1311
  try {
1175
- let n = or(e, t.revivableModules);
1176
- return n ? n.box(e, t) : lr(e, (e) => X(e, t));
1312
+ let n = vr(e, t.revivableModules);
1313
+ return n ? n.box(e, t) : xr(e, (e) => X(e, t));
1177
1314
  } finally {
1178
- n && ur.delete(e);
1315
+ n && Sr.delete(e);
1179
1316
  }
1180
1317
  }, Z = (e, t) => {
1181
- let n = fr(e);
1318
+ let n = wr(e);
1182
1319
  if (n) {
1183
- if (dr.has(e)) throw TypeError("osra: cannot revive a circular structure");
1184
- dr.add(e);
1320
+ if (Cr.has(e)) throw TypeError("osra: cannot revive a circular structure");
1321
+ Cr.add(e);
1185
1322
  }
1186
1323
  try {
1187
1324
  if (P(e)) {
1188
- let n = sr(e, t.revivableModules);
1325
+ let n = yr(e, t.revivableModules);
1189
1326
  if (n) return n.revive(e, t);
1190
1327
  }
1191
- return lr(e, (e) => Z(e, t));
1328
+ return xr(e, (e) => Z(e, t));
1192
1329
  } finally {
1193
- n && dr.delete(e);
1330
+ n && Cr.delete(e);
1194
1331
  }
1195
- }, pr = /* @__PURE__ */ t({
1196
- init: () => hr,
1332
+ }, Tr = /* @__PURE__ */ t({
1333
+ init: () => Dr,
1197
1334
  startBidirectionalConnection: () => Q,
1198
- type: () => mr
1199
- }), mr = "bidirectional", Q = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1335
+ type: () => Er
1336
+ }), Er = "bidirectional", Q = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
1200
1337
  let o = {
1201
1338
  transport: e,
1202
1339
  remoteUuid: n,
@@ -1216,7 +1353,7 @@ var ue = (e) => {
1216
1353
  revivableContext: o,
1217
1354
  remoteValue: s.then((e) => Z(e, o))
1218
1355
  };
1219
- }, hr = (e) => {
1356
+ }, Dr = (e) => {
1220
1357
  if (!(A(e.transport) && j(e.transport))) return;
1221
1358
  if (e.protocolEventTarget.addEventListener("message", ({ detail: t }) => {
1222
1359
  if (t.type === "announce") {
@@ -1258,7 +1395,7 @@ var ue = (e) => {
1258
1395
  if (t.remoteUuid !== e.getUuid()) return;
1259
1396
  let n = e.connectionContexts.get(t.uuid);
1260
1397
  if (!n) return;
1261
- e.connectionContexts.delete(t.uuid), Ue(n.connection.revivableContext), e.rejectRemoteValue(/* @__PURE__ */ Error("osra: peer closed the connection"));
1398
+ e.connectionContexts.delete(t.uuid), He(n.connection.revivableContext), e.rejectRemoteValue(/* @__PURE__ */ Error("osra: peer closed the connection"));
1262
1399
  return;
1263
1400
  }
1264
1401
  if (t.remoteUuid !== e.getUuid()) return;
@@ -1291,14 +1428,14 @@ var ue = (e) => {
1291
1428
  e.unregisterSignal?.aborted || e.connectionContexts.size > 0 || (e.sendMessage({ type: "announce" }), n = setTimeout(r, t), t = Math.min(t * 2, 1e3));
1292
1429
  };
1293
1430
  e.unregisterSignal?.addEventListener("abort", () => clearTimeout(n), { once: !0 }), r();
1294
- }, gr = () => new EventTarget(), $ = (e) => {
1431
+ }, Or = () => new EventTarget(), $ = (e) => {
1295
1432
  let t = M(e), n = t ? e.emit : e, r = t ? e.receive : e;
1296
1433
  return {
1297
1434
  isJson: t && "isJson" in e && e.isJson !== void 0 ? e.isJson : n !== void 0 && k(n) || r !== void 0 && k(r),
1298
1435
  ...n === void 0 ? {} : { emit: n },
1299
1436
  ...r === void 0 ? {} : { receive: r }
1300
1437
  };
1301
- }, _r = (e) => e ? e(ar) : ar, vr = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: d } = {}) => {
1438
+ }, kr = (e) => e ? e(_r) : _r, Ar = (e, t, { key: n = r, origin: i = "*", originA: a = i, originB: o = i, nameA: s, nameB: c, unregisterSignal: d } = {}) => {
1302
1439
  let f = $(e), p = $(t), m = (e, t, r, i, a) => {
1303
1440
  !j(e) || !A(t) || l({
1304
1441
  transport: e,
@@ -1307,16 +1444,16 @@ var ue = (e) => {
1307
1444
  origin: r,
1308
1445
  unregisterSignal: d,
1309
1446
  listener: (e) => {
1310
- u(t, e, i, L(e));
1447
+ u(t, e, i, R(e));
1311
1448
  }
1312
1449
  });
1313
1450
  };
1314
1451
  m(f, p, a, o, s), m(p, f, o, a, c);
1315
- }, yr = [pr], br = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: d, uuid: f, remoteUuid: p }) => {
1452
+ }, jr = [Tr], Mr = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: d, uuid: f, remoteUuid: p }) => {
1316
1453
  let m = $(t);
1317
1454
  if (!(A(m) && j(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");
1318
- let h = _r(d), g = /* @__PURE__ */ new Map(), { promise: _, resolve: ee, reject: v } = Promise.withResolvers();
1319
- _.catch(() => {});
1455
+ let ee = kr(d), h = /* @__PURE__ */ new Map(), { promise: g, resolve: _, reject: v } = Promise.withResolvers();
1456
+ g.catch(() => {});
1320
1457
  let y = f ?? globalThis.crypto.randomUUID(), b = (e) => {
1321
1458
  let t = {
1322
1459
  [n]: o,
@@ -1324,21 +1461,21 @@ var ue = (e) => {
1324
1461
  uuid: y,
1325
1462
  ...e
1326
1463
  };
1327
- u(m, t, s, L(t));
1464
+ u(m, t, s, R(t));
1328
1465
  }, x = (e) => {
1329
1466
  c?.aborted || b(e);
1330
- }, S = gr(), te = {
1467
+ }, S = Or(), te = {
1331
1468
  transport: m,
1332
1469
  value: e,
1333
- revivableModules: h,
1334
- connectionContexts: g,
1470
+ revivableModules: ee,
1471
+ connectionContexts: h,
1335
1472
  getUuid: () => y,
1336
1473
  presetRemoteUuid: p,
1337
1474
  sendMessage: x,
1338
1475
  protocolEventTarget: S,
1339
- resolveRemoteValue: ee,
1476
+ resolveRemoteValue: _,
1340
1477
  rejectRemoteValue: v,
1341
- createConnectionEventTarget: gr,
1478
+ createConnectionEventTarget: Or,
1342
1479
  unregisterSignal: c
1343
1480
  };
1344
1481
  l({
@@ -1351,16 +1488,16 @@ var ue = (e) => {
1351
1488
  origin: s,
1352
1489
  unregisterSignal: c
1353
1490
  }), c?.addEventListener("abort", () => {
1354
- for (let [e, t] of g) b({
1491
+ for (let [e, t] of h) b({
1355
1492
  type: "close",
1356
1493
  remoteUuid: e
1357
- }), Ue(t.connection.revivableContext);
1358
- g.clear(), v(c.reason);
1494
+ }), He(t.connection.revivableContext);
1495
+ h.clear(), v(c.reason);
1359
1496
  }, { once: !0 });
1360
- for (let e of yr) e.init(te);
1361
- return _;
1362
- }, xr = async (e, t) => br(e, t);
1497
+ for (let e of jr) e.init(te);
1498
+ return g;
1499
+ }, Nr = async (e, t) => Mr(e, t);
1363
1500
  //#endregion
1364
- export { N as BoxBase, z as EventChannel, R as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, ce as assertEmitTransport, le as assertReceiveTransport, me as boxBuffer, s as checkOsraMessageKey, yr as connections, gr as createTypedEventTarget, ar as defaultRevivableModules, xr as expose, L as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, Y as identity, hr as init, C as instanceOfAny, re as isClonable, de as isCustomEmitTransport, fe as isCustomReceiveTransport, M as isCustomTransport, b as isDedicatedWorker, oe as isEmitJsonOnlyTransport, A as isEmitTransport, k as isJsonOnlyTransport, te as isOsraMessage, se as isReceiveJsonOnlyTransport, j as isReceiveTransport, P as isRevivableBox, v as isServiceWorker, ee as isServiceWorkerContainer, ne as isSharedArrayBuffer, x as isSharedWorker, ie as isTransferable, pe as isTransport, g as isTypedArray, E as isWebExtensionOnConnect, D as isWebExtensionOnMessage, T as isWebExtensionPort, w as isWebExtensionRuntime, _ as isWebSocket, O as isWindow, y as isWorker, _r as mergeRevivableModules, $ as normalizeTransport, I as onTeardown, X as recursiveBox, Z as recursiveRevive, l as registerOsraMessageListener, vr as relay, he as reviveBuffer, Ue as runTeardown, u as sendOsraMessage, Q as startBidirectionalConnection, br as startConnections, B as trackGc, Xe as transfer, mr as type, m as typedArrayToType, h as typedArrayTypeToTypedArrayConstructor };
1501
+ export { N as BoxBase, B as EventChannel, z as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, ce as assertEmitTransport, le as assertReceiveTransport, me as boxBuffer, s as checkOsraMessageKey, jr as connections, Or as createTypedEventTarget, _r as defaultRevivableModules, Nr as expose, R as getTransferableObjects, a as getWebExtensionGlobal, o as getWebExtensionRuntime, Y as identity, Dr as init, C as instanceOfAny, re as isClonable, de as isCustomEmitTransport, fe as isCustomReceiveTransport, M as isCustomTransport, b as isDedicatedWorker, oe as isEmitJsonOnlyTransport, A as isEmitTransport, k as isJsonOnlyTransport, te as isOsraMessage, se as isReceiveJsonOnlyTransport, j as isReceiveTransport, P as isRevivableBox, v as isServiceWorker, _ as isServiceWorkerContainer, ne as isSharedArrayBuffer, x as isSharedWorker, ie as isTransferable, pe as isTransport, h as isTypedArray, E as isWebExtensionOnConnect, D as isWebExtensionOnMessage, T as isWebExtensionPort, w as isWebExtensionRuntime, g as isWebSocket, O as isWindow, y as isWorker, kr as mergeRevivableModules, $ as normalizeTransport, L as onTeardown, X as recursiveBox, Z as recursiveRevive, l as registerOsraMessageListener, Ar as relay, F as reviveBuffer, He as runTeardown, u as sendOsraMessage, Q as startBidirectionalConnection, Mr as startConnections, V as trackGc, Ye as transfer, Er as type, m as typedArrayToType, ee as typedArrayTypeToTypedArrayConstructor };
1365
1502
 
1366
1503
  //# sourceMappingURL=index.js.map