osra 0.3.2 → 0.3.3

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
@@ -38,10 +38,10 @@ var e = Object.defineProperty, t = (t, n) => {
38
38
  globalThis.TransformStream,
39
39
  globalThis.ImageBitmap
40
40
  ]), b = (e) => {
41
- let t = j();
41
+ let t = A();
42
42
  return t ? e === t : !1;
43
43
  }, x = (e, t = !1) => !e || typeof e != "object" || w(e) || !("name" in e) || !("disconnect" in e) || !("postMessage" in e) ? !1 : t ? "sender" in e && "onMessage" in e && "onDisconnect" in e : !0, ee = (e) => !!e && typeof e == "object" && !w(e) && "addListener" in e && "hasListener" in e && "removeListener" in e, S = (e) => {
44
- let t = j();
44
+ let t = A();
45
45
  return t ? e === t.onConnect || e === t.onConnectExternal : !1;
46
46
  }, C = (e) => ee(e), w = (e) => {
47
47
  if (!e || typeof e != "object") return !1;
@@ -54,97 +54,97 @@ var e = Object.defineProperty, t = (t, n) => {
54
54
  return !1;
55
55
  }
56
56
  }
57
- }, T = (e) => u(e) || x(e) || b(e), E = (e) => u(e) || x(e) || S(e) || C(e) || b(e), D = (e) => !!e && typeof e == "object" && "isJson" in e && e.isJson === !0 || T(e) || E(e), O = (e) => w(e) || T(e) || d(e) || f(e) || p(e) || m(e) || h(e) || re(e);
58
- function te(e) {
59
- if (!O(e)) throw Error("Transport is not emitable");
60
- }
61
- var k = (e) => w(e) || E(e) || d(e) || f(e) || p(e) || m(e) || h(e) || ie(e);
57
+ }, T = (e) => u(e) || x(e) || b(e), te = (e) => u(e) || x(e) || S(e) || C(e) || b(e), E = (e) => !!e && typeof e == "object" && "isJson" in e && e.isJson === !0 || T(e) || te(e), D = (e) => w(e) || T(e) || d(e) || f(e) || p(e) || m(e) || h(e) || ie(e);
62
58
  function ne(e) {
63
- if (!k(e)) throw Error("Transport is not receiveable");
59
+ if (!D(e)) throw Error("Transport is not emitable");
60
+ }
61
+ var O = (e) => w(e) || te(e) || d(e) || f(e) || p(e) || m(e) || h(e) || ae(e);
62
+ function re(e) {
63
+ if (!O(e)) throw Error("Transport is not receiveable");
64
64
  }
65
- var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.emit) || typeof e.emit == "function", ie = (e) => !e || typeof e != "object" || w(e) || !("receive" in e) ? !1 : k(e.receive) || typeof e.receive == "function", A = (e) => re(e) || ie(e), ae = (e) => O(e) || k(e) || A(e) || D(e), oe = () => globalThis.browser ?? globalThis.chrome, j = () => oe()?.runtime, M = (e, t) => g(e) && e.__OSRA_KEY__ === t, N = (e, t) => e?.addEventListener("abort", t, { once: !0 }), se = ({ listener: e, transport: t, remoteName: r, key: i = n, unregisterSignal: a }) => {
66
- let o = A(t) ? t.receive : t;
65
+ var ie = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : D(e.emit) || typeof e.emit == "function", ae = (e) => !e || typeof e != "object" || w(e) || !("receive" in e) ? !1 : O(e.receive) || typeof e.receive == "function", k = (e) => ie(e) || ae(e), oe = (e) => D(e) || O(e) || k(e) || E(e), se = () => globalThis.browser ?? globalThis.chrome, A = () => se()?.runtime, j = (e, t) => g(e) && e.__OSRA_KEY__ === t, M = (e, t) => e?.addEventListener("abort", t, { once: !0 }), ce = ({ listener: e, transport: t, remoteName: r, key: i = n, unregisterSignal: a }) => {
66
+ let o = k(t) ? t.receive : t;
67
67
  if (typeof o == "function") {
68
68
  o((t, n) => {
69
- M(t, i) && (r && t.name !== r || e(t, n));
69
+ j(t, i) && (r && t.name !== r || e(t, n));
70
70
  });
71
71
  return;
72
72
  }
73
73
  if (b(o) || x(o) || S(o) || C(o)) {
74
74
  let t = (t, n) => {
75
75
  let o = (t, a) => {
76
- M(t, i) && (r && t.name !== r || e(t, {
76
+ j(t, i) && (r && t.name !== r || e(t, {
77
77
  port: n,
78
78
  sender: a
79
79
  }));
80
80
  };
81
- t.addListener(o), N(a, () => t.removeListener(o));
81
+ t.addListener(o), M(a, () => t.removeListener(o));
82
82
  };
83
83
  if (b(o)) t(o.onMessage);
84
84
  else if (S(o)) {
85
85
  let e = (e) => t(e.onMessage, e);
86
- o.addListener(e), N(a, () => o.removeListener(e));
86
+ o.addListener(e), M(a, () => o.removeListener(e));
87
87
  } else C(o) ? t(o) : t(o.onMessage);
88
88
  return;
89
89
  }
90
90
  let s = (t) => {
91
- M(t.data, i) && (r && t.data.name !== r || e(t.data, {
91
+ j(t.data, i) && (r && t.data.name !== r || e(t.data, {
92
92
  receiveTransport: o,
93
93
  source: t.source
94
94
  }));
95
95
  };
96
- o.addEventListener("message", s), N(a, () => o.removeEventListener("message", s));
97
- }, ce = (e, t, n = "*", r = []) => {
98
- let i = A(e) ? e.emit : e;
96
+ o.addEventListener("message", s), M(a, () => o.removeEventListener("message", s));
97
+ }, le = (e, t, n = "*", r = []) => {
98
+ let i = k(e) ? e.emit : e;
99
99
  typeof i == "function" ? i(t, r) : w(i) ? i.postMessage(t, n, r) : x(i) ? i.postMessage(t) : b(i) ? i.sendMessage(t) : u(i) ? i.send(JSON.stringify(t)) : m(i) ? i.port.postMessage(t, r) : i.postMessage(t, r);
100
- }, P = { [i]: "revivable" }, F = (e) => !!e && typeof e == "object" && "__OSRA_BOX__" in e && e.__OSRA_BOX__ === "revivable", I = (e) => e instanceof Error ? e.stack ?? String(e) : String(e), L = (e, t) => D(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }, R = (e) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, le = /* @__PURE__ */ t({
101
- box: () => fe,
102
- isType: () => de,
103
- revive: () => pe,
104
- type: () => ue
105
- }), ue = "arrayBuffer", de = (e) => e instanceof ArrayBuffer, fe = (e, t) => ({
106
- ...P,
107
- type: ue,
108
- ...L(e, t)
109
- }), pe = (e, t) => R(e), me = /* @__PURE__ */ t({
110
- box: () => _e,
111
- isType: () => ge,
112
- revive: () => ve,
113
- type: () => he
114
- }), he = "date", ge = (e) => e instanceof Date, _e = (e, t) => ({
115
- ...P,
116
- type: he,
100
+ }, N = { [i]: "revivable" }, P = (e) => !!e && typeof e == "object" && "__OSRA_BOX__" in e && e.__OSRA_BOX__ === "revivable", F = (e) => e instanceof Error ? e.stack ?? String(e) : String(e), I = (e, t) => E(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }, L = (e) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, ue = /* @__PURE__ */ t({
101
+ box: () => pe,
102
+ isType: () => fe,
103
+ revive: () => me,
104
+ type: () => de
105
+ }), de = "arrayBuffer", fe = (e) => e instanceof ArrayBuffer, pe = (e, t) => ({
106
+ ...N,
107
+ type: de,
108
+ ...I(e, t)
109
+ }), me = (e, t) => L(e), he = /* @__PURE__ */ t({
110
+ box: () => ve,
111
+ isType: () => _e,
112
+ revive: () => ye,
113
+ type: () => ge
114
+ }), ge = "date", _e = (e) => e instanceof Date, ve = (e, t) => ({
115
+ ...N,
116
+ type: ge,
117
117
  ISOString: e.toISOString()
118
- }), ve = (e, t) => new Date(e.ISOString), ye = /* @__PURE__ */ t({
119
- box: () => z,
120
- isType: () => xe,
121
- revive: () => B,
122
- type: () => be
123
- }), be = "headers", xe = (e) => e instanceof Headers, z = (e, t) => ({
124
- ...P,
125
- type: be,
118
+ }), ye = (e, t) => new Date(e.ISOString), be = /* @__PURE__ */ t({
119
+ box: () => R,
120
+ isType: () => Se,
121
+ revive: () => z,
122
+ type: () => xe
123
+ }), xe = "headers", Se = (e) => e instanceof Headers, R = (e, t) => ({
124
+ ...N,
125
+ type: xe,
126
126
  entries: [...e.entries()]
127
- }), B = (e, t) => new Headers(e.entries), Se = /* @__PURE__ */ t({
128
- box: () => Te,
129
- isType: () => we,
130
- revive: () => Ee,
131
- type: () => Ce
132
- }), Ce = "error", we = (e) => e instanceof Error, Te = (e, t) => ({
133
- ...P,
134
- type: Ce,
127
+ }), z = (e, t) => new Headers(e.entries), Ce = /* @__PURE__ */ t({
128
+ box: () => Ee,
129
+ isType: () => Te,
130
+ revive: () => De,
131
+ type: () => we
132
+ }), we = "error", Te = (e) => e instanceof Error, Ee = (e, t) => ({
133
+ ...N,
134
+ type: we,
135
135
  message: e.message,
136
136
  stack: e.stack || e.toString()
137
- }), Ee = (e, t) => Error(e.message, { cause: e.stack }), De = /* @__PURE__ */ t({
138
- box: () => Ae,
139
- isType: () => ke,
140
- revive: () => je,
141
- type: () => Oe
142
- }), Oe = "typedArray", ke = l, Ae = (e, t) => ({
143
- ...P,
144
- type: Oe,
137
+ }), De = (e, t) => Error(e.message, { cause: e.stack }), Oe = /* @__PURE__ */ t({
138
+ box: () => je,
139
+ isType: () => Ae,
140
+ revive: () => Me,
141
+ type: () => ke
142
+ }), ke = "typedArray", Ae = l, je = (e, t) => ({
143
+ ...N,
144
+ type: ke,
145
145
  typedArrayType: s(e),
146
- ...L(e.buffer, t)
147
- }), je = (e, t) => new (c(e.typedArrayType))(R(e)), V = class extends EventTarget {
146
+ ...I(e.buffer, t)
147
+ }), Me = (e, t) => new (c(e.typedArrayType))(L(e)), B = class extends EventTarget {
148
148
  addEventListener(e, t, n) {
149
149
  super.addEventListener(e, t, n);
150
150
  }
@@ -184,40 +184,40 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
184
184
  close() {
185
185
  this._closed || (this._closed = !0, this._queue.length = 0, this._onClose?.());
186
186
  }
187
- }, H = class {
187
+ }, V = class {
188
188
  port1;
189
189
  port2;
190
190
  constructor() {
191
- let e = new V(), t = new V();
191
+ let e = new B(), t = new B();
192
192
  e._peer = t, t._peer = e, this.port1 = e, this.port2 = t;
193
193
  }
194
- }, Me = /* @__PURE__ */ t({
195
- box: () => G,
196
- createRevivableChannel: () => q,
197
- init: () => Fe,
198
- isType: () => Ie,
199
- revive: () => K,
200
- type: () => W
201
- }), U = new FinalizationRegistry((e) => {
194
+ }, Ne = /* @__PURE__ */ t({
195
+ box: () => W,
196
+ createRevivableChannel: () => K,
197
+ init: () => Ie,
198
+ isType: () => Le,
199
+ revive: () => G,
200
+ type: () => U
201
+ }), H = new FinalizationRegistry((e) => {
202
202
  e.sendMessage({
203
203
  type: "message-port-close",
204
204
  remoteUuid: e.remoteUuid,
205
205
  portId: e.portId
206
206
  }), e.cleanup();
207
- }), W = "messagePort", Ne = /* @__PURE__ */ new WeakMap(), Pe = (e) => {
208
- let t = Ne.get(e);
207
+ }), U = "messagePort", Pe = /* @__PURE__ */ new WeakMap(), Fe = (e) => {
208
+ let t = Pe.get(e);
209
209
  if (!t) throw Error("osra message-port: connection state missing; did init() run?");
210
210
  return t;
211
- }, Fe = (e) => {
211
+ }, Ie = (e) => {
212
212
  let t = { portHandlers: /* @__PURE__ */ new Map() };
213
- Ne.set(e, t), e.eventTarget.addEventListener("message", ({ detail: e }) => {
213
+ Pe.set(e, t), e.eventTarget.addEventListener("message", ({ detail: e }) => {
214
214
  e.type !== "message" && e.type !== "message-port-close" || t.portHandlers.get(e.portId)?.(e);
215
215
  });
216
- }, Ie = (e) => e instanceof MessagePort || e instanceof V, G = (e, t, n) => {
217
- let r = e instanceof V;
218
- if (r || D(t.transport)) {
219
- let { portHandlers: n } = Pe(t), i = e, a = globalThis.crypto.randomUUID(), o = !1, s = () => {
220
- o || (o = !0, n.delete(a), U.unregister(i), i.removeEventListener("message", l));
216
+ }, Le = (e) => e instanceof MessagePort || e instanceof B, W = (e, t, n) => {
217
+ let r = e instanceof B;
218
+ if (r || E(t.transport)) {
219
+ let { portHandlers: n } = Fe(t), i = e, a = globalThis.crypto.randomUUID(), o = !1, s = () => {
220
+ o || (o = !0, n.delete(a), H.unregister(i), i.removeEventListener("message", l));
221
221
  }, c = (e) => {
222
222
  if (e.type === "message-port-close") {
223
223
  s(), i.close();
@@ -234,31 +234,31 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
234
234
  portId: a
235
235
  });
236
236
  }
237
- return U.register(i, {
237
+ return H.register(i, {
238
238
  sendMessage: t.sendMessage,
239
239
  remoteUuid: t.remoteUuid,
240
240
  portId: a,
241
241
  cleanup: s
242
- }, i), i.addEventListener("message", l), i.start(), i instanceof V && (i._onClose = () => {
242
+ }, i), i.addEventListener("message", l), i.start(), i instanceof B && (i._onClose = () => {
243
243
  o || (t.sendMessage({
244
244
  type: "message-port-close",
245
245
  remoteUuid: t.remoteUuid,
246
246
  portId: a
247
247
  }), s());
248
248
  }), n.set(a, c), {
249
- ...P,
250
- type: W,
249
+ ...N,
250
+ type: U,
251
251
  portId: a,
252
252
  synthetic: r
253
253
  };
254
254
  }
255
255
  return {
256
- ...P,
257
- type: W,
256
+ ...N,
257
+ type: U,
258
258
  port: e,
259
259
  ...n?.autoBox ? { autoBox: !0 } : {}
260
260
  };
261
- }, K = (e, t) => "port" in e ? e.autoBox ? Le(e.port, t) : e.port : Re(e.portId, t, e.synthetic), Le = (e, t) => {
261
+ }, G = (e, t) => "port" in e ? e.autoBox ? Re(e.port, t) : e.port : ze(e.portId, t, e.synthetic), Re = (e, t) => {
262
262
  let n = new EventTarget(), r = ({ data: e }) => {
263
263
  n.dispatchEvent(new MessageEvent("message", { data: Z(e, t) }));
264
264
  };
@@ -268,25 +268,25 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
268
268
  }, n.start = () => e.start(), n.close = () => {
269
269
  e.removeEventListener("message", r), e.close();
270
270
  }, n;
271
- }, q = (e) => {
272
- if (D(e.transport)) {
273
- let { port1: t, port2: n } = new H();
271
+ }, K = (e) => {
272
+ if (E(e.transport)) {
273
+ let { port1: t, port2: n } = new V();
274
274
  return {
275
275
  localPort: t,
276
- boxedRemote: G(n, e)
276
+ boxedRemote: W(n, e)
277
277
  };
278
278
  }
279
279
  let { port1: t, port2: n } = new MessageChannel();
280
280
  return {
281
- localPort: Le(t, e),
282
- boxedRemote: G(n, e, { autoBox: !0 })
281
+ localPort: Re(t, e),
282
+ boxedRemote: W(n, e, { autoBox: !0 })
283
283
  };
284
- }, Re = (e, t, n) => {
285
- let { portHandlers: r } = Pe(t), { port1: i, port2: a } = n ? new H() : new MessageChannel(), o = new WeakRef(i), s = !1, c = () => {
284
+ }, ze = (e, t, n) => {
285
+ let { portHandlers: r } = Fe(t), { port1: i, port2: a } = n ? new V() : new MessageChannel(), o = new WeakRef(i), s = !1, c = () => {
286
286
  if (s) return;
287
287
  s = !0, r.delete(e), a.removeEventListener("message", u), a.close();
288
288
  let t = o.deref();
289
- t && U.unregister(t);
289
+ t && H.unregister(t);
290
290
  }, l = (e) => {
291
291
  if (e.type === "message-port-close") {
292
292
  c(), o.deref()?.close();
@@ -306,26 +306,26 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
306
306
  portId: e
307
307
  });
308
308
  };
309
- return U.register(i, {
309
+ return H.register(i, {
310
310
  sendMessage: t.sendMessage,
311
311
  remoteUuid: t.remoteUuid,
312
312
  portId: e,
313
313
  cleanup: c
314
- }, i), i instanceof V && (i._onClose = () => {
314
+ }, i), i instanceof B && (i._onClose = () => {
315
315
  s || (t.sendMessage({
316
316
  type: "message-port-close",
317
317
  remoteUuid: t.remoteUuid,
318
318
  portId: e
319
319
  }), c());
320
320
  }), a.addEventListener("message", u), a.start(), r.set(e, l), i;
321
- }, ze = /* @__PURE__ */ t({
322
- box: () => We,
323
- isType: () => Ue,
324
- revive: () => Ge,
325
- type: () => Be
326
- }), Be = "promise", Ve = (e) => e instanceof Promise, He = /* @__PURE__ */ new Set(), Ue = (e) => e instanceof Promise, We = (e, t) => {
327
- if (!Ve(e)) throw TypeError("Expected Promise");
328
- let n = e, { localPort: r, boxedRemote: i } = q(t), a = (e) => {
321
+ }, Be = /* @__PURE__ */ t({
322
+ box: () => Ge,
323
+ isType: () => We,
324
+ revive: () => Ke,
325
+ type: () => Ve
326
+ }), Ve = "promise", He = (e) => e instanceof Promise, Ue = /* @__PURE__ */ new Set(), We = (e) => e instanceof Promise, Ge = (e, t) => {
327
+ if (!He(e)) throw TypeError("Expected Promise");
328
+ let n = e, { localPort: r, boxedRemote: i } = K(t), a = (e) => {
329
329
  r.postMessage(e), r.close();
330
330
  };
331
331
  return n.then((e) => a({
@@ -333,25 +333,25 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
333
333
  data: e
334
334
  })).catch((e) => a({
335
335
  type: "reject",
336
- error: I(e)
336
+ error: F(e)
337
337
  })), {
338
- ...P,
339
- type: Be,
338
+ ...N,
339
+ type: Ve,
340
340
  port: i
341
341
  };
342
- }, Ge = (e, t) => {
343
- let n = K(e.port, t);
344
- return He.add(n), new Promise((e, t) => {
342
+ }, Ke = (e, t) => {
343
+ let n = G(e.port, t);
344
+ return Ue.add(n), new Promise((e, t) => {
345
345
  n.addEventListener("message", ({ data: r }) => {
346
- r.type === "resolve" ? e(r.data) : t(r.error), n.close(), He.delete(n);
346
+ r.type === "resolve" ? e(r.data) : t(r.error), n.close(), Ue.delete(n);
347
347
  }, { once: !0 }), n.start();
348
348
  });
349
- }, Ke = /* @__PURE__ */ t({
350
- box: () => Xe,
351
- isType: () => Ye,
352
- revive: () => Ze,
353
- type: () => qe
354
- }), qe = "function", Je = new FinalizationRegistry((e) => {
349
+ }, qe = /* @__PURE__ */ t({
350
+ box: () => Ze,
351
+ isType: () => Xe,
352
+ revive: () => Qe,
353
+ type: () => Je
354
+ }), Je = "function", Ye = new FinalizationRegistry((e) => {
355
355
  try {
356
356
  e.port.postMessage({ __osra_close__: !0 });
357
357
  } catch {}
@@ -362,14 +362,14 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
362
362
  try {
363
363
  n(/* @__PURE__ */ Error("osra function was garbage collected before result arrived"));
364
364
  } catch {}
365
- J.delete(t);
365
+ q.delete(t);
366
366
  try {
367
367
  t.close();
368
368
  } catch {}
369
369
  }
370
370
  e.inFlight.clear();
371
- }), J = /* @__PURE__ */ new Set(), Ye = (e) => typeof e == "function", Xe = (e, t) => {
372
- let { localPort: n, boxedRemote: r } = q(t), i = () => {
371
+ }), q = /* @__PURE__ */ new Set(), Xe = (e) => typeof e == "function", Ze = (e, t) => {
372
+ let { localPort: n, boxedRemote: r } = K(t), i = () => {
373
373
  n.close();
374
374
  };
375
375
  return n.addEventListener("message", ({ data: t }) => {
@@ -388,7 +388,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
388
388
  try {
389
389
  n.postMessage({
390
390
  __osra_err__: !0,
391
- error: I(e)
391
+ error: F(e)
392
392
  });
393
393
  } catch {}
394
394
  }
@@ -396,58 +396,58 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
396
396
  try {
397
397
  n.postMessage({
398
398
  __osra_err__: !0,
399
- error: I(e)
399
+ error: F(e)
400
400
  });
401
401
  } catch {}
402
402
  }).finally(() => {
403
403
  queueMicrotask(() => n.close());
404
404
  });
405
405
  }), n.start(), {
406
- ...P,
407
- type: qe,
406
+ ...N,
407
+ type: Je,
408
408
  port: r
409
409
  };
410
- }, Ze = (e, t) => {
411
- let n = K(e.port, t), r = /* @__PURE__ */ new Set(), i = (...e) => new Promise((i, a) => {
412
- let { localPort: o, boxedRemote: s } = q(t);
413
- J.add(o);
410
+ }, Qe = (e, t) => {
411
+ let n = G(e.port, t), r = /* @__PURE__ */ new Set(), i = (...e) => new Promise((i, a) => {
412
+ let { localPort: o, boxedRemote: s } = K(t);
413
+ q.add(o);
414
414
  let c = {
415
415
  returnLocal: o,
416
416
  reject: a
417
417
  };
418
418
  r.add(c), o.addEventListener("message", ({ data: e }) => {
419
- "__osra_ok__" in e ? i(e.value) : a(e.error), o.close(), J.delete(o), r.delete(c);
419
+ "__osra_ok__" in e ? i(e.value) : a(e.error), o.close(), q.delete(o), r.delete(c);
420
420
  }, { once: !0 }), o.start();
421
421
  try {
422
422
  n.postMessage([s, e]);
423
423
  } catch (e) {
424
- J.delete(o), r.delete(c);
424
+ q.delete(o), r.delete(c);
425
425
  try {
426
426
  o.close();
427
427
  } catch {}
428
428
  a(e);
429
429
  }
430
430
  });
431
- return Je.register(i, {
431
+ return Ye.register(i, {
432
432
  port: n,
433
433
  inFlight: r
434
434
  }, i), i;
435
- }, Qe = /* @__PURE__ */ t({
436
- box: () => Y,
437
- isType: () => et,
438
- revive: () => tt,
439
- type: () => $e
440
- }), $e = "readableStream", et = (e) => e instanceof ReadableStream, Y = (e, t) => {
441
- let { localPort: n, boxedRemote: r } = q(t), i = e.getReader();
435
+ }, $e = /* @__PURE__ */ t({
436
+ box: () => nt,
437
+ isType: () => tt,
438
+ revive: () => rt,
439
+ type: () => et
440
+ }), et = "readableStream", tt = (e) => e instanceof ReadableStream, nt = (e, t) => {
441
+ let { localPort: n, boxedRemote: r } = K(t), i = e.getReader();
442
442
  return n.addEventListener("message", ({ data: e }) => {
443
443
  "type" in e && e.type === "pull" ? n.postMessage(i.read()) : (i.cancel(), n.close());
444
444
  }), n.start(), {
445
- ...P,
446
- type: $e,
445
+ ...N,
446
+ type: et,
447
447
  port: r
448
448
  };
449
- }, tt = (e, t) => {
450
- let n = K(e.port, t);
449
+ }, rt = (e, t) => {
450
+ let n = G(e.port, t);
451
451
  return n.start(), new ReadableStream({
452
452
  pull: (e) => new Promise((t, r) => {
453
453
  n.addEventListener("message", ({ data: n }) => {
@@ -460,65 +460,65 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
460
460
  n.postMessage({ type: "cancel" }), queueMicrotask(() => n.close());
461
461
  }
462
462
  });
463
- }, nt = /* @__PURE__ */ t({
464
- box: () => at,
465
- isType: () => it,
466
- revive: () => ot,
467
- type: () => rt
468
- }), rt = "abortSignal", it = (e) => e instanceof AbortSignal, at = (e, t) => {
469
- let { localPort: n, boxedRemote: r } = q(t);
463
+ }, it = /* @__PURE__ */ t({
464
+ box: () => st,
465
+ isType: () => ot,
466
+ revive: () => ct,
467
+ type: () => at
468
+ }), at = "abortSignal", ot = (e) => e instanceof AbortSignal, st = (e, t) => {
469
+ let { localPort: n, boxedRemote: r } = K(t);
470
470
  return e.aborted ? n.close() : e.addEventListener("abort", () => {
471
471
  n.postMessage({
472
472
  type: "abort",
473
473
  reason: e.reason
474
474
  }), n.close();
475
475
  }, { once: !0 }), {
476
- ...P,
477
- type: rt,
476
+ ...N,
477
+ type: at,
478
478
  aborted: e.aborted,
479
479
  reason: e.aborted ? X(e.reason, t) : void 0,
480
480
  port: r
481
481
  };
482
- }, ot = (e, t) => {
482
+ }, ct = (e, t) => {
483
483
  let n = new AbortController();
484
484
  if (e.aborted) return n.abort(Z(e.reason, t)), n.signal;
485
- let r = K(e.port, t);
485
+ let r = G(e.port, t);
486
486
  return r.start(), r.addEventListener("message", ({ data: e }) => {
487
487
  e.type === "abort" && (n.abort(Z(e.reason, t)), r.close());
488
488
  }), n.signal;
489
- }, st = /* @__PURE__ */ t({
490
- box: () => ut,
491
- isType: () => lt,
492
- revive: () => dt,
493
- type: () => ct
494
- }), ct = "response", lt = (e) => e instanceof Response, ut = (e, t) => ({
495
- ...P,
496
- type: ct,
489
+ }, lt = /* @__PURE__ */ t({
490
+ box: () => ft,
491
+ isType: () => dt,
492
+ revive: () => pt,
493
+ type: () => ut
494
+ }), ut = "response", dt = (e) => e instanceof Response, ft = (e, t) => ({
495
+ ...N,
496
+ type: ut,
497
497
  status: e.status,
498
498
  statusText: e.statusText,
499
- headers: z(e.headers, t),
500
- body: e.body ? Y(e.body, t) : null,
499
+ headers: R(e.headers, t),
500
+ body: e.body ? nt(e.body, t) : null,
501
501
  url: e.url,
502
502
  redirected: e.redirected
503
- }), dt = (e, t) => {
504
- let n = B(e.headers, t), r = e.body ? tt(e.body, t) : null;
503
+ }), pt = (e, t) => {
504
+ let n = z(e.headers, t), r = e.body ? rt(e.body, t) : null;
505
505
  return new Response(r, {
506
506
  status: e.status,
507
507
  statusText: e.statusText,
508
508
  headers: n
509
509
  });
510
- }, ft = /* @__PURE__ */ t({
511
- box: () => ht,
512
- isType: () => mt,
513
- revive: () => gt,
514
- type: () => pt
515
- }), pt = "request", mt = (e) => e instanceof Request, ht = (e, t) => ({
516
- ...P,
517
- type: pt,
510
+ }, mt = /* @__PURE__ */ t({
511
+ box: () => _t,
512
+ isType: () => gt,
513
+ revive: () => vt,
514
+ type: () => ht
515
+ }), ht = "request", gt = (e) => e instanceof Request, _t = (e, t) => ({
516
+ ...N,
517
+ type: ht,
518
518
  method: e.method,
519
519
  url: e.url,
520
- headers: z(e.headers, t),
521
- body: e.body ? Y(e.body, t) : null,
520
+ headers: R(e.headers, t),
521
+ body: e.body ? nt(e.body, t) : null,
522
522
  credentials: e.credentials,
523
523
  cache: e.cache,
524
524
  redirect: e.redirect,
@@ -526,8 +526,8 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
526
526
  referrerPolicy: e.referrerPolicy,
527
527
  integrity: e.integrity,
528
528
  keepalive: e.keepalive
529
- }), gt = (e, t) => {
530
- let n = B(e.headers, t), r = e.body ? tt(e.body, t) : null;
529
+ }), vt = (e, t) => {
530
+ let n = z(e.headers, t), r = e.body ? rt(e.body, t) : null;
531
531
  return new Request(e.url, {
532
532
  method: e.method,
533
533
  headers: n,
@@ -541,27 +541,29 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
541
541
  keepalive: e.keepalive,
542
542
  duplex: "half"
543
543
  });
544
- }, _t = /* @__PURE__ */ t({
544
+ }, yt = /* @__PURE__ */ t({
545
545
  box: () => kt,
546
546
  identity: () => wt,
547
547
  isType: () => Ot,
548
548
  revive: () => At,
549
- type: () => vt
550
- }), vt = "identity", yt = Symbol.for("osra.identity"), bt = (e) => e !== null && (typeof e == "object" || typeof e == "function"), xt = (e) => bt(e) && yt in e && e[yt] === !0, St = /* @__PURE__ */ new WeakMap(), Ct = (e) => {
549
+ type: () => J
550
+ }), J = "identity", bt = Symbol.for("osra.identity"), Y = (e) => e !== null && (typeof e == "object" || typeof e == "function"), xt = (e) => Y(e) && bt in e && e[bt] === !0, St = /* @__PURE__ */ new WeakMap(), Ct = (e) => {
551
551
  if (xt(e)) return e;
552
552
  let t = St.get(e);
553
553
  if (t) return t;
554
554
  let n = {
555
- [yt]: !0,
555
+ [bt]: !0,
556
556
  value: e
557
557
  };
558
558
  return St.set(e, n), n;
559
- }, wt = (e) => bt(e) ? Ct(e) : e, Tt = /* @__PURE__ */ new WeakMap(), Et = (e) => {
559
+ }, wt = (e) => Y(e) ? Ct(e) : e, Tt = /* @__PURE__ */ new WeakMap(), Et = (e) => {
560
560
  let t = Tt.get(e);
561
561
  if (t) return t;
562
- let n = {
563
- sendIds: /* @__PURE__ */ new WeakMap(),
562
+ let n = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new WeakMap(), o = {
563
+ sendIds: n,
564
+ idToSent: r,
564
565
  sendRegistry: new FinalizationRegistry((t) => {
566
+ r.delete(t);
565
567
  try {
566
568
  e.sendMessage({
567
569
  type: "identity-dispose",
@@ -570,37 +572,49 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
570
572
  });
571
573
  } catch {}
572
574
  }),
573
- receiveCache: /* @__PURE__ */ new Map(),
575
+ receiveCache: i,
576
+ revivedToId: a,
574
577
  listenerInstalled: !1
575
578
  };
576
- return Tt.set(e, n), Dt(e, n), n;
579
+ return Tt.set(e, o), Dt(e, o), o;
577
580
  }, Dt = (e, t) => {
578
581
  t.listenerInstalled || (t.listenerInstalled = !0, e.eventTarget.addEventListener("message", ({ detail: e }) => {
579
- e?.type === "identity-dispose" && t.receiveCache.delete(e.id);
582
+ if (e?.type === "identity-dispose") {
583
+ let n = t.receiveCache.get(e.id);
584
+ t.receiveCache.delete(e.id), n !== void 0 && Y(n) && t.revivedToId.delete(n);
585
+ }
580
586
  }));
581
587
  }, Ot = (e) => xt(e), kt = (e, t) => {
582
- let n = Et(t), r = e.value, i = bt(r) ? r : void 0;
588
+ let n = Et(t), r = e.value, i = Y(r) ? r : void 0;
583
589
  if (i !== void 0) {
584
590
  let e = n.sendIds.get(i);
585
591
  if (e !== void 0) return {
586
- ...P,
587
- type: vt,
592
+ ...N,
593
+ type: J,
588
594
  id: e
589
595
  };
596
+ let t = n.revivedToId.get(i);
597
+ if (t !== void 0) return {
598
+ ...N,
599
+ type: J,
600
+ id: t
601
+ };
590
602
  }
591
603
  let a = globalThis.crypto.randomUUID(), o = X(r, t);
592
- return i !== void 0 && (n.sendIds.set(i, a), n.sendRegistry.register(i, a)), {
593
- ...P,
594
- type: vt,
604
+ return i !== void 0 && (n.sendIds.set(i, a), n.idToSent.set(a, new WeakRef(i)), n.sendRegistry.register(i, a)), {
605
+ ...N,
606
+ type: J,
595
607
  id: a,
596
608
  inner: o
597
609
  };
598
610
  }, At = (e, t) => {
599
611
  let n = Et(t), r = n.receiveCache.get(e.id);
600
612
  if (r !== void 0) return r;
613
+ let i = n.idToSent.get(e.id)?.deref();
614
+ if (i !== void 0) return i;
601
615
  if (!("inner" in e) || e.inner === void 0) throw Error(`osra identity: received id=${e.id} with no inner payload and no cached value`);
602
- let i = Z(e.inner, t);
603
- return n.receiveCache.set(e.id, i), i;
616
+ let a = Z(e.inner, t);
617
+ return n.receiveCache.set(e.id, a), Y(a) && n.revivedToId.set(a, e.id), a;
604
618
  }, jt = /* @__PURE__ */ t({
605
619
  box: () => zt,
606
620
  isType: () => Rt,
@@ -621,10 +635,10 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
621
635
  } : e, Rt = (e) => Ft(e), zt = (e, t) => {
622
636
  let n = e.value, r = X(n, t);
623
637
  return {
624
- ...P,
638
+ ...N,
625
639
  type: Mt,
626
640
  inner: r,
627
- degraded: D(t.transport)
641
+ degraded: E(t.transport)
628
642
  };
629
643
  }, Bt = (e, t) => Z(e.inner, t), Vt = /* @__PURE__ */ t({
630
644
  box: () => Ut,
@@ -632,7 +646,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
632
646
  revive: () => Wt,
633
647
  type: () => "map"
634
648
  }), Ht = (e) => e instanceof Map, Ut = (e, t) => ({
635
- ...P,
649
+ ...N,
636
650
  type: "map",
637
651
  entries: Array.from(e, ([e, n]) => [X(e, t), X(n, t)])
638
652
  }), Wt = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), Gt = /* @__PURE__ */ t({
@@ -641,7 +655,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
641
655
  revive: () => Jt,
642
656
  type: () => "set"
643
657
  }), Kt = (e) => e instanceof Set, qt = (e, t) => ({
644
- ...P,
658
+ ...N,
645
659
  type: "set",
646
660
  values: Array.from(e, (e) => X(e, t))
647
661
  }), Jt = (e, t) => new Set(e.values.map((e) => Z(e, t))), Yt = /* @__PURE__ */ t({
@@ -650,7 +664,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
650
664
  revive: () => $t,
651
665
  type: () => Xt
652
666
  }), Xt = "bigint", Zt = (e) => typeof e == "bigint", Qt = (e, t) => ({
653
- ...P,
667
+ ...N,
654
668
  type: Xt,
655
669
  value: e.toString()
656
670
  }), $t = (e, t) => BigInt(e.value), en = /* @__PURE__ */ t({
@@ -663,7 +677,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
663
677
  e.port.postMessage({ kind: "close" });
664
678
  } catch {}
665
679
  }), rn = (e) => e instanceof EventTarget, an = (e, t) => {
666
- let { localPort: n, boxedRemote: r } = q(t), i = /* @__PURE__ */ new Map(), a = () => {
680
+ let { localPort: n, boxedRemote: r } = K(t), i = /* @__PURE__ */ new Map(), a = () => {
667
681
  for (let [t, n] of i) e.removeEventListener(t, n);
668
682
  i.clear(), n.removeEventListener("message", o), n.close();
669
683
  }, o = ({ data: t }) => {
@@ -693,7 +707,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
693
707
  }
694
708
  };
695
709
  return n.addEventListener("message", o), n.start(), {
696
- ...P,
710
+ ...N,
697
711
  type: tn,
698
712
  port: r
699
713
  };
@@ -744,25 +758,25 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
744
758
  }));
745
759
  } });
746
760
  }, dn = (e, t) => {
747
- let n = K(e.port, t);
761
+ let n = G(e.port, t);
748
762
  n.start();
749
763
  let r = new EventTarget(), i = /* @__PURE__ */ new Map();
750
764
  return ln(n, new WeakRef(r)), un(r, n, i), nn.register(r, { port: n }, r), r;
751
765
  }, fn = [
752
766
  jt,
753
- _t,
754
- le,
755
- me,
756
- ye,
757
- Se,
758
- De,
759
- ze,
760
- Ke,
761
- Me,
762
- Qe,
763
- nt,
764
- st,
765
- ft,
767
+ yt,
768
+ ue,
769
+ he,
770
+ be,
771
+ Ce,
772
+ Oe,
773
+ Be,
774
+ qe,
775
+ Ne,
776
+ $e,
777
+ it,
778
+ lt,
779
+ mt,
766
780
  Vt,
767
781
  Gt,
768
782
  Yt,
@@ -771,15 +785,15 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
771
785
  let n = pn(e, t.revivableModules);
772
786
  return n ? n.box(e, t) : e;
773
787
  }, X = (e, t) => {
774
- if (F(e)) return e;
788
+ if (P(e)) return e;
775
789
  let n = pn(e, t.revivableModules);
776
790
  return n ? n.box(e, t) : gn(e, (e) => X(e, t));
777
791
  }, vn = (e, t) => {
778
- if (!F(e)) return e;
792
+ if (!P(e)) return e;
779
793
  let n = mn(e, t.revivableModules);
780
794
  return n ? n.revive(e, t) : e;
781
795
  }, Z = (e, t) => {
782
- if (F(e)) {
796
+ if (P(e)) {
783
797
  let n = mn(e, t.revivableModules);
784
798
  if (n) return n.revive(e, t);
785
799
  }
@@ -809,7 +823,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
809
823
  remoteValue: s.then((e) => Z(e, o))
810
824
  };
811
825
  }, xn = (e) => {
812
- if (O(e.transport) && k(e.transport)) {
826
+ if (D(e.transport) && O(e.transport)) {
813
827
  if (e.protocolEventTarget.addEventListener("message", ({ detail: t }) => {
814
828
  if (t.type === "announce") {
815
829
  if (!t.remoteUuid) {
@@ -871,7 +885,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
871
885
  globalThis.WritableStream,
872
886
  globalThis.TransformStream,
873
887
  globalThis.OffscreenCanvas
874
- ]), wn = (e) => F(e) && e.type === "transfer", $ = (e) => {
888
+ ]), wn = (e) => P(e) && e.type === "transfer", $ = (e) => {
875
889
  let t = [], n = /* @__PURE__ */ new WeakSet(), r = (e, i) => {
876
890
  if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !v(e))) {
877
891
  if (wn(e)) {
@@ -897,21 +911,21 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
897
911
  };
898
912
  return r(e, !1), t;
899
913
  }, Tn = (e) => ({
900
- isJson: "isJson" in e && e.isJson !== void 0 ? e.isJson : D(e),
901
- ...A(e) ? e : {
914
+ isJson: "isJson" in e && e.isJson !== void 0 ? e.isJson : E(e),
915
+ ...k(e) ? e : {
902
916
  emit: e,
903
917
  receive: e
904
918
  }
905
919
  }), En = (e) => [...fn.filter((t) => !(e ?? []).some((e) => e.type === t.type)), ...e ?? []], Dn = [yn], On = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: l, uuid: u, remoteUuid: d }) => {
906
920
  let f = Tn(t), p = En(l), m = /* @__PURE__ */ new Map(), { promise: h, resolve: g } = Promise.withResolvers(), _ = u ?? globalThis.crypto.randomUUID(), v = (e) => {
907
- if (c?.aborted || !O(f)) return;
921
+ if (c?.aborted || !D(f)) return;
908
922
  let t = {
909
923
  [n]: o,
910
924
  name: i,
911
925
  uuid: _,
912
926
  ...e
913
927
  };
914
- ce(f, t, s, $(t));
928
+ le(f, t, s, $(t));
915
929
  }, y = Sn(), b = {
916
930
  transport: f,
917
931
  value: e,
@@ -924,7 +938,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
924
938
  resolveRemoteValue: g,
925
939
  createConnectionEventTarget: Sn
926
940
  };
927
- k(f) && se({
941
+ O(f) && ce({
928
942
  listener: (e, t) => {
929
943
  e.uuid !== _ && y.dispatchEvent(new CustomEvent("message", { detail: e }));
930
944
  },
@@ -937,6 +951,6 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
937
951
  return h;
938
952
  }, kn = async (e, t) => On(e, t);
939
953
  //#endregion
940
- export { P as BoxBase, H as EventChannel, V as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, te as assertEmitTransport, ne as assertReceiveTransport, _n as box, L as boxBuffer, M as checkOsraMessageKey, Dn as connections, Sn as createTypedEventTarget, fn as defaultRevivableModules, kn as expose, $ as getTransferableObjects, oe as getWebExtensionGlobal, j as getWebExtensionRuntime, wt as identity, xn as init, _ as instanceOfAny, v as isClonable, re as isCustomEmitTransport, ie as isCustomReceiveTransport, A as isCustomTransport, p as isDedicatedWorker, T as isEmitJsonOnlyTransport, O as isEmitTransport, D as isJsonOnlyTransport, g as isOsraMessage, E as isReceiveJsonOnlyTransport, k as isReceiveTransport, F as isRevivableBox, d as isServiceWorkerContainer, m as isSharedWorker, y as isTransferable, ae as isTransport, l as isTypedArray, S as isWebExtensionOnConnect, C as isWebExtensionOnMessage, x as isWebExtensionPort, b as isWebExtensionRuntime, u as isWebSocket, w as isWindow, f as isWorker, En as mergeRevivableModules, Tn as normalizeTransport, X as recursiveBox, Z as recursiveRevive, se as registerOsraMessageListener, vn as revive, R as reviveBuffer, ce as sendOsraMessage, I as serializeError, Q as startBidirectionalConnection, On as startConnections, Lt as transfer, bn as type, s as typedArrayToType, c as typedArrayTypeToTypedArrayConstructor };
954
+ export { N as BoxBase, V as EventChannel, B as EventPort, i as OSRA_BOX, r as OSRA_DEFAULT_KEY, n as OSRA_KEY, ne as assertEmitTransport, re as assertReceiveTransport, _n as box, I as boxBuffer, j as checkOsraMessageKey, Dn as connections, Sn as createTypedEventTarget, fn as defaultRevivableModules, kn as expose, $ as getTransferableObjects, se as getWebExtensionGlobal, A as getWebExtensionRuntime, wt as identity, xn as init, _ as instanceOfAny, v as isClonable, ie as isCustomEmitTransport, ae as isCustomReceiveTransport, k as isCustomTransport, p as isDedicatedWorker, T as isEmitJsonOnlyTransport, D as isEmitTransport, E as isJsonOnlyTransport, g as isOsraMessage, te as isReceiveJsonOnlyTransport, O as isReceiveTransport, P as isRevivableBox, d as isServiceWorkerContainer, m as isSharedWorker, y as isTransferable, oe as isTransport, l as isTypedArray, S as isWebExtensionOnConnect, C as isWebExtensionOnMessage, x as isWebExtensionPort, b as isWebExtensionRuntime, u as isWebSocket, w as isWindow, f as isWorker, En as mergeRevivableModules, Tn as normalizeTransport, X as recursiveBox, Z as recursiveRevive, ce as registerOsraMessageListener, vn as revive, L as reviveBuffer, le as sendOsraMessage, F as serializeError, Q as startBidirectionalConnection, On as startConnections, Lt as transfer, bn as type, s as typedArrayToType, c as typedArrayTypeToTypedArrayConstructor };
941
955
 
942
956
  //# sourceMappingURL=index.js.map