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