osra 0.3.2 → 0.4.0

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
@@ -6,7 +6,7 @@ var e = Object.defineProperty, t = (t, n) => {
6
6
  enumerable: !0
7
7
  });
8
8
  return n || e(r, Symbol.toStringTag, { value: "Module" }), r;
9
- }, n = "__OSRA_KEY__", r = "__OSRA_DEFAULT_KEY__", i = "__OSRA_BOX__", a = {
9
+ }, n = "__OSRA_KEY__", r = "__OSRA_DEFAULT_KEY__", i = "__OSRA_BOX__", a = globalThis.Float16Array, o = {
10
10
  Int8Array,
11
11
  Uint8Array,
12
12
  Uint8ClampedArray,
@@ -14,36 +14,45 @@ var e = Object.defineProperty, t = (t, n) => {
14
14
  Uint16Array,
15
15
  Int32Array,
16
16
  Uint32Array,
17
- Float16Array,
17
+ Float16Array: a,
18
18
  Float32Array,
19
19
  Float64Array,
20
20
  BigInt64Array,
21
21
  BigUint64Array
22
- }, o = Object.values(a), s = (e) => {
22
+ }, s = Object.values(o), c = (e) => {
23
23
  let t = e.constructor.name;
24
- if (!(t in a)) throw Error("Unknown typed array type");
24
+ if (!(t in o)) throw Error("Unknown typed array type");
25
25
  return t;
26
- }, c = (e) => {
27
- let t = a[e];
26
+ }, l = (e) => {
27
+ let t = o[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, g = (e) => !!e && typeof e == "object" && "__OSRA_KEY__" in e && !!e.__OSRA_KEY__, _ = (e, t) => {
30
+ }, u = (e) => s.some((t) => !!t && e instanceof t), d = (e) => e instanceof WebSocket, f = (e) => !!globalThis.ServiceWorkerContainer && e instanceof ServiceWorkerContainer, p = (e) => !!globalThis.Worker && e instanceof Worker, m = (e) => !!globalThis.DedicatedWorkerGlobalScope && e instanceof DedicatedWorkerGlobalScope, h = (e) => !!globalThis.SharedWorker && e instanceof SharedWorker, g = (e) => e instanceof MessagePort, _ = (e) => !!e && typeof e == "object" && "__OSRA_KEY__" in e && !!e.__OSRA_KEY__, v = (e, t) => {
31
31
  for (let n of t) if (n && e instanceof n) return !0;
32
32
  return !1;
33
- }, v = (e) => _(e, [globalThis.SharedArrayBuffer]), y = (e) => _(e, [
33
+ }, y = (e) => v(e, [globalThis.SharedArrayBuffer]), b = (e) => v(e, [
34
34
  globalThis.ArrayBuffer,
35
35
  globalThis.MessagePort,
36
36
  globalThis.ReadableStream,
37
37
  globalThis.WritableStream,
38
38
  globalThis.TransformStream,
39
- globalThis.ImageBitmap
40
- ]), b = (e) => {
41
- let t = j();
39
+ globalThis.ImageBitmap,
40
+ globalThis.OffscreenCanvas,
41
+ globalThis.AudioData,
42
+ globalThis.VideoFrame,
43
+ globalThis.MediaSourceHandle,
44
+ globalThis.MediaStreamTrack,
45
+ globalThis.MIDIAccess,
46
+ globalThis.RTCDataChannel,
47
+ globalThis.WebTransportReceiveStream,
48
+ globalThis.WebTransportSendStream
49
+ ]), x = (e) => {
50
+ let t = se();
42
51
  return t ? e === t : !1;
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();
52
+ }, S = (e, t = !1) => !e || typeof e != "object" || T(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" && !T(e) && "addListener" in e && "hasListener" in e && "removeListener" in e, C = (e) => {
53
+ let t = se();
45
54
  return t ? e === t.onConnect || e === t.onConnectExternal : !1;
46
- }, C = (e) => ee(e), w = (e) => {
55
+ }, w = (e) => ee(e), T = (e) => {
47
56
  if (!e || typeof e != "object") return !1;
48
57
  try {
49
58
  return "window" in e && e.window === e;
@@ -54,23 +63,23 @@ var e = Object.defineProperty, t = (t, n) => {
54
63
  return !1;
55
64
  }
56
65
  }
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) {
66
+ }, te = (e) => d(e) || S(e) || x(e), E = (e) => d(e) || S(e) || C(e) || w(e) || x(e), D = (e) => !!e && typeof e == "object" && "isJson" in e && e.isJson === !0 || te(e) || E(e), O = (e) => T(e) || te(e) || f(e) || p(e) || m(e) || h(e) || g(e) || A(e);
67
+ function ne(e) {
59
68
  if (!O(e)) throw Error("Transport is not emitable");
60
69
  }
61
- var k = (e) => w(e) || E(e) || d(e) || f(e) || p(e) || m(e) || h(e) || ie(e);
62
- function ne(e) {
70
+ var k = (e) => T(e) || E(e) || f(e) || p(e) || m(e) || h(e) || g(e) || ie(e);
71
+ function re(e) {
63
72
  if (!k(e)) throw Error("Transport is not receiveable");
64
73
  }
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;
74
+ var A = (e) => !e || typeof e != "object" || T(e) || !("emit" in e) ? !1 : O(e.emit) || typeof e.emit == "function", ie = (e) => !e || typeof e != "object" || T(e) || !("receive" in e) ? !1 : k(e.receive) || typeof e.receive == "function", j = (e) => A(e) || ie(e), ae = (e) => O(e) || k(e) || j(e) || D(e), oe = () => globalThis.browser ?? globalThis.chrome, se = () => oe()?.runtime, M = (e, t) => _(e) && e.__OSRA_KEY__ === t, ce = (e, t) => e?.addEventListener("abort", t, { once: !0 }), le = ({ listener: e, transport: t, remoteName: r, key: i = n, unregisterSignal: a }) => {
75
+ let o = j(t) ? t.receive : t;
67
76
  if (typeof o == "function") {
68
77
  o((t, n) => {
69
78
  M(t, i) && (r && t.name !== r || e(t, n));
70
79
  });
71
80
  return;
72
81
  }
73
- if (b(o) || x(o) || S(o) || C(o)) {
82
+ if (x(o) || S(o) || C(o) || w(o)) {
74
83
  let t = (t, n) => {
75
84
  let o = (t, a) => {
76
85
  M(t, i) && (r && t.name !== r || e(t, {
@@ -78,13 +87,13 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
78
87
  sender: a
79
88
  }));
80
89
  };
81
- t.addListener(o), N(a, () => t.removeListener(o));
90
+ t.addListener(o), ce(a, () => t.removeListener(o));
82
91
  };
83
- if (b(o)) t(o.onMessage);
84
- else if (S(o)) {
92
+ if (x(o)) t(o.onMessage);
93
+ else if (C(o)) {
85
94
  let e = (e) => t(e.onMessage, e);
86
- o.addListener(e), N(a, () => o.removeListener(e));
87
- } else C(o) ? t(o) : t(o.onMessage);
95
+ o.addListener(e), ce(a, () => o.removeListener(e));
96
+ } else w(o) ? t(o) : t(o.onMessage);
88
97
  return;
89
98
  }
90
99
  let s = (t) => {
@@ -93,58 +102,66 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
93
102
  source: t.source
94
103
  }));
95
104
  };
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;
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,
105
+ o.addEventListener("message", s), ce(a, () => o.removeEventListener("message", s));
106
+ }, ue = (e, t, n = "*", r = []) => {
107
+ let i = j(e) ? e.emit : e;
108
+ typeof i == "function" ? i(t, r) : T(i) ? i.postMessage(t, n, r) : S(i) ? i.postMessage(t) : x(i) ? i.sendMessage(t) : d(i) ? i.send(JSON.stringify(t)) : h(i) ? i.port.postMessage(t, r) : i.postMessage(t, r);
109
+ }, 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) => D(t.transport) ? { base64Buffer: new Uint8Array(e).toBase64() } : { arrayBuffer: e }, de = (e) => "arrayBuffer" in e ? e.arrayBuffer : Uint8Array.fromBase64(e.base64Buffer).buffer, fe = /* @__PURE__ */ t({
110
+ box: () => he,
111
+ isType: () => me,
112
+ revive: () => ge,
113
+ type: () => pe
114
+ }), pe = "arrayBuffer", me = (e) => e instanceof ArrayBuffer, he = (e, t) => ({
115
+ ...N,
116
+ type: pe,
117
+ ...I(e, t)
118
+ }), ge = (e, t) => de(e), _e = /* @__PURE__ */ t({
119
+ box: () => be,
120
+ isType: () => ye,
121
+ revive: () => xe,
122
+ type: () => ve
123
+ }), ve = "date", ye = (e) => e instanceof Date, be = (e, t) => ({
124
+ ...N,
125
+ type: ve,
117
126
  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,
126
- entries: [...e.entries()]
127
- }), B = (e, t) => new Headers(e.entries), Se = /* @__PURE__ */ t({
127
+ }), xe = (e, t) => new Date(e.ISOString), Se = /* @__PURE__ */ t({
128
128
  box: () => Te,
129
129
  isType: () => we,
130
130
  revive: () => Ee,
131
131
  type: () => Ce
132
- }), Ce = "error", we = (e) => e instanceof Error, Te = (e, t) => ({
133
- ...P,
132
+ }), Ce = "headers", we = (e) => e instanceof Headers, Te = (e, t) => ({
133
+ ...N,
134
134
  type: Ce,
135
- message: e.message,
136
- stack: e.stack || e.toString()
137
- }), Ee = (e, t) => Error(e.message, { cause: e.stack }), De = /* @__PURE__ */ t({
135
+ entries: [...e.entries()]
136
+ }), Ee = (e, t) => new Headers(e.entries), De = /* @__PURE__ */ t({
138
137
  box: () => Ae,
139
138
  isType: () => ke,
140
139
  revive: () => je,
141
140
  type: () => Oe
142
- }), Oe = "typedArray", ke = l, Ae = (e, t) => ({
143
- ...P,
144
- type: Oe,
145
- typedArrayType: s(e),
146
- ...L(e.buffer, t)
147
- }), je = (e, t) => new (c(e.typedArrayType))(R(e)), V = class extends EventTarget {
141
+ }), Oe = "error", ke = (e) => e instanceof Error, Ae = (e, t) => {
142
+ let n = "cause" in e && e.cause !== void 0;
143
+ return {
144
+ ...N,
145
+ type: Oe,
146
+ name: e.name,
147
+ message: e.message,
148
+ stack: e.stack || e.toString(),
149
+ ...n ? { cause: X(e.cause, t) } : {}
150
+ };
151
+ }, je = (e, t) => {
152
+ let n = e.cause === void 0 ? void 0 : Z(e.cause, t), r = n === void 0 ? Error(e.message) : Error(e.message, { cause: n });
153
+ return e.name && (r.name = e.name), e.stack && (r.stack = e.stack), r;
154
+ }, Me = /* @__PURE__ */ t({
155
+ box: () => Fe,
156
+ isType: () => Pe,
157
+ revive: () => Ie,
158
+ type: () => Ne
159
+ }), Ne = "typedArray", Pe = u, Fe = (e, t) => ({
160
+ ...N,
161
+ type: Ne,
162
+ typedArrayType: c(e),
163
+ ...I(e.buffer, t)
164
+ }), Ie = (e, t) => new (l(e.typedArrayType))(de(e)), L = class extends EventTarget {
148
165
  addEventListener(e, t, n) {
149
166
  super.addEventListener(e, t, n);
150
167
  }
@@ -184,81 +201,83 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
184
201
  close() {
185
202
  this._closed || (this._closed = !0, this._queue.length = 0, this._onClose?.());
186
203
  }
187
- }, H = class {
204
+ }, R = class {
188
205
  port1;
189
206
  port2;
190
207
  constructor() {
191
- let e = new V(), t = new V();
208
+ let e = new L(), t = new L();
192
209
  e._peer = t, t._peer = e, this.port1 = e, this.port2 = t;
193
210
  }
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) => {
202
- e.sendMessage({
203
- type: "message-port-close",
204
- remoteUuid: e.remoteUuid,
205
- portId: e.portId
206
- }), e.cleanup();
207
- }), W = "messagePort", Ne = /* @__PURE__ */ new WeakMap(), Pe = (e) => {
208
- let t = Ne.get(e);
211
+ }, Le = new FinalizationRegistry((e) => {
212
+ try {
213
+ e();
214
+ } catch {}
215
+ }), z = (e, t) => {
216
+ let n = {};
217
+ return Le.register(e, t, n), () => Le.unregister(n);
218
+ }, Re = /* @__PURE__ */ t({
219
+ box: () => H,
220
+ createRevivableChannel: () => W,
221
+ init: () => Ve,
222
+ isType: () => He,
223
+ revive: () => U,
224
+ type: () => B
225
+ }), B = "messagePort", ze = /* @__PURE__ */ new WeakMap(), Be = (e) => {
226
+ let t = ze.get(e);
209
227
  if (!t) throw Error("osra message-port: connection state missing; did init() run?");
210
228
  return t;
211
- }, Fe = (e) => {
229
+ }, Ve = (e) => {
212
230
  let t = { portHandlers: /* @__PURE__ */ new Map() };
213
- Ne.set(e, t), e.eventTarget.addEventListener("message", ({ detail: e }) => {
231
+ ze.set(e, t), e.eventTarget.addEventListener("message", ({ detail: e }) => {
214
232
  e.type !== "message" && e.type !== "message-port-close" || t.portHandlers.get(e.portId)?.(e);
215
233
  });
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));
221
- }, c = (e) => {
222
- if (e.type === "message-port-close") {
223
- s(), i.close();
224
- return;
225
- }
226
- let n = Z(e.data, t);
227
- i.postMessage(n, $(n));
228
- };
229
- function l({ data: e }) {
230
- t.sendMessage({
231
- type: "message",
232
- remoteUuid: t.remoteUuid,
233
- data: X(e, t),
234
- portId: a
235
- });
234
+ }, He = (e) => e instanceof MessagePort || e instanceof L, V = (e, t) => {
235
+ try {
236
+ e.sendMessage({
237
+ type: "message-port-close",
238
+ remoteUuid: e.remoteUuid,
239
+ portId: t
240
+ });
241
+ } catch {}
242
+ }, Ue = (e, t, n) => {
243
+ n ? e.postMessage(t) : e.postMessage(t, $(t));
244
+ }, H = (e, t, n) => {
245
+ let r = e instanceof L;
246
+ if (!r && !D(t.transport)) return {
247
+ ...N,
248
+ type: B,
249
+ port: e,
250
+ ...n?.autoBox ? { autoBox: !0 } : {}
251
+ };
252
+ let { portHandlers: i } = Be(t), a = e, o = globalThis.crypto.randomUUID(), s = !1, c = () => {
253
+ s || (s = !0, i.delete(o), d?.(), a.removeEventListener("message", u));
254
+ }, l = (e) => {
255
+ if (e.type === "message-port-close") {
256
+ c(), a.close();
257
+ return;
236
258
  }
237
- return U.register(i, {
238
- sendMessage: t.sendMessage,
259
+ Ue(a, Z(e.data, t), !1);
260
+ };
261
+ function u({ data: e }) {
262
+ t.sendMessage({
263
+ type: "message",
239
264
  remoteUuid: t.remoteUuid,
240
- portId: a,
241
- cleanup: s
242
- }, i), i.addEventListener("message", l), i.start(), i instanceof V && (i._onClose = () => {
243
- o || (t.sendMessage({
244
- type: "message-port-close",
245
- remoteUuid: t.remoteUuid,
246
- portId: a
247
- }), s());
248
- }), n.set(a, c), {
249
- ...P,
250
- type: W,
251
- portId: a,
252
- synthetic: r
253
- };
265
+ data: X(e, t),
266
+ portId: o
267
+ });
254
268
  }
255
- return {
256
- ...P,
257
- type: W,
258
- port: e,
259
- ...n?.autoBox ? { autoBox: !0 } : {}
269
+ let d = z(a, () => {
270
+ V(t, o), c();
271
+ });
272
+ return a.addEventListener("message", u), a.start(), a instanceof L && (a._onClose = () => {
273
+ s || (V(t, o), c());
274
+ }), i.set(o, l), {
275
+ ...N,
276
+ type: B,
277
+ portId: o,
278
+ synthetic: r
260
279
  };
261
- }, K = (e, t) => "port" in e ? e.autoBox ? Le(e.port, t) : e.port : Re(e.portId, t, e.synthetic), Le = (e, t) => {
280
+ }, U = (e, t) => "port" in e ? e.autoBox ? We(e.port, t) : e.port : Ge(e.portId, t, e.synthetic), We = (e, t) => {
262
281
  let n = new EventTarget(), r = ({ data: e }) => {
263
282
  n.dispatchEvent(new MessageEvent("message", { data: Z(e, t) }));
264
283
  };
@@ -268,186 +287,138 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
268
287
  }, n.start = () => e.start(), n.close = () => {
269
288
  e.removeEventListener("message", r), e.close();
270
289
  }, n;
271
- }, q = (e) => {
290
+ }, W = (e) => {
272
291
  if (D(e.transport)) {
273
- let { port1: t, port2: n } = new H();
292
+ let { port1: t, port2: n } = new R();
274
293
  return {
275
294
  localPort: t,
276
- boxedRemote: G(n, e)
295
+ boxedRemote: H(n, e)
277
296
  };
278
297
  }
279
298
  let { port1: t, port2: n } = new MessageChannel();
280
299
  return {
281
- localPort: Le(t, e),
282
- boxedRemote: G(n, e, { autoBox: !0 })
300
+ localPort: We(t, e),
301
+ boxedRemote: H(n, e, { autoBox: !0 })
283
302
  };
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 = () => {
286
- if (s) return;
287
- s = !0, r.delete(e), a.removeEventListener("message", u), a.close();
288
- let t = o.deref();
289
- t && U.unregister(t);
290
- }, l = (e) => {
303
+ }, Ge = (e, t, n) => {
304
+ let { portHandlers: r } = Be(t), { port1: i, port2: a } = n ? new R() : new MessageChannel(), o = new WeakRef(i), s = new WeakRef(a), c = !1, l = () => {
305
+ if (c) return;
306
+ c = !0, r.delete(e);
307
+ let t = s.deref();
308
+ t?.removeEventListener("message", d), t?.close(), f?.();
309
+ }, u = (e) => {
291
310
  if (e.type === "message-port-close") {
292
- c(), o.deref()?.close();
311
+ l(), o.deref()?.close();
293
312
  return;
294
313
  }
295
314
  if (!o.deref()) {
296
- c();
315
+ l();
297
316
  return;
298
317
  }
299
- let r = Z(e.data, t);
300
- n ? a.postMessage(r) : a.postMessage(r, $(r));
301
- }, u = ({ data: n }) => {
318
+ let r = s.deref();
319
+ r && Ue(r, Z(e.data, t), n);
320
+ }, d = ({ data: n }) => {
302
321
  t.sendMessage({
303
322
  type: "message",
304
323
  remoteUuid: t.remoteUuid,
305
324
  data: X(n, t),
306
325
  portId: e
307
326
  });
327
+ }, f = z(i, () => {
328
+ V(t, e), l();
329
+ });
330
+ return i instanceof L && (i._onClose = () => {
331
+ c || (V(t, e), l());
332
+ }), a.addEventListener("message", d), a.start(), r.set(e, u), i;
333
+ }, Ke = /* @__PURE__ */ t({
334
+ box: () => Ze,
335
+ isType: () => Xe,
336
+ revive: () => Qe,
337
+ type: () => qe
338
+ }), qe = "promise", Je = (e) => e instanceof Promise, Ye = /* @__PURE__ */ new Set(), Xe = (e) => e instanceof Promise, Ze = (e, t) => {
339
+ if (!Je(e)) throw TypeError("Expected Promise");
340
+ let { localPort: n, boxedRemote: r } = W(t), i = (e) => {
341
+ n.postMessage(e), n.close();
308
342
  };
309
- return U.register(i, {
310
- sendMessage: t.sendMessage,
311
- remoteUuid: t.remoteUuid,
312
- portId: e,
313
- cleanup: c
314
- }, i), i instanceof V && (i._onClose = () => {
315
- s || (t.sendMessage({
316
- type: "message-port-close",
317
- remoteUuid: t.remoteUuid,
318
- portId: e
319
- }), c());
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) => {
329
- r.postMessage(e), r.close();
330
- };
331
- return n.then((e) => a({
343
+ return e.then((e) => i({
332
344
  type: "resolve",
333
345
  data: e
334
- })).catch((e) => a({
346
+ })).catch((e) => i({
335
347
  type: "reject",
336
- error: I(e)
348
+ error: F(e)
337
349
  })), {
338
- ...P,
339
- type: Be,
340
- port: i
350
+ ...N,
351
+ type: qe,
352
+ port: r
341
353
  };
342
- }, Ge = (e, t) => {
343
- let n = K(e.port, t);
344
- return He.add(n), new Promise((e, t) => {
354
+ }, Qe = (e, t) => {
355
+ let n = U(e.port, t);
356
+ return Ye.add(n), new Promise((e, t) => {
345
357
  n.addEventListener("message", ({ data: r }) => {
346
- r.type === "resolve" ? e(r.data) : t(r.error), n.close(), He.delete(n);
358
+ r.type === "resolve" ? e(r.data) : t(r.error), n.close(), Ye.delete(n);
347
359
  }, { once: !0 }), n.start();
348
360
  });
349
- }, Ke = /* @__PURE__ */ t({
350
- box: () => Xe,
351
- isType: () => Ye,
352
- revive: () => Ze,
353
- type: () => qe
354
- }), qe = "function", Je = new FinalizationRegistry((e) => {
355
- try {
356
- e.port.postMessage({ __osra_close__: !0 });
357
- } catch {}
358
- try {
359
- e.port.close();
360
- } catch {}
361
- for (let { returnLocal: t, reject: n } of e.inFlight) {
362
- try {
363
- n(/* @__PURE__ */ Error("osra function was garbage collected before result arrived"));
364
- } catch {}
365
- J.delete(t);
366
- try {
367
- t.close();
368
- } catch {}
369
- }
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 = () => {
373
- n.close();
374
- };
375
- return n.addEventListener("message", ({ data: t }) => {
376
- if (!Array.isArray(t)) {
377
- i();
378
- return;
379
- }
380
- let [n, r] = t;
381
- (async () => e(...r))().then((e) => {
361
+ }, $e = /* @__PURE__ */ t({
362
+ box: () => G,
363
+ isType: () => nt,
364
+ revive: () => K,
365
+ type: () => et
366
+ }), et = "function", tt = /* @__PURE__ */ new Set(), nt = (e) => typeof e == "function", G = (e, t) => {
367
+ let { port1: n, port2: r } = new R();
368
+ return n.addEventListener("message", ({ data: n }) => {
369
+ let [r, i] = n;
370
+ (async () => {
371
+ let n;
382
372
  try {
383
- n.postMessage({
373
+ n = {
384
374
  __osra_ok__: !0,
385
- value: e
386
- });
375
+ value: await e(...i)
376
+ };
387
377
  } catch (e) {
378
+ n = {
379
+ __osra_err__: !0,
380
+ error: F(e)
381
+ };
382
+ }
383
+ let a = X(n, t);
384
+ r.postMessage(a, $(a)), queueMicrotask(() => {
388
385
  try {
389
- n.postMessage({
390
- __osra_err__: !0,
391
- error: I(e)
392
- });
386
+ r.close();
393
387
  } catch {}
394
- }
395
- }, (e) => {
396
- try {
397
- n.postMessage({
398
- __osra_err__: !0,
399
- error: I(e)
400
- });
401
- } catch {}
402
- }).finally(() => {
403
- queueMicrotask(() => n.close());
404
- });
388
+ });
389
+ })();
405
390
  }), n.start(), {
406
- ...P,
407
- type: qe,
408
- port: r
391
+ ...N,
392
+ type: et,
393
+ port: H(r, t)
409
394
  };
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);
414
- let c = {
415
- returnLocal: o,
416
- reject: a
417
- };
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);
420
- }, { once: !0 }), o.start();
421
- try {
422
- n.postMessage([s, e]);
423
- } catch (e) {
424
- J.delete(o), r.delete(c);
425
- try {
426
- o.close();
427
- } catch {}
428
- a(e);
429
- }
430
- });
431
- return Je.register(i, {
432
- port: n,
433
- inFlight: r
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();
395
+ }, K = (e, t) => {
396
+ let n = U(e.port, t);
397
+ return ((...e) => new Promise((r, i) => {
398
+ let { port1: a, port2: o } = new R();
399
+ tt.add(a), a.addEventListener("message", ({ data: e }) => {
400
+ let t = e;
401
+ "__osra_ok__" in t ? r(t.value) : i(t.error), a.close(), tt.delete(a);
402
+ }, { once: !0 }), a.start();
403
+ let s = X([o, e], t);
404
+ n.postMessage(s, $(s));
405
+ }));
406
+ }, rt = /* @__PURE__ */ t({
407
+ box: () => q,
408
+ isType: () => at,
409
+ revive: () => ot,
410
+ type: () => it
411
+ }), it = "readableStream", at = (e) => e instanceof ReadableStream, q = (e, t) => {
412
+ let { localPort: n, boxedRemote: r } = W(t), i = e.getReader();
442
413
  return n.addEventListener("message", ({ data: e }) => {
443
414
  "type" in e && e.type === "pull" ? n.postMessage(i.read()) : (i.cancel(), n.close());
444
415
  }), n.start(), {
445
- ...P,
446
- type: $e,
416
+ ...N,
417
+ type: it,
447
418
  port: r
448
419
  };
449
- }, tt = (e, t) => {
450
- let n = K(e.port, t);
420
+ }, ot = (e, t) => {
421
+ let n = U(e.port, t);
451
422
  return n.start(), new ReadableStream({
452
423
  pull: (e) => new Promise((t, r) => {
453
424
  n.addEventListener("message", ({ data: n }) => {
@@ -460,65 +431,65 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
460
431
  n.postMessage({ type: "cancel" }), queueMicrotask(() => n.close());
461
432
  }
462
433
  });
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);
434
+ }, st = /* @__PURE__ */ t({
435
+ box: () => ut,
436
+ isType: () => lt,
437
+ revive: () => dt,
438
+ type: () => ct
439
+ }), ct = "abortSignal", lt = (e) => e instanceof AbortSignal, ut = (e, t) => {
440
+ let { localPort: n, boxedRemote: r } = W(t);
470
441
  return e.aborted ? n.close() : e.addEventListener("abort", () => {
471
442
  n.postMessage({
472
443
  type: "abort",
473
444
  reason: e.reason
474
445
  }), n.close();
475
446
  }, { once: !0 }), {
476
- ...P,
477
- type: rt,
447
+ ...N,
448
+ type: ct,
478
449
  aborted: e.aborted,
479
450
  reason: e.aborted ? X(e.reason, t) : void 0,
480
451
  port: r
481
452
  };
482
- }, ot = (e, t) => {
453
+ }, dt = (e, t) => {
483
454
  let n = new AbortController();
484
455
  if (e.aborted) return n.abort(Z(e.reason, t)), n.signal;
485
- let r = K(e.port, t);
456
+ let r = U(e.port, t);
486
457
  return r.start(), r.addEventListener("message", ({ data: e }) => {
487
458
  e.type === "abort" && (n.abort(Z(e.reason, t)), r.close());
488
459
  }), 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,
460
+ }, ft = /* @__PURE__ */ t({
461
+ box: () => ht,
462
+ isType: () => mt,
463
+ revive: () => gt,
464
+ type: () => pt
465
+ }), pt = "response", mt = (e) => e instanceof Response, ht = (e, t) => ({
466
+ ...N,
467
+ type: pt,
497
468
  status: e.status,
498
469
  statusText: e.statusText,
499
- headers: z(e.headers, t),
500
- body: e.body ? Y(e.body, t) : null,
470
+ headers: Te(e.headers, t),
471
+ body: e.body ? q(e.body, t) : null,
501
472
  url: e.url,
502
473
  redirected: e.redirected
503
- }), dt = (e, t) => {
504
- let n = B(e.headers, t), r = e.body ? tt(e.body, t) : null;
474
+ }), gt = (e, t) => {
475
+ let n = Ee(e.headers, t), r = e.body ? ot(e.body, t) : null;
505
476
  return new Response(r, {
506
477
  status: e.status,
507
478
  statusText: e.statusText,
508
479
  headers: n
509
480
  });
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,
481
+ }, _t = /* @__PURE__ */ t({
482
+ box: () => bt,
483
+ isType: () => yt,
484
+ revive: () => xt,
485
+ type: () => vt
486
+ }), vt = "request", yt = (e) => e instanceof Request, bt = (e, t) => ({
487
+ ...N,
488
+ type: vt,
518
489
  method: e.method,
519
490
  url: e.url,
520
- headers: z(e.headers, t),
521
- body: e.body ? Y(e.body, t) : null,
491
+ headers: Te(e.headers, t),
492
+ body: e.body ? q(e.body, t) : null,
522
493
  credentials: e.credentials,
523
494
  cache: e.cache,
524
495
  redirect: e.redirect,
@@ -526,8 +497,8 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
526
497
  referrerPolicy: e.referrerPolicy,
527
498
  integrity: e.integrity,
528
499
  keepalive: e.keepalive
529
- }), gt = (e, t) => {
530
- let n = B(e.headers, t), r = e.body ? tt(e.body, t) : null;
500
+ }), xt = (e, t) => {
501
+ let n = Ee(e.headers, t), r = e.body ? ot(e.body, t) : null;
531
502
  return new Request(e.url, {
532
503
  method: e.method,
533
504
  headers: n,
@@ -541,27 +512,34 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
541
512
  keepalive: e.keepalive,
542
513
  duplex: "half"
543
514
  });
544
- }, _t = /* @__PURE__ */ t({
545
- box: () => kt,
546
- identity: () => wt,
547
- isType: () => Ot,
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) => {
551
- if (xt(e)) return e;
552
- let t = St.get(e);
515
+ }, St = /* @__PURE__ */ t({
516
+ box: () => Pt,
517
+ boxByReference: () => Ft,
518
+ identity: () => Y,
519
+ isType: () => Mt,
520
+ revive: () => It,
521
+ type: () => J
522
+ }), J = "identity", Ct = Symbol.for("osra.identity"), wt = (e) => e !== null && (typeof e == "object" || typeof e == "function"), Tt = (e) => {
523
+ if (e === null) return !1;
524
+ let t = typeof e;
525
+ return t === "object" || t === "function" ? !0 : t === "symbol" ? Symbol.keyFor(e) === void 0 : !1;
526
+ }, Et = (e) => wt(e) && Ct in e && e[Ct] === !0, Dt = /* @__PURE__ */ new WeakMap(), Ot = (e) => {
527
+ if (Et(e)) return e;
528
+ let t = Dt.get(e);
553
529
  if (t) return t;
554
530
  let n = {
555
- [yt]: !0,
531
+ [Ct]: !0,
556
532
  value: e
557
533
  };
558
- return St.set(e, n), n;
559
- }, wt = (e) => bt(e) ? Ct(e) : e, Tt = /* @__PURE__ */ new WeakMap(), Et = (e) => {
560
- let t = Tt.get(e);
534
+ return Dt.set(e, n), n;
535
+ }, Y = (e) => wt(e) ? Ot(e) : e, kt = /* @__PURE__ */ new WeakMap(), At = (e) => {
536
+ let t = kt.get(e);
561
537
  if (t) return t;
562
- let n = {
563
- sendIds: /* @__PURE__ */ new WeakMap(),
538
+ let n = /* @__PURE__ */ new WeakMap(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new WeakMap(), o = {
539
+ sendIds: n,
540
+ idToSent: r,
564
541
  sendRegistry: new FinalizationRegistry((t) => {
542
+ r.delete(t);
565
543
  try {
566
544
  e.sendMessage({
567
545
  type: "identity-dispose",
@@ -570,44 +548,79 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
570
548
  });
571
549
  } catch {}
572
550
  }),
573
- receiveCache: /* @__PURE__ */ new Map(),
551
+ receiveCache: i,
552
+ revivedToId: a,
574
553
  listenerInstalled: !1
575
554
  };
576
- return Tt.set(e, n), Dt(e, n), n;
577
- }, Dt = (e, t) => {
555
+ return kt.set(e, o), jt(e, o), o;
556
+ }, jt = (e, t) => {
578
557
  t.listenerInstalled || (t.listenerInstalled = !0, e.eventTarget.addEventListener("message", ({ detail: e }) => {
579
- e?.type === "identity-dispose" && t.receiveCache.delete(e.id);
558
+ if (e?.type !== "identity-dispose") return;
559
+ let n = t.receiveCache.get(e.id);
560
+ t.receiveCache.delete(e.id), n !== void 0 && Tt(n) && t.revivedToId.delete(n);
580
561
  }));
581
- }, Ot = (e) => xt(e), kt = (e, t) => {
582
- let n = Et(t), r = e.value, i = bt(r) ? r : void 0;
583
- if (i !== void 0) {
584
- let e = n.sendIds.get(i);
585
- if (e !== void 0) return {
586
- ...P,
587
- type: vt,
588
- id: e
589
- };
590
- }
591
- 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,
562
+ }, Mt = (e) => Et(e), Nt = (e, t) => {
563
+ let n = t.sendIds.get(e);
564
+ if (n !== void 0) return {
565
+ id: n,
566
+ isExisting: !0
567
+ };
568
+ let r = t.revivedToId.get(e);
569
+ if (r !== void 0) return {
570
+ id: r,
571
+ isExisting: !0
572
+ };
573
+ let i = globalThis.crypto.randomUUID();
574
+ return t.sendIds.set(e, i), t.idToSent.set(i, new WeakRef(e)), t.sendRegistry.register(e, i), {
575
+ id: i,
576
+ isExisting: !1
577
+ };
578
+ }, Pt = (e, t) => {
579
+ let n = At(t), r = e.value, i = X(r, t);
580
+ if (!Tt(r)) return {
581
+ ...N,
582
+ type: J,
583
+ id: globalThis.crypto.randomUUID(),
584
+ inner: i
585
+ };
586
+ let { id: a, isExisting: o } = Nt(r, n);
587
+ return o ? {
588
+ ...N,
589
+ type: J,
590
+ id: a
591
+ } : {
592
+ ...N,
593
+ type: J,
595
594
  id: a,
596
- inner: o
595
+ inner: i
596
+ };
597
+ }, Ft = (e, t, n) => {
598
+ let { id: r, isExisting: i } = Nt(e, At(n));
599
+ return i ? {
600
+ ...N,
601
+ type: J,
602
+ id: r
603
+ } : {
604
+ ...N,
605
+ type: J,
606
+ id: r,
607
+ inner: t
597
608
  };
598
- }, At = (e, t) => {
599
- let n = Et(t), r = n.receiveCache.get(e.id);
609
+ }, It = (e, t) => {
610
+ let n = At(t), r = n.receiveCache.get(e.id);
600
611
  if (r !== void 0) return r;
612
+ let i = n.idToSent.get(e.id)?.deref();
613
+ if (i !== void 0) return i;
601
614
  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;
604
- }, jt = /* @__PURE__ */ t({
605
- box: () => zt,
606
- isType: () => Rt,
607
- revive: () => Bt,
608
- transfer: () => Lt,
609
- type: () => Mt
610
- }), 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, [
615
+ let a = Z(e.inner, t);
616
+ return n.receiveCache.set(e.id, a), Tt(a) && n.revivedToId.set(a, e.id), a;
617
+ }, Lt = /* @__PURE__ */ t({
618
+ box: () => Gt,
619
+ isType: () => Wt,
620
+ revive: () => Kt,
621
+ transfer: () => Ut,
622
+ type: () => Rt
623
+ }), Rt = "transfer", zt = Symbol.for("osra.transfer"), Bt = (e) => typeof e == "object" && !!e, Vt = (e) => Bt(e) && zt in e && e[zt] === !0, Ht = (e) => Bt(e) ? ArrayBuffer.isView(e) ? !0 : v(e, [
611
624
  globalThis.ArrayBuffer,
612
625
  globalThis.MessagePort,
613
626
  globalThis.ReadableStream,
@@ -615,180 +628,248 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
615
628
  globalThis.TransformStream,
616
629
  globalThis.ImageBitmap,
617
630
  globalThis.OffscreenCanvas
618
- ]) : !1, Lt = (e) => It(e) ? {
619
- [Nt]: !0,
631
+ ]) : !1, Ut = (e) => Ht(e) ? {
632
+ [zt]: !0,
620
633
  value: e
621
- } : e, Rt = (e) => Ft(e), zt = (e, t) => {
622
- let n = e.value, r = X(n, t);
623
- return {
624
- ...P,
625
- type: Mt,
626
- inner: r,
627
- degraded: D(t.transport)
628
- };
629
- }, Bt = (e, t) => Z(e.inner, t), Vt = /* @__PURE__ */ t({
630
- box: () => Ut,
631
- isType: () => Ht,
632
- revive: () => Wt,
634
+ } : e, Wt = (e) => Vt(e), Gt = (e, t) => ({
635
+ ...N,
636
+ type: Rt,
637
+ inner: X(e.value, t),
638
+ degraded: D(t.transport)
639
+ }), Kt = (e, t) => Z(e.inner, t), qt = /* @__PURE__ */ t({
640
+ box: () => Yt,
641
+ isType: () => Jt,
642
+ revive: () => Xt,
633
643
  type: () => "map"
634
- }), Ht = (e) => e instanceof Map, Ut = (e, t) => ({
635
- ...P,
644
+ }), Jt = (e) => e instanceof Map, Yt = (e, t) => ({
645
+ ...N,
636
646
  type: "map",
637
647
  entries: Array.from(e, ([e, n]) => [X(e, t), X(n, t)])
638
- }), Wt = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), Gt = /* @__PURE__ */ t({
639
- box: () => qt,
640
- isType: () => Kt,
641
- revive: () => Jt,
648
+ }), Xt = (e, t) => new Map(e.entries.map(([e, n]) => [Z(e, t), Z(n, t)])), Zt = /* @__PURE__ */ t({
649
+ box: () => $t,
650
+ isType: () => Qt,
651
+ revive: () => en,
642
652
  type: () => "set"
643
- }), Kt = (e) => e instanceof Set, qt = (e, t) => ({
644
- ...P,
653
+ }), Qt = (e) => e instanceof Set, $t = (e, t) => ({
654
+ ...N,
645
655
  type: "set",
646
656
  values: Array.from(e, (e) => X(e, t))
647
- }), Jt = (e, t) => new Set(e.values.map((e) => Z(e, t))), Yt = /* @__PURE__ */ t({
648
- box: () => Qt,
649
- isType: () => Zt,
650
- revive: () => $t,
651
- type: () => Xt
652
- }), Xt = "bigint", Zt = (e) => typeof e == "bigint", Qt = (e, t) => ({
653
- ...P,
654
- type: Xt,
655
- value: e.toString()
656
- }), $t = (e, t) => BigInt(e.value), en = /* @__PURE__ */ t({
657
+ }), en = (e, t) => new Set(e.values.map((e) => Z(e, t))), tn = /* @__PURE__ */ t({
657
658
  box: () => an,
658
659
  isType: () => rn,
660
+ revive: () => on,
661
+ type: () => nn
662
+ }), nn = "bigint", rn = (e) => typeof e == "bigint", an = (e, t) => ({
663
+ ...N,
664
+ type: nn,
665
+ value: e.toString()
666
+ }), on = (e, t) => BigInt(e.value), sn = /* @__PURE__ */ t({
667
+ box: () => un,
668
+ isType: () => ln,
659
669
  revive: () => dn,
660
- type: () => tn
661
- }), tn = "eventTarget", nn = new FinalizationRegistry((e) => {
662
- try {
663
- e.port.postMessage({ kind: "close" });
664
- } catch {}
665
- }), rn = (e) => e instanceof EventTarget, an = (e, t) => {
666
- let { localPort: n, boxedRemote: r } = q(t), i = /* @__PURE__ */ new Map(), a = () => {
667
- for (let [t, n] of i) e.removeEventListener(t, n);
668
- i.clear(), n.removeEventListener("message", o), n.close();
669
- }, o = ({ data: t }) => {
670
- if (t.kind === "close") {
671
- a();
672
- return;
673
- }
674
- if (t.kind === "subscribe") {
675
- if (i.has(t.eventType)) return;
676
- let r = (e) => {
677
- let r = {
678
- kind: "event",
679
- eventType: t.eventType,
680
- bubbles: e.bubbles,
681
- cancelable: e.cancelable,
682
- composed: e.composed
683
- };
684
- e instanceof CustomEvent && (r.detail = e.detail), n.postMessage(r);
685
- };
686
- e.addEventListener(t.eventType, r), i.set(t.eventType, r);
687
- return;
688
- }
689
- if (t.kind === "unsubscribe") {
690
- let n = i.get(t.eventType);
691
- if (!n) return;
692
- e.removeEventListener(t.eventType, n), i.delete(t.eventType);
693
- }
670
+ type: () => cn
671
+ }), cn = "event", ln = (e) => e instanceof Event, un = (e, t) => ({
672
+ ...N,
673
+ type: cn,
674
+ eventType: e.type,
675
+ bubbles: e.bubbles,
676
+ cancelable: e.cancelable,
677
+ composed: e.composed,
678
+ ...e instanceof CustomEvent ? { detail: X(e.detail, t) } : {}
679
+ }), dn = (e, t) => {
680
+ let n = {
681
+ bubbles: e.bubbles,
682
+ cancelable: e.cancelable,
683
+ composed: e.composed
694
684
  };
695
- return n.addEventListener("message", o), n.start(), {
696
- ...P,
697
- type: tn,
698
- port: r
685
+ return "detail" in e ? new CustomEvent(e.eventType, {
686
+ ...n,
687
+ detail: Z(e.detail, t)
688
+ }) : new Event(e.eventType, n);
689
+ }, fn = /* @__PURE__ */ t({
690
+ box: () => hn,
691
+ isType: () => mn,
692
+ revive: () => yn,
693
+ type: () => pn
694
+ }), pn = "eventTarget", mn = (e) => e instanceof EventTarget, hn = (e, t) => ({
695
+ ...N,
696
+ type: pn,
697
+ addListener: G((t, n, r) => e.addEventListener(t, n, r), t),
698
+ removeListener: G((t, n, r) => e.removeEventListener(t, n, r), t)
699
+ }), gn = /* @__PURE__ */ new WeakMap(), _n = (e) => {
700
+ if (typeof e == "function") return e;
701
+ let t = gn.get(e);
702
+ return t || gn.set(e, t = (t) => e.handleEvent(t)), t;
703
+ }, vn = (e, t, n, r) => e.find((e) => e.eventType === t && e.listener === n && e.capture === r), yn = (e, t) => {
704
+ let n = K(e.addListener, t), r = K(e.removeListener, t), i = new EventTarget(), a = [];
705
+ return Object.defineProperty(i, "addEventListener", { value: (e, t, r) => {
706
+ if (t === null) return;
707
+ let i = _n(t), o = typeof r == "boolean" ? r : !!r?.capture;
708
+ vn(a, e, i, o) || (a.push({
709
+ eventType: e,
710
+ listener: i,
711
+ capture: o
712
+ }), n(e, Y(i), r).catch(() => {}));
713
+ } }), Object.defineProperty(i, "removeEventListener", { value: (e, t, n) => {
714
+ if (t === null) return;
715
+ let i = _n(t), o = typeof n == "boolean" ? n : !!n?.capture, s = vn(a, e, i, o);
716
+ s && (a.splice(a.indexOf(s), 1), r(e, Y(i), { capture: o }).catch(() => {}));
717
+ } }), z(i, () => {
718
+ for (let { eventType: e, listener: t, capture: n } of a) r(e, Y(t), { capture: n }).catch(() => {});
719
+ a.length = 0;
720
+ }), i;
721
+ }, bn = /* @__PURE__ */ t({
722
+ box: () => wn,
723
+ isType: () => Sn,
724
+ revive: () => Tn,
725
+ type: () => xn
726
+ }), xn = "blob", Sn = (e) => e instanceof Blob, Cn = (e) => typeof File < "u" && e instanceof File, wn = (e, t) => ({
727
+ ...N,
728
+ type: xn,
729
+ mimeType: e.type,
730
+ buffer: Ze(e.arrayBuffer(), t),
731
+ ...Cn(e) ? {
732
+ fileName: e.name,
733
+ lastModified: e.lastModified
734
+ } : {}
735
+ }), Tn = (e, t) => Qe(e.buffer, t).then((t) => e.fileName !== void 0 && typeof File < "u" ? new File([t], e.fileName, {
736
+ type: e.mimeType,
737
+ lastModified: e.lastModified
738
+ }) : new Blob([t], { type: e.mimeType })), En = /* @__PURE__ */ t({
739
+ box: () => kn,
740
+ isType: () => On,
741
+ revive: () => An,
742
+ type: () => Dn
743
+ }), Dn = "symbol", On = (e) => typeof e == "symbol", kn = (e, t) => {
744
+ let n = {
745
+ ...N,
746
+ type: Dn,
747
+ description: e.description
699
748
  };
700
- }, on = (e) => typeof e == "boolean" ? e : !!e?.capture, sn = (e) => typeof e == "object" && !!e && !!e.once, cn = (e, t, n, r) => {
701
- let i = e.get(t);
702
- if (!i) return !1;
703
- let a = i.get(n);
704
- return !a || !a.delete(r) || (a.size === 0 && i.delete(n), i.size > 0) ? !1 : (e.delete(t), !0);
705
- }, ln = (e, t) => {
706
- e.addEventListener("message", ({ data: e }) => {
707
- if (e.kind !== "event") return;
708
- let n = t.deref();
709
- if (!n) return;
710
- let r = {
711
- bubbles: e.bubbles,
712
- cancelable: e.cancelable,
713
- composed: e.composed
714
- }, i = "detail" in e ? new CustomEvent(e.eventType, {
715
- ...r,
716
- detail: e.detail
717
- }) : new Event(e.eventType, r);
718
- n.dispatchEvent(i);
719
- });
720
- }, un = (e, t, n) => {
721
- let r = EventTarget.prototype.addEventListener.bind(e), i = EventTarget.prototype.removeEventListener.bind(e);
722
- Object.defineProperty(e, "addEventListener", { value: (e, i, a) => {
723
- if (i === null) return;
724
- let o = on(a), s = sn(a), c = n.get(e), l = !c;
725
- c || (c = /* @__PURE__ */ new Map(), n.set(e, c));
726
- let u = c.get(i);
727
- if (u || (u = /* @__PURE__ */ new Map(), c.set(i, u)), u.has(o)) return;
728
- let d = s ? (r) => {
729
- cn(n, e, i, o) && t.postMessage({
730
- kind: "unsubscribe",
731
- eventType: e
732
- }), typeof i == "function" ? i(r) : i.handleEvent(r);
733
- } : i;
734
- u.set(o, d), l && t.postMessage({
735
- kind: "subscribe",
736
- eventType: e
737
- }), r(e, d, a);
738
- } }), Object.defineProperty(e, "removeEventListener", { value: (e, r, a) => {
739
- if (r === null) return;
740
- let o = on(a), s = n.get(e)?.get(r)?.get(o);
741
- s && (i(e, s, a), cn(n, e, r, o) && t.postMessage({
742
- kind: "unsubscribe",
743
- eventType: e
744
- }));
745
- } });
746
- }, dn = (e, t) => {
747
- let n = K(e.port, t);
748
- n.start();
749
- let r = new EventTarget(), i = /* @__PURE__ */ new Map();
750
- return ln(n, new WeakRef(r)), un(r, n, i), nn.register(r, { port: n }, r), r;
751
- }, fn = [
752
- jt,
753
- _t,
754
- le,
755
- me,
756
- ye,
749
+ return e.description === void 0 ? Ft(e, n, t) : n;
750
+ }, An = (e, t) => Symbol(e.description), jn = [
751
+ globalThis.File,
752
+ globalThis.FileList,
753
+ globalThis.RegExp,
754
+ globalThis.DataView,
755
+ globalThis.ImageData,
756
+ globalThis.FormData,
757
+ globalThis.DOMException,
758
+ globalThis.DOMMatrix,
759
+ globalThis.DOMMatrixReadOnly,
760
+ globalThis.DOMPoint,
761
+ globalThis.DOMPointReadOnly,
762
+ globalThis.DOMQuad,
763
+ globalThis.DOMRect,
764
+ globalThis.DOMRectReadOnly,
765
+ globalThis.CryptoKey,
766
+ globalThis.FileSystemHandle,
767
+ globalThis.FileSystemFileHandle,
768
+ globalThis.FileSystemDirectoryHandle,
769
+ globalThis.RTCCertificate
770
+ ], Mn = [
771
+ globalThis.CropTarget,
772
+ globalThis.EncodedAudioChunk,
773
+ globalThis.EncodedVideoChunk,
774
+ globalThis.FencedFrameConfig,
775
+ globalThis.GPUCompilationInfo,
776
+ globalThis.GPUCompilationMessage,
777
+ globalThis.GPUPipelineError,
778
+ globalThis.RTCEncodedAudioFrame,
779
+ globalThis.RTCEncodedVideoFrame,
780
+ globalThis.WebTransportError
781
+ ], Nn = {
782
+ type: "clonable",
783
+ capableOnly: !0,
784
+ isType: (e) => v(e, jn) || v(e, Mn),
785
+ box: (e, t) => e,
786
+ revive: (e, t) => e
787
+ }, Pn = [
788
+ globalThis.ImageBitmap,
789
+ globalThis.OffscreenCanvas,
790
+ globalThis.WritableStream,
791
+ globalThis.TransformStream,
792
+ globalThis.MediaStreamTrack,
793
+ globalThis.RTCDataChannel
794
+ ], Fn = [
795
+ globalThis.AudioData,
796
+ globalThis.VideoFrame,
797
+ globalThis.MediaSourceHandle,
798
+ globalThis.MIDIAccess,
799
+ globalThis.WebTransportReceiveStream,
800
+ globalThis.WebTransportSendStream
801
+ ], In = {
802
+ type: "transferable",
803
+ capableOnly: !0,
804
+ isType: (e) => v(e, Pn) || v(e, Fn),
805
+ box: (e, t) => e,
806
+ revive: (e, t) => e
807
+ }, Ln = (e) => {
808
+ if (typeof e != "object" || !e) return !1;
809
+ let t = Object.getPrototypeOf(e);
810
+ return t === Object.prototype || t === null;
811
+ }, Rn = [
812
+ Lt,
813
+ St,
814
+ fe,
815
+ _e,
757
816
  Se,
758
817
  De,
759
- ze,
760
- Ke,
761
818
  Me,
762
- Qe,
763
- nt,
819
+ bn,
820
+ Ke,
821
+ $e,
822
+ Re,
823
+ rt,
764
824
  st,
765
825
  ft,
766
- Vt,
767
- Gt,
768
- Yt,
769
- en
770
- ], pn = (e, t) => t.find((t) => t.isType(e)), mn = (e, t) => t.find((t) => t.type === e.type), hn = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, gn = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : hn(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, _n = (e, t) => {
771
- let n = pn(e, t.revivableModules);
826
+ _t,
827
+ qt,
828
+ Zt,
829
+ tn,
830
+ En,
831
+ sn,
832
+ fn,
833
+ Nn,
834
+ In,
835
+ {
836
+ type: "unclonable",
837
+ isType: (e) => {
838
+ if (typeof e != "object" || !e || Array.isArray(e) || Ln(e)) return !1;
839
+ try {
840
+ return structuredClone(e), !1;
841
+ } catch {
842
+ return !0;
843
+ }
844
+ },
845
+ box: (e, t) => ({
846
+ ...N,
847
+ type: "unclonable"
848
+ }),
849
+ revive: (e, t) => ({})
850
+ }
851
+ ], zn = (e, t) => t.find((t) => t.isType(e)), Bn = (e, t) => t.find((t) => t.type === e.type), Vn = (e) => !!e && typeof e == "object" && Object.getPrototypeOf(e) === Object.prototype, Hn = (e, t) => Array.isArray(e) ? e.map((e) => t(e)) : Vn(e) ? Object.fromEntries(Object.entries(e).map(([e, n]) => [e, t(n)])) : e, Un = (e, t) => {
852
+ let n = zn(e, t.revivableModules);
772
853
  return n ? n.box(e, t) : e;
773
854
  }, X = (e, t) => {
774
- if (F(e)) return e;
775
- let n = pn(e, t.revivableModules);
776
- return n ? n.box(e, t) : gn(e, (e) => X(e, t));
777
- }, vn = (e, t) => {
778
- if (!F(e)) return e;
779
- let n = mn(e, t.revivableModules);
855
+ if (P(e)) return e;
856
+ let n = zn(e, t.revivableModules);
857
+ return n ? n.box(e, t) : Hn(e, (e) => X(e, t));
858
+ }, Wn = (e, t) => {
859
+ if (!P(e)) return e;
860
+ let n = Bn(e, t.revivableModules);
780
861
  return n ? n.revive(e, t) : e;
781
862
  }, Z = (e, t) => {
782
- if (F(e)) {
783
- let n = mn(e, t.revivableModules);
863
+ if (P(e)) {
864
+ let n = Bn(e, t.revivableModules);
784
865
  if (n) return n.revive(e, t);
785
866
  }
786
- return gn(e, (e) => Z(e, t));
787
- }, yn = /* @__PURE__ */ t({
788
- init: () => xn,
867
+ return Hn(e, (e) => Z(e, t));
868
+ }, Gn = /* @__PURE__ */ t({
869
+ init: () => qn,
789
870
  startBidirectionalConnection: () => Q,
790
- type: () => bn
791
- }), bn = "bidirectional", Q = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
871
+ type: () => Kn
872
+ }), Kn = "bidirectional", Q = ({ transport: e, value: t, remoteUuid: n, eventTarget: r, send: i, revivableModules: a }) => {
792
873
  let o = {
793
874
  transport: e,
794
875
  remoteUuid: n,
@@ -808,7 +889,7 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
808
889
  revivableContext: o,
809
890
  remoteValue: s.then((e) => Z(e, o))
810
891
  };
811
- }, xn = (e) => {
892
+ }, qn = (e) => {
812
893
  if (O(e.transport) && k(e.transport)) {
813
894
  if (e.protocolEventTarget.addEventListener("message", ({ detail: t }) => {
814
895
  if (t.type === "announce") {
@@ -865,24 +946,30 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
865
946
  }
866
947
  e.sendMessage({ type: "announce" });
867
948
  }
868
- }, Sn = () => new EventTarget(), Cn = (e) => _(e, [
949
+ }, Jn = () => new EventTarget(), Yn = (e) => v(e, [
869
950
  globalThis.MessagePort,
870
951
  globalThis.ReadableStream,
871
952
  globalThis.WritableStream,
872
953
  globalThis.TransformStream,
873
- globalThis.OffscreenCanvas
874
- ]), wn = (e) => F(e) && e.type === "transfer", $ = (e) => {
954
+ globalThis.OffscreenCanvas,
955
+ globalThis.MediaSourceHandle,
956
+ globalThis.MediaStreamTrack,
957
+ globalThis.MIDIAccess,
958
+ globalThis.RTCDataChannel,
959
+ globalThis.WebTransportReceiveStream,
960
+ globalThis.WebTransportSendStream
961
+ ]), Xn = (e) => P(e) && e.type === "transfer", $ = (e) => {
875
962
  let t = [], n = /* @__PURE__ */ new WeakSet(), r = (e, i) => {
876
- if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !v(e))) {
877
- if (wn(e)) {
963
+ if (!(!e || typeof e != "object") && !n.has(e) && (n.add(e), !y(e))) {
964
+ if (Xn(e)) {
878
965
  r(e.inner, i || !e.degraded);
879
966
  return;
880
967
  }
881
- if (Cn(e)) {
968
+ if (Yn(e)) {
882
969
  t.push(e);
883
970
  return;
884
971
  }
885
- if (y(e)) {
972
+ if (b(e)) {
886
973
  i && t.push(e);
887
974
  return;
888
975
  }
@@ -896,14 +983,14 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
896
983
  }
897
984
  };
898
985
  return r(e, !1), t;
899
- }, Tn = (e) => ({
986
+ }, Zn = (e) => ({
900
987
  isJson: "isJson" in e && e.isJson !== void 0 ? e.isJson : D(e),
901
- ...A(e) ? e : {
988
+ ...j(e) ? e : {
902
989
  emit: e,
903
990
  receive: e
904
991
  }
905
- }), 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
- let f = Tn(t), p = En(l), m = /* @__PURE__ */ new Map(), { promise: h, resolve: g } = Promise.withResolvers(), _ = u ?? globalThis.crypto.randomUUID(), v = (e) => {
992
+ }), Qn = (e) => e ? e(Rn) : Rn, $n = [Gn], er = (e, { transport: t, name: i, remoteName: a, key: o = r, origin: s = "*", unregisterSignal: c, revivableModules: l, uuid: u, remoteUuid: d }) => {
993
+ let f = Zn(t), p = Qn(l), m = /* @__PURE__ */ new Map(), { promise: h, resolve: g } = Promise.withResolvers(), _ = u ?? globalThis.crypto.randomUUID(), v = (e) => {
907
994
  if (c?.aborted || !O(f)) return;
908
995
  let t = {
909
996
  [n]: o,
@@ -911,8 +998,8 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
911
998
  uuid: _,
912
999
  ...e
913
1000
  };
914
- ce(f, t, s, $(t));
915
- }, y = Sn(), b = {
1001
+ ue(f, t, s, $(t));
1002
+ }, y = Jn(), b = {
916
1003
  transport: f,
917
1004
  value: e,
918
1005
  revivableModules: p,
@@ -922,9 +1009,9 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
922
1009
  sendMessage: v,
923
1010
  protocolEventTarget: y,
924
1011
  resolveRemoteValue: g,
925
- createConnectionEventTarget: Sn
1012
+ createConnectionEventTarget: Jn
926
1013
  };
927
- k(f) && se({
1014
+ k(f) && le({
928
1015
  listener: (e, t) => {
929
1016
  e.uuid !== _ && y.dispatchEvent(new CustomEvent("message", { detail: e }));
930
1017
  },
@@ -933,10 +1020,10 @@ var re = (e) => !e || typeof e != "object" || w(e) || !("emit" in e) ? !1 : O(e.
933
1020
  key: o,
934
1021
  unregisterSignal: c
935
1022
  });
936
- for (let e of Dn) e.init(b);
1023
+ for (let e of $n) e.init(b);
937
1024
  return h;
938
- }, kn = async (e, t) => On(e, t);
1025
+ }, tr = async (e, t) => er(e, t);
939
1026
  //#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 };
1027
+ 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, Un as box, I as boxBuffer, M as checkOsraMessageKey, $n as connections, Jn as createTypedEventTarget, Rn as defaultRevivableModules, tr as expose, $ as getTransferableObjects, oe as getWebExtensionGlobal, se as getWebExtensionRuntime, Y as identity, qn as init, v as instanceOfAny, y as isClonable, A as isCustomEmitTransport, ie as isCustomReceiveTransport, j as isCustomTransport, m as isDedicatedWorker, te as isEmitJsonOnlyTransport, O as isEmitTransport, D as isJsonOnlyTransport, _ as isOsraMessage, E as isReceiveJsonOnlyTransport, k as isReceiveTransport, P as isRevivableBox, f as isServiceWorkerContainer, h as isSharedWorker, b as isTransferable, ae as isTransport, u as isTypedArray, C as isWebExtensionOnConnect, w as isWebExtensionOnMessage, S as isWebExtensionPort, x as isWebExtensionRuntime, d as isWebSocket, T as isWindow, p as isWorker, Qn as mergeRevivableModules, Zn as normalizeTransport, X as recursiveBox, Z as recursiveRevive, le as registerOsraMessageListener, Wn as revive, de as reviveBuffer, ue as sendOsraMessage, F as serializeError, Q as startBidirectionalConnection, er as startConnections, z as trackGc, Ut as transfer, Kn as type, c as typedArrayToType, l as typedArrayTypeToTypedArrayConstructor };
941
1028
 
942
1029
  //# sourceMappingURL=index.js.map